]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sdp: BUG2144 - first free rx_sa before sending SendSM
authorEldad Zinger <eldadz@mellanox.co.il>
Sun, 10 Oct 2010 09:50:12 +0000 (11:50 +0200)
committerMukesh Kacker <mukesh.kacker@oracle.com>
Tue, 6 Oct 2015 12:05:25 +0000 (05:05 -0700)
otherwise a new rx_sa might be alloced before the old one is removed.

Signed-off-by: Eldad Zinger <eldadz@mellanox.co.il>
drivers/infiniband/ulp/sdp/sdp_main.c

index fd6e00c14bb83efeb4c2a6af0362252f158d5900..e6599d079d8638952e44d13a4a4e2d71e49c42cb 100644 (file)
@@ -2256,8 +2256,8 @@ static int sdp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
                                        sdp_dbg_data(sk, "Aborting SA "
                                                        "due to SACancel or "
                                                        "no fmr pool\n");
-                                       sdp_post_sendsm(sk);
                                        sdp_abort_rx_srcavail(sk);
+                                       sdp_post_sendsm(sk);
                                        rx_sa = NULL;
                                        if (offset < skb->len) {
                                                sdp_prf(sk, skb, "Converted SA to DATA");
@@ -2417,8 +2417,8 @@ sdp_mid_data:
                                err = sdp_rdma_to_iovec(sk, msg->msg_iov, skb,
                                                &used, offset);
                                if (unlikely(err)) {
-                                       sdp_post_sendsm(sk);
                                        sdp_abort_rx_srcavail(sk);
+                                       sdp_post_sendsm(sk);
                                        rx_sa = NULL;
                                        if (err == -EAGAIN || err == -ETIME)
                                                goto skb_cleanup;