linux-kernel.vger.kernel.org archive mirror
 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, Theodore Tso <tytso@mit.edu>,
	stable@kernel.org
Subject: [PATCH 4.19 107/170] ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
Date: Mon,  7 Jan 2019 13:32:14 +0100	[thread overview]
Message-ID: <20190107104505.555992345@linuxfoundation.org> (raw)
In-Reply-To: <20190107104452.953560660@linuxfoundation.org>

4.19-stable review patch.  If anyone has any objections, please let me know.

------------------

From: Theodore Ts'o <tytso@mit.edu>

commit fb265c9cb49e2074ddcdd4de99728aefdd3b3592 upstream.

Today, when sb_bread() returns NULL, this can either be because of an
I/O error or because the system failed to allocate the buffer.  Since
it's an old interface, changing would require changing many call
sites.

So instead we create our own ext4_sb_bread(), which also allows us to
set the REQ_META flag.

Also fixed a problem in the xattr code where a NULL return in a
function could also mean that the xattr was not found, which could
lead to the wrong error getting returned to userspace.

Fixes: ac27a0ec112a ("ext4: initial copy of files from ext3")
Cc: stable@kernel.org # 2.6.19
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

---
 fs/ext4/ext4.h    |    2 +
 fs/ext4/migrate.c |   36 ++++++++++++-------------
 fs/ext4/resize.c  |   72 +++++++++++++++++++++++++--------------------------
 fs/ext4/super.c   |   23 ++++++++++++++++
 fs/ext4/xattr.c   |   76 +++++++++++++++++++++++++-----------------------------
 5 files changed, 115 insertions(+), 94 deletions(-)

