All of lore.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,
	Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>,
	Waiman Long <longman@redhat.com>,
	David Howells <dhowells@redhat.com>
Subject: [PATCH 5.6 162/166] KEYS: Dont write out to userspace while holding key semaphore
Date: Wed, 22 Apr 2020 11:58:09 +0200	[thread overview]
Message-ID: <20200422095105.769626163@linuxfoundation.org> (raw)
In-Reply-To: <20200422095047.669225321@linuxfoundation.org>

From: Waiman Long <longman@redhat.com>

commit d3ec10aa95819bff18a0d936b18884c7816d0914 upstream.

A lockdep circular locking dependency report was seen when running a
keyutils test:

[12537.027242] ======================================================
[12537.059309] WARNING: possible circular locking dependency detected
[12537.088148] 4.18.0-147.7.1.el8_1.x86_64+debug #1 Tainted: G OE    --------- -  -
[12537.125253] ------------------------------------------------------
[12537.153189] keyctl/25598 is trying to acquire lock:
[12537.175087] 000000007c39f96c (&mm->mmap_sem){++++}, at: __might_fault+0xc4/0x1b0
[12537.208365]
[12537.208365] but task is already holding lock:
[12537.234507] 000000003de5b58d (&type->lock_class){++++}, at: keyctl_read_key+0x15a/0x220
[12537.270476]
[12537.270476] which lock already depends on the new lock.
[12537.270476]
[12537.307209]
[12537.307209] the existing dependency chain (in reverse order) is:
[12537.340754]
[12537.340754] -> #3 (&type->lock_class){++++}:
[12537.367434]        down_write+0x4d/0x110
[12537.385202]        __key_link_begin+0x87/0x280
[12537.405232]        request_key_and_link+0x483/0xf70
[12537.427221]        request_key+0x3c/0x80
[12537.444839]        dns_query+0x1db/0x5a5 [dns_resolver]
[12537.468445]        dns_resolve_server_name_to_ip+0x1e1/0x4d0 [cifs]
[12537.496731]        cifs_reconnect+0xe04/0x2500 [cifs]
[12537.519418]        cifs_readv_from_socket+0x461/0x690 [cifs]
[12537.546263]        cifs_read_from_socket+0xa0/0xe0 [cifs]
[12537.573551]        cifs_demultiplex_thread+0x311/0x2db0 [cifs]
[12537.601045]        kthread+0x30c/0x3d0
[12537.617906]        ret_from_fork+0x3a/0x50
[12537.636225]
[12537.636225] -> #2 (root_key_user.cons_lock){+.+.}:
[12537.664525]        __mutex_lock+0x105/0x11f0
[12537.683734]        request_key_and_link+0x35a/0xf70
[12537.705640]        request_key+0x3c/0x80
[12537.723304]        dns_query+0x1db/0x5a5 [dns_resolver]
[12537.746773]        dns_resolve_server_name_to_ip+0x1e1/0x4d0 [cifs]
[12537.775607]        cifs_reconnect+0xe04/0x2500 [cifs]
[12537.798322]        cifs_readv_from_socket+0x461/0x690 [cifs]
[12537.823369]        cifs_read_from_socket+0xa0/0xe0 [cifs]
[12537.847262]        cifs_demultiplex_thread+0x311/0x2db0 [cifs]
[12537.873477]        kthread+0x30c/0x3d0
[12537.890281]        ret_from_fork+0x3a/0x50
[12537.908649]
[12537.908649] -> #1 (&tcp_ses->srv_mutex){+.+.}:
[12537.935225]        __mutex_lock+0x105/0x11f0
[12537.954450]        cifs_call_async+0x102/0x7f0 [cifs]
[12537.977250]        smb2_async_readv+0x6c3/0xc90 [cifs]
[12538.000659]        cifs_readpages+0x120a/0x1e50 [cifs]
[12538.023920]        read_pages+0xf5/0x560
[12538.041583]        __do_page_cache_readahead+0x41d/0x4b0
[12538.067047]        ondemand_readahead+0x44c/0xc10
[12538.092069]        filemap_fault+0xec1/0x1830
[12538.111637]        __do_fault+0x82/0x260
[12538.129216]        do_fault+0x419/0xfb0
[12538.146390]        __handle_mm_fault+0x862/0xdf0
[12538.167408]        handle_mm_fault+0x154/0x550
[12538.187401]        __do_page_fault+0x42f/0xa60
[12538.207395]        do_page_fault+0x38/0x5e0
[12538.225777]        page_fault+0x1e/0x30
[12538.243010]
[12538.243010] -> #0 (&mm->mmap_sem){++++}:
[12538.267875]        lock_acquire+0x14c/0x420
[12538.286848]        __might_fault+0x119/0x1b0
[12538.306006]        keyring_read_iterator+0x7e/0x170
[12538.327936]        assoc_array_subtree_iterate+0x97/0x280
[12538.352154]        keyring_read+0xe9/0x110
[12538.370558]        keyctl_read_key+0x1b9/0x220
[12538.391470]        do_syscall_64+0xa5/0x4b0
[12538.410511]        entry_SYSCALL_64_after_hwframe+0x6a/0xdf
[12538.435535]
[12538.435535] other info that might help us debug this:
[12538.435535]
[12538.472829] Chain exists of:
[12538.472829]   &mm->mmap_sem --> root_key_user.cons_lock --> &type->lock_class
[12538.472829]
[12538.524820]  Possible unsafe locking scenario:
[12538.524820]
[12538.551431]        CPU0                    CPU1
[12538.572654]        ----                    ----
[12538.595865]   lock(&type->lock_class);
[12538.613737]                                lock(root_key_user.cons_lock);
[12538.644234]                                lock(&type->lock_class);
[12538.672410]   lock(&mm->mmap_sem);
[12538.687758]
[12538.687758]  *** DEADLOCK ***
[12538.687758]
[12538.714455] 1 lock held by keyctl/25598:
[12538.732097]  #0: 000000003de5b58d (&type->lock_class){++++}, at: keyctl_read_key+0x15a/0x220
[12538.770573]
[12538.770573] stack backtrace:
[12538.790136] CPU: 2 PID: 25598 Comm: keyctl Kdump: loaded Tainted: G
[12538.844855] Hardware name: HP ProLiant DL360 Gen9/ProLiant DL360 Gen9, BIOS P89 12/27/2015
[12538.881963] Call Trace:
[12538.892897]  dump_stack+0x9a/0xf0
[12538.907908]  print_circular_bug.isra.25.cold.50+0x1bc/0x279
[12538.932891]  ? save_trace+0xd6/0x250
[12538.948979]  check_prev_add.constprop.32+0xc36/0x14f0
[12538.971643]  ? keyring_compare_object+0x104/0x190
[12538.992738]  ? check_usage+0x550/0x550
[12539.009845]  ? sched_clock+0x5/0x10
[12539.025484]  ? sched_clock_cpu+0x18/0x1e0
[12539.043555]  __lock_acquire+0x1f12/0x38d0
[12539.061551]  ? trace_hardirqs_on+0x10/0x10
[12539.080554]  lock_acquire+0x14c/0x420
[12539.100330]  ? __might_fault+0xc4/0x1b0
[12539.119079]  __might_fault+0x119/0x1b0
[12539.135869]  ? __might_fault+0xc4/0x1b0
[12539.153234]  keyring_read_iterator+0x7e/0x170
[12539.172787]  ? keyring_read+0x110/0x110
[12539.190059]  assoc_array_subtree_iterate+0x97/0x280
[12539.211526]  keyring_read+0xe9/0x110
[12539.227561]  ? keyring_gc_check_iterator+0xc0/0xc0
[12539.249076]  keyctl_read_key+0x1b9/0x220
[12539.266660]  do_syscall_64+0xa5/0x4b0
[12539.283091]  entry_SYSCALL_64_after_hwframe+0x6a/0xdf

One way to prevent this deadlock scenario from happening is to not
allow writing to userspace while holding the key semaphore. Instead,
an internal buffer is allocated for getting the keys out from the
read method first before copying them out to userspace without holding
the lock.

That requires taking out the __user modifier from all the relevant
read methods as well as additional changes to not use any userspace
write helpers. That is,

  1) The put_user() call is replaced by a direct copy.
  2) The copy_to_user() call is replaced by memcpy().
  3) All the fault handling code is removed.

Compiling on a x86-64 system, the size of the rxrpc_read() function is
reduced from 3795 bytes to 2384 bytes with this patch.

Fixes: ^1da177e4c3f4 ("Linux-2.6.12-rc2")
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Waiman Long <longman@redhat.com>
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 include/keys/big_key-type.h               |    2 
 include/keys/user-type.h                  |    3 -
 include/linux/key-type.h                  |    2 
 net/dns_resolver/dns_key.c                |    2 
 net/rxrpc/key.c                           |   27 +++--------
 security/keys/big_key.c                   |   11 +---
 security/keys/encrypted-keys/encrypted.c  |    7 +-
 security/keys/keyctl.c                    |   73 +++++++++++++++++++++++-------
 security/keys/keyring.c                   |    6 --
 security/keys/request_key_auth.c          |    7 +-
 security/keys/trusted-keys/trusted_tpm1.c |   14 -----
 security/keys/user_defined.c              |    5 --
 12 files changed, 85 insertions(+), 74 deletions(-)

--- a/include/keys/big_key-type.h
+++ b/include/keys/big_key-type.h
@@ -17,6 +17,6 @@ extern void big_key_free_preparse(struct
 extern void big_key_revoke(struct key *key);
 extern void big_key_destroy(struct key *key);
 extern void big_key_describe(const struct key *big_key, struct seq_file *m);
-extern long big_key_read(const struct key *key, char __user *buffer, size_t buflen);
+extern long big_key_read(const struct key *key, char *buffer, size_t buflen);
 
 #endif /* _KEYS_BIG_KEY_TYPE_H */
--- a/include/keys/user-type.h
+++ b/include/keys/user-type.h
@@ -41,8 +41,7 @@ extern int user_update(struct key *key,
 extern void user_revoke(struct key *key);
 extern void user_destroy(struct key *key);
 extern void user_describe(const struct key *user, struct seq_file *m);
-extern long user_read(const struct key *key,
-		      char __user *buffer, size_t buflen);
+extern long user_read(const struct key *key, char *buffer, size_t buflen);
 
 static inline const struct user_key_payload *user_key_payload_rcu(const struct key *key)
 {
--- a/include/linux/key-type.h
+++ b/include/linux/key-type.h
@@ -127,7 +127,7 @@ struct key_type {
 	 *   much is copied into the buffer
 	 * - shouldn't do the copy if the buffer is NULL
 	 */
-	long (*read)(const struct key *key, char __user *buffer, size_t buflen);
+	long (*read)(const struct key *key, char *buffer, size_t buflen);
 
 	/* handle request_key() for this type instead of invoking
 	 * /sbin/request-key (optional)
--- a/net/dns_resolver/dns_key.c
+++ b/net/dns_resolver/dns_key.c
@@ -302,7 +302,7 @@ static void dns_resolver_describe(const
  * - the key's semaphore is read-locked
  */
 static long dns_resolver_read(const struct key *key,
-			      char __user *buffer, size_t buflen)
+			      char *buffer, size_t buflen)
 {
 	int err = PTR_ERR(key->payload.data[dns_key_error]);
 
--- a/net/rxrpc/key.c
+++ b/net/rxrpc/key.c
@@ -31,7 +31,7 @@ static void rxrpc_free_preparse_s(struct
 static void rxrpc_destroy(struct key *);
 static void rxrpc_destroy_s(struct key *);
 static void rxrpc_describe(const struct key *, struct seq_file *);
-static long rxrpc_read(const struct key *, char __user *, size_t);
+static long rxrpc_read(const struct key *, char *, size_t);
 
 /*
  * rxrpc defined keys take an arbitrary string as the description and an
@@ -1042,12 +1042,12 @@ EXPORT_SYMBOL(rxrpc_get_null_key);
  * - this returns the result in XDR form
  */
 static long rxrpc_read(const struct key *key,
-		       char __user *buffer, size_t buflen)
+		       char *buffer, size_t buflen)
 {
 	const struct rxrpc_key_token *token;
 	const struct krb5_principal *princ;
 	size_t size;
-	__be32 __user *xdr, *oldxdr;
+	__be32 *xdr, *oldxdr;
 	u32 cnlen, toksize, ntoks, tok, zero;
 	u16 toksizes[AFSTOKEN_MAX];
 	int loop;
@@ -1124,30 +1124,25 @@ static long rxrpc_read(const struct key
 	if (!buffer || buflen < size)
 		return size;
 
-	xdr = (__be32 __user *) buffer;
+	xdr = (__be32 *)buffer;
 	zero = 0;
 #define ENCODE(x)				\
 	do {					\
-		__be32 y = htonl(x);		\
-		if (put_user(y, xdr++) < 0)	\
-			goto fault;		\
+		*xdr++ = htonl(x);		\
 	} while(0)
 #define ENCODE_DATA(l, s)						\
 	do {								\
 		u32 _l = (l);						\
 		ENCODE(l);						\
-		if (copy_to_user(xdr, (s), _l) != 0)			\
-			goto fault;					\
-		if (_l & 3 &&						\
-		    copy_to_user((u8 __user *)xdr + _l, &zero, 4 - (_l & 3)) != 0) \
-			goto fault;					\
+		memcpy(xdr, (s), _l);					\
+		if (_l & 3)						\
+			memcpy((u8 *)xdr + _l, &zero, 4 - (_l & 3));	\
 		xdr += (_l + 3) >> 2;					\
 	} while(0)
 #define ENCODE64(x)					\
 	do {						\
 		__be64 y = cpu_to_be64(x);		\
-		if (copy_to_user(xdr, &y, 8) != 0)	\
-			goto fault;			\
+		memcpy(xdr, &y, 8);			\
 		xdr += 8 >> 2;				\
 	} while(0)
 #define ENCODE_STR(s)				\
@@ -1238,8 +1233,4 @@ static long rxrpc_read(const struct key
 	ASSERTCMP((char __user *) xdr - buffer, ==, size);
 	_leave(" = %zu", size);
 	return size;
-
-fault:
-	_leave(" = -EFAULT");
-	return -EFAULT;
 }
--- a/security/keys/big_key.c
+++ b/security/keys/big_key.c
@@ -352,7 +352,7 @@ void big_key_describe(const struct key *
  * read the key data
  * - the key's semaphore is read-locked
  */
-long big_key_read(const struct key *key, char __user *buffer, size_t buflen)
+long big_key_read(const struct key *key, char *buffer, size_t buflen)
 {
 	size_t datalen = (size_t)key->payload.data[big_key_len];
 	long ret;
@@ -391,9 +391,8 @@ long big_key_read(const struct key *key,
 
 		ret = datalen;
 
-		/* copy decrypted data to user */
-		if (copy_to_user(buffer, buf->virt, datalen) != 0)
-			ret = -EFAULT;
+		/* copy out decrypted data */
+		memcpy(buffer, buf->virt, datalen);
 
 err_fput:
 		fput(file);
@@ -401,9 +400,7 @@ error:
 		big_key_free_buffer(buf);
 	} else {
 		ret = datalen;
-		if (copy_to_user(buffer, key->payload.data[big_key_data],
-				 datalen) != 0)
-			ret = -EFAULT;
+		memcpy(buffer, key->payload.data[big_key_data], datalen);
 	}
 
 	return ret;
--- a/security/keys/encrypted-keys/encrypted.c
+++ b/security/keys/encrypted-keys/encrypted.c
@@ -902,14 +902,14 @@ out:
 }
 
 /*
- * encrypted_read - format and copy the encrypted data to userspace
+ * encrypted_read - format and copy out the encrypted data
  *
  * The resulting datablob format is:
  * <master-key name> <decrypted data length> <encrypted iv> <encrypted data>
  *
  * On success, return to userspace the encrypted key datablob size.
  */
-static long encrypted_read(const struct key *key, char __user *buffer,
+static long encrypted_read(const struct key *key, char *buffer,
 			   size_t buflen)
 {
 	struct encrypted_key_payload *epayload;
@@ -957,8 +957,7 @@ static long encrypted_read(const struct
 	key_put(mkey);
 	memzero_explicit(derived_key, sizeof(derived_key));
 
-	if (copy_to_user(buffer, ascii_buf, asciiblob_len) != 0)
-		ret = -EFAULT;
+	memcpy(buffer, ascii_buf, asciiblob_len);
 	kzfree(ascii_buf);
 
 	return asciiblob_len;
--- a/security/keys/keyctl.c
+++ b/security/keys/keyctl.c
@@ -798,6 +798,21 @@ error:
 }
 
 /*
+ * Call the read method
+ */
+static long __keyctl_read_key(struct key *key, char *buffer, size_t buflen)
+{
+	long ret;
+
+	down_read(&key->sem);
+	ret = key_validate(key);
+	if (ret == 0)
+		ret = key->type->read(key, buffer, buflen);
+	up_read(&key->sem);
+	return ret;
+}
+
+/*
  * Read a key's payload.
  *
  * The key must either grant the caller Read permission, or it must grant the
@@ -812,26 +827,27 @@ long keyctl_read_key(key_serial_t keyid,
 	struct key *key;
 	key_ref_t key_ref;
 	long ret;
+	char *key_data;
 
 	/* find the key first */
 	key_ref = lookup_user_key(keyid, 0, 0);
 	if (IS_ERR(key_ref)) {
 		ret = -ENOKEY;
-		goto error;
+		goto out;
 	}
 
 	key = key_ref_to_ptr(key_ref);
 
 	ret = key_read_state(key);
 	if (ret < 0)
-		goto error2; /* Negatively instantiated */
+		goto key_put_out; /* Negatively instantiated */
 
 	/* see if we can read it directly */
 	ret = key_permission(key_ref, KEY_NEED_READ);
 	if (ret == 0)
 		goto can_read_key;
 	if (ret != -EACCES)
-		goto error2;
+		goto key_put_out;
 
 	/* we can't; see if it's searchable from this process's keyrings
 	 * - we automatically take account of the fact that it may be
@@ -839,26 +855,51 @@ long keyctl_read_key(key_serial_t keyid,
 	 */
 	if (!is_key_possessed(key_ref)) {
 		ret = -EACCES;
-		goto error2;
+		goto key_put_out;
 	}
 
 	/* the key is probably readable - now try to read it */
 can_read_key:
-	ret = -EOPNOTSUPP;
-	if (key->type->read) {
-		/* Read the data with the semaphore held (since we might sleep)
-		 * to protect against the key being updated or revoked.
-		 */
-		down_read(&key->sem);
-		ret = key_validate(key);
-		if (ret == 0)
-			ret = key->type->read(key, buffer, buflen);
-		up_read(&key->sem);
+	if (!key->type->read) {
+		ret = -EOPNOTSUPP;
+		goto key_put_out;
+	}
+
+	if (!buffer || !buflen) {
+		/* Get the key length from the read method */
+		ret = __keyctl_read_key(key, NULL, 0);
+		goto key_put_out;
+	}
+
+	/*
+	 * Read the data with the semaphore held (since we might sleep)
+	 * to protect against the key being updated or revoked.
+	 *
+	 * Allocating a temporary buffer to hold the keys before
+	 * transferring them to user buffer to avoid potential
+	 * deadlock involving page fault and mmap_sem.
+	 */
+	key_data = kmalloc(buflen, GFP_KERNEL);
+
+	if (!key_data) {
+		ret = -ENOMEM;
+		goto key_put_out;
+	}
+	ret = __keyctl_read_key(key, key_data, buflen);
+
+	/*
+	 * Read methods will just return the required length without
+	 * any copying if the provided length isn't large enough.
+	 */
+	if (ret > 0 && ret <= buflen) {
+		if (copy_to_user(buffer, key_data, ret))
+			ret = -EFAULT;
 	}
+	kzfree(key_data);
 
-error2:
+key_put_out:
 	key_put(key);
-error:
+out:
 	return ret;
 }
 
--- a/security/keys/keyring.c
+++ b/security/keys/keyring.c
@@ -459,7 +459,6 @@ static int keyring_read_iterator(const v
 {
 	struct keyring_read_iterator_context *ctx = data;
 	const struct key *key = keyring_ptr_to_key(object);
-	int ret;
 
 	kenter("{%s,%d},,{%zu/%zu}",
 	       key->type->name, key->serial, ctx->count, ctx->buflen);
@@ -467,10 +466,7 @@ static int keyring_read_iterator(const v
 	if (ctx->count >= ctx->buflen)
 		return 1;
 
-	ret = put_user(key->serial, ctx->buffer);
-	if (ret < 0)
-		return ret;
-	ctx->buffer++;
+	*ctx->buffer++ = key->serial;
 	ctx->count += sizeof(key->serial);
 	return 0;
 }
--- a/security/keys/request_key_auth.c
+++ b/security/keys/request_key_auth.c
@@ -22,7 +22,7 @@ static int request_key_auth_instantiate(
 static void request_key_auth_describe(const struct key *, struct seq_file *);
 static void request_key_auth_revoke(struct key *);
 static void request_key_auth_destroy(struct key *);
-static long request_key_auth_read(const struct key *, char __user *, size_t);
+static long request_key_auth_read(const struct key *, char *, size_t);
 
 /*
  * The request-key authorisation key type definition.
@@ -80,7 +80,7 @@ static void request_key_auth_describe(co
  * - the key's semaphore is read-locked
  */
 static long request_key_auth_read(const struct key *key,
-				  char __user *buffer, size_t buflen)
+				  char *buffer, size_t buflen)
 {
 	struct request_key_auth *rka = dereference_key_locked(key);
 	size_t datalen;
@@ -97,8 +97,7 @@ static long request_key_auth_read(const
 		if (buflen > datalen)
 			buflen = datalen;
 
-		if (copy_to_user(buffer, rka->callout_info, buflen) != 0)
-			ret = -EFAULT;
+		memcpy(buffer, rka->callout_info, buflen);
 	}
 
 	return ret;
--- a/security/keys/trusted-keys/trusted_tpm1.c
+++ b/security/keys/trusted-keys/trusted_tpm1.c
@@ -1130,11 +1130,10 @@ out:
  * trusted_read - copy the sealed blob data to userspace in hex.
  * On success, return to userspace the trusted key datablob size.
  */
-static long trusted_read(const struct key *key, char __user *buffer,
+static long trusted_read(const struct key *key, char *buffer,
 			 size_t buflen)
 {
 	const struct trusted_key_payload *p;
-	char *ascii_buf;
 	char *bufp;
 	int i;
 
@@ -1143,18 +1142,9 @@ static long trusted_read(const struct ke
 		return -EINVAL;
 
 	if (buffer && buflen >= 2 * p->blob_len) {
-		ascii_buf = kmalloc_array(2, p->blob_len, GFP_KERNEL);
-		if (!ascii_buf)
-			return -ENOMEM;
-
-		bufp = ascii_buf;
+		bufp = buffer;
 		for (i = 0; i < p->blob_len; i++)
 			bufp = hex_byte_pack(bufp, p->blob[i]);
-		if (copy_to_user(buffer, ascii_buf, 2 * p->blob_len) != 0) {
-			kzfree(ascii_buf);
-			return -EFAULT;
-		}
-		kzfree(ascii_buf);
 	}
 	return 2 * p->blob_len;
 }
--- a/security/keys/user_defined.c
+++ b/security/keys/user_defined.c
@@ -168,7 +168,7 @@ EXPORT_SYMBOL_GPL(user_describe);
  * read the key data
  * - the key's semaphore is read-locked
  */
-long user_read(const struct key *key, char __user *buffer, size_t buflen)
+long user_read(const struct key *key, char *buffer, size_t buflen)
 {
 	const struct user_key_payload *upayload;
 	long ret;
@@ -181,8 +181,7 @@ long user_read(const struct key *key, ch
 		if (buflen > upayload->datalen)
 			buflen = upayload->datalen;
 
-		if (copy_to_user(buffer, upayload->data, buflen) != 0)
-			ret = -EFAULT;
+		memcpy(buffer, upayload->data, buflen);
 	}
 
 	return ret;



  parent reply	other threads:[~2020-04-22 10:27 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-04-22  9:55 [PATCH 5.6 000/166] 5.6.7-rc1 review Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 001/166] netfilter: nft_set_rbtree: Drop spurious condition for overlap detection on insertion Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 002/166] arm, bpf: Fix offset overflow for BPF_MEM BPF_DW Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 003/166] objtool: Fix switch table detection in .text.unlikely Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 004/166] scsi: sg: add sg_remove_request in sg_common_write Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 005/166] ALSA: hda: Honor PM disablement in PM freeze and thaw_noirq ops Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 006/166] ext4: use non-movable memory for superblock readahead Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 007/166] watchdog: sp805: fix restart handler Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 008/166] xsk: Fix out of boundary write in __xsk_rcv_memcpy Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 009/166] libbpf: Fix bpf_get_link_xdp_id flags handling Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 010/166] arm, bpf: Fix bugs with ALU64 {RSH, ARSH} BPF_K shift by 0 Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 011/166] bpf: Prevent re-mmap()ing BPF map as writable for initially r/o mapping Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 012/166] ARM: dts: imx6: Use gpc for FEC interrupt controller to fix wake on LAN Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 013/166] kbuild, btf: Fix dependencies for DEBUG_INFO_BTF Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 014/166] netfilter: nf_tables: report EOPNOTSUPP on unsupported flags/object type Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 015/166] irqchip/mbigen: Free msi_desc on device teardown Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 016/166] rbd: avoid a deadlock on header_rwsem when flushing notifies Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 017/166] rbd: call rbd_dev_unprobe() after unwatching and " Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 018/166] rbd: dont test rbd_dev->opts in rbd_dev_image_release() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 019/166] ALSA: hda: Dont release card at firmware loading error Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 020/166] xsk: Add missing check on user supplied headroom size Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 021/166] of: unittest: kmemleak on changeset destroy Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 022/166] of: unittest: kmemleak in of_unittest_platform_populate() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 023/166] of: unittest: kmemleak in of_unittest_overlay_high_level() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 024/166] of: overlay: kmemleak in dup_and_fixup_symbol_prop() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 025/166] x86/Hyper-V: Unload vmbus channel in hv panic callback Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 026/166] x86/Hyper-V: Free hv_panic_page when fail to register kmsg dump Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 027/166] x86/Hyper-V: Trigger crash enlightenment only once during system crash Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 028/166] x86/Hyper-V: Report crash register data or kmsg before running crash kernel Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 029/166] x86/Hyper-V: Report crash register data when sysctl_record_panic_msg is not set Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 030/166] x86/Hyper-V: Report crash data in die() when panic_on_oops is set Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 031/166] afs: Fix missing XDR advance in xdr_decode_{AFS,YFS}FSFetchStatus() Greg Kroah-Hartman
2020-04-22  9:55 ` [PATCH 5.6 032/166] afs: Fix decoding of inline abort codes from version 1 status records Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 033/166] afs: Fix rename operation status delivery Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 034/166] afs: Fix afs_d_validate() to set the right directory version Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 035/166] afs: Fix race between post-modification dir edit and readdir/d_revalidate Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 036/166] block, bfq: turn put_queue into release_process_ref in __bfq_bic_change_cgroup Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 037/166] block, bfq: make reparent_leaf_entity actually work only on leaf entities Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 038/166] block, bfq: invoke flush_idle_tree after reparent_active_queues in pd_offline Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 039/166] drm/ttm: flush the fence on the bo after we individualize the reservation object Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 040/166] gfs2: clear ail1 list when gfs2 withdraws Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 041/166] clk: Dont cache errors from clk_ops::get_phase() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 042/166] clk: at91: usb: continue if clk_hw_round_rate() return zero Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 043/166] clk: imx: pll14xx: Add new frequency entries for pll1443x table Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 044/166] crypto: qce - use cryptlen when adding extra sgl Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 045/166] net/mlx5e: Enforce setting of a single FEC mode Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 046/166] s390/crypto: explicitly memzero stack key material in aes_s390.c Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 047/166] f2fs: fix to avoid potential deadlock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 048/166] f2fs: fix the panic in do_checkpoint() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 049/166] bpf: Reliably preserve btf_trace_xxx types Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 050/166] xfs: fix iclog release error check race with shutdown Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 051/166] f2fs: fix wrong check on F2FS_IOC_FSSETXATTR Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 052/166] f2fs: fix to avoid use-after-free in f2fs_write_multi_pages() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 053/166] ARM: dts: rockchip: fix vqmmc-supply property name for rk3188-bqedison2qc Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 054/166] dmaengine: idxd: reflect shadow copy of traffic class programming Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 055/166] memory: tegra: Correct debugfs clk rate-range on Tegra20 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 056/166] memory: tegra: Correct debugfs clk rate-range on Tegra30 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 057/166] memory: tegra: Correct debugfs clk rate-range on Tegra124 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 058/166] arm64: dts: allwinner: a64: Fix display clock register range Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 059/166] power: supply: bq27xxx_battery: Silence deferred-probe error Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 060/166] clk: tegra: Fix Tegra PMC clock out parents Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 061/166] arm64: tegra: Add PCIe endpoint controllers nodes for Tegra194 Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 062/166] arm64: tegra: Fix Tegra194 PCIe compatible string Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 063/166] xfs: fix use-after-free when aborting corrupt attr inactivation Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 064/166] xfs: fix regression in "cleanup xfs_dir2_block_getdents" Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 065/166] arm64: dts: marvell: espressobin: add ethernet alias Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 066/166] arm64: dts: clearfog-gt-8k: set gigabit PHY reset deassert delay Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 067/166] arm64: dts: marvell: Fix cpu compatible for AP807-quad Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 068/166] soc: imx: gpc: fix power up sequencing Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 069/166] dma-coherent: fix integer overflow in the reserved-memory dma allocation Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 070/166] rtc: 88pm860x: fix possible race condition Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 071/166] NFS: alloc_nfs_open_context() must use the file cred when available Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 072/166] NFSv4/pnfs: Return valid stateids in nfs_layout_find_inode_by_stateid() Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 073/166] NFSv4.2: error out when relink swapfile Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 074/166] ARM: dts: rockchip: fix lvds-encoder ports subnode for rk3188-bqedison2qc Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 075/166] xfs: fix incorrect test in xfs_alloc_ag_vextent_lastblock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 076/166] KVM: PPC: Book3S HV: Fix H_CEDE return code for nested guests Greg Kroah-Hartman
2020-04-22  9:56   ` Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 077/166] f2fs: fix to show norecovery mount option Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 078/166] drivers: thermal: tsens: Release device in success path Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 079/166] phy: uniphier-usb3ss: Add Pro5 support Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 080/166] NFS: direct.c: Fix memory leak of dreq when nfs_get_lock_context fails Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 081/166] f2fs: fix to update f2fs_super_block fields under sb_lock Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 082/166] f2fs: Fix mount failure due to SPO after a successful online resize FS Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 083/166] f2fs: Add a new CP flag to help fsck fix resize SPO issues Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 084/166] s390/cpuinfo: fix wrong output when CPU0 is offline Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 085/166] MIPS: DTS: CI20: add DT node for IR sensor Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 086/166] thermal/drivers/cpufreq_cooling: Fix return of cpufreq_set_cur_state Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 087/166] hibernate: Allow uswsusp to write to swap Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 088/166] btrfs: add RCU locks around block group initialization Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 089/166] powerpc/prom_init: Pass the "os-term" message to hypervisor Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 090/166] powerpc/maple: Fix declaration made after definition Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 091/166] s390/cpum_sf: Fix wrong page count in error message Greg Kroah-Hartman
2020-04-22  9:56 ` [PATCH 5.6 092/166] nfsroot: set tcp as the default transport protocol Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 093/166] ext4: do not commit super on read-only bdev Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 094/166] um: ubd: Prevent buffer overrun on command completion Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 095/166] cifs: Allocate encryption header through kmalloc Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 096/166] x86/xen: Make the boot CPU idle task reliable Greg Kroah-Hartman
2020-04-22 10:45   ` Jürgen Groß
2020-04-22 11:05     ` Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 097/166] drm/amd/display: Dont try hdcp1.4 when content_type is set to type1 Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 098/166] dt-bindings: thermal: tsens: Fix nvmem-cell-names schema Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 099/166] platform/x86: intel-hid: fix: Update Tiger Lake ACPI device ID Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 100/166] mm/hugetlb: fix build failure with HUGETLB_PAGE but not HUGEBTLBFS Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 101/166] macsec: fix NULL dereference in macsec_upd_offload() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 102/166] drm/nouveau/svm: check for SVM initialized before migrating Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 103/166] drm/nouveau/svm: fix vma range check for migration Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 104/166] include/linux/swapops.h: correct guards for non_swap_entry() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 105/166] percpu_counter: fix a data race at vm_committed_as Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 106/166] compiler.h: fix error in BUILD_BUG_ON() reporting Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 107/166] KVM: s390: vsie: Fix possible race when shadowing region 3 tables Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 108/166] drm/nouveau: workaround runpm fail by disabling PCI power management on certain intel bridges Greg Kroah-Hartman
2020-04-22  9:57   ` Greg Kroah-Hartman
2020-04-22  9:57   ` Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 109/166] leds: core: Fix warning message when init_data Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 110/166] x86: ACPI: fix CPU hotplug deadlock Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 111/166] csky: Fixup cpu speculative execution to IO area Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 112/166] drm/amdkfd: kfree the wrong pointer Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 113/166] NFS: Fix memory leaks in nfs_pageio_stop_mirroring() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 114/166] ACPI: Update Tiger Lake ACPI device IDs Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 115/166] csky: Fixup get wrong psr value from phyical reg Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 116/166] f2fs: compress: fix to call missing destroy_compress_ctx() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 117/166] f2fs: fix potential .flags overflow on 32bit architecture Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 118/166] f2fs: fix NULL pointer dereference in f2fs_verity_work() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 119/166] f2fs: fix NULL pointer dereference in f2fs_write_begin() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 120/166] f2fs: fix potential deadlock on compressed quota file Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 121/166] ACPICA: Fixes for acpiExec namespace init file Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 122/166] ceph: re-org copy_file_range and fix some error paths Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 123/166] mfd: cros_ec: Check DT node for usbpd-notify add Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 124/166] um: falloc.h needs to be directly included for older libc Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 125/166] drm/vc4: Fix HDMI mode validation Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 126/166] iommu/virtio: Fix freeing of incomplete domains Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 127/166] iommu/vt-d: Add build dependency on IOASID Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 128/166] iommu/vt-d: Fix mm reference leak Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 129/166] SUNRPC: fix krb5p mount to provide large enough buffer in rq_rcvsize Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 130/166] virtio-balloon: Switch back to OOM handler for VIRTIO_BALLOON_F_DEFLATE_ON_OOM Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 131/166] ext2: fix empty body warnings when -Wextra is used Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 132/166] f2fs: fix to account compressed blocks in f2fs_compressed_blocks() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 133/166] f2fs: skip GC when section is full Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 134/166] iommu/vt-d: Silence RCU-list debugging warning in dmar_find_atsr() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 135/166] iommu/vt-d: Fix page request descriptor size Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 136/166] ext2: fix debug reference to ext2_xattr_cache Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 137/166] sunrpc: Fix gss_unwrap_resp_integ() again Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 138/166] thermal: qoriq: Fix a compiling issue Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 139/166] csky: Fixup init_fpu compile warning with __init Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 140/166] power: supply: axp288_fuel_gauge: Broaden vendor check for Intel Compute Sticks Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 141/166] libnvdimm: Out of bounds read in __nd_ioctl() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 142/166] iommu/amd: Fix the configuration of GCR3 table root pointer Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 143/166] f2fs: fix leaking uninitialized memory in compressed clusters Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 144/166] f2fs: fix to wait all node page writeback Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 145/166] platform/chrome: cros_ec: Query EC protocol version if EC transitions between RO/RW Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 146/166] drm/nouveau/gr/gp107,gp108: implement workaround for HW hanging during init Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 147/166] net: dsa: bcm_sf2: Fix overflow checks Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 148/166] cifs: ignore cached share root handle closing errors Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 149/166] dma-debug: fix displaying of dma allocation type Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 150/166] fbdev: potential information leak in do_fb_ioctl() Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 151/166] ARM: dts: sunxi: Fix DE2 clocks register range Greg Kroah-Hartman
2020-04-22  9:57 ` [PATCH 5.6 152/166] iio: si1133: read 24-bit signed integer for measurement Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 153/166] fbmem: Adjust indentation in fb_prepare_logo and fb_blank Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 154/166] tty: evh_bytechan: Fix out of bounds accesses Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 155/166] iio: st_sensors: handle memory allocation failure to fix null pointer dereference Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 156/166] locktorture: Print ratio of acquisitions, not failures Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 157/166] mtd: rawnand: free the nand_device object Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 158/166] mtd: spinand: Explicitly use MTD_OPS_RAW to write the bad block marker to OOB Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 159/166] docs: Fix path to MTD command line partition parser Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 160/166] mtd: lpddr: Fix a double free in probe() Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 161/166] mtd: phram: fix a double free issue in error path Greg Kroah-Hartman
2020-04-22  9:58   ` Greg Kroah-Hartman
2020-04-22  9:58 ` Greg Kroah-Hartman [this message]
2020-04-22  9:58 ` [PATCH 5.6 163/166] bpf: fix buggy r0 retval refinement for tracing helpers Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 164/166] bpf: Test_verifier, bpf_get_stack return value add <0 Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 165/166] bpf: Test_progs, add test to catch retval refine error handling Greg Kroah-Hartman
2020-04-22  9:58 ` [PATCH 5.6 166/166] bpf, test_verifier: switch bpf_get_stacks 0 s> r8 test Greg Kroah-Hartman
2020-04-22 20:36 ` [PATCH 5.6 000/166] 5.6.7-rc1 review Guenter Roeck
2020-04-24  9:12   ` Greg Kroah-Hartman
2020-04-23  7:46 ` Naresh Kamboju
2020-04-24  9:12   ` Greg Kroah-Hartman
2020-04-23 10:23 ` Jon Hunter
2020-04-23 10:23   ` Jon Hunter
     [not found]   ` <c2447ca7-0a90-fa71-5611-8d3d7349eb2b-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2020-04-23 10:37     ` Greg Kroah-Hartman
2020-04-23 10:37       ` Greg Kroah-Hartman
2020-04-24 16:24 ` shuah
2020-04-25  8:58   ` Greg Kroah-Hartman

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=20200422095105.769626163@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=dhowells@redhat.com \
    --cc=jarkko.sakkinen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=longman@redhat.com \
    --cc=stable@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.