diff --git a/drivers/net/bnx2x_main.c b/drivers/net/bnx2x_main.c
index 6bd92199db211aaa57c7d06c54d085f053bfbc54..2e95799a0db24378f86f5b6651b0de62f1856e44 100644
--- a/drivers/net/bnx2x_main.c
+++ b/drivers/net/bnx2x_main.c
@@ -7173,7 +7173,7 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
 		struct bnx2x_fastpath *fp = &bp->fp[i];
 
 		cnt = 1000;
-		smp_rmb();
+		smp_mb();
 		while (bnx2x_has_tx_work_unload(fp)) {
 
 			bnx2x_tx_int(fp, 1000);
@@ -7189,7 +7189,7 @@ static int bnx2x_nic_unload(struct bnx2x *bp, int unload_mode)
 			}
 			cnt--;
 			msleep(1);
-			smp_rmb();
+			smp_mb();
 		}
 	}
 	/* Give HW time to discard old tx messages */