NTB: correct memory barrier
authorJon Mason <jon.mason@intel.com>
Sat, 19 Jan 2013 09:02:17 +0000 (02:02 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 20 Jan 2013 23:45:50 +0000 (15:45 -0800)
mmiowb is not sufficient to flush the data and is causing data
corruption.  Change to wmb and the data corruption is no more.

Signed-off-by: Jon Mason <jon.mason@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/ntb/ntb_transport.c

index 1d17857..e9666bd 100644 (file)
@@ -1009,7 +1009,7 @@ static void ntb_tx_copy_task(struct ntb_transport_qp *qp,
        hdr->ver = qp->tx_pkts;
 
        /* Ensure that the data is fully copied out before setting the flag */
-       mmiowb();
+       wmb();
        hdr->flags = entry->flags | DESC_DONE_FLAG;
 
        ntb_ring_sdb(qp->ndev, qp->qp_num);