提交 926a4178 编写于 作者: W wangsirong 提交者: Xie XiuQi

RDMA/hns: Export symbol for roce-customer

driver inclusion
category: bugfix
bugzilla: NA
CVE: NA

Add new items for set_mtpt_pbl, It is a
requirement only for Application, and no
need to upstream.

Feature or Bugfix:Feature
Signed-off-by: Nwangsirong <wangsirong@huawei.com>
Signed-off-by: Nliyangyang (M) <liyangyang20@huawei.com>
Reviewed-by: Noulijun <oulijun@huawei.com>
Reviewed-by: Nliuyixian <liuyixian@huawei.com>
Reviewed-by: NYang Yingliang <yangyingliang@huawei.com>
Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
上级 0e1f18b5
...@@ -63,7 +63,7 @@ int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, unsigned long *obj) ...@@ -63,7 +63,7 @@ int hns_roce_bitmap_alloc(struct hns_roce_bitmap *bitmap, unsigned long *obj)
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(hns_roce_bitmap_alloc);
void hns_roce_bitmap_free(struct hns_roce_bitmap *bitmap, unsigned long obj, void hns_roce_bitmap_free(struct hns_roce_bitmap *bitmap, unsigned long obj,
int rr) int rr)
{ {
......
...@@ -106,6 +106,7 @@ ...@@ -106,6 +106,7 @@
#define MR_TYPE_MR 0x00 #define MR_TYPE_MR 0x00
#define MR_TYPE_FRMR 0x01 #define MR_TYPE_FRMR 0x01
#define MR_TYPE_DMA 0x03 #define MR_TYPE_DMA 0x03
#define MR_TYPE_UMM 0x04
#define PKEY_ID 0xffff #define PKEY_ID 0xffff
#define GUID_LEN 8 #define GUID_LEN 8
...@@ -1466,6 +1467,17 @@ int hns_roce_fill_res_entry(struct sk_buff *msg, ...@@ -1466,6 +1467,17 @@ int hns_roce_fill_res_entry(struct sk_buff *msg,
int hns_roce_register_sysfs(struct hns_roce_dev *hr_dev); int hns_roce_register_sysfs(struct hns_roce_dev *hr_dev);
void hns_roce_unregister_sysfs(struct hns_roce_dev *hr_dev); void hns_roce_unregister_sysfs(struct hns_roce_dev *hr_dev);
u32 hw_index_to_key(unsigned long ind);
int hns_roce_mr_enable(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr);
void hns_roce_mr_free(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr);
int hns_roce_ib_umem_write_mr(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr,
struct ib_umem *umem);
int hns_roce_mr_alloc(struct hns_roce_dev *hr_dev, u32 pd, u64 iova,
u64 size, u32 access, int npages,
struct hns_roce_mr *mr);
enum hns_phy_state { enum hns_phy_state {
HNS_ROCE_PHY_SLEEP = 1, HNS_ROCE_PHY_SLEEP = 1,
HNS_ROCE_PHY_POLLING = 2, HNS_ROCE_PHY_POLLING = 2,
...@@ -1512,7 +1524,9 @@ enum { ...@@ -1512,7 +1524,9 @@ enum {
RDFX_FUNC_REG_USER_MR, RDFX_FUNC_REG_USER_MR,
RDFX_FUNC_REREG_USER_MR, RDFX_FUNC_REREG_USER_MR,
RDFX_FUNC_DEREG_MR, RDFX_FUNC_DEREG_MR,
RDFX_FUNC_PORT_IMMUTABLE RDFX_FUNC_PORT_IMMUTABLE,
RDFX_FUNC_REG_UMM_MR,
RDFX_FUNC_DEREG_UMM_MR,
}; };
void alloc_rdfx_info(struct hns_roce_dev *hr_dev); void alloc_rdfx_info(struct hns_roce_dev *hr_dev);
void rdfx_set_dev_name(struct hns_roce_dev *hr_dev); void rdfx_set_dev_name(struct hns_roce_dev *hr_dev);
......
...@@ -2459,10 +2459,17 @@ static int set_mtpt_pbl(struct hns_roce_v2_mpt_entry *mpt_entry, ...@@ -2459,10 +2459,17 @@ static int set_mtpt_pbl(struct hns_roce_v2_mpt_entry *mpt_entry,
mpt_entry->pa1_l = cpu_to_le32(lower_32_bits(pages[1])); mpt_entry->pa1_l = cpu_to_le32(lower_32_bits(pages[1]));
roce_set_field(mpt_entry->byte_64_buf_pa1, V2_MPT_BYTE_64_PA1_H_M, roce_set_field(mpt_entry->byte_64_buf_pa1, V2_MPT_BYTE_64_PA1_H_M,
V2_MPT_BYTE_64_PA1_H_S, upper_32_bits(pages[1])); V2_MPT_BYTE_64_PA1_H_S, upper_32_bits(pages[1]));
if (mr->type != MR_TYPE_UMM)
roce_set_field(mpt_entry->byte_64_buf_pa1, roce_set_field(mpt_entry->byte_64_buf_pa1,
V2_MPT_BYTE_64_PBL_BUF_PG_SZ_M, V2_MPT_BYTE_64_PBL_BUF_PG_SZ_M,
V2_MPT_BYTE_64_PBL_BUF_PG_SZ_S, V2_MPT_BYTE_64_PBL_BUF_PG_SZ_S,
mr->pbl_buf_pg_sz + PG_SHIFT_OFFSET); mr->pbl_buf_pg_sz + PG_SHIFT_OFFSET);
else
roce_set_field(mpt_entry->byte_64_buf_pa1,
V2_MPT_BYTE_64_PBL_BUF_PG_SZ_M,
V2_MPT_BYTE_64_PBL_BUF_PG_SZ_S,
mr->pbl_buf_pg_sz + mr->umem->page_shift - 12);
free_page((unsigned long)pages); free_page((unsigned long)pages);
...@@ -2505,7 +2512,7 @@ static int hns_roce_v2_write_mtpt(void *mb_buf, struct hns_roce_mr *mr, ...@@ -2505,7 +2512,7 @@ static int hns_roce_v2_write_mtpt(void *mb_buf, struct hns_roce_mr *mr,
(mr->access & IB_ACCESS_LOCAL_WRITE ? 1 : 0)); (mr->access & IB_ACCESS_LOCAL_WRITE ? 1 : 0));
roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_PA_S, roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_PA_S,
mr->type == MR_TYPE_MR ? 0 : 1); (mr->type == MR_TYPE_MR || mr->type == MR_TYPE_UMM) ? 0 : 1);
roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_INNER_PA_VLD_S, roce_set_bit(mpt_entry->byte_12_mw_pa, V2_MPT_BYTE_12_INNER_PA_VLD_S,
1); 1);
......
...@@ -43,10 +43,11 @@ ...@@ -43,10 +43,11 @@
#include "hns_roce_test.h" #include "hns_roce_test.h"
#endif #endif
static u32 hw_index_to_key(unsigned long ind) u32 hw_index_to_key(unsigned long ind)
{ {
return (u32)(ind >> 24) | (ind << 8); return (u32)(ind >> 24) | (ind << 8);
} }
EXPORT_SYMBOL_GPL(hw_index_to_key);
unsigned long key_to_hw_index(u32 key) unsigned long key_to_hw_index(u32 key)
{ {
...@@ -576,7 +577,7 @@ static int hns_roce_mhop_alloc(struct hns_roce_dev *hr_dev, int npages, ...@@ -576,7 +577,7 @@ static int hns_roce_mhop_alloc(struct hns_roce_dev *hr_dev, int npages,
return -ENOMEM; return -ENOMEM;
} }
static int hns_roce_mr_alloc(struct hns_roce_dev *hr_dev, u32 pd, u64 iova, int hns_roce_mr_alloc(struct hns_roce_dev *hr_dev, u32 pd, u64 iova,
u64 size, u32 access, int npages, u64 size, u32 access, int npages,
struct hns_roce_mr *mr) struct hns_roce_mr *mr)
{ {
...@@ -621,6 +622,7 @@ static int hns_roce_mr_alloc(struct hns_roce_dev *hr_dev, u32 pd, u64 iova, ...@@ -621,6 +622,7 @@ static int hns_roce_mr_alloc(struct hns_roce_dev *hr_dev, u32 pd, u64 iova,
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(hns_roce_mr_alloc);
static void hns_roce_mhop_free(struct hns_roce_dev *hr_dev, static void hns_roce_mhop_free(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr) struct hns_roce_mr *mr)
...@@ -704,7 +706,7 @@ static void hns_roce_mhop_free(struct hns_roce_dev *hr_dev, ...@@ -704,7 +706,7 @@ static void hns_roce_mhop_free(struct hns_roce_dev *hr_dev,
} }
} }
static void hns_roce_mr_free(struct hns_roce_dev *hr_dev, void hns_roce_mr_free(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr) struct hns_roce_mr *mr)
{ {
struct device *dev = hr_dev->dev; struct device *dev = hr_dev->dev;
...@@ -737,8 +739,9 @@ static void hns_roce_mr_free(struct hns_roce_dev *hr_dev, ...@@ -737,8 +739,9 @@ static void hns_roce_mr_free(struct hns_roce_dev *hr_dev,
hns_roce_bitmap_free(&hr_dev->mr_table.mtpt_bitmap, hns_roce_bitmap_free(&hr_dev->mr_table.mtpt_bitmap,
key_to_hw_index(mr->key), BITMAP_NO_RR); key_to_hw_index(mr->key), BITMAP_NO_RR);
} }
EXPORT_SYMBOL_GPL(hns_roce_mr_free);
static int hns_roce_mr_enable(struct hns_roce_dev *hr_dev, int hns_roce_mr_enable(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr) struct hns_roce_mr *mr)
{ {
int ret; int ret;
...@@ -789,6 +792,7 @@ static int hns_roce_mr_enable(struct hns_roce_dev *hr_dev, ...@@ -789,6 +792,7 @@ static int hns_roce_mr_enable(struct hns_roce_dev *hr_dev,
hns_roce_table_put(hr_dev, &mr_table->mtpt_table, mtpt_idx); hns_roce_table_put(hr_dev, &mr_table->mtpt_table, mtpt_idx);
return ret; return ret;
} }
EXPORT_SYMBOL_GPL(hns_roce_mr_enable);
static int hns_roce_write_mtt_chunk(struct hns_roce_dev *hr_dev, static int hns_roce_write_mtt_chunk(struct hns_roce_dev *hr_dev,
struct hns_roce_mtt *mtt, u32 start_index, struct hns_roce_mtt *mtt, u32 start_index,
...@@ -1108,7 +1112,7 @@ int hns_roce_ib_umem_write_mtt(struct hns_roce_dev *hr_dev, ...@@ -1108,7 +1112,7 @@ int hns_roce_ib_umem_write_mtt(struct hns_roce_dev *hr_dev,
return ret; return ret;
} }
static int hns_roce_ib_umem_write_mr(struct hns_roce_dev *hr_dev, int hns_roce_ib_umem_write_mr(struct hns_roce_dev *hr_dev,
struct hns_roce_mr *mr, struct hns_roce_mr *mr,
struct ib_umem *umem) struct ib_umem *umem)
{ {
...@@ -1154,6 +1158,7 @@ static int hns_roce_ib_umem_write_mr(struct hns_roce_dev *hr_dev, ...@@ -1154,6 +1158,7 @@ static int hns_roce_ib_umem_write_mr(struct hns_roce_dev *hr_dev,
return 0; return 0;
} }
EXPORT_SYMBOL_GPL(hns_roce_ib_umem_write_mr);
struct ib_mr *hns_roce_reg_user_mr(struct ib_pd *pd, u64 start, u64 length, struct ib_mr *hns_roce_reg_user_mr(struct ib_pd *pd, u64 start, u64 length,
u64 virt_addr, int access_flags, u64 virt_addr, int access_flags,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册