Merge branch 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
authorLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Dec 2009 23:32:03 +0000 (15:32 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Sat, 5 Dec 2009 23:32:03 +0000 (15:32 -0800)
* 'x86-asm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  include/linux/compiler-gcc4.h: Fix build bug - gcc-4.0.2 doesn't understand __builtin_object_size
  x86/alternatives: No need for alternatives-asm.h to re-invent stuff already in asm.h
  x86/alternatives: Check replacementlen <= instrlen at build time
  x86, 64-bit: Set data segments to null after switching to 64-bit mode
  x86: Clean up the loadsegment() macro
  x86: Optimize loadsegment()
  x86: Add missing might_fault() checks to copy_{to,from}_user()
  x86-64: __copy_from_user_inatomic() adjustments
  x86: Remove unused thread_return label from switch_to()
  x86, 64-bit: Fix bstep_iret jump
  x86: Don't use the strict copy checks when branch profiling is in use
  x86, 64-bit: Move K8 B step iret fixup to fault entry asm
  x86: Generate cmpxchg build failures
  x86: Add a Kconfig option to turn the copy_from_user warnings into errors
  x86: Turn the copy_from_user check into an (optional) compile time warning
  x86: Use __builtin_memset and __builtin_memcpy for memset/memcpy
  x86: Use __builtin_object_size() to validate the buffer size for copy_from_user()

1  2 
arch/x86/Kconfig.debug
arch/x86/include/asm/cmpxchg_32.h
arch/x86/kernel/entry_64.S
arch/x86/kernel/head_64.S
include/linux/compiler-gcc4.h
include/linux/compiler.h

Simple merge
Simple merge
Simple merge
Simple merge
index ab3af40a53c6d6ffbc4b296fa46ed656e9099dc7,e6ef279ca20c4147f4cc8918c7c20ef9964d0ffa..94dea3ffbfa19576e2cd8bb59b56658465101b49
     the kernel context */
  #define __cold                        __attribute__((__cold__))
  
 +
 +#if __GNUC_MINOR__ >= 5
 +/*
 + * Mark a position in code as unreachable.  This can be used to
 + * suppress control flow warnings after asm blocks that transfer
 + * control elsewhere.
 + *
 + * Early snapshots of gcc 4.5 don't support this and we can't detect
 + * this in the preprocessor, but we can live with this because they're
 + * unreleased.  Really, we need to have autoconf for the kernel.
 + */
 +#define unreachable() __builtin_unreachable()
 +#endif
 +
  #endif
+ #if __GNUC_MINOR__ > 0
+ #define __compiletime_object_size(obj) __builtin_object_size(obj, 0)
+ #endif
+ #if __GNUC_MINOR__ >= 4
+ #define __compiletime_warning(message) __attribute__((warning(message)))
+ #define __compiletime_error(message) __attribute__((error(message)))
+ #endif
Simple merge