]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/infiniband/sw/rxe/rxe_resp.c
Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[mirror_ubuntu-artful-kernel.git] / drivers / infiniband / sw / rxe / rxe_resp.c
index 23039768f5416e63e6f9f367411e4642fa610356..a958ee918a49f0a8b1e23b63fa20a9d8a4db5e7d 100644 (file)
@@ -995,7 +995,9 @@ static int send_atomic_ack(struct rxe_qp *qp, struct rxe_pkt_info *pkt,
        free_rd_atomic_resource(qp, res);
        rxe_advance_resp_resource(qp);
 
-       memcpy(SKB_TO_PKT(skb), &ack_pkt, sizeof(skb->cb));
+       memcpy(SKB_TO_PKT(skb), &ack_pkt, sizeof(ack_pkt));
+       memset((unsigned char *)SKB_TO_PKT(skb) + sizeof(ack_pkt), 0,
+              sizeof(skb->cb) - sizeof(ack_pkt));
 
        res->type = RXE_ATOMIC_MASK;
        res->atomic.skb = skb;
@@ -1217,6 +1219,9 @@ void rxe_drain_req_pkts(struct rxe_qp *qp, bool notify)
                kfree_skb(skb);
        }
 
+       if (notify)
+               return;
+
        while (!qp->srq && qp->rq.queue && queue_head(qp->rq.queue))
                advance_consumer(qp->rq.queue);
 }