summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab@infradead.org>2007-08-17 17:49:41 -0300
committerMauro Carvalho Chehab <mchehab@infradead.org>2007-08-17 17:49:41 -0300
commit043941b563e911ccb213664f4471e985da89147a (patch)
tree7d8b4da5f74f9df9e4ab4c90819a1519b8e143e5 /linux
parent9c6700a30c3bdf29513d2821d725d25e728b9d68 (diff)
downloadmediapointer-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')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_net.c13
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);