30.07.2019 12:28, Rafael J. Wysocki пишет: > From: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > > After commit 515db266a9da ("driver core: Remove device link creation > limitation"), if PM-runtime flags are passed to device_link_add(), it > will fail (returning NULL) due to an overly restrictive flags check > introduced by that commit. > > Fix this issue by extending the check in question to cover the > PM-runtime flags too. > > Fixes: 515db266a9da ("driver core: Remove device link creation limitation") > Reported-by: Dmitry Osipenko <dig...@gmail.com> > Tested-by: Jon Hunter <jonath...@nvidia.com> > Signed-off-by: Rafael J. Wysocki <rafael.j.wyso...@intel.com> > --- > drivers/base/core.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > Index: linux-pm/drivers/base/core.c > =================================================================== > --- linux-pm.orig/drivers/base/core.c > +++ linux-pm/drivers/base/core.c > @@ -213,6 +213,9 @@ void device_pm_move_to_tail(struct devic > DL_FLAG_AUTOREMOVE_SUPPLIER | \ > DL_FLAG_AUTOPROBE_CONSUMER) > > +#define DL_ADD_VALID_FLAGS (DL_MANAGED_LINK_FLAGS | DL_FLAG_STATELESS | \ > + DL_FLAG_PM_RUNTIME | DL_FLAG_RPM_ACTIVE) > + > /** > * device_link_add - Create a link between two devices. > * @consumer: Consumer end of the link. > @@ -274,8 +277,7 @@ struct device_link *device_link_add(stru > { > struct device_link *link; > > - if (!consumer || !supplier || > - (flags & ~(DL_FLAG_STATELESS | DL_MANAGED_LINK_FLAGS)) || > + if (!consumer || !supplier || flags & ~DL_ADD_VALID_FLAGS || > (flags & DL_FLAG_STATELESS && flags & DL_MANAGED_LINK_FLAGS) || > (flags & DL_FLAG_AUTOPROBE_CONSUMER && > flags & (DL_FLAG_AUTOREMOVE_CONSUMER | > > >
Thank you very much! Tested-by: Dmitry Osipenko <dig...@gmail.com>