FROMGIT: rtc: pl031: fix rtc features null pointer dereference
When there is no interrupt line, rtc alarm feature is disabled.
The clearing of the alarm feature bit was being done prior to allocations
of ldata->rtc device, resulting in a null pointer dereference.
Clear RTC_FEATURE_ALARM after the rtc device is allocated.
Fixes: d9b0dd54a1
("rtc: pl031: use RTC_FEATURE_ALARM")
Cc: stable@vger.kernel.org
Signed-off-by: Ali Pouladi <quic_apouladi@quicinc.com>
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20220225161924.274141-1-quic_eberman@quicinc.com
(cherry picked from commit 77b0eea1508d116b67753bdaf9378a2e30b815a9
https://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux.git
rtc-next)
Bug: 223381022
Change-Id: Ie48a3ad9708466462331e07334de94f1cf6d4074
Signed-off-by: Elliot Berman <quic_eberman@quicinc.com>
This commit is contained in:
parent
097c689d48
commit
6215ed4f5f
|
@ -350,9 +350,6 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
|
|||
}
|
||||
}
|
||||
|
||||
if (!adev->irq[0])
|
||||
clear_bit(RTC_FEATURE_ALARM, ldata->rtc->features);
|
||||
|
||||
device_init_wakeup(&adev->dev, true);
|
||||
ldata->rtc = devm_rtc_allocate_device(&adev->dev);
|
||||
if (IS_ERR(ldata->rtc)) {
|
||||
|
@ -360,6 +357,9 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
|
|||
goto out;
|
||||
}
|
||||
|
||||
if (!adev->irq[0])
|
||||
clear_bit(RTC_FEATURE_ALARM, ldata->rtc->features);
|
||||
|
||||
ldata->rtc->ops = ops;
|
||||
ldata->rtc->range_min = vendor->range_min;
|
||||
ldata->rtc->range_max = vendor->range_max;
|
||||
|
|
Loading…
Reference in New Issue