From: Rene Herman <rene.herman@gmail.com>
To: Takashi Iwai <tiwai@suse.de>
Cc: Krzysztof Helt <krzysztof.h1@gmail.com>,
ALSA devel <alsa-devel@alsa-project.org>,
Trent Piepho <xyzzy@speakeasy.org>
Subject: [ PATCH 1/4] alsa-kernel: schedule_timeout() fixes
Date: Tue, 18 Sep 2007 15:38:45 +0200 [thread overview]
Message-ID: <46EFD4E5.2080206@gmail.com> (raw)
In-Reply-To: <s5habrkchpa.wl%tiwai@suse.de>
[-- Attachment #1: Type: text/plain, Size: 912 bytes --]
On 09/18/2007 01:54 PM, Takashi Iwai wrote:
> The other changes look good to me. But, honestly, I couldn't follow all
> the pathes you sent in the right order. So, could you guys make a series
> of patches to be applied to HG tree? That'll be really helpful for
> review, too.
Ofcourse. These schedule_timeout() fixes are not dependent on anything else.
I audited alsa-kernel for this schedule_timeout() issue, and this and next
two messages do all I found.
===
alsa-kernel: schedule_timeout() fixes
Fix schedule_timeout() use in alsa-kernel. Mostly just
schedule_timeout(1) --> schedule_timeout_uninterruptible(1)
The wavefront_synth one fixes the surrounding loop as well. In ymfpci_main,
delete a superfluous set_current_state() and in soc/soc-dapm.c replace an
_interruptible with _uninterruptible in some debug code; it's not waiting
for signals.
Signed-off-by: Rene Herman <rene.herman>
[-- Attachment #2: schedule_timeout-alsa_kernel.diff --]
[-- Type: text/plain, Size: 4576 bytes --]
diff -r 0028e39ead78 isa/sscape.c
--- a/isa/sscape.c Tue Sep 18 00:52:38 2007 +0200
+++ b/isa/sscape.c Tue Sep 18 14:53:57 2007 +0200
@@ -401,7 +401,7 @@ static int obp_startup_ack(struct sounds
unsigned long flags;
unsigned char x;
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
spin_lock_irqsave(&s->lock, flags);
x = inb(HOST_DATA_IO(s->io_base));
@@ -428,7 +428,7 @@ static int host_startup_ack(struct sound
unsigned long flags;
unsigned char x;
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
spin_lock_irqsave(&s->lock, flags);
x = inb(HOST_DATA_IO(s->io_base));
diff -r 0028e39ead78 isa/wavefront/wavefront_synth.c
--- a/isa/wavefront/wavefront_synth.c Tue Sep 18 00:52:38 2007 +0200
+++ b/isa/wavefront/wavefront_synth.c Tue Sep 18 14:53:57 2007 +0200
@@ -1768,7 +1768,7 @@ snd_wavefront_interrupt_bits (int irq)
static void __devinit
wavefront_should_cause_interrupt (snd_wavefront_t *dev,
- int val, int port, int timeout)
+ int val, int port, unsigned long timeout)
{
wait_queue_t wait;
@@ -1779,11 +1779,9 @@ wavefront_should_cause_interrupt (snd_wa
dev->irq_ok = 0;
outb (val,port);
spin_unlock_irq(&dev->irq_lock);
- while (1) {
- if ((timeout = schedule_timeout(timeout)) == 0)
- return;
- if (dev->irq_ok)
- return;
+ while (!dev->irq_ok && time_before(jiffies, timeout)) {
+ schedule_timeout_uninterruptible(1);
+ barrier();
}
}
diff -r 0028e39ead78 pci/hda/hda_intel.c
--- a/pci/hda/hda_intel.c Tue Sep 18 00:52:38 2007 +0200
+++ b/pci/hda/hda_intel.c Tue Sep 18 14:53:57 2007 +0200
@@ -555,7 +555,7 @@ static unsigned int azx_rirb_get_respons
}
if (!chip->rirb.cmds)
return chip->rirb.res; /* the last value */
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
} while (time_after_eq(timeout, jiffies));
if (chip->msi) {
diff -r 0028e39ead78 pci/via82xx.c
--- a/pci/via82xx.c Tue Sep 18 00:52:38 2007 +0200
+++ b/pci/via82xx.c Tue Sep 18 14:53:57 2007 +0200
@@ -2090,7 +2090,7 @@ static int snd_via82xx_chip_init(struct
pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
break;
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
} while (time_before(jiffies, end_time));
if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
@@ -2109,7 +2109,7 @@ static int snd_via82xx_chip_init(struct
chip->ac97_secondary = 1;
goto __ac97_ok2;
}
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
} while (time_before(jiffies, end_time));
/* This is ok, the most of motherboards have only one codec */
diff -r 0028e39ead78 pci/via82xx_modem.c
--- a/pci/via82xx_modem.c Tue Sep 18 00:52:38 2007 +0200
+++ b/pci/via82xx_modem.c Tue Sep 18 14:53:57 2007 +0200
@@ -983,7 +983,7 @@ static int snd_via82xx_chip_init(struct
pci_read_config_byte(chip->pci, VIA_ACLINK_STAT, &pval);
if (pval & VIA_ACLINK_C00_READY) /* primary codec ready */
break;
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
} while (time_before(jiffies, end_time));
if ((val = snd_via82xx_codec_xread(chip)) & VIA_REG_AC97_BUSY)
@@ -1001,7 +1001,7 @@ static int snd_via82xx_chip_init(struct
chip->ac97_secondary = 1;
goto __ac97_ok2;
}
- schedule_timeout(1);
+ schedule_timeout_uninterruptible(1);
} while (time_before(jiffies, end_time));
/* This is ok, the most of motherboards have only one codec */
diff -r 0028e39ead78 pci/ymfpci/ymfpci_main.c
--- a/pci/ymfpci/ymfpci_main.c Tue Sep 18 00:52:38 2007 +0200
+++ b/pci/ymfpci/ymfpci_main.c Tue Sep 18 14:53:57 2007 +0200
@@ -84,7 +84,6 @@ static int snd_ymfpci_codec_ready(struct
do {
if ((snd_ymfpci_readw(chip, reg) & 0x8000) == 0)
return 0;
- set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout_uninterruptible(1);
} while (time_before(jiffies, end_time));
snd_printk(KERN_ERR "codec_ready: codec %i is not ready [0x%x]\n", secondary, snd_ymfpci_readw(chip, reg));
diff -r 0028e39ead78 soc/soc-dapm.c
--- a/soc/soc-dapm.c Tue Sep 18 00:52:38 2007 +0200
+++ b/soc/soc-dapm.c Tue Sep 18 14:53:57 2007 +0200
@@ -63,7 +63,7 @@
#define POP_DEBUG 0
#if POP_DEBUG
#define POP_TIME 500 /* 500 msecs - change if pop debug is too fast */
-#define pop_wait(time) schedule_timeout_interruptible(msecs_to_jiffies(time))
+#define pop_wait(time) schedule_timeout_uninterruptible(msecs_to_jiffies(time))
#define pop_dbg(format, arg...) printk(format, ## arg); pop_wait(POP_TIME)
#else
#define pop_dbg(format, arg...)
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
next prev parent reply other threads:[~2007-09-18 13:39 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-09-10 18:29 [PATCH] ad1838/cs4231 -- fix MCE timeout upon initial load Rene Herman
2007-09-10 21:40 ` Krzysztof Helt
2007-09-10 21:37 ` Takashi Iwai
2007-09-10 21:43 ` Rene Herman
2007-09-10 21:45 ` Rene Herman
2007-09-11 8:56 ` Krzysztof Helt
2007-09-11 20:42 ` Rene Herman
2007-09-17 21:04 ` Trent Piepho
2007-09-17 21:47 ` Krzysztof Helt
2007-09-18 1:18 ` Trent Piepho
2007-09-18 7:20 ` Krzysztof Helt
2007-09-19 1:27 ` Trent Piepho
2007-09-19 2:48 ` Rene Herman
2007-09-18 0:17 ` Rene Herman
2007-09-18 1:57 ` Rene Herman
2007-09-18 4:24 ` Rene Herman
2007-09-18 11:03 ` Rene Herman
2007-09-18 11:54 ` Takashi Iwai
2007-09-18 13:38 ` Rene Herman [this message]
2007-09-18 16:39 ` [ PATCH 1/4] alsa-kernel: schedule_timeout() fixes Takashi Iwai
2007-09-18 13:49 ` [PATCH 2/4] alsa-kernel: schedule_timeout() fix for kernel/drivers/input/touchscreen/ucb1400_ts.c Rene Herman
2007-09-18 13:58 ` Takashi Iwai
2007-09-18 13:58 ` Rene Herman
2007-09-18 13:57 ` [PATCH] ad1838/cs4231 -- fix MCE timeout upon initial load Rene Herman
2007-09-18 14:27 ` [PATCH 3/4] alsa-kernel: schedule_timeout() fix for core/seq/seq_instr.c Rene Herman
2007-09-18 16:38 ` [PATCH] ad1838/cs4231 -- fix MCE timeout upon initial load Takashi Iwai
2007-09-18 14:34 ` [PATCH 4/4] alsa-driver: schedule_timeout() fixes Rene Herman
2007-09-18 16:44 ` Takashi Iwai
2007-09-18 17:05 ` Rene Herman
2007-09-18 17:09 ` Rene Herman
2007-09-18 17:22 ` Takashi Iwai
2007-09-18 2:32 ` [PATCH] ad1838/cs4231 -- fix MCE timeout upon initial load Trent Piepho
2007-09-18 6:50 ` Rene Herman
2007-09-18 7:33 ` Krzysztof Helt
2007-09-18 8:02 ` Krzysztof Helt
2007-09-18 8:17 ` Rene Herman
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=46EFD4E5.2080206@gmail.com \
--to=rene.herman@gmail.com \
--cc=alsa-devel@alsa-project.org \
--cc=krzysztof.h1@gmail.com \
--cc=tiwai@suse.de \
--cc=xyzzy@speakeasy.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox