On Tue, Sep 19, 2023 at 8:57 AM Zhijian Li (Fujitsu) <lizhijian@xxxxxxxxxxx> wrote: > > > > On 18/09/2023 20:37, Leon Romanovsky wrote: > > On Mon, Sep 18, 2023 at 10:05:43AM +0800, Li Zhijian wrote: > >> 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. > > > > I would expect removal of that print line instead of moving > > rxe_register_device(). > > > I also struggled with this point. The last option is keep it as it is. > Once rxe is registered, this print will work fine. I delved into the source code. About moving rxe_register_device, I could not find any harm to the driver. So I think this is also a solution to this problem. Zhu Yanjun > > Thanks > Zhijian > > > > > > Thanks > > > >> > >> And it's safe to do such change since mtu will not be used during the > >> rxe_register_device() > >> > >> After this change, the message becomes: > >> "rxe_eth0: rxe_set_mtu: Set mtu to 4096" > >> > >> Fixes: 9ac01f434a1e ("RDMA/rxe: Extend dbg log messages to err and info") > >> Reviewed-by: Daisuke Matsuda <matsuda-daisuke@xxxxxxxxxxx> > >> Reviewed-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxx> > >> Signed-off-by: Li Zhijian <lizhijian@xxxxxxxxxxx> > >> --- > >> 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) > >> -- > >> 2.29.2 > >>