summaryrefslogtreecommitdiffstats
path: root/drivers/infiniband
diff options
context:
space:
mode:
authorAndrew Boyer <andrew.boyer@dell.com>2016-11-23 18:39:24 +0100
committerDoug Ledford <dledford@redhat.com>2016-12-12 22:31:45 +0100
commit5407f530122aa63cf304eb0874c938b3bdb8d3fb (patch)
tree7822306da4090789484d67fdb74ae3c201b7c130 /drivers/infiniband
parentIB/rxe: Fix ref leak in rxe_create_qp() (diff)
downloadlinux-5407f530122aa63cf304eb0874c938b3bdb8d3fb.tar.xz
linux-5407f530122aa63cf304eb0874c938b3bdb8d3fb.zip
IB/rxe: Fix ref leak in duplicate_request()
A ref was added after the call to skb_clone(). Signed-off-by: Andrew Boyer <andrew.boyer@dell.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'drivers/infiniband')
-rw-r--r--drivers/infiniband/sw/rxe/rxe_resp.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/infiniband/sw/rxe/rxe_resp.c b/drivers/infiniband/sw/rxe/rxe_resp.c
index a5e9ce34171b..8643797fb530 100644
--- a/drivers/infiniband/sw/rxe/rxe_resp.c
+++ b/drivers/infiniband/sw/rxe/rxe_resp.c
@@ -1145,6 +1145,7 @@ static enum resp_states duplicate_request(struct rxe_qp *qp,
pkt, skb_copy);
if (rc) {
pr_err("Failed resending result. This flow is not handled - skb ignored\n");
+ rxe_drop_ref(qp);
kfree_skb(skb_copy);
rc = RESPST_CLEANUP;
goto out;