aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/time.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/kernel/time.c b/kernel/time.c
index fa569885e22b..a0502aef43ce 100644
--- a/kernel/time.c
+++ b/kernel/time.c
@@ -599,12 +599,15 @@ EXPORT_SYMBOL_GPL(getnstimestamp);
599 * will already get problems at other places on 2038-01-19 03:14:08) 599 * will already get problems at other places on 2038-01-19 03:14:08)
600 */ 600 */
601unsigned long 601unsigned long
602mktime (unsigned int year, unsigned int mon, 602mktime(const unsigned int year0, const unsigned int mon0,
603 unsigned int day, unsigned int hour, 603 const unsigned int day, const unsigned int hour,
604 unsigned int min, unsigned int sec) 604 const unsigned int min, const unsigned int sec)
605{ 605{
606 if (0 >= (int) (mon -= 2)) { /* 1..12 -> 11,12,1..10 */ 606 unsigned int mon = mon0, year = year0;
607 mon += 12; /* Puts Feb last since it has leap day */ 607
608 /* 1..12 -> 11,12,1..10 */
609 if (0 >= (int) (mon -= 2)) {
610 mon += 12; /* Puts Feb last since it has leap day */
608 year -= 1; 611 year -= 1;
609 } 612 }
610 613
@@ -630,7 +633,7 @@ mktime (unsigned int year, unsigned int mon,
630 * 0 <= tv_nsec < NSEC_PER_SEC 633 * 0 <= tv_nsec < NSEC_PER_SEC
631 * For negative values only the tv_sec field is negative ! 634 * For negative values only the tv_sec field is negative !
632 */ 635 */
633void set_normalized_timespec (struct timespec *ts, time_t sec, long nsec) 636void set_normalized_timespec(struct timespec *ts, time_t sec, long nsec)
634{ 637{
635 while (nsec >= NSEC_PER_SEC) { 638 while (nsec >= NSEC_PER_SEC) {
636 nsec -= NSEC_PER_SEC; 639 nsec -= NSEC_PER_SEC;