1. 22 1月, 2014 1 次提交
  2. 16 1月, 2014 2 次提交
  3. 15 1月, 2014 1 次提交
  4. 14 1月, 2014 1 次提交
    • S
      bnx2x: namespace and dead code cleanups · a8f47eb7
      stephen hemminger 提交于
      Fix a bunch of whole lot of namespace issues with the Broadcom bnx2x driver
      found by running 'make namespacecheck'
      
       * global variables must be prefixed with bnx2x_
          naming a variable int_mode, or num_queue is invitation to disaster
      
       * make local functions static
      
       * move some inline's used in one file out of header
         (this driver has a bad case of inline-itis)
      
       * remove resulting dead code fallout
       	 bnx2x_pfc_statistic,
      	 bnx2x_emac_get_pfc_stat
       	 bnx2x_init_vlan_mac_obj,
         Looks like vlan mac support in this driver was a botch from day one
         either never worked, or not implemented or missing support functions
      
      Compile tested only.
      Signed-off-by: NStephen Hemminger <stephen@networkplumber.org>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      a8f47eb7
  5. 11 1月, 2014 2 次提交
    • J
      net: core: explicitly select a txq before doing l2 forwarding · f663dd9a
      Jason Wang 提交于
      Currently, the tx queue were selected implicitly in ndo_dfwd_start_xmit(). The
      will cause several issues:
      
      - NETIF_F_LLTX were removed for macvlan, so txq lock were done for macvlan
        instead of lower device which misses the necessary txq synchronization for
        lower device such as txq stopping or frozen required by dev watchdog or
        control path.
      - dev_hard_start_xmit() was called with NULL txq which bypasses the net device
        watchdog.
      - dev_hard_start_xmit() does not check txq everywhere which will lead a crash
        when tso is disabled for lower device.
      
      Fix this by explicitly introducing a new param for .ndo_select_queue() for just
      selecting queues in the case of l2 forwarding offload. netdev_pick_tx() was also
      extended to accept this parameter and dev_queue_xmit_accel() was used to do l2
      forwarding transmission.
      
      With this fixes, NETIF_F_LLTX could be preserved for macvlan and there's no need
      to check txq against NULL in dev_hard_start_xmit(). Also there's no need to keep
      a dedicated ndo_dfwd_start_xmit() and we can just reuse the code of
      dev_queue_xmit() to do the transmission.
      
      In the future, it was also required for macvtap l2 forwarding support since it
      provides a necessary synchronization method.
      
      Cc: John Fastabend <john.r.fastabend@intel.com>
      Cc: Neil Horman <nhorman@tuxdriver.com>
      Cc: e1000-devel@lists.sourceforge.net
      Signed-off-by: NJason Wang <jasowang@redhat.com>
      Acked-by: NNeil Horman <nhorman@tuxdriver.com>
      Acked-by: NJohn Fastabend <john.r.fastabend@intel.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f663dd9a
    • M
      bnx2x: fix DMA unmapping of TSO split BDs · 95e92fd4
      Michal Schmidt 提交于
      bnx2x triggers warnings with CONFIG_DMA_API_DEBUG=y:
      
        WARNING: CPU: 0 PID: 2253 at lib/dma-debug.c:887 check_unmap+0xf8/0x920()
        bnx2x 0000:28:00.0: DMA-API: device driver frees DMA memory with
        different size [device address=0x00000000da2b389e] [map size=1490 bytes]
        [unmap size=66 bytes]
      
      The reason is that bnx2x splits a TSO BD into two BDs (headers + data)
      using one DMA mapping for both, but it uses only the length of the first
      BD when unmapping.
      
      This patch fixes the bug by unmapping the whole length of the two BDs.
      Signed-off-by: NMichal Schmidt <mschmidt@redhat.com>
      Reviewed-by: NEric Dumazet <edumazet@google.com>
      Acked-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      95e92fd4
  6. 10 1月, 2014 1 次提交
  7. 06 1月, 2014 5 次提交
  8. 02 1月, 2014 5 次提交
  9. 01 1月, 2014 1 次提交
  10. 27 12月, 2013 7 次提交
  11. 20 12月, 2013 2 次提交
  12. 19 12月, 2013 1 次提交
  13. 06 12月, 2013 1 次提交
  14. 19 11月, 2013 4 次提交
  15. 13 11月, 2013 1 次提交
  16. 29 10月, 2013 2 次提交
    • A
      bnx2x: Disable VF access on PF removal · 826cb7b4
      Ariel Elior 提交于
      When the bnx2x driver is rmmoded, if VFs of a given PF will be assigned
      to a VM then that PF will be unable to call `pci_disable_sriov()'.
      
      If for that same PF there would also exist unassigned VFs in the hypervisor,
      the result will be that after the removal there will still be virtual PCI
      functions on the hypervisor.
      If the bnx2x module were to be re-inserted, the result will be that the VFs
      on the hypervisor will be re-probed directly following the PF's probe, even
      though that in regular loading flow sriov is only enabled once PF is loaded.
      The probed VF will then try to access its bar, causing a PCI error as the HW
      is not in a state enabling such a request.
      
      This patch adds a missing disablement procedure to the PF's removal, one that
      sets registers viewable to the VF to indicate that the VFs have no permission
      to access the bar, thus resulting in probe errors instead of PCI errors.
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      826cb7b4
    • D
      bnx2x: prevent FW assert on low mem during unload · e3ed4eae
      Dmitry Kravkov 提交于
      Buffers for FW statistics were allocated at an inappropriate time; In a machine
      where the driver encounters problems allocating all of its queues, the driver
      would still create FW requests for the statistics of the non-existing queues.
      The wrong order of memory allocation could lead to zeroed statistics messages
      being sent, leading to fw assert in case function 0 was down.
      
      This changes the order of allocations, guaranteeing that statistic requests will
      only be generated for actual queues.
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e3ed4eae
  17. 22 10月, 2013 3 次提交
    • E
      bnx2x: add TSO support for SIT tunnels · 2e3bd6a4
      Eric Dumazet 提交于
      bnx2x driver already handles TSO for GRE and IPIP, current code
      is the same for SIT.
      
      Performance results : (Note we are now limited by receiver,
      as it does not support GRO for SIT yet)
      
      Before patch :
      
      lpq84:~# ./netperf -H 2002:af6:1153:: -Cc
      MIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6
      Recv   Send    Send                          Utilization       Service Demand
      Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
      Size   Size    Size     Time     Throughput  local    remote   local   remote
      bytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB
      
       87380  16384  16384    10.00      5525.00   7.76     5.17     2.763   1.840
      
      lpq84:~# ./netperf -H 2002:af6:1153:: -Cc
      MIGRATED TCP STREAM TEST from ::0 (::) port 0 AF_INET6 to 2002:af6:1153:: () port 0 AF_INET6
      Recv   Send    Send                          Utilization       Service Demand
      Socket Socket  Message  Elapsed              Send     Recv     Send    Recv
      Size   Size    Size     Time     Throughput  local    remote   local   remote
      bytes  bytes   bytes    secs.    10^6bits/s  % S      % S      us/KB   us/KB
      
       87380  16384  16384    10.00      6006.97   1.86     5.48     0.608   1.795
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Eilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2e3bd6a4
    • M
      bnx2x: Set NETIF_F_HIGHDMA unconditionally · edd31476
      Merav Sicron 提交于
      Current driver implementation incorrectly sets the flag only if 64-bit
      DMA mask succeeded.
      Signed-off-by: NMerav Sicron <meravs@broadcom.com>
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      edd31476
    • D
      bnx2x: Don't pretend during register dump · 4293b9f5
      Dmitry Kravkov 提交于
      As part of a register dump, the interface pretends to have the identity
      of other interfaces of the same physical device in order to perform
      HW configuration for them - specifically, it needs to prevent attentions
      from generating on those functions as the register dump accesses registers
      in common blocks which whose reading might generate an attention.
      
      However, such pretension is unsafe - unlike other flows in which the driver
      uses pretend, during register dump there is no guarantee no other HW access
      will take place (by other flows). If such access will take place, the HW will
      be accessed by the wrong interface, and leave both functions in an incorrect
      state.
      
      This patch removes all pretensions from the register dump flow. Instead, it
      changes initial configuration of attentions such that no fatal attention will
      be generated for other functions as a result of the register dump
      (notice however, a debug print claiming an attention from other functions IS
      possible during the register dump)
      Signed-off-by: NDmitry Kravkov <dmitry@broadcom.com>
      Signed-off-by: NYuval Mintz <yuvalmin@broadcom.com>
      Signed-off-by: NAriel Elior <ariele@broadcom.com>
      Signed-off-by: NEilon Greenstein <eilong@broadcom.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      4293b9f5