diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-18 19:58:00 -0400 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-03-18 19:58:00 -0400 |
commit | d608d71cd6d19792487d08333d63c7ff20294694 (patch) | |
tree | c9cad98ad9cbba487d32812d59c456ed774d6ffb /include/linux/compiler.h | |
parent | ed72d37a33fdf43dc47787fe220532cdec9da528 (diff) | |
parent | a937536b868b8369b98967929045f1df54234323 (diff) |
Merge tag 'v3.9-rc3' into v4l_for_linus
Linux 3.9-rc3
* tag 'v3.9-rc3': (11231 commits)
Linux 3.9-rc3
perf,x86: fix link failure for non-Intel configs
perf,x86: fix wrmsr_on_cpu() warning on suspend/resume
Btrfs: fix warning of free_extent_map
perf,x86: fix kernel crash with PEBS/BTS after suspend/resume
ALSA: hda - Fix missing EAPD/GPIO setup for Cirrus codecs
sound: sequencer: cap array index in seq_chn_common_event()
mfd: twl4030-madc: Remove __exit_p annotation
ALSA: hda/ca0132 - Remove extra setting of dsp_state.
ALSA: hda/ca0132 - Check download state of DSP.
ALSA: hda/ca0132 - Check if dspload_image succeeded.
mm/fremap.c: fix possible oops on error path
list: Fix double fetch of pointer in hlist_entry_safe()
Btrfs: fix warning when creating snapshots
Btrfs: return as soon as possible when edquot happens
Btrfs: return EIO if we have extent tree corruption
btrfs: use rcu_barrier() to wait for bdev puts at unmount
Btrfs: remove btrfs_try_spin_lock
Btrfs: get better concurrency for snapshot-aware defrag work
hwmon: (pmbus/ltc2978) Fix temperature reporting
...
Diffstat (limited to 'include/linux/compiler.h')
-rw-r--r-- | include/linux/compiler.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/include/linux/compiler.h b/include/linux/compiler.h index dd852b73b286..10b8f23fab0f 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h | |||
@@ -307,10 +307,36 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect); | |||
307 | #endif | 307 | #endif |
308 | #ifndef __compiletime_error | 308 | #ifndef __compiletime_error |
309 | # define __compiletime_error(message) | 309 | # define __compiletime_error(message) |
310 | # define __compiletime_error_fallback(condition) \ | ||
311 | do { ((void)sizeof(char[1 - 2 * condition])); } while (0) | ||
312 | #else | ||
313 | # define __compiletime_error_fallback(condition) do { } while (0) | ||
310 | #endif | 314 | #endif |
311 | #ifndef __linktime_error | 315 | |
312 | # define __linktime_error(message) | 316 | #define __compiletime_assert(condition, msg, prefix, suffix) \ |
313 | #endif | 317 | do { \ |
318 | bool __cond = !(condition); \ | ||
319 | extern void prefix ## suffix(void) __compiletime_error(msg); \ | ||
320 | if (__cond) \ | ||
321 | prefix ## suffix(); \ | ||
322 | __compiletime_error_fallback(__cond); \ | ||
323 | } while (0) | ||
324 | |||
325 | #define _compiletime_assert(condition, msg, prefix, suffix) \ | ||
326 | __compiletime_assert(condition, msg, prefix, suffix) | ||
327 | |||
328 | /** | ||
329 | * compiletime_assert - break build and emit msg if condition is false | ||
330 | * @condition: a compile-time constant condition to check | ||
331 | * @msg: a message to emit if condition is false | ||
332 | * | ||
333 | * In tradition of POSIX assert, this macro will break the build if the | ||
334 | * supplied condition is *false*, emitting the supplied error message if the | ||
335 | * compiler has support to do so. | ||
336 | */ | ||
337 | #define compiletime_assert(condition, msg) \ | ||
338 | _compiletime_assert(condition, msg, __compiletime_assert_, __LINE__) | ||
339 | |||
314 | /* | 340 | /* |
315 | * Prevent the compiler from merging or refetching accesses. The compiler | 341 | * Prevent the compiler from merging or refetching accesses. The compiler |
316 | * is also forbidden from reordering successive instances of ACCESS_ONCE(), | 342 | * is also forbidden from reordering successive instances of ACCESS_ONCE(), |