* DVB Update [PATCH 21/31] multiproto tree
@ 2008-09-04 18:41 Manu Abraham
0 siblings, 0 replies; only message in thread
From: Manu Abraham @ 2008-09-04 18:41 UTC (permalink / raw)
To: linux-kernel, v4l-dvb-maintainer, akpm; +Cc: o.endriss
[-- Attachment #1: Type: text/plain, Size: 511 bytes --]
>From 669f91b5633422296284e9a9a967a6b0fadbda74 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@linuxtv.org>
Date: Thu, 4 Sep 2008 14:21:09 +0200
Subject: [PATCH] DVB Code review: Do not toggle legacy mode within ioctls
Code review #2: Thanks to Oliver Endriss <o.endriss@gmx.de> for
pointing out a bug in certain circumstances.
From: Manu Abraham <abraham.manu@gmail.com>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
dvb_frontend.c | 14 +++++---------
1 file changed, 5 insertions(+), 9 deletions(-)
[-- Attachment #2: 21.patch --]
[-- Type: text/x-patch, Size: 3089 bytes --]
>From 669f91b5633422296284e9a9a967a6b0fadbda74 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@linuxtv.org>
Date: Thu, 4 Sep 2008 14:21:09 +0200
Subject: [PATCH] DVB Code review: Do not toggle legacy mode within ioctls
Code review #2: Thanks to Oliver Endriss <o.endriss@gmx.de> for
pointing out a bug in certain circumstances.
From: Manu Abraham <abraham.manu@gmail.com>
Signed-off-by: Manu Abraham <manu@linuxtv.org>
diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index 037199a..2b28bd1 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1630,7 +1630,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
break;
}
- fe->legacy = 1;
memcpy(&fepriv->parameters, parg, sizeof (struct dvb_frontend_parameters));
memset(&fetunesettings, 0, sizeof(struct dvb_frontend_tune_settings));
memcpy(&fetunesettings.parameters, parg, sizeof (struct dvb_frontend_parameters));
@@ -1703,7 +1702,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
}
case FE_GET_FRONTEND:
- fe->legacy = 1;
if (fe->ops.get_frontend) {
memcpy (parg, &fepriv->parameters, sizeof (struct dvb_frontend_parameters));
err = fe->ops.get_frontend(fe, (struct dvb_frontend_parameters*) parg);
@@ -1729,10 +1727,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
struct dvb_frontend_tune_settings fetunesettings;
enum dvbfe_delsys delsys = fepriv->fe_info.delivery;
- fe->legacy = 0;
- if (!(fe->ops.set_params || fe->ops.search))
- fe->legacy = 1;
-
memcpy(&fepriv->fe_params, parg, sizeof (struct dvbfe_params));
memset(&fetunesettings, 0, sizeof (struct dvb_frontend_tune_settings));
memcpy(&fetunesettings.fe_params, parg, sizeof (struct dvbfe_params));
@@ -1818,7 +1812,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
}
case DVBFE_GET_PARAMS:
- fe->legacy = 0;
if (fe->ops.get_params) {
memcpy(parg, &fepriv->fe_params, sizeof (struct dvbfe_params));
err = fe->ops.get_params(fe, (struct dvbfe_params *) parg);
@@ -1832,7 +1825,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
}
break;
case DVBFE_GET_DELSYS:
- fe->legacy = 0;
if (fe->ops.get_delsys) {
err = fe->ops.get_delsys(fe, (enum dvbfe_delsys *) parg);
} else {
@@ -1855,7 +1847,6 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
break;
case DVBFE_GET_INFO:
printk("%s: DVBFE_GET_INFO\n", __func__);
- fe->legacy = 0;
if (fe->ops.get_info) {
memcpy(&fepriv->fe_info, (struct dvbfe_info *) parg, sizeof (struct dvbfe_info));
err = fe->ops.get_info(fe, &fepriv->fe_info);
@@ -2063,6 +2054,11 @@ int dvb_register_frontend(struct dvb_adapter* dvb,
dvb_register_device (fe->dvb, &fepriv->dvbdev, &dvbdev_template,
fe, DVB_DEVICE_FRONTEND);
+ if (fe->ops.set_frontend || fe->ops.get_frontend)
+ fe->legacy = 1;
+ else
+ fe->legacy = 0;
+
mutex_unlock(&frontend_mutex);
return 0;
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2008-09-04 18:45 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-09-04 18:41 DVB Update [PATCH 21/31] multiproto tree Manu Abraham
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox