From: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
To: davem@davemloft.net
Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>,
netdev@vger.kernel.org, gospo@redhat.com, sassmann@redhat.com,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Subject: [net-next 01/11] e1000: fix lockdep splat in shutdown handler
Date: Tue, 3 Jan 2012 11:19:06 -0800 [thread overview]
Message-ID: <1325618356-2655-2-git-send-email-jeffrey.t.kirsher@intel.com> (raw)
In-Reply-To: <1325618356-2655-1-git-send-email-jeffrey.t.kirsher@intel.com>
From: Jesse Brandeburg <jesse.brandeburg@intel.com>
As reported by Steven Rostedt, e1000 has a lockdep splat added
during the recent merge window. The issue is that
cancel_delayed_work is called while holding our private mutex.
There is no reason that I can see to hold the mutex during pci
shutdown, it was more just paranoia that I put the mutex_lock
around the call to e1000_down.
In a quick survey lots of drivers handle locking differently when
being called by the pci layer. The assumption here is that we
don't need the mutexes' protection in this function because
the driver could not be unloaded while in the shutdown handler
which is only called at reboot or poweroff.
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Steven Rostedt <rostedt@goodmis.org>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
---
drivers/net/ethernet/intel/e1000/e1000_main.c | 8 +-------
1 files changed, 1 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
index 985d589..934d5aa 100644
--- a/drivers/net/ethernet/intel/e1000/e1000_main.c
+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
@@ -4724,8 +4724,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
netif_device_detach(netdev);
- mutex_lock(&adapter->mutex);
-
if (netif_running(netdev)) {
WARN_ON(test_bit(__E1000_RESETTING, &adapter->flags));
e1000_down(adapter);
@@ -4733,10 +4731,8 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
#ifdef CONFIG_PM
retval = pci_save_state(pdev);
- if (retval) {
- mutex_unlock(&adapter->mutex);
+ if (retval)
return retval;
- }
#endif
status = er32(STATUS);
@@ -4791,8 +4787,6 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
if (netif_running(netdev))
e1000_free_irq(adapter);
- mutex_unlock(&adapter->mutex);
-
pci_disable_device(pdev);
return 0;
--
1.7.7.4
next prev parent reply other threads:[~2012-01-03 19:19 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-01-03 19:19 [net-next 00/11][pull request] Intel Wired LAN Driver Updates Jeff Kirsher
2012-01-03 19:19 ` Jeff Kirsher [this message]
2012-01-03 19:19 ` [net-next 02/11] igb: Add support for byte queue limits Jeff Kirsher
2012-01-03 19:19 ` [net-next 03/11] igb: add basic runtime PM support Jeff Kirsher
2012-01-03 19:19 ` [net-next 04/11] igb: reset PHY after recovering from PHY power down Jeff Kirsher
2012-01-03 19:19 ` [net-next 05/11] netdev: FCoE: Add new ndo_get_fcoe_hbainfo() call Jeff Kirsher
2012-01-03 20:07 ` David Miller
2012-01-03 20:53 ` Parikh, Neerav
2012-01-03 19:19 ` [net-next 06/11] ixgbe: FCoE: Add support for " Jeff Kirsher
2012-01-03 19:19 ` [net-next 07/11] e1000e: cleanup Rx checksum offload code Jeff Kirsher
2012-01-03 20:08 ` David Miller
2012-01-03 20:17 ` Allan, Bruce W
2012-01-03 21:00 ` Ben Hutchings
2012-01-03 21:15 ` David Miller
2012-01-03 21:24 ` Ben Hutchings
2012-01-03 22:02 ` David Miller
2012-01-03 19:19 ` [net-next 08/11] e1000e: add Receive Packet Steering (RPS) support Jeff Kirsher
2012-01-03 20:09 ` David Miller
2012-01-03 20:16 ` Allan, Bruce W
2012-01-03 20:27 ` David Miller
2012-01-03 20:28 ` Allan, Bruce W
2012-01-04 0:12 ` Joe Perches
2012-01-04 2:06 ` Harvey Harrison
2012-01-03 21:05 ` Ben Hutchings
2012-01-06 17:22 ` Allan, Bruce W
2012-01-06 17:31 ` Ben Hutchings
2012-01-03 19:19 ` [net-next 09/11] e1000e: re-enable alternate MAC address for all devices which support it Jeff Kirsher
2012-01-03 19:19 ` [net-next 10/11] e1000e: convert head, tail and itr_register offsets to __iomem pointers Jeff Kirsher
2012-01-03 19:19 ` [net-next 11/11] e1000e: pass pointer to ring struct instead of adapter struct Jeff Kirsher
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=1325618356-2655-2-git-send-email-jeffrey.t.kirsher@intel.com \
--to=jeffrey.t.kirsher@intel.com \
--cc=davem@davemloft.net \
--cc=gospo@redhat.com \
--cc=jesse.brandeburg@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).