From: Santiago Leon <santil@us.ibm.com>

This patch checks for the LongBusy return code from the hypervisor, and 
retries the operation (which is what the hypervisor expects the driver 
to do). Please apply.

Signed-off-by: Santiago Leon <santil@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
---

 25-akpm/drivers/net/ibmveth.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff -puN drivers/net/ibmveth.c~ibmveth-hypervisor-retval-fix drivers/net/ibmveth.c
--- 25/drivers/net/ibmveth.c~ibmveth-hypervisor-retval-fix	2004-08-15 13:02:42.369415728 -0700
+++ 25-akpm/drivers/net/ibmveth.c	2004-08-15 13:02:42.373415120 -0700
@@ -530,7 +530,7 @@ static int ibmveth_open(struct net_devic
 		ibmveth_error_printk("unable to request irq 0x%x, rc %d\n", netdev->irq, rc);
 		do {
 			rc = h_free_logical_lan(adapter->vdev->unit_address);
-		} while H_isLongBusy(rc);
+		} while (H_isLongBusy(rc) || (rc == H_Busy));
 
 		ibmveth_cleanup(adapter);
 		return rc;
@@ -562,7 +562,7 @@ static int ibmveth_close(struct net_devi
 
 	do {
 		lpar_rc = h_free_logical_lan(adapter->vdev->unit_address);
-	} while H_isLongBusy(lpar_rc);
+	} while (H_isLongBusy(lpar_rc) || (lpar_rc == H_Busy));
 
 	if(lpar_rc != H_Success)
 	{
_