i386/apm: use wait_event_interruptible_timeout()
PATCH 1/1 i386/apm: use wait_event_interruptible_timeout()
Use wait_event_interruptible_timeout() instead of custom wait-queue.
Signed-off-by Nishanth Aravamudan <[email protected]>
arch/i386/kernel/apm.c +5 -11
@@ -224,6 +224,7 @@#include <linux/smp_lock.h> #include <linux/dmi.h> #include <linux/suspend.h> +#include <linux/wait.h> #include <asm/system.h> #include <asm/uaccess.h>
@@ -1418,22 +1419,15 @@ static void apm_event_handler(void)static void apm_mainloop (void ) { -DECLARE_WAITQUEUE (wait, current); - -add_wait_queue (&apm_waitqueue, &wait); -set_current_state (TASK_INTERRUPTIBLE ); -for (;;) { -schedule_timeout (APM_CHECK_TIMEOUT ); -if (exit_kapmd) -break ; +do { +wait_event_interruptible_timeout (apm_waitqueue, + exit_kapmd,APM_CHECK_TIMEOUT );/* * Ok, check all events, check for idle (and mark us sleeping * so as not to count towards the load average).. */ -set_current_state (TASK_INTERRUPTIBLE );apm_event_handler (); - } -remove_wait_queue (&apm_waitqueue, &wait); + }while (!exit_kapmd); }static int check_apm_user (struct apm_user *as,const char *func)
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors
Quoted 20 lines · Nishanth Aravamudan
Use
wait_event_interruptible_timeout()instead of custom wait-queue.Signed-off-by Nishanth Aravamudan <[email protected]>arch/i386/kernel/apm.c +1
-1@@ -224,6 +224,7 @@#include <linux/smp_lock.h> #include <linux/dmi.h> #include <linux/suspend.h> +#include <linux/wait.h> #include <asm/system.h> #include <asm/uaccess.h> @@ -1418,22 +1419,15 @@ static void apm_event_handler(void)static void apm_mainloop (void ) { -DECLARE_WAITQUEUE (wait, current);
arch/i386/kernel/apm.c static void apm_event_handler(void) · line 1424
Quoted 10 lines
arch/i386/kernel/apm.c +3
-7- -add_wait_queue (&apm_waitqueue, &wait); -set_current_state (TASK_INTERRUPTIBLE ); -for (;;) { -schedule_timeout (APM_CHECK_TIMEOUT ); -if (exit_kapmd) -break ; + do { + wait_event_interruptible_timeout(apm_waitqueue, + exit_kapmd, APM_CHECK_TIMEOUT);
Hmm, this will lead to some not so subtle breakage with wait-queues. Please do not apply.
Thanks,
Nish
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors