diff options
Diffstat (limited to 'drivers/net/e100.c')
| -rw-r--r-- | drivers/net/e100.c | 2 | 
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/e100.c b/drivers/net/e100.c index b194bad29ac..8e2eab4e7c7 100644 --- a/drivers/net/e100.c +++ b/drivers/net/e100.c @@ -1779,6 +1779,7 @@ static int e100_tx_clean(struct nic *nic)  	for (cb = nic->cb_to_clean;  	    cb->status & cpu_to_le16(cb_complete);  	    cb = nic->cb_to_clean = cb->next) { +		rmb(); /* read skb after status */  		netif_printk(nic, tx_done, KERN_DEBUG, nic->netdev,  			     "cb[%d]->status = 0x%04X\n",  			     (int)(((void*)cb - (void*)nic->cbs)/sizeof(struct cb)), @@ -1927,6 +1928,7 @@ static int e100_rx_indicate(struct nic *nic, struct rx *rx,  	netif_printk(nic, rx_status, KERN_DEBUG, nic->netdev,  		     "status=0x%04X\n", rfd_status); +	rmb(); /* read size after status bit */  	/* If data isn't ready, nothing to indicate */  	if (unlikely(!(rfd_status & cb_complete))) {  |