1. 23 7月, 2012 1 次提交
    • Y
      bnx2x: Add new 57840 device IDs · c3def943
      Yuval Mintz 提交于
      The 57840 boards come in two flavours: 2 x 20G and 4 x 10G.
      To better differentiate between the two flavours, a separate device ID
      was assigned to each.
      The silicon default value is still the currently supported 57840 device ID
      (0x168d), and since a user can damage the nvram (e.g., 'ethtool -E')
      the driver will still support this device ID to allow the user to amend the
      nvram back into a supported configuration.
      
      Notice this patch contains lines longer than 80 characters (strings).
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c3def943
  2. 17 7月, 2012 1 次提交
  3. 11 7月, 2012 1 次提交
  4. 10 7月, 2012 1 次提交
  5. 27 6月, 2012 1 次提交
  6. 20 6月, 2012 9 次提交
  7. 14 6月, 2012 1 次提交
    • E
      bnx2x: fix checksum validation · d6cb3e41
      Eric Dumazet 提交于
      bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
      encapsulated segments. TCP stack happily accepts frames with bad
      checksums, if they are inside a GRE or IPIP encapsulation.
      
      Our understanding is that if no IP or L4 csum validation was done by the
      hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
      hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.
      
      Then, if IP/L4 checksumming was done by the hardware, set
      CHECKSUM_UNNECESSARY if no error was flagged.
      
      Patch based on findings and analysis from Robert Evans
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Cc: Yaniv Rosner <yanivr@broadcom.com>
      Cc: Merav Sicron <meravs@broadcom.com>
      Cc: Tom Herbert <therbert@google.com>
      Cc: Robert Evans <evansr@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Acked-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      d6cb3e41
  8. 24 4月, 2012 3 次提交
  9. 04 4月, 2012 5 次提交
  10. 28 3月, 2012 1 次提交
  11. 20 3月, 2012 3 次提交
  12. 21 2月, 2012 3 次提交
    • D
      0b0a635f
    • D
      bnx2x: add gro_check · fe603b4d
      Dmitry Kravkov 提交于
      The patch provides workaround for BUG in FW 7.2.16,
      which in GRO mode may miscalculate buffer and
      place on SGE one frag less than it could.
      It may happen only for some MTUs, we mark these MTUs
      with gro_check flag during device initialization or
      MTU change.
      
      Next FW should include fix for the issue and the
      patch could be reverted.
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      fe603b4d
    • D
      use FW 7.2.16 · 621b4d66
      Dmitry Kravkov 提交于
      The patch integrates FW 7.2.16 HSI and implements driver
      part of GRO flow.
      
      FW 7.2.16 adds the ability to aggregate packets for GRO
      (and not just LRO) and also fixes some bugs.
      
      1. Added new aggregation mode: GRO. In this mode packets are aggregated
         such that the original packets can be reconstructed by the OS.
      2. 57712 HW bug workaround - initialized all CAM TM registers to 0x32.
      3. Adding the FCoE statistics structures to the BNX2X HSI.
      4. Wrong configuration of TX HW input buffer size may cause theoretical
         performance effect. Performed configuration fix.
      5. FCOE - Arrival of packets beyond task IO size can lead to crash.
         Fix firmware data-in flow.
      6. iSCSI - In rare cases of on-chip termination the graceful termination
         timer hangs, and the termination doesn't complete. Firmware fix to MSL
         timer tolerance.
      7. iSCSI - Chip hangs when target sends FIN out-of-order or with isles
         open at the initiator side. Firmware implementation corrected to drop
         FIN received out-of-order or with isles still open.
      8. iSCSI - Chip hangs when in case of retransmission not aligned to 4-bytes
         from the beginning of iSCSI PDU. Firmware implementation corrected
         to support arbitrary aligned retransmissions.
      9. iSCSI - Arrival of target-initiated NOP-IN during intense ISCSI traffic
         might lead to crash. Firmware fix to relevant flow.
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      621b4d66
  13. 20 2月, 2012 1 次提交
  14. 16 2月, 2012 1 次提交
  15. 27 1月, 2012 2 次提交
  16. 07 12月, 2011 3 次提交
  17. 30 11月, 2011 1 次提交
  18. 15 11月, 2011 1 次提交
    • E
      bnx2x: uses build_skb() in receive path · e52fcb24
      Eric Dumazet 提交于
      bnx2x uses following formula to compute its rx_buf_sz :
      
      dev->mtu + 2*L1_CACHE_BYTES + 14 + 8 + 8 + 2
      
      Then core network adds NET_SKB_PAD and SKB_DATA_ALIGN(sizeof(struct
      skb_shared_info))
      
      Final allocated size for skb head on x86_64 (L1_CACHE_BYTES = 64,
      MTU=1500) : 2112 bytes : SLUB/SLAB round this to 4096 bytes.
      
      Since skb truesize is then bigger than SK_MEM_QUANTUM, we have lot of
      false sharing because of mem_reclaim in UDP stack.
      
      One possible way to half truesize is to reduce the need by 64 bytes
      (2112 -> 2048 bytes)
      
      Instead of allocating a full cache line at the end of packet for
      alignment, we can use the fact that skb_shared_info sits at the end of
      skb->head, and we can use this room, if we convert bnx2x to new
      build_skb() infrastructure.
      
      skb_shared_info will be initialized after hardware finished its
      transfert, so we can eventually overwrite the final padding.
      
      Using build_skb() also reduces cache line misses in the driver, since we
      use cache hot skb instead of cold ones. Number of in-flight sk_buff
      structures is lower, they are recycled while still hot.
      
      Performance results :
      
      (820.000 pps on a rx UDP monothread benchmark, instead of 720.000 pps)
      Signed-off-by: NEric Dumazet <eric.dumazet@gmail.com>
      CC: Eilon Greenstein <eilong@broadcom.com>
      CC: Ben Hutchings <bhutchings@solarflare.com>
      CC: Tom Herbert <therbert@google.com>
      CC: Jamal Hadi Salim <hadi@mojatatu.com>
      CC: Stephen Hemminger <shemminger@vyatta.com>
      CC: Thomas Graf <tgraf@infradead.org>
      CC: Herbert Xu <herbert@gondor.apana.org.au>
      CC: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Acked-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e52fcb24
  19. 14 11月, 2011 1 次提交