2020-02-26 12:17:28

by Eugen Hristev

[permalink] [raw]
Subject: [PATCH] media: v4l2-core: fix entity initialization in device_register_subdev

The check for parameters is done below in the function.
Initialize the entity variable properly, after the parameters
have been checked.

Fixes: 61f5db549dde ("[media] v4l: Make v4l2_subdev inherit from media_entity")
Signed-off-by: Eugen Hristev <[email protected]>
---
drivers/media/v4l2-core/v4l2-device.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
index 63d6b147b21e..6e33132ebb19 100644
--- a/drivers/media/v4l2-core/v4l2-device.c
+++ b/drivers/media/v4l2-core/v4l2-device.c
@@ -112,7 +112,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
struct v4l2_subdev *sd)
{
#if defined(CONFIG_MEDIA_CONTROLLER)
- struct media_entity *entity = &sd->entity;
+ struct media_entity *entity;
#endif
int err;

@@ -141,6 +141,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
goto error_module;

#if defined(CONFIG_MEDIA_CONTROLLER)
+ entity = &sd->entity;
/* Register the entity. */
if (v4l2_dev->mdev) {
err = media_device_register_entity(v4l2_dev->mdev, entity);
--
2.20.1


2020-02-26 15:01:12

by Sakari Ailus

[permalink] [raw]
Subject: Re: [PATCH] media: v4l2-core: fix entity initialization in device_register_subdev

Hi Eugen,

On Wed, Feb 26, 2020 at 02:15:45PM +0200, Eugen Hristev wrote:
> The check for parameters is done below in the function.
> Initialize the entity variable properly, after the parameters
> have been checked.
>
> Fixes: 61f5db549dde ("[media] v4l: Make v4l2_subdev inherit from media_entity")
> Signed-off-by: Eugen Hristev <[email protected]>
> ---
> drivers/media/v4l2-core/v4l2-device.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
> index 63d6b147b21e..6e33132ebb19 100644
> --- a/drivers/media/v4l2-core/v4l2-device.c
> +++ b/drivers/media/v4l2-core/v4l2-device.c
> @@ -112,7 +112,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
> struct v4l2_subdev *sd)
> {
> #if defined(CONFIG_MEDIA_CONTROLLER)
> - struct media_entity *entity = &sd->entity;
> + struct media_entity *entity;
> #endif
> int err;
>
> @@ -141,6 +141,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
> goto error_module;
>
> #if defined(CONFIG_MEDIA_CONTROLLER)
> + entity = &sd->entity;
> /* Register the entity. */
> if (v4l2_dev->mdev) {
> err = media_device_register_entity(v4l2_dev->mdev, entity);

Thanks for the patch.

Instead of keeping a shorthand for entity locally, I'd just refer to
&sd->entity. It's more simple, and gets away with one pair of #if / #endif
as well.

--
Regards,

Sakari Ailus

2020-02-26 15:05:38

by Eugen Hristev

[permalink] [raw]
Subject: Re: [PATCH] media: v4l2-core: fix entity initialization in device_register_subdev

On 26.02.2020 16:59, Sakari Ailus wrote:

> Hi Eugen,
>
> On Wed, Feb 26, 2020 at 02:15:45PM +0200, Eugen Hristev wrote:
>> The check for parameters is done below in the function.
>> Initialize the entity variable properly, after the parameters
>> have been checked.
>>
>> Fixes: 61f5db549dde ("[media] v4l: Make v4l2_subdev inherit from media_entity")
>> Signed-off-by: Eugen Hristev <[email protected]>
>> ---
>> drivers/media/v4l2-core/v4l2-device.c | 3 ++-
>> 1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
>> index 63d6b147b21e..6e33132ebb19 100644
>> --- a/drivers/media/v4l2-core/v4l2-device.c
>> +++ b/drivers/media/v4l2-core/v4l2-device.c
>> @@ -112,7 +112,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
>> struct v4l2_subdev *sd)
>> {
>> #if defined(CONFIG_MEDIA_CONTROLLER)
>> - struct media_entity *entity = &sd->entity;
>> + struct media_entity *entity;
>> #endif
>> int err;
>>
>> @@ -141,6 +141,7 @@ int v4l2_device_register_subdev(struct v4l2_device *v4l2_dev,
>> goto error_module;
>>
>> #if defined(CONFIG_MEDIA_CONTROLLER)
>> + entity = &sd->entity;
>> /* Register the entity. */
>> if (v4l2_dev->mdev) {
>> err = media_device_register_entity(v4l2_dev->mdev, entity);
>
> Thanks for the patch.
>
> Instead of keeping a shorthand for entity locally, I'd just refer to
> &sd->entity. It's more simple, and gets away with one pair of #if / #endif
> as well.

Hi,

I thought about that as well, but considered to modify as little as
possible the original code.

Will send a v2.

Eugen

>
> --
> Regards,
>
> Sakari Ailus
>