Skip to content

Commit 4d4d5c4

Browse files
superm1roxanan1996
authored andcommitted
rtc: mc146818-lib: Adjust failure return code for mc146818_get_time()
BugLink: https://bugs.launchpad.net/bugs/2059068 commit af83863 upstream. mc146818_get_time() calls mc146818_avoid_UIP() to avoid fetching the time while RTC update is in progress (UIP). When this fails, the return code is -EIO, but actually there was no IO failure. The reason for the return from mc146818_avoid_UIP() is that the UIP wasn't cleared in the time period. Adjust the return code to -ETIMEDOUT to match the behavior. Tested-by: Mateusz Jończyk <mat.jonczyk@o2.pl> Reviewed-by: Mateusz Jończyk <mat.jonczyk@o2.pl> Acked-by: Mateusz Jończyk <mat.jonczyk@o2.pl> Cc: <stable@vger.kernel.org> Fixes: 2a61b0a ("rtc: mc146818-lib: refactor mc146818_get_time") Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Link: https://lore.kernel.org/r/20231128053653.101798-2-mario.limonciello@amd.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Portia Stephens <portia.stephens@canonical.com> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
1 parent e57af5c commit 4d4d5c4

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

drivers/rtc/rtc-mc146818-lib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ int mc146818_get_time(struct rtc_time *time)
138138

139139
if (!mc146818_avoid_UIP(mc146818_get_time_callback, &p)) {
140140
memset(time, 0, sizeof(*time));
141-
return -EIO;
141+
return -ETIMEDOUT;
142142
}
143143

144144
if (!(p.ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD)

0 commit comments

Comments
 (0)