Sophie

Sophie

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

kernel-2.6.18-238.el5.src.rpm

From: Janice M. Girouard<jgirouar@redhat.com>
Subject: [RHEL 5.0 PPC PATCH] RHBZ# 211694 RIT104528- e1000: Reset all functions after a PCI error
Date: Tue, 24 Oct 2006 18:23:19
Bugzilla: 211694
Changelog: e1000: Reset all functions after a PCI error

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

Description:
------------
During the handling of the PCI error recovery sequence, the current e1000 driver erroneously blocks a device reset for any but the first PCI function. It shouldn't -- this is a cut-n-paste error from a different driver (which tolerated only one hardware reset per hardware card).  The result is that after a PCI error, other functions on a multi-function card are not properly reset.

A 2 line coding change corrects this problem.

RHEL Version Found:
-------------------
RHEL 5.0

Upstream Status:
----------------
Accepted by the maintainer 10/17/06
http://www.ussg.iu.edu/hypermail/linux/kernel/0610.2/0641.html

Test Status:
------------
This was tested by IBM using an errinject test application. ie.
errinjct ioa-bus-error -f 17 -s net/eth3

This patch assumes a kernel base of 2.6.18-2733.  Note: this patch is for the ppc64 kernel only.

Proposed Patch:
---------------

__
Presented for your consideration and ACK for RHEL 5.0

Index: latest/drivers/net/e1000/e1000_main.c
===================================================================
--- latest.orig/drivers/net/e1000/e1000_main.c
+++ latest/drivers/net/e1000/e1000_main.c
@@ -4849,10 +4849,6 @@ static pci_ers_result_t e1000_io_slot_re
 	pci_enable_wake(pdev, 3, 0);
 	pci_enable_wake(pdev, 4, 0); /* 4 == D3 cold */
 
-	/* Perform card reset only on one instance of the card */
-	if (PCI_FUNC (pdev->devfn) != 0)
-		return PCI_ERS_RESULT_RECOVERED;
-
 	e1000_reset(adapter);
 	E1000_WRITE_REG(&adapter->hw, WUS, ~0);