提交 a4d825a0 编写于 作者: C Christoph Hellwig 提交者: Doug Ledford

IB: remove ib_query_mr

This functionality has no users and was only supported by the staged out
EHCA driver.
Signed-off-by: NChristoph Hellwig <hch@lst.de>
Reviewed-by: NSagi Grimberg <sagig@mellanox.com>
Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> [core]
Reviewed-by: NSteve Wise <swise@opengridcomputing.com>
Signed-off-by: NDoug Ledford <dledford@redhat.com>
上级 b1adc714
...@@ -1352,13 +1352,6 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags) ...@@ -1352,13 +1352,6 @@ struct ib_mr *ib_get_dma_mr(struct ib_pd *pd, int mr_access_flags)
} }
EXPORT_SYMBOL(ib_get_dma_mr); EXPORT_SYMBOL(ib_get_dma_mr);
int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr)
{
return mr->device->query_mr ?
mr->device->query_mr(mr, mr_attr) : -ENOSYS;
}
EXPORT_SYMBOL(ib_query_mr);
int ib_dereg_mr(struct ib_mr *mr) int ib_dereg_mr(struct ib_mr *mr)
{ {
struct ib_pd *pd; struct ib_pd *pd;
......
...@@ -95,8 +95,6 @@ int ehca_rereg_phys_mr(struct ib_mr *mr, ...@@ -95,8 +95,6 @@ int ehca_rereg_phys_mr(struct ib_mr *mr,
struct ib_phys_buf *phys_buf_array, struct ib_phys_buf *phys_buf_array,
int num_phys_buf, int mr_access_flags, u64 *iova_start); int num_phys_buf, int mr_access_flags, u64 *iova_start);
int ehca_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr);
int ehca_dereg_mr(struct ib_mr *mr); int ehca_dereg_mr(struct ib_mr *mr);
struct ib_mw *ehca_alloc_mw(struct ib_pd *pd, enum ib_mw_type type); struct ib_mw *ehca_alloc_mw(struct ib_pd *pd, enum ib_mw_type type);
......
...@@ -514,7 +514,6 @@ static int ehca_init_device(struct ehca_shca *shca) ...@@ -514,7 +514,6 @@ static int ehca_init_device(struct ehca_shca *shca)
shca->ib_device.get_dma_mr = ehca_get_dma_mr; shca->ib_device.get_dma_mr = ehca_get_dma_mr;
shca->ib_device.reg_phys_mr = ehca_reg_phys_mr; shca->ib_device.reg_phys_mr = ehca_reg_phys_mr;
shca->ib_device.reg_user_mr = ehca_reg_user_mr; shca->ib_device.reg_user_mr = ehca_reg_user_mr;
shca->ib_device.query_mr = ehca_query_mr;
shca->ib_device.dereg_mr = ehca_dereg_mr; shca->ib_device.dereg_mr = ehca_dereg_mr;
shca->ib_device.rereg_phys_mr = ehca_rereg_phys_mr; shca->ib_device.rereg_phys_mr = ehca_rereg_phys_mr;
shca->ib_device.alloc_mw = ehca_alloc_mw; shca->ib_device.alloc_mw = ehca_alloc_mw;
......
...@@ -589,55 +589,6 @@ int ehca_rereg_phys_mr(struct ib_mr *mr, ...@@ -589,55 +589,6 @@ int ehca_rereg_phys_mr(struct ib_mr *mr,
return ret; return ret;
} /* end ehca_rereg_phys_mr() */ } /* end ehca_rereg_phys_mr() */
/*----------------------------------------------------------------------*/
int ehca_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr)
{
int ret = 0;
u64 h_ret;
struct ehca_shca *shca =
container_of(mr->device, struct ehca_shca, ib_device);
struct ehca_mr *e_mr = container_of(mr, struct ehca_mr, ib.ib_mr);
unsigned long sl_flags;
struct ehca_mr_hipzout_parms hipzout;
if ((e_mr->flags & EHCA_MR_FLAG_FMR)) {
ehca_err(mr->device, "not supported for FMR, mr=%p e_mr=%p "
"e_mr->flags=%x", mr, e_mr, e_mr->flags);
ret = -EINVAL;
goto query_mr_exit0;
}
memset(mr_attr, 0, sizeof(struct ib_mr_attr));
spin_lock_irqsave(&e_mr->mrlock, sl_flags);
h_ret = hipz_h_query_mr(shca->ipz_hca_handle, e_mr, &hipzout);
if (h_ret != H_SUCCESS) {
ehca_err(mr->device, "hipz_mr_query failed, h_ret=%lli mr=%p "
"hca_hndl=%llx mr_hndl=%llx lkey=%x",
h_ret, mr, shca->ipz_hca_handle.handle,
e_mr->ipz_mr_handle.handle, mr->lkey);
ret = ehca2ib_return_code(h_ret);
goto query_mr_exit1;
}
mr_attr->pd = mr->pd;
mr_attr->device_virt_addr = hipzout.vaddr;
mr_attr->size = hipzout.len;
mr_attr->lkey = hipzout.lkey;
mr_attr->rkey = hipzout.rkey;
ehca_mrmw_reverse_map_acl(&hipzout.acl, &mr_attr->mr_access_flags);
query_mr_exit1:
spin_unlock_irqrestore(&e_mr->mrlock, sl_flags);
query_mr_exit0:
if (ret)
ehca_err(mr->device, "ret=%i mr=%p mr_attr=%p",
ret, mr, mr_attr);
return ret;
} /* end ehca_query_mr() */
/*----------------------------------------------------------------------*/
int ehca_dereg_mr(struct ib_mr *mr) int ehca_dereg_mr(struct ib_mr *mr)
{ {
int ret = 0; int ret = 0;
......
...@@ -1288,15 +1288,6 @@ struct ib_phys_buf { ...@@ -1288,15 +1288,6 @@ struct ib_phys_buf {
u64 size; u64 size;
}; };
struct ib_mr_attr {
struct ib_pd *pd;
u64 device_virt_addr;
u64 size;
int mr_access_flags;
u32 lkey;
u32 rkey;
};
enum ib_mr_rereg_flags { enum ib_mr_rereg_flags {
IB_MR_REREG_TRANS = 1, IB_MR_REREG_TRANS = 1,
IB_MR_REREG_PD = (1<<1), IB_MR_REREG_PD = (1<<1),
...@@ -1846,8 +1837,6 @@ struct ib_device { ...@@ -1846,8 +1837,6 @@ struct ib_device {
int mr_access_flags, int mr_access_flags,
struct ib_pd *pd, struct ib_pd *pd,
struct ib_udata *udata); struct ib_udata *udata);
int (*query_mr)(struct ib_mr *mr,
struct ib_mr_attr *mr_attr);
int (*dereg_mr)(struct ib_mr *mr); int (*dereg_mr)(struct ib_mr *mr);
struct ib_mr * (*alloc_mr)(struct ib_pd *pd, struct ib_mr * (*alloc_mr)(struct ib_pd *pd,
enum ib_mr_type mr_type, enum ib_mr_type mr_type,
...@@ -2958,13 +2947,6 @@ static inline void ib_dma_free_coherent(struct ib_device *dev, ...@@ -2958,13 +2947,6 @@ static inline void ib_dma_free_coherent(struct ib_device *dev,
dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle); dma_free_coherent(dev->dma_device, size, cpu_addr, dma_handle);
} }
/**
* ib_query_mr - Retrieves information about a specific memory region.
* @mr: The memory region to retrieve information about.
* @mr_attr: The attributes of the specified memory region.
*/
int ib_query_mr(struct ib_mr *mr, struct ib_mr_attr *mr_attr);
/** /**
* ib_dereg_mr - Deregisters a memory region and removes it from the * ib_dereg_mr - Deregisters a memory region and removes it from the
* HCA translation table. * HCA translation table.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册