Re: [PATCH v2 2/2] RDMA/rxe: Call rxe_set_mtu after rxe_register_device

From: Zhu Yanjun
Date: Fri Sep 15 2023 - 22:29:22 EST


在 2023/8/23 14:11, Li Zhijian 写道:
rxe_set_mtu() will call rxe_info_dev() to print message, and
rxe_info_dev() expects dev_name(rxe->ib_dev->dev) has been assigned.

Previously since dev_name() is not set, when a new rxe link is being
added, 'null' will be used as the dev_name like:

"(null): rxe_set_mtu: Set mtu to 1024"

Move rxe_register_device() earlier to assign the correct dev_name
so that it can be read by rxe_set_mtu() later.

And it's safe to do such change since mtu will not be used during the
rxe_register_device()

After this change, message becomes:
"rxe_eth0: rxe_set_mtu: Set mtu to 4096"

Reviewed-by: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx>
Signed-off-by: Li Zhijian <lizhijian@xxxxxxxxxxx>

In rxe_register_device function, the correct dev_name is assigned.
So the rxe_info_dev in rxe_set_mtu can use the correct dev_name.
I am fine with it.

It seems that it is a trivial problem. If the Fixes tag is added, then we can know which commit introduces this problem, it is better.

Reviewed-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx>

Thanks,
Zhu Yanjun

---
drivers/infiniband/sw/rxe/rxe.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/infiniband/sw/rxe/rxe.c b/drivers/infiniband/sw/rxe/rxe.c
index a086d588e159..8a43c0c4f8d8 100644
--- a/drivers/infiniband/sw/rxe/rxe.c
+++ b/drivers/infiniband/sw/rxe/rxe.c
@@ -169,10 +169,13 @@ void rxe_set_mtu(struct rxe_dev *rxe, unsigned int ndev_mtu)
*/
int rxe_add(struct rxe_dev *rxe, unsigned int mtu, const char *ibdev_name)
{
+ int ret;
+
rxe_init(rxe);
+ ret = rxe_register_device(rxe, ibdev_name);
rxe_set_mtu(rxe, mtu);
- return rxe_register_device(rxe, ibdev_name);
+ return ret;
}
static int rxe_newlink(const char *ibdev_name, struct net_device *ndev)