1. 13 7月, 2011 1 次提交
  2. 25 6月, 2011 5 次提交
    • B
      sfc: Fix assertions in efx_filter_rfs() · 58932790
      Ben Hutchings 提交于
      This function is intended to assert (when DEBUG is defined) that the
      skb header area includes the header fields it's looking at, which RFS
      should already have pulled.  But it uses pskb_may_pull(), which will
      attempt to pull more data if necesary.  It must instead compare
      skb_headlen() with the required length.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      58932790
    • S
      sfc: Fix Siena mac statistics on big endian platforms · a659b2a9
      Steve Hodgson 提交于
      [bwh: Use __force in the one place it's needed]
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      a659b2a9
    • B
      sfc: Fix mapping of reset reasons and flags to methods · 0e2a9c7c
      Ben Hutchings 提交于
      There are certain hardware bugs that may occur on Falcon during normal
      operation, that require a reset to recover from.  We try to minimise
      disruption by keeping the PHY running, following a reset sequence
      labelled as 'invisible'.
      
      Siena does not suffer from these hardware bugs, so we have not
      implemented an 'invisible' reset sequence.  However, if a similar
      error does occur (due to a hardware fault or software bug) then the
      code shared with Falcon will wrongly assume that the PHY is not being
      reset.
      
      Since the mapping of reset reasons (internal) and flags (ethtool) to
      methods must differ significantly between NIC types, move it into
      per-NIC-type functions (replacing the insufficient reset_world_flags
      field).
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      0e2a9c7c
    • B
      sfc: Allow resets to be upgraded; use atomic ops for safety · a7d529ae
      Ben Hutchings 提交于
      Currently an attempt to schedule any reset is ignored if a reset
      is already pending.  This ignores the relative scopes - if the
      requested reset is greater in scope then the scheduled reset should
      be upgraded accordingly.
      
      There are also some race conditions which could lead to a reset
      request being lost.  Deal with them by using atomic operations on a
      bitmask.  This also makes tests on reset_pending easier to get right.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      a7d529ae
    • B
      sfc: Fix loop condition for efx_filter_search() when !for_insert · 4017dbdc
      Ben Hutchings 提交于
      efx_filter_remove_filter() fails to remove inserted filters in some cases.
      
      For example:
      
        1. Two filters A and B have specifications that result in an initial
           hash collision.
        2. A is inserted first, followed by B.
        3. An attempt to remove B first succeeds, but if A is removed first
           a subsequent attempt to remove B fails.
      
      When searching for an existing filter (!for_insert),
      efx_filter_search() must always continue to the maximum search depth
      for the given type rather than stopping at the first unused entry.
      Signed-off-by: NBen Hutchings <bhutchings@solarflare.com>
      4017dbdc
  3. 24 6月, 2011 20 次提交
  4. 23 6月, 2011 2 次提交
  5. 22 6月, 2011 12 次提交