1. 10 6月, 2009 11 次提交
  2. 09 6月, 2009 28 次提交
  3. 08 6月, 2009 1 次提交
    • M
      declance: Restore tx descriptor ring locking · 963267bc
      Maciej W. Rozycki 提交于
      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: NMaciej W. Rozycki <macro@linux-mips.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      963267bc