Message ID | 1584940131-1591-1-git-send-email-neeraju@codeaurora.org |
---|---|
State | New |
Headers | show |
Series | PM / wakeup: Skip wakeup_source_sysfs_remove if device is not added | expand |
On Monday, March 23, 2020 6:08:51 AM CET Neeraj Upadhyay wrote: > Skip wakeup_source_sysfs_remove(), to fix null pinter access of > ws->dev, if wakeup source is unregistered before wakeup class > is registered from device_add(). > > Fixes: 2ca3d1ecb8c4 ("PM / wakeup: Register wakeup class kobj after device is added") > Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org> > --- > drivers/base/power/wakeup.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c > index 27f3e60..f8f8c0a 100644 > --- a/drivers/base/power/wakeup.c > +++ b/drivers/base/power/wakeup.c > @@ -241,7 +241,8 @@ void wakeup_source_unregister(struct wakeup_source *ws) > { > if (ws) { > wakeup_source_remove(ws); > - wakeup_source_sysfs_remove(ws); > + if (ws->dev) > + wakeup_source_sysfs_remove(ws); > wakeup_source_destroy(ws); > } > } > Applied (with some minor changes) as 5.7 material, thanks!
diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c index 27f3e60..f8f8c0a 100644 --- a/drivers/base/power/wakeup.c +++ b/drivers/base/power/wakeup.c @@ -241,7 +241,8 @@ void wakeup_source_unregister(struct wakeup_source *ws) { if (ws) { wakeup_source_remove(ws); - wakeup_source_sysfs_remove(ws); + if (ws->dev) + wakeup_source_sysfs_remove(ws); wakeup_source_destroy(ws); } }
Skip wakeup_source_sysfs_remove(), to fix null pinter access of ws->dev, if wakeup source is unregistered before wakeup class is registered from device_add(). Fixes: 2ca3d1ecb8c4 ("PM / wakeup: Register wakeup class kobj after device is added") Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org> --- drivers/base/power/wakeup.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)