On Thu, Nov 23, 2023 at 02:28:36PM +0100, Uwe Kleine-König wrote: > From: Saravana Kannan <saravanak@xxxxxxxxxx> > > [ Upstream commit 2e84dc37920012b458e9458b19fc4ed33f81bc74 ] > > This commit fixes a bug in commit 9ed9895370ae ("driver core: Functional > dependencies tracking support") where the device link status was > incorrectly updated in the driver unbind path before all the device's > resources were released. > > Fixes: 9ed9895370ae ("driver core: Functional dependencies tracking support") > Cc: stable <stable@xxxxxxxxxx> > Reported-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > Closes: https://lore.kernel.org/all/20231014161721.f4iqyroddkcyoefo@xxxxxxxxxxxxxx/ > Signed-off-by: Saravana Kannan <saravanak@xxxxxxxxxx> > Cc: Thierry Reding <thierry.reding@xxxxxxxxx> > Cc: Yang Yingliang <yangyingliang@xxxxxxxxxx> > Cc: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Cc: Mark Brown <broonie@xxxxxxxxxx> > Cc: Matti Vaittinen <mazziesaccount@xxxxxxxxx> > Cc: James Clark <james.clark@xxxxxxx> > Acked-by: "Rafael J. Wysocki" <rafael@xxxxxxxxxx> > Tested-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > Acked-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > Link: https://lore.kernel.org/r/20231018013851.3303928-1-saravanak@xxxxxxxxxx > Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@xxxxxxxxxxxxxx> > --- > Hello, > > this needed some conflict resolution around commit > 9ad307213fa4 ("driver core: Refactor multiple copies of device > cleanup"). > > Best regards > Uwe > > drivers/base/dd.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/base/dd.c b/drivers/base/dd.c > index ab0b2eb5fa07..0bd166ad6f13 100644 > --- a/drivers/base/dd.c > +++ b/drivers/base/dd.c > @@ -1228,8 +1228,6 @@ static void __device_release_driver(struct device *dev, struct device *parent) > else if (drv->remove) > drv->remove(dev); > > - device_links_driver_cleanup(dev); > - > devres_release_all(dev); > arch_teardown_dma_ops(dev); > kfree(dev->dma_range_map); > @@ -1241,6 +1239,8 @@ static void __device_release_driver(struct device *dev, struct device *parent) > pm_runtime_reinit(dev); > dev_pm_set_driver_flags(dev, 0); > > + device_links_driver_cleanup(dev); > + > klist_remove(&dev->p->knode_driver); > device_pm_check_callbacks(dev); > if (dev->bus) > > base-commit: 2a910f4af54d11deaefdc445f895724371645a97 Thanks, I've queued this up now. greg k-h