[Devel] Re: [PATCH] fdset's leakage
Rene Scharfe
rene.scharfe at lsrfire.ath.cx
Tue Jul 11 02:02:08 PDT 2006
[strange loop snipped]
> That's going to take a long time to compute if nr > NR_OPEN. I just fixed
> a similar infinite loop in this function.
That other fix looks buggy btw. Here it is:
- nfds = 8 * L1_CACHE_BYTES;
- /* Expand to the max in easy steps */
- while (nfds <= nr) {
- nfds = nfds * 2;
- if (nfds > NR_OPEN)
- nfds = NR_OPEN;
- }
+ nfds = max_t(int, 8 * L1_CACHE_BYTES, roundup_pow_of_two(nfds));
+ if (nfds > NR_OPEN)
+ nfds = NR_OPEN;
Surely you meant to say "roundup_pow_of_two(nr + 1)"?
René
More information about the Devel
mailing list