1. 12 7月, 2007 2 次提交
    • M
      [TG3]: Fix the polarity bit. · e8f3f6ca
      Matt Carlson 提交于
      For most pre-5705 devices, multiple link interrupts were being generated
      for a single physical link change.  The source of the interrupts was
      determined to be unnecessary toggling of the MAC link polarity bit.
      
      This patch changes the way the link polarity bit gets configured.  Where
      possible, code that dynamically configures the bit in response to link
      changes has been replaced by code that configures the bit once during
      initialization time and then leaves the bit alone.
      
      For correctness, this patch also limits the use of the bit to those
      devices where it is defined, namely devices before the 5705.  This patch
      also corrects the link polarity configurations for 5700 devices when
      paired against a bcm5411 phy.
      Signed-off-by: NMatt Carlson <mcarlson@broadcom.com>
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e8f3f6ca
    • M
      [TG3]: Fix irq_sync race condition. · 46966545
      Michael Chan 提交于
      Gagan Arneja <gaagaan@gmail.com> pointed out that tg3_reset_task()
      could potentially race with another thread calling tg3_full_lock()
      such as the ethtool_set_xxx() functions.  This may trigger the
      BUG_ON() in tg3_irq_quiesce() or cause the irq_sync flag to be out-
      of-sync.
      
      I think the easiest way to fix this is to get the tp->lock first
      before setting the irq_sync flag.  This is safe to do because the
      tp->lock is never grabbed by the irq handler.  This change will
      guarantee that the irq_sync flag updates will be serialized.  We also
      have to change one spot to call tg3_netif_start() (which clears the
      irq_sync flag) before releasing the tp->lock.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      46966545
  2. 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
  3. 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
  4. 03 6月, 2007 1 次提交
  5. 10 5月, 2007 2 次提交
  6. 07 5月, 2007 3 次提交
  7. 06 5月, 2007 8 次提交
  8. 26 4月, 2007 8 次提交
  9. 07 4月, 2007 1 次提交
  10. 26 3月, 2007 3 次提交
  11. 03 3月, 2007 1 次提交
  12. 27 2月, 2007 1 次提交
    • M
      [TG3]: TSO workaround fixes. · 7f62ad5d
      Michael Chan 提交于
      1.  Add race condition check after netif_stop_queue().  tg3_tx() runs
          without netif_tx_lock and can race with tg3_start_xmit_dma_bug() ->
          tg3_tso_bug().
      
      2.  Firmware TSO in 5703/5704/5705 also have the same TSO limitation,
          i.e. they cannot handle TSO headers bigger than 80 bytes.  Rename
          TG3_FL2_HW_TSO_1_BUG to TG3_FL2_TSO_BUG and set this flag on
          these chips as well.
      
      3.  Update version to 3.74.
      Signed-off-by: NMichael Chan <mchan@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7f62ad5d
  13. 14 2月, 2007 8 次提交