Re: [PATCH] fdset's leakage

From: Rene Scharfe
Date: Tue Jul 11 2006 - 05:00:22 EST


[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é
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/