At Mon, 13 Oct 2014 22:06:34 +1030, Arthur Marsh wrote:
Takashi Iwai wrote, on 13/10/14 16:30:
At Mon, 13 Oct 2014 11:30:40 +1030, Arthur Marsh wrote:
So you have only emu10k1 as the sound card? At best, give alsa-info.sh output. I've tested emu10k1 on my machine for long time, so it's strange that such a problem happens.
Unfortunately, I'm traveling in the whole this week, so cannot debug so much locally with the machine.
In anyway, please make sure that the sound driver is really the culprit. For example, add the sound driver modules to blacklist, boot and confirm that the boot works. Then remove the blacklist again and reconfirm that the boot hangs.
Once when you confirm it, try to revert two commits: 7af142f752116e86adbe2073f2922d8265a77709 257f8cce5d40b811d229ed71602882baa0012808
Let me know whether this makes booting again.
thanks,
Takashi
OK, steps I took:
Obtain alsa-info.sh output from my working 3.17.0 kernel set-up;
Boot into 3.17.0+ and attempt to run alsa-info.sh - dumps occurred as shown in attached photos, even corrupted the machine's BIOS;
Attempt to blacklist sound drivers, ran 3.17.0+ without lock-up, obtained alsa-info.sh output;
Applied 2 reversions listed above to current 3.17.0+ Linus git head, had to remove a few other sound cards from the menuconfig to let the kernel build, removed blacklisting and rebooted into kernel with reversions applied.
Ran alsa-info.sh and received dmesg output as shown below, was able to bring up the desktop session without lock-up.
OK, then could you check whether reverting only the last one (of two) does *NOT* fix the issue? I think it shouldn't, but let us confirm.
The alsa-info.sh shows the lockdep messages. I assume that it's seen even before 3.17+?
Last but not least, please check whether nonatomic flag is set wrongly by some reason like the patch below. (Check the kernel message after boot or try to playback some PCM).
Takashi
--- diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 85fe1a216225..9c7cbd1b839e 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -2275,6 +2275,9 @@ static int snd_pcm_open(struct file *file, struct snd_pcm *pcm, int stream) int err; wait_queue_t wait;
+ if (WARN_ON(pcm->nonatomic)) + return -EINVAL; + if (pcm == NULL) { err = -ENODEV; goto __error1;