public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 2.6] ibmveth bug fixes 4/4
@ 2004-08-10 18:06 Santiago Leon
  2004-08-11  0:40 ` Santiago Leon
  2004-08-15 20:01 ` Andrew Morton
  0 siblings, 2 replies; 4+ messages in thread
From: Santiago Leon @ 2004-08-10 18:06 UTC (permalink / raw)
  To: Andrew Morton; +Cc: Linux Kernel list

[-- Attachment #1: Type: text/plain, Size: 445 bytes --]

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

[-- Attachment #2: ibmveth_rmb.patch --]
[-- Type: text/plain, Size: 656 bytes --]

===== 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 */

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2004-08-15 20:03 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-08-10 18:06 [PATCH 2.6] ibmveth bug fixes 4/4 Santiago Leon
2004-08-11  0:40 ` Santiago Leon
2004-08-11  1:30   ` Santiago Leon
2004-08-15 20:01 ` Andrew Morton

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox