Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 27922b4260f65d317aabda37e42bbbff > files > 2601

kernel-2.6.18-238.el5.src.rpm

From: AMEET M. PARANJAPE <aparanja@redhat.com>
Date: Thu, 30 Oct 2008 13:54:13 -0500
Subject: [net] e1000e: update driver to support recovery
Message-id: 490A02D5.1080103@REDHAT.COM
O-Subject: Re: [PATCH RHEL5.3 BZ445299 2/2 version2] Update e1000 express device driver to support recovery
Bugzilla: 445299
RH-Acked-by: Pete Zaitcev <zaitcev@redhat.com>
RH-Acked-by: David Howells <dhowells@redhat.com>

RHBZ#:
======
https://bugzilla.redhat.com/show_bug.cgi?id=445299

Description:
===========
This patch is in response to the comments made in RKML post:

http://post-office.corp.redhat.com/archives/rhkernel-list/2008-August/msg00924.html.

and it removes the casts from the memset lines.  The new patch was tested
and verfied to work.  The latest brewbuild ID is given below.

I wasn't able to figure out how to contect back to the orginal thread using
Thunderbird, but since this is time sensitive, I hope this will be OK for
now.

kABI Status:
============
No symbols were harmed.

Brew:
=====
Built on all platforms.
https://brewweb.devel.redhat.com/taskinfo?taskID=1534373

This patch has been reworked based on the previous comments.
Specifically it removes the two stats clearing lines.
They aren't part of the EEH fix and aren't upstream yet. If they are
accepted upstream, we will resubmit them under
a different bug report.  The patch has been tested and verified and has
brew build:
https://brewweb.devel.redhat.com/taskinfo?taskID=1547623.

--
Ameet M. Paranjape
aparanja@redhat.com
IBM/Red Hat POWER Liason
IRC name: aparanja

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index e3c67e3..8d24642 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -4604,6 +4604,8 @@ static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev)
 		return PCI_ERS_RESULT_DISCONNECT;
 	}
 	pci_set_master(pdev);
+	restore_pcie_reg(pdev);
+	pci_restore_msi_state(pdev);
 
 	pci_enable_wake(pdev, PCI_D3hot, 0);
 	pci_enable_wake(pdev, PCI_D3cold, 0);
@@ -4748,6 +4750,7 @@ static int __devinit e1000_probe(struct pci_dev *pdev,
 		goto err_pci_reg;
 
 	pci_set_master(pdev);
+	save_pcie_reg(pdev);
 
 	err = -ENOMEM;
 	netdev = alloc_etherdev(sizeof(struct e1000_adapter));