2024-05-09 17:06:09

by Ricardo Ribalda

[permalink] [raw]
Subject: [PATCH] media: i2c: hi846: Fix V4L2_SUBDEV_FORMAT_TRY get_selection()

The current code does not return anything to the user.

Although the code looks a bit dangerous (using a pointer without
checking if it is valid), it should be fine. The code validates that
sel->pad has a valid value.

Fix the following smatch error:
drivers/media/i2c/hi846.c:1854 hi846_get_selection() warn: statement has no effect 31

Fixes: e8c0882685f9 ("media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera")
Signed-off-by: Ricardo Ribalda <[email protected]>
---
While running media-ci on the last patches there was a new sparse
warning:
https://gitlab.freedesktop.org/linux-media/users/patchwork/-/jobs/58524338/artifacts/external_file/junit/test-smatch.log.txt
---
drivers/media/i2c/hi846.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/media/i2c/hi846.c b/drivers/media/i2c/hi846.c
index 9c565ec033d4..52d9ca68a86c 100644
--- a/drivers/media/i2c/hi846.c
+++ b/drivers/media/i2c/hi846.c
@@ -1851,7 +1851,7 @@ static int hi846_get_selection(struct v4l2_subdev *sd,
mutex_lock(&hi846->mutex);
switch (sel->which) {
case V4L2_SUBDEV_FORMAT_TRY:
- v4l2_subdev_state_get_crop(sd_state, sel->pad);
+ sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
break;
case V4L2_SUBDEV_FORMAT_ACTIVE:
sel->r = hi846->cur_mode->crop;

---
base-commit: 48259b90973718d2277db27b5e510f0fe957eaa0
change-id: 20240509-fix-hi846-c3d77768622e

Best regards,
--
Ricardo Ribalda <[email protected]>



2024-05-09 19:39:28

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: i2c: hi846: Fix V4L2_SUBDEV_FORMAT_TRY get_selection()

Hi Ricardo,

Thank you for the patch.

On Thu, May 09, 2024 at 05:05:55PM +0000, Ricardo Ribalda wrote:
> The current code does not return anything to the user.
>
> Although the code looks a bit dangerous (using a pointer without
> checking if it is valid), it should be fine. The code validates that

I think you meant s/code/core/

> sel->pad has a valid value.
>
> Fix the following smatch error:
> drivers/media/i2c/hi846.c:1854 hi846_get_selection() warn: statement has no effect 31
>
> Fixes: e8c0882685f9 ("media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera")
> Signed-off-by: Ricardo Ribalda <[email protected]>

Reviewed-by: Laurent Pinchart <[email protected]>

> ---
> While running media-ci on the last patches there was a new sparse
> warning:
> https://gitlab.freedesktop.org/linux-media/users/patchwork/-/jobs/58524338/artifacts/external_file/junit/test-smatch.log.txt
> ---
> drivers/media/i2c/hi846.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/media/i2c/hi846.c b/drivers/media/i2c/hi846.c
> index 9c565ec033d4..52d9ca68a86c 100644
> --- a/drivers/media/i2c/hi846.c
> +++ b/drivers/media/i2c/hi846.c
> @@ -1851,7 +1851,7 @@ static int hi846_get_selection(struct v4l2_subdev *sd,
> mutex_lock(&hi846->mutex);
> switch (sel->which) {
> case V4L2_SUBDEV_FORMAT_TRY:
> - v4l2_subdev_state_get_crop(sd_state, sel->pad);
> + sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
> break;
> case V4L2_SUBDEV_FORMAT_ACTIVE:
> sel->r = hi846->cur_mode->crop;
>
> ---
> base-commit: 48259b90973718d2277db27b5e510f0fe957eaa0
> change-id: 20240509-fix-hi846-c3d77768622e

--
Regards,

Laurent Pinchart

2024-05-11 07:48:15

by Ricardo Ribalda

[permalink] [raw]
Subject: Re: [PATCH] media: i2c: hi846: Fix V4L2_SUBDEV_FORMAT_TRY get_selection()

Hi Laurent

On Thu, 9 May 2024 at 21:39, Laurent Pinchart
<[email protected]> wrote:
>
> Hi Ricardo,
>
> Thank you for the patch.
>
> On Thu, May 09, 2024 at 05:05:55PM +0000, Ricardo Ribalda wrote:
> > The current code does not return anything to the user.
> >
> > Although the code looks a bit dangerous (using a pointer without
> > checking if it is valid), it should be fine. The code validates that
>
> I think you meant s/code/core/

Yes, sorry, fatty fingers :)

If you are planning to send a v5 of this
https://patchwork.linuxtv.org/project/linux-media/patch/[email protected]/

Maybe you could include this patch there?

I found the issue when the CI tested your series (eventhough it is not
caused by your series)

Regards!

>
> > sel->pad has a valid value.
> >
> > Fix the following smatch error:
> > drivers/media/i2c/hi846.c:1854 hi846_get_selection() warn: statement has no effect 31
> >
> > Fixes: e8c0882685f9 ("media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera")
> > Signed-off-by: Ricardo Ribalda <[email protected]>
>
> Reviewed-by: Laurent Pinchart <[email protected]>
>
> > ---
> > While running media-ci on the last patches there was a new sparse
> > warning:
> > https://gitlab.freedesktop.org/linux-media/users/patchwork/-/jobs/58524338/artifacts/external_file/junit/test-smatch.log.txt
> > ---
> > drivers/media/i2c/hi846.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/media/i2c/hi846.c b/drivers/media/i2c/hi846.c
> > index 9c565ec033d4..52d9ca68a86c 100644
> > --- a/drivers/media/i2c/hi846.c
> > +++ b/drivers/media/i2c/hi846.c
> > @@ -1851,7 +1851,7 @@ static int hi846_get_selection(struct v4l2_subdev *sd,
> > mutex_lock(&hi846->mutex);
> > switch (sel->which) {
> > case V4L2_SUBDEV_FORMAT_TRY:
> > - v4l2_subdev_state_get_crop(sd_state, sel->pad);
> > + sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
> > break;
> > case V4L2_SUBDEV_FORMAT_ACTIVE:
> > sel->r = hi846->cur_mode->crop;
> >
> > ---
> > base-commit: 48259b90973718d2277db27b5e510f0fe957eaa0
> > change-id: 20240509-fix-hi846-c3d77768622e
>
> --
> Regards,
>
> Laurent Pinchart



--
Ricardo Ribalda

2024-05-11 19:09:47

by Laurent Pinchart

[permalink] [raw]
Subject: Re: [PATCH] media: i2c: hi846: Fix V4L2_SUBDEV_FORMAT_TRY get_selection()

Hi Ricardo,

On Sat, May 11, 2024 at 09:47:47AM +0200, Ricardo Ribalda wrote:
> On Thu, 9 May 2024 at 21:39, Laurent Pinchart wrote:
> > On Thu, May 09, 2024 at 05:05:55PM +0000, Ricardo Ribalda wrote:
> > > The current code does not return anything to the user.
> > >
> > > Although the code looks a bit dangerous (using a pointer without
> > > checking if it is valid), it should be fine. The code validates that
> >
> > I think you meant s/code/core/
>
> Yes, sorry, fatty fingers :)
>
> If you are planning to send a v5 of this
> https://patchwork.linuxtv.org/project/linux-media/patch/[email protected]/
>
> Maybe you could include this patch there?

Yes, I've already taken the patch in my tree. If Hans merges it to the
stage tree I'll drop it, otherwise I'll include it in the pull request
to avoid breaking CI.

> I found the issue when the CI tested your series (eventhough it is not
> caused by your series)
>
> > > sel->pad has a valid value.
> > >
> > > Fix the following smatch error:
> > > drivers/media/i2c/hi846.c:1854 hi846_get_selection() warn: statement has no effect 31
> > >
> > > Fixes: e8c0882685f9 ("media: i2c: add driver for the SK Hynix Hi-846 8M pixel camera")
> > > Signed-off-by: Ricardo Ribalda <[email protected]>
> >
> > Reviewed-by: Laurent Pinchart <[email protected]>
> >
> > > ---
> > > While running media-ci on the last patches there was a new sparse
> > > warning:
> > > https://gitlab.freedesktop.org/linux-media/users/patchwork/-/jobs/58524338/artifacts/external_file/junit/test-smatch.log.txt
> > > ---
> > > drivers/media/i2c/hi846.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/media/i2c/hi846.c b/drivers/media/i2c/hi846.c
> > > index 9c565ec033d4..52d9ca68a86c 100644
> > > --- a/drivers/media/i2c/hi846.c
> > > +++ b/drivers/media/i2c/hi846.c
> > > @@ -1851,7 +1851,7 @@ static int hi846_get_selection(struct v4l2_subdev *sd,
> > > mutex_lock(&hi846->mutex);
> > > switch (sel->which) {
> > > case V4L2_SUBDEV_FORMAT_TRY:
> > > - v4l2_subdev_state_get_crop(sd_state, sel->pad);
> > > + sel->r = *v4l2_subdev_state_get_crop(sd_state, sel->pad);
> > > break;
> > > case V4L2_SUBDEV_FORMAT_ACTIVE:
> > > sel->r = hi846->cur_mode->crop;
> > >
> > > ---
> > > base-commit: 48259b90973718d2277db27b5e510f0fe957eaa0
> > > change-id: 20240509-fix-hi846-c3d77768622e

--
Regards,

Laurent Pinchart