RTC: Propagate error handling via rtc_timer_enqueue properly
authorJohn Stultz <[email protected]>
Thu, 20 Jan 2011 23:26:12 +0000 (15:26 -0800)
committerThomas Gleixner <[email protected]>
Fri, 21 Jan 2011 16:38:19 +0000 (17:38 +0100)
commitaa0be0f4659f91f31e45adc422b1788cb36ffddc
tree02eed33d672f36e41e735c5060acb9d2446c23af
parentdb6b175fa6ad1408cbb2fb62949a6d55cfece03e
RTC: Propagate error handling via rtc_timer_enqueue properly

In cases where RTC hardware does not support alarms, the virtualized
RTC interfaces did not have a way to propagate the error up to userland.

This patch extends rtc_timer_enqueue so it catches errors from the hardware
and returns them upwards to the virtualized interfaces. To simplify error
handling, it also internalizes the management of the timer->enabled bit
into rtc_timer_enqueue and rtc_timer_remove.

Also makes rtc_timer_enqueue and rtc_timer_remove static.

Reported-by: David Daney <[email protected]>
Reported-by: Andreas Schwab <[email protected]>
Reported-by: Geert Uytterhoeven <[email protected]>
Diagnosed-by: David Daney <[email protected]>
Tested-by: David Daney <[email protected]>
Signed-off-by: John Stultz <[email protected]>
LKML-Reference: <1295565973[email protected]>
Signed-off-by: Thomas Gleixner <[email protected]>
drivers/rtc/interface.c
include/linux/rtc.h