aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/google/gve/gve_tx.c
diff options
context:
space:
mode:
authorBailey Forrest <bcf@google.com>2021-06-24 11:06:21 -0700
committerDavid S. Miller <davem@davemloft.net>2021-06-24 12:47:37 -0700
commit8a39d3e0dadfe27a50019fa83dc57c5158e42ed1 (patch)
treed095c7f82cde9cb27a34aa014bf581a6f598594c /drivers/net/ethernet/google/gve/gve_tx.c
parentgve: Make gve_rx_slot_page_info.page_offset an absolute offset (diff)
downloadlinux-dev-8a39d3e0dadfe27a50019fa83dc57c5158e42ed1.tar.xz
linux-dev-8a39d3e0dadfe27a50019fa83dc57c5158e42ed1.zip
gve: Introduce a new model for device options
The current model uses an integer ID and a fixed size struct for the parameters of each device option. The new model allows the device option structs to grow in size over time. A driver may assume that changes to device option structs will always be appended. New device options will also generally have a `supported_features_mask` so that the driver knows which fields within a particular device option are enabled. `gve_device_option.feat_mask` is changed to `required_features_mask`, and it is a bitmask which must match the value expected by the driver. This gives the device the ability to break backwards compatibility with old drivers for certain features by blocking the old drivers from trying to use the feature. We maintain ABI compatibility with the old model for GVE_DEV_OPT_ID_RAW_ADDRESSING in case a driver is using a device which does not support the new model. This patch introduces some new terminology: RDA - Raw DMA Addressing - Buffers associated with SKBs are directly DMA mapped and read/updated by the device. QPL - Queue Page Lists - Driver uses bounce buffers which are DMA mapped with the device for read/write and data is copied from/to SKBs. Signed-off-by: Bailey Forrest <bcf@google.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Reviewed-by: Catherine Sullivan <csully@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/google/gve/gve_tx.c')
0 files changed, 0 insertions, 0 deletions