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.20 072/145] ext4: add ext4_sb_bread() to disambiguate ENOMEM cases
Date: Mon, 7 Jan 2019 13:31:49 +0100 [thread overview]
Message-ID: <20190107104446.676020917@linuxfoundation.org> (raw)
In-Reply-To: <20190107104437.308206189@linuxfoundation.org>
4.20-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
@@ -2538,6 +2538,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;
}
@@ -1821,16 +1817,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);
@@ -1839,13 +1834,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
@@ -2274,9 +2266,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);
@@ -2746,10 +2738,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);
@@ -2903,11 +2896,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);
@@ -3060,8 +3054,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) {
next prev parent reply other threads:[~2019-01-07 12:39 UTC|newest]
Thread overview: 164+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-07 12:30 [PATCH 4.20 000/145] 4.20.1-stable review Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 001/145] panic: avoid deadlocks in re-entrant console drivers Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 002/145] iwlwifi: add new cards for 9560, 9462, 9461 and killer series Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 003/145] media: ov5640: Fix set format regression Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 004/145] bnx2x: Fix NULL pointer dereference in bnx2x_del_all_vlans() on some hw Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 005/145] tap: call skb_probe_transport_header after setting skb->dev Greg Kroah-Hartman
2019-01-07 13:39 ` Christian Borntraeger
2019-01-07 12:30 ` [PATCH 4.20 006/145] ax25: fix a use-after-free in ax25_fillin_cb() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 007/145] ibmveth: fix DMA unmap error in ibmveth_xmit_start error path Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 008/145] ieee802154: lowpan_header_create check must check daddr Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 009/145] ip: validate header length on virtual device xmit Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 010/145] net: core: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 011/145] net/hamradio/6pack: use mod_timer() to rearm timers Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 012/145] isdn: fix kernel-infoleak in capi_unlocked_ioctl Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 013/145] netrom: fix locking in nr_find_socket() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 014/145] net/wan: fix a double free in x25_asy_open_tty() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 015/145] packet: validate address length if non-zero Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 016/145] phonet: af_phonet: Fix Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 017/145] ptr_ring: wrap back ->producer in __ptr_ring_swap_queue() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 018/145] sock: Make sock->sk_stamp thread-safe Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 019/145] tipc: fix a double free in tipc_enable_bearer() Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 020/145] IB/hfi1: Incorrect sizing of sge for PIO will OOPs Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 021/145] ALSA: rme9652: Fix potential Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:30 ` [PATCH 4.20 022/145] ALSA: emu10k1: Fix potential Spectre v1 vulnerabilities Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 023/145] ALSA: pcm: Fix potential Spectre v1 vulnerability Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 024/145] ALSA: emux: Fix potential Spectre v1 vulnerabilities Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 025/145] powerpc/fsl: Fix spectre_v2 mitigations reporting Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 026/145] mtd: atmel-quadspi: disallow building on ebsa110 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 027/145] mtd: rawnand: marvell: prevent timeouts on a loaded machine Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 028/145] mtd: rawnand: Fix JEDEC detection Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 029/145] mtd: rawnand: omap2: Pass the parent of pdev to dma_request_chan() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 030/145] ALSA: hda: add mute LED support for HP EliteBook 840 G4 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 031/145] ALSA: hda/realtek: Enable audio jacks of ASUS UX391UA with ALC294 Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 032/145] ALSA: fireface: fix for state to fetch PCM frames Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 033/145] ALSA: firewire-lib: fix wrong handling payload_length as payload_quadlet Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 034/145] ALSA: firewire-lib: fix wrong assignment for out_packet_without_header tracepoint Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 035/145] ALSA: firewire-lib: use the same print format for without_header tracepoints Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 036/145] ALSA: hda/realtek: Enable the headset mic auto detection for ASUS laptops Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 037/145] ALSA: hda/tegra: clear pending irq handlers Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 038/145] usb: dwc2: host: use hrtimer for NAK retries Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 039/145] USB: serial: pl2303: add ids for Hewlett-Packard HP POS pole displays Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 040/145] USB: serial: option: add Fibocom NL678 series Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 041/145] usb: r8a66597: Fix a possible concurrency use-after-free bug in r8a66597_endpoint_disable() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 042/145] usb: dwc2: disable power_down on Amlogic devices Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 043/145] Revert "usb: dwc3: pci: Use devm functions to get the phy GPIOs" Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 044/145] usb: roles: Add a description for the class to Kconfig Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 045/145] media: dvb-usb-v2: Fix incorrect use of transfer_flags URB_FREE_BUFFER Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 046/145] i915: fix missing user_access_end() in page fault exception case Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 047/145] staging: wilc1000: fix missing read_write setting when reading data Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 048/145] staging: bcm2835-audio: double free in init error path Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 049/145] 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.20 050/145] 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.20 051/145] s390/pci: fix sleeping in atomic during hotplug Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 052/145] Input: atmel_mxt_ts - dont try to free unallocated kernel memory Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 053/145] Input: elan_i2c - add ACPI ID for touchpad in ASUS Aspire F5-573G Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 054/145] x86/speculation/l1tf: Drop the swap storage limit restriction when l1tf=off Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 055/145] x86/mm: Drop usage of __flush_tlb_all() in kernel_physical_mapping_init() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 056/145] KVM: x86: Use jmp to invoke kvm_spurious_fault() from .fixup Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 057/145] arm64: KVM: Make VHE Stage-2 TLB invalidation operations non-interruptible Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 058/145] KVM: PPC: Book3S HV: Fix race between kvm_unmap_hva_range and MMU mode switch Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 059/145] KVM: nVMX: Free the VMREAD/VMWRITE bitmaps if alloc_kvm_area() fails Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 060/145] platform-msi: Free descriptors in platform_msi_domain_free() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 061/145] drm/v3d: Skip debugfs dumping GCA on platforms without GCA Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 062/145] DRM: UDL: get rid of useless vblank initialization Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 063/145] clocksource/drivers/arc_timer: Utilize generic sched_clock Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 064/145] perf machine: Record if a arch has a single user/kernel address space Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 065/145] perf thread: Add fallback functions for cases where cpumode is insufficient Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 066/145] perf tools: Use fallback for sample_addr_correlates_sym() cases Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 067/145] perf script: Use fallbacks for branch stacks Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 068/145] perf pmu: Suppress potential format-truncation warning Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 069/145] perf env: Also consider env->arch == NULL as local operation Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 070/145] ocxl: Fix endiannes bug in ocxl_link_update_pe() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 071/145] ocxl: Fix endiannes bug in read_afu_name() Greg Kroah-Hartman
2019-01-07 12:31 ` Greg Kroah-Hartman [this message]
2019-01-07 12:31 ` [PATCH 4.20 073/145] ext4: fix possible use after free in ext4_quota_enable Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 074/145] ext4: missing unlock/put_page() in ext4_try_to_write_inline_data() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 075/145] ext4: fix EXT4_IOC_GROUP_ADD ioctl Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 076/145] ext4: include terminating u32 in size of xattr entries when expanding inodes Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 077/145] ext4: avoid declaring fs inconsistent due to invalid file handles Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 078/145] ext4: force inode writes when nfsd calls commit_metadata() Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 079/145] ext4: check for shutdown and r/o file system in ext4_write_inode() Greg Kroah-Hartman
2019-01-07 21:56 ` Sasha Levin
2019-01-09 13:44 ` Sasha Levin
2019-01-09 16:44 ` Greg Kroah-Hartman
2019-01-09 23:18 ` Sasha Levin
2019-01-07 12:31 ` [PATCH 4.20 080/145] spi: bcm2835: Fix race on DMA termination Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 081/145] spi: bcm2835: Fix book-keeping of " Greg Kroah-Hartman
2019-01-07 12:31 ` [PATCH 4.20 082/145] spi: bcm2835: Avoid finishing transfer prematurely in IRQ mode Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 083/145] clk: rockchip: fix typo in rk3188 spdif_frac parent Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 084/145] clk: sunxi-ng: Use u64 for calculation of NM rate Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 085/145] crypto: cavium/nitrox - fix a DMA pool free failure Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 086/145] crypto: chcr - small packet Tx stalls the queue Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 087/145] crypto: testmgr - add AES-CFB tests Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 088/145] crypto: cfb - fix decryption Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 089/145] cgroup: fix CSS_TASK_ITER_PROCS Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 090/145] binder: fix use-after-free due to ksys_close() during fdget() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 091/145] cdc-acm: fix abnormal DATA RX issue for Mediatek Preloader Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 092/145] btrfs: dev-replace: go back to suspended state if target device is missing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 093/145] btrfs: dev-replace: go back to suspend state if another EXCL_OP is running Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 094/145] Btrfs: fix deadlock with memory reclaim during scrub Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 095/145] btrfs: skip file_extent generation check for free_space_inode in run_delalloc_nocow Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 096/145] Btrfs: fix fsync of files with multiple hard links in new directories Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 097/145] btrfs: run delayed items before dropping the snapshot Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 098/145] Btrfs: send, fix race with transaction commits that create snapshots Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 099/145] brcmfmac: fix roamoff=1 modparam Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 100/145] brcmfmac: Fix out of bounds memory access during fw load Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 101/145] KEYS: fix parsing invalid pkey info string Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 102/145] powerpc/tm: Set MSR[TS] just prior to recheckpoint Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 103/145] powerpc/tm: Unset MSR[TS] if not recheckpointing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 104/145] f2fs: read page index before freeing Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 105/145] f2fs: fix to update new block address correctly for OPU Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 106/145] f2fs: fix missing unlock(sbi->gc_mutex) Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 107/145] f2fs: fix validation of the block count in sanity_check_raw_super Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 108/145] f2fs: sanity check of xattr entry size Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 109/145] serial: uartps: Fix interrupt mask issue to handle the RX interrupts properly Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 110/145] media: cec: keep track of outstanding transmits Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 111/145] media: cec-pin: fix broken tx_ignore_nack_until_eom error injection Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 112/145] media: rc: cec devices do not have a lirc chardev Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 113/145] media: imx274: fix stack corruption in imx274_read_reg Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 114/145] media: vivid: free bitmap_cap when updating std/timings/etc Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 115/145] media: vim2m: use cancel_delayed_work_sync instead of flush_schedule_work Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 116/145] media: vb2: check memory model for VIDIOC_CREATE_BUFS Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 117/145] media: v4l2-tpg: array index could become negative Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 118/145] media: v4l2-fwnode: Fix setting V4L2_MBUS_DATA_ACTIVE_HIGH/LOW flag Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 119/145] tools lib traceevent: Fix processing of dereferenced args in bprintk events Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 120/145] MIPS: math-emu: Write-protect delay slot emulation pages Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 121/145] MIPS: c-r4k: Add r4k_blast_scache_node for Loongson-3 Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 122/145] MIPS: Ensure pmd_present() returns false after pmd_mknotpresent() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 123/145] MIPS: Align kernel load address to 64KB Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 124/145] MIPS: Expand MIPS32 ASIDs to 64 bits Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 125/145] MIPS: OCTEON: mark RGMII interface disabled on OCTEON III Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 126/145] MIPS: Fix a R10000_LLSC_WAR logic in atomic.h Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 127/145] CIFS: Fix error mapping for SMB2_LOCK command which caused OFD lock problem Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 128/145] smb3: fix large reads on encrypted connections Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 129/145] CIFS: return correct errors when pinning memory failed for direct I/O Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 130/145] CIFS: use the correct length when pinning memory for direct I/O for write Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 131/145] arm64: KVM: Avoid setting the upper 32 bits of VTCR_EL2 to 1 Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 132/145] arm/arm64: KVM: vgic: Force VM halt when changing the active state of GICv3 PPIs/SGIs Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 133/145] ARM: dts: exynos: Specify I2S assigned clocks in proper node Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 134/145] rtc: m41t80: Correct alarm month range with RTC reads Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 135/145] KVM: arm/arm64: vgic: Do not cond_resched_lock() with IRQs disabled Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 136/145] KVM: arm/arm64: vgic: Cap SPIs to the VM-defined maximum Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 137/145] KVM: arm/arm64: vgic-v2: Set active_source to 0 when restoring state Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 138/145] KVM: arm/arm64: Fix VMID alloc race by reverting to lock-less Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 139/145] KVM: arm/arm64: vgic: Fix off-by-one bug in vgic_get_irq() Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 140/145] iommu/arm-smmu-v3: Fix big-endian CMD_SYNC writes Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 141/145] arm64: compat: Avoid sending SIGILL for unallocated syscall numbers Greg Kroah-Hartman
2019-01-07 12:32 ` [PATCH 4.20 142/145] arm64: compat: Dont pull syscall number from regs in arm_compat_syscall Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.20 143/145] parisc: Remap hugepage-aligned pages in set_kernel_text_rw() Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.20 144/145] tpm: tpm_try_transmit() refactor error flow Greg Kroah-Hartman
2019-01-07 12:33 ` [PATCH 4.20 145/145] tpm: tpm_i2c_nuvoton: use correct command duration for TPM 2.x Greg Kroah-Hartman
2019-01-07 18:05 ` [PATCH 4.20 000/145] 4.20.1-stable review Guenter Roeck
2019-01-07 21:17 ` Guenter Roeck
2019-01-08 7:45 ` Greg Kroah-Hartman
2019-01-08 9:33 ` Greg Kroah-Hartman
2019-01-08 12:16 ` Greg Kroah-Hartman
2019-01-07 22:36 ` shuah
2019-01-08 7:45 ` Greg Kroah-Hartman
2019-01-08 10:58 ` Naresh Kamboju
2019-01-08 12:26 ` Greg Kroah-Hartman
2019-01-08 12:20 ` Greg Kroah-Hartman
2019-01-08 19:39 ` Dmitrii Tcvetkov
2019-01-09 6:05 ` Greg Kroah-Hartman
2019-01-08 23:09 ` Guenter Roeck
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=20190107104446.676020917@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).