]> Git Repo - linux.git/commit
ixgbe: fix qv_lock_napi call in ixgbe_napi_disable_all
authorJacob Keller <[email protected]>
Sat, 21 Sep 2013 05:05:44 +0000 (05:05 +0000)
committerJeff Kirsher <[email protected]>
Tue, 29 Oct 2013 10:30:08 +0000 (03:30 -0700)
commit27d9ce4fd0e2e75c2907f6d3dc0487012a3e4298
tree7732eb238ce740473636f5100cb922a82da36b88
parent80c33ddd31d0e801953e02b7b003f395c1920e4e
ixgbe: fix qv_lock_napi call in ixgbe_napi_disable_all

ixgbe_napi_disable_all calls napi_disable on each queue, however the busy
polling code introduced a local_bh_disable()d context around the napi_disable.
The original author did not realize that napi_disable might sleep, which would
cause a sleep while atomic BUG. In addition, on a single processor system, the
ixgbe_qv_lock_napi loop shouldn't have to mdelay. This patch adds an
ixgbe_qv_disable along with a new IXGBE_QV_STATE_DISABLED bit, which it uses to
indicate to the poll and napi routines that the q_vector has been disabled. Now
the ixgbe_napi_disable_all function will wait until all pending work has been
finished and prevent any future work from being started.

Signed-off-by: Jacob Keller <[email protected]>
Cc: Eliezer Tamir <[email protected]>
Cc: Alexander Duyck <[email protected]>
Cc: Hyong-Youb Kim <[email protected]>
Cc: Amir Vadai <[email protected]>
Cc: Dmitry Kravkov <[email protected]>
Tested-by: Phil Schmitt <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
drivers/net/ethernet/intel/ixgbe/ixgbe.h
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c
This page took 0.05644 seconds and 4 git commands to generate.