diff options
| author | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-08-17 17:49:41 -0300 |
|---|---|---|
| committer | Mauro Carvalho Chehab <mchehab@infradead.org> | 2007-08-17 17:49:41 -0300 |
| commit | 043941b563e911ccb213664f4471e985da89147a (patch) | |
| tree | 7d8b4da5f74f9df9e4ab4c90819a1519b8e143e5 /linux/drivers | |
| parent | 9c6700a30c3bdf29513d2821d725d25e728b9d68 (diff) | |
| download | mediapointer-dvb-s2-043941b563e911ccb213664f4471e985da89147a.tar.gz mediapointer-dvb-s2-043941b563e911ccb213664f4471e985da89147a.tar.bz2 | |
Fix for bug 7819: fixed hotplugging for dvbnet
From: Trent Piepho <xyzzy@speakeasy.org>
This patch removes the 'wait_queue' memory of dvb_demux.
The patch replace the (file_operations)->release pointer with the new
function dvb_net_close() in place of dvb_generic_release().
The first part of dvb_net_close() is just a cut&paste from
dvb_generic_release(), so maybe it would be better to just call
dvb_generic_release() instead?
Acked-by: Markus Rechberger <mrechberger@gmail.com>
Acked-by: Oliver Endriss <o.endriss@gmx.de>
Signed-off-by: Mauro Carvalho Chehab <mchehab@infradead.org>
Diffstat (limited to 'linux/drivers')
| -rw-r--r-- | linux/drivers/media/dvb/dvb-core/dvb_net.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_net.c b/linux/drivers/media/dvb/dvb-core/dvb_net.c index 76c33feaa..75ed9c06e 100644 --- a/linux/drivers/media/dvb/dvb-core/dvb_net.c +++ b/linux/drivers/media/dvb/dvb-core/dvb_net.c @@ -1498,18 +1498,9 @@ static int dvb_net_close(struct inode *inode, struct file *file) struct dvb_device *dvbdev = file->private_data; struct dvb_net *dvbnet = dvbdev->priv; - if (!dvbdev) - return -ENODEV; + dvb_generic_release(inode, file); - if ((file->f_flags & O_ACCMODE) == O_RDONLY) { - dvbdev->readers++; - } else { - dvbdev->writers++; - } - - dvbdev->users++; - - if(dvbdev->users == 1 && dvbnet->exit==1) { + if(dvbdev->users == 1 && dvbnet->exit == 1) { fops_put(file->f_op); file->f_op = NULL; wake_up(&dvbdev->wait_queue); |
