On Fri, Nov 22, 2024 at 06:53:08PM +0800, Junxian Huang wrote: > From: Yuyu Li <liyuyu6@xxxxxxxxxx> > > hns3 NIC driver can directly notify the RoCE driver about link status > events bypassing the netdev notifier. This can provide more timely > event dispatching for ULPs. It is unlikely that it matters for ULPs and better would be if you don't open-code existing netdev functionality (netdev notifiers). Thanks > > Signed-off-by: Yuyu Li <liyuyu6@xxxxxxxxxx> > Signed-off-by: Junxian Huang <huangjunxian6@xxxxxxxxxxxxx> > --- > drivers/infiniband/hw/hns/hns_roce_hw_v2.c | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c > index 697b17cca02e..5c911d1def03 100644 > --- a/drivers/infiniband/hw/hns/hns_roce_hw_v2.c > +++ b/drivers/infiniband/hw/hns/hns_roce_hw_v2.c > @@ -7178,9 +7178,22 @@ static int hns_roce_hw_v2_reset_notify(struct hnae3_handle *handle, > return ret; > } > > +static void hns_roce_hw_v2_link_status_change(struct hnae3_handle *handle, > + bool linkup) > +{ > + struct hns_roce_dev *hr_dev = (struct hns_roce_dev *)handle->priv; > + struct net_device *netdev = handle->rinfo.netdev; > + > + if (linkup || !hr_dev) > + return; > + > + ib_dispatch_port_state_event(&hr_dev->ib_dev, netdev); > +} > + > static const struct hnae3_client_ops hns_roce_hw_v2_ops = { > .init_instance = hns_roce_hw_v2_init_instance, > .uninit_instance = hns_roce_hw_v2_uninit_instance, > + .link_status_change = hns_roce_hw_v2_link_status_change, > .reset_notify = hns_roce_hw_v2_reset_notify, > }; > > -- > 2.33.0 >