diff options
author | Tariq Toukan <tariqt@nvidia.com> | 2023-04-17 15:18:51 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2023-04-19 08:59:25 +0100 |
commit | eb9b9fdcafe29f022260dc43bd001b85937d9f83 (patch) | |
tree | aa3f3d7dadb9f1c5144868812f6d4345cc62e8a0 /drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | |
parent | e32654f198897b0323e52fbd96a38606d0289c35 (diff) |
net/mlx5e: Introduce extended version for mlx5e_xmit_data
Introduce struct mlx5e_xmit_data_frags to be used for non-linear xmit
buffers. Let it include sinfo pointer.
Take one bit from the len field to indicate if the descriptor has
fragments and can be casted-up into the extended version.
Zero-init to make sure has_frags, and potentially future fields, are
zero when not explicitly assigned.
Another field will be added in a downstream patch to indicate and point
to dma addresses of the different frags, for redirect-in requests.
This simplifies the mlx5e_xmit_xdp_frame/mlx5e_xmit_xdp_frame_mpwqe
functions params.
Signed-off-by: Tariq Toukan <tariqt@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h')
-rw-r--r-- | drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h index 6f7ebedda279..1302f52db883 100644 --- a/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h +++ b/drivers/net/ethernet/mellanox/mlx5/core/en/txrx.h @@ -80,7 +80,13 @@ static inline bool mlx5e_rx_hw_stamp(struct hwtstamp_config *config) struct mlx5e_xmit_data { dma_addr_t dma_addr; void *data; - u32 len; + u32 len : 31; + u32 has_frags : 1; +}; + +struct mlx5e_xmit_data_frags { + struct mlx5e_xmit_data xd; + struct skb_shared_info *sinfo; }; netdev_tx_t mlx5e_xmit(struct sk_buff *skb, struct net_device *dev); |