Skip to content

Commit

Permalink
time: Revert ALWAYS_USE_PERSISTENT_CLOCK compile time optimizaitons
Browse files Browse the repository at this point in the history
Kay Sievers noted that the ALWAYS_USE_PERSISTENT_CLOCK config,
which enables some minor compile time optimization to avoid
uncessary code in mostly the suspend/resume path could cause
problems for userland.

In particular, the dependency for RTC_HCTOSYS on
!ALWAYS_USE_PERSISTENT_CLOCK, which avoids setting the time
twice and simplifies suspend/resume, has the side effect
of causing the /sys/class/rtc/rtcN/hctosys flag to always be
zero, and this flag is commonly used by udev to setup the
/dev/rtc symlink to /dev/rtcN, which can cause pain for
older applications.

While the udev rules could use some work to be less fragile,
breaking userland should strongly be avoided. Additionally
the compile time optimizations are fairly minor, and the code
being optimized is likely to be reworked in the future, so
lets revert this change.

Reported-by: Kay Sievers <[email protected]>
Signed-off-by: John Stultz <[email protected]>
Cc: stable <[email protected]> #3.9
Cc: Feng Tang <[email protected]>
Cc: Jason Gunthorpe <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Thomas Gleixner <[email protected]>
  • Loading branch information
johnstultz-work authored and KAGA-KOKO committed May 14, 2013
1 parent 42a5cf4 commit b4f711e
Show file tree
Hide file tree
Showing 4 changed files with 0 additions and 12 deletions.
1 change: 0 additions & 1 deletion arch/x86/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,6 @@ config X86
select GENERIC_CLOCKEVENTS_BROADCAST if X86_64 || (X86_32 && X86_LOCAL_APIC)
select GENERIC_TIME_VSYSCALL if X86_64
select KTIME_SCALAR if X86_32
select ALWAYS_USE_PERSISTENT_CLOCK
select GENERIC_STRNCPY_FROM_USER
select GENERIC_STRNLEN_USER
select HAVE_CONTEXT_TRACKING if X86_64
Expand Down
2 changes: 0 additions & 2 deletions drivers/rtc/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ if RTC_CLASS
config RTC_HCTOSYS
bool "Set system time from RTC on startup and resume"
default y
depends on !ALWAYS_USE_PERSISTENT_CLOCK
help
If you say yes here, the system time (wall clock) will be set using
the value read from a specified RTC device. This is useful to avoid
Expand All @@ -29,7 +28,6 @@ config RTC_HCTOSYS
config RTC_SYSTOHC
bool "Set the RTC time based on NTP synchronization"
default y
depends on !ALWAYS_USE_PERSISTENT_CLOCK
help
If you say yes here, the system time (wall clock) will be stored
in the RTC specified by RTC_HCTOSYS_DEVICE approximately every 11
Expand Down
4 changes: 0 additions & 4 deletions include/linux/time.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,14 +117,10 @@ static inline bool timespec_valid_strict(const struct timespec *ts)

extern bool persistent_clock_exist;

#ifdef ALWAYS_USE_PERSISTENT_CLOCK
#define has_persistent_clock() true
#else
static inline bool has_persistent_clock(void)
{
return persistent_clock_exist;
}
#endif

extern void read_persistent_clock(struct timespec *ts);
extern void read_boot_clock(struct timespec *ts);
Expand Down
5 changes: 0 additions & 5 deletions kernel/time/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ config CLOCKSOURCE_WATCHDOG
config ARCH_CLOCKSOURCE_DATA
bool

# Platforms has a persistent clock
config ALWAYS_USE_PERSISTENT_CLOCK
bool
default n

# Timekeeping vsyscall support
config GENERIC_TIME_VSYSCALL
bool
Expand Down

0 comments on commit b4f711e

Please sign in to comment.