From: Benjamin Poirier <bpoir...@suse.com> Date: Mon, 7 Nov 2016 17:57:56 +0800
> We received two reports of BUG_ON in bnad_txcmpl_process() where > hw_consumer_index appeared to be ahead of producer_index. Out of order > write/read of these variables could explain these reports. > > bnad_start_xmit(), as a producer of tx descriptors, has a few memory > barriers sprinkled around writes to producer_index and the device's > doorbell but they're not paired with anything in bnad_txcmpl_process(), a > consumer. > > Since we are synchronizing with a device, we must use mandatory barriers, > not smp_*. Also, I didn't see the purpose of the last smp_mb() in > bnad_start_xmit(). > > Signed-off-by: Benjamin Poirier <bpoir...@suse.com> Applied.