mlx4_core: Rename MPT-related functions to have mpt_ prefix
The MPT - Memory Protection Table - is used by both memory windows and memory regions. Hence, all MPT references are relevant for both types of memory objects. Rename the relevant functions to start with mpt_ instead of the current mr_ prefix. Signed-off-by: Haggai Eran <haggaie@mellanox.com> Signed-off-by: Shani Michaeli <shanim@mellanox.com> Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
This commit is contained in:
Родитель
aee38fadd2
Коммит
b20e519a81
|
@ -118,10 +118,10 @@ enum {
|
||||||
MLX4_NUM_CMPTS = MLX4_CMPT_NUM_TYPE << MLX4_CMPT_SHIFT
|
MLX4_NUM_CMPTS = MLX4_CMPT_NUM_TYPE << MLX4_CMPT_SHIFT
|
||||||
};
|
};
|
||||||
|
|
||||||
enum mlx4_mr_state {
|
enum mlx4_mpt_state {
|
||||||
MLX4_MR_DISABLED = 0,
|
MLX4_MPT_DISABLED = 0,
|
||||||
MLX4_MR_EN_HW,
|
MLX4_MPT_EN_HW,
|
||||||
MLX4_MR_EN_SW
|
MLX4_MPT_EN_SW
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MLX4_COMM_TIME 10000
|
#define MLX4_COMM_TIME 10000
|
||||||
|
@ -871,10 +871,10 @@ int __mlx4_cq_alloc_icm(struct mlx4_dev *dev, int *cqn);
|
||||||
void __mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn);
|
void __mlx4_cq_free_icm(struct mlx4_dev *dev, int cqn);
|
||||||
int __mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn);
|
int __mlx4_srq_alloc_icm(struct mlx4_dev *dev, int *srqn);
|
||||||
void __mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn);
|
void __mlx4_srq_free_icm(struct mlx4_dev *dev, int srqn);
|
||||||
int __mlx4_mr_reserve(struct mlx4_dev *dev);
|
int __mlx4_mpt_reserve(struct mlx4_dev *dev);
|
||||||
void __mlx4_mr_release(struct mlx4_dev *dev, u32 index);
|
void __mlx4_mpt_release(struct mlx4_dev *dev, u32 index);
|
||||||
int __mlx4_mr_alloc_icm(struct mlx4_dev *dev, u32 index);
|
int __mlx4_mpt_alloc_icm(struct mlx4_dev *dev, u32 index);
|
||||||
void __mlx4_mr_free_icm(struct mlx4_dev *dev, u32 index);
|
void __mlx4_mpt_free_icm(struct mlx4_dev *dev, u32 index);
|
||||||
u32 __mlx4_alloc_mtt_range(struct mlx4_dev *dev, int order);
|
u32 __mlx4_alloc_mtt_range(struct mlx4_dev *dev, int order);
|
||||||
void __mlx4_free_mtt_range(struct mlx4_dev *dev, u32 first_seg, int order);
|
void __mlx4_free_mtt_range(struct mlx4_dev *dev, u32 first_seg, int order);
|
||||||
|
|
||||||
|
|
|
@ -321,7 +321,7 @@ static int mlx4_mr_alloc_reserved(struct mlx4_dev *dev, u32 mridx, u32 pd,
|
||||||
mr->size = size;
|
mr->size = size;
|
||||||
mr->pd = pd;
|
mr->pd = pd;
|
||||||
mr->access = access;
|
mr->access = access;
|
||||||
mr->enabled = MLX4_MR_DISABLED;
|
mr->enabled = MLX4_MPT_DISABLED;
|
||||||
mr->key = hw_index_to_key(mridx);
|
mr->key = hw_index_to_key(mridx);
|
||||||
|
|
||||||
return mlx4_mtt_init(dev, npages, page_shift, &mr->mtt);
|
return mlx4_mtt_init(dev, npages, page_shift, &mr->mtt);
|
||||||
|
@ -335,14 +335,14 @@ static int mlx4_WRITE_MTT(struct mlx4_dev *dev,
|
||||||
MLX4_CMD_TIME_CLASS_A, MLX4_CMD_WRAPPED);
|
MLX4_CMD_TIME_CLASS_A, MLX4_CMD_WRAPPED);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __mlx4_mr_reserve(struct mlx4_dev *dev)
|
int __mlx4_mpt_reserve(struct mlx4_dev *dev)
|
||||||
{
|
{
|
||||||
struct mlx4_priv *priv = mlx4_priv(dev);
|
struct mlx4_priv *priv = mlx4_priv(dev);
|
||||||
|
|
||||||
return mlx4_bitmap_alloc(&priv->mr_table.mpt_bitmap);
|
return mlx4_bitmap_alloc(&priv->mr_table.mpt_bitmap);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mlx4_mr_reserve(struct mlx4_dev *dev)
|
static int mlx4_mpt_reserve(struct mlx4_dev *dev)
|
||||||
{
|
{
|
||||||
u64 out_param;
|
u64 out_param;
|
||||||
|
|
||||||
|
@ -353,17 +353,17 @@ static int mlx4_mr_reserve(struct mlx4_dev *dev)
|
||||||
return -1;
|
return -1;
|
||||||
return get_param_l(&out_param);
|
return get_param_l(&out_param);
|
||||||
}
|
}
|
||||||
return __mlx4_mr_reserve(dev);
|
return __mlx4_mpt_reserve(dev);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __mlx4_mr_release(struct mlx4_dev *dev, u32 index)
|
void __mlx4_mpt_release(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
struct mlx4_priv *priv = mlx4_priv(dev);
|
struct mlx4_priv *priv = mlx4_priv(dev);
|
||||||
|
|
||||||
mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index);
|
mlx4_bitmap_free(&priv->mr_table.mpt_bitmap, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlx4_mr_release(struct mlx4_dev *dev, u32 index)
|
static void mlx4_mpt_release(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
u64 in_param;
|
u64 in_param;
|
||||||
|
|
||||||
|
@ -376,17 +376,17 @@ static void mlx4_mr_release(struct mlx4_dev *dev, u32 index)
|
||||||
index);
|
index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
__mlx4_mr_release(dev, index);
|
__mlx4_mpt_release(dev, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
int __mlx4_mr_alloc_icm(struct mlx4_dev *dev, u32 index)
|
int __mlx4_mpt_alloc_icm(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
struct mlx4_mr_table *mr_table = &mlx4_priv(dev)->mr_table;
|
struct mlx4_mr_table *mr_table = &mlx4_priv(dev)->mr_table;
|
||||||
|
|
||||||
return mlx4_table_get(dev, &mr_table->dmpt_table, index);
|
return mlx4_table_get(dev, &mr_table->dmpt_table, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int mlx4_mr_alloc_icm(struct mlx4_dev *dev, u32 index)
|
static int mlx4_mpt_alloc_icm(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
u64 param;
|
u64 param;
|
||||||
|
|
||||||
|
@ -397,17 +397,17 @@ static int mlx4_mr_alloc_icm(struct mlx4_dev *dev, u32 index)
|
||||||
MLX4_CMD_TIME_CLASS_A,
|
MLX4_CMD_TIME_CLASS_A,
|
||||||
MLX4_CMD_WRAPPED);
|
MLX4_CMD_WRAPPED);
|
||||||
}
|
}
|
||||||
return __mlx4_mr_alloc_icm(dev, index);
|
return __mlx4_mpt_alloc_icm(dev, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __mlx4_mr_free_icm(struct mlx4_dev *dev, u32 index)
|
void __mlx4_mpt_free_icm(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
struct mlx4_mr_table *mr_table = &mlx4_priv(dev)->mr_table;
|
struct mlx4_mr_table *mr_table = &mlx4_priv(dev)->mr_table;
|
||||||
|
|
||||||
mlx4_table_put(dev, &mr_table->dmpt_table, index);
|
mlx4_table_put(dev, &mr_table->dmpt_table, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void mlx4_mr_free_icm(struct mlx4_dev *dev, u32 index)
|
static void mlx4_mpt_free_icm(struct mlx4_dev *dev, u32 index)
|
||||||
{
|
{
|
||||||
u64 in_param;
|
u64 in_param;
|
||||||
|
|
||||||
|
@ -420,7 +420,7 @@ static void mlx4_mr_free_icm(struct mlx4_dev *dev, u32 index)
|
||||||
index);
|
index);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
return __mlx4_mr_free_icm(dev, index);
|
return __mlx4_mpt_free_icm(dev, index);
|
||||||
}
|
}
|
||||||
|
|
||||||
int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
|
int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
|
||||||
|
@ -429,14 +429,14 @@ int mlx4_mr_alloc(struct mlx4_dev *dev, u32 pd, u64 iova, u64 size, u32 access,
|
||||||
u32 index;
|
u32 index;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
index = mlx4_mr_reserve(dev);
|
index = mlx4_mpt_reserve(dev);
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
err = mlx4_mr_alloc_reserved(dev, index, pd, iova, size,
|
err = mlx4_mr_alloc_reserved(dev, index, pd, iova, size,
|
||||||
access, npages, page_shift, mr);
|
access, npages, page_shift, mr);
|
||||||
if (err)
|
if (err)
|
||||||
mlx4_mr_release(dev, index);
|
mlx4_mpt_release(dev, index);
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
@ -446,14 +446,14 @@ static void mlx4_mr_free_reserved(struct mlx4_dev *dev, struct mlx4_mr *mr)
|
||||||
{
|
{
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (mr->enabled == MLX4_MR_EN_HW) {
|
if (mr->enabled == MLX4_MPT_EN_HW) {
|
||||||
err = mlx4_HW2SW_MPT(dev, NULL,
|
err = mlx4_HW2SW_MPT(dev, NULL,
|
||||||
key_to_hw_index(mr->key) &
|
key_to_hw_index(mr->key) &
|
||||||
(dev->caps.num_mpts - 1));
|
(dev->caps.num_mpts - 1));
|
||||||
if (err)
|
if (err)
|
||||||
mlx4_warn(dev, "xxx HW2SW_MPT failed (%d)\n", err);
|
mlx4_warn(dev, "xxx HW2SW_MPT failed (%d)\n", err);
|
||||||
|
|
||||||
mr->enabled = MLX4_MR_EN_SW;
|
mr->enabled = MLX4_MPT_EN_SW;
|
||||||
}
|
}
|
||||||
mlx4_mtt_cleanup(dev, &mr->mtt);
|
mlx4_mtt_cleanup(dev, &mr->mtt);
|
||||||
}
|
}
|
||||||
|
@ -462,8 +462,8 @@ void mlx4_mr_free(struct mlx4_dev *dev, struct mlx4_mr *mr)
|
||||||
{
|
{
|
||||||
mlx4_mr_free_reserved(dev, mr);
|
mlx4_mr_free_reserved(dev, mr);
|
||||||
if (mr->enabled)
|
if (mr->enabled)
|
||||||
mlx4_mr_free_icm(dev, key_to_hw_index(mr->key));
|
mlx4_mpt_free_icm(dev, key_to_hw_index(mr->key));
|
||||||
mlx4_mr_release(dev, key_to_hw_index(mr->key));
|
mlx4_mpt_release(dev, key_to_hw_index(mr->key));
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mlx4_mr_free);
|
EXPORT_SYMBOL_GPL(mlx4_mr_free);
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ int mlx4_mr_enable(struct mlx4_dev *dev, struct mlx4_mr *mr)
|
||||||
struct mlx4_mpt_entry *mpt_entry;
|
struct mlx4_mpt_entry *mpt_entry;
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
err = mlx4_mr_alloc_icm(dev, key_to_hw_index(mr->key));
|
err = mlx4_mpt_alloc_icm(dev, key_to_hw_index(mr->key));
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
|
@ -520,7 +520,7 @@ int mlx4_mr_enable(struct mlx4_dev *dev, struct mlx4_mr *mr)
|
||||||
mlx4_warn(dev, "SW2HW_MPT failed (%d)\n", err);
|
mlx4_warn(dev, "SW2HW_MPT failed (%d)\n", err);
|
||||||
goto err_cmd;
|
goto err_cmd;
|
||||||
}
|
}
|
||||||
mr->enabled = MLX4_MR_EN_HW;
|
mr->enabled = MLX4_MPT_EN_HW;
|
||||||
|
|
||||||
mlx4_free_cmd_mailbox(dev, mailbox);
|
mlx4_free_cmd_mailbox(dev, mailbox);
|
||||||
|
|
||||||
|
@ -530,7 +530,7 @@ err_cmd:
|
||||||
mlx4_free_cmd_mailbox(dev, mailbox);
|
mlx4_free_cmd_mailbox(dev, mailbox);
|
||||||
|
|
||||||
err_table:
|
err_table:
|
||||||
mlx4_mr_free_icm(dev, key_to_hw_index(mr->key));
|
mlx4_mpt_free_icm(dev, key_to_hw_index(mr->key));
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mlx4_mr_enable);
|
EXPORT_SYMBOL_GPL(mlx4_mr_enable);
|
||||||
|
@ -882,7 +882,7 @@ void mlx4_fmr_unmap(struct mlx4_dev *dev, struct mlx4_fmr *fmr,
|
||||||
err);
|
err);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
fmr->mr.enabled = MLX4_MR_EN_SW;
|
fmr->mr.enabled = MLX4_MPT_EN_SW;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(mlx4_fmr_unmap);
|
EXPORT_SYMBOL_GPL(mlx4_fmr_unmap);
|
||||||
|
|
||||||
|
@ -892,7 +892,7 @@ int mlx4_fmr_free(struct mlx4_dev *dev, struct mlx4_fmr *fmr)
|
||||||
return -EBUSY;
|
return -EBUSY;
|
||||||
|
|
||||||
mlx4_mr_free(dev, &fmr->mr);
|
mlx4_mr_free(dev, &fmr->mr);
|
||||||
fmr->mr.enabled = MLX4_MR_DISABLED;
|
fmr->mr.enabled = MLX4_MPT_DISABLED;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1231,14 +1231,14 @@ static int mpt_alloc_res(struct mlx4_dev *dev, int slave, int op, int cmd,
|
||||||
|
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case RES_OP_RESERVE:
|
case RES_OP_RESERVE:
|
||||||
index = __mlx4_mr_reserve(dev);
|
index = __mlx4_mpt_reserve(dev);
|
||||||
if (index == -1)
|
if (index == -1)
|
||||||
break;
|
break;
|
||||||
id = index & mpt_mask(dev);
|
id = index & mpt_mask(dev);
|
||||||
|
|
||||||
err = add_res_range(dev, slave, id, 1, RES_MPT, index);
|
err = add_res_range(dev, slave, id, 1, RES_MPT, index);
|
||||||
if (err) {
|
if (err) {
|
||||||
__mlx4_mr_release(dev, index);
|
__mlx4_mpt_release(dev, index);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
set_param_l(out_param, index);
|
set_param_l(out_param, index);
|
||||||
|
@ -1251,7 +1251,7 @@ static int mpt_alloc_res(struct mlx4_dev *dev, int slave, int op, int cmd,
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
err = __mlx4_mr_alloc_icm(dev, mpt->key);
|
err = __mlx4_mpt_alloc_icm(dev, mpt->key);
|
||||||
if (err) {
|
if (err) {
|
||||||
res_abort_move(dev, slave, RES_MPT, id);
|
res_abort_move(dev, slave, RES_MPT, id);
|
||||||
return err;
|
return err;
|
||||||
|
@ -1586,7 +1586,7 @@ static int mpt_free_res(struct mlx4_dev *dev, int slave, int op, int cmd,
|
||||||
err = rem_res_range(dev, slave, id, 1, RES_MPT, 0);
|
err = rem_res_range(dev, slave, id, 1, RES_MPT, 0);
|
||||||
if (err)
|
if (err)
|
||||||
break;
|
break;
|
||||||
__mlx4_mr_release(dev, index);
|
__mlx4_mpt_release(dev, index);
|
||||||
break;
|
break;
|
||||||
case RES_OP_MAP_ICM:
|
case RES_OP_MAP_ICM:
|
||||||
index = get_param_l(&in_param);
|
index = get_param_l(&in_param);
|
||||||
|
@ -1596,7 +1596,7 @@ static int mpt_free_res(struct mlx4_dev *dev, int slave, int op, int cmd,
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
__mlx4_mr_free_icm(dev, mpt->key);
|
__mlx4_mpt_free_icm(dev, mpt->key);
|
||||||
res_end_move(dev, slave, RES_MPT, id);
|
res_end_move(dev, slave, RES_MPT, id);
|
||||||
return err;
|
return err;
|
||||||
break;
|
break;
|
||||||
|
@ -3480,7 +3480,7 @@ static void rem_slave_mrs(struct mlx4_dev *dev, int slave)
|
||||||
while (state != 0) {
|
while (state != 0) {
|
||||||
switch (state) {
|
switch (state) {
|
||||||
case RES_MPT_RESERVED:
|
case RES_MPT_RESERVED:
|
||||||
__mlx4_mr_release(dev, mpt->key);
|
__mlx4_mpt_release(dev, mpt->key);
|
||||||
spin_lock_irq(mlx4_tlock(dev));
|
spin_lock_irq(mlx4_tlock(dev));
|
||||||
rb_erase(&mpt->com.node,
|
rb_erase(&mpt->com.node,
|
||||||
&tracker->res_tree[RES_MPT]);
|
&tracker->res_tree[RES_MPT]);
|
||||||
|
@ -3491,7 +3491,7 @@ static void rem_slave_mrs(struct mlx4_dev *dev, int slave)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case RES_MPT_MAPPED:
|
case RES_MPT_MAPPED:
|
||||||
__mlx4_mr_free_icm(dev, mpt->key);
|
__mlx4_mpt_free_icm(dev, mpt->key);
|
||||||
state = RES_MPT_RESERVED;
|
state = RES_MPT_RESERVED;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче