Re: [PATCH 18/18] flag parameters: check magic constants

From: Andrew Morton
Date: Tue May 13 2008 - 00:02:22 EST


On Mon, 12 May 2008 20:54:34 -0700 Ulrich Drepper <drepper@xxxxxxxxxx> 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.
--
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/