All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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 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.