netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Jacob Keller <jacob.e.keller@intel.com>,
	netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com,
	Eliezer Tamir <eliezer.tamir@linux.intel.com>,
	Alexander Duyck <alexander.duyck@intel.com>,
	Hyong-Youb Kim <hykim@myri.com>, Amir Vadai <amirv@mellanox.com>,
	Dmitry Kravkov <dmitry@broadcom.com>,
	Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next  02/11] net: add might_sleep() call to napi_disable
Date: Tue, 29 Oct 2013 05:02:22 -0700	[thread overview]
Message-ID: <1383048151-15002-3-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1383048151-15002-1-git-send-email-jeffrey.t.kirsher@intel.com>

From: Jacob Keller <jacob.e.keller@intel.com>

napi_disable uses an msleep() call to wait for outstanding napi work to be
finished after setting the disable bit. It does not always sleep incase there
was no outstanding work. This resulted in a rare bug in ixgbe_down operation
where a napi_disable call took place inside of a local_bh_disable()d context.
In order to enable easier detection of future sleep while atomic BUGs, this
patch adds a might_sleep() call, so that every use of napi_disable during
atomic context will be visible.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Cc: Eliezer Tamir <eliezer.tamir@linux.intel.com>
Cc: Alexander Duyck <alexander.duyck@intel.com>
Cc: Hyong-Youb Kim <hykim@myri.com>
Cc: Amir Vadai <amirv@mellanox.com>
Cc: Dmitry Kravkov <dmitry@broadcom.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
 include/linux/netdevice.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 27f62f7..cb1d918 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -483,6 +483,7 @@ void napi_hash_del(struct napi_struct *napi);
  */
 static inline void napi_disable(struct napi_struct *n)
 {
+	might_sleep();
 	set_bit(NAPI_STATE_DISABLE, &n->state);
 	while (test_and_set_bit(NAPI_STATE_SCHED, &n->state))
 		msleep(1);
-- 
1.8.3.1

  parent reply	other threads:[~2013-10-29 12:02 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-10-29 12:02 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2013-10-29 12:02 ` [net-next 01/11] vxlan: Have the NIC drivers do less work for offloads Jeff Kirsher
2013-10-29 12:02 ` Jeff Kirsher [this message]
2013-10-29 12:02 ` [net-next 03/11] ixgbe: fix qv_lock_napi call in ixgbe_napi_disable_all Jeff Kirsher
2013-10-29 12:02 ` [net-next 04/11] ixgbe: show <2% for encoding loss on PCIe Gen3 Jeff Kirsher
2013-10-29 12:02 ` [net-next 05/11] ixgbe: remove unnecessary duplication of PCIe bandwidth display Jeff Kirsher
2013-10-29 12:02 ` [net-next 06/11] ixgbevf: add ixgbevf_rx_skb Jeff Kirsher
2013-10-29 12:02 ` [net-next 07/11] ixgbevf: have clean_rx_irq return total_rx_packets cleaned Jeff Kirsher
2013-10-29 12:02 ` [net-next 08/11] ixgbevf: implement CONFIG_NET_RX_BUSY_POLL Jeff Kirsher
2013-10-29 12:02 ` [net-next 09/11] ixgbevf: add BP_EXTENDED_STATS for CONFIG_NET_RX_BUSY_POLL Jeff Kirsher
2013-10-29 12:02 ` [net-next 10/11] ixgbevf: Add zero_base handler to network statistics Jeff Kirsher
2013-10-29 12:02 ` [net-next 11/11] i40e: fix error return code in i40e_probe() Jeff Kirsher
2013-10-29 17:05   ` Joe Perches
2013-10-29 22:57     ` David Miller
2013-10-29 23:02       ` Joe Perches
2013-10-29 22:58 ` [net-next 00/11][pull request] Intel Wired LAN Driver Updates David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1383048151-15002-3-git-send-email-jeffrey.t.kirsher@intel.com \
    --to=jeffrey.t.kirsher@intel.com \
    --cc=alexander.duyck@intel.com \
    --cc=amirv@mellanox.com \
    --cc=davem@davemloft.net \
    --cc=dmitry@broadcom.com \
    --cc=eliezer.tamir@linux.intel.com \
    --cc=gospo@redhat.com \
    --cc=hykim@myri.com \
    --cc=jacob.e.keller@intel.com \
    --cc=netdev@vger.kernel.org \
    --cc=sassmann@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).