All of lore.kernel.org
 help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Gou Zhuang <gouzhuang@bigfoot.com>
Cc: alsa-devel@lists.sourceforge.net
Subject: Re: Oops on resume, X crashes
Date: Thu, 23 Oct 2003 20:01:03 +0200	[thread overview]
Message-ID: <s5hptgn96lc.wl@alsa2.suse.de> (raw)
In-Reply-To: <3F979B68.9030006@bigfoot.com>

[-- Attachment #1: Type: text/plain, Size: 1700 bytes --]

At Thu, 23 Oct 2003 17:12:08 +0800,
Gou Zhuang wrote:
> I turned on OSS_DEBUG in pcm_oss.c. I did not start X this time, I only started artsd from
> console to reproduce the oops. Below is the messages after resume, my comments are marked
> with <<<---------
> 
> -------------------------
> MYDEBUG intel8x0.c:2141: Entering intel8x0_suspend()
> MYDEBUG intel8x0.c:2149: Call snd_pcm_suspend_all() on Intel 82801CA-ICH3
> MYDEBUG intel8x0.c:2149: Call snd_pcm_suspend_all() on Intel 82801CA-ICH3 - MIC ADC
> MYDEBUG intel8x0.c:2152: Call snd_power_change_state(card, SNDRV_CTL_POWER_D3hot)
> MYDEBUG intel8x0.c:2154: Return from snd_power_change_state()
> pcm_oss: ioctl = 0x8010500c
> pcm_oss: space: bytes = 7168, fragments = 7, fragstotal = 7, fragsize = 1024
> pcm_oss: write: recovering from SUSPEND
> ALSA pcm_oss.c:552: snd_pcm_oss_prepare: SNDRV_PCM_IOCTL_PREPARE failed
> pcm_oss: write 1024 bytes (wrote -11 bytes)  <<<----------- IT SEEMS THE WRITE FAILED!

that's ok, because it's opened with non-block mode.

> MYDEBUG intel8x0.c:2162: Entering intel8x0_resume()
> MYDEBUG intel8x0.c:2167: Call pci_enable_device(chip->pci)
> PCI: Found IRQ 11 for device 00:1f.5
> PCI: Sharing IRQ 11 with 00:1f.6
> MYDEBUG intel8x0.c:2169: Call pci_set_master(chip->pci)
> PCI: Setting latency timer of device 00:1f.5 to 64
> MYDEBUG intel8x0.c:2067: Entering snd_intel8x0_chip_init()
> MYDEBUG ../../alsa-kernel/pci/ac97/ac97_codec.c:2148: Entering snd_ac97_resume()
> MYDEBUG ../../alsa-kernel/pci/ac97/ac97_codec.c:2148: Entering snd_ac97_resume()
> MYDEBUG intel8x0.c:2177: Call snd_power_change_state(card, SNDRV_CTL_POWER_D0)

ok, i think i found a bug.
please try the attached patch.


Takashi

[-- Attachment #2: pm-oops-fix.dif --]
[-- Type: application/octet-stream, Size: 1304 bytes --]

Index: alsa-kernel/core/init.c
===================================================================
RCS file: /suse/tiwai/cvs/alsa/alsa-kernel/core/init.c,v
retrieving revision 1.35
diff -u -r1.35 init.c
--- alsa-kernel/core/init.c	23 Oct 2003 17:00:13 -0000	1.35
+++ alsa-kernel/core/init.c	23 Oct 2003 17:55:43 -0000
@@ -679,6 +679,7 @@
 int snd_power_wait(snd_card_t *card, unsigned int power_state, struct file *file)
 {
 	wait_queue_t wait;
+	int result = 0;
 
 	/* fastpath */
 	if (snd_power_get_state(card) == power_state)
@@ -686,18 +687,22 @@
 	init_waitqueue_entry(&wait, current);
 	add_wait_queue(&card->power_sleep, &wait);
 	while (1) {
-		if (card->shutdown)
-			return -ENODEV;
-		if (snd_power_get_state(card) == power_state) {
-			remove_wait_queue(&card->power_sleep, &wait);
-			return 0;
+		if (card->shutdown) {
+			result = -ENODEV;
+			break;
+		}
+		if (snd_power_get_state(card) == power_state)
+			break;
+		if (file && (file->f_flags & O_NONBLOCK)) {
+			result = -EAGAIN;
+			break;
 		}
-		if (file && (file->f_flags & O_NONBLOCK))
-			return -EAGAIN;
 		set_current_state(TASK_UNINTERRUPTIBLE);
 		snd_power_unlock(card);
 		schedule_timeout(30 * HZ);
 		snd_power_lock(card);
 	}
+	remove_wait_queue(&card->power_sleep, &wait);
+	return result;
 }
 #endif /* CONFIG_PM */

  reply	other threads:[~2003-10-23 18:01 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-20  7:48 Oops on resume, X crashes Gou Zhuang
2003-10-20 14:48 ` Takashi Iwai
     [not found]   ` <3F94F094.80109@Sun.COM>
2003-10-21 11:29     ` Takashi Iwai
2003-10-23  9:12       ` Gou Zhuang
2003-10-23 18:01         ` Takashi Iwai [this message]
2003-10-24  5:45           ` Gou Zhuang
2003-10-24 10:12             ` Takashi Iwai
2003-10-27  1:03               ` Gou Zhuang
  -- strict thread matches above, loose matches on Subject: below --
2003-10-20  6:42 Gou Zhuang

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=s5hptgn96lc.wl@alsa2.suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@lists.sourceforge.net \
    --cc=gouzhuang@bigfoot.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.