Re: Linux 2.4.5-ac6

Wayne.Brown@altec.com
Fri, 1 Jun 2001 13:45:55 -0500


The oops problem with the cs46xx in my ThinkPad 600X under -ac4 and -ac5 has
changed now. It no longer gives an oops; instead the program trying to access
the sound card hangs (until I kill it). Subsequent attempts to access the sound
card get a "Device or resource busy" error. There are no messages on the screen
or sent to syslog (or messages or debug) when the hang occurs. I don't know if
it will help or not, but here are the last few lines of an strace of the hanging
process:

stat("/usr/bin/sox", {st_mode=S_IFREG|0755, st_size=120744, ...}) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
fork() = 186
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x806c04c, [], 0x4000000}, {SIG_DFL}, 8) = 0
wait4(-1, 0xbffff744, 0, NULL) = ? ERESTARTSYS (To be restarted)
--- SIGTERM (Terminated) ---
+++ killed by SIGTERM +++

At the point of the hang, the output stops at "wait4(-1, " and the rest of that
line (and the next two lines) appears after I kill the process.

Here are the last few lines of another strace of the same program under
2.4.5-ac3, which works fine:

stat("/usr/bin/sox", {st_mode=S_IFREG|0755, st_size=120744, ...}) = 0
rt_sigprocmask(SIG_BLOCK, ~[], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [INT CHLD], [], 8) = 0
fork() = 435
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGINT, {0x806c04c, [], 0x4000000}, {SIG_DFL}, 8) = 0
wait4(-1, [WIFEXITED(s) && WEXITSTATUS(s) == 0], 0, NULL) = 435
rt_sigprocmask(SIG_BLOCK, [CHLD TTOU], [CHLD], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [CHLD], 8) = 0
rt_sigprocmask(SIG_SETMASK, [CHLD], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGCHLD (Child exited) ---
wait4(-1, 0xbffff438, WNOHANG, NULL) = -1 ECHILD (No child processes)
sigreturn() = ? (mask now [])
rt_sigaction(SIGINT, {SIG_DFL}, {0x806c04c, [], 0x4000000}, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD TTOU], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
read(255, "", 4472) = 0
_exit(0) = ?h

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/