lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 5 Aug 2015 17:06:45 -0700 From: Greg Kroah-Hartman <gregkh@...uxfoundation.org> To: Uwe Kleine-König <uwe@...ine-koenig.org> Cc: Mark Brown <broonie@...nel.org>, linux-kernel@...r.kernel.org, kernel@...gutronix.de Subject: Re: [PATCH] base/platform: assert that dev_pm_domain callbacks are called unconditionally On Tue, Jul 21, 2015 at 05:08:35PM +0200, Uwe Kleine-König wrote: > When a platform driver doesn't provide a .remove callback the function > platform_drv_remove isn't called and so the call to dev_pm_domain_attach > called at probe time isn't paired by dev_pm_domain_detach at remove > time. > > To fix this (and similar issues if different callbacks are missing) hook > up the driver callbacks unconditionally and make them aware that the > platform callbacks might be missing. > > Signed-off-by: Uwe Kleine-König <uwe@...ine-koenig.org> > --- > Hello, > > I didn't see any breakage without this patch, but it looks wrong the way > it is. > > Best regards > Uwe > > drivers/base/platform.c | 17 ++++++++--------- > 1 file changed, 8 insertions(+), 9 deletions(-) > > diff --git a/drivers/base/platform.c b/drivers/base/platform.c > index 063f0ab15259..62debf4a1348 100644 > --- a/drivers/base/platform.c > +++ b/drivers/base/platform.c > @@ -517,7 +517,7 @@ static int platform_drv_probe(struct device *_dev) > return ret; > > ret = dev_pm_domain_attach(_dev, true); > - if (ret != -EPROBE_DEFER) { > + if (ret != -EPROBE_DEFER && drv->probe) { > ret = drv->probe(dev); > if (ret) > dev_pm_domain_detach(_dev, true); > @@ -542,7 +542,8 @@ static int platform_drv_remove(struct device *_dev) > struct platform_device *dev = to_platform_device(_dev); > int ret; > > - ret = drv->remove(dev); > + if (drv->remove) > + ret = drv->remove(dev); > dev_pm_domain_detach(_dev, true); This causes a build warning :( Please fix. thanks, greg k-h -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists