Re: [PATCH 18/18] flag parameters: check magic constants
From: Ulrich Drepper <hidden>
Date: 2008-05-13 03:57:42
Also in:
lkml
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Andrew Morton wrote:
quoted
+ 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
- - 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?
- --
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org
iEYEARECAAYFAkgpEPoACgkQ2ijCOnn/RHQ38gCgyVOI/urGeoIr7CFIfs8C7OyR
I80AniPGGWyxZYUQg0pQlySQHqX/UYlx
=5fA2
-----END PGP SIGNATURE-----