[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220214201730.GA4285@paulmck-ThinkPad-P17-Gen-1>
Date: Mon, 14 Feb 2022 12:17:30 -0800
From: "Paul E. McKenney" <paulmck@...nel.org>
To: Willy Tarreau <w@....eu>
Cc: Mark Brown <broonie@...nel.org>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 12/42] tools/nolibc/types: make FD_SETSIZE configurable
On Sun, Feb 13, 2022 at 09:53:01AM +0100, Willy Tarreau wrote:
> The macro was hard-coded to 256 but it's common to see it redefined.
> Let's support this and make sure we always allocate enough entries for
> the cases where it wouldn't be multiple of 32.
>
> Signed-off-by: Willy Tarreau <w@....eu>
I queued both in place of their earlier versions, thank you!
Thanx, Paul
> ---
> v2:
> - rebase on top of v2 of previous patch
> ---
> tools/include/nolibc/types.h | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/tools/include/nolibc/types.h b/tools/include/nolibc/types.h
> index a4dda0a22fc2..563dbbad0496 100644
> --- a/tools/include/nolibc/types.h
> +++ b/tools/include/nolibc/types.h
> @@ -45,7 +45,9 @@
> #define DT_SOCK 0xc
>
> /* commonly an fd_set represents 256 FDs */
> +#ifndef FD_SETSIZE
> #define FD_SETSIZE 256
> +#endif
>
> /* Special FD used by all the *at functions */
> #ifndef AT_FDCWD
> @@ -72,7 +74,7 @@
>
> /* for select() */
> typedef struct {
> - uint32_t fd32[FD_SETSIZE / 32];
> + uint32_t fd32[(FD_SETSIZE + 31) / 32];
> } fd_set;
>
> #define FD_CLR(fd, set) do { \
> @@ -101,7 +103,7 @@ typedef struct {
> #define FD_ZERO(set) do { \
> fd_set *__set = (set); \
> int __idx; \
> - for (__idx = 0; __idx < FD_SETSIZE / 32; __idx ++) \
> + for (__idx = 0; __idx < (FD_SETSIZE+31) / 32; __idx ++) \
> __set->fd32[__idx] = 0; \
> } while (0)
>
> --
> 2.35.1
Powered by blists - more mailing lists