linux-mips
[Top] [All Lists]

Re: [PATCH] declance: Restore tx descriptor ring locking

To: macro@linux-mips.org
Subject: Re: [PATCH] declance: Restore tx descriptor ring locking
From: David Miller <davem@davemloft.net>
Date: Mon, 08 Jun 2009 02:42:53 -0700 (PDT)
Cc: netdev@vger.kernel.org, linux-mips@linux-mips.org
In-reply-to: <alpine.LFD.1.10.0906080219360.6360@ftp.linux-mips.org>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <alpine.LFD.1.10.0906080219360.6360@ftp.linux-mips.org>
Sender: linux-mips-bounce@linux-mips.org
From: "Maciej W. Rozycki" <macro@linux-mips.org>
Date: Mon, 8 Jun 2009 02:47:05 +0100 (WEST)

> A driver overhaul on 29 Feb 2000 (!) broke locking around fiddling with 
> the tx descriptor ring in start_xmit(); a follow-on "fix" removed the 
> broken remnants altogether.  Here's a patch to restore proper locking in 
> the function -- the complement in the interrupt handler has been correct 
> all the time.
> 
>  This *may* have been the reason for the occasional confusion of the chip 
> -- triggering a tx timeout followed by a chip reset sequence -- seen on 
> R4k-based DECstations with the onboard Ethernet interface.  Another theory 
> is the confusion is due to an unindentified problem -- perhaps a silicon 
> erratum -- associated with the variation of the MT ASIC used to interface 
> the R4k CPU to the rest of the system on these computers; with its 
> aggressive write-back buffering the design is particularly weakly ordered 
> when it comes to MMIO (in the absence of ordering barriers uncached reads 
> are allowed to bypass earlier uncached writes, even if to the same 
> location), which may trigger all kinds of corner cases in peripheral 
> hardware as well as software.
> 
> Either way this piece of code is buggy.
> 
> Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>

Looks good to me, applied.

<Prev in Thread] Current Thread [Next in Thread>