Messages in this thread Patch in this message | | | Date | Tue, 10 Aug 2004 13:06:15 -0500 | From | Santiago Leon <> | Subject | [PATCH 2.6] ibmveth bug fixes 4/4 |
| |
Andrew,
This patch adds a memory barrier to ensure synchronization with the hypervisor (and avoid a panic when the hypervisor is halfway through writing to the descriptor). It also removes an unnecessary check that is flawed anyway because the value can change between the atomic_inc() and the assert. Please apply.
Signed-off-by: Santiago Leon <santil@us.ibm.com>
-- Santiago A. Leon Power Linux Development IBM Linux Technology Center ===== drivers/net/ibmveth.c 1.16 vs edited ===== --- 1.16/drivers/net/ibmveth.c Tue Aug 10 12:00:57 2004 +++ edited/drivers/net/ibmveth.c Tue Aug 10 12:01:46 2004 @@ -271,7 +271,6 @@ adapter->rx_no_buffer = *(u64*)(((char*)adapter->buffer_list_addr) + 4096 - 8); atomic_inc(&adapter->not_replenishing); - ibmveth_assert(atomic_read(&adapter->not_replenishing) == 1); } /* kick the replenish tasklet if we need replenishing and it isn't already running */ @@ -733,6 +732,8 @@ if(ibmveth_rxq_pending_buffer(adapter)) { struct sk_buff *skb; + + rmb(); if(!ibmveth_rxq_buffer_valid(adapter)) { wmb(); /* suggested by larson1 */ | |