Message ID | 20171026075342.5760-16-sakari.ailus@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 2017-10-26 10:53:25 +0300, Sakari Ailus wrote: > Register the sub-device before calling the notifier's bound callback. > Doing this the other way around is problematic as the struct v4l2_device > has not assigned for the sub-device yet and may be required by the bound > callback. > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > Acked-by: Pavel Machek <pavel@ucw.cz> Acked-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se> > --- > drivers/media/v4l2-core/v4l2-async.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index e170682dae78..46db85685894 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -130,13 +130,13 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, > { > int ret; > > - ret = v4l2_async_notifier_call_bound(notifier, sd, asd); > + ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); > if (ret < 0) > return ret; > > - ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); > + ret = v4l2_async_notifier_call_bound(notifier, sd, asd); > if (ret < 0) { > - v4l2_async_notifier_call_unbind(notifier, sd, asd); > + v4l2_device_unregister_subdev(sd); > return ret; > } > > -- > 2.11.0 >
Hi, On Thu, Oct 26, 2017 at 10:53:25AM +0300, Sakari Ailus wrote: > Register the sub-device before calling the notifier's bound callback. > Doing this the other way around is problematic as the struct v4l2_device > has not assigned for the sub-device yet and may be required by the bound > callback. > > Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com> > Acked-by: Hans Verkuil <hans.verkuil@cisco.com> > Acked-by: Pavel Machek <pavel@ucw.cz> > --- Reviewed-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk> -- Sebastian > drivers/media/v4l2-core/v4l2-async.c | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c > index e170682dae78..46db85685894 100644 > --- a/drivers/media/v4l2-core/v4l2-async.c > +++ b/drivers/media/v4l2-core/v4l2-async.c > @@ -130,13 +130,13 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, > { > int ret; > > - ret = v4l2_async_notifier_call_bound(notifier, sd, asd); > + ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); > if (ret < 0) > return ret; > > - ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); > + ret = v4l2_async_notifier_call_bound(notifier, sd, asd); > if (ret < 0) { > - v4l2_async_notifier_call_unbind(notifier, sd, asd); > + v4l2_device_unregister_subdev(sd); > return ret; > } > > -- > 2.11.0 >
diff --git a/drivers/media/v4l2-core/v4l2-async.c b/drivers/media/v4l2-core/v4l2-async.c index e170682dae78..46db85685894 100644 --- a/drivers/media/v4l2-core/v4l2-async.c +++ b/drivers/media/v4l2-core/v4l2-async.c @@ -130,13 +130,13 @@ static int v4l2_async_match_notify(struct v4l2_async_notifier *notifier, { int ret; - ret = v4l2_async_notifier_call_bound(notifier, sd, asd); + ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); if (ret < 0) return ret; - ret = v4l2_device_register_subdev(notifier->v4l2_dev, sd); + ret = v4l2_async_notifier_call_bound(notifier, sd, asd); if (ret < 0) { - v4l2_async_notifier_call_unbind(notifier, sd, asd); + v4l2_device_unregister_subdev(sd); return ret; }