All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@osdl.org>
To: earny@net4u.de
Cc: list-lkml@net4u.de, linux-kernel@vger.kernel.org
Subject: Re: 2.6.16-rc3 macromedia flash regression...
Date: Thu, 16 Feb 2006 23:23:15 -0800	[thread overview]
Message-ID: <20060216232315.06c659f5.akpm@osdl.org> (raw)
In-Reply-To: <200602170508.52712.list-lkml@net4u.de>

Ernst Herzberg <list-lkml@net4u.de> wrote:
>
> .... or not regession, that's the question.
> 
>  2.6.16-rc2 works without problems.
> 
>  With -rc3 a .swf that opens a ip connection back to the server takes ages to 
>  load. strace shows that the player hangs for long times in select().
> 
>  Digging through the changelog brings up
> 
>  commit 643a654540579b0dcc7a206a4a7475276a41aff0
>  Author: Andrew Morton <akpm@osdl.org>
>  Date:   Sat Feb 11 17:55:52 2006 -0800
> 
>      [PATCH] select: fix returned timeval

y'know, when I sent that patch out to reviewers I said "Could you guys
please double-check this like hawks?  Especially the handy-dandy new
timespec/timeval comparison functions.  I invariably screw that sort of
thing up."

Does this help?


diff -puN fs/select.c~select-time-comparison-fixes fs/select.c
--- devel/fs/select.c~select-time-comparison-fixes	2006-02-16 23:17:54.000000000 -0800
+++ devel-akpm/fs/select.c	2006-02-16 23:19:21.000000000 -0800
@@ -404,7 +404,7 @@ asmlinkage long sys_select(int n, fd_set
 			goto sticky;
 		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
 		rtv.tv_sec = timeout;
-		if (timeval_compare(&rtv, &tv) < 0)
+		if (timeval_compare(&rtv, &tv) >= 0)
 			rtv = tv;
 		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
 sticky:
@@ -471,7 +471,7 @@ asmlinkage long sys_pselect7(int n, fd_s
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 						1000;
 		rts.tv_sec = timeout;
-		if (timespec_compare(&rts, &ts) < 0)
+		if (timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 sticky:
@@ -775,7 +775,7 @@ asmlinkage long sys_ppoll(struct pollfd 
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 						1000;
 		rts.tv_sec = timeout;
-		if (timespec_compare(&rts, &ts) < 0)
+		if (timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 		sticky:
diff -puN fs/compat.c~select-time-comparison-fixes fs/compat.c
--- devel/fs/compat.c~select-time-comparison-fixes	2006-02-16 23:17:54.000000000 -0800
+++ devel-akpm/fs/compat.c	2006-02-16 23:19:33.000000000 -0800
@@ -1757,7 +1757,7 @@ asmlinkage long compat_sys_select(int n,
 			goto sticky;
 		rtv.tv_usec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ));
 		rtv.tv_sec = timeout;
-		if (compat_timeval_compare(&rtv, &tv) < 0)
+		if (compat_timeval_compare(&rtv, &tv) >= 0)
 			rtv = tv;
 		if (copy_to_user(tvp, &rtv, sizeof(rtv))) {
 sticky:
@@ -1834,7 +1834,7 @@ asmlinkage long compat_sys_pselect7(int 
 			rts.tv_sec++;
 			rts.tv_nsec -= NSEC_PER_SEC;
 		}
-		if (compat_timespec_compare(&rts, &ts) < 0)
+		if (compat_timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		copy_to_user(tsp, &rts, sizeof(rts));
 	}
@@ -1934,7 +1934,7 @@ asmlinkage long compat_sys_ppoll(struct 
 		rts.tv_nsec = jiffies_to_usecs(do_div((*(u64*)&timeout), HZ)) *
 					1000;
 		rts.tv_sec = timeout;
-		if (compat_timespec_compare(&rts, &ts) < 0)
+		if (compat_timespec_compare(&rts, &ts) >= 0)
 			rts = ts;
 		if (copy_to_user(tsp, &rts, sizeof(rts))) {
 sticky:
_


  parent reply	other threads:[~2006-02-17  7:24 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-02-17  4:08 2.6.16-rc3 macromedia flash regression Ernst Herzberg
2006-02-17  7:10 ` Andrew Morton
2006-02-17 19:37   ` Ernst Herzberg
2006-02-17  7:23 ` Andrew Morton [this message]
2006-02-17 19:38   ` Ernst Herzberg
2006-02-17 21:16     ` Andrew Morton
2006-02-17 22:07       ` Ernst Herzberg
2006-02-17 22:13         ` Andrew Morton

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=20060216232315.06c659f5.akpm@osdl.org \
    --to=akpm@osdl.org \
    --cc=earny@net4u.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=list-lkml@net4u.de \
    /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.