From: Gavin Shan <shangw@linux.vnet.ibm.com>
To: netdev@vger.kernel.org
Cc: nsujir@broadcom.com, davem@davemloft.net,
Gavin Shan <shangw@linux.vnet.ibm.com>
Subject: [PATCH] net/tg3: Support shutdown on PCI device
Date: Thu, 8 Aug 2013 15:26:09 +0800 [thread overview]
Message-ID: <1375946769-22814-1-git-send-email-shangw@linux.vnet.ibm.com> (raw)
Before we tries to load new kernel with "kexec", we cound't bring
the tg3 NICs down manually because dhcp daemon keeps them up. So
there're still lots of traffic (DMA operations) on the tg3 card
from the old kernel while running the new kernel. It leads to
unnecessary EEH errors on Power platform because the network traffic
(from old kernel) breaks what we have in the IOMMU, which is built
by the new kernel.
ifconfig eth0 down
kexec -l vmlinux -c "root=/dev/sda5 debug" && kexec -f -e
The patch adds the shutdown interface for the PCI device to make
things more robust. The PCI device can be put to silent state before
loading the new kernel and to avoid unnecessary EEH errors.
Reported-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Gavin Shan <shangw@linux.vnet.ibm.com>
---
drivers/net/ethernet/broadcom/tg3.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
index ddebc7a..dc6178b 100644
--- a/drivers/net/ethernet/broadcom/tg3.c
+++ b/drivers/net/ethernet/broadcom/tg3.c
@@ -17663,6 +17663,17 @@ static void tg3_remove_one(struct pci_dev *pdev)
}
}
+static void tg3_shutdown_one(struct pci_dev *pdev)
+{
+ struct net_device *dev = pci_get_drvdata(pdev);
+
+ if (!dev)
+ return;
+
+ netif_device_detach(dev);
+ tg3_remove_one(pdev);
+}
+
#ifdef CONFIG_PM_SLEEP
static int tg3_suspend(struct device *device)
{
@@ -17909,6 +17920,7 @@ static struct pci_driver tg3_driver = {
.id_table = tg3_pci_tbl,
.probe = tg3_init_one,
.remove = tg3_remove_one,
+ .shutdown = tg3_shutdown_one,
.err_handler = &tg3_err_handler,
.driver.pm = &tg3_pm_ops,
};
--
1.7.5.4
next reply other threads:[~2013-08-08 7:26 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-08 7:26 Gavin Shan [this message]
2013-08-08 14:44 ` [PATCH] net/tg3: Support shutdown on PCI device Nithin Sujir
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=1375946769-22814-1-git-send-email-shangw@linux.vnet.ibm.com \
--to=shangw@linux.vnet.ibm.com \
--cc=davem@davemloft.net \
--cc=netdev@vger.kernel.org \
--cc=nsujir@broadcom.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