This reminds me...

Someone needs to go through ALSA and audit all delays executed via $FOO_interruptible().

Several delays within ALSA wait for hardware conditions, and do not check for signals pending, which means that the wait-for-condition loop becomes a busy loop:

        while (1) {
                foo = read_hardware()
                if (foo & interesting_bits)
                        break;
                schedule_timeout_interruptible(1);
        }

The proper fix is (a) remove "_interruptible" [recommended] or (b) check for signals.

grep'ing for "_interruptible" quickly finds several such ALSA bugs.

        Jeff


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

Reply via email to