Messages in this thread |  | | | Date | Mon, 12 May 2008 21:01:41 -0700 | | From | Andrew Morton <> | | Subject | Re: [PATCH 18/18] flag parameters: check magic constants | |
On Mon, 12 May 2008 20:54:34 -0700 Ulrich Drepper <drepper@redhat.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Andrew Morton wrote:
> >> + BUILD_BUG_ON(SOCK_NONBLOCK & SOCK_TYPE_MASK);
> >
> > The fifth assertion triggers with alpha allmodconfig.
>
> This means the simple approach won't work for alpha.
>
> The question is how to solve it? I suggest the following:
>
> - - define SOCK_NONBLOCK to some value > 16 in include/asm-alpha/socket.h
>
> - - add #ifndef SOCK_NONBLOCK around the definition in include/linux/net.h
With a comment, please.
> - - in sys_socket, sys_socketpair, sys_paccept
>
> int fflags = flags;
> if (SOCK_NONBLOCK != O_NONBLOCK && (flags & SOCK_NONBLOCK)) {
> fflags &= ~SOCK_NONBLOCK;
> fflags |= O_NONBLOCK;
> }
>
> and use fflags instead of flags in the places where we pass it on.
>
> This has no costs on platforms other than alpha.
>
> Shall I sent a patch?
Sounds reasonable.
|  |