Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1580545 > unrolled thread

[RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times

Started byPavel Machek <pavel@ucw.cz>
First post2017-02-14 14:50 +0100
Last post2017-02-14 23:30 +0100
Articles 5 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling  multiple times Pavel Machek <pavel@ucw.cz> - 2017-02-14 14:50 +0100
    Re: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling  multiple times Sakari Ailus <sakari.ailus@iki.fi> - 2017-02-14 23:10 +0100
      Re: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times Laurent Pinchart <laurent.pinchart@ideasonboard.com> - 2017-02-14 23:10 +0100
        Re: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling  multiple times Sakari Ailus <sakari.ailus@iki.fi> - 2017-02-14 23:20 +0100
      Re: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling  multiple times Pavel Machek <pavel@ucw.cz> - 2017-02-14 23:30 +0100

#1580545 — [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times

FromPavel Machek <pavel@ucw.cz>
Date2017-02-14 14:50 +0100
Subject[RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times
Message-ID<taLEu-2wc-21@gated-at.bofh.it>

[Multipart message — attachments visible in raw view] — view raw

From: Sebastian Reichel <sre@kernel.org>

Without this, exposure / gain controls do not work in the camera application.

Signed-off-by: Sebastian Reichel <sre@kernel.org>
Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
Signed-off-by: Pavel Machek <pavel@ucw.cz>
---
 drivers/media/v4l2-core/v4l2-device.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
index f364cc1..b3afbe8 100644
--- a/drivers/media/v4l2-core/v4l2-device.c
+++ b/drivers/media/v4l2-core/v4l2-device.c
@@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
 		if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
 			continue;
 
+		if(sd->devnode)
+			continue;
+
 		vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
 		if (!vdev) {
 			err = -ENOMEM;
-- 
2.1.4


-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[toc] | [next] | [standalone]


#1580900

FromSakari Ailus <sakari.ailus@iki.fi>
Date2017-02-14 23:10 +0100
Message-ID<taTsl-7x0-13@gated-at.bofh.it>
In reply to#1580545
Hi Pavel and Sebastian,

On Tue, Feb 14, 2017 at 02:40:00PM +0100, Pavel Machek wrote:
> From: Sebastian Reichel <sre@kernel.org>
> 
> Without this, exposure / gain controls do not work in the camera application.

:-)

> 
> Signed-off-by: Sebastian Reichel <sre@kernel.org>
> Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
> Signed-off-by: Pavel Machek <pavel@ucw.cz>
> ---
>  drivers/media/v4l2-core/v4l2-device.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
> index f364cc1..b3afbe8 100644
> --- a/drivers/media/v4l2-core/v4l2-device.c
> +++ b/drivers/media/v4l2-core/v4l2-device.c
> @@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
>  		if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
>  			continue;
>  
> +		if(sd->devnode)
> +			continue;

This has been recognised as a problem but you're the first to submit a patch
I believe. Please add an appropriate description. :-)

s/if\(/if (/

I think this one should go in before the rest.

> +
>  		vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
>  		if (!vdev) {
>  			err = -ENOMEM;

-- 
Kind regards,

Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

[toc] | [prev] | [next] | [standalone]


#1580903 — Re: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times

FromLaurent Pinchart <laurent.pinchart@ideasonboard.com>
Date2017-02-14 23:10 +0100
SubjectRe: [RFC 07/13] v4l2: device_register_subdev_nodes: allow calling multiple times
Message-ID<taTsm-7x0-37@gated-at.bofh.it>
In reply to#1580900
Hi Sakari,

On Wednesday 15 Feb 2017 00:02:57 Sakari Ailus wrote:
> On Tue, Feb 14, 2017 at 02:40:00PM +0100, Pavel Machek wrote:
> > From: Sebastian Reichel <sre@kernel.org>
> > 
> > Without this, exposure / gain controls do not work in the camera
> > application.:
> :-)
> :
> > Signed-off-by: Sebastian Reichel <sre@kernel.org>
> > Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > ---
> > 
> >  drivers/media/v4l2-core/v4l2-device.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/media/v4l2-core/v4l2-device.c
> > b/drivers/media/v4l2-core/v4l2-device.c index f364cc1..b3afbe8 100644
> > --- a/drivers/media/v4l2-core/v4l2-device.c
> > +++ b/drivers/media/v4l2-core/v4l2-device.c
> > @@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct
> > v4l2_device *v4l2_dev)
> >  		if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
> >  			continue;
> > 
> > +		if(sd->devnode)
> > +			continue;
> 
> This has been recognised as a problem but you're the first to submit a patch
> I believe. Please add an appropriate description. :-)
> 
> s/if\(/if (/
> 
> I think this one should go in before the rest.

But how can this happen ? Is v4l2_device_register_subdev_nodes() called 
multiple times ? Do we want to allow that ?

> > +
> >  		vdev = kzalloc(sizeof(*vdev), GFP_KERNEL);
> >  		if (!vdev) {
> >  			err = -ENOMEM;

-- 
Regards,

Laurent Pinchart

[toc] | [prev] | [next] | [standalone]


#1580908

FromSakari Ailus <sakari.ailus@iki.fi>
Date2017-02-14 23:20 +0100
Message-ID<taTC2-7Be-15@gated-at.bofh.it>
In reply to#1580903
Hi Laurent,

On Wed, Feb 15, 2017 at 12:06:17AM +0200, Laurent Pinchart wrote:
> Hi Sakari,
> 
> On Wednesday 15 Feb 2017 00:02:57 Sakari Ailus wrote:
> > On Tue, Feb 14, 2017 at 02:40:00PM +0100, Pavel Machek wrote:
> > > From: Sebastian Reichel <sre@kernel.org>
> > > 
> > > Without this, exposure / gain controls do not work in the camera
> > > application.:
> > :-)
> > :
> > > Signed-off-by: Sebastian Reichel <sre@kernel.org>
> > > Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
> > > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > > ---
> > > 
> > >  drivers/media/v4l2-core/v4l2-device.c | 3 +++
> > >  1 file changed, 3 insertions(+)
> > > 
> > > diff --git a/drivers/media/v4l2-core/v4l2-device.c
> > > b/drivers/media/v4l2-core/v4l2-device.c index f364cc1..b3afbe8 100644
> > > --- a/drivers/media/v4l2-core/v4l2-device.c
> > > +++ b/drivers/media/v4l2-core/v4l2-device.c
> > > @@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct
> > > v4l2_device *v4l2_dev)
> > >  		if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
> > >  			continue;
> > > 
> > > +		if(sd->devnode)
> > > +			continue;
> > 
> > This has been recognised as a problem but you're the first to submit a patch
> > I believe. Please add an appropriate description. :-)
> > 
> > s/if\(/if (/
> > 
> > I think this one should go in before the rest.
> 
> But how can this happen ? Is v4l2_device_register_subdev_nodes() called 
> multiple times ? Do we want to allow that ?

A driver could do this even accidentally. It's much better to do the right
thing than to start corrupting system memory sooner or later.

In the future we'll need to be able to dynamically register device nodes
after the registration of the original device nodes in a media device has
completed anyway. I don't think this would be the means for that though.

What happens here though is that both the video bus switch and isp notifiers
completing will call the function, thus ending up trying to register many of
the nodes twice. Philipp had a different approach to the problem ---
postponing the complete until add the sub-devices have been bound. The patch
is called "v4l2-async: allow subdevices to add further subdevices to the
notifier waiting list".

-- 
Kind regards,

Sakari Ailus
e-mail: sakari.ailus@iki.fi	XMPP: sailus@retiisi.org.uk

[toc] | [prev] | [next] | [standalone]


#1580920

FromPavel Machek <pavel@ucw.cz>
Date2017-02-14 23:30 +0100
Message-ID<taTLI-7Fr-37@gated-at.bofh.it>
In reply to#1580900

[Multipart message — attachments visible in raw view] — view raw

On Wed 2017-02-15 00:02:57, Sakari Ailus wrote:
> Hi Pavel and Sebastian,
> 
> On Tue, Feb 14, 2017 at 02:40:00PM +0100, Pavel Machek wrote:
> > From: Sebastian Reichel <sre@kernel.org>
> > 
> > Without this, exposure / gain controls do not work in the camera application.
> 
> :-)
> 
> > 
> > Signed-off-by: Sebastian Reichel <sre@kernel.org>
> > Signed-off-by: Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>
> > Signed-off-by: Pavel Machek <pavel@ucw.cz>
> > ---
> >  drivers/media/v4l2-core/v4l2-device.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
> > index f364cc1..b3afbe8 100644
> > --- a/drivers/media/v4l2-core/v4l2-device.c
> > +++ b/drivers/media/v4l2-core/v4l2-device.c
> > @@ -235,6 +235,9 @@ int v4l2_device_register_subdev_nodes(struct v4l2_device *v4l2_dev)
> >  		if (!(sd->flags & V4L2_SUBDEV_FL_HAS_DEVNODE))
> >  			continue;
> >  
> > +		if(sd->devnode)
> > +			continue;
> 
> This has been recognised as a problem but you're the first to submit a patch
> I believe. Please add an appropriate description. :-)

Ugh. Will try :-).

> s/if\(/if (/
> 
> I think this one should go in before the rest.

Easy enough, and I'll move it to the first in the series.
									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web