aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/qualcomm/emac/emac-mac.c
diff options
context:
space:
mode:
authorBenjamin Poirier <bpoirier@suse.com>2016-11-07 17:57:56 +0800
committerDavid S. Miller <davem@davemloft.net>2016-11-09 13:31:10 -0500
commitd667f78514c656a6a8bf0b3d6134a7fe5cd4d317 (patch)
tree7ed61aa920207a95b8f1bbcfb89d6623f0336e37 /drivers/net/ethernet/qualcomm/emac/emac-mac.c
parentRevert "net/mlx4_en: Fix panic during reboot" (diff)
downloadlinux-dev-d667f78514c656a6a8bf0b3d6134a7fe5cd4d317.tar.xz
linux-dev-d667f78514c656a6a8bf0b3d6134a7fe5cd4d317.zip
bna: Add synchronization for tx ring.
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 <bpoirier@suse.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/qualcomm/emac/emac-mac.c')
0 files changed, 0 insertions, 0 deletions