Skip to content
  1. Jul 30, 2019
    • Michael Chan's avatar
      bnxt_en: Expand bnxt_tpa_info struct to support 57500 chips. · 79632e9b
      Michael Chan authored
      
      
      Add an aggregation array to bnxt_tpa_info struct to keep track of the
      aggregation completions.  The aggregation completions are not
      completed at the TPA_END completion on 57500 chips so we need to
      keep track of them.  The array is only allocated on the new chips
      when required.  An agg_count field is also added to keep track of the
      number of these completions.
      
      The maximum concurrent TPA is now discovered from firmware instead of
      the hardcoded 64.  Add a new bp->max_tpa to keep track of maximum
      configured TPA.
      
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      79632e9b
    • Michael Chan's avatar
      bnxt_en: Refactor TPA logic. · 4a228a3a
      Michael Chan authored
      
      
      Refactor the TPA logic slightly, so that the code can be more easily
      extended to support TPA on the new 57500 chips.  In particular, the
      logic to get the next aggregation completion is refactored into a
      new function bnxt_get_agg() so that this operation is made more
      generalized.  This operation will be different on the new chip in TPA
      mode.  The logic to recycle the aggregation buffers has a new start
      index parameter added for the same purpose.
      
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4a228a3a
    • Michael Chan's avatar
      bnxt_en: Add TPA structure definitions for BCM57500 chips. · 218a8a71
      Michael Chan authored
      
      
      The new chips have a slightly modified TPA interface for LRO/GRO_HW.
      Modify the TPA structures so that the same structures can also be
      used on the new chips.
      
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      218a8a71
    • Michael Chan's avatar
      bnxt_en: Update firmware interface spec. to 1.10.0.89. · 2792b5b9
      Michael Chan authored
      
      
      Among the changes are new CoS discard counters and new ctx_hw_stats_ext
      struct for the latest 5750X B0 chips.
      
      Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2792b5b9
    • Oliver Hartkopp's avatar
      can: fix ioctl function removal · 473d924d
      Oliver Hartkopp authored
      Commit 60649d4e
      
       ("can: remove obsolete empty ioctl() handler") replaced the
      almost empty can_ioctl() function with sock_no_ioctl() which always returns
      -EOPNOTSUPP.
      
      Even though we don't have any ioctl() functions on socket/network layer we need
      to return -ENOIOCTLCMD to be able to forward ioctl commands like SIOCGIFINDEX
      to the network driver layer.
      
      This patch fixes the wrong return codes in the CAN network layer protocols.
      
      Reported-by: default avatarkernel test robot <rong.a.chen@intel.com>
      Fixes: 60649d4e
      
       ("can: remove obsolete empty ioctl() handler")
      Signed-off-by: default avatarOliver Hartkopp <socketcan@hartkopp.net>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      473d924d
    • Rasmus Villemoes's avatar
      net: dsa: mv88e6xxx: avoid some redundant vtu load/purge operations · 1cb9dfca
      Rasmus Villemoes authored
      
      
      We have an ERPS (Ethernet Ring Protection Switching) setup involving
      mv88e6250 switches which we're in the process of switching to a BSP
      based on the mainline driver. Breaking any link in the ring works as
      expected, with the ring reconfiguring itself quickly and traffic
      continuing with almost no noticable drops. However, when plugging back
      the cable, we see 5+ second stalls.
      
      This has been tracked down to the userspace application in charge of
      the protocol missing a few CCM messages on the good link (the one that
      was not unplugged), causing it to broadcast a "signal fail". That
      message eventually reaches its link partner, which responds by
      blocking the port. Meanwhile, the first node has continued to block
      the port with the just plugged-in cable, breaking the network. And the
      reason for those missing CCM messages has in turn been tracked down to
      the VTU apparently being too busy servicing load/purge operations that
      the normal lookups are delayed.
      
      Initial state, the link between C and D is blocked in software.
      
           _____________________
          /                     \
         |                       |
         A ----- B ----- C *---- D
      
      Unplug the cable between C and D.
      
           _____________________
          /                     \
         |                       |
         A ----- B ----- C *   * D
      
      Reestablish the link between C and D.
           _____________________
          /                     \
         |                       |
         A ----- B ----- C *---- D
      
      Somehow, enough VTU/ATU operations happen inside C that prevents
      the application from receving the CCM messages from B in a timely
      manner, so a Signal Fail message is sent by C. When B receives
      that, it responds by blocking its port.
      
           _____________________
          /                     \
         |                       |
         A ----- B *---* C *---- D
      
      Very shortly after this, the signal fail condition clears on the
      BC link (some CCM messages finally make it through), so C
      unblocks the port. However, a guard timer inside B prevents it
      from removing the blocking before 5 seconds have elapsed.
      
      It is not unlikely that our userspace ERPS implementation could be
      smarter and/or is simply buggy. However, this patch fixes the symptoms
      we see, and is a small optimization that should not break anything
      (knock wood). The idea is simply to avoid doing an VTU load of an
      entry identical to the one already present. To do that, we need to
      know whether mv88e6xxx_vtu_get() actually found an existing entry, or
      has just prepared a struct mv88e6xxx_vtu_entry for us to load. To that
      end, let vlan->valid be an output parameter. The other two callers of
      mv88e6xxx_vtu_get() are not affected by this patch since they pass
      new=false.
      
      Signed-off-by: default avatarRasmus Villemoes <rasmus.villemoes@prevas.dk>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1cb9dfca
    • Heiner Kallweit's avatar
      r8169: make use of xmit_more · ef143585
      Heiner Kallweit authored
      There was a previous attempt to use xmit_more, but the change had to be
      reverted because under load sometimes a transmit timeout occurred [0].
      Maybe this was caused by a missing memory barrier, the new attempt
      keeps the memory barrier before the call to netif_stop_queue like it
      is used by the driver as of today. The new attempt also changes the
      order of some calls as suggested by Eric.
      
      [0] https://lkml.org/lkml/2019/2/10/39
      
      
      
      Signed-off-by: default avatarHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ef143585
    • Matthew Wilcox (Oracle)'s avatar
      staging/octeon: Allow test build on !MIPS · 171a9bae
      Matthew Wilcox (Oracle) authored
      
      
      Add compile test support by moving all includes of files under
      asm/octeon into octeon-ethernet.h, and if we're not on MIPS,
      stub out all the calls into the octeon support code in octeon-stubs.h
      
      Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      171a9bae
    • Ding Xiang's avatar
      net: ag71xx: use resource_size for the ioremap size · c51ab067
      Ding Xiang authored
      
      
      use resource_size to calcuate ioremap size and make
      the code simpler.
      
      Signed-off-by: default avatarDing Xiang <dingxiang@cmss.chinamobile.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c51ab067
  2. Jul 29, 2019
  3. Jul 28, 2019