From: Doug Ledford Date: Wed, 9 May 2018 19:48:48 +0000 (-0400) Subject: Merge branch 'k.o/for-rc' into k.o/wip/dl-for-next X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=f5e27a203f4cd7406bc7d3589d86aa318f68d276;p=openwrt%2Fstaging%2Fblogic.git Merge branch 'k.o/for-rc' into k.o/wip/dl-for-next Several items of conflict have arisen between the RDMA stack's for-rc branch and upcoming for-next work: 9fd4350ba895 ("IB/rxe: avoid double kfree_skb") directly conflicts with 2e47350789eb ("IB/rxe: optimize the function duplicate_request") Patches already submitted by Intel for the hfi1 driver will fail to apply cleanly without this merge Other people on the mailing list have notified that their upcoming patches also fail to apply cleanly without this merge Signed-off-by: Doug Ledford --- f5e27a203f4cd7406bc7d3589d86aa318f68d276 diff --cc drivers/infiniband/sw/rxe/rxe_resp.c index c45c1ff24497,955ff3b6da9c..5b57de30dee4 --- a/drivers/infiniband/sw/rxe/rxe_resp.c +++ b/drivers/infiniband/sw/rxe/rxe_resp.c @@@ -1123,13 -1121,23 +1120,12 @@@ static enum resp_states duplicate_reque /* Find the operation in our list of responder resources. */ res = find_resource(qp, pkt->psn); if (res) { - struct sk_buff *skb_copy; - - skb_copy = skb_clone(res->atomic.skb, GFP_ATOMIC); - if (skb_copy) { - rxe_add_ref(qp); /* for the new SKB */ - } else { - pr_warn("Couldn't clone atomic resp\n"); - rc = RESPST_CLEANUP; - goto out; - } - + skb_get(res->atomic.skb); /* Resend the result. */ rc = rxe_xmit_packet(to_rdev(qp->ibqp.device), qp, - pkt, skb_copy); + pkt, res->atomic.skb); if (rc) { pr_err("Failed resending result. This flow is not handled - skb ignored\n"); - kfree_skb(res->atomic.skb); - rxe_drop_ref(qp); rc = RESPST_CLEANUP; goto out; }