1. 16 6月, 2016 10 次提交
  2. 26 5月, 2016 1 次提交
  3. 29 4月, 2016 1 次提交
    • J
      sfc: disable RSS when unsupported · dcb4123c
      Jon Cooper 提交于
      When certain firmware variants are selected (via the sfboot utility) the
      SFC7000 and SFC8000 series NICs don't support RSS. The driver still
      tries (and fails) to insert filters with the RSS flag, and the NIC fails
      to pass traffic.
      
      When the firmware reports RSS_LIMITED suppress allocating a default RSS
      context. The absence of an RSS context is picked up in filter insertion
      and RSS flags are discarded.
      Signed-off-by: NBert Kenward <bkenward@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      dcb4123c
  4. 24 12月, 2015 2 次提交
  5. 12 12月, 2015 1 次提交
  6. 06 12月, 2015 1 次提交
    • D
      sfc: check warm_boot_count after other functions have been reset · abd86a55
      Daniel Pieczko 提交于
      A change in MCFW behaviour means that the net driver must update its record
      of the warm_boot_count by reading it from the ER_DZ_BIU_MC_SFT_STATUS
      register.
      
      On v4.6.x MCFW the global boot count was incremented when some functions
      needed to be reset to enable multicast chaining, so all functions saw the
      same value.  In that case, the driver needed to increment its
      warm_boot_count when other functions were reset, to avoid noticing it later
      and then trying to reset itself to recover unnecessarily.
      
      With v4.7+ MCFW, the boot count in firmware doesn't change as that is
      unnecessary since the PFs that have been reset will each receive an MC
      reboot notification.  In that case, the driver re-reads the unchanged
      value.
      Signed-off-by: NBert Kenward <bkenward@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      abd86a55
  7. 02 12月, 2015 1 次提交
  8. 03 11月, 2015 1 次提交
  9. 12 10月, 2015 1 次提交
    • D
      sfc: fully reset if MC_REBOOT event received without warm_boot_count increment · c577e59e
      Daniel Pieczko 提交于
      On EF10, MC_CMD_VPORT_RECONFIGURE can cause a CODE_MC_REBOOT event
      to be sent to a function without incrementing the (adapter-wide)
      warm_boot_count.  In this case, the reboot is not detected by the
      loop on efx_mcdi_poll_reboot(), so prepare for recovery from an MC
      reboot anyway.  When this codepath is run, the MC has always just
      rebooted, so this recovery is valid.
      
      The loop on efx_mcdi_poll_reboot() is still required for other MC
      reboot cases, so that actions in response to an MC reboot are
      performed, such as clearing locally calculated statistics.
      Siena NICs are unaffected by this change as the above scenario
      does not apply.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c577e59e
  10. 29 8月, 2015 1 次提交
    • S
      sfc: Allow driver to cope with a lower number of VIs than it needs for RSS · b0fbdae1
      Shradha Shah 提交于
      Previously, the driver would refuse to load if it couldn't secure
      enough VIs from the MC to fulfill its RSS requirements.
      This was causing probe to fail on later functions in
      configurations where we'd run out of VIs, such as having many
      VFs.
      
      This change allows the driver to load with fewer VIs, down to a
      minimum of 2. A warning will be printed saying that RSS
      requirements were not met, possibly affecting performance.
      
      efx->max_tx_channels needs to be set to avoid going down the
      failure path in efx_probe_nic() immediately in the loop after the
      probe() NIC-type function.
      Also, Set rc=ENOSPC when bombing out of efx_probe_nic due to lack
      of VIs.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      b0fbdae1
  11. 28 8月, 2015 1 次提交
  12. 01 8月, 2015 2 次提交
  13. 22 7月, 2015 8 次提交
  14. 09 7月, 2015 3 次提交
  15. 03 6月, 2015 6 次提交
    • D
      sfc: leak vports if a VF is assigned during PF unload · 6598dad2
      Daniel Pieczko 提交于
      If any VF is assigned as the PF is unloaded, do not attempt to
      remove its vport or the vswitch.  These will be removed if the
      driver binds to the PF again, as an entity reset occurs during
      probe.
      
      A 'force' flag is added to efx_ef10_pci_sriov_disable() to
      distinguish between disabling SR-IOV and driver unload.
      SR-IOV cannot be disabled if VFs are assigned to guests.
      
      If the PF driver is unloaded while VFs are assigned, the driver
      may try to bind to the VF again at a later point if the driver
      has been reloaded and the VF returns to the same domain as the PF.
      In this case, the PF will not have a VF data structure, so the VF
      can check this and drop out of probe early.
      
      In this case, efx->vf_count will be zero but VFs will be present.
      The user is advised to remove the VF and re-create it. The check
      at the beginning of efx_ef10_pci_sriov_disable() that
      efx->vf_count is non-zero is removed to allow SR-IOV to be
      disabled in this case. Also, if the PF driver is unloaded, it
      will disable SR-IOV to remove these unknown VFs.
      
      By not disabling bus-mastering if VFs are still assigned, the VF
      will continue to pass traffic after the PF has been removed.
      
      When using the max_vfs module parameter, if VFs are already
      present do not try to initialise any more.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6598dad2
    • D
      sfc: don't update stats on VF when called in atomic context · f00bf230
      Daniel Pieczko 提交于
      The ifenslave command to set up a bond runs in an atomic
      context, and it queries the stats on the devices that are
      being enslaved. A VF needs to make an MCDI call to update
      its stats, which is not allowed in atomic context.
      
      The releasing of the stats_lock is moved to the beginning of
      the VF stats update function so that in_interrupt() can be
      used; it must be taken again before returning from this
      function.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f00bf230
    • D
      sfc: suppress vadaptor stats when EVB is not present · d94619cd
      Daniel Pieczko 提交于
      The raw_mask array is not initialised, so it needs to be
      explicitly set to zero in the 'else' branch.
      
      If the EVB capability is not present, a port cannot have multiple
      functions so the per-port MAC stats are correct and should match
      the corresponding vadaptor stats, so this redundancy can be
      removed from the ethtool stats output.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d94619cd
    • D
      sfc: suppress ENOENT error messages from MC_CMD_MAC_STATS · 6dd4859b
      Daniel Pieczko 提交于
      MC_CMD_MAC_STATS can be called on a function before a
      vadaptor has been created, as the kernel can call into this
      through ndo_get_stats/ndo_get_stats64.
      
      If MC_CMD_MAC_STATS is called before the DMA queues have been
      setup, so that a vadaptor has not been created yet, firmware
      will return ENOENT. This is expected, so suppress the MCDI
      error message in this case.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6dd4859b
    • D
      sfc: update netdevice statistics to use vadaptor stats · 0fc95fca
      Daniel Pieczko 提交于
      The netdevice statistics (in /proc/net/dev) are per-function
      stats so they must use the vadaptor stats. Change the use of
      MAC stats to vadaptor stats, and remove any statistics that
      can only be measured per-port.  All stats that are removed
      will be shown as zeroes when these statistics are displayed.
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      0fc95fca
    • D
      sfc: DMA the VF stats only when requested · d7788196
      Daniel Pieczko 提交于
      Firmware does not support a periodic DMA of vadaptor-stats
      on VFs, so only update the stats buffer when stats are
      requested (when running "ethtool -S" or an ip/ifconfig
      command that reports stats).
      Signed-off-by: NShradha Shah <sshah@solarflare.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d7788196