mlx5_vdpa_net
struct mlx5_vdpa_net *ndev = file->private;
void mlx5_vdpa_remove_rx_counters(struct mlx5_vdpa_net *ndev,
void mlx5_vdpa_add_debugfs(struct mlx5_vdpa_net *ndev)
void mlx5_vdpa_remove_debugfs(struct mlx5_vdpa_net *ndev)
void mlx5_vdpa_remove_tirn(struct mlx5_vdpa_net *ndev)
void mlx5_vdpa_add_tirn(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev = file->private;
void mlx5_vdpa_remove_rx_flow_table(struct mlx5_vdpa_net *ndev)
void mlx5_vdpa_add_rx_flow_table(struct mlx5_vdpa_net *ndev)
void mlx5_vdpa_add_rx_counters(struct mlx5_vdpa_net *ndev,
static void destroy_virtqueue(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void alloc_inout(struct mlx5_vdpa_net *ndev, int cmd, void **in, int *inlen, void **out,
static int modify_qp(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, bool fw, int cmd)
static int connect_qps(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void fill_query_virtqueue_cmd(struct mlx5_vdpa_net *ndev,
static void query_virtqueue_end(struct mlx5_vdpa_net *ndev,
static int query_virtqueues(struct mlx5_vdpa_net *ndev,
static bool is_resumable(struct mlx5_vdpa_net *ndev)
static void fill_modify_virtqueue_cmd(struct mlx5_vdpa_net *ndev,
struct mlx5_vdpa_net *ndev;
static void modify_virtqueue_end(struct mlx5_vdpa_net *ndev,
static int counter_set_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void counter_set_dealloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void alloc_vector(struct mlx5_vdpa_net *ndev,
static void dealloc_vector(struct mlx5_vdpa_net *ndev,
static int setup_vq(struct mlx5_vdpa_net *ndev,
static int modify_virtqueues(struct mlx5_vdpa_net *ndev, int start_vq, int num_vqs, int state)
static void free_fixed_resources(struct mlx5_vdpa_net *ndev);
static void mvqs_set_defaults(struct mlx5_vdpa_net *ndev);
static int setup_vq_resources(struct mlx5_vdpa_net *ndev, bool filled);
static void teardown_vq_resources(struct mlx5_vdpa_net *ndev);
static int resume_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq);
static int suspend_vqs(struct mlx5_vdpa_net *ndev, int start_vq, int num_vqs)
static int suspend_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static int resume_vqs(struct mlx5_vdpa_net *ndev, int start_vq, int num_vqs)
static int resume_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void teardown_vq(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static int create_rqt(struct mlx5_vdpa_net *ndev)
static int modify_rqt(struct mlx5_vdpa_net *ndev, int num)
static void destroy_rqt(struct mlx5_vdpa_net *ndev)
static int create_tir(struct mlx5_vdpa_net *ndev)
static void destroy_tir(struct mlx5_vdpa_net *ndev)
static int add_steering_counters(struct mlx5_vdpa_net *ndev,
static void remove_steering_counters(struct mlx5_vdpa_net *ndev,
static int mlx5_vdpa_add_mac_vlan_rules(struct mlx5_vdpa_net *ndev, u8 *mac,
static void mlx5_vdpa_del_mac_vlan_rules(struct mlx5_vdpa_net *ndev,
static struct macvlan_node *mac_vlan_lookup(struct mlx5_vdpa_net *ndev, u64 value)
static int mac_vlan_add(struct mlx5_vdpa_net *ndev, u8 *mac, u16 vid, bool tagged)
static void mac_vlan_del(struct mlx5_vdpa_net *ndev, u8 *mac, u16 vlan, bool tagged)
static void clear_mac_vlan_table(struct mlx5_vdpa_net *ndev)
static int setup_steering(struct mlx5_vdpa_net *ndev)
static void teardown_steering(struct mlx5_vdpa_net *ndev)
static int mlx5_vdpa_change_mac(struct mlx5_vdpa_net *ndev,
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev;
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static void teardown_virtqueues(struct mlx5_vdpa_net *ndev)
static int create_tis(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev;
static int queue_link_work(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev = container_of(nb, struct mlx5_vdpa_net, nb);
static void register_link_notifier(struct mlx5_vdpa_net *ndev)
static void unregister_link_notifier(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static void destroy_tis(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static int save_channel_info(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static int save_channels_info(struct mlx5_vdpa_net *ndev)
static void mlx5_clear_vqs(struct mlx5_vdpa_net *ndev)
static void restore_channels_info(struct mlx5_vdpa_net *ndev)
static int cq_frag_buf_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_cq_buf *buf, int nent)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static int setup_vq_resources(struct mlx5_vdpa_net *ndev, bool filled)
static void teardown_vq_resources(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static int umem_frag_buf_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_umem *umem, int size)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static void cq_frag_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_cq_buf *buf)
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static void free_irqs(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev;
struct mlx5_vdpa_net *ndev;
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
static int counter_set_query(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq,
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev;
static int alloc_fixed_resources(struct mlx5_vdpa_net *ndev)
static void qp_prepare(struct mlx5_vdpa_net *ndev, bool fw, void *in,
static void free_fixed_resources(struct mlx5_vdpa_net *ndev)
static void mvqs_set_defaults(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev;
static void allocate_irqs(struct mlx5_vdpa_net *ndev)
struct mlx5_vdpa_net *ndev;
ndev = vdpa_alloc_device(struct mlx5_vdpa_net, mvdev.vdev, mdev->device, &mgtdev->vdpa_ops,
struct mlx5_vdpa_net *ndev = to_mlx5_vdpa_ndev(mvdev);
struct mlx5_vdpa_net *ndev;
static int rq_buf_alloc(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp, u32 num_ent)
static void rq_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp)
static int qp_create(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq,
static void qp_destroy(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_qp *vqp)
struct mlx5_vdpa_net *ndev = mvq->ndev;
struct mlx5_vdpa_net *ndev = mvq->ndev;
static int cq_create(struct mlx5_vdpa_net *ndev, u16 idx, u32 num_ent)
static void cq_destroy(struct mlx5_vdpa_net *ndev, u16 idx)
static int read_umem_params(struct mlx5_vdpa_net *ndev)
static void set_umem_size(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num,
static void umem_frag_buf_free(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_umem *umem)
static int create_umem(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num)
static void umem_destroy(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq, int num)
static int umems_create(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static void umems_destroy(struct mlx5_vdpa_net *ndev, struct mlx5_vdpa_virtqueue *mvq)
static int get_queue_type(struct mlx5_vdpa_net *ndev)
static int create_virtqueue(struct mlx5_vdpa_net *ndev,
container_of(__mvdev, struct mlx5_vdpa_net, mvdev)
void mlx5_vdpa_add_debugfs(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_remove_debugfs(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_add_rx_flow_table(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_remove_rx_flow_table(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_add_tirn(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_remove_tirn(struct mlx5_vdpa_net *ndev);
void mlx5_vdpa_add_rx_counters(struct mlx5_vdpa_net *ndev,
void mlx5_vdpa_remove_rx_counters(struct mlx5_vdpa_net *ndev,
static inline void mlx5_vdpa_add_rx_counters(struct mlx5_vdpa_net *ndev,
static inline void mlx5_vdpa_remove_rx_counters(struct mlx5_vdpa_net *ndev,
struct mlx5_vdpa_net *ndev;