net: mana: Export Work Queue functions for use by RDMA driver
RDMA device may need to create Ethernet device queues for use by Queue Pair type RAW. This allows a user-mode context accesses Ethernet hardware queues. Export the supporting functions for use by the RDMA driver. Reviewed-by: Dexuan Cui <decui@microsoft.com> Signed-off-by: Long Li <longli@microsoft.com> Link: https://lore.kernel.org/r/1667502990-2559-6-git-send-email-longli@linuxonhyperv.com Acked-by: Haiyang Zhang <haiyangz@microsoft.com> Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
This commit is contained in:
parent
6fe254160b
commit
4c0ff7a106
|
@ -152,6 +152,7 @@ int mana_gd_send_request(struct gdma_context *gc, u32 req_len, const void *req,
|
|||
|
||||
return mana_hwc_send_request(hwc, req_len, req, resp_len, resp);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(mana_gd_send_request, NET_MANA);
|
||||
|
||||
int mana_gd_alloc_memory(struct gdma_context *gc, unsigned int length,
|
||||
struct gdma_mem_info *gmi)
|
||||
|
|
|
@ -635,6 +635,15 @@ struct mana_tx_package {
|
|||
struct gdma_posted_wqe_info wqe_info;
|
||||
};
|
||||
|
||||
int mana_create_wq_obj(struct mana_port_context *apc,
|
||||
mana_handle_t vport,
|
||||
u32 wq_type, struct mana_obj_spec *wq_spec,
|
||||
struct mana_obj_spec *cq_spec,
|
||||
mana_handle_t *wq_obj);
|
||||
|
||||
void mana_destroy_wq_obj(struct mana_port_context *apc, u32 wq_type,
|
||||
mana_handle_t wq_obj);
|
||||
|
||||
int mana_cfg_vport(struct mana_port_context *apc, u32 protection_dom_id,
|
||||
u32 doorbell_pg_id);
|
||||
void mana_uncfg_vport(struct mana_port_context *apc);
|
||||
|
|
|
@ -792,11 +792,11 @@ out:
|
|||
return err;
|
||||
}
|
||||
|
||||
static int mana_create_wq_obj(struct mana_port_context *apc,
|
||||
mana_handle_t vport,
|
||||
u32 wq_type, struct mana_obj_spec *wq_spec,
|
||||
struct mana_obj_spec *cq_spec,
|
||||
mana_handle_t *wq_obj)
|
||||
int mana_create_wq_obj(struct mana_port_context *apc,
|
||||
mana_handle_t vport,
|
||||
u32 wq_type, struct mana_obj_spec *wq_spec,
|
||||
struct mana_obj_spec *cq_spec,
|
||||
mana_handle_t *wq_obj)
|
||||
{
|
||||
struct mana_create_wqobj_resp resp = {};
|
||||
struct mana_create_wqobj_req req = {};
|
||||
|
@ -845,9 +845,10 @@ static int mana_create_wq_obj(struct mana_port_context *apc,
|
|||
out:
|
||||
return err;
|
||||
}
|
||||
EXPORT_SYMBOL_NS(mana_create_wq_obj, NET_MANA);
|
||||
|
||||
static void mana_destroy_wq_obj(struct mana_port_context *apc, u32 wq_type,
|
||||
mana_handle_t wq_obj)
|
||||
void mana_destroy_wq_obj(struct mana_port_context *apc, u32 wq_type,
|
||||
mana_handle_t wq_obj)
|
||||
{
|
||||
struct mana_destroy_wqobj_resp resp = {};
|
||||
struct mana_destroy_wqobj_req req = {};
|
||||
|
@ -872,6 +873,7 @@ static void mana_destroy_wq_obj(struct mana_port_context *apc, u32 wq_type,
|
|||
netdev_err(ndev, "Failed to destroy WQ object: %d, 0x%x\n", err,
|
||||
resp.hdr.status);
|
||||
}
|
||||
EXPORT_SYMBOL_NS(mana_destroy_wq_obj, NET_MANA);
|
||||
|
||||
static void mana_destroy_eq(struct mana_context *ac)
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue