public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	stable@vger.kernel.org, Daniel Axtens <dja@axtens.net>,
	Andrew Morton <akpm@linux-foundation.org>,
	David Gow <davidgow@google.com>,
	Dmitry Vyukov <dvyukov@google.com>,
	Daniel Micay <danielmicay@gmail.com>,
	Andrey Ryabinin <aryabinin@virtuozzo.com>,
	Alexander Potapenko <glider@google.com>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Sasha Levin <sashal@kernel.org>
Subject: [PATCH 4.14 139/190] string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
Date: Fri, 19 Jun 2020 16:33:04 +0200	[thread overview]
Message-ID: <20200619141640.570157748@linuxfoundation.org> (raw)
In-Reply-To: <20200619141633.446429600@linuxfoundation.org>

From: Daniel Axtens <dja@axtens.net>

[ Upstream commit 47227d27e2fcb01a9e8f5958d8997cf47a820afc ]

The memcmp KASAN self-test fails on a kernel with both KASAN and
FORTIFY_SOURCE.

When FORTIFY_SOURCE is on, a number of functions are replaced with
fortified versions, which attempt to check the sizes of the operands.
However, these functions often directly invoke __builtin_foo() once they
have performed the fortify check.  Using __builtins may bypass KASAN
checks if the compiler decides to inline it's own implementation as
sequence of instructions, rather than emit a function call that goes out
to a KASAN-instrumented implementation.

Why is only memcmp affected?
============================

Of the string and string-like functions that kasan_test tests, only memcmp
is replaced by an inline sequence of instructions in my testing on x86
with gcc version 9.2.1 20191008 (Ubuntu 9.2.1-9ubuntu2).

I believe this is due to compiler heuristics.  For example, if I annotate
kmalloc calls with the alloc_size annotation (and disable some fortify
compile-time checking!), the compiler will replace every memset except the
one in kmalloc_uaf_memset with inline instructions.  (I have some WIP
patches to add this annotation.)

Does this affect other functions in string.h?
=============================================

Yes. Anything that uses __builtin_* rather than __real_* could be
affected. This looks like:

 - strncpy
 - strcat
 - strlen
 - strlcpy maybe, under some circumstances?
 - strncat under some circumstances
 - memset
 - memcpy
 - memmove
 - memcmp (as noted)
 - memchr
 - strcpy

Whether a function call is emitted always depends on the compiler.  Most
bugs should get caught by FORTIFY_SOURCE, but the missed memcmp test shows
that this is not always the case.

Isn't FORTIFY_SOURCE disabled with KASAN?
========================================-

The string headers on all arches supporting KASAN disable fortify with
kasan, but only when address sanitisation is _also_ disabled.  For example
from x86:

 #if defined(CONFIG_KASAN) && !defined(__SANITIZE_ADDRESS__)
 /*
  * For files that are not instrumented (e.g. mm/slub.c) we
  * should use not instrumented version of mem* functions.
  */
 #define memcpy(dst, src, len) __memcpy(dst, src, len)
 #define memmove(dst, src, len) __memmove(dst, src, len)
 #define memset(s, c, n) __memset(s, c, n)

 #ifndef __NO_FORTIFY
 #define __NO_FORTIFY /* FORTIFY_SOURCE uses __builtin_memcpy, etc. */
 #endif

 #endif

This comes from commit 6974f0c4555e ("include/linux/string.h: add the
option of fortified string.h functions"), and doesn't work when KASAN is
enabled and the file is supposed to be sanitised - as with test_kasan.c

I'm pretty sure this is not wrong, but not as expansive it should be:

 * we shouldn't use __builtin_memcpy etc in files where we don't have
   instrumentation - it could devolve into a function call to memcpy,
   which will be instrumented. Rather, we should use __memcpy which
   by convention is not instrumented.

 * we also shouldn't be using __builtin_memcpy when we have a KASAN
   instrumented file, because it could be replaced with inline asm
   that will not be instrumented.

What is correct behaviour?
==========================

Firstly, there is some overlap between fortification and KASAN: both
provide some level of _runtime_ checking. Only fortify provides
compile-time checking.

KASAN and fortify can pick up different things at runtime:

 - Some fortify functions, notably the string functions, could easily be
   modified to consider sub-object sizes (e.g. members within a struct),
   and I have some WIP patches to do this. KASAN cannot detect these
   because it cannot insert poision between members of a struct.

 - KASAN can detect many over-reads/over-writes when the sizes of both
   operands are unknown, which fortify cannot.

So there are a couple of options:

 1) Flip the test: disable fortify in santised files and enable it in
    unsanitised files. This at least stops us missing KASAN checking, but
    we lose the fortify checking.

 2) Make the fortify code always call out to real versions. Do this only
    for KASAN, for fear of losing the inlining opportunities we get from
    __builtin_*.

(We can't use kasan_check_{read,write}: because the fortify functions are
_extern inline_, you can't include _static_ inline functions without a
compiler warning. kasan_check_{read,write} are static inline so we can't
use them even when they would otherwise be suitable.)

Take approach 2 and call out to real versions when KASAN is enabled.

Use __underlying_foo to distinguish from __real_foo: __real_foo always
refers to the kernel's implementation of foo, __underlying_foo could be
either the kernel implementation or the __builtin_foo implementation.

This is sometimes enough to make the memcmp test succeed with
FORTIFY_SOURCE enabled. It is at least enough to get the function call
into the module. One more fix is needed to make it reliable: see the next
patch.

Fixes: 6974f0c4555e ("include/linux/string.h: add the option of fortified string.h functions")
Signed-off-by: Daniel Axtens <dja@axtens.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Tested-by: David Gow <davidgow@google.com>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Cc: Daniel Micay <danielmicay@gmail.com>
Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Link: http://lkml.kernel.org/r/20200423154503.5103-3-dja@axtens.net
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
 include/linux/string.h |   60 +++++++++++++++++++++++++++++++++++++++----------
 1 file changed, 48 insertions(+), 12 deletions(-)

--- a/include/linux/string.h
+++ b/include/linux/string.h
@@ -238,6 +238,31 @@ void __read_overflow3(void) __compiletim
 void __write_overflow(void) __compiletime_error("detected write beyond size of object passed as 1st parameter");
 
 #if !defined(__NO_FORTIFY) && defined(__OPTIMIZE__) && defined(CONFIG_FORTIFY_SOURCE)
+
+#ifdef CONFIG_KASAN
+extern void *__underlying_memchr(const void *p, int c, __kernel_size_t size) __RENAME(memchr);
+extern int __underlying_memcmp(const void *p, const void *q, __kernel_size_t size) __RENAME(memcmp);
+extern void *__underlying_memcpy(void *p, const void *q, __kernel_size_t size) __RENAME(memcpy);
+extern void *__underlying_memmove(void *p, const void *q, __kernel_size_t size) __RENAME(memmove);
+extern void *__underlying_memset(void *p, int c, __kernel_size_t size) __RENAME(memset);
+extern char *__underlying_strcat(char *p, const char *q) __RENAME(strcat);
+extern char *__underlying_strcpy(char *p, const char *q) __RENAME(strcpy);
+extern __kernel_size_t __underlying_strlen(const char *p) __RENAME(strlen);
+extern char *__underlying_strncat(char *p, const char *q, __kernel_size_t count) __RENAME(strncat);
+extern char *__underlying_strncpy(char *p, const char *q, __kernel_size_t size) __RENAME(strncpy);
+#else
+#define __underlying_memchr	__builtin_memchr
+#define __underlying_memcmp	__builtin_memcmp
+#define __underlying_memcpy	__builtin_memcpy
+#define __underlying_memmove	__builtin_memmove
+#define __underlying_memset	__builtin_memset
+#define __underlying_strcat	__builtin_strcat
+#define __underlying_strcpy	__builtin_strcpy
+#define __underlying_strlen	__builtin_strlen
+#define __underlying_strncat	__builtin_strncat
+#define __underlying_strncpy	__builtin_strncpy
+#endif
+
 __FORTIFY_INLINE char *strncpy(char *p, const char *q, __kernel_size_t size)
 {
 	size_t p_size = __builtin_object_size(p, 0);
@@ -245,14 +270,14 @@ __FORTIFY_INLINE char *strncpy(char *p,
 		__write_overflow();
 	if (p_size < size)
 		fortify_panic(__func__);
-	return __builtin_strncpy(p, q, size);
+	return __underlying_strncpy(p, q, size);
 }
 
 __FORTIFY_INLINE char *strcat(char *p, const char *q)
 {
 	size_t p_size = __builtin_object_size(p, 0);
 	if (p_size == (size_t)-1)
-		return __builtin_strcat(p, q);
+		return __underlying_strcat(p, q);
 	if (strlcat(p, q, p_size) >= p_size)
 		fortify_panic(__func__);
 	return p;
@@ -266,7 +291,7 @@ __FORTIFY_INLINE __kernel_size_t strlen(
 	/* Work around gcc excess stack consumption issue */
 	if (p_size == (size_t)-1 ||
 	    (__builtin_constant_p(p[p_size - 1]) && p[p_size - 1] == '\0'))
-		return __builtin_strlen(p);
+		return __underlying_strlen(p);
 	ret = strnlen(p, p_size);
 	if (p_size <= ret)
 		fortify_panic(__func__);
@@ -299,7 +324,7 @@ __FORTIFY_INLINE size_t strlcpy(char *p,
 			__write_overflow();
 		if (len >= p_size)
 			fortify_panic(__func__);
-		__builtin_memcpy(p, q, len);
+		__underlying_memcpy(p, q, len);
 		p[len] = '\0';
 	}
 	return ret;
@@ -312,12 +337,12 @@ __FORTIFY_INLINE char *strncat(char *p,
 	size_t p_size = __builtin_object_size(p, 0);
 	size_t q_size = __builtin_object_size(q, 0);
 	if (p_size == (size_t)-1 && q_size == (size_t)-1)
-		return __builtin_strncat(p, q, count);
+		return __underlying_strncat(p, q, count);
 	p_len = strlen(p);
 	copy_len = strnlen(q, count);
 	if (p_size < p_len + copy_len + 1)
 		fortify_panic(__func__);
-	__builtin_memcpy(p + p_len, q, copy_len);
+	__underlying_memcpy(p + p_len, q, copy_len);
 	p[p_len + copy_len] = '\0';
 	return p;
 }
@@ -329,7 +354,7 @@ __FORTIFY_INLINE void *memset(void *p, i
 		__write_overflow();
 	if (p_size < size)
 		fortify_panic(__func__);
-	return __builtin_memset(p, c, size);
+	return __underlying_memset(p, c, size);
 }
 
 __FORTIFY_INLINE void *memcpy(void *p, const void *q, __kernel_size_t size)
@@ -344,7 +369,7 @@ __FORTIFY_INLINE void *memcpy(void *p, c
 	}
 	if (p_size < size || q_size < size)
 		fortify_panic(__func__);
-	return __builtin_memcpy(p, q, size);
+	return __underlying_memcpy(p, q, size);
 }
 
 __FORTIFY_INLINE void *memmove(void *p, const void *q, __kernel_size_t size)
@@ -359,7 +384,7 @@ __FORTIFY_INLINE void *memmove(void *p,
 	}
 	if (p_size < size || q_size < size)
 		fortify_panic(__func__);
-	return __builtin_memmove(p, q, size);
+	return __underlying_memmove(p, q, size);
 }
 
 extern void *__real_memscan(void *, int, __kernel_size_t) __RENAME(memscan);
@@ -385,7 +410,7 @@ __FORTIFY_INLINE int memcmp(const void *
 	}
 	if (p_size < size || q_size < size)
 		fortify_panic(__func__);
-	return __builtin_memcmp(p, q, size);
+	return __underlying_memcmp(p, q, size);
 }
 
 __FORTIFY_INLINE void *memchr(const void *p, int c, __kernel_size_t size)
