summaryrefslogtreecommitdiffstats
path: root/debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch')
-rw-r--r--debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch100
1 files changed, 100 insertions, 0 deletions
diff --git a/debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch b/debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch
new file mode 100644
index 000000000..c846badc8
--- /dev/null
+++ b/debian/patches/features/all/ethernet-microsoft/0007-net-mana-Export-Work-Queue-functions-for-use-by-RDMA.patch
@@ -0,0 +1,100 @@
+From 8334d5a28eb711b8f464e0bd3ec0f76b0594bf95 Mon Sep 17 00:00:00 2001
+From: Long Li <longli@microsoft.com>
+Date: Thu, 3 Nov 2022 12:16:23 -0700
+Subject: [PATCH 07/23] 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>
+(cherry picked from commit 4c0ff7a106e16ab63e0b597557255c012f179578)
+Signed-off-by: Bastian Blank <waldi@debian.org>
+---
+ drivers/net/ethernet/microsoft/mana/gdma_main.c | 1 +
+ drivers/net/ethernet/microsoft/mana/mana.h | 9 +++++++++
+ drivers/net/ethernet/microsoft/mana/mana_en.c | 16 +++++++++-------
+ 3 files changed, 19 insertions(+), 7 deletions(-)
+
+diff --git a/drivers/net/ethernet/microsoft/mana/gdma_main.c b/drivers/net/ethernet/microsoft/mana/gdma_main.c
+index bc00a7d07232..d9be0f3044ea 100644
+--- a/drivers/net/ethernet/microsoft/mana/gdma_main.c
++++ b/drivers/net/ethernet/microsoft/mana/gdma_main.c
+@@ -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)
+diff --git a/drivers/net/ethernet/microsoft/mana/mana.h b/drivers/net/ethernet/microsoft/mana/mana.h
+index 2883a08dbfb5..6e9e86fb4c02 100644
+--- a/drivers/net/ethernet/microsoft/mana/mana.h
++++ b/drivers/net/ethernet/microsoft/mana/mana.h
+@@ -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);
+diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c b/drivers/net/ethernet/microsoft/mana/mana_en.c
+index c5ab5cb63cb7..a526657f4edb 100644
+--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
++++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
+@@ -792,11 +792,11 @@ static int mana_cfg_vport_steering(struct mana_port_context *apc,
+ 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)
+ {
+--
+2.40.1
+