Messages in this thread | | | From | Ernst Herzberg <> | Subject | Re: 2.6.16-rc3 macromedia flash regression... | Date | Fri, 17 Feb 2006 20:38:10 +0100 |
| |
On Freitag 17 Februar 2006 08:23, Andrew Morton wrote: > 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: > _
---------------------------
The patch does _not_ fix the problem.
sorry... <earny/> - 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/
| |