Subject: Re: [PATCH] e1000: Reset all functions after a PCI error

From: Auke Kok <[email-masked]>
Date: Tue, 17 Oct 2006 13:56:56 -0700

Linas Vepstas wrote:
> Please apply and forward upstream.

ACK

Jeff, please apply on top of today's fixes.

Auke

> --linas
> 
> 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). 
> 
> Signed-off-by: Linas Vepstas <[email-masked]>
> Cc: Jesse Brandeburg <[email-masked]>
> Cc: Auke Kok <[email-masked]>
> 
> ----
>  drivers/net/e1000/e1000_main.c |    4 ----
>  1 file changed, 4 deletions(-)
> 
> Index: linux-2.6.19-rc1-git11/drivers/net/e1000/e1000_main.c
> ===================================================================
> --- linux-2.6.19-rc1-git11.orig/drivers/net/e1000/e1000_main.c	2006-10-17 15:02:25.000000000 -0500
> +++ linux-2.6.19-rc1-git11/drivers/net/e1000/e1000_main.c	2006-10-17 15:03:35.000000000 -0500
> @@ -4914,10 +4914,6 @@ static pci_ers_result_t e1000_io_slot_re
>  	pci_enable_wake(pdev, PCI_D3hot, 0);
>  	pci_enable_wake(pdev, PCI_D3cold, 0);
>  
> -	/* 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);
>