1. 13 Jun, 2022 10 commits
    • Eric Dumazet's avatar
      tcp: sk_forced_mem_schedule() optimization · 219160be
      Eric Dumazet authored
      sk_memory_allocated_add() has three callers, and returns
      to them @memory_allocated.
      
      sk_forced_mem_schedule() is one of them, and ignores
      the returned value.
      
      Change sk_memory_allocated_add() to return void.
      
      Change sock_reserve_memory() and __sk_mem_raise_allocated()
      to call sk_memory_allocated().
      
      This removes one cache line miss [1] for RPC workloads,
      as first skbs in TCP write queue and receive queue go through
      sk_forced_mem_schedule().
      
      [1] Cache line holding tcp_memory_allocated.
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Acked-by: default avatarSoheil Hassas Yeganeh <soheil@google.com>
      Reviewed-by: default avatarShakeel Butt <shakeelb@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      219160be
    • Parthiban Veerasooran's avatar
      net: smsc95xx: add support for Microchip EVB-LAN8670-USB · 4066bf4c
      Parthiban Veerasooran authored
      This patch adds support for Microchip's EVB-LAN8670-USB 10BASE-T1S
      ethernet device to the existing smsc95xx driver by adding the new
      USB VID/PID pairs.
      Signed-off-by: default avatarParthiban Veerasooran <Parthiban.Veerasooran@microchip.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4066bf4c
    • Yinjun Zhang's avatar
      nfp: support 48-bit DMA addressing for NFP3800 · 5f30671d
      Yinjun Zhang authored
      48-bit DMA addressing is supported in NFP3800 HW and implemented
      in NFDK firmware, so enable this feature in driver now. Note that
      with this change, NFD3 firmware, which doesn't implement 48-bit
      DMA, cannot be used for NFP3800 any more.
      
      RX free list descriptor, used by both NFD3 and NFDK, is also modified
      to support 48-bit DMA. That's OK because the top bits is always get
      set to 0 when assigned with 40-bit address.
      
      Based on initial work of Jakub Kicinski <jakub.kicinski@netronome.com>.
      Signed-off-by: default avatarYinjun Zhang <yinjun.zhang@corigine.com>
      Signed-off-by: default avatarSimon Horman <simon.horman@corigine.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5f30671d
    • David S. Miller's avatar
      Merge branch 'ipa-refactoring' · 11a1585f
      David S. Miller authored
      Alex Elder says:
      
      ====================
      net: ipa: simple refactoring
      
      This series contains some minor code improvements.
      
      The first patch verifies that the configuration is compatible with a
      recently-defined limit.  The second and third rename two fields so
      they better reflect their use in the code.  The next gets rid of an
      empty function by reworking its only caller.
      
      The last two begin to remove the assumption that an event ring is
      associated with a single channel.  Eventually we'll support having
      multiple channels share an event ring but some more needs to be done
      before that can happen.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11a1585f
    • Alex Elder's avatar
      net: ipa: derive channel from transaction · bcec9ecb
      Alex Elder authored
      In gsi_channel_tx_queued(), we report when a transaction gets passed
      to hardware.  Change that function so it takes transaction rather
      than a channel as its argument, and derive the channel from the
      transaction.  Rename the function accordingly.
      
      Delete the header comments above the function definition; the ones
      above the declaration in "gsi_private.h" should suffice.  In
      addition, the comments above gsi_channel_tx_update() do a fine job
      of explaining what's going on.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      bcec9ecb
    • Alex Elder's avatar
      net: ipa: determine channel from event · 7dd9558f
      Alex Elder authored
      Each event in an event ring describes the TRE whose completion
      caused the event.  Currently, every event ring is dedicated to a
      single channel, so the channel is easily derived from the event
      ring.
      
      An event ring can actually be shared by more than one channel
      though, and to distinguish events for one channel from another, the
      event structure contains a field indicating which channel the event
      is associated with.
      
      In gsi_event_trans(), use the channel ID in an event to determine
      which channel the event is for.  This makes the channel pointer now
      passed to that function irrelevant; pass the GSI pointer to that
      function instead.
      
      And although it shouldn't happen, warn if an event arrives that
      records a channel ID that's not in use, or if the event does not
      have a transaction associated with it.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      7dd9558f
    • Alex Elder's avatar
      net: ipa: simplify endpoint transaction completion · 983a1a30
      Alex Elder authored
      When a GSI transaction completes, ipa_endpoint_trans_complete() is
      eventually called.  That handles TX and RX completions separately,
      but ipa_endpoint_tx_complete() is a no-op.
      
      Instead, have ipa_endpoint_trans_complete() return immediately for a
      TX transaction, and incorporate code from ipa_endpoint_rx_complete()
      to handle RX transactions.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      983a1a30
    • Alex Elder's avatar
      net: ipa: rename endpoint->trans_tre_max · 317595d2
      Alex Elder authored
      The trans_tre_max field of the IPA endpoint structure is only used
      to limit the number of fragments allowed for an SKB being prepared
      for transmission.  Recognizing that, rename the field skb_frag_max,
      and reduce its value by 1.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      317595d2
    • Alex Elder's avatar
      net: ipa: rename channel->tlv_count · 88e03057
      Alex Elder authored
      Each GSI channel has a TLV FIFO of a certain size, specified in the
      configuration data for an AP channel.  That size dictates the
      maximum number of TREs that are allowed in a single transaction.
      
      The only way that value is used after initialization is as a limit
      on the number of TREs in a transaction; calling it "tlv_count"
      isn't helpful, and in fact gsi_channel_trans_tre_max() exists to
      sort of abstract it.
      
      Instead, rename the channel->tlv_count field trans_tre_max, and get
      rid of the helper function.  Update a couple of comments as well.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      88e03057
    • Alex Elder's avatar
      net: ipa: verify command channel TLV count · 92f78f81
      Alex Elder authored
      In commit 8797972a ("net: ipa: remove command info pool"), the
      maximum number of IPA commands that would be sent in a single
      transaction was defined.  That number can't exceed the size of the
      TLV FIFO on the command channel, and we can check that at runtime.
      
      To add this check, pass a new flag to gsi_channel_data_valid() to
      indicate the channel being checked is being used for IPA commands.
      Knowing that we can also verify the channel direction is correct.
      
      Use a new local variable that refers to the command-specific portion
      of the data being checked.
      Signed-off-by: default avatarAlex Elder <elder@linaro.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      92f78f81
  2. 11 Jun, 2022 3 commits
  3. 10 Jun, 2022 27 commits