Messages in this thread Patch in this message | | | Date | Fri, 05 Sep 2008 00:26:14 +0400 | From | Manu Abraham <> | Subject | DVB Update [PATCH 19/31] fix wrong copy for DVBFE_GET_PARAMS |
| |
>From 7d0389d6826fb460c85b25a54450151a55fa5338 Mon Sep 17 00:00:00 2001 From: Manu Abraham <manu@linuxtv.org> 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@lorzodiac.de> Signed-off-by: Marco Schluessler <marco@lordzodiac.de> Signed-off-by: Manu Abraham <manu@linuxtv.org>
dvb_frontend.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-)
>From 7d0389d6826fb460c85b25a54450151a55fa5338 Mon Sep 17 00:00:00 2001 From: Manu Abraham <manu@linuxtv.org> 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@lorzodiac.de> Signed-off-by: Marco Schluessler <marco@lordzodiac.de> 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 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:
| |