DVB Update [PATCH 19/31] fix wrong copy for DVBFE_GET_PARAMS

From: Manu Abraham
Date: Thu Sep 04 2008 - 16:29:52 EST


>From 7d0389d6826fb460c85b25a54450151a55fa5338 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
Date: Thu, 4 Sep 2008 14:12:32 +0200
Subject: [PATCH] DVB Fix wrong copy for DVBFE_GET_PARAMS

The translated frontend parameters for the ioctl DVBFE_GET_PARAMS
wasn't copied back. The patch fixes the issue.

From: Marco Schluessler <marco@xxxxxxxxxxxx>
Signed-off-by: Marco Schluessler <marco@xxxxxxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

dvb_frontend.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)

>From 7d0389d6826fb460c85b25a54450151a55fa5338 Mon Sep 17 00:00:00 2001
From: Manu Abraham <manu@xxxxxxxxxxx>
Date: Thu, 4 Sep 2008 14:12:32 +0200
Subject: [PATCH] DVB Fix wrong copy for DVBFE_GET_PARAMS

The translated frontend parameters for the ioctl DVBFE_GET_PARAMS
wasn't copied back. The patch fixes the issue.

From: Marco Schluessler <marco@xxxxxxxxxxxx>
Signed-off-by: Marco Schluessler <marco@xxxxxxxxxxxxx>
Signed-off-by: Manu Abraham <manu@xxxxxxxxxxx>

diff --git a/drivers/media/dvb/dvb-core/dvb_frontend.c b/drivers/media/dvb/dvb-core/dvb_frontend.c
index c451785..e6ae5e6 100644
--- a/drivers/media/dvb/dvb-core/dvb_frontend.c
+++ b/drivers/media/dvb/dvb-core/dvb_frontend.c
@@ -1823,10 +1823,12 @@ static int dvb_frontend_ioctl(struct inode *inode, struct file *file,
memcpy(parg, &fepriv->fe_params, sizeof (struct dvbfe_params));
err = fe->ops.get_params(fe, (struct dvbfe_params *) parg);
} else 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);
- if (olddrv_to_newapi(fe, &fepriv->fe_params, &fepriv->parameters, fe->ops.info.type) == -EINVAL)
- printk("%s: ERROR !!! Converting Old parameters --> New parameters\n", __func__);
+ if (!err) {
+ if (olddrv_to_newapi(fe, &fepriv->fe_params, &fepriv->parameters, fe->ops.info.type) == -EINVAL)
+ printk("%s: ERROR !!! Converting Old parameters --> New parameters\n", __func__);
+ memcpy(parg, &fepriv->fe_params, sizeof (struct dvbfe_params));
+ }
}
break;
case DVBFE_GET_DELSYS: