Use msleep* calls instead of direct schedule* calls.

Signed-off-by: Evgeniy Polyakov <johnpol@2ka.mipt.ru>

--- linux-2.6/drivers/superio/pc8736x.c.orig	2005-01-21 21:37:05.565850328 +0300
+++ linux-2.6/drivers/superio/pc8736x.c	2005-01-21 21:37:37.113054424 +0300
@@ -190,15 +190,15 @@
 	while (atomic_read(&pc8736x_dev.refcnt)) {
 		printk(KERN_INFO "Waiting for %s to became free: refcnt=%d.\n",
 				pc8736x_dev.name, atomic_read(&pc8736x_dev.refcnt));
-		
-		set_current_state(TASK_INTERRUPTIBLE);
-		schedule_timeout(HZ);
+
+		msleep_interruptible(1000);
+
+		if (signal_pending(current))
+			flush_signals(current);
 			
 		if (current->flags & PF_FREEZE)
 			refrigerator(PF_FREEZE);
 
-		if (signal_pending(current))
-			flush_signals(current);
 	}
 }
 
--- linux-2.6/drivers/superio/sc.c.orig	2005-01-21 21:37:10.862045184 +0300
+++ linux-2.6/drivers/superio/sc.c	2005-01-21 21:38:36.137081408 +0300
@@ -370,14 +370,14 @@
 		       ldev->name, ldev->index,
 		       (sc_ldev_is_clone(ldev)) ? "clone" : "not clone",
 		       atomic_read(&ldev->refcnt));
-		set_current_state(TASK_INTERRUPTIBLE);
-		schedule_timeout(HZ);
-			
-		if (current->flags & PF_FREEZE)
-			refrigerator(PF_FREEZE);
+
+		msleep_interruptible(1000);
 
 		if (signal_pending(current))
 			flush_signals(current);
+			
+		if (current->flags & PF_FREEZE)
+			refrigerator(PF_FREEZE);
 	}
 
 }
@@ -482,14 +482,14 @@
 	while (atomic_read(&__sdev->refcnt)) {
 		printk(KERN_INFO "Waiting SuperIO chip %s to become free: refcnt=%d.\n",
 		       __sdev->name, atomic_read(&__sdev->refcnt));
-		set_current_state(TASK_UNINTERRUPTIBLE);
-		schedule_timeout(HZ);
-			
-		if (current->flags & PF_FREEZE)
-			refrigerator(PF_FREEZE);
+
+		msleep_interruptible(1000);
 
 		if (signal_pending(current))
 			flush_signals(current);
+			
+		if (current->flags & PF_FREEZE)
+			refrigerator(PF_FREEZE);
 	}
 }
 
--- linux-2.6/drivers/superio/scx.c.orig	2005-01-21 21:37:15.944272568 +0300
+++ linux-2.6/drivers/superio/scx.c	2005-01-21 21:39:02.280107064 +0300
@@ -391,14 +391,14 @@
 	{
 		printk(KERN_INFO "Waiting for %s to became free: refcnt=%d.\n",
 				scx200_dev.name, atomic_read(&scx200_dev.refcnt));
-		set_current_state(TASK_INTERRUPTIBLE);
-		schedule_timeout(HZ);
-			
-		if (current->flags & PF_FREEZE)
-			refrigerator(PF_FREEZE);
+		
+		msleep_interruptible(1000);
 
 		if (signal_pending(current))
 			flush_signals(current);
+		
+		if (current->flags & PF_FREEZE)
+			refrigerator(PF_FREEZE);
 	}
 
 	pci_unregister_driver(&scx200_pci_driver);

