[PATCH] cs46xx deadlocks in non-blocking read

From: David Huggins-Daines (dhd@eradicator.org)
Date: Mon Jan 01 2001 - 14:17:02 EST


Without this patch, the cs46xx driver in 2.4-prelease (well, in
-test12, at least) will hang the machine as soon as someone tries to
read from it in non-blocking mode.

The cs_read() function already removes the wait queue on exit, so it's
basically a correctness fix.

I've already sent this to Nils/Thomas but since it hasn't materialized
in prerelease or ac1, and since it's quite small and needed for a
number of things to function correctly, I'm sending it again in the
hopes that it will get applied before 2.4 final.

Cheers

--- linux-2.4/drivers/sound/cs46xx.c~ Sun Dec 31 18:24:54 2000
+++ linux-2.4/drivers/sound/cs46xx.c Mon Jan 1 14:03:19 2001
@@ -1971,7 +1971,6 @@
                         start_adc(state);
                         if (file->f_flags & O_NONBLOCK) {
                                 if (!ret) ret = -EAGAIN;
- remove_wait_queue(&state->dmabuf.wait, &wait);
                                 break;
                          }
                         schedule();

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



This archive was generated by hypermail 2b29 : Sun Jan 07 2001 - 21:00:11 EST