All of lore.kernel.org
 help / color / mirror / Atom feed
From: george anzinger <george@mvista.com>
To: "David S. Miller" <davem@redhat.com>
Cc: "B. D. Elliott" <bde@nwlink.com>,
	linux-kernel@vger.kernel.org, akpm@digeo.com
Subject: Re: Stime/Settimeofday are still broken
Date: Wed, 16 Jul 2003 01:29:23 -0700	[thread overview]
Message-ID: <3F150CE3.5080205@mvista.com> (raw)
In-Reply-To: <20030715005617.39f55582.davem@redhat.com>

David S. Miller wrote:
> On Tue, 15 Jul 2003 00:40:49 -0700
> "B. D. Elliott" <bde@nwlink.com> wrote:
> 
> 
>>The problems described below still exist in -2.6.0-test1.
> 
> 
> Ignore my previous reply, not a Sparc problem obviously
> but a generic one, sorry.
> 
> Andrew, he's right, we need to fix this and his patch looks
> perfectly fine.

Looks good to me.

-g
> 
> 
>>>Date: Wed, 18 Jun 2003 00:57:12 -0700
>>>From: "B. D. Elliott" <bde@nwlink.com>
>>>To: linux-kernel@vger.kernel.org
>>>Subject: Sparc64-2.5.72: A Serious Time Problem
>>>Mail-Followup-To: linux-kernel@vger.kernel.org
>>>Mime-Version: 1.0
>>>Content-Type: text/plain; charset=us-ascii
>>>Content-Disposition: inline
>>>User-Agent: Mutt/1.5.4i
>>>Message-Id: <20030618073556.94E966A4FC@smtp4.pacifier.net>
>>>Status: RO
>>>Content-Length: 1651
>>>Lines: 47
>>>
>>>There is a serious bug in setting time on 64-bit sparcs (and probably other
>>>64-bit systems).  The symptom is that ntpdate or date set the time back to
>>>1969 or 1970.  The underlying problems are that stime is broken, and any
>>>settimeofday call fails with a bad fractional value.  Ntpdate falls back to
>>>stime when settimeofday fails.
>>>
>>>The settimeofday problem is that the timeval and timespec structures are not
>>>the same size.  In particular, the fractional part is an int in timeval, and
>>>a long in timespec.  The stime problem is that the argument is not an int,
>>>but a time_t, which is long on at least some 64-bit systems.
>>>
>>>The following patch appears to fix this on my sparc64.
>>>
>>>===================================================================
>>>--- ./kernel/time.c.orig	2003-06-16 22:36:04.000000000 -0700
>>>+++ ./kernel/time.c	2003-06-18 00:00:43.000000000 -0700
>>>@@ -66,7 +66,7 @@
>>> * architectures that need it).
>>> */
>>> 
>>>-asmlinkage long sys_stime(int * tptr)
>>>+asmlinkage long sys_stime(time_t * tptr)
>>>{
>>>	struct timespec tv;
>>>
>>>@@ -162,13 +162,15 @@
>>>
>>>asmlinkage long sys_settimeofday(struct timeval __user *tv, struct timezone __user *tz)
>>>{
>>>+	struct timeval user_tv;
>>>	struct timespec	new_tv;
>>>	struct timezone new_tz;
>>>
>>>	if (tv) {
>>>-		if (copy_from_user(&new_tv, tv, sizeof(*tv)))
>>>+		if (copy_from_user(&user_tv, tv, sizeof(*tv)))
>>>			return -EFAULT;
>>>-		new_tv.tv_nsec *= NSEC_PER_USEC;
>>>+		new_tv.tv_sec = user_tv.tv_sec;
>>>+		new_tv.tv_nsec = user_tv.tv_usec * NSEC_PER_USEC;
>>>	}
>>>	if (tz) {
>>>		if (copy_from_user(&new_tz, tz, sizeof(*tz)))
>>>===================================================================
>>
>>-- 
>>B. D. Elliott   bde@nwlink.com
>>-
>>To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
>>the body of a message to majordomo@vger.kernel.org
>>More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>Please read the FAQ at  http://www.tux.org/lkml/
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 

-- 
George Anzinger   george@mvista.com
High-res-timers:  http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml


      reply	other threads:[~2003-07-16  8:14 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-15  7:40 Stime/Settimeofday are still broken B. D. Elliott
2003-07-15  7:52 ` David S. Miller
2003-07-15  7:56 ` David S. Miller
2003-07-16  8:29   ` george anzinger [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=3F150CE3.5080205@mvista.com \
    --to=george@mvista.com \
    --cc=akpm@digeo.com \
    --cc=bde@nwlink.com \
    --cc=davem@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.