Subject: Re: [PATCH] fix MCA when shutting down tulip quad-NIC

From: Valerie Henson <[email-masked]>
Date: Thu, 5 Apr 2007 14:34:17 -0700

On Tue, Apr 03, 2007 at 11:19:16PM +0200, Olaf Hering wrote:
> From: [email-masked]
> 
>  https://bugzilla.novell.com/show_bug.cgi?id=SUSE39204

Wow, registering for Novell's bugzilla is painful.  And in the end I
get "Access denied" on that bug.  Can you give us this information
some other way?

> Shutting down the network causes an MCA because of an IO TLB error when
> a DEC quad 10/100 card is in any slot.  This problem was originally seen
> on an HP rx4640.

I'm not clear on why pci_disable_device() would fix this bug.  Do you
have an explanation (or can copy one out of the bug report)?  I'm
hesitant to make even obviously correct changes to the tulip driver
without good evidence, given the incredible variety of buggy hardware
out there.

This looks to me like another iteration of the shutdown DMA/irq race
at first glance.  Grant has a patch for it; I'm working on one I
consider cleaner.

-VAL

> 
> 
> Signed-off-by: Olaf Hering <[email-masked]>
> 
> ---
> 
> Andrew: Why is it tp->pdev instead of pdev?

> 
>  drivers/net/tulip/tulip_core.c |    1 +
>  1 file changed, 1 insertion(+)
> 
> Index: b/drivers/net/tulip/tulip_core.c
> ===================================================================
> --- a/drivers/net/tulip/tulip_core.c
> +++ b/drivers/net/tulip/tulip_core.c
> @@ -1798,6 +1798,7 @@ static void __devexit tulip_remove_one (
>  		return;
>  
>  	tp = netdev_priv(dev);
> +	pci_disable_device(tp->pdev);
>  	unregister_netdev(dev);
>  	pci_free_consistent (pdev,
>  			     sizeof (struct tulip_rx_desc) * RX_RING_SIZE +