On Wed, Mar 03, 2021 at 04:56:29PM -0600, Bob Pearson wrote: > Three errors occurred in the fix referenced below. > > 1) rxe_rcv_mcast_pkt() dropped a reference to ib_device when > no error occured causing an underflow on the reference counter. > This code is cleaned up to be clearer and easier to read. > > 2) Extending the reference taken by rxe_get_dev_from_net() in > rxe_udp_encap_recv() until each skb is freed was not matched by > a reference in the loopback path resulting in underflows. > > 3) In rxe_comp.c the function free_pkt() did not clear skb which > triggered a warning at done: and could possibly at exit: in > rxe_completer(). The WARN_ONCE() calls are not actually needed. > > This patch fixes these errors. > > Fixes: 899aba891cab ("RDMA/rxe: Fix FIXME in rxe_udp_encap_recv()") > Signed-off-by: Bob Pearson <rpearson@xxxxxxx> > --- > Version 2: > v1 of this patch incorrectly added a WARN_ON_ONCE in rxe_completer > where it could be triggered for normal traffic. This version > replaced that with a pr_warn located correctly. > > v1 of this patch placed a call to kfree_skb in an if statement > that could trigger style warnings. This version cleans that up. > > drivers/infiniband/sw/rxe/rxe_comp.c | 6 +-- > drivers/infiniband/sw/rxe/rxe_net.c | 10 ++++- > drivers/infiniband/sw/rxe/rxe_recv.c | 60 +++++++++++++++++----------- > 3 files changed, 48 insertions(+), 28 deletions(-) ➜ kernel git:(rdma-next) mkt ci ff130e1dc197 (HEAD -> build) RDMA/rxe: Fix ib_device reference counting (again) WARNING: 'occured' may be misspelled - perhaps 'occurred'? #9: no error occured causing an underflow on the reference counter. ^^^^^^^ WARNING: Prefer 'fallthrough;' over fallthrough comment #182: FILE: drivers/infiniband/sw/rxe/rxe_recv.c:308: + /* Fall through to drop packet WARNING: From:/Signed-off-by: email address mismatch: 'From: Bob Pearson <rpearsonhpe@xxxxxxxxx>' != 'Signed-off-by: Bob Pearson <rpearson@xxxxxxx>'