diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2017-09-05 12:07:05 +0300 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2017-09-05 12:07:05 +0300 |
| commit | b11918bdbe79bd002d00a9f1d78958167ccfad99 (patch) | |
| tree | 931c5680a242041f49b07b20823012ae9bdb98c2 /include/linux/kernel.h | |
| parent | d3c7ad2432115b0b53fb838c14b8ad9ad72f7254 (diff) | |
| parent | 0152b29c89650654abf4f0e96bbf2566b85ae55d (diff) | |
| download | linux-b11918bdbe79bd002d00a9f1d78958167ccfad99.tar.xz | |
Merge branch 'for-4.14/battery' into for-linus
- support for batteries driven by HID input reports, from Dmitry Torokhov
Diffstat (limited to 'include/linux/kernel.h')
| -rw-r--r-- | include/linux/kernel.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/include/linux/kernel.h b/include/linux/kernel.h index 1c91f26e2996..bd6d96cf80b1 100644 --- a/include/linux/kernel.h +++ b/include/linux/kernel.h @@ -11,6 +11,7 @@ #include <linux/log2.h> #include <linux/typecheck.h> #include <linux/printk.h> +#include <linux/build_bug.h> #include <asm/byteorder.h> #include <uapi/linux/kernel.h> @@ -854,9 +855,12 @@ static inline void ftrace_dump(enum ftrace_dump_mode oops_dump_mode) { } * @member: the name of the member within the struct. * */ -#define container_of(ptr, type, member) ({ \ - const typeof( ((type *)0)->member ) *__mptr = (ptr); \ - (type *)( (char *)__mptr - offsetof(type,member) );}) +#define container_of(ptr, type, member) ({ \ + void *__mptr = (void *)(ptr); \ + BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \ + !__same_type(*(ptr), void), \ + "pointer type mismatch in container_of()"); \ + ((type *)(__mptr - offsetof(type, member))); }) /* Rebuild everything on CONFIG_FTRACE_MCOUNT_RECORD */ #ifdef CONFIG_FTRACE_MCOUNT_RECORD |
