drivers/media/platform/soc_camera/soc_camera.c: fix error return code
Subsystems (2)
PATCH 1/14 drivers/media/platform/soc_camera/soc_camera.c: fix error return code
From: Peter Senna Tschudin <[email protected]>
Convert a nonnegative error return code to a negative one, as returned elsewhere in the function.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
--- drivers/media/platform/soc_camera/soc_camera.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/media/platform/soc_camera/soc_camera.c +2 -1
@@ -1184,7 +1184,8 @@ static int soc_camera_probe(struct soc_camera_device *icd) sd->grp_id =soc_camera_grp_id (icd);v4l2_set_subdev_hostdata (sd, icd); -if (v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler)) + ret =v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler); +if (ret) goto ectrl;/* At this point client .probe() should have run already */
PATCH 1/14 drivers/media/platform/soc_camera/soc_camera.c: fix error return code
Please review.
Please review.
Regards,
Mauro.
-------- Mensagem original --------
Assunto: [PATCH 1/14] drivers/media/platform/soc_camera/soc_camera.c: fix error return code
Data: Thu, 6 Sep 2012 17:24:00 +0200
De: Peter Senna Tschudin <[email protected]>
Para: Mauro Carvalho Chehab <[email protected]>
CC: [email protected], [email protected], [email protected], [email protected]
From: Peter Senna Tschudin <[email protected]>
Convert a nonnegative error return code to a negative one, as returned elsewhere in the function.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)
// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1
when != &ret
*if(...)
{
... when != ret = e2
when forall
return ret;
}
// </smpl>
--- drivers/media/platform/soc_camera/soc_camera.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
drivers/media/platform/soc_camera/soc_camera.c +2 -1
@@ -1184,7 +1184,8 @@ static int soc_camera_probe(struct soc_camera_device *icd) sd->grp_id =soc_camera_grp_id (icd);v4l2_set_subdev_hostdata (sd, icd); -if (v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler)) + ret =v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler); +if (ret) goto ectrl;/* At this point client .probe() should have run already */
--
To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Hi Mauro, Peter
Quoted 50 lines · Mauro Carvalho Chehab
Please review.
Please review.Regards,
Mauro.-------- Mensagem original --------
Assunto: [PATCH 1/14]drivers/media/platform/soc_camera/soc_camera.c: fix error return code
Data: Thu, 6 Sep 2012 17:24:00 +0200
De: Peter Senna Tschudin <[email protected]>
Para: Mauro Carvalho Chehab <[email protected]>
CC: [email protected], [email protected], [email protected], [email protected]From: Peter Senna Tschudin <[email protected]>
Convert a nonnegative error return code to a negative one, as returned elsewhere in the function.
A simplified version of the semantic match that finds this problem is as
follows: (http://coccinelle.lip6.fr/)// <smpl>
(
if@p1 (\(ret < 0\|ret != 0\))
{ ... return ret; }
|
ret@p1 = 0
)
... when != ret = e1when != &ret*if(...)
{
... when != ret = e2
when forall
return ret;
}// </smpl>
Signed-off-by Peter Senna Tschudin <[email protected]>--- drivers/media/platform/soc_camera/soc_camera.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)drivers/media/platform/soc_camera/soc_camera.c +0
-0
drivers/media/platform/soc_camera/soc_camera.c static int soc_camera_probe(struct soc_camera_device *icd) · line 1189
Quoted 7 lines
drivers/media/platform/soc_camera/soc_camera.c +2
-1@@ -1184,7 +1184,8 @@ static int soc_camera_probe(struct soc_camera_device *icd) sd->grp_id =soc_camera_grp_id (icd);v4l2_set_subdev_hostdata (sd, icd); -if (v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler)) + ret =v4l2_ctrl_add_handler (&icd->ctrl_handler, sd->ctrl_handler); +if (ret) goto ectrl;
Yes, this is a correct fix. I'm actually also fixing it in one of my current experimental patches, I don't think it's occurring too often in real life, so, I didn't bother sending a separate fix:-) But yes, let's fix it properly. Please, update the other patch to mx2_camera and I'll send a "fixes" pull request with these two and an ov2640 fix.
Thanks
Guennadi
drivers/media/platform/soc_camera/soc_camera.c static int soc_camera_probe(struct soc_camera_device *icd) · line 1191
Quoted 2 lines
drivers/media/platform/soc_camera/soc_camera.c +0
-0/* At this point client .probe() should have run already */
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
http://www.open-technology.de/