1. 08 3月, 2013 1 次提交
  2. 26 2月, 2013 1 次提交
    • B
      sfc: Detach net device when stopping queues for reconfiguration · 29c69a48
      Ben Hutchings 提交于
      We must only ever stop TX queues when they are full or the net device
      is not 'ready' so far as the net core, and specifically the watchdog,
      is concerned.  Otherwise, the watchdog may fire *immediately* if no
      packets have been added to the queue in the last 5 seconds.
      
      The device is ready if all the following are true:
      
      (a) It has a qdisc
      (b) It is marked present
      (c) It is running
      (d) The link is reported up
      
      (a) and (c) are normally true, and must not be changed by a driver.
      (d) is under our control, but fake link changes may disturb userland.
      This leaves (b).  We already mark the device absent during reset
      and self-test, but we need to do the same during MTU changes and ring
      reallocation.  We don't need to do this when the device is brought
      down because then (c) is already false.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      29c69a48
  3. 08 12月, 2012 1 次提交
  4. 04 12月, 2012 1 次提交
  5. 01 12月, 2012 2 次提交
  6. 06 10月, 2012 1 次提交
  7. 19 9月, 2012 1 次提交
  8. 08 9月, 2012 2 次提交
  9. 25 8月, 2012 12 次提交
  10. 02 8月, 2012 1 次提交
    • B
      sfc: Fix maximum number of TSO segments and minimum TX queue size · 7e6d06f0
      Ben Hutchings 提交于
      Currently an skb requiring TSO may not fit within a minimum-size TX
      queue.  The TX queue selected for the skb may stall and trigger the TX
      watchdog repeatedly (since the problem skb will be retried after the
      TX reset).  This issue is designated as CVE-2012-3412.
      
      Set the maximum number of TSO segments for our devices to 100.  This
      should make no difference to behaviour unless the actual MSS is less
      than about 700.  Increase the minimum TX queue size accordingly to
      allow for 2 worst-case skbs, so that there will definitely be space
      to add an skb after we wake a queue.
      
      To avoid invalidating existing configurations, change
      efx_ethtool_set_ringparam() to fix up values that are too small rather
      than returning -EINVAL.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7e6d06f0
  11. 17 7月, 2012 1 次提交
  12. 10 5月, 2012 2 次提交
  13. 09 5月, 2012 1 次提交
    • B
      sfc: Fix division by zero when using one RX channel and no SR-IOV · 3132d282
      Ben Hutchings 提交于
      If RSS is disabled on the PF (efx->n_rx_channels == 1) we try to set
      up the indirection table so that VFs can use it, setting
      efx->rss_spread = efx_vf_size(efx).  But if SR-IOV was disabled at
      compile time, this evaluates to 0 and we end up dividing by zero when
      initialising the table.
      
      I considered changing the fallback definition of efx_vf_size() to
      return 1, but its value is really meaningless if we are not going to
      enable VFs.  Therefore add a condition of efx_sriov_wanted(efx) in
      efx_probe_interrupts().
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      3132d282
  14. 07 3月, 2012 3 次提交
  15. 24 2月, 2012 1 次提交
  16. 23 2月, 2012 1 次提交
  17. 16 2月, 2012 7 次提交
  18. 14 2月, 2012 1 次提交