Re: [KJ] [PATCH] i386/apm: use wait_event_interruptible_timeout()

Nishanth Aravamudan <[email protected]> Tue, 3 May 2005 14:40:26 -0700
Newsgroups org.kernel.vger.linux-laptop,org.kernel.vger.kernel-janitors
Message-ID <[email protected]>
On 01.05.2005 [23:18:24 -0700], Nishanth Aravamudan wrote:
> Use wait_event_interruptible_timeout() instead of custom wait-queue.
> 
> 
> Signed-off-by: Nishanth Aravamudan <[email protected]>
> 
> --- 2.6.12-rc3/arch/i386/kernel/apm.c	2005-04-29 11:03:03.000000000 -0700
> +++ 2.6.12-rc3-dev/arch/i386/kernel/apm.c	2005-05-01 19:02:48.000000000 -0700
> @@ -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);

Hmm, this will lead to some not so subtle breakage with wait-queues.
Please do not apply.

Thanks,
Nish