V4L/DVB (9647): em28xx: void having two concurrent control URB's

Gitweb:     http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f2a2e4910502e866833732f31ee697d15b3e56fd
Commit:     f2a2e4910502e866833732f31ee697d15b3e56fd
Parent:     c4a98793a63c423c9e1af51822325969e23c16d4
Author:     Mauro Carvalho Chehab <mchehab <at> redhat.com>
AuthorDate: Wed Nov 19 06:17:44 2008 -0300
Committer:  Mauro Carvalho Chehab <mchehab <at> redhat.com>
CommitDate: Thu Nov 20 17:20:14 2008 -0200

    V4L/DVB (9647): em28xx: void having two concurrent control URB's

    Now that we have a polling task for IR, there's a race condition, since
    IR can be polling while other operations are being doing. Also, we are
    now sharing the same urb_buf for both read and write control urb
    operations. So, we need a mutex.

    Thanks to Davin Heitmueller <devin.heitmueller <at> gmail.com> for warning me.

    Signed-off-by: Mauro Carvalho Chehab <mchehab <at> redhat.com>
---
 drivers/media/video/em28xx/em28xx-core.c  |   12 ++++++++++--
 drivers/media/video/em28xx/em28xx-video.c |    1 +
 drivers/media/video/em28xx/em28xx.h       |    1 +
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/drivers/media/video/em28xx/em28xx-core.c b/drivers/media/video/em28xx/em28xx-core.c
index 9551b8a..15e2b52 100644
--- a/drivers/media/video/em28xx/em28xx-core.c
+++ b/drivers/media/video/em28xx/em28xx-core.c
@@ -76,18 +76,22 @@ int em28xx_read_reg_req_len(struct em28xx *dev, u8 req, u16 reg,

(Continue reading)


Gmane