--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -2542,6 +2542,8 @@ extern int ext4_group_extend(struct supe
 extern int ext4_resize_fs(struct super_block *sb, ext4_fsblk_t n_blocks_count);
 
 /* super.c */
+extern struct buffer_head *ext4_sb_bread(struct super_block *sb,
+					 sector_t block, int op_flags);
 extern int ext4_seq_options_show(struct seq_file *seq, void *offset);
 extern int ext4_calculate_overhead(struct super_block *sb);
 extern void ext4_superblock_csum_set(struct super_block *sb);
--- a/fs/ext4/migrate.c
+++ b/fs/ext4/migrate.c
@@ -116,9 +116,9 @@ static int update_ind_extent_range(handl
 	int i, retval = 0;
 	unsigned long max_entries = inode->i_sb->s_blocksize >> 2;
 
-	bh = sb_bread(inode->i_sb, pblock);
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, pblock, 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	i_data = (__le32 *)bh->b_data;
 	for (i = 0; i < max_entries; i++) {
@@ -145,9 +145,9 @@ static int update_dind_extent_range(hand
 	int i, retval = 0;
 	unsigned long max_entries = inode->i_sb->s_blocksize >> 2;
 
-	bh = sb_bread(inode->i_sb, pblock);
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, pblock, 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	i_data = (__le32 *)bh->b_data;
 	for (i = 0; i < max_entries; i++) {
@@ -175,9 +175,9 @@ static int update_tind_extent_range(hand
 	int i, retval = 0;
 	unsigned long max_entries = inode->i_sb->s_blocksize >> 2;
 
-	bh = sb_bread(inode->i_sb, pblock);
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, pblock, 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	i_data = (__le32 *)bh->b_data;
 	for (i = 0; i < max_entries; i++) {
@@ -224,9 +224,9 @@ static int free_dind_blocks(handle_t *ha
 	struct buffer_head *bh;
 	unsigned long max_entries = inode->i_sb->s_blocksize >> 2;
 
-	bh = sb_bread(inode->i_sb, le32_to_cpu(i_data));
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, le32_to_cpu(i_data), 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	tmp_idata = (__le32 *)bh->b_data;
 	for (i = 0; i < max_entries; i++) {
@@ -254,9 +254,9 @@ static int free_tind_blocks(handle_t *ha
 	struct buffer_head *bh;
 	unsigned long max_entries = inode->i_sb->s_blocksize >> 2;
 
-	bh = sb_bread(inode->i_sb, le32_to_cpu(i_data));
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, le32_to_cpu(i_data), 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	tmp_idata = (__le32 *)bh->b_data;
 	for (i = 0; i < max_entries; i++) {
@@ -382,9 +382,9 @@ static int free_ext_idx(handle_t *handle
 	struct ext4_extent_header *eh;
 
 	block = ext4_idx_pblock(ix);
-	bh = sb_bread(inode->i_sb, block);
-	if (!bh)
-		return -EIO;
+	bh = ext4_sb_bread(inode->i_sb, block, 0);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 
 	eh = (struct ext4_extent_header *)bh->b_data;
 	if (eh->eh_depth != 0) {
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -127,10 +127,12 @@ static int verify_group_input(struct sup
 	else if (free_blocks_count < 0)
 		ext4_warning(sb, "Bad blocks count %u",
 			     input->blocks_count);
-	else if (!(bh = sb_bread(sb, end - 1)))
+	else if (IS_ERR(bh = ext4_sb_bread(sb, end - 1, 0))) {
+		err = PTR_ERR(bh);
+		bh = NULL;
 		ext4_warning(sb, "Cannot read last block (%llu)",
 			     end - 1);
-	else if (outside(input->block_bitmap, start, end))
+	} else if (outside(input->block_bitmap, start, end))
 		ext4_warning(sb, "Block bitmap not in group (block %llu)",
 			     (unsigned long long)input->block_bitmap);
 	else if (outside(input->inode_bitmap, start, end))
@@ -781,11 +783,11 @@ static int add_new_gdb(handle_t *handle,
 	struct ext4_super_block *es = EXT4_SB(sb)->s_es;
 	unsigned long gdb_num = group / EXT4_DESC_PER_BLOCK(sb);
 	ext4_fsblk_t gdblock = EXT4_SB(sb)->s_sbh->b_blocknr + 1 + gdb_num;
-	struct buffer_head **o_group_desc, **n_group_desc;
-	struct buffer_head *dind;
-	struct buffer_head *gdb_bh;
+	struct buffer_head **o_group_desc, **n_group_desc = NULL;
+	struct buffer_head *dind = NULL;
+	struct buffer_head *gdb_bh = NULL;
 	int gdbackups;
-	struct ext4_iloc iloc;
+	struct ext4_iloc iloc = { .bh = NULL };
 	__le32 *data;
 	int err;
 
@@ -794,21 +796,22 @@ static int add_new_gdb(handle_t *handle,
 		       "EXT4-fs: ext4_add_new_gdb: adding group block %lu\n",
 		       gdb_num);
 
-	gdb_bh = sb_bread(sb, gdblock);
-	if (!gdb_bh)
-		return -EIO;
+	gdb_bh = ext4_sb_bread(sb, gdblock, 0);
+	if (IS_ERR(gdb_bh))
+		return PTR_ERR(gdb_bh);
 
 	gdbackups = verify_reserved_gdb(sb, group, gdb_bh);
 	if (gdbackups < 0) {
 		err = gdbackups;
-		goto exit_bh;
+		goto errout;
 	}
 
 	data = EXT4_I(inode)->i_data + EXT4_DIND_BLOCK;
-	dind = sb_bread(sb, le32_to_cpu(*data));
-	if (!dind) {
-		err = -EIO;
-		goto exit_bh;
+	dind = ext4_sb_bread(sb, le32_to_cpu(*data), 0);
+	if (IS_ERR(dind)) {
+		err = PTR_ERR(dind);
+		dind = NULL;
+		goto errout;
 	}
 
 	data = (__le32 *)dind->b_data;
@@ -816,18 +819,18 @@ static int add_new_gdb(handle_t *handle,
 		ext4_warning(sb, "new group %u GDT block %llu not reserved",
 			     group, gdblock);
 		err = -EINVAL;
-		goto exit_dind;
+		goto errout;
 	}
 
 	BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get_write_access");
 	err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
 	if (unlikely(err))
-		goto exit_dind;
+		goto errout;
 
 	BUFFER_TRACE(gdb_bh, "get_write_access");
 	err = ext4_journal_get_write_access(handle, gdb_bh);
 	if (unlikely(err))
-		goto exit_dind;
+		goto errout;
 
 	BUFFER_TRACE(dind, "get_write_access");
 	err = ext4_journal_get_write_access(handle, dind);
@@ -837,7 +840,7 @@ static int add_new_gdb(handle_t *handle,
 	/* ext4_reserve_inode_write() gets a reference on the iloc */
 	err = ext4_reserve_inode_write(handle, inode, &iloc);
 	if (unlikely(err))
-		goto exit_dind;
+		goto errout;
 
 	n_group_desc = ext4_kvmalloc((gdb_num + 1) *
 				     sizeof(struct buffer_head *),
@@ -846,7 +849,7 @@ static int add_new_gdb(handle_t *handle,
 		err = -ENOMEM;
 		ext4_warning(sb, "not enough memory for %lu groups",
 			     gdb_num + 1);
-		goto exit_inode;
+		goto errout;
 	}
 
 	/*
@@ -862,7 +865,7 @@ static int add_new_gdb(handle_t *handle,
 	err = ext4_handle_dirty_metadata(handle, NULL, dind);
 	if (unlikely(err)) {
 		ext4_std_error(sb, err);
-		goto exit_inode;
+		goto errout;
 	}
 	inode->i_blocks -= (gdbackups + 1) * sb->s_blocksize >>
 			   (9 - EXT4_SB(sb)->s_cluster_bits);
@@ -871,8 +874,7 @@ static int add_new_gdb(handle_t *handle,
 	err = ext4_handle_dirty_metadata(handle, NULL, gdb_bh);
 	if (unlikely(err)) {
 		ext4_std_error(sb, err);
-		iloc.bh = NULL;
-		goto exit_inode;
+		goto errout;
 	}
 	brelse(dind);
 
@@ -888,15 +890,11 @@ static int add_new_gdb(handle_t *handle,
 	err = ext4_handle_dirty_super(handle, sb);
 	if (err)
 		ext4_std_error(sb, err);
-
 	return err;
-
-exit_inode:
+errout:
 	kvfree(n_group_desc);
 	brelse(iloc.bh);
-exit_dind:
 	brelse(dind);
-exit_bh:
 	brelse(gdb_bh);
 
 	ext4_debug("leaving with error %d\n", err);
@@ -916,9 +914,9 @@ static int add_new_gdb_meta_bg(struct su
 
 	gdblock = ext4_meta_bg_first_block_no(sb, group) +
 		   ext4_bg_has_super(sb, group);
-	gdb_bh = sb_bread(sb, gdblock);
-	if (!gdb_bh)
-		return -EIO;
+	gdb_bh = ext4_sb_bread(sb, gdblock, 0);
+	if (IS_ERR(gdb_bh))
+		return PTR_ERR(gdb_bh);
 	n_group_desc = ext4_kvmalloc((gdb_num + 1) *
 				     sizeof(struct buffer_head *),
 				     GFP_NOFS);
@@ -975,9 +973,10 @@ static int reserve_backup_gdb(handle_t *
 		return -ENOMEM;
 
 	data = EXT4_I(inode)->i_data + EXT4_DIND_BLOCK;
-	dind = sb_bread(sb, le32_to_cpu(*data));
-	if (!dind) {
-		err = -EIO;
+	dind = ext4_sb_bread(sb, le32_to_cpu(*data), 0);
+	if (IS_ERR(dind)) {
+		err = PTR_ERR(dind);
+		dind = NULL;
 		goto exit_free;
 	}
 
@@ -996,9 +995,10 @@ static int reserve_backup_gdb(handle_t *
 			err = -EINVAL;
 			goto exit_bh;
 		}
-		primary[res] = sb_bread(sb, blk);
-		if (!primary[res]) {
-			err = -EIO;
+		primary[res] = ext4_sb_bread(sb, blk, 0);
+		if (IS_ERR(primary[res])) {
+			err = PTR_ERR(primary[res]);
+			primary[res] = NULL;
 			goto exit_bh;
 		}
 		gdbackups = verify_reserved_gdb(sb, group, primary[res]);
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -140,6 +140,29 @@ MODULE_ALIAS_FS("ext3");
 MODULE_ALIAS("ext3");
 #define IS_EXT3_SB(sb) ((sb)->s_bdev->bd_holder == &ext3_fs_type)
 
+/*
+ * This works like sb_bread() except it uses ERR_PTR for error
+ * returns.  Currently with sb_bread it's impossible to distinguish
+ * between ENOMEM and EIO situations (since both result in a NULL
+ * return.
+ */
+struct buffer_head *
+ext4_sb_bread(struct super_block *sb, sector_t block, int op_flags)
+{
+	struct buffer_head *bh = sb_getblk(sb, block);
+
+	if (bh == NULL)
+		return ERR_PTR(-ENOMEM);
+	if (buffer_uptodate(bh))
+		return bh;
+	ll_rw_block(REQ_OP_READ, REQ_META | op_flags, 1, &bh);
+	wait_on_buffer(bh);
+	if (buffer_uptodate(bh))
+		return bh;
+	put_bh(bh);
+	return ERR_PTR(-EIO);
+}
+
 static int ext4_verify_csum_type(struct super_block *sb,
 				 struct ext4_super_block *es)
 {
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -522,14 +522,13 @@ ext4_xattr_block_get(struct inode *inode
 	ea_idebug(inode, "name=%d.%s, buffer=%p, buffer_size=%ld",
 		  name_index, name, buffer, (long)buffer_size);
 
-	error = -ENODATA;
 	if (!EXT4_I(inode)->i_file_acl)
-		goto cleanup;
+		return -ENODATA;
 	ea_idebug(inode, "reading block %llu",
 		  (unsigned long long)EXT4_I(inode)->i_file_acl);
-	bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-	if (!bh)
-		goto cleanup;
+	bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 	ea_bdebug(bh, "b_count=%d, refcount=%d",
 		atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount));
 	error = ext4_xattr_check_block(inode, bh);
@@ -696,26 +695,23 @@ ext4_xattr_block_list(struct dentry *den
 	ea_idebug(inode, "buffer=%p, buffer_size=%ld",
 		  buffer, (long)buffer_size);
 
-	error = 0;
 	if (!EXT4_I(inode)->i_file_acl)
-		goto cleanup;
+		return 0;
 	ea_idebug(inode, "reading block %llu",
 		  (unsigned long long)EXT4_I(inode)->i_file_acl);
-	bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-	error = -EIO;
-	if (!bh)
-		goto cleanup;
+	bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+	if (IS_ERR(bh))
+		return PTR_ERR(bh);
 	ea_bdebug(bh, "b_count=%d, refcount=%d",
 		atomic_read(&(bh->b_count)), le32_to_cpu(BHDR(bh)->h_refcount));
 	error = ext4_xattr_check_block(inode, bh);
 	if (error)
 		goto cleanup;
 	ext4_xattr_block_cache_insert(EA_BLOCK_CACHE(inode), bh);
-	error = ext4_xattr_list_entries(dentry, BFIRST(bh), buffer, buffer_size);
-
+	error = ext4_xattr_list_entries(dentry, BFIRST(bh), buffer,
+					buffer_size);
 cleanup:
 	brelse(bh);
-
 	return error;
 }
 
@@ -830,9 +826,9 @@ int ext4_get_inode_usage(struct inode *i
 	}
 
 	if (EXT4_I(inode)->i_file_acl) {
-		bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-		if (!bh) {
-			ret = -EIO;
+		bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+		if (IS_ERR(bh)) {
+			ret = PTR_ERR(bh);
 			goto out;
 		}
 
@@ -1825,16 +1821,15 @@ ext4_xattr_block_find(struct inode *inod
 
 	if (EXT4_I(inode)->i_file_acl) {
 		/* The inode already has an extended attribute block. */
-		bs->bh = sb_bread(sb, EXT4_I(inode)->i_file_acl);
-		error = -EIO;
-		if (!bs->bh)
-			goto cleanup;
+		bs->bh = ext4_sb_bread(sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+		if (IS_ERR(bs->bh))
+			return PTR_ERR(bs->bh);
 		ea_bdebug(bs->bh, "b_count=%d, refcount=%d",
 			atomic_read(&(bs->bh->b_count)),
 			le32_to_cpu(BHDR(bs->bh)->h_refcount));
 		error = ext4_xattr_check_block(inode, bs->bh);
 		if (error)
-			goto cleanup;
+			return error;
 		/* Find the named attribute. */
 		bs->s.base = BHDR(bs->bh);
 		bs->s.first = BFIRST(bs->bh);
@@ -1843,13 +1838,10 @@ ext4_xattr_block_find(struct inode *inod
 		error = xattr_find_entry(inode, &bs->s.here, bs->s.end,
 					 i->name_index, i->name, 1);
 		if (error && error != -ENODATA)
-			goto cleanup;
+			return error;
 		bs->s.not_found = error;
 	}
-	error = 0;
-
-cleanup:
-	return error;
+	return 0;
 }
 
 static int
@@ -2278,9 +2270,9 @@ static struct buffer_head *ext4_xattr_ge
 
 	if (!EXT4_I(inode)->i_file_acl)
 		return NULL;
-	bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-	if (!bh)
-		return ERR_PTR(-EIO);
+	bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+	if (IS_ERR(bh))
+		return bh;
 	error = ext4_xattr_check_block(inode, bh);
 	if (error) {
 		brelse(bh);
@@ -2750,10 +2742,11 @@ retry:
 	if (EXT4_I(inode)->i_file_acl) {
 		struct buffer_head *bh;
 
-		bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-		error = -EIO;
-		if (!bh)
+		bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+		if (IS_ERR(bh)) {
+			error = PTR_ERR(bh);
 			goto cleanup;
+		}
 		error = ext4_xattr_check_block(inode, bh);
 		if (error) {
 			brelse(bh);
@@ -2907,11 +2900,12 @@ int ext4_xattr_delete_inode(handle_t *ha
 	}
 
 	if (EXT4_I(inode)->i_file_acl) {
-		bh = sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl);
-		if (!bh) {
-			EXT4_ERROR_INODE(inode, "block %llu read error",
-					 EXT4_I(inode)->i_file_acl);
-			error = -EIO;
+		bh = ext4_sb_bread(inode->i_sb, EXT4_I(inode)->i_file_acl, REQ_PRIO);
+		if (IS_ERR(bh)) {
+			error = PTR_ERR(bh);
+			if (error == -EIO)
+				EXT4_ERROR_INODE(inode, "block %llu read error",
+						 EXT4_I(inode)->i_file_acl);
 			goto cleanup;
 		}
 		error = ext4_xattr_check_block(inode, bh);
@@ -3064,8 +3058,10 @@ ext4_xattr_block_cache_find(struct inode
 	while (ce) {
 		struct buffer_head *bh;
 
-		bh = sb_bread(inode->i_sb, ce->e_value);
-		if (!bh) {
+		bh = ext4_sb_bread(inode->i_sb, ce->e_value, REQ_PRIO);
+		if (IS_ERR(bh)) {
+			if (PTR_ERR(bh) == -ENOMEM)
+				return NULL;
 			EXT4_ERROR_INODE(inode, "block %lu read error",
 					 (unsigned long)ce->e_value);
 		} else if (ext4_xattr_cmp(header, BHDR(bh)) == 0) {



  parent reply	other threads:[~2019-01-07 12:58 UTC|newest]

Thread overview: 194+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-07 12:30 [PATCH 4.19 000/170] 4.19.14-stable review Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 001/170] ax25: fix a use-after-free in ax25_fillin_cb() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 002/170] gro_cell: add napi_disable in gro_cells_destroy Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 003/170] ibmveth: fix DMA unmap error in ibmveth_xmit_start error path Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 004/170] ieee802154: lowpan_header_create check must check daddr Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 005/170] ip6mr: Fix potential Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 006/170] ipv4: " Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 007/170] ipv6: explicitly initialize udp6_addr in udp_sock_create6() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 008/170] ipv6: tunnels: fix two use-after-free Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 009/170] ip: validate header length on virtual device xmit Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 010/170] isdn: fix kernel-infoleak in capi_unlocked_ioctl Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 011/170] net: clear skb->tstamp in forwarding paths Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 012/170] net: core: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 013/170] net/hamradio/6pack: use mod_timer() to rearm timers Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 014/170] net: ipv4: do not handle duplicate fragments as overlapping Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 015/170] net: macb: restart tx after tx used bit read Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 016/170] net: mvpp2: 10G modes arent supported on all ports Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 017/170] net: phy: Fix the issue that netif always links up after resuming Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 018/170] netrom: fix locking in nr_find_socket() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 019/170] net/smc: fix TCP fallback socket release Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 020/170] net: stmmac: Fix an error code in probe() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 021/170] net/tls: allocate tls context using GFP_ATOMIC Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 022/170] net/wan: fix a double free in x25_asy_open_tty() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 023/170] packet: validate address length Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 024/170] packet: validate address length if non-zero Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 025/170] phonet: af_phonet: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 026/170] ptr_ring: wrap back ->producer in __ptr_ring_swap_queue() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 027/170] qmi_wwan: Added support for Fibocom NL668 series Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 028/170] qmi_wwan: Added support for Telit LN940 series Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 029/170] qmi_wwan: Add support for Fibocom NL678 series Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 030/170] sctp: initialize sin6_flowinfo for ipv6 addrs in sctp_inet6addr_event Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 031/170] sock: Make sock->sk_stamp thread-safe Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.19 032/170] tcp: fix a race in inet_diag_dump_icsk() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 033/170] tipc: check tsk->group in tipc_wait_for_cond() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 034/170] tipc: compare remote and local protocols in tipc_udp_enable() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 035/170] tipc: fix a double free in tipc_enable_bearer() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 036/170] tipc: fix a double kfree_skb() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 037/170] tipc: use lock_sock() in tipc_sk_reinit() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 038/170] vhost: make sure used idx is seen before log in vhost_add_used_n() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 039/170] VSOCK: Send reset control packet when socket is partially bound Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 040/170] xen/netfront: tolerate frags with no data Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 041/170] net/mlx5: Typo fix in del_sw_hw_rule Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 042/170] tipc: check group dests after tipc_wait_for_cond() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 043/170] net/mlx5e: Remove the false indication of software timestamping support Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 044/170] ipv6: frags: Fix bogus skb->sk in reassembled packets Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 045/170] net/ipv6: Fix a test against ipv6_find_idev() return value Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 046/170] nfp: flower: ensure TCP flags can be placed in IPv6 frame Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 047/170] ipv6: route: Fix return value of ip6_neigh_lookup() on neigh_create() error Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 048/170] mscc: Configured MAC entries should be locked Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 049/170] net/mlx5e: Cancel DIM work on close SQ Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 050/170] net/mlx5e: RX, Verify MPWQE stride size is in range Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 051/170] net: mvpp2: fix the phylink mode validation Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 052/170] qed: Fix command number mismatch between driver and the mfw Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 053/170] mlxsw: core: Increase timeout during firmware flash process Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 054/170] net/mlx5e: Remove unused UDP GSO remaining counter Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 055/170] net/mlx5e: RX, Fix wrong early return in receive queue poll Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 056/170] net: mvneta: fix operation for 64K PAGE_SIZE Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 057/170] net: Use __kernel_clockid_t in uapi net_stamp.h Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 058/170] r8169: fix WoL device wakeup enable Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 059/170] IB/hfi1: Incorrect sizing of sge for PIO will OOPs Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 060/170] ALSA: rme9652: Fix potential Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 061/170] ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 062/170] ALSA: pcm: Fix potential Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 063/170] ALSA: emux: Fix potential Spectre v1 vulnerabilities Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 064/170] powerpc/fsl: Fix spectre_v2 mitigations reporting Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 065/170] mtd: atmel-quadspi: disallow building on ebsa110 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 066/170] mtd: rawnand: marvell: prevent timeouts on a loaded machine Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 067/170] mtd: rawnand: omap2: Pass the parent of pdev to dma_request_chan() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 068/170] ALSA: hda: add mute LED support for HP EliteBook 840 G4 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 069/170] ALSA: hda/realtek: Enable audio jacks of ASUS UX391UA with ALC294 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 070/170] ALSA: fireface: fix for state to fetch PCM frames Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 071/170] ALSA: firewire-lib: fix wrong handling payload_length as payload_quadlet Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 072/170] ALSA: firewire-lib: fix wrong assignment for out_packet_without_header tracepoint Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 073/170] ALSA: firewire-lib: use the same print format for without_header tracepoints Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 074/170] ALSA: hda/realtek: Enable the headset mic auto detection for ASUS laptops Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 075/170] ALSA: hda/tegra: clear pending irq handlers Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 076/170] usb: dwc2: host: use hrtimer for NAK retries Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 077/170] USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 078/170] USB: serial: option: add Fibocom NL678 series Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 079/170] usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 080/170] usb: dwc2: disable power_down on Amlogic devices Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 081/170] Revert "usb: dwc3: pci: Use devm functions to get the phy GPIOs" Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 082/170] usb: roles: Add a description for the class to Kconfig Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 083/170] media: dvb-usb-v2: Fix incorrect use of transfer_flags URB_FREE_BUFFER Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 084/170] staging: wilc1000: fix missing read_write setting when reading data Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 085/170] ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Clapper Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 086/170] ASoC: intel: cht_bsw_max98090_ti: Add pmc_plt_clk_0 quirk for Chromebook Gnawty Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 087/170] s390/pci: fix sleeping in atomic during hotplug Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 088/170] Input: atmel_mxt_ts - dont try to free unallocated kernel memory Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 089/170] Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 090/170] x86/speculation/l1tf: Drop the swap storage limit restriction when l1tf=off Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 091/170] x86/mm: Drop usage of __flush_tlb_all() in kernel_physical_mapping_init() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.19 092/170] KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 093/170] arm64: KVM: Make VHE Stage-2 TLB invalidation operations non-interruptible Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 094/170] KVM: nVMX: Free the VMREAD/VMWRITE bitmaps if alloc_kvm_area() fails Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 095/170] platform-msi: Free descriptors in platform_msi_domain_free() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 096/170] drm/v3d: Skip debugfs dumping GCA on platforms without GCA Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 097/170] DRM: UDL: get rid of useless vblank initialization Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 098/170] clocksource/drivers/arc_timer: Utilize generic sched_clock Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 099/170] perf machine: Record if a arch has a single user/kernel address space Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 100/170] perf thread: Add fallback functions for cases where cpumode is insufficient Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 101/170] perf tools: Use fallback for sample_addr_correlates_sym() cases Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 102/170] perf script: Use fallbacks for branch stacks Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 103/170] perf pmu: Suppress potential format-truncation warning Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 104/170] perf env: Also consider env->arch == NULL as local operation Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 105/170] ocxl: Fix endiannes bug in ocxl_link_update_pe() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 106/170] ocxl: Fix endiannes bug in read_afu_name() Greg Kroah-Hartman
2019-01-07 12:32 ` Greg Kroah-Hartman [this message]
2019-01-07 12:32 ` [PATCH 4.19 108/170] ext4: fix possible use after free in ext4_quota_enable Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 109/170] ext4: missing unlock/put_page() in ext4_try_to_write_inline_data() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 110/170] ext4: fix EXT4_IOC_GROUP_ADD ioctl Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 111/170] ext4: include terminating u32 in size of xattr entries when expanding inodes Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 112/170] ext4: avoid declaring fs inconsistent due to invalid file handles Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 113/170] ext4: force inode writes when nfsd calls commit_metadata() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 114/170] ext4: check for shutdown and r/o file system in ext4_write_inode() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 115/170] spi: bcm2835: Fix race on DMA termination Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 116/170] spi: bcm2835: Fix book-keeping of " Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 117/170] spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 118/170] clk: rockchip: fix typo in rk3188 spdif_frac parent Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 119/170] clk: sunxi-ng: Use u64 for calculation of NM rate Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 120/170] crypto: cavium/nitrox - fix a DMA pool free failure Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 121/170] crypto: chcr - small packet Tx stalls the queue Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 122/170] crypto: testmgr - add AES-CFB tests Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 123/170] crypto: cfb - fix decryption Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 124/170] cgroup: fix CSS_TASK_ITER_PROCS Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 125/170] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 126/170] btrfs: dev-replace: go back to suspended state if target device is missing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 127/170] btrfs: dev-replace: go back to suspend state if another EXCL_OP is running Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 128/170] btrfs: skip file_extent generation check for free_space_inode in run_delalloc_nocow Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 129/170] Btrfs: fix fsync of files with multiple hard links in new directories Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 130/170] btrfs: run delayed items before dropping the snapshot Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 131/170] Btrfs: send, fix race with transaction commits that create snapshots Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 132/170] brcmfmac: fix roamoff=1 modparam Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 133/170] brcmfmac: Fix out of bounds memory access during fw load Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 134/170] powerpc/tm: Set MSR[TS] just prior to recheckpoint Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 135/170] powerpc/tm: Unset MSR[TS] if not recheckpointing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 136/170] dax: Dont access a freed inode Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 137/170] dax: Use non-exclusive wait in wait_entry_unlocked() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 138/170] f2fs: read page index before freeing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 139/170] f2fs: fix validation of the block count in sanity_check_raw_super Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 140/170] f2fs: sanity check of xattr entry size Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 141/170] serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 142/170] media: cec: keep track of outstanding transmits Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 143/170] media: cec-pin: fix broken tx_ignore_nack_until_eom error injection Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 144/170] media: rc: cec devices do not have a lirc chardev Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 145/170] media: imx274: fix stack corruption in imx274_read_reg Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 146/170] media: vivid: free bitmap_cap when updating std/timings/etc Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 147/170] media: vb2: check memory model for VIDIOC_CREATE_BUFS Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 148/170] media: v4l2-tpg: array index could become negative Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 149/170] tools lib traceevent: Fix processing of dereferenced args in bprintk events Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 150/170] MIPS: math-emu: Write-protect delay slot emulation pages Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 151/170] MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3 Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.19 152/170] MIPS: Ensure pmd_present() returns false after pmd_mknotpresent() Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 153/170] MIPS: Align kernel load address to 64KB Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 154/170] MIPS: Expand MIPS32 ASIDs to 64 bits Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 155/170] MIPS: OCTEON: mark RGMII interface disabled on OCTEON III Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 156/170] MIPS: Fix a R10000_LLSC_WAR logic in atomic.h Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 157/170] CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 158/170] smb3: fix large reads on encrypted connections Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 159/170] arm64: KVM: Avoid setting the upper 32 bits of VTCR_EL2 to 1 Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 160/170] arm/arm64: KVM: vgic: Force VM halt when changing the active state of GICv3 PPIs/SGIs Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 161/170] ARM: dts: exynos: Specify I2S assigned clocks in proper node Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 162/170] rtc: m41t80: Correct alarm month range with RTC reads Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 163/170] KVM: arm/arm64: vgic: Do not cond_resched_lock() with IRQs disabled Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 164/170] KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 165/170] KVM: arm/arm64: vgic-v2: Set active_source to 0 when restoring state Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 166/170] KVM: arm/arm64: vgic: Fix off-by-one bug in vgic_get_irq() Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 167/170] iommu/arm-smmu-v3: Fix big-endian CMD_SYNC writes Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 168/170] arm64: compat: Avoid sending SIGILL for unallocated syscall numbers Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 169/170] tpm: tpm_try_transmit() refactor error flow Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.19 170/170] tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x Greg Kroah-Hartman
2019-01-07 18:03 ` [PATCH 4.19 000/170] 4.19.14-stable review Guenter Roeck
2019-01-07 22:35 ` shuah
2019-01-08 11:17 ` Naresh Kamboju
2019-01-08 12:19 ` Greg Kroah-Hartman
2019-01-08 17:25 ` Guenter Roeck
2019-01-08 17:56   ` Greg Kroah-Hartman
2019-01-08 18:09     ` Guenter Roeck
2019-01-08 18:13       ` Greg Kroah-Hartman
2019-01-08 18:29         ` Guenter Roeck
2019-01-09 14:38           ` Greg Kroah-Hartman
2019-01-08 23:07 ` Guenter Roeck
2019-01-09 14:38   ` Greg Kroah-Hartman
2019-01-09 19:40     ` Guenter Roeck
2019-01-10  6:52       ` Greg Kroah-Hartman
2019-01-10 13:17         ` Greg Kroah-Hartman
2019-01-10 14:27           ` Guenter Roeck
2019-01-11  7:09             ` Greg Kroah-Hartman
2019-01-10 14:42           ` Christoph Biedl
2019-01-10 15:15             ` Christoph Biedl
2019-01-10 15:40               ` Guenter Roeck
2019-01-10 18:29                 ` Greg Kroah-Hartman
2019-01-10 22:55                   ` Christoph Biedl
2019-01-11  7:09                     ` 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=20190107104505.555992345@linuxfoundation.org \
    --to=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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;
as well as URLs for NNTP newsgroup(s).