RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()
authorBob Pearson <rpearsonhpe@gmail.com>
Thu, 28 Jan 2021 23:33:19 +0000 (17:33 -0600)
committerJason Gunthorpe <jgg@nvidia.com>
Mon, 8 Feb 2021 19:33:51 +0000 (15:33 -0400)
commit899aba891cab1555c9ca16a558769efb177baf44
treee9f6b33b3fabbc2db5a6c2d7722c706d88486252
parent5120bf0a5fc15dec210a0fe0f39e4a256bb6e349
RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()

rxe_udp_encap_recv() drops the reference to rxe->ib_dev taken by
rxe_get_dev_from_net() which should be held until each received skb is
freed. This patch moves the calls to ib_device_put() to each place a
received skb is freed. It also takes references to the ib_device for each
cloned skb created to process received multicast packets.

Fixes: 4c173f596b3f ("RDMA/rxe: Use ib_device_get_by_netdev() instead of open coding")
Link: https://lore.kernel.org/r/20210128233318.2591-1-rpearson@hpe.com
Signed-off-by: Bob Pearson <rpearson@hpe.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/sw/rxe/rxe_comp.c
drivers/infiniband/sw/rxe/rxe_net.c
drivers/infiniband/sw/rxe/rxe_recv.c
drivers/infiniband/sw/rxe/rxe_resp.c