[PATCH] s390/stp: Drop CLOCK_SYNC_STP
Sven Schnelle <[email protected]>
| Newsgroups | org.kernel.vger.linux-s390 |
|---|---|
| Message-ID | <[email protected]> |
CLOCK_SYNC_STP is never set when the stp=1 kernel command line option is used, or stp is enabled by default. This cause get_phys_clock to return -EACCES. Fix this by testing stp_online and remove CLOCK_SYNC_STP. Signed-off-by: Sven Schnelle <[email protected]> --- arch/s390/kernel/time.c | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c index 2b989bebd220..de80e2a316ba 100644 --- a/arch/s390/kernel/time.c +++ b/arch/s390/kernel/time.c @@ -69,6 +69,7 @@ EXPORT_SYMBOL(ptff_function_mask); static unsigned long lpar_offset; static unsigned long initial_leap_seconds; +static bool stp_online = true; /* * Get time offsets with PTFF @@ -274,8 +275,7 @@ static DEFINE_MUTEX(stp_mutex); static unsigned long clock_sync_flags; #define CLOCK_SYNC_HAS_STP 0 -#define CLOCK_SYNC_STP 1 -#define CLOCK_SYNC_STPINFO_VALID 2 +#define CLOCK_SYNC_STPINFO_VALID 1 /* * The get_clock function for the physical clock. It will get the current @@ -299,7 +299,7 @@ int get_phys_clock(unsigned long *clock) return 0; if (!test_bit(CLOCK_SYNC_HAS_STP, &clock_sync_flags)) return -EOPNOTSUPP; - if (!test_bit(CLOCK_SYNC_STP, &clock_sync_flags)) + if (!stp_online) return -EACCES; return -EAGAIN; } @@ -397,7 +397,6 @@ struct clock_sync_data { /* * Server Time Protocol (STP) code. */ -static bool stp_online = true; static struct stp_sstpi stp_info; static void *stp_page; @@ -795,10 +794,6 @@ static ssize_t online_store(struct device *dev, return -EOPNOTSUPP; mutex_lock(&stp_mutex); stp_online = value; - if (stp_online) - set_bit(CLOCK_SYNC_STP, &clock_sync_flags); - else - clear_bit(CLOCK_SYNC_STP, &clock_sync_flags); queue_work(time_sync_wq, &stp_work); mutex_unlock(&stp_mutex); return count; -- 2.53.0