| From ceb75787bc75d0a7b88519ab8a68067ac690f55a Mon Sep 17 00:00:00 2001 |
| From: Johan Hovold <johan@kernel.org> |
| Date: Tue, 1 Nov 2016 11:49:56 +0100 |
| Subject: PM / sleep: fix device reference leak in test_suspend |
| |
| From: Johan Hovold <johan@kernel.org> |
| |
| commit ceb75787bc75d0a7b88519ab8a68067ac690f55a upstream. |
| |
| Make sure to drop the reference taken by class_find_device() after |
| opening the RTC device. |
| |
| Fixes: 77437fd4e61f (pm: boot time suspend selftest) |
| Signed-off-by: Johan Hovold <johan@kernel.org> |
| Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| kernel/power/suspend_test.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/kernel/power/suspend_test.c |
| +++ b/kernel/power/suspend_test.c |
| @@ -203,8 +203,10 @@ static int __init test_suspend(void) |
| |
| /* RTCs have initialized by now too ... can we use one? */ |
| dev = class_find_device(rtc_class, NULL, NULL, has_wakealarm); |
| - if (dev) |
| + if (dev) { |
| rtc = rtc_class_open(dev_name(dev)); |
| + put_device(dev); |
| + } |
| if (!rtc) { |
| printk(warn_no_rtc); |
| return 0; |