Commit 4fb53dde authored by Sven Schnelle's avatar Sven Schnelle Committed by Vasily Gorbik

s390/stp: add sysfs file to show scheduled leap seconds

This patch introduces /sys/devices/system/stp/scheduled_leap_seconds,
which will contain either 0,0 if no leap second is scheduled, or
the UTC timestamp + leap second offset.
Signed-off-by: default avatarSven Schnelle <svens@linux.ibm.com>
Reviewed-by: default avatarAlexander Egorenkov <egorenar@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent b2539aa0
......@@ -790,6 +790,34 @@ static ssize_t leap_seconds_show(struct device *dev,
static DEVICE_ATTR_RO(leap_seconds);
static ssize_t leap_seconds_scheduled_show(struct device *dev,
struct device_attribute *attr,
char *buf)
{
struct stp_stzi stzi;
ssize_t ret;
mutex_lock(&stp_work_mutex);
if (!stpinfo_valid() || !(stp_info.vbits & 0x8000) || !stp_info.lu) {
mutex_unlock(&stp_work_mutex);
return -ENODATA;
}
ret = chsc_stzi(stp_page, &stzi, sizeof(stzi));
mutex_unlock(&stp_work_mutex);
if (ret < 0)
return ret;
if (!stzi.lsoib.p)
return sprintf(buf, "0,0\n");
return sprintf(buf, "%llu,%d\n",
tod_to_ns(stzi.lsoib.nlsout - TOD_UNIX_EPOCH) / NSEC_PER_SEC,
stzi.lsoib.nlso - stzi.lsoib.also);
}
static DEVICE_ATTR_RO(leap_seconds_scheduled);
static ssize_t stratum_show(struct device *dev,
struct device_attribute *attr,
char *buf)
......@@ -906,6 +934,7 @@ static struct device_attribute *stp_attributes[] = {
&dev_attr_dst_offset,
&dev_attr_leap_seconds,
&dev_attr_online,
&dev_attr_leap_seconds_scheduled,
&dev_attr_stratum,
&dev_attr_time_offset,
&dev_attr_time_zone_offset,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment