+++ /dev/null
-From 454f47ff464325223129b9b5b8d0b61946ec704d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Mateusz=20Jo=C5=84czyk?= <mat.jonczyk@o2.pl>
-Date: Fri, 10 Dec 2021 21:01:23 +0100
-Subject: rtc: cmos: take rtc_lock while reading from CMOS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-From: Mateusz Jończyk <mat.jonczyk@o2.pl>
-
-commit 454f47ff464325223129b9b5b8d0b61946ec704d upstream.
-
-Reading from the CMOS involves writing to the index register and then
-reading from the data register. Therefore access to the CMOS has to be
-serialized with rtc_lock. This invocation of CMOS_READ was not
-serialized, which could cause trouble when other code is accessing CMOS
-at the same time.
-
-Use spin_lock_irq() like the rest of the function.
-
-Nothing in kernel modifies the RTC_DM_BINARY bit, so there could be a
-separate pair of spin_lock_irq() / spin_unlock_irq() before doing the
-math.
-
-Signed-off-by: Mateusz Jończyk <mat.jonczyk@o2.pl>
-Reviewed-by: Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
-Cc: Alessandro Zummo <a.zummo@towertech.it>
-Cc: Alexandre Belloni <alexandre.belloni@bootlin.com>
-Cc: stable@vger.kernel.org
-Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
-Link: https://lore.kernel.org/r/20211210200131.153887-2-mat.jonczyk@o2.pl
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- drivers/rtc/rtc-cmos.c | 3 +++
- 1 file changed, 3 insertions(+)
-
---- a/drivers/rtc/rtc-cmos.c
-+++ b/drivers/rtc/rtc-cmos.c
-@@ -343,7 +343,10 @@ static int cmos_set_alarm(struct device
- min = t->time.tm_min;
- sec = t->time.tm_sec;
-
-+ spin_lock_irq(&rtc_lock);
- rtc_control = CMOS_READ(RTC_CONTROL);
-+ spin_unlock_irq(&rtc_lock);
-+
- if (!(rtc_control & RTC_DM_BINARY) || RTC_ALWAYS_BCD) {
- /* Writing 0xff means "don't care" or "match all". */
- mon = (mon <= 12) ? bin2bcd(mon) : 0xff;