From: Johannes Stezenbach <js@linuxtv.org>
To: domen@coderock.org
Cc: emoenke@gwdg.de, linux-kernel@vger.kernel.org,
Nishanth Aravamudan <nacc@us.ibm.com>
Subject: Re: [patch 2/4] cdrom/aztcd: remove sleep_on() usage
Date: Tue, 21 Jun 2005 11:58:22 +0200 [thread overview]
Message-ID: <20050621095822.GA3942@linuxtv.org> (raw)
In-Reply-To: <20050620215148.561754000@nd47.coderock.org>
domen@coderock.org wrote:
> From: Nishanth Aravamudan <nacc@us.ibm.com>
>
>
>
> Directly use wait-queues instead of the deprecated sleep_on().
> This required adding a local waitqueue. Patch is compile-tested.
IMHO this patch doesn't improve anything, it just makes the
code harder to read. sleep_on() is deprecated because there's
an inherent race between sleep_on() and wake_up(). To address
this you need to add a condition variable (e.g. AztStenLow) and
convert the code to use wait_event().
The timer trick used here makes it pretty hard to hit the
race, but with a preemptible kernel one could be preempted
between the SET_TIMER() and the sleep_on().
Johannes
> Signed-off-by: Nishanth Aravamudan <nacc@us.ibm.com>
> Signed-off-by: Domen Puncer <domen@coderock.org>
> ---
> aztcd.c | 6 +++++-
> 1 files changed, 5 insertions(+), 1 deletion(-)
>
> Index: quilt/drivers/cdrom/aztcd.c
> ===================================================================
> --- quilt.orig/drivers/cdrom/aztcd.c
> +++ quilt/drivers/cdrom/aztcd.c
> @@ -179,6 +179,7 @@
> #include <linux/ioport.h>
> #include <linux/string.h>
> #include <linux/major.h>
> +#include <linux/wait.h>
>
> #include <linux/init.h>
>
> @@ -429,9 +430,12 @@ static void dten_low(void)
> #define STEN_LOW_WAIT statusAzt()
> static void statusAzt(void)
> {
> + DEFINE_WAIT(wait);
> AztTimeout = AZT_STATUS_DELAY;
> SET_TIMER(aztStatTimer, HZ / 100);
> - sleep_on(&azt_waitq);
> + prepare_to_wait(&azt_waitq, &wait, TASK_UNINTERRUPTIBLE);
> + schedule();
> + finish_wait(&azt_waitq, &wait);
> if (AztTimeout <= 0)
> printk("aztcd: Error Wait STEN_LOW_WAIT command:%x\n",
> aztCmd);
>
prev parent reply other threads:[~2005-06-21 9:59 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-20 21:51 [patch 2/4] cdrom/aztcd: remove sleep_on() usage domen
2005-06-20 23:14 ` Jesper Juhl
2005-06-20 23:24 ` Nishanth Aravamudan
2005-06-20 23:34 ` Jesper Juhl
2005-06-21 9:58 ` Johannes Stezenbach [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050621095822.GA3942@linuxtv.org \
--to=js@linuxtv.org \
--cc=domen@coderock.org \
--cc=emoenke@gwdg.de \
--cc=linux-kernel@vger.kernel.org \
--cc=nacc@us.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.