Si-Wei Liu
2022-Oct-18 19:27 UTC
[PATCH 2/4] vdpa/mlx5: Move some definitions to a new header file
On 10/18/2022 4:12 AM, Eli Cohen wrote:> Move some definitions from mlx5_vnet.c to newly added header file > mlx5_vnet.h. We need these definitions for the following patches that > add debugfs tree to expose information vital for debug. > > Signed-off-by: Eli Cohen<elic at nvidia.com>Reviewed-by: Si-Wei Liu <si-wei.liu at oracle.com>> --- > drivers/vdpa/mlx5/net/mlx5_vnet.c | 45 +------------------------ > drivers/vdpa/mlx5/net/mlx5_vnet.h | 55 +++++++++++++++++++++++++++++++ > 2 files changed, 56 insertions(+), 44 deletions(-) > create mode 100644 drivers/vdpa/mlx5/net/mlx5_vnet.h > > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.c b/drivers/vdpa/mlx5/net/mlx5_vnet.c > index dd29fdfc24ed..64fdb940380f 100644 > --- a/drivers/vdpa/mlx5/net/mlx5_vnet.c > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.c > @@ -18,15 +18,12 @@ > #include <linux/mlx5/mlx5_ifc_vdpa.h> > #include <linux/mlx5/mpfs.h> > #include "mlx5_vdpa.h" > +#include "mlx5_vnet.h" > > MODULE_AUTHOR("Eli Cohen<eli at mellanox.com>"); > MODULE_DESCRIPTION("Mellanox VDPA driver"); > MODULE_LICENSE("Dual BSD/GPL"); > > -#define to_mlx5_vdpa_ndev(__mvdev) \ > - container_of(__mvdev, struct mlx5_vdpa_net, mvdev) > -#define to_mvdev(__vdev) container_of((__vdev), struct mlx5_vdpa_dev, vdev) > - > #define VALID_FEATURES_MASK \ > (BIT_ULL(VIRTIO_NET_F_CSUM) | BIT_ULL(VIRTIO_NET_F_GUEST_CSUM) | \ > BIT_ULL(VIRTIO_NET_F_CTRL_GUEST_OFFLOADS) | BIT_ULL(VIRTIO_NET_F_MTU) | BIT_ULL(VIRTIO_NET_F_MAC) | \ > @@ -50,14 +47,6 @@ MODULE_LICENSE("Dual BSD/GPL"); > > #define MLX5V_UNTAGGED 0x1000 > > -struct mlx5_vdpa_net_resources { > - u32 tisn; > - u32 tdn; > - u32 tirn; > - u32 rqtn; > - bool valid; > -}; > - > struct mlx5_vdpa_cq_buf { > struct mlx5_frag_buf_ctrl fbc; > struct mlx5_frag_buf frag_buf; > @@ -146,38 +135,6 @@ static bool is_index_valid(struct mlx5_vdpa_dev *mvdev, u16 idx) > return idx <= mvdev->max_idx; > } > > -#define MLX5V_MACVLAN_SIZE 256 > - > -struct mlx5_vdpa_net { > - struct mlx5_vdpa_dev mvdev; > - struct mlx5_vdpa_net_resources res; > - struct virtio_net_config config; > - struct mlx5_vdpa_virtqueue *vqs; > - struct vdpa_callback *event_cbs; > - > - /* Serialize vq resources creation and destruction. This is required > - * since memory map might change and we need to destroy and create > - * resources while driver in operational. > - */ > - struct rw_semaphore reslock; > - struct mlx5_flow_table *rxft; > - bool setup; > - u32 cur_num_vqs; > - u32 rqt_size; > - bool nb_registered; > - struct notifier_block nb; > - struct vdpa_callback config_cb; > - struct mlx5_vdpa_wq_ent cvq_ent; > - struct hlist_head macvlan_hash[MLX5V_MACVLAN_SIZE]; > -}; > - > -struct macvlan_node { > - struct hlist_node hlist; > - struct mlx5_flow_handle *ucast_rule; > - struct mlx5_flow_handle *mcast_rule; > - u64 macvlan; > -}; > - > static void free_resources(struct mlx5_vdpa_net *ndev); > static void init_mvqs(struct mlx5_vdpa_net *ndev); > static int setup_driver(struct mlx5_vdpa_dev *mvdev); > diff --git a/drivers/vdpa/mlx5/net/mlx5_vnet.h b/drivers/vdpa/mlx5/net/mlx5_vnet.h > new file mode 100644 > index 000000000000..6691c879a6ca > --- /dev/null > +++ b/drivers/vdpa/mlx5/net/mlx5_vnet.h > @@ -0,0 +1,55 @@ > +/* SPDX-License-Identifier: GPL-2.0 OR Linux-OpenIB */ > +/* Copyright (c) 2022, NVIDIA CORPORATION & AFFILIATES. All rights reserved. */ > + > +#ifndef __MLX5_VNET_H__ > +#define __MLX5_VNET_H__ > + > +#include "mlx5_vdpa.h" > + > +#define to_mlx5_vdpa_ndev(__mvdev) \ > + container_of(__mvdev, struct mlx5_vdpa_net, mvdev) > +#define to_mvdev(__vdev) container_of((__vdev), struct mlx5_vdpa_dev, vdev) > + > +struct mlx5_vdpa_net_resources { > + u32 tisn; > + u32 tdn; > + u32 tirn; > + u32 rqtn; > + bool valid; > +}; > + > +#define MLX5V_MACVLAN_SIZE 256 > + > +struct mlx5_vdpa_net { > + struct mlx5_vdpa_dev mvdev; > + struct mlx5_vdpa_net_resources res; > + struct virtio_net_config config; > + struct mlx5_vdpa_virtqueue *vqs; > + struct vdpa_callback *event_cbs; > + > + /* Serialize vq resources creation and destruction. This is required > + * since memory map might change and we need to destroy and create > + * resources while driver in operational. > + */ > + struct rw_semaphore reslock; > + struct mlx5_flow_table *rxft; > + struct dentry *rx_dent; > + struct dentry *rx_table_dent; > + bool setup; > + u32 cur_num_vqs; > + u32 rqt_size; > + bool nb_registered; > + struct notifier_block nb; > + struct vdpa_callback config_cb; > + struct mlx5_vdpa_wq_ent cvq_ent; > + struct hlist_head macvlan_hash[MLX5V_MACVLAN_SIZE]; > +}; > + > +struct macvlan_node { > + struct hlist_node hlist; > + struct mlx5_flow_handle *ucast_rule; > + struct mlx5_flow_handle *mcast_rule; > + u64 macvlan; > +}; > + > +#endif /* __MLX5_VNET_H__ */-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20221018/56c719f3/attachment-0001.html>