1. 07 5月, 2009 1 次提交
    • M
      bnx2: Fix panic in bnx2_poll_work(). · 581daf7e
      Michael Chan 提交于
      Add barrier() to bnx2_get_hw_{tx|rx}_cons() to fix this issue:
      
      http://bugzilla.kernel.org/show_bug.cgi?id=12698
      
      This issue was reported by multiple i386 users.  Without barrier(),
      the compiled code looks like the following where %eax contains the
      address of the tx_cons or rx_cons in the DMA status block.  The
      status block contents can change between the cmpb and the movzwl
      instruction.  The driver would crash if the value was not 0xff during
      the cmpb instruction, but changed to 0xff during the movzwl
      instruction.
      
      6828:	80 38 ff             	cmpb   $0xff,(%eax)
      682b:	0f b7 10             	movzwl (%eax),%edx
      
      With the added barrier(), the compiled code now looks correct:
      
      683d:	0f b7 10             	movzwl (%eax),%edx
      6840:	0f b6 c2             	movzbl %dl,%eax
      6843:	3d ff 00 00 00       	cmp    $0xff,%eax
      
      Thanks to Pascal de Bruijn <pmjdebruijn@pcode.nl> for reporting the
      problem and Holger Noefer <hnoefer@pironet-ndh.com> for patiently
      testing test patches for us.
      
      Also updated version to 2.0.1.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      581daf7e
  2. 09 4月, 2009 1 次提交
  3. 07 4月, 2009 3 次提交
  4. 05 4月, 2009 1 次提交
    • M
      bnx2: Use request_firmware() · 57579f76
      Michael Chan 提交于
      Based on original patch by Ben Hutchings <ben@decadent.org.uk> and
      Bastian Blank <waldi@debian.org>, with the following main changes:
      
      Separated the mips firmware and rv2p firmware into different files
      to make it easier to update them separately.
      
      Added some code to fixup the rv2p code with run-time information
      such as PAGE_SIZE.
      
      Update version to 2.0.0.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      57579f76
  5. 19 3月, 2009 1 次提交
    • M
      bnx2: Fix problem of using wrong IRQ handler. · 69010313
      Michael Chan 提交于
      The MSI-X handler was chosen before the call to pci_enable_msix().
      If MSI-X was not available, the wrong MSI-X handler would be used in
      INTA mode.  This would cause a screaming interrupt problem because
      INTA would not be cleared by the MSI-X handler.
      
      Fixed by assigning MSI-X handler after pci_enable_msix() returns
      successfully.  Also update version to 1.9.3.
      
      Thomas Chenault <thomas_chenault@dell.com> helped us find this problem.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      69010313
  6. 13 2月, 2009 2 次提交
  7. 28 1月, 2009 1 次提交
  8. 22 1月, 2009 2 次提交
  9. 23 12月, 2008 1 次提交
  10. 18 12月, 2008 1 次提交
  11. 17 12月, 2008 2 次提交
  12. 03 12月, 2008 1 次提交
    • M
      bnx2: Add workaround to handle missed MSI. · efba0180
      Michael Chan 提交于
      The bnx2 chips do not support per MSI vector masking.  On 5706/5708, new MSI
      address/data are stored only when the MSI enable bit is toggled.  As a result,
      SMP affinity no longer works in the latest kernel.  A more serious problem is
      that the driver will no longer receive interrupts when the MSI receiving CPU
      goes offline.
      
      The workaround in this patch only addresses the problem of CPU going offline.
      When that happens, the driver's timer function will detect that it is making
      no forward progress on pending interrupt events and will recover from it.
      
      Eric Dumazet reported the problem.
      
      We also found that if an interrupt is internally asserted while MSI and INTA
      are disabled, the chip will end up in the same state after MSI is re-enabled.
      The same workaround is needed for this problem. 
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Tested-by: NEric Dumazet <dada1@cosmosbay.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      efba0180
  13. 29 11月, 2008 1 次提交
  14. 22 11月, 2008 1 次提交
  15. 13 11月, 2008 6 次提交
  16. 04 11月, 2008 1 次提交
  17. 28 10月, 2008 1 次提交
  18. 10 10月, 2008 5 次提交
  19. 19 9月, 2008 4 次提交
  20. 16 8月, 2008 1 次提交
  21. 15 8月, 2008 3 次提交