1. 12 10月, 2007 1 次提交
    • D
      [NET]: Fix NAPI completion handling in some drivers. · 6f535763
      David S. Miller 提交于
      In order for the list handling in net_rx_action() to be
      correct, drivers must follow certain rules as stated by
      this comment in net_rx_action():
      
      		/* Drivers must not modify the NAPI state if they
      		 * consume the entire weight.  In such cases this code
      		 * still "owns" the NAPI instance and therefore can
      		 * move the instance around on the list at-will.
      		 */
      
      A few drivers do not do this because they mix the budget checks
      with reading hardware state, resulting in crashes like the one
      reported by takano@axe-inc.co.jp.
      
      BNX2 and TG3 are taken care of here, SKY2 fix is from Stephen
      Hemminger.
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f535763
  2. 11 10月, 2007 15 次提交
  3. 11 9月, 2007 1 次提交
    • M
      [TG3]: Workaround MSI bug on 5714/5780. · 2fbe43f6
      Michael Chan 提交于
      A hardware bug was revealed after a recent PCI MSI patch was made to
      always disable legacy INTX when enabling MSI.  The 5714/5780 chips
      will not generate MSI when INTX is disabled, causing MSI failure
      messages to be reported, and another patch was made to workaround the
      problem by disabling MSI on ServerWorks HT1000 bridge chips commonly
      found with the 5714.
      
      We workaround this chip bug by enabling INTX after we enable MSI and
      after we resume from suspend.
      
      Update version to 3.81.
      
      This problem was discovered by David Miller.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Acked-by: NAndy Gospodarek <andy@greyhouse.net>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2fbe43f6
  4. 04 8月, 2007 1 次提交
    • M
      [TG3]: Fix suspend/resume problem. · 3e0c95fd
      Michael Chan 提交于
      Joachim Deguara <joachim.deguara@amd.com> reported that tg3 devices
      would not resume properly if the device was shutdown before the system
      was suspended.  In such scenario where the netif_running state is 0,
      tg3_suspend() would not save the PCI state and so the memory enable bit
      and bus master enable bit would be lost.
      
      We fix this by always saving and restoring the PCI state in
      tg3_suspend() and tg3_resume() regardless of netif_running() state.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3e0c95fd
  5. 01 8月, 2007 1 次提交
  6. 19 7月, 2007 1 次提交
    • M
      [TG3]: Fix msi issue with kexec/kdump. · ee6a99b5
      Michael Chan 提交于
      Tina Yang <tina.yang@oracle.com> discovered an MSI related problem
      when doing kdump.  The problem is that the kexec kernel is booted
      without going through system reset, and as a result, MSI may already
      be enabled when tg3_init_one() is called.  tg3_init_one() calls
      pci_save_state() which will save the stale MSI state.  Later on in
      tg3_open(), we call pci_enable_msi() to reconfigure MSI on the chip
      before we reset the chip.  After chip reset, we call
      pci_restore_state() which will put the stale MSI address/data back
      onto the chip.
      
      This is no longer a problem in the latest kernel because
      pci_restore_state() has been changed to restore MSI state from
      internal data structures which will guarantee restoring the proper
      MSI state.
      
      But I think we should still fix it.  Our save and restore sequence
      can still cause very subtle problems down the road.  The fix is to
      have our own functions save and restore precisely what we need.  We
      also change it to save and restore state inside tg3_chip_reset() in a
      more straight forward way.
      
      Thanks to Tina for helping to test and debug the problem.
      
      [ Bump driver version and release date. -DaveM ]
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ee6a99b5
  7. 15 7月, 2007 1 次提交
  8. 12 7月, 2007 6 次提交
  9. 11 7月, 2007 1 次提交
    • S
      [NET]: IPV6 checksum offloading in network devices · d212f87b
      Stephen Hemminger 提交于
      The existing model for checksum offload does not correctly handle
      devices that can offload IPV4 and IPV6 only. The NETIF_F_HW_CSUM flag
      implies device can do any arbitrary protocol.
      
      This patch:
       * adds NETIF_F_IPV6_CSUM for those devices
       * fixes bnx2 and tg3 devices that need it
       * add NETIF_F_IPV6_CSUM to ipv6 output (incl GSO)
       * fixes assumptions about NETIF_F_ALL_CSUM in nat
       * adjusts bridge union of checksumming computation
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d212f87b
  10. 04 6月, 2007 1 次提交
    • M
      [TG3]: Fix link problem on Dell's onboard 5906. · 007a880d
      Michael Chan 提交于
      The bug is caused by code that always set
      (TG3_FLAG_USE_MI_INTERRUPT | TG3_FLAG_USE_LINKCHG_REG) on all Dell's
      onboard devices.  With these 2 flags set, the link status is polled
      by tg3_timer() and will only work when the PHY is set up to interrupt
      the MAC on link changes.  This breaks 5906 because the 5906 PHY does
      not support TG3_FLAG_USE_MI_INTERRUPT the same as other PHYs.
      
      For correctness, only Dell's onboard 5701 needs these 2 flags to be
      set.  This change will fix the 5906 problem and will change other
      Dell devices except 5700 and 5701 to use the more efficient
      interrupt-driven link changes.
      
      Update version to 3.77.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      007a880d
  11. 03 6月, 2007 1 次提交
  12. 10 5月, 2007 2 次提交
  13. 07 5月, 2007 3 次提交
  14. 06 5月, 2007 5 次提交