[PATCH] IPMI: use schedule in kthread
authorakpm@osdl.org <akpm@osdl.org>
Tue, 27 Jun 2006 09:54:04 +0000 (02:54 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Wed, 28 Jun 2006 00:32:40 +0000 (17:32 -0700)
Corey Minyard <minyard@acm.org>

The kthread used to speed up polling for IPMI was using udelay in its
busy-wait polling loop when the lower-level state machine told it to do a
short delay.  This just used CPU and didn't help scheduling, thus causing
bad problems with other tasks.  Call schedule() instead.

Signed-off-by: Corey Minyard <minyard@acm.org>
Acked-by: Matt Domsch <Matt_Domsch@dell.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
drivers/char/ipmi/ipmi_si_intf.c

index 02a7dd7a8a55571cbf261e63a9dcdf3cf7fbb969..101c14b9b26de4b22751d4426d5474b909266d01 100644 (file)
@@ -809,7 +809,7 @@ static int ipmi_thread(void *data)
                        /* do nothing */
                }
                else if (smi_result == SI_SM_CALL_WITH_DELAY)
-                       udelay(1);
+                       schedule();
                else
                        schedule_timeout_interruptible(1);
        }