Linus Torvalds 8d4fbcfbe0 Fix WARN_ON() on bitfield ops
Alexey Dobriyan noticed that the new WARN_ON() semantics that were
introduced by commit 684f978347deb42d180373ac4c427f82ef963171 (to also
return the value to be warned on) didn't compile when given a bitfield,
because the typeof doesn't work for bitfields.

So instead of the typeof trick, use an "int" variable together with a
"!!(x)" expression, as suggested by Al Viro.

To make matters more interesting, Paul Mackerras points out that that is
sub-optimal on Power, but the old asm-coded comparison seems to be buggy
anyway on 32-bit Power if the conditional was 64-bit, so I think there
are more problems there.

Regardless, the new WARN_ON() semantics may have been a bad idea.  But
this at least avoids the more serious complications.

Cc: Alexey Dobriyan <adobriyan@sw.ru>
Cc: Herbert Xu <herbert@gondor.apana.org.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Al Viro <viro@ftp.linux.org.uk>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2007-07-31 21:12:07 -07:00
..
2006-01-09 14:49:54 +11:00
2007-07-31 21:12:07 -07:00
2005-09-28 15:42:53 +10:00
2006-12-04 20:39:30 +11:00
2007-02-16 14:00:19 +11:00
2007-07-11 16:02:11 -07:00
2007-03-09 15:03:25 +11:00
2007-03-22 22:52:55 +11:00
2007-07-17 10:23:11 -07:00
2007-05-07 20:31:14 +10:00
2007-07-19 10:04:44 -07:00
2007-05-08 11:15:20 -07:00
2007-06-28 19:16:38 +10:00
2006-02-15 15:32:22 -08:00
2006-12-11 16:35:07 +11:00
2007-07-22 21:30:59 +10:00
2007-07-20 13:41:56 +10:00
2007-07-20 14:25:22 +10:00
2007-05-07 20:31:14 +10:00
2007-05-08 11:15:05 -07:00
2006-06-30 18:20:44 +02:00
2007-04-24 21:31:51 +10:00
2007-05-11 08:29:34 -07:00
2007-01-11 18:18:22 -08:00
2007-06-28 19:19:20 +10:00
2007-06-14 22:29:57 +10:00
2005-10-31 13:37:12 +11:00
2005-11-03 16:24:25 +11:00
2006-12-04 20:40:52 +11:00
2005-11-03 16:02:23 +11:00
2007-05-02 20:04:30 +10:00
2006-10-25 11:54:18 +10:00
2007-03-05 07:57:51 -08:00
2007-05-08 11:54:20 +10:00
2005-11-03 16:59:17 +11:00