-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAlxSn+YACgkQONu9yGCS aT6Y+RAAobwupy1ILjnakYdilDMDYPY5KgvpVLIIdAWKzackhemjZwbqQU2E6TYP T7YblQ9PZpoFfLYzQIzLI12a7F+YfxEKL3Z44R0BHw/q/nXqyz9T/adrmLaVWQVf Ue7+HJDfSjZV7bz2fwj1Sy3ioSsqrpEYrek5RZbK/QmoDgzoyfWUqZtyaIlnAR3n yQeHX8xZFzmnPOr+0SWjGtVLMOIyb/Sg2awOc4Q5rSyFM+FbB01P2rXfT92eIi0U FaJp/CZmdQq0t6oHZps/8sJQYjqC30zeuzHzXMpG/YnXxR2RNyclqeCmHp5K6l8S 2pJzQddY+pgReWXnqwM+PvsTKcPF1kFx0v2X77QjjnZvRANIiTJKhoLJTGv+5aqj n+l/z1Mz2o99gl16lRRwOurxHL+PzyGlEQiNJPAFScdKACX+0UYFMlcnXLG3EEwH n55Z1VnUAZW9Q7z5gfoEEKFTn1EFcFrDdZAsxA9VB3Q4hQUCSf0XqrIs3BVKL8e0 H6NE4LMvA3MXf8/yLocHDkknVGV6LuCG9LDWGVG5vgxTcl6/borPojd0pMuqXbQR DfUc9OHW9t4Y+jxvUuF9TMoS3uyPD9ozIqUg0XK8qvYEi5pjvbmQTEJ4jA4Ct+Wr plkNirjfh/DsVR1iaJL0vLu45uub4/RCtZ8+BpJtFYpvA7H03M8= =XVWw -----END PGP SIGNATURE----- Merge 4.9.154 into android-4.9 Changes in 4.9.154 net: bridge: Fix ethernet header pointer before check skb forwardable net: Fix usage of pskb_trim_rcsum openvswitch: Avoid OOB read when parsing flow nlattrs vhost: log dirty page correctly net: ipv4: Fix memory leak in network namespace dismantle net_sched: refetch skb protocol for each filter ipfrag: really prevent allocation on netns exit USB: serial: simple: add Motorola Tetra TPG2200 device id USB: serial: pl2303: add new PID to support PL2303TB ASoC: atom: fix a missing check of snd_pcm_lib_malloc_pages ASoC: rt5514-spi: Fix potential NULL pointer dereference ARCv2: lib: memeset: fix doing prefetchw outside of buffer ARC: perf: map generic branches to correct hardware condition s390/early: improve machine detection s390/smp: fix CPU hotplug deadlock with CPU rescan char/mwave: fix potential Spectre v1 vulnerability staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1 tty: Handle problem if line discipline does not have receive_buf uart: Fix crash in uart_write and uart_put_char tty/n_hdlc: fix __might_sleep warning CIFS: Fix possible hang during async MTU reads and writes Input: xpad - add support for SteelSeries Stratus Duo compiler.h: enable builtin overflow checkers and add fallback code Input: uinput - fix undefined behavior in uinput_validate_absinfo() acpi/nfit: Block function zero DSMs acpi/nfit: Fix command-supported detection dm thin: fix passdown_double_checking_shared_status() KVM: x86: Fix single-step debugging x86/selftests/pkeys: Fork() to check for state being preserved x86/kaslr: Fix incorrect i8254 outb() parameters can: dev: __can_get_echo_skb(): fix bogous check for non-existing skb by removing it can: bcm: check timer values before ktime conversion vt: invoke notifier on screen size change perf unwind: Unwind with libdw doesn't take symfs into account perf unwind: Take pgoff into account when reporting elf to libdwfl irqchip/gic-v3-its: Align PCI Multi-MSI allocation on their size s390/smp: Fix calling smp_call_ipl_cpu() from ipl CPU nvmet-rdma: Add unlikely for response allocated check nvmet-rdma: fix null dereference under heavy load f2fs: read page index before freeing btrfs: fix error handling in btrfs_dev_replace_start btrfs: dev-replace: go back to suspended state if target device is missing Linux 4.9.154 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
56 lines
1.7 KiB
C
56 lines
1.7 KiB
C
#ifndef __LINUX_COMPILER_H
|
|
#error "Please don't include <linux/compiler-clang.h> directly, include <linux/compiler.h> instead."
|
|
#endif
|
|
|
|
/* Some compiler specific definitions are overwritten here
|
|
* for Clang compiler
|
|
*/
|
|
|
|
#ifdef uninitialized_var
|
|
#undef uninitialized_var
|
|
#define uninitialized_var(x) x = *(&(x))
|
|
#endif
|
|
|
|
/* same as gcc, this was present in clang-2.6 so we can assume it works
|
|
* with any version that can compile the kernel
|
|
*/
|
|
#define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
|
|
|
|
#undef __no_sanitize_address
|
|
#define __no_sanitize_address __attribute__((no_sanitize("address")))
|
|
|
|
/* Clang doesn't have a way to turn it off per-function, yet. */
|
|
#ifdef __noretpoline
|
|
#undef __noretpoline
|
|
#endif
|
|
|
|
#ifdef CONFIG_LTO_CLANG
|
|
#ifdef CONFIG_FTRACE_MCOUNT_RECORD
|
|
#define __norecordmcount \
|
|
__attribute__((__section__(".text..ftrace")))
|
|
#endif
|
|
|
|
#define __nocfi __attribute__((no_sanitize("cfi")))
|
|
#endif
|
|
|
|
/* all clang versions usable with the kernel support KASAN ABI version 5 */
|
|
#define KASAN_ABI_VERSION 5
|
|
|
|
/* emulate gcc's __SANITIZE_ADDRESS__ flag */
|
|
#if __has_feature(address_sanitizer)
|
|
#define __SANITIZE_ADDRESS__
|
|
#endif
|
|
|
|
/*
|
|
* Not all versions of clang implement the the type-generic versions
|
|
* of the builtin overflow checkers. Fortunately, clang implements
|
|
* __has_builtin allowing us to avoid awkward version
|
|
* checks. Unfortunately, we don't know which version of gcc clang
|
|
* pretends to be, so the macro may or may not be defined.
|
|
*/
|
|
#undef COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW
|
|
#if __has_builtin(__builtin_mul_overflow) && \
|
|
__has_builtin(__builtin_add_overflow) && \
|
|
__has_builtin(__builtin_sub_overflow)
|
|
#define COMPILER_HAS_GENERIC_BUILTIN_OVERFLOW 1
|
|
#endif
|