From: maximilian attems <janitor@xxxxxxxxxxxxxx>
thanks to Felipe W Damasio hint rediffed.
patch is on top of linux-2.6.6-rc2
yield() removes process from active array into expired array,
better just yield the CPU for a bit.
tested on my laptop with a sis900.
a++ maks
Index: linux-266-rc2-kj1/drivers/net/sis900.c
===================================================================
--- linux-266-rc2-kj1.orig/drivers/net/sis900.c 2004-04-03 19:36:57.000000000 -0800
+++ linux-266-rc2-kj1/drivers/net/sis900.c 2004-04-21 15:32:56.000000000 -0700
@@ -600,7 +600,8 @@ static int __init sis900_mii_probe (stru
if(status & MII_STAT_LINK){
while (poll_bit) {
- yield();
+ set_current_state(TASK_UNINTERRUPTIBLE);
+ schedule_timeout(HZ/100);