Files
android_kernel_samsung_sm86…/core
Sean Tranchetti 06bf42ec24 rmnet_core: Allow scatter-gather on the DL path
This patch adds the necessary handling for the physical device driver to
use multiple pages to hold data in the SKBs. Essentially, the following
changes are implemented:
  - rmnet_frag_descriptor struct now hold a list of frags, instead of a
    single one. Pushing, pulling, and trimming APIs are updated to use
    this new format.
  - QMAP deaggregation now loops over each element in skb_shinfo->frags
    looking for data. Packets are allowed to be split across mutliple
    pages. All pages containing data for a particular packet will be added
    to the frag_descriptor struct representing it.
  - a new API, rmnet_frag_header_ptr() has been added for safely accessing
    packet headers. This API, modeled after skb_header_pointer(), handles
    the fact that headers could potentially be split across 2 pages. A
    pointer to the location of the header is returned in the usual case
    where the header is physically contiguous. If not, the header is
    linearized into the user-provided buffer to allow normal header struct
    read access.
  - this new header access API is used in all places on the DL path when
    headers are needed, including QMAP command processing, QMAPv1
    handling, QMAPv5 checksum offload, and QMAPv5 coalescing.
  - RSB/RSC segmentation handling is updated to add all necessary pages
    containing packet data to the newly created descriptor. Additionally,
    the pages containing L3 and L4 headers are added as well, as this
    allows easier downstream processing, and guarantees that the header
    data will not be freed until all packets that need them have been
    converted into SKBs.
  - as all frag_descriptors are now guaranteed to contain the L3 and L4
    header data (and because they are no longer guaranteed to be on the
    same page), the hdr_ptr member has been removed as it no longer serves
    a purpose.

Change-Id: Iebb677a6ae7e442fa55e0d131af59cde1b5ce18a
Signed-off-by: Sean Tranchetti <stranche@codeaurora.org>
2020-08-19 10:44:16 -06:00
..
2020-04-03 13:47:42 -07:00
2020-04-10 15:27:23 -07:00
2020-07-29 16:11:12 -07:00
2020-07-14 17:01:27 -07:00
2020-07-14 17:01:27 -07:00
2020-04-03 13:47:42 -07:00
2020-04-03 13:47:42 -07:00
2019-12-10 15:22:43 -07:00
2020-07-14 17:01:27 -07:00
2020-07-17 17:06:09 -07:00
2020-07-14 17:01:27 -07:00
2020-04-03 13:47:42 -07:00
2020-05-20 15:43:25 -06:00
2020-03-22 21:21:49 -06:00
2020-07-14 17:01:27 -07:00
2019-12-10 15:22:43 -07:00
2020-01-23 13:31:14 -07:00
2019-12-10 15:22:43 -07:00