path: root/.gitconfig
diff options
authorTobias Klauser <>2021-10-11 15:43:02 +0200
committerTobias Klauser <>2021-10-11 15:43:02 +0200
commit916b9a205571552b166ca055cc99fb6a21798c73 (patch)
treefc18382933c3f7466342a4654f922737ea40382a /.gitconfig
parentfcc6abc47a2979f2482e456d64344deee44820b8 (diff)
.gitconfig: let `git amend` update the commit dateHEADmaster
Diffstat (limited to '.gitconfig')
1 files changed, 1 insertions, 1 deletions
diff --git a/.gitconfig b/.gitconfig
index 66de865..f92d30f 100644
--- a/.gitconfig
+++ b/.gitconfig
@@ -9,7 +9,7 @@
excludesfile = ~/.gitignore
- amend = commit --amend
+ amend = commit --amend --date=now
co = checkout
ca = commit --amend
ci = commit
0 bonding: don't call slave_xxx_netpoll under spinlocks The slave_xxx_netpoll will call synchronize_rcu_bh(), so the function may schedule and sleep, it should't be called under spinlocks. bond_netpoll_setup() and bond_netpoll_cleanup() are always protected by rtnl lock, it is no need to take the read lock, as the slave list couldn't be changed outside rtnl lock. Signed-off-by: Ding Tianhong <> Cc: Jay Vosburgh <> Cc: Andy Gospodarek <> Signed-off-by: David S. Miller <> Nothing else that calls __netpoll_setup or ndo_netpoll_setup requires a gfp paramter, so remove the gfp parameter from both of these functions making the code clearer. Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2014-03-17netpoll: Remove dead packet receive code (CONFIG_NETPOLL_TRAP)Eric W. Biederman1-84/+0 The netpoll packet receive code only becomes active if the netpoll rx_skb_hook is implemented, and there is not a single implementation of the netpoll rx_skb_hook in the kernel. All of the out of tree implementations I have found all call netpoll_poll which was removed from the kernel in 2011, so this change should not add any additional breakage. There are problems with the netpoll packet receive code. __netpoll_rx does not call dev_kfree_skb_irq or dev_kfree_skb_any in hard irq context. netpoll_neigh_reply leaks every skb it receives. Reception of packets does not work successfully on stacked devices (aka bonding, team, bridge, and vlans). Given that the netpoll packet receive code is buggy, there are no out of tree users that will be merged soon, and the code has not been used for in tree for a decade let's just remove it. Reverting this commit can server as a starting point for anyone who wants to resurrect netpoll packet reception support. Acked-by: Eric Dumazet <> Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2014-03-17netpoll: Move all receive processing under CONFIG_NETPOLL_TRAPEric W. Biederman1-33/+40 Make rx_skb_hook, and rx in struct netpoll depend on CONFIG_NETPOLL_TRAP Make rx_lock, rx_np, and neigh_tx in struct netpoll_info depend on CONFIG_NETPOLL_TRAP Make the functions netpoll_rx_on, netpoll_rx, and netpoll_receive_skb no-ops when CONFIG_NETPOLL_TRAP is not set. Only build netpoll_neigh_reply, checksum_udp service_neigh_queue, pkt_is_ns, and __netpoll_rx when CONFIG_NETPOLL_TRAP is defined. Add helper functions netpoll_trap_setup, netpoll_trap_setup_info, netpoll_trap_cleanup, and netpoll_trap_cleanup_info that initialize and cleanup the struct netpoll and struct netpoll_info receive specific fields when CONFIG_NETPOLL_TRAP is enabled and do nothing otherwise. Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2014-03-17netpoll: Move netpoll_trap under CONFIG_NETPOLL_TRAPEric W. Biederman1-2/+9 Now that we no longer need to receive packets to safely drain the network drivers receive queue move netpoll_trap and netpoll_set_trap under CONFIG_NETPOLL_TRAP Making netpoll_trap and netpoll_set_trap noop inline functions when CONFIG_NETPOLL_TRAP is not set. Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2014-03-17netpoll: Don't drop all received packets.Eric W. Biederman1-2/+1 Change the strategy of netpoll from dropping all packets received during netpoll_poll_dev to calling napi poll with a budget of 0 (to avoid processing drivers rx queue), and to ignore packets received with netif_rx (those will safely be placed on the backlog queue). All of the netpoll supporting drivers have been reviewed to ensure either thay use netif_rx or that a budget of 0 is supported by their napi poll routine and that a budget of 0 will not process the drivers rx queues. Not dropping packets makes NETPOLL_RX_DROP unnecesary so it is removed. npinfo->rx_flags is removed as rx_flags with just the NETPOLL_RX_ENABLED flag becomes just a redundant mirror of list_empty(&npinfo->rx_np). Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2014-03-17netpoll: Add netpoll_rx_processingEric W. Biederman1-4/+14 Add a helper netpoll_rx_processing that reports when netpoll has receive side processing to perform. Signed-off-by: "Eric W. Biederman" <> Signed-off-by: David S. Miller <> 2013-10-25netpoll: fix rx_hook() interface by passing the skbAntonio Quartulli1-2/+3 Right now skb->data is passed to rx_hook() even if the skb has not been linearised and without giving rx_hook() a way to linearise it. Change the rx_hook() interface and make it accept the skb and the offset to the UDP payload as arguments. rx_hook() is also renamed to rx_skb_hook() to ensure that out of the tree users notice the API change. In this way any rx_skb_hook() implementation can perform all the needed operations to properly (and safely) access the skb data. Signed-off-by: Antonio Quartulli <> Signed-off-by: David S. Miller <> 2013-05-27netpoll: remove return value from netpoll_rx_disable()dingtianhong1-2/+2 The netpoll_rx_disable() will always return 0, it is no use and looks wordy, so remove the unnecessary code and get rid of it in _dev_open and _dev_close. Signed-off-by: Ding Tianhong <> Signed-off-by: David S. Miller <> 2013-05-01netpoll: convert mutex into a semaphoreNeil Horman1-1/+1 Bart Van Assche recently reported a warning to me: <IRQ> [<ffffffff8103d79f>] warn_slowpath_common+0x7f/0xc0 [<ffffffff8103d7fa>] warn_slowpath_null+0x1a/0x20 [<ffffffff814761dd>] mutex_trylock+0x16d/0x180 [<ffffffff813968c9>] netpoll_poll_dev+0x49/0xc30 [<ffffffff8136a2d2>] ? __alloc_skb+0x82/0x2a0 [<ffffffff81397715>] netpoll_send_skb_on_dev+0x265/0x410 [<ffffffff81397c5a>] netpoll_send_udp+0x28a/0x3a0 [<ffffffffa0541843>] ? write_msg+0x53/0x110 [netconsole] [<ffffffffa05418bf>] write_msg+0xcf/0x110 [netconsole] [<ffffffff8103eba1>] call_console_drivers.constprop.17+0xa1/0x1c0 [<ffffffff8103fb76>] console_unlock+0x2d6/0x450 [<ffffffff8104011e>] vprintk_emit+0x1ee/0x510 [<ffffffff8146f9f6>] printk+0x4d/0x4f [<ffffffffa0004f1d>] scsi_print_command+0x7d/0xe0 [scsi_mod] This resulted from my commit ca99ca14c which introduced a mutex_trylock operation in a path that could execute in interrupt context. When mutex debugging is enabled, the above warns the user when we are in fact exectuting in interrupt context interrupt context. After some discussion, It seems that a semaphore is the proper mechanism to use here. While mutexes are defined to be unusable in interrupt context, no such condition exists for semaphores (save for the fact that the non blocking api calls, like up and down_trylock must be used when in irq context). Signed-off-by: Neil Horman <> Reported-by: Bart Van Assche <> CC: Bart Van Assche <> CC: David Miller <> CC: Signed-off-by: David S. Miller <> 2013-02-11netpoll: Fix __netpoll_rcu_free so that it can hold the rtnl lockNeil Horman1-2/+2 __netpoll_rcu_free is used to free netpoll structures when the rtnl_lock is already held. The mechanism is used to asynchronously call __netpoll_cleanup outside of the holding of the rtnl_lock, so as to avoid deadlock. Unfortunately, __netpoll_cleanup modifies pointers (dev->np), which means the rtnl_lock must be held while calling it. Further, it cannot be held, because rcu callbacks may be issued in softirq contexts, which cannot sleep. Fix this by converting the rcu callback to a work queue that is guaranteed to get scheduled in process context, so that we can hold the rtnl properly while calling __netpoll_cleanup Tested successfully by myself. Signed-off-by: Neil Horman <> CC: "David S. Miller" <> CC: Cong Wang <> CC: Eric Dumazet <> Signed-off-by: David S. Miller <> 2013-02-06netpoll: protect napi_poll and poll_controller during dev_[open|close]Neil Horman1-1/+10 Ivan Vercera was recently backporting commit 9c13cb8bb477a83b9a3c9e5a5478a4e21294a760 to a RHEL kernel, and I noticed that, while this patch protects the tg3 driver from having its ndo_poll_controller routine called during device initalization, it does nothing for the driver during shutdown. I.e. it would be entirely possible to have the ndo_poll_controller method (or subsequently the ndo_poll) routine called for a driver in the netpoll path on CPU A while in parallel on CPU B, the ndo_close or ndo_open routine could be called. Given that the two latter routines tend to initizlize and free many data structures that the former two rely on, the result can easily be data corruption or various other crashes. Furthermore, it seems that this is potentially a problem with all net drivers that support netpoll, and so this should ideally be fixed in a common path. As Ben H Pointed out to me, we can't preform dev_open/dev_close in atomic context, so I've come up with this solution. We can use a mutex to sleep in open/close paths and just do a mutex_trylock in the napi poll path and abandon the poll attempt if we're locked, as we'll just retry the poll on the next send anyway. I've tested this here by flooding netconsole with messages on a system whos nic driver I modfied to periodically return NETDEV_TX_BUSY, so that the netpoll tx workqueue would be forced to send frames and poll the device. While this was going on I rapidly ifdown/up'ed the interface and watched for any problems. I've not found any. Signed-off-by: Neil Horman <> CC: Ivan Vecera <> CC: "David S. Miller" <> CC: Ben Hutchings <> CC: Francois Romieu <> CC: Eric Dumazet <> Signed-off-by: David S. Miller <> 2013-01-08netpoll: prepare for ipv6Cong Wang1-2/+11 This patch adjusts some struct and functions, to prepare for supporting IPv6. Cc: David S. Miller <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: convert several functions to boolAmerigo Wang1-7/+7 These functions are just boolean, let them return bool instead of int. Cc: David Miller <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: take rcu_read_lock_bh() in netpoll_send_skb_on_dev()Amerigo Wang1-0/+3 This patch fixes several problems in the call path of netpoll_send_skb_on_dev(): 1. Disable IRQ's before calling netpoll_send_skb_on_dev(). 2. All the callees of netpoll_send_skb_on_dev() should use rcu_dereference_bh() to dereference ->npinfo. 3. Rename arp_reply() to netpoll_arp_reply(), the former is too generic. Cc: "David S. Miller" <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: use netpoll_rx_on() in netpoll_rx()Amerigo Wang1-9/+9 The logic of the code is same, just call netpoll_rx_on(). Cc: "David S. Miller" <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: take rcu_read_lock_bh() in netpoll_rx()Amerigo Wang1-2/+2 In __netpoll_rx(), it dereferences ->npinfo without rcu_dereference_bh(), this patch fixes it by using the 'npinfo' passed from netpoll_rx() where it is already dereferenced with rcu_dereference_bh(). Cc: "David S. Miller" <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: make __netpoll_cleanup non-blockAmerigo Wang1-0/+3 Like the previous patch, slave_disable_netpoll() and __netpoll_cleanup() may be called with read_lock() held too, so we should make them non-block, by moving the cleanup and kfree() to call_rcu_bh() callbacks. Cc: "David S. Miller" <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-08-14netpoll: use GFP_ATOMIC in slave_enable_netpoll() and __netpoll_setup()Amerigo Wang1-1/+1 slave_enable_netpoll() and __netpoll_setup() may be called with read_lock() held, so should use GFP_ATOMIC to allocate memory. Eric suggested to pass gfp flags to __netpoll_setup(). Cc: Eric Dumazet <> Cc: "David S. Miller" <> Reported-by: Dan Carpenter <> Signed-off-by: Eric Dumazet <> Signed-off-by: Cong Wang <> Signed-off-by: David S. Miller <> 2012-07-17netpoll: move np->dev and np->dev_name init into __netpoll_setup()Jiri Pirko1-1/+1 Signed-off-by: Jiri Pirko <> Signed-off-by: David S. Miller <> 2011-07-03netpoll: Remove unused EXPORT_SYMBOLs of netpoll_poll and netpoll_poll_devJoe Perches1-2/+0 Unused symbols waste space. Commit 0e34e93177fb "(netpoll: add generic support for bridge and bonding devices)" added the symbol more than a year ago with the promise of "future use". Because it is so far unused, remove it for now. It can be easily readded if or when it actually needs to be used. cc: WANG Cong <> Signed-off-by: Joe Perches <> Signed-off-by: David S. Miller <> 2010-10-18bonding: Fix bonding drivers improper modification of netpoll structureNeil Horman1-2/+7 The bonding driver currently modifies the netpoll structure in its xmit path while sending frames from netpoll. This is racy, as other cpus can access the netpoll structure in parallel. Since the bonding driver points np->dev to a slave device, other cpus can inadvertently attempt to send data directly to slave devices, leading to improper locking with the bonding master, lost frames, and deadlocks. This patch fixes that up. This patch also removes the real_dev pointer from the netpoll structure as that data is really only used by bonding in the poll_controller, and we can emulate its behavior by check each slave for IS_UP. Signed-off-by: Neil Horman <> Signed-off-by: David S. Miller <>