Re: 2.6.16-rc3 macromedia flash regression...

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Freitag 17 Februar 2006 08:23, Andrew Morton wrote:
> Ernst Herzberg <[email protected]> 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 <[email protected]>
> >  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 [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux