On Sun, Jun 11, 2017 at 08:44:49AM +0300, Yuval Shaia wrote: > usnic's get_netdev hook for struct ib_device is missing - add it. > > Signed-off-by: Yuval Shaia <yuval.shaia@xxxxxxxxxx> > --- > Per Moni Shoua's suggestion - create seperate patch for this purpose. > --- > drivers/infiniband/hw/usnic/usnic_ib_main.c | 1 + > drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 10 ++++++++++ > drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 1 + > 3 files changed, 12 insertions(+) > > diff --git a/drivers/infiniband/hw/usnic/usnic_ib_main.c b/drivers/infiniband/hw/usnic/usnic_ib_main.c > index c0c1e8b..80577b9 100644 > --- a/drivers/infiniband/hw/usnic/usnic_ib_main.c > +++ b/drivers/infiniband/hw/usnic/usnic_ib_main.c > @@ -409,6 +409,7 @@ static void *usnic_ib_device_add(struct pci_dev *dev) > us_ibdev->ib_dev.query_port = usnic_ib_query_port; > us_ibdev->ib_dev.query_pkey = usnic_ib_query_pkey; > us_ibdev->ib_dev.query_gid = usnic_ib_query_gid; > + us_ibdev->ib_dev.get_netdev = usnic_get_netdev; > us_ibdev->ib_dev.get_link_layer = usnic_ib_port_link_layer; > us_ibdev->ib_dev.alloc_pd = usnic_ib_alloc_pd; > us_ibdev->ib_dev.dealloc_pd = usnic_ib_dealloc_pd; > diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > index 4996984..f9dc1e80 100644 > --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c > @@ -424,6 +424,16 @@ int usnic_ib_query_gid(struct ib_device *ibdev, u8 port, int index, > return 0; > } > > +struct net_device *usnic_get_netdev(struct ib_device *device, u8 port_num) > +{ > + struct usnic_ib_dev *us_ibdev = to_usdev(device); > + > + if (us_ibdev->netdev) > + dev_hold(us_ibdev->netdev); Who will release this reference? Thanks > + > + return us_ibdev->netdev; > +} > + > int usnic_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, > u16 *pkey) > { > diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.h b/drivers/infiniband/hw/usnic/usnic_ib_verbs.h > index 172e43b..1fda944 100644 > --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.h > +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.h > @@ -48,6 +48,7 @@ int usnic_ib_query_qp(struct ib_qp *qp, struct ib_qp_attr *qp_attr, > struct ib_qp_init_attr *qp_init_attr); > int usnic_ib_query_gid(struct ib_device *ibdev, u8 port, int index, > union ib_gid *gid); > +struct net_device *usnic_get_netdev(struct ib_device *device, u8 port_num); > int usnic_ib_query_pkey(struct ib_device *ibdev, u8 port, u16 index, > u16 *pkey); > struct ib_pd *usnic_ib_alloc_pd(struct ib_device *ibdev, > -- > 2.9.4 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-rdma" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: PGP signature