]> git.baikalelectronics.ru Git - kernel.git/commit
rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops
authorNicholas Piggin <npiggin@gmail.com>
Tue, 10 Apr 2018 11:49:32 +0000 (21:49 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 25 Apr 2018 03:24:13 +0000 (13:24 +1000)
commit6c0e5439f4ba4879fba305ed54394f4a5f870a28
tree25b4eb837ae2f09cfd0ba5a54dc975fa0cfcaa92
parentcc8f68cd66eb534adbc2c415e9d4067e190be882
rtc: opal: Fix OPAL RTC driver OPAL_BUSY loops

The OPAL RTC driver does not sleep in case it gets OPAL_BUSY or
OPAL_BUSY_EVENT from firmware, which causes large scheduling
latencies, up to 50 seconds have been observed here when RTC stops
responding (BMC reboot can do it).

Fix this by converting it to the standard form OPAL_BUSY loop that
sleeps.

Fixes: 51fa8ea17e59 ("powerpc/powernv: Add RTC and NVRAM support plus RTAS fallbacks")
Cc: stable@vger.kernel.org # v3.2+
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/platforms/powernv/opal-rtc.c
drivers/rtc/rtc-opal.c