>From 7d0389d6826fb460c85b25a54450151a55fa5338 Mon Sep 17 00:00:00 2001 From: Manu Abraham 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 Signed-off-by: Marco Schluessler Signed-off-by: Manu Abraham 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: