From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org,
George Spelvin <linux@sciencehorizons.net>,
Theodore Tso <tytso@mit.edu>
Subject: [PATCH 4.10 020/167] ext4: fix deadlock between inline_data and ext4_expand_extra_isize_ea()
Date: Fri, 10 Mar 2017 10:07:43 +0100 [thread overview]
Message-ID: <20170310083958.278822272@linuxfoundation.org> (raw)
In-Reply-To: <20170310083956.767605269@linuxfoundation.org>
4.10-stable review patch. If anyone has any objections, please let me know.
------------------
From: Theodore Ts'o <tytso@mit.edu>
commit c755e251357a0cee0679081f08c3f4ba797a8009 upstream.
The xattr_sem deadlock problems fixed in commit 2e81a4eeedca: "ext4:
avoid deadlock when expanding inode size" didn't include the use of
xattr_sem in fs/ext4/inline.c. With the addition of project quota
which added a new extra inode field, this exposed deadlocks in the
inline_data code similar to the ones fixed by 2e81a4eeedca.
The deadlock can be reproduced via:
dmesg -n 7
mke2fs -t ext4 -O inline_data -Fq -I 256 /dev/vdc 32768
mount -t ext4 -o debug_want_extra_isize=24 /dev/vdc /vdc
mkdir /vdc/a
umount /vdc
mount -t ext4 /dev/vdc /vdc
echo foo > /vdc/a/foo
and looks like this:
[ 11.158815]
[ 11.160276] =============================================
[ 11.161960] [ INFO: possible recursive locking detected ]
[ 11.161960] 4.10.0-rc3-00015-g011b30a8a3cf #160 Tainted: G W
[ 11.161960] ---------------------------------------------
[ 11.161960] bash/2519 is trying to acquire lock:
[ 11.161960] (&ei->xattr_sem){++++..}, at: [<c1225a4b>] ext4_expand_extra_isize_ea+0x3d/0x4cd
[ 11.161960]
[ 11.161960] but task is already holding lock:
[ 11.161960] (&ei->xattr_sem){++++..}, at: [<c1227941>] ext4_try_add_inline_entry+0x3a/0x152
[ 11.161960]
[ 11.161960] other info that might help us debug this:
[ 11.161960] Possible unsafe locking scenario:
[ 11.161960]
[ 11.161960] CPU0
[ 11.161960] ----
[ 11.161960] lock(&ei->xattr_sem);
[ 11.161960] lock(&ei->xattr_sem);
[ 11.161960]
[ 11.161960] *** DEADLOCK ***
[ 11.161960]
[ 11.161960] May be due to missing lock nesting notation
[ 11.161960]
[ 11.161960] 4 locks held by bash/2519:
[ 11.161960] #0: (sb_writers#3){.+.+.+}, at: [<c11a2414>] mnt_want_write+0x1e/0x3e
[ 11.161960] #1: (&type->i_mutex_dir_key){++++++}, at: [<c119508b>] path_openat+0x338/0x67a
[ 11.161960] #2: (jbd2_handle){++++..}, at: [<c123314a>] start_this_handle+0x582/0x622
[ 11.161960] #3: (&ei->xattr_sem){++++..}, at: [<c1227941>] ext4_try_add_inline_entry+0x3a/0x152
[ 11.161960]
[ 11.161960] stack backtrace:
[ 11.161960] CPU: 0 PID: 2519 Comm: bash Tainted: G W 4.10.0-rc3-00015-g011b30a8a3cf #160
[ 11.161960] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.1-1 04/01/2014
[ 11.161960] Call Trace:
[ 11.161960] dump_stack+0x72/0xa3
[ 11.161960] __lock_acquire+0xb7c/0xcb9
[ 11.161960] ? kvm_clock_read+0x1f/0x29
[ 11.161960] ? __lock_is_held+0x36/0x66
[ 11.161960] ? __lock_is_held+0x36/0x66
[ 11.161960] lock_acquire+0x106/0x18a
[ 11.161960] ? ext4_expand_extra_isize_ea+0x3d/0x4cd
[ 11.161960] down_write+0x39/0x72
[ 11.161960] ? ext4_expand_extra_isize_ea+0x3d/0x4cd
[ 11.161960] ext4_expand_extra_isize_ea+0x3d/0x4cd
[ 11.161960] ? _raw_read_unlock+0x22/0x2c
[ 11.161960] ? jbd2_journal_extend+0x1e2/0x262
[ 11.161960] ? __ext4_journal_get_write_access+0x3d/0x60
[ 11.161960] ext4_mark_inode_dirty+0x17d/0x26d
[ 11.161960] ? ext4_add_dirent_to_inline.isra.12+0xa5/0xb2
[ 11.161960] ext4_add_dirent_to_inline.isra.12+0xa5/0xb2
[ 11.161960] ext4_try_add_inline_entry+0x69/0x152
[ 11.161960] ext4_add_entry+0xa3/0x848
[ 11.161960] ? __brelse+0x14/0x2f
[ 11.161960] ? _raw_spin_unlock_irqrestore+0x44/0x4f
[ 11.161960] ext4_add_nondir+0x17/0x5b
[ 11.161960] ext4_create+0xcf/0x133
[ 11.161960] ? ext4_mknod+0x12f/0x12f
[ 11.161960] lookup_open+0x39e/0x3fb
[ 11.161960] ? __wake_up+0x1a/0x40
[ 11.161960] ? lock_acquire+0x11e/0x18a
[ 11.161960] path_openat+0x35c/0x67a
[ 11.161960] ? sched_clock_cpu+0xd7/0xf2
[ 11.161960] do_filp_open+0x36/0x7c
[ 11.161960] ? _raw_spin_unlock+0x22/0x2c
[ 11.161960] ? __alloc_fd+0x169/0x173
[ 11.161960] do_sys_open+0x59/0xcc
[ 11.161960] SyS_open+0x1d/0x1f
[ 11.161960] do_int80_syscall_32+0x4f/0x61
[ 11.161960] entry_INT80_32+0x2f/0x2f
[ 11.161960] EIP: 0xb76ad469
[ 11.161960] EFLAGS: 00000286 CPU: 0
[ 11.161960] EAX: ffffffda EBX: 08168ac8 ECX: 00008241 EDX: 000001b6
[ 11.161960] ESI: b75e46bc EDI: b7755000 EBP: bfbdb108 ESP: bfbdafc0
[ 11.161960] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
Reported-by: George Spelvin <linux@sciencehorizons.net>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/ext4/inline.c | 66 +++++++++++++++++++++++++------------------------------
fs/ext4/xattr.c | 30 ++++++++++---------------
fs/ext4/xattr.h | 32 ++++++++++++++++++++++++++
3 files changed, 74 insertions(+), 54 deletions(-)
--- a/fs/ext4/inline.c
+++ b/fs/ext4/inline.c
@@ -381,7 +381,7 @@ out:
static int ext4_prepare_inline_data(handle_t *handle, struct inode *inode,
unsigned int len)
{
- int ret, size;
+ int ret, size, no_expand;
struct ext4_inode_info *ei = EXT4_I(inode);
if (!ext4_test_inode_state(inode, EXT4_STATE_MAY_INLINE_DATA))
@@ -391,15 +391,14 @@ static int ext4_prepare_inline_data(hand
if (size < len)
return -ENOSPC;
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
if (ei->i_inline_off)
ret = ext4_update_inline_data(handle, inode, len);
else
ret = ext4_create_inline_data(handle, inode, len);
- up_write(&EXT4_I(inode)->xattr_sem);
-
+ ext4_write_unlock_xattr(inode, &no_expand);
return ret;
}
@@ -533,7 +532,7 @@ static int ext4_convert_inline_data_to_e
struct inode *inode,
unsigned flags)
{
- int ret, needed_blocks;
+ int ret, needed_blocks, no_expand;
handle_t *handle = NULL;
int retries = 0, sem_held = 0;
struct page *page = NULL;
@@ -573,7 +572,7 @@ retry:
goto out;
}
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
sem_held = 1;
/* If some one has already done this for us, just exit. */
if (!ext4_has_inline_data(inode)) {
@@ -610,7 +609,7 @@ retry:
put_page(page);
page = NULL;
ext4_orphan_add(handle, inode);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
sem_held = 0;
ext4_journal_stop(handle);
handle = NULL;
@@ -636,7 +635,7 @@ out:
put_page(page);
}
if (sem_held)
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
if (handle)
ext4_journal_stop(handle);
brelse(iloc.bh);
@@ -729,7 +728,7 @@ convert:
int ext4_write_inline_data_end(struct inode *inode, loff_t pos, unsigned len,
unsigned copied, struct page *page)
{
- int ret;
+ int ret, no_expand;
void *kaddr;
struct ext4_iloc iloc;
@@ -747,7 +746,7 @@ int ext4_write_inline_data_end(struct in
goto out;
}
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
BUG_ON(!ext4_has_inline_data(inode));
kaddr = kmap_atomic(page);
@@ -757,7 +756,7 @@ int ext4_write_inline_data_end(struct in
/* clear page dirty so that writepages wouldn't work for us. */
ClearPageDirty(page);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
brelse(iloc.bh);
out:
return copied;
@@ -768,7 +767,7 @@ ext4_journalled_write_inline_data(struct
unsigned len,
struct page *page)
{
- int ret;
+ int ret, no_expand;
void *kaddr;
struct ext4_iloc iloc;
@@ -778,11 +777,11 @@ ext4_journalled_write_inline_data(struct
return NULL;
}
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
kaddr = kmap_atomic(page);
ext4_write_inline_data(inode, &iloc, kaddr, 0, len);
kunmap_atomic(kaddr);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
return iloc.bh;
}
@@ -1259,7 +1258,7 @@ out:
int ext4_try_add_inline_entry(handle_t *handle, struct ext4_filename *fname,
struct inode *dir, struct inode *inode)
{
- int ret, inline_size;
+ int ret, inline_size, no_expand;
void *inline_start;
struct ext4_iloc iloc;
@@ -1267,7 +1266,7 @@ int ext4_try_add_inline_entry(handle_t *
if (ret)
return ret;
- down_write(&EXT4_I(dir)->xattr_sem);
+ ext4_write_lock_xattr(dir, &no_expand);
if (!ext4_has_inline_data(dir))
goto out;
@@ -1313,7 +1312,7 @@ int ext4_try_add_inline_entry(handle_t *
out:
ext4_mark_inode_dirty(handle, dir);
- up_write(&EXT4_I(dir)->xattr_sem);
+ ext4_write_unlock_xattr(dir, &no_expand);
brelse(iloc.bh);
return ret;
}
@@ -1673,7 +1672,7 @@ int ext4_delete_inline_entry(handle_t *h
struct buffer_head *bh,
int *has_inline_data)
{
- int err, inline_size;
+ int err, inline_size, no_expand;
struct ext4_iloc iloc;
void *inline_start;
@@ -1681,7 +1680,7 @@ int ext4_delete_inline_entry(handle_t *h
if (err)
return err;
- down_write(&EXT4_I(dir)->xattr_sem);
+ ext4_write_lock_xattr(dir, &no_expand);
if (!ext4_has_inline_data(dir)) {
*has_inline_data = 0;
goto out;
@@ -1715,7 +1714,7 @@ int ext4_delete_inline_entry(handle_t *h
ext4_show_inline_dir(dir, iloc.bh, inline_start, inline_size);
out:
- up_write(&EXT4_I(dir)->xattr_sem);
+ ext4_write_unlock_xattr(dir, &no_expand);
brelse(iloc.bh);
if (err != -ENOENT)
ext4_std_error(dir->i_sb, err);
@@ -1814,11 +1813,11 @@ out:
int ext4_destroy_inline_data(handle_t *handle, struct inode *inode)
{
- int ret;
+ int ret, no_expand;
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
ret = ext4_destroy_inline_data_nolock(handle, inode);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
return ret;
}
@@ -1903,7 +1902,7 @@ out:
void ext4_inline_data_truncate(struct inode *inode, int *has_inline)
{
handle_t *handle;
- int inline_size, value_len, needed_blocks;
+ int inline_size, value_len, needed_blocks, no_expand;
size_t i_size;
void *value = NULL;
struct ext4_xattr_ibody_find is = {
@@ -1920,7 +1919,7 @@ void ext4_inline_data_truncate(struct in
if (IS_ERR(handle))
return;
- down_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_lock_xattr(inode, &no_expand);
if (!ext4_has_inline_data(inode)) {
*has_inline = 0;
ext4_journal_stop(handle);
@@ -1978,7 +1977,7 @@ out_error:
up_write(&EXT4_I(inode)->i_data_sem);
out:
brelse(is.iloc.bh);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
kfree(value);
if (inode->i_nlink)
ext4_orphan_del(handle, inode);
@@ -1994,7 +1993,7 @@ out:
int ext4_convert_inline_data(struct inode *inode)
{
- int error, needed_blocks;
+ int error, needed_blocks, no_expand;
handle_t *handle;
struct ext4_iloc iloc;
@@ -2016,15 +2015,10 @@ int ext4_convert_inline_data(struct inod
goto out_free;
}
- down_write(&EXT4_I(inode)->xattr_sem);
- if (!ext4_has_inline_data(inode)) {
- up_write(&EXT4_I(inode)->xattr_sem);
- goto out;
- }
-
- error = ext4_convert_inline_data_nolock(handle, inode, &iloc);
- up_write(&EXT4_I(inode)->xattr_sem);
-out:
+ ext4_write_lock_xattr(inode, &no_expand);
+ if (ext4_has_inline_data(inode))
+ error = ext4_convert_inline_data_nolock(handle, inode, &iloc);
+ ext4_write_unlock_xattr(inode, &no_expand);
ext4_journal_stop(handle);
out_free:
brelse(iloc.bh);
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -1188,16 +1188,14 @@ ext4_xattr_set_handle(handle_t *handle,
struct ext4_xattr_block_find bs = {
.s = { .not_found = -ENODATA, },
};
- unsigned long no_expand;
+ int no_expand;
int error;
if (!name)
return -EINVAL;
if (strlen(name) > 255)
return -ERANGE;
- down_write(&EXT4_I(inode)->xattr_sem);
- no_expand = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
- ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ ext4_write_lock_xattr(inode, &no_expand);
error = ext4_reserve_inode_write(handle, inode, &is.iloc);
if (error)
@@ -1264,7 +1262,7 @@ ext4_xattr_set_handle(handle_t *handle,
ext4_xattr_update_super_block(handle, inode->i_sb);
inode->i_ctime = current_time(inode);
if (!value)
- ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ no_expand = 0;
error = ext4_mark_iloc_dirty(handle, inode, &is.iloc);
/*
* The bh is consumed by ext4_mark_iloc_dirty, even with
@@ -1278,9 +1276,7 @@ ext4_xattr_set_handle(handle_t *handle,
cleanup:
brelse(is.iloc.bh);
brelse(bs.bh);
- if (no_expand == 0)
- ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
return error;
}
@@ -1497,12 +1493,11 @@ int ext4_expand_extra_isize_ea(struct in
int error = 0, tried_min_extra_isize = 0;
int s_min_extra_isize = le16_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_min_extra_isize);
int isize_diff; /* How much do we need to grow i_extra_isize */
+ int no_expand;
+
+ if (ext4_write_trylock_xattr(inode, &no_expand) == 0)
+ return 0;
- down_write(&EXT4_I(inode)->xattr_sem);
- /*
- * Set EXT4_STATE_NO_EXPAND to avoid recursion when marking inode dirty
- */
- ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
retry:
isize_diff = new_extra_isize - EXT4_I(inode)->i_extra_isize;
if (EXT4_I(inode)->i_extra_isize >= new_extra_isize)
@@ -1584,17 +1579,16 @@ shift:
EXT4_I(inode)->i_extra_isize = new_extra_isize;
brelse(bh);
out:
- ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
- up_write(&EXT4_I(inode)->xattr_sem);
+ ext4_write_unlock_xattr(inode, &no_expand);
return 0;
cleanup:
brelse(bh);
/*
- * We deliberately leave EXT4_STATE_NO_EXPAND set here since inode
- * size expansion failed.
+ * Inode size expansion failed; don't try again
*/
- up_write(&EXT4_I(inode)->xattr_sem);
+ no_expand = 1;
+ ext4_write_unlock_xattr(inode, &no_expand);
return error;
}
--- a/fs/ext4/xattr.h
+++ b/fs/ext4/xattr.h
@@ -102,6 +102,38 @@ extern const struct xattr_handler ext4_x
#define EXT4_XATTR_NAME_ENCRYPTION_CONTEXT "c"
+/*
+ * The EXT4_STATE_NO_EXPAND is overloaded and used for two purposes.
+ * The first is to signal that there the inline xattrs and data are
+ * taking up so much space that we might as well not keep trying to
+ * expand it. The second is that xattr_sem is taken for writing, so
+ * we shouldn't try to recurse into the inode expansion. For this
+ * second case, we need to make sure that we take save and restore the
+ * NO_EXPAND state flag appropriately.
+ */
+static inline void ext4_write_lock_xattr(struct inode *inode, int *save)
+{
+ down_write(&EXT4_I(inode)->xattr_sem);
+ *save = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+}
+
+static inline int ext4_write_trylock_xattr(struct inode *inode, int *save)
+{
+ if (down_write_trylock(&EXT4_I(inode)->xattr_sem) == 0)
+ return 0;
+ *save = ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ ext4_set_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ return 1;
+}
+
+static inline void ext4_write_unlock_xattr(struct inode *inode, int *save)
+{
+ if (*save == 0)
+ ext4_clear_inode_state(inode, EXT4_STATE_NO_EXPAND);
+ up_write(&EXT4_I(inode)->xattr_sem);
+}
+
extern ssize_t ext4_listxattr(struct dentry *, char *, size_t);
extern int ext4_xattr_get(struct inode *, int, const char *, void *, size_t);
next prev parent reply other threads:[~2017-03-10 9:30 UTC|newest]
Thread overview: 180+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-10 9:07 [PATCH 4.10 000/167] 4.10.2-stable review Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 001/167] MIPS: pic32mzda: Fix linker error for pic32_get_pbclk() Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 002/167] MIPS: Fix special case in 64 bit IP checksumming Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 004/167] MIPS: OCTEON: Fix copy_from_user fault handling for large buffers Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 005/167] MIPS: Lantiq: Keep ethernet enabled during boot Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 006/167] MIPS: Clear ISA bit correctly in get_frame_info() Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 007/167] MIPS: Prevent unaligned accesses during stack unwinding Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 008/167] MIPS: Fix get_frame_info() handling of microMIPS function size Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 009/167] MIPS: Fix is_jump_ins() handling of 16b microMIPS instructions Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 010/167] MIPS: Calculate microMIPS ra properly when unwinding the stack Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 011/167] MIPS: Handle microMIPS jumps in the same way as MIPS32/MIPS64 jumps Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 012/167] mmc: sdhci-acpi: support deferred probe Greg Kroah-Hartman
2017-03-26 11:26 ` Andrey Utkin
2017-03-27 2:40 ` Zhang Rui
2017-03-27 16:36 ` Greg Kroah-Hartman
2017-03-28 5:51 ` Zhang Rui
2017-03-28 8:51 ` Zhang Rui
2017-03-28 10:35 ` Greg Kroah-Hartman
2017-03-28 10:46 ` Mika Westerberg
2017-03-28 11:25 ` Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 013/167] [media] am437x-vpfe: always assign bpp variable Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 014/167] [media] uvcvideo: Fix a wrong macro Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 015/167] [media] media: fix dm1105.c build error Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 017/167] [media] dvb-usb: dont use stack for firmware load Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 018/167] [media] lirc_dev: LIRC_{G,S}ET_REC_MODE do not work Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 019/167] [media] media: Properly pass through media entity types in entity enumeration Greg Kroah-Hartman
2017-03-10 9:07 ` Greg Kroah-Hartman [this message]
2017-03-10 9:07 ` [PATCH 4.10 021/167] spi: s3c64xx: fix inconsistency between binding and driver Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 022/167] ARM: at91: define LPDDR types Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 023/167] ARM: dts: at91: Enable DMA on sama5d4_xplained console Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 024/167] ARM: dts: at91: Enable DMA on sama5d2_xplained console Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 025/167] ALSA: hda/realtek - Cannot adjust speakers volume on a Dell AIO Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 026/167] ALSA: hda - fix Lewisburg audio issue Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 027/167] ALSA: timer: Reject user params with too small ticks Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 028/167] ALSA: ctxfi: Fallback DMA mask to 32bit Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 029/167] ALSA: seq: Fix link corruption by event error handling Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 030/167] ALSA: hda - Add subwoofer support for Dell Inspiron 17 7000 Gaming Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 031/167] ALSA: hda - Fix micmute hotkey problem for a lenovo AIO machine Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 032/167] hwmon: (it87) Do not overwrite bit 2..6 of pwm control registers Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 033/167] hwmon: (it87) Ensure that pwm control cache is current before updating values Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 034/167] staging: greybus: loopback: fix broken udelay Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 035/167] staging/lustre/lnet: Fix allocation size for sv_cpt_data Greg Kroah-Hartman
2017-03-10 9:07 ` [PATCH 4.10 036/167] staging: rtl: fix possible NULL pointer dereference Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 037/167] coresight: STM: Balance enable/disable Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 038/167] coresight: fix kernel panic caused by invalid CPU Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 039/167] regulator: Fix regulator_summary for deviceless consumers Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 040/167] tpm_tis: use default timeout value if chip reports it as zero Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 041/167] tpm_tis: fix the error handling of init_tis() Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 042/167] iommu/vt-d: Fix some macros that are incorrectly specified in intel-iommu Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 043/167] iommu/vt-d: Tylersburg isoch identity map check is done too late Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 044/167] CIFS: Fix splice read for non-cached files Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 045/167] mm, devm_memremap_pages: hold device_hotplug lock over mem_hotplug_{begin, done} Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 046/167] mm/page_alloc: fix nodes for reclaim in fast path Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 047/167] mm: vmpressure: fix sending wrong events on underflow Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 048/167] mm: do not access page->mapping directly on page_endio Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 049/167] mm balloon: umount balloon_mnt when removing vb device Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 050/167] mm, vmscan: cleanup lru size claculations Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 051/167] mm, vmscan: consider eligible zones in get_scan_count Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 052/167] sigaltstack: support SS_AUTODISARM for CONFIG_COMPAT Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 053/167] ipc/shm: Fix shmat mmap nil-page protection Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 054/167] ima: fix ima_d_path() possible race with rename Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 055/167] PM / devfreq: Fix available_governor sysfs Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 056/167] PM / devfreq: Fix wrong trans_stat of passive devfreq device Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 057/167] dm cache: fix corruption seen when using cache > 2TB Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 058/167] dm stats: fix a leaked s->histogram_boundaries array Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 059/167] dm round robin: revert "use percpu repeat_count and current_path" Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 060/167] dm raid: fix data corruption on reshape request Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 061/167] scsi: storvsc: use tagged SRB requests if supported by the device Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 062/167] scsi: storvsc: properly handle SRB_ERROR when sense message is present Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 063/167] scsi: storvsc: properly set residual data length on errors Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 064/167] scsi: qla2xxx: Cleaned up queue configuration code Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 065/167] scsi: qla2xxx: Fix response queue count for Target mode Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 066/167] scsi: qla2xxx: Fix Regression introduced by pci_alloc_irq_vectors_affinity call Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 067/167] scsi: aacraid: Reorder Adapter status check Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 068/167] scsi: use scsi_device_from_queue() for scsi_dh Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 069/167] power: reset: at91-poweroff: timely shutdown LPDDR memories Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 070/167] Fix: Disable sys_membarrier when nohz_full is enabled Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 071/167] jbd2: dont leak modified metadata buffers on an aborted journal Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 072/167] block/loop: fix race between I/O and set_status Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 073/167] loop: fix LO_FLAGS_PARTSCAN hang Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 074/167] ext4: Include forgotten start block on fallocate insert range Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 075/167] ext4: do not polute the extents cache while shifting extents Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 076/167] ext4: trim allocation requests to group size Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 077/167] ext4: fix data corruption in data=journal mode Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 078/167] ext4: fix use-after-iput when fscrypt contexts are inconsistent Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 079/167] ext4: fix inline data error paths Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 080/167] ext4: preserve the needs_recovery flag when the journal is aborted Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 081/167] ext4: return EROFS if device is r/o and journal replay is needed Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 082/167] ext4: fix fencepost in s_first_meta_bg validation Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 084/167] mei: remove support for broken parallel read Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 085/167] ath10k: fix boot failure in UTF mode/testmode Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 086/167] ath5k: drop bogus warning on drv_set_key with unsupported cipher Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 087/167] ath9k: fix race condition in enabling/disabling IRQs Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 088/167] ath9k: use correct OTP register offsets for the AR9340 and AR9550 Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 089/167] PCI: hv: Fix wslot_to_devfn() to fix warnings on device removal Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 090/167] pci/hotplug/pnv-php: Disable MSI and PCI device properly Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 091/167] PCI: altera: Fix TLP_CFG_DW0 for TLP write Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 092/167] Drivers: hv: vmbus: Raise retry/wait limits in vmbus_post_msg() Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 093/167] crypto: xts - Add ECB dependency Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 094/167] crypto: testmgr - Pad aes_ccm_enc_tv_template vector Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 095/167] crypto: xts - Propagate NEED_FALLBACK bit Greg Kroah-Hartman
2017-03-10 9:08 ` [PATCH 4.10 096/167] crypto: api - Add crypto_requires_off helper Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 097/167] crypto: vmx - Use skcipher for cbc fallback Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 098/167] crypto: vmx - Use skcipher for xts fallback Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 099/167] fuse: add missing FR_FORCE Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 100/167] x86/pkeys: Check against max pkey to avoid overflows Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 101/167] arm/arm64: KVM: Enforce unconditional flush to PoC when mapping to stage-2 Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 102/167] arm64: dma-mapping: Fix dma_mapping_error() when bypassing SWIOTLB Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 103/167] arm64: fix erroneous __raw_read_system_reg() cases Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 104/167] KVM: arm/arm64: vgic: Stop injecting the MSI occurrence twice Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 105/167] Revert "arm64: mm: set the contiguous bit for kernel mappings where appropriate" Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 106/167] iio: pressure: mpl115: do not rely on structure field ordering Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 107/167] iio: pressure: mpl3115: " Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 108/167] can: gs_usb: Dont use stack memory for USB transfers Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 109/167] can: usb_8dev: Fix memory leak of priv->cmd_msg_buffer Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 110/167] w1: dont leak refcount on slave attach failure in w1_attach_slave_device() Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 111/167] w1: ds2490: USB transfer buffers need to be DMAable Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 112/167] usb: musb: da8xx: Remove CPPI 3.0 quirk and methods Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 113/167] usb: dwc3: gadget: skip Set/Clear Halt when invalid Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 114/167] usb: host: xhci: plat: check hcc_params after add hcd Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 115/167] usb: gadget: udc-core: Rescan pending list on driver unbind Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 116/167] usb: gadget: udc: fsl: Add missing complete function Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 117/167] usb: gadget: f_hid: fix: Free out requests Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 118/167] usb: gadget: f_hid: fix: Prevent accessing released memory Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 119/167] usb: gadget: f_hid: Use spinlock instead of mutex Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 120/167] usb: gadget: f_hid: fix: Move IN request allocation to set_alt() Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 121/167] hv: allocate synic pages for all present CPUs Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 122/167] hv: init percpu_list in hv_synic_alloc() Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 123/167] hv: dont reset hv_context.tsc_page on crash Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 124/167] Drivers: hv: vmbus: Prevent sending data on a rescinded channel Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 125/167] Drivers: hv: vmbus: Fix a rescind handling bug Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 126/167] Drivers: hv: util: kvp: Fix a rescind processing issue Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 127/167] Drivers: hv: util: Fcopy: " Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 128/167] Drivers: hv: util: Backup: " Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 129/167] RDMA/core: Fix incorrect structure packing for booleans Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 130/167] rdma_cm: fail iwarp accepts w/o connection params Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 131/167] gfs2: Add missing rcu locking for glock lookup Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 132/167] remoteproc: qcom: mdt_loader: Dont overwrite firmware object Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 133/167] rtlwifi: Fix alignment issues Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 134/167] rtlwifi: rtl8192c-common: Fix "BUG: KASAN: Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 135/167] VME: restore bus_remove function causing incomplete module unload Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 136/167] nfsd: minor nfsd_setattr cleanup Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 137/167] nfsd: special case truncates some more Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 138/167] NFSv4: Fix memory and state leak in _nfs4_open_and_get_state Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 139/167] NFSv4: Fix reboot recovery in copy offload Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 140/167] pNFS/flexfiles: If the layout is invalid, it must be updated before retrying Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 141/167] Revert "NFSv4.1: Handle NFS4ERR_BADSESSION/NFS4ERR_DEADSESSION replies to OP_SEQUENCE" Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 142/167] NFSv4: fix getacl head length estimation Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 143/167] NFSv4: fix getacl ERANGE for some ACL buffer sizes Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 144/167] f2fs: fix a problem of using memory after free Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 145/167] f2fs: fix multiple f2fs_add_link() calls having same name Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 146/167] f2fs: add ovp valid_blocks check for bg gc victim to fg_gc Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 147/167] f2fs: avoid to issue redundant discard commands Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 148/167] f2fs: Fix zoned block device support Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 149/167] rtc: sun6i: Disable the build as a module Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 150/167] rtc: sun6i: Add some locking Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 151/167] rtc: sun6i: Switch to the external oscillator Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 152/167] md linear: fix a race between linear_add() and linear_congested() Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 154/167] mtd: nand: ifc: Fix location of eccstat registers for IFC V1.0 Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 155/167] dmaengine: ipu: Make sure the interrupt routine checks all interrupts Greg Kroah-Hartman
2017-03-10 9:09 ` [PATCH 4.10 156/167] xprtrdma: Fix Read chunk padding Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 157/167] xprtrdma: Per-connection pad optimization Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 158/167] xprtrdma: Disable pad optimization by default Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 159/167] xprtrdma: Reduce required number of send SGEs Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 160/167] powerpc/xmon: Fix data-breakpoint Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 161/167] powerpc/mm: Add MMU_FTR_KERNEL_RO to possible feature mask Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 162/167] powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 163/167] module: fix memory leak on early load_module() failures Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 164/167] MIPS: IP22: Reformat inline assembler code to modern standards Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 165/167] MIPS: IP22: Fix build error due to binutils 2.25 uselessnes Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 166/167] scsi: lpfc: Correct WQ creation for pagesize Greg Kroah-Hartman
2017-03-10 9:10 ` [PATCH 4.10 167/167] ceph: update readpages osd request according to size of pages Greg Kroah-Hartman
2017-03-10 18:36 ` [PATCH 4.10 000/167] 4.10.2-stable review Guenter Roeck
2017-03-12 5:23 ` Greg Kroah-Hartman
2017-03-10 19:14 ` Shuah Khan
2017-03-12 5:23 ` Greg Kroah-Hartman
[not found] ` <58c2b8ac.1f002e0a.ae306.aa13@mx.google.com>
[not found] ` <m2mvcsd8aj.fsf@baylibre.com>
2017-03-10 23:52 ` Kevin Hilman
2017-03-11 1:04 ` Guenter Roeck
2017-03-11 1:32 ` Kevin Hilman
2017-03-12 5:24 ` 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=20170310083958.278822272@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@sciencehorizons.net \
--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).