diff options
Diffstat (limited to 'drivers/rtc/interface.c')
| -rw-r--r-- | drivers/rtc/interface.c | 22 | 
1 files changed, 10 insertions, 12 deletions
| diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c index 45bfc28ee3aa..37215cf983e9 100644 --- a/drivers/rtc/interface.c +++ b/drivers/rtc/interface.c @@ -73,10 +73,8 @@ int rtc_set_time(struct rtc_device *rtc, struct rtc_time *tm)  	else if (rtc->ops->set_time)  		err = rtc->ops->set_time(rtc->dev.parent, tm);  	else if (rtc->ops->set_mmss) { -		unsigned long secs; -		err = rtc_tm_to_time(tm, &secs); -		if (err == 0) -			err = rtc->ops->set_mmss(rtc->dev.parent, secs); +		time64_t secs64 = rtc_tm_to_time64(tm); +		err = rtc->ops->set_mmss(rtc->dev.parent, secs64);  	} else  		err = -EINVAL; @@ -105,7 +103,7 @@ int rtc_set_mmss(struct rtc_device *rtc, unsigned long secs)  		err = rtc->ops->read_time(rtc->dev.parent, &old);  		if (err == 0) { -			rtc_time_to_tm(secs, &new); +			rtc_time64_to_tm(secs, &new);  			/*  			 * avoid writing when we're going to change the day of @@ -157,7 +155,7 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  	int err;  	struct rtc_time before, now;  	int first_time = 1; -	unsigned long t_now, t_alm; +	time64_t t_now, t_alm;  	enum { none, day, month, year } missing = none;  	unsigned days; @@ -258,8 +256,8 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  	}  	/* with luck, no rollover is needed */ -	rtc_tm_to_time(&now, &t_now); -	rtc_tm_to_time(&alarm->time, &t_alm); +	t_now = rtc_tm_to_time64(&now); +	t_alm = rtc_tm_to_time64(&alarm->time);  	if (t_now < t_alm)  		goto done; @@ -273,7 +271,7 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  	case day:  		dev_dbg(&rtc->dev, "alarm rollover: %s\n", "day");  		t_alm += 24 * 60 * 60; -		rtc_time_to_tm(t_alm, &alarm->time); +		rtc_time64_to_tm(t_alm, &alarm->time);  		break;  	/* Month rollover ... if it's the 31th, an alarm on the 3rd will @@ -346,19 +344,19 @@ EXPORT_SYMBOL_GPL(rtc_read_alarm);  static int __rtc_set_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)  {  	struct rtc_time tm; -	long now, scheduled; +	time64_t now, scheduled;  	int err;  	err = rtc_valid_tm(&alarm->time);  	if (err)  		return err; -	rtc_tm_to_time(&alarm->time, &scheduled); +	scheduled = rtc_tm_to_time64(&alarm->time);  	/* Make sure we're not setting alarms in the past */  	err = __rtc_read_time(rtc, &tm);  	if (err)  		return err; -	rtc_tm_to_time(&tm, &now); +	now = rtc_tm_to_time64(&tm);  	if (scheduled <= now)  		return -ETIME;  	/* |