]> git.baikalelectronics.ru Git - kernel.git/commit
rtc: cmos: take rtc_lock while reading from CMOS
authorMateusz Jończyk <mat.jonczyk@o2.pl>
Fri, 10 Dec 2021 20:01:23 +0000 (21:01 +0100)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Thu, 16 Dec 2021 20:50:06 +0000 (21:50 +0100)
commit117342d76f8d5f02230e05aed848843f3e471f38
treefb4b717771599a555b34dbac0b6bf74cc332c721
parentfdd28cc87e5826e72a852a990d51c4f74724f2d6
rtc: cmos: take rtc_lock while reading from CMOS

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
drivers/rtc/rtc-cmos.c