1. 19 11月, 2016 2 次提交
    • E
      sfc: remove Software TSO · 46d1efd8
      Edward Cree 提交于
      It gives no advantage over GSO now that xmit_more exists.  If we find
       ourselves unable to handle a TSO skb (because our TXQ doesn't have a
       TSOv2 context and the NIC doesn't support TSOv1), hand it back to GSO.
       Also do that if the TSO handler fails with EINVAL for any other reason.
      As Falcon-architecture NICs don't support any firmware-assisted TSO,
       they no longer advertise TSO feature flags at all.
      Signed-off-by: NEdward Cree <ecree@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      46d1efd8
    • B
      sfc: Firmware-Assisted TSO version 2 · e9117e50
      Bert Kenward 提交于
      Add support for FATSOv2 to the driver. FATSOv2 offloads far more of the task
       of TCP segmentation to the firmware, such that we now just pass a single
       super-packet to the NIC. This means TSO has a great deal in common with a
       normal DMA transmit, apart from adding a couple of option descriptors.
       NIC-specific checks have been moved off the fast path and in to
       initialisation where possible.
      
      This also moves FATSOv1/SWTSO to a new file (tx_tso.c).  The end of transmit
       and some error handling is now outside TSO, since it is common with other
       code.
      Signed-off-by: NEdward Cree <ecree@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e9117e50
  2. 10 11月, 2016 1 次提交
  3. 11 2月, 2016 1 次提交
  4. 22 5月, 2015 1 次提交
    • E
      sfc: protect filter table against use-after-free · 0d322413
      Edward Cree 提交于
      If MCDI timeouts are encountered during efx_ef10_filter_table_remove(),
      an FLR will be queued, but efx->filter_state will still be kfree()d.
      The queued FLR will then call efx_ef10_filter_table_restore(), which
      will try to use efx->filter_state. This previously caused a panic.
      This patch adds an rwsem to protect the existence of efx->filter_state,
      separately from the spinlock protecting its contents.  Users which can
      race against efx_ef10_filter_table_remove() should down_read this rwsem.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0d322413
  5. 10 5月, 2015 1 次提交
    • J
      sfc: Add use of shared RSS contexts. · 267c0157
      Jon Cooper 提交于
      Allow PFs to allocate shared RSS contexts if we exhaust our
      exclusive RSS contexts. Make VFs use shared RSS contexts in
      all cases.
      Spruce up error handling so that the shadow copy of the RSS
      table is updated after successful update, rather than in all
      cases, so that we report the actual contents of the RSS table
      after a failure to set it, rather than what we'd like it to be.
      
      Populate context_size parameter when vacuously allocating RSS
      context of size 1.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      267c0157
  6. 09 12月, 2014 1 次提交
    • E
      ethtool: Support for configurable RSS hash function · 892311f6
      Eyal Perry 提交于
      This patch extends the set/get_rxfh ethtool-options for getting or
      setting the RSS hash function.
      
      It modifies drivers implementation of set/get_rxfh accordingly.
      
      This change also delegates the responsibility of checking whether a
      modification to a certain RX flow hash parameter is supported to the
      driver implementation of set_rxfh.
      
      User-kernel API is done through the new hfunc bitmask field in the
      ethtool_rxfh struct. A bit set in the hfunc field is corresponding to an
      index in the new string-set ETH_SS_RSS_HASH_FUNCS.
      
      Got approval from most of the relevant driver maintainers that their
      driver is using Toeplitz, and for the few that didn't answered, also
      assumed it is Toeplitz.
      
      Cc: Tom Lendacky <thomas.lendacky@amd.com>
      Cc: Ariel Elior <ariel.elior@qlogic.com>
      Cc: Prashant Sreedharan <prashant@broadcom.com>
      Cc: Michael Chan <mchan@broadcom.com>
      Cc: Hariprasad S <hariprasad@chelsio.com>
      Cc: Sathya Perla <sathya.perla@emulex.com>
      Cc: Subbu Seetharaman <subbu.seetharaman@emulex.com>
      Cc: Ajit Khaparde <ajit.khaparde@emulex.com>
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Cc: Jesse Brandeburg <jesse.brandeburg@intel.com>
      Cc: Bruce Allan <bruce.w.allan@intel.com>
      Cc: Carolyn Wyborny <carolyn.wyborny@intel.com>
      Cc: Don Skidmore <donald.c.skidmore@intel.com>
      Cc: Greg Rose <gregory.v.rose@intel.com>
      Cc: Matthew Vick <matthew.vick@intel.com>
      Cc: John Ronciak <john.ronciak@intel.com>
      Cc: Mitch Williams <mitch.a.williams@intel.com>
      Cc: Amir Vadai <amirv@mellanox.com>
      Cc: Solarflare linux maintainers <linux-net-drivers@solarflare.com>
      Cc: Shradha Shah <sshah@solarflare.com>
      Cc: Shreyas Bhatewara <sbhatewara@vmware.com>
      Cc: "VMware, Inc." <pv-drivers@vmware.com>
      Cc: Ben Hutchings <ben@decadent.org.uk>
      Signed-off-by: NEyal Perry <eyalpe@mellanox.com>
      Signed-off-by: NAmir Vadai <amirv@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      892311f6
  7. 18 7月, 2014 1 次提交
  8. 16 7月, 2014 1 次提交
  9. 03 6月, 2014 1 次提交
  10. 11 3月, 2014 1 次提交
  11. 13 2月, 2014 3 次提交
  12. 24 1月, 2014 1 次提交
  13. 13 12月, 2013 3 次提交
  14. 21 9月, 2013 2 次提交
  15. 30 8月, 2013 2 次提交
    • B
      sfc: Update copyright banners · f7a6d2c4
      Ben Hutchings 提交于
      Update the dates for files that have been added to in 2012-2013.
      Drop the 'Solarstorm' brand name that's still lingering here.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      f7a6d2c4
    • B
      sfc: Add support for Solarflare SFC9100 family · 8127d661
      Ben Hutchings 提交于
      This adds support for the EF10 network controller architecture and the
      SFC9100 family, starting with SFC9120 'Farmingdale', and bumps the
      driver version to 4.0.
      
      New features in the SFC9100 family include:
      
      - Flexible allocation of internal resources to PCIe physical and virtual
        functions under firmware control
      - RX event merging to reduce DMA writes at high packet rates
      - Integrated RX timestamping
      - PIO buffers for lower TX latency
      - Firmware-driven data path that supports additional offload features
        and filter types
      - Delivery of packets between functions and to multiple recipients,
        allowing firmware to implement a vswitch
      - Multiple RX flow hash (RSS) contexts with their own hash keys and
        indirection tables
      - 40G MAC (single port only)
      
      ...not all of which are enabled in this initial driver or the initial
      firmware release.
      
      Much of the new code is by Jon Cooper.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      8127d661
  16. 28 8月, 2013 4 次提交
  17. 23 8月, 2013 2 次提交
  18. 21 8月, 2013 1 次提交
  19. 25 6月, 2013 1 次提交
  20. 08 3月, 2013 1 次提交
    • B
      sfc: Enable RX DMA scattering where possible · 85740cdf
      Ben Hutchings 提交于
      Enable RX DMA scattering iff an RX buffer large enough for the current
      MTU will not fit into a single page and the NIC supports DMA
      scattering for kernel-mode RX queues.
      
      On Falcon and Siena, the RX_USR_BUF_SIZE field is used as the DMA
      limit for both all RX queues with scatter enabled.  Set it to 1824,
      matching what Onload uses now.
      
      Maintain a statistic for frames truncated due to lack of descriptors
      (rx_nodesc_trunc).  This is distinct from rx_frm_trunc which may be
      incremented when scattering is disabled and implies an over-length
      frame.
      
      Whenever an MTU change causes scattering to be turned on or off,
      update filters that point to the PF queues, but leave others
      unchanged, as VF drivers assume scattering is off.
      
      Add n_frags parameters to various functions, and make them iterate:
      - efx_rx_packet()
      - efx_recycle_rx_buffers()
      - efx_rx_mk_skb()
      - efx_rx_deliver()
      
      Make efx_handle_rx_event() responsible for updating
      efx_rx_queue::removed_count.
      
      Change the RX pipeline state to a starting ring index and number of
      fragments, and make __efx_rx_packet() responsible for clearing it.
      
      Based on earlier versions by David Riddoch and Jon Cooper.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      85740cdf
  21. 01 12月, 2012 1 次提交
  22. 02 10月, 2012 2 次提交
  23. 19 9月, 2012 1 次提交
  24. 25 8月, 2012 2 次提交
  25. 24 8月, 2012 1 次提交
  26. 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
  27. 17 7月, 2012 1 次提交