1. 29 11月, 2009 6 次提交
  2. 27 11月, 2009 4 次提交
    • B
      sfc: Change MAC promiscuity and multicast hash at the same time · 8be4f3e6
      Ben Hutchings 提交于
      From: Steve Hodgson <shodgson@solarflare.com>
      
      Currently we can set multicast hash immediately (in atomic context)
      but must delay setting MAC promiscuity.  There is not that much
      point in deferring one but not the other, and setting the multicast
      hash on Siena will involve a firmware request.  So process them
      both in efx_mac_work().
      
      Also, set the broadcast bit in the multicast hash in
      efx_set_multicast_list(), since this is required for both Falcon and
      Siena.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      8be4f3e6
    • B
      sfc: Simplify XMAC link polling · 9007b9fa
      Ben Hutchings 提交于
      From: Steve Hodgson <shodgson@solarflare.com>
      
      Only the XMAC on Falcon needs help from the driver to poll and reset
      the MAC-PHY link (XAUI); GMII is a simple parallel bus and on later
      NICs firmware takes care of the XAUI link.  Also, an XMAC interrupt
      currently schedules a work item which simply clears a flag
      (efx_nic::mac_up) to be checked by the regular monitor (or the next
      link reconfiguration, if that is sooner).
      
      Rename the flag to xmac_poll_required, changing its sense.  Remove the
      needless indirection and just set the flag immediately.  Call
      falcon_xmac_poll() directly where required.
      
      Add a new generic operation mac_op::check_fault to check the link
      outside of regular monitoring, as required during self-tests.
      
      (Note that this leaves us with an unused work item, but we will
      immediately have another use for it.)
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      9007b9fa
    • B
      sfc: Split MAC stats DMA initiation and completion · 55edc6e6
      Ben Hutchings 提交于
      From: Steve Hodgson <shodgson@solarflare.com>
      
      Currently we initiate MAC stats DMA and busy-wait for completion when
      stats are requested.  We can improve on this with a periodic timer to
      initiate and poll for stats, and opportunistically poll when stats are
      requested.
      
      Since efx_nic::stats_disable_count and efx_stats_{disable,enable}()
      are Falcon-specific, rename them and move them accordingly.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      55edc6e6
    • B
      sfc: Fix bugs in RX queue flushing · 127e6e10
      Ben Hutchings 提交于
      Avoid overrunning the hardware limit of 4 concurrent RX queue flushes.
      Expand the queue flush state to support this.  Make similar changes to
      TX flushing to keep the code symmetric.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      127e6e10
  3. 25 11月, 2009 8 次提交
  4. 24 10月, 2009 8 次提交
  5. 27 8月, 2009 1 次提交
    • B
      sfc: Work around XMAC bug causing packet loss with some peers · cc11763b
      Ben Hutchings 提交于
      Received frames must be re-clocked by the local XGXS to the 156.25 MHz
      (DDR) clock of the XGMII.  If the remote clock is slightly faster this
      can reduce a minimum IPG of 64 bit-times (1 cycle) to 32 bit-times
      (half a cycle).  If the XMAC detects that a frame has reached the
      maximum RX frame length in the same cycle that it receives one of
      these reduced IPGs, it may miss the IPG, causing two valid frames to
      be treated as a single invalid frame (over-length with bad CRC).
      
      We work around this by increasing the maximum RX frame length so that
      peers with matched MTU will not provoke this bug.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      cc11763b
  6. 30 4月, 2009 2 次提交
  7. 22 3月, 2009 1 次提交
  8. 02 3月, 2009 3 次提交
  9. 31 1月, 2009 2 次提交
  10. 22 1月, 2009 1 次提交
    • H
      sfc: Replace LRO with GRO · da3bc071
      Herbert Xu 提交于
      This patch makes sfc invoke the GRO hooks instead of LRO.  As
      GRO has a compatible external interface to LRO this is a very
      straightforward replacement.
      
      Everything should appear identical to the user except that the
      offload is now controlled by the GRO ethtool option instead of
      LRO.  I've kept the lro module parameter as is since that's for
      compatibility only.
      
      I have eliminated efx_rx_mk_skb as the GRO layer can take care
      of all packets regardless of whether GRO is enabled or not.
      
      So the only case where we don't call GRO is if the packet checksum
      is absent.  This is to keep the behaviour changes of the patch to
      a minimum.
      Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      da3bc071
  11. 27 12月, 2008 2 次提交
  12. 13 12月, 2008 2 次提交