vdpa/mlx5: Move some definitions to a new header file
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. Reviewed-by: Si-Wei Liu <si-wei.liu@oracle.com> Acked-by: Jason Wang <jasowang@redhat.com> Signed-off-by: Eli Cohen <elic@nvidia.com> Message-Id: <20221114131759.57883-7-elic@nvidia.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Родитель
b16a1756c7
Коммит
72c67e9b90
|
@ -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@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);
|
||||
|
|
|
@ -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__ */
|
Загрузка…
Ссылка в новой задаче