1. 17 3月, 2021 33 次提交
  2. 16 3月, 2021 7 次提交
    • D
      Merge branch 'ionic-tx-updates' · 74c7dbe0
      David S. Miller 提交于
      Shannon Nelson says:
      
      ====================
      ionic Tx updates
      
      Just as the Rx path recently got a face lift, it is time for the Tx path to
      get some attention.  The original TSO-to-descriptor mapping was ugly and
      convoluted and needed some deep work.  This series pulls the dma mapping
      out of the descriptor frag mapping loop and makes the dma mapping more
      generic for use in the non-TSO case.
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      74c7dbe0
    • S
      ionic: aggregate Tx byte counting calls · 633eddf1
      Shannon Nelson 提交于
      Gather the Tx packet and byte counts and call
      netdev_tx_completed_queue() only once per clean cycle.
      Signed-off-by: NShannon Nelson <snelson@pensando.io>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      633eddf1
    • S
      ionic: simplify tx clean · 19fef72c
      Shannon Nelson 提交于
      The descriptor mappings are set up the same way whether
      or not it is a TSO, so we don't need separate logic for
      the two cases.
      Signed-off-by: NShannon Nelson <snelson@pensando.io>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      19fef72c
    • S
      ionic: generic tx skb mapping · 2da479ca
      Shannon Nelson 提交于
      Make the new ionic_tx_map_tso() usable by the non-TSO paths,
      and pull the call up a level into ionic_tx() before calling
      the csum or no-csum routines.
      Signed-off-by: NShannon Nelson <snelson@pensando.io>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2da479ca
    • S
      ionic: simplify TSO descriptor mapping · 5b039241
      Shannon Nelson 提交于
      One issue with the original TSO code was that it was working too
      hard to deal with skb layouts that were never going to show up,
      such as an skb->data that was longer than a single descriptor's
      length.  The other issue was trying to arrange the fragment dma
      mapping at the same time as figuring out the descriptors needed.
      There was just too much going on at the same time.
      
      Now we do the dma mapping first, which sets up the buffers with
      skb->data in buf[0] and the remaining frags in buf[1..n-1].
      Next we spread the bufs across the descriptors needed, where
      each descriptor gets up to mss number of bytes.
      Signed-off-by: NShannon Nelson <snelson@pensando.io>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      5b039241
    • D
      Merge branch 'net-qualcomm-rmnet-stop-using-C-bit-fields' · 578ce046
      David S. Miller 提交于
      Alex Elder says:
      
      ====================
      net: qualcomm: rmnet: stop using C bit-fields
      
      Version 6 is the same as version 5, but has been rebased on updated
      net-next/master.  With any luck, the patches I'm sending out this
      time won't contain garbage.
      
      Version 5 of this series responds to a suggestion made by Alexander
      Duyck, to determine the offset to the checksummed range of a packet
      using skb_network_header_len() on patch 2.  I have added his
      Reviewed-by tag to all (other) patches, and removed Bjorn's from
      patch 2.
      
      The change required some updates to the subsequent patches, and I
      reordered some assignments in a minor way in the last patch.
      
      I don't expect any more discussion on this series (but will respond
      if there is any).  So at this point I would really appreciate it
      if KS and/or Sean would offer a review, or at least acknowledge it.
      I presume you two are able to independently test the code as well,
      so I request that, and hope you are willing to do so.
      
      Version 4 of this series is here:
        https://lore.kernel.org/netdev/20210315133455.1576188-1-elder@linaro.org
      ====================
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      578ce046
    • A
      net: qualcomm: rmnet: don't use C bit-fields in rmnet checksum header · 86ca860e
      Alex Elder 提交于
      Replace the use of C bit-fields in the rmnet_map_ul_csum_header
      structure with a single two-byte (big endian) structure member,
      and use masks to encode or get values within it.  The content of
      these fields can be accessed using simple bitwise AND and OR
      operations on the (host byte order) value of the new structure
      member.
      
      Previously rmnet_map_ipv4_ul_csum_header() would update C bit-field
      values in host byte order, then forcibly fix their byte order using
      a combination of byte swap operations and types.
      
      Instead, just compute the value that needs to go into the new
      structure member and save it with a simple byte-order conversion.
      
      Make similar simplifications in rmnet_map_ipv6_ul_csum_header().
      
      Finally, in rmnet_map_checksum_uplink_packet() a set of assignments
      zeroes every field in the upload checksum header.  Replace that with
      a single memset() operation.
      Signed-off-by: NAlex Elder <elder@linaro.org>
      Reviewed-by: NAlexander Duyck <alexanderduyck@fb.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      86ca860e