Messages in this thread Patch in this message |  | | | Date | Mon, 9 Jun 2008 21:08:57 +0200 | | From | Marcin Slusarz <> | | Subject | [PATCH] v4l: saa7134: fix race between opening and closing the device |
| |
On Sun, Jun 08, 2008 at 08:31:04AM +0200, Marcin Slusarz wrote: > On Sun, Jun 08, 2008 at 12:48:35AM +0200, Marcin Slusarz wrote: > > (...) > > This patch is stupid. Please ignore.
Ok, I think this one should be considered for inclusion. I don't think it has anything to do with oops in empress_querycap, but who knows ;) Compile tested only. --- From: Marcin Slusarz <marcin.slusarz@gmail.com> Subject: [PATCH] v4l: saa7134: fix race between opening and closing the device decrementing dev->empress_users should be done as last action of ts_release, because it sleeps and write access to dev->empress_started is not protected in any way (additionally closing thread could mute audio after opening thread unmuted it)
Signed-off-by: Marcin Slusarz <marcin.slusarz@gmail.com> Cc: Mauro Carvalho Chehab <mchehab@infradead.org> Cc: video4linux-list@redhat.com --- drivers/media/video/saa7134/saa7134-empress.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/media/video/saa7134/saa7134-empress.c b/drivers/media/video/saa7134/saa7134-empress.c index 81431ee..0da683a 100644 --- a/drivers/media/video/saa7134/saa7134-empress.c +++ b/drivers/media/video/saa7134/saa7134-empress.c @@ -112,7 +112,6 @@ static int ts_release(struct inode *inode, struct file *file) videobuf_stop(&dev->empress_tsq); videobuf_mmap_free(&dev->empress_tsq); - dev->empress_users--; /* stop the encoder */ ts_reset_encoder(dev); @@ -121,6 +120,8 @@ static int ts_release(struct inode *inode, struct file *file) saa_writeb(SAA7134_AUDIO_MUTE_CTRL, saa_readb(SAA7134_AUDIO_MUTE_CTRL) | (1 << 6)); + dev->empress_users--; + return 0; } -- 1.5.4.5
|  |