@@ -395,7 +420,7 @@ __FORTIFY_INLINE void *memchr(const void
 		__read_overflow();
 	if (p_size < size)
 		fortify_panic(__func__);
-	return __builtin_memchr(p, c, size);
+	return __underlying_memchr(p, c, size);
 }
 
 void *__real_memchr_inv(const void *s, int c, size_t n) __RENAME(memchr_inv);
@@ -426,11 +451,22 @@ __FORTIFY_INLINE char *strcpy(char *p, c
 	size_t p_size = __builtin_object_size(p, 0);
 	size_t q_size = __builtin_object_size(q, 0);
 	if (p_size == (size_t)-1 && q_size == (size_t)-1)
-		return __builtin_strcpy(p, q);
+		return __underlying_strcpy(p, q);
 	memcpy(p, q, strlen(q) + 1);
 	return p;
 }
 
+/* Don't use these outside the FORITFY_SOURCE implementation */
+#undef __underlying_memchr
+#undef __underlying_memcmp
+#undef __underlying_memcpy
+#undef __underlying_memmove
+#undef __underlying_memset
+#undef __underlying_strcat
+#undef __underlying_strcpy
+#undef __underlying_strlen
+#undef __underlying_strncat
+#undef __underlying_strncpy
 #endif
 
 /**



  parent reply	other threads:[~2020-06-19 16:34 UTC|newest]

Thread overview: 197+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-19 14:30 [PATCH 4.14 000/190] 4.14.185-rc1 review Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 001/190] ipv6: fix IPV6_ADDRFORM operation logic Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 002/190] vxlan: Avoid infinite loop when suppressing NS messages with invalid options Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 003/190] make user_access_begin() do access_ok() Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 004/190] Fix acccess_ok() on alpha and SH Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 005/190] arch/openrisc: Fix issues with access_ok() Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 006/190] x86: uaccess: Inhibit speculation past access_ok() in user_access_begin() Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 007/190] lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user() Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 008/190] serial: imx: Fix handling of TC irq in combination with DMA Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 009/190] crypto: talitos - fix ECB and CBC algs ivsize Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 010/190] ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 011/190] sched/fair: Dont NUMA balance for kthreads Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 012/190] Input: synaptics - add a second working PNP_ID for Lenovo T470s Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 013/190] drivers/net/ibmvnic: Update VNIC protocol version reporting Greg Kroah-Hartman
2020-06-19 14:30 ` [PATCH 4.14 014/190] powerpc/xive: Clear the page tables for the ESB IO mapping Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 015/190] ath9k_htc: Silence undersized packet warnings Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 016/190] perf probe: Accept the instance number of kretprobe event Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 017/190] mm: add kvfree_sensitive() for freeing sensitive data objects Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 018/190] x86_64: Fix jiffies ODR violation Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 019/190] x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 020/190] x86/speculation: Prevent rogue cross-process SSBD shutdown Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 021/190] x86/reboot/quirks: Add MacBook6,1 reboot quirk Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 022/190] efi/efivars: Add missing kobject_put() in sysfs entry creation error path Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 023/190] ALSA: es1688: Add the missed snd_card_free() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 024/190] ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 025/190] ALSA: usb-audio: Fix inconsistent card PM state after resume Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 026/190] ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 027/190] ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 028/190] ACPI: GED: add support for _Exx / _Lxx handler methods Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 029/190] ACPI: PM: Avoid using power resources if there are none for D0 Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 030/190] cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 031/190] nilfs2: fix null pointer dereference at nilfs_segctor_do_construct() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 032/190] spi: bcm2835aux: Fix controller unregister order Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 033/190] spi: bcm-qspi: when tx/rx buffer is NULL set to 0 Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 034/190] crypto: cavium/nitrox - Fix nitrox_get_first_device() when ndevlist is fully iterated Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 035/190] ALSA: pcm: disallow linking stream to itself Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 036/190] kvm: x86: Fix L1TF mitigation for shadow MMU Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 037/190] KVM: x86/mmu: Consolidate "is MMIO SPTE" code Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 038/190] KVM: x86: only do L1TF workaround on affected processors Greg Kroah-Hartman
2020-06-24 12:00   ` Rantala, Tommi T. (Nokia - FI/Espoo)
2020-06-24 14:15     ` Sasha Levin
2020-06-26  7:05       ` Rantala, Tommi T. (Nokia - FI/Espoo)
2020-06-19 14:31 ` [PATCH 4.14 039/190] x86/speculation: Change misspelled STIPB to STIBP Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 040/190] x86/speculation: Add support for STIBP always-on preferred mode Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 041/190] x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced IBRS Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 042/190] x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 043/190] spi: dw: fix possible race condition Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 044/190] spi: dw: Fix controller unregister order Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 045/190] spi: No need to assign dummy value in spi_unregister_controller() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 046/190] spi: Fix controller unregister order Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 047/190] spi: pxa2xx: " Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 048/190] spi: bcm2835: " Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 049/190] crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 050/190] crypto: virtio: Fix src/dst scatterlist calculation in __virtio_crypto_skcipher_do_req() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 051/190] crypto: virtio: Fix dest length " Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 052/190] selftests/net: in rxtimestamp getopt_long needs terminating null entry Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 053/190] ovl: initialize error in ovl_copy_xattr Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 054/190] proc: Use new_inode not new_inode_pseudo Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 055/190] video: fbdev: w100fb: Fix a potential double free Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 056/190] KVM: nSVM: fix condition for filtering async PF Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 057/190] KVM: nSVM: leave ASID aside in copy_vmcb_control_area Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 058/190] KVM: nVMX: Consult only the "basic" exit reason when routing nested exit Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 059/190] KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data) Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 060/190] KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 061/190] KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 062/190] ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 063/190] ath9k: Fix use-after-free Write in ath9k_htc_rx_msg Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 064/190] ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 065/190] ath9k: Fix general protection fault " Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 066/190] Smack: slab-out-of-bounds in vsscanf Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 067/190] mm/slub: fix a memory leak in sysfs_slab_add() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 068/190] fat: dont allow to mount if the FAT length == 0 Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 069/190] perf: Add cond_resched() to task_function_call() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 070/190] agp/intel: Reinforce the barrier after GTT updates Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 071/190] mmc: sdhci-msm: Clear tuning done flag while hs400 tuning Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 072/190] mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card() Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 073/190] can: kvaser_usb: kvaser_usb_leaf: Fix some info-leaks to USB devices Greg Kroah-Hartman
2020-06-19 14:31 ` [PATCH 4.14 074/190] xen/pvcalls-back: test for errors when calling backend_connect() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 075/190] ACPI: GED: use correct trigger type field in _Exx / _Lxx handling Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 076/190] drm: bridge: adv7511: Extend list of audio sample rates Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 077/190] crypto: ccp -- dont "select" CONFIG_DMADEVICES Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 078/190] media: si2157: Better check for running tuner in init Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 079/190] objtool: Ignore empty alternatives Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 080/190] spi: pxa2xx: Apply CS clk quirk to BXT Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 081/190] net: ena: fix error returning in ena_com_get_hash_function() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 082/190] spi: dw: Zero DMA Tx and Rx configurations on stack Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 083/190] ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 084/190] MIPS: Loongson: Build ATI Radeon GPU driver as module Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 085/190] Bluetooth: Add SCO fallback for invalid LMP parameters error Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 086/190] kgdb: Prevent infinite recursive entries to the debugger Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 087/190] spi: dw: Enable interrupts in accordance with DMA xfer mode Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 088/190] clocksource: dw_apb_timer: Make CPU-affiliation being optional Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 089/190] clocksource: dw_apb_timer_of: Fix missing clockevent timers Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 090/190] btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 091/190] ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 092/190] spi: dw: Fix Rx-only DMA transfers Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 093/190] x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 094/190] net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 095/190] staging: android: ion: use vmap instead of vm_map_ram Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 096/190] brcmfmac: fix wrong location to get firmware feature Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 097/190] tools api fs: Make xxx__mountpoint() more scalable Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 098/190] e1000: Distribute switch variables for initialization Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 099/190] dt-bindings: display: mediatek: control dpi pins mode to avoid leakage Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 100/190] audit: fix a net reference leak in audit_send_reply() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 101/190] media: dvb: return -EREMOTEIO on i2c transfer failure Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 102/190] media: platform: fcp: Set appropriate DMA parameters Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 103/190] MIPS: Make sparse_init() using top-down allocation Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 104/190] audit: fix a net reference leak in audit_list_rules_send() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 105/190] netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 106/190] net: bcmgenet: set Rx mode before starting netif Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 107/190] lib/mpi: Fix 64-bit MIPS build with Clang Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 108/190] exit: Move preemption fixup up, move blocking operations down Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 109/190] net: lpc-enet: fix error return code in lpc_mii_init() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 110/190] media: cec: silence shift wrapping warning in __cec_s_log_addrs() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 111/190] net: allwinner: Fix use correct return type for ndo_start_xmit() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 112/190] powerpc/spufs: fix copy_to_user while atomic Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 113/190] Crypto/chcr: fix for ccm(aes) failed test Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 114/190] MIPS: Truncate link address into 32bit for 32bit kernel Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 115/190] mips: cm: Fix an invalid error code of INTVN_*_ERR Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 116/190] kgdb: Fix spurious true from in_dbg_master() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 117/190] nvme: refine the Qemu Identify CNS quirk Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 118/190] wcn36xx: Fix error handling path in wcn36xx_probe() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 119/190] net: qed*: Reduce RX and TX default ring count when running inside kdump kernel Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 120/190] md: dont flush workqueue unconditionally in md_open Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 121/190] rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 122/190] mwifiex: Fix memory corruption in dump_station Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 123/190] x86/boot: Correct relocation destination on old linkers Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 124/190] mips: MAAR: Use more precise address mask Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 125/190] mips: Add udelay lpj numbers adjustment Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 126/190] x86/mm: Stop printing BRK addresses Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 127/190] m68k: mac: Dont call via_flush_cache() on Mac IIfx Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 128/190] macvlan: Skip loopback packets in RX handler Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 129/190] PCI: Dont disable decoding when mmio_always_on is set Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 130/190] MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe() Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 131/190] mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 132/190] staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 133/190] mmc: via-sdmmc: " Greg Kroah-Hartman
2020-06-19 14:32 ` [PATCH 4.14 134/190] ixgbe: fix signed-integer-overflow warning Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 135/190] mmc: sdhci-esdhc-imx: fix the mask for tuning start point Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 136/190] spi: dw: Return any value retrieved from the dma_transfer callback Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 137/190] cpuidle: Fix three reference count leaks Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 138/190] platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32() Greg Kroah-Hartman
2020-06-19 14:33 ` Greg Kroah-Hartman [this message]
2020-06-19 14:33 ` [PATCH 4.14 140/190] btrfs: send: emit file capabilities after chown Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 141/190] mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 142/190] ima: Fix ima digest hash table key calculation Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 143/190] ima: Directly assign the ima_default_policy pointer to ima_rules Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 144/190] evm: Fix possible memory leak in evm_calc_hmac_or_hash() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 145/190] ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 146/190] ext4: fix error pointer dereference Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 147/190] ext4: fix race between ext4_sync_parent() and rename() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 148/190] PCI: Disable MSI for Freescale Layerscape PCIe RC mode Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 149/190] PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0 Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 150/190] PCI: Avoid FLR for AMD Starship " Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 151/190] PCI: Add ACS quirk for iProc PAXB Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 152/190] PCI: Add ACS quirk for Ampere root ports Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 153/190] PCI: Make ACS quirk implementations more uniform Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 154/190] vga_switcheroo: Deduplicate power state tracking Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 155/190] vga_switcheroo: Use device link for HDA controller Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 156/190] PCI: Generalize multi-function power dependency device links Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 157/190] PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 158/190] PCI: Unify ACS quirk desired vs provided checking Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 159/190] btrfs: fix error handling when submitting direct I/O bio Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 160/190] btrfs: fix wrong file range cleanup after an error filling dealloc range Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 161/190] blk-mq: move _blk_mq_update_nr_hw_queues synchronize_rcu call Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 162/190] PCI: Program MPS for RCiEP devices Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 163/190] e1000e: Disable TSO for buffer overrun workaround Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 164/190] e1000e: Relax condition to trigger reset for ME workaround Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 165/190] carl9170: remove P2P_GO support Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 166/190] media: go7007: fix a miss of snd_card_free Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 167/190] b43legacy: Fix case where channel status is corrupted Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 168/190] b43: Fix connection problem with WPA3 Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 169/190] b43_legacy: " Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 170/190] media: ov5640: fix use of destroyed mutex Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 171/190] igb: Report speed and duplex as unknown when device is runtime suspended Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 172/190] power: vexpress: add suppress_bind_attrs to true Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 173/190] pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 174/190] sparc32: fix register window handling in genregs32_[gs]et() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 175/190] sparc64: fix misuses of access_process_vm() in genregs32_[sg]et() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 176/190] dm crypt: avoid truncating the logical block size Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 177/190] kernel/cpu_pm: Fix uninitted local in cpu_pm Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 178/190] ARM: tegra: Correct PL310 Auxiliary Control Register initialization Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 179/190] drivers/macintosh: Fix memleak in windfarm_pm112 driver Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 180/190] powerpc/64s: Dont let DT CPU features set FSCR_DSCR Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 181/190] powerpc/64s: Save FSCR to init_task.thread.fscr after feature init Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 182/190] kbuild: force to build vmlinux if CONFIG_MODVERSION=y Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 183/190] sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 184/190] sunrpc: clean up properly in gss_mech_unregister() Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 185/190] mtd: rawnand: brcmnand: fix hamming oob layout Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 186/190] mtd: rawnand: pasemi: Fix the probe error path Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 187/190] w1: omap-hdq: cleanup to add missing newline for some dev_dbg Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 188/190] perf probe: Do not show the skipped events Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 189/190] perf probe: Fix to check blacklist address correctly Greg Kroah-Hartman
2020-06-19 14:33 ` [PATCH 4.14 190/190] perf symbols: Fix debuginfo search for Ubuntu Greg Kroah-Hartman
2020-06-19 23:46 ` [PATCH 4.14 000/190] 4.14.185-rc1 review Guenter Roeck
2020-06-20  4:10 ` Daniel Díaz
2020-06-20  9:50 ` Jon Hunter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200619141640.570157748@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=akpm@linux-foundation.org \
    --cc=aryabinin@virtuozzo.com \
    --cc=danielmicay@gmail.com \
    --cc=davidgow@google.com \
    --cc=dja@axtens.net \
    --cc=dvyukov@google.com \
    --cc=glider@google.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox