From 82e1eb96433a03dd66761d4614e0f1a160e340e3 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Thu, 18 Jun 2015 19:00:58 -0400 Subject: [PATCH 1/4] Add patch to fix touchpad issues on Razer machines (rhbz 1227891) --- ...populating-F30-when-the-touchpad-has.patch | 44 +++++++++++++++++++ kernel.spec | 9 ++++ 2 files changed, 53 insertions(+) create mode 100644 HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch diff --git a/HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch b/HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch new file mode 100644 index 000000000..a3e2c8e34 --- /dev/null +++ b/HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch @@ -0,0 +1,44 @@ +From: Andrew Duggan +Date: Tue, 16 Jun 2015 14:08:41 -0700 +Subject: [PATCH] HID: rmi: Disable populating F30 when the touchpad has + physical buttons + +Physical buttons do not use F30 to report their state and in some cases the +data reported in F30 is incorrect and inconsistent with what is reported by +the HID descriptor. When physical buttons are present, ignore F30 and let +hid-input report buttons based on what is defined in the HID descriptor. + +Signed-off-by: Andrew Duggan +Reviewed-by: Benjamin Tissoires +Signed-off-by: Jiri Kosina +--- + drivers/hid/hid-rmi.c | 9 ++++++--- + 1 file changed, 6 insertions(+), 3 deletions(-) + +diff --git a/drivers/hid/hid-rmi.c b/drivers/hid/hid-rmi.c +index 49d4fe4f5987..702aafe30d11 100644 +--- a/drivers/hid/hid-rmi.c ++++ b/drivers/hid/hid-rmi.c +@@ -850,6 +850,7 @@ static int rmi_populate_f30(struct hid_device *hdev) + + static int rmi_populate(struct hid_device *hdev) + { ++ struct rmi_data *data = hid_get_drvdata(hdev); + int ret; + + ret = rmi_scan_pdt(hdev); +@@ -864,9 +865,11 @@ static int rmi_populate(struct hid_device *hdev) + return ret; + } + +- ret = rmi_populate_f30(hdev); +- if (ret) +- hid_warn(hdev, "Error while initializing F30 (%d).\n", ret); ++ if (!(data->device_flags & RMI_DEVICE_HAS_PHYS_BUTTONS)) { ++ ret = rmi_populate_f30(hdev); ++ if (ret) ++ hid_warn(hdev, "Error while initializing F30 (%d).\n", ret); ++ } + + return 0; + } diff --git a/kernel.spec b/kernel.spec index 39dc89b5b..dfc4500bd 100644 --- a/kernel.spec +++ b/kernel.spec @@ -702,6 +702,9 @@ Patch26240: Input-synaptics-pin-3-touches-when-the-firmware-repo.patch # CVE-2015-XXXX rhbz 1230770 1230774 Patch26241: kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch +# rhbz 1227891 +Patch26250: HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch + # END OF PATCH DEFINITIONS %endif @@ -1519,6 +1522,9 @@ ApplyPatch Input-synaptics-pin-3-touches-when-the-firmware-repo.patch # CVE-2015-XXXX rhbz 1230770 1230774 ApplyPatch kvm-x86-fix-kvm_apic_has_events-to-check-for-NULL-po.patch +#rhbz 1227891 +ApplyPatch HID-rmi-Disable-populating-F30-when-the-touchpad-has.patch + # END OF PATCH APPLICATIONS %endif @@ -2369,6 +2375,9 @@ fi # # %changelog +* Thu Jun 18 2015 Josh Boyer +- Add patch to fix touchpad issues on Razer machines (rhbz 1227891) + * Fri Jun 12 2015 Josh Boyer - CVE-2015-XXXX kvm: NULL ptr deref in kvm_apic_has_events (rhbz 1230770 1230774) From 4a994122a01c3b65c35763af0d0244f9fa61b150 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Tue, 23 Jun 2015 07:51:57 -0500 Subject: [PATCH 2/4] Linux v4.0.6 --- ...auditing-support-for-cannonical-mode.patch | 64 --------- ...cloning-when-same-inode-used-as-sour.patch | 126 ------------------ ...-regression-in-raid-level-conversion.patch | 55 -------- ...s-fix-uninit-variable-in-clone-ioctl.patch | 26 ---- ...dd-missing-check-for-dead-clone-root.patch | 29 ---- ...-leave-without-decrementing-clone-ro.patch | 58 -------- ...cs-add-min-max-quirk-for-Lenovo-S540.patch | 39 ------ ...i_unregister-in-favour-of-bdi_destro.patch | 117 ---------------- ...phans-while-looking-up-default-subvo.patch | 38 ------ ...handling-for-fiemap_fill_next_extent.patch | 34 ----- kernel.spec | 41 +----- sources | 2 +- 12 files changed, 5 insertions(+), 624 deletions(-) delete mode 100644 0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch delete mode 100644 Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch delete mode 100644 Btrfs-fix-regression-in-raid-level-conversion.patch delete mode 100644 Btrfs-fix-uninit-variable-in-clone-ioctl.patch delete mode 100644 Btrfs-send-add-missing-check-for-dead-clone-root.patch delete mode 100644 Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch delete mode 100644 Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch delete mode 100644 block-discard-bdi_unregister-in-favour-of-bdi_destro.patch delete mode 100644 btrfs-cleanup-orphans-while-looking-up-default-subvo.patch delete mode 100644 btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch diff --git a/0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch b/0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch deleted file mode 100644 index 4a39105b7..000000000 --- a/0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 9983ea5b8ff57286d625787ee8fd6ce5df430fbc Mon Sep 17 00:00:00 2001 -From: Laura Abbott -Date: Wed, 13 May 2015 17:03:06 -0700 -Subject: [PATCH] n_tty: Fix auditing support for cannonical mode -To: Greg Kroah-Hartman -To: Jiri Slaby -To: Peter Hurley -To: Andy Lutomirski -Cc: linux-kernel@vger.kernel.org - -Commit 32f13521ca68bc624ff6effc77f308a52b038bf0 -("n_tty: Line copy to user buffer in canonical mode") -changed cannonical mode copying to use copy_to_user -but missed adding the call to the audit framework. -Add in the appropriate functions to get audit support. - -Fixes: 32f13521ca68 ("n_tty: Line copy to user buffer in canonical mode") -Reported-by: Miloslav Trmač -Signed-off-by: Laura Abbott ---- - drivers/tty/n_tty.c | 17 ++++++++++++++--- - 1 file changed, 14 insertions(+), 3 deletions(-) - -diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c -index cf6e0f2..1a3d39b 100644 ---- a/drivers/tty/n_tty.c -+++ b/drivers/tty/n_tty.c -@@ -162,6 +162,17 @@ static inline int tty_put_user(struct tty_struct *tty, unsigned char x, - return put_user(x, ptr); - } - -+static inline int tty_copy_to_user(struct tty_struct *tty, -+ void __user *to, -+ const void *from, -+ unsigned long n) -+{ -+ struct n_tty_data *ldata = tty->disc_data; -+ -+ tty_audit_add_data(tty, to, n, ldata->icanon); -+ return copy_to_user(to, from, n); -+} -+ - /** - * n_tty_kick_worker - start input worker (if required) - * @tty: terminal -@@ -2072,12 +2083,12 @@ static int canon_copy_from_read_buf(struct tty_struct *tty, - __func__, eol, found, n, c, size, more); - - if (n > size) { -- ret = copy_to_user(*b, read_buf_addr(ldata, tail), size); -+ ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), size); - if (ret) - return -EFAULT; -- ret = copy_to_user(*b + size, ldata->read_buf, n - size); -+ ret = tty_copy_to_user(tty, *b + size, ldata->read_buf, n - size); - } else -- ret = copy_to_user(*b, read_buf_addr(ldata, tail), n); -+ ret = tty_copy_to_user(tty, *b, read_buf_addr(ldata, tail), n); - - if (ret) - return -EFAULT; --- -2.1.0 - diff --git a/Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch b/Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch deleted file mode 100644 index f8e08df4d..000000000 --- a/Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch +++ /dev/null @@ -1,126 +0,0 @@ -From: Filipe Manana -Date: Tue, 31 Mar 2015 14:56:46 +0100 -Subject: [PATCH] Btrfs: fix range cloning when same inode used as source and - destination - -While searching for extents to clone we might find one where we only use -a part of it coming from its tail. If our destination inode is the same -the source inode, we end up removing the tail part of the extent item and -insert after a new one that point to the same extent with an adjusted -key file offset and data offset. After this we search for the next extent -item in the fs/subvol tree with a key that has an offset incremented by -one. But this second search leaves us at the new extent item we inserted -previously, and since that extent item has a non-zero data offset, it -it can make us call btrfs_drop_extents with an empty range (start == end) -which causes the following warning: - -[23978.537119] WARNING: CPU: 6 PID: 16251 at fs/btrfs/file.c:550 btrfs_drop_extent_cache+0x43/0x385 [btrfs]() -(...) -[23978.557266] Call Trace: -[23978.557978] [] dump_stack+0x4c/0x65 -[23978.559191] [] warn_slowpath_common+0xa1/0xbb -[23978.560699] [] ? btrfs_drop_extent_cache+0x43/0x385 [btrfs] -[23978.562389] [] warn_slowpath_null+0x1a/0x1c -[23978.563613] [] btrfs_drop_extent_cache+0x43/0x385 [btrfs] -[23978.565103] [] ? time_hardirqs_off+0x15/0x28 -[23978.566294] [] ? trace_hardirqs_off+0xd/0xf -[23978.567438] [] __btrfs_drop_extents+0x6b/0x9e1 [btrfs] -[23978.568702] [] ? trace_hardirqs_on+0xd/0xf -[23978.569763] [] ? ____cache_alloc+0x69/0x2eb -[23978.570817] [] ? virt_to_head_page+0x9/0x36 -[23978.571872] [] ? cache_alloc_debugcheck_after.isra.42+0x16c/0x1cb -[23978.573466] [] ? kmemleak_alloc_recursive.constprop.52+0x16/0x18 -[23978.574962] [] btrfs_drop_extents+0x66/0x7f [btrfs] -[23978.576179] [] btrfs_clone+0x516/0xaf5 [btrfs] -[23978.577311] [] ? lock_extent_range+0x7b/0xcd [btrfs] -[23978.578520] [] btrfs_ioctl_clone+0x28e/0x39f [btrfs] -[23978.580282] [] btrfs_ioctl+0xb51/0x219a [btrfs] -(...) -[23978.591887] ---[ end trace 988ec2a653d03ed3 ]--- - -Then we attempt to insert a new extent item with a key that already -exists, which makes btrfs_insert_empty_item return -EEXIST resulting in -abortion of the current transaction: - -[23978.594355] WARNING: CPU: 6 PID: 16251 at fs/btrfs/super.c:260 __btrfs_abort_transaction+0x52/0x114 [btrfs]() -(...) -[23978.622589] Call Trace: -[23978.623181] [] dump_stack+0x4c/0x65 -[23978.624359] [] warn_slowpath_common+0xa1/0xbb -[23978.625573] [] ? __btrfs_abort_transaction+0x52/0x114 [btrfs] -[23978.626971] [] warn_slowpath_fmt+0x46/0x48 -[23978.628003] [] ? vprintk_default+0x1d/0x1f -[23978.629138] [] __btrfs_abort_transaction+0x52/0x114 [btrfs] -[23978.630528] [] btrfs_clone+0x7fc/0xaf5 [btrfs] -[23978.631635] [] ? lock_extent_range+0x7b/0xcd [btrfs] -[23978.632886] [] btrfs_ioctl_clone+0x28e/0x39f [btrfs] -[23978.634119] [] btrfs_ioctl+0xb51/0x219a [btrfs] -(...) -[23978.647714] ---[ end trace 988ec2a653d03ed4 ]--- - -This is wrong because we should not process the extent item that we just -inserted previously, and instead process the extent item that follows it -in the tree - -For example for the test case I wrote for fstests: - - bs=$((64 * 1024)) - mkfs.btrfs -f -l $bs -O ^no-holes /dev/sdc - mount /dev/sdc /mnt - - xfs_io -f -c "pwrite -S 0xaa $(($bs * 2)) $(($bs * 2))" /mnt/foo - - $CLONER_PROG -s $((3 * $bs)) -d $((267 * $bs)) -l 0 /mnt/foo /mnt/foo - $CLONER_PROG -s $((217 * $bs)) -d $((95 * $bs)) -l 0 /mnt/foo /mnt/foo - -The second clone call fails with -EEXIST, because when we process the -first extent item (offset 262144), we drop part of it (counting from the -end) and then insert a new extent item with a key greater then the key we -found. The next time we search the tree we search for a key with offset -262144 + 1, which leaves us at the new extent item we have just inserted -but we think it refers to an extent that we need to clone. - -Fix this by ensuring the next search key uses an offset corresponding to -the offset of the key we found previously plus the data length of the -corresponding extent item. This ensures we skip new extent items that we -inserted and works for the case of implicit holes too (NO_HOLES feature). - -A test case for fstests follows soon. - -Signed-off-by: Filipe Manana -Signed-off-by: Chris Mason ---- - fs/btrfs/ioctl.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c -index 2b4c5423672d..d79c599240a7 100644 ---- a/fs/btrfs/ioctl.c -+++ b/fs/btrfs/ioctl.c -@@ -3206,6 +3206,8 @@ static int btrfs_clone(struct inode *src, struct inode *inode, - key.offset = off; - - while (1) { -+ u64 next_key_min_offset; -+ - /* - * note the key will change type as we walk through the - * tree. -@@ -3286,7 +3288,7 @@ process_slot: - } else if (key.offset >= off + len) { - break; - } -- -+ next_key_min_offset = key.offset + datal; - size = btrfs_item_size_nr(leaf, slot); - read_extent_buffer(leaf, buf, - btrfs_item_ptr_offset(leaf, slot), -@@ -3501,7 +3503,7 @@ process_slot: - break; - } - btrfs_release_path(path); -- key.offset++; -+ key.offset = next_key_min_offset; - } - ret = 0; - diff --git a/Btrfs-fix-regression-in-raid-level-conversion.patch b/Btrfs-fix-regression-in-raid-level-conversion.patch deleted file mode 100644 index b384f6dfb..000000000 --- a/Btrfs-fix-regression-in-raid-level-conversion.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Chris Mason -Date: Thu, 11 Jun 2015 18:06:51 +0200 -Subject: [PATCH] Btrfs: fix regression in raid level conversion - -Commit 2f0810880f082fa8ba66ab2c33b02e4ff9770a5e changed -btrfs_set_block_group_ro to avoid trying to allocate new chunks with the -new raid profile during conversion. This fixed failures when there was -no space on the drive to allocate a new chunk, but the metadata -reserves were sufficient to continue the conversion. - -But this ended up causing a regression when the drive had plenty of -space to allocate new chunks, mostly because reduce_alloc_profile isn't -using the new raid profile. - -Fixing btrfs_reduce_alloc_profile is a bigger patch. For now, do a -partial revert of 2f0810880, and don't error out if we hit ENOSPC. - -Signed-off-by: Chris Mason -Tested-by: Dave Sterba -Reported-by: Holger Hoffstaette -[adapted for stable kernel branch, v4.0.5] -Signed-off-by: David Sterba ---- - fs/btrfs/extent-tree.c | 18 ++++++++++++++++++ - 1 file changed, 18 insertions(+) - -diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c -index 8b33da6ec3dd..63be2a96ed6a 100644 ---- a/fs/btrfs/extent-tree.c -+++ b/fs/btrfs/extent-tree.c -@@ -8535,6 +8535,24 @@ int btrfs_set_block_group_ro(struct btrfs_root *root, - trans = btrfs_join_transaction(root); - if (IS_ERR(trans)) - return PTR_ERR(trans); -+ /* -+ * if we are changing raid levels, try to allocate a corresponding -+ * block group with the new raid level. -+ */ -+ alloc_flags = update_block_group_flags(root, cache->flags); -+ if (alloc_flags != cache->flags) { -+ ret = do_chunk_alloc(trans, root, alloc_flags, -+ CHUNK_ALLOC_FORCE); -+ /* -+ * ENOSPC is allowed here, we may have enough space -+ * already allocated at the new raid level to -+ * carry on -+ */ -+ if (ret == -ENOSPC) -+ ret = 0; -+ if (ret < 0) -+ goto out; -+ } - - ret = set_block_group_ro(cache, 0); - if (!ret) diff --git a/Btrfs-fix-uninit-variable-in-clone-ioctl.patch b/Btrfs-fix-uninit-variable-in-clone-ioctl.patch deleted file mode 100644 index 2c8ddc67b..000000000 --- a/Btrfs-fix-uninit-variable-in-clone-ioctl.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Chris Mason -Date: Sat, 11 Apr 2015 05:09:06 -0700 -Subject: [PATCH] Btrfs: fix uninit variable in clone ioctl - -Commit 0d97a64e0 creates a new variable but doesn't always set it up. -This puts it back to the original method (key.offset + 1) for the cases -not covered by Filipe's new logic. - -Signed-off-by: Chris Mason ---- - fs/btrfs/ioctl.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c -index d79c599240a7..64e8fb639f72 100644 ---- a/fs/btrfs/ioctl.c -+++ b/fs/btrfs/ioctl.c -@@ -3206,7 +3206,7 @@ static int btrfs_clone(struct inode *src, struct inode *inode, - key.offset = off; - - while (1) { -- u64 next_key_min_offset; -+ u64 next_key_min_offset = key.offset + 1; - - /* - * note the key will change type as we walk through the diff --git a/Btrfs-send-add-missing-check-for-dead-clone-root.patch b/Btrfs-send-add-missing-check-for-dead-clone-root.patch deleted file mode 100644 index 29c70aa1a..000000000 --- a/Btrfs-send-add-missing-check-for-dead-clone-root.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Filipe Manana -Date: Mon, 2 Mar 2015 20:53:52 +0000 -Subject: [PATCH] Btrfs: send, add missing check for dead clone root - -After we locked the root's root item, a concurrent snapshot deletion -call might have set the dead flag on it. So check if the dead flag -is set and abort if it is, just like we do for the parent root. - -Signed-off-by: Filipe Manana -Reviewed-by: David Sterba -Signed-off-by: Chris Mason ---- - fs/btrfs/send.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c -index d6033f540cc7..6ec28f13659e 100644 ---- a/fs/btrfs/send.c -+++ b/fs/btrfs/send.c -@@ -5855,7 +5855,8 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) - clone_sources_to_rollback = i + 1; - spin_lock(&clone_root->root_item_lock); - clone_root->send_in_progress++; -- if (!btrfs_root_readonly(clone_root)) { -+ if (!btrfs_root_readonly(clone_root) || -+ btrfs_root_dead(clone_root)) { - spin_unlock(&clone_root->root_item_lock); - srcu_read_unlock(&fs_info->subvol_srcu, index); - ret = -EPERM; diff --git a/Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch b/Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch deleted file mode 100644 index 48cbdc7d0..000000000 --- a/Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Filipe Manana -Date: Mon, 2 Mar 2015 20:53:53 +0000 -Subject: [PATCH] Btrfs: send, don't leave without decrementing clone root's - send_progress - -If the clone root was not readonly or the dead flag was set on it, we were -leaving without decrementing the root's send_progress counter (and before -we just incremented it). If a concurrent snapshot deletion was in progress -and ended up being aborted, it would be impossible to later attempt to -delete again the snapshot, since the root's send_in_progress counter could -never go back to 0. - -We were also setting clone_sources_to_rollback to i + 1 too early - if we -bailed out because the clone root we got is not readonly or flagged as dead -we ended up later derreferencing a null pointer because we didn't assign -the clone root to sctx->clone_roots[i].root: - - for (i = 0; sctx && i < clone_sources_to_rollback; i++) - btrfs_root_dec_send_in_progress( - sctx->clone_roots[i].root); - -So just don't increment the send_in_progress counter if the root is readonly -or flagged as dead. - -Signed-off-by: Filipe Manana -Reviewed-by: David Sterba -Signed-off-by: Chris Mason ---- - fs/btrfs/send.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c -index 6ec28f13659e..571de5a08fe7 100644 ---- a/fs/btrfs/send.c -+++ b/fs/btrfs/send.c -@@ -5852,9 +5852,7 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) - ret = PTR_ERR(clone_root); - goto out; - } -- clone_sources_to_rollback = i + 1; - spin_lock(&clone_root->root_item_lock); -- clone_root->send_in_progress++; - if (!btrfs_root_readonly(clone_root) || - btrfs_root_dead(clone_root)) { - spin_unlock(&clone_root->root_item_lock); -@@ -5862,10 +5860,12 @@ long btrfs_ioctl_send(struct file *mnt_file, void __user *arg_) - ret = -EPERM; - goto out; - } -+ clone_root->send_in_progress++; - spin_unlock(&clone_root->root_item_lock); - srcu_read_unlock(&fs_info->subvol_srcu, index); - - sctx->clone_roots[i].root = clone_root; -+ clone_sources_to_rollback = i + 1; - } - vfree(clone_sources_tmp); - clone_sources_tmp = NULL; diff --git a/Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch b/Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch deleted file mode 100644 index fbe5c5738..000000000 --- a/Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch +++ /dev/null @@ -1,39 +0,0 @@ -From: Peter Hutterer -Date: Mon, 8 Jun 2015 10:17:32 -0700 -Subject: [PATCH] Input: synaptics - add min/max quirk for Lenovo S540 - -https://bugzilla.redhat.com/show_bug.cgi?id=1223051#c2 - -Cc: stable@vger.kernel.org -Tested-by: tommy.gagnes@gmail.com -Signed-off-by: Peter Hutterer -Signed-off-by: Dmitry Torokhov ---- - drivers/input/mouse/synaptics.c | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c -index 3b06c8a360b6..907ac9bdd763 100644 ---- a/drivers/input/mouse/synaptics.c -+++ b/drivers/input/mouse/synaptics.c -@@ -148,6 +148,11 @@ static const struct min_max_quirk min_max_pnpid_table[] = { - 1024, 5112, 2024, 4832 - }, - { -+ (const char * const []){"LEN2000", NULL}, -+ {ANY_BOARD_ID, ANY_BOARD_ID}, -+ 1024, 5113, 2021, 4832 -+ }, -+ { - (const char * const []){"LEN2001", NULL}, - {ANY_BOARD_ID, ANY_BOARD_ID}, - 1024, 5022, 2508, 4832 -@@ -188,7 +193,7 @@ static const char * const topbuttonpad_pnp_ids[] = { - "LEN0045", - "LEN0047", - "LEN0049", -- "LEN2000", -+ "LEN2000", /* S540 */ - "LEN2001", /* Edge E431 */ - "LEN2002", /* Edge E531 */ - "LEN2003", diff --git a/block-discard-bdi_unregister-in-favour-of-bdi_destro.patch b/block-discard-bdi_unregister-in-favour-of-bdi_destro.patch deleted file mode 100644 index bf3018307..000000000 --- a/block-discard-bdi_unregister-in-favour-of-bdi_destro.patch +++ /dev/null @@ -1,117 +0,0 @@ -From: NeilBrown -Date: Tue, 19 May 2015 15:58:37 +1000 -Subject: [PATCH] block: discard bdi_unregister() in favour of bdi_destroy() - -bdi_unregister() now contains very little functionality. - -It contains a "WARN_ON" if bdi->dev is NULL. This warning is of no -real consequence as bdi->dev isn't needed by anything else in the function, -and it triggers if - blk_cleanup_queue() -> bdi_destroy() -is called before bdi_unregister, which happens since - Commit: 6cd18e711dd8 ("block: destroy bdi before blockdev is unregistered.") - -So this isn't wanted. - -It also calls bdi_set_min_ratio(). This needs to be called after -writes through the bdi have all been flushed, and before the bdi is destroyed. -Calling it early is better than calling it late as it frees up a global -resource. - -Calling it immediately after bdi_wb_shutdown() in bdi_destroy() -perfectly fits these requirements. - -So bdi_unregister() can be discarded with the important content moved to -bdi_destroy(), as can the - writeback_bdi_unregister -event which is already not used. - -Reported-by: Mike Snitzer -Cc: stable@vger.kernel.org (v4.0) -Fixes: c4db59d31e39 ("fs: don't reassign dirty inodes to default_backing_dev_info") -Fixes: 6cd18e711dd8 ("block: destroy bdi before blockdev is unregistered.") -Acked-by: Peter Zijlstra (Intel) -Acked-by: Dan Williams -Tested-by: Nicholas Moulin -Signed-off-by: NeilBrown -Reviewed-by: Christoph Hellwig -Signed-off-by: Jens Axboe ---- - block/genhd.c | 1 - - include/linux/backing-dev.h | 1 - - include/trace/events/writeback.h | 1 - - mm/backing-dev.c | 18 +----------------- - 4 files changed, 1 insertion(+), 20 deletions(-) - -diff --git a/block/genhd.c b/block/genhd.c -index 0a536dc05f3b..666e11b83983 100644 ---- a/block/genhd.c -+++ b/block/genhd.c -@@ -653,7 +653,6 @@ void del_gendisk(struct gendisk *disk) - disk->flags &= ~GENHD_FL_UP; - - sysfs_remove_link(&disk_to_dev(disk)->kobj, "bdi"); -- bdi_unregister(&disk->queue->backing_dev_info); - blk_unregister_queue(disk); - blk_unregister_region(disk_devt(disk), disk->minors); - -diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h -index aff923ae8c4b..d87d8eced064 100644 ---- a/include/linux/backing-dev.h -+++ b/include/linux/backing-dev.h -@@ -116,7 +116,6 @@ __printf(3, 4) - int bdi_register(struct backing_dev_info *bdi, struct device *parent, - const char *fmt, ...); - int bdi_register_dev(struct backing_dev_info *bdi, dev_t dev); --void bdi_unregister(struct backing_dev_info *bdi); - int __must_check bdi_setup_and_register(struct backing_dev_info *, char *); - void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages, - enum wb_reason reason); -diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h -index 5a14ead59696..885d3a380451 100644 ---- a/include/trace/events/writeback.h -+++ b/include/trace/events/writeback.h -@@ -233,7 +233,6 @@ DEFINE_EVENT(writeback_class, name, \ - DEFINE_WRITEBACK_EVENT(writeback_nowork); - DEFINE_WRITEBACK_EVENT(writeback_wake_background); - DEFINE_WRITEBACK_EVENT(writeback_bdi_register); --DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister); - - DECLARE_EVENT_CLASS(wbc_class, - TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), -diff --git a/mm/backing-dev.c b/mm/backing-dev.c -index 6dc4580df2af..000e7b3b9896 100644 ---- a/mm/backing-dev.c -+++ b/mm/backing-dev.c -@@ -359,23 +359,6 @@ static void bdi_wb_shutdown(struct backing_dev_info *bdi) - flush_delayed_work(&bdi->wb.dwork); - } - --/* -- * Called when the device behind @bdi has been removed or ejected. -- * -- * We can't really do much here except for reducing the dirty ratio at -- * the moment. In the future we should be able to set a flag so that -- * the filesystem can handle errors at mark_inode_dirty time instead -- * of only at writeback time. -- */ --void bdi_unregister(struct backing_dev_info *bdi) --{ -- if (WARN_ON_ONCE(!bdi->dev)) -- return; -- -- bdi_set_min_ratio(bdi, 0); --} --EXPORT_SYMBOL(bdi_unregister); -- - static void bdi_wb_init(struct bdi_writeback *wb, struct backing_dev_info *bdi) - { - memset(wb, 0, sizeof(*wb)); -@@ -443,6 +426,7 @@ void bdi_destroy(struct backing_dev_info *bdi) - int i; - - bdi_wb_shutdown(bdi); -+ bdi_set_min_ratio(bdi, 0); - - WARN_ON(!list_empty(&bdi->work_list)); - WARN_ON(delayed_work_pending(&bdi->wb.dwork)); diff --git a/btrfs-cleanup-orphans-while-looking-up-default-subvo.patch b/btrfs-cleanup-orphans-while-looking-up-default-subvo.patch deleted file mode 100644 index ce40531b8..000000000 --- a/btrfs-cleanup-orphans-while-looking-up-default-subvo.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Jeff Mahoney -Date: Fri, 20 Mar 2015 14:02:09 -0400 -Subject: [PATCH] btrfs: cleanup orphans while looking up default subvolume - -Orphans in the fs tree are cleaned up via open_ctree and subvolume -orphans are cleaned via btrfs_lookup_dentry -- except when a default -subvolume is in use. The name for the default subvolume uses a manual -lookup that doesn't trigger orphan cleanup and needs to trigger it -manually as well. This doesn't apply to the remount case since the -subvolumes are cleaned up by walking the root radix tree. - -Signed-off-by: Jeff Mahoney -Reviewed-by: David Sterba -Signed-off-by: Chris Mason ---- - fs/btrfs/super.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c -index 05fef198ff94..e477ed67a49a 100644 ---- a/fs/btrfs/super.c -+++ b/fs/btrfs/super.c -@@ -901,6 +901,15 @@ find_root: - if (IS_ERR(new_root)) - return ERR_CAST(new_root); - -+ if (!(sb->s_flags & MS_RDONLY)) { -+ int ret; -+ down_read(&fs_info->cleanup_work_sem); -+ ret = btrfs_orphan_cleanup(new_root); -+ up_read(&fs_info->cleanup_work_sem); -+ if (ret) -+ return ERR_PTR(ret); -+ } -+ - dir_id = btrfs_root_dirid(&new_root->root_item); - setup_root: - location.objectid = dir_id; diff --git a/btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch b/btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch deleted file mode 100644 index b662c1808..000000000 --- a/btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Chengyu Song -Date: Tue, 24 Mar 2015 18:12:56 -0400 -Subject: [PATCH] btrfs: incorrect handling for fiemap_fill_next_extent return - -fiemap_fill_next_extent returns 0 on success, -errno on error, 1 if this was -the last extent that will fit in user array. If 1 is returned, the return -value may eventually returned to user space, which should not happen, according -to manpage of ioctl. - -Signed-off-by: Chengyu Song -Reviewed-by: David Sterba -Reviewed-by: Liu Bo -Signed-off-by: Chris Mason ---- - fs/btrfs/extent_io.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c -index d688cfe5d496..782f3bc4651d 100644 ---- a/fs/btrfs/extent_io.c -+++ b/fs/btrfs/extent_io.c -@@ -4514,8 +4514,11 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, - } - ret = fiemap_fill_next_extent(fieinfo, em_start, disko, - em_len, flags); -- if (ret) -+ if (ret) { -+ if (ret == 1) -+ ret = 0; - goto out_free; -+ } - } - out_free: - free_extent_map(em); diff --git a/kernel.spec b/kernel.spec index dfc4500bd..c5e20be52 100644 --- a/kernel.spec +++ b/kernel.spec @@ -52,7 +52,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 5 +%define stable_update 6 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -664,9 +664,6 @@ Patch26215: HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch #rhbz 1218882 Patch26216: 0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch -#rhbz 1188695 -Patch26218: 0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch - #rhbz 1133378 Patch26219: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch @@ -679,21 +676,6 @@ Patch26221: drm-i915-turn-off-wc-mmaps.patch #rhbz 1227877 Patch26222: powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch -#rhbz 1226621 -Patch26223: block-discard-bdi_unregister-in-favour-of-bdi_destro.patch - -#rhbz 1223051 -Patch26230: Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch - -#rhbz 1217191 -Patch26231: Btrfs-send-add-missing-check-for-dead-clone-root.patch -Patch26232: Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch -Patch26233: btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch -Patch26234: btrfs-cleanup-orphans-while-looking-up-default-subvo.patch -Patch26235: Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch -Patch26236: Btrfs-fix-uninit-variable-in-clone-ioctl.patch -Patch26237: Btrfs-fix-regression-in-raid-level-conversion.patch - #rhbz 1212230 Patch26238: Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch Patch26239: Input-synaptics-allocate-3-slots-to-keep-stability-i.patch @@ -1484,9 +1466,6 @@ ApplyPatch HID-lenovo-set-INPUT_PROP_POINTING_STICK.patch #rhbz 1218882 ApplyPatch 0001-target-use-vfs_iter_read-write-in-fd_do_rw.patch -#rhbz 1188695 -ApplyPatch 0001-n_tty-Fix-auditing-support-for-cannonical-mode.patch - #rhbz 1133378 ApplyPatch firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch @@ -1499,21 +1478,6 @@ ApplyPatch drm-i915-turn-off-wc-mmaps.patch #rhbz 1227877 ApplyPatch powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch -#rhbz 1226621 -ApplyPatch block-discard-bdi_unregister-in-favour-of-bdi_destro.patch - -#rhbz 1223051 -ApplyPatch Input-synaptics-add-min-max-quirk-for-Lenovo-S540.patch - -#rhbz 1217191 -ApplyPatch Btrfs-send-add-missing-check-for-dead-clone-root.patch -ApplyPatch Btrfs-send-don-t-leave-without-decrementing-clone-ro.patch -ApplyPatch btrfs-incorrect-handling-for-fiemap_fill_next_extent.patch -ApplyPatch btrfs-cleanup-orphans-while-looking-up-default-subvo.patch -ApplyPatch Btrfs-fix-range-cloning-when-same-inode-used-as-sour.patch -ApplyPatch Btrfs-fix-uninit-variable-in-clone-ioctl.patch -ApplyPatch Btrfs-fix-regression-in-raid-level-conversion.patch - #rhbz 1212230 ApplyPatch Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch ApplyPatch Input-synaptics-allocate-3-slots-to-keep-stability-i.patch @@ -2375,6 +2339,9 @@ fi # # %changelog +* Tue Jun 23 2015 Justin M. Forbes - 4.0.6-300 +- Linux v4.0.6 + * Thu Jun 18 2015 Josh Boyer - Add patch to fix touchpad issues on Razer machines (rhbz 1227891) diff --git a/sources b/sources index 5556d288f..4363e5640 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ a86916bd12798220da9eb4a1eec3616d linux-4.0.tar.xz d125eecce68ab6fb5f1f23523c2c04b8 perf-man-4.0.tar.gz -d634b677385910495fd0c831c0cc5520 patch-4.0.5.xz +8ad50a9bdcb3895f1e60acb971bd990b patch-4.0.6.xz From 5ec2628b48d16e14e7d16ad051fea74a709b580f Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Tue, 23 Jun 2015 09:06:14 -0400 Subject: [PATCH 3/4] Refresh from git tree --- Kbuild-Add-an-option-to-enable-GCC-VTA.patch | 2 +- arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch | 2 +- arm-dts-am335x-bone-common-enable-and-use-i2c2.patch | 2 +- arm-dts-am335x-bone-common-setup-default-pinmux-http.patch | 4 ++-- kbuild-AFTER_LINK.patch | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch b/Kbuild-Add-an-option-to-enable-GCC-VTA.patch index 510a51fce..4908a98ba 100644 --- a/Kbuild-Add-an-option-to-enable-GCC-VTA.patch +++ b/Kbuild-Add-an-option-to-enable-GCC-VTA.patch @@ -43,7 +43,7 @@ Signed-off-by: Josh Stone 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile -index 1880cf77059b..f8fb68beeba5 100644 +index af6da040b952..2796a22bb0a4 100644 --- a/Makefile +++ b/Makefile @@ -706,7 +706,11 @@ KBUILD_CFLAGS += -fomit-frame-pointer diff --git a/arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch b/arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch index 50d01732a..2a161bb77 100644 --- a/arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch +++ b/arm-dts-am335x-bone-common-add-uart2_pins-uart4_pins.patch @@ -9,7 +9,7 @@ Signed-off-by: Robert Nelson 1 file changed, 21 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi -index 9688dda39e7a..8e3e77f3121f 100644 +index 853079eb0080..645302a6ada4 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -109,6 +109,27 @@ diff --git a/arm-dts-am335x-bone-common-enable-and-use-i2c2.patch b/arm-dts-am335x-bone-common-enable-and-use-i2c2.patch index 3e01f51e8..7340cd1da 100644 --- a/arm-dts-am335x-bone-common-enable-and-use-i2c2.patch +++ b/arm-dts-am335x-bone-common-enable-and-use-i2c2.patch @@ -8,7 +8,7 @@ Signed-off-by: Robert Nelson 1 file changed, 39 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi -index c3255e0c90aa..1fd496fe1a68 100644 +index dbb3f4d2bf84..b2e14381dd1c 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -81,6 +81,13 @@ diff --git a/arm-dts-am335x-bone-common-setup-default-pinmux-http.patch b/arm-dts-am335x-bone-common-setup-default-pinmux-http.patch index 2105fcb52..9bba4808a 100644 --- a/arm-dts-am335x-bone-common-setup-default-pinmux-http.patch +++ b/arm-dts-am335x-bone-common-setup-default-pinmux-http.patch @@ -9,7 +9,7 @@ Signed-off-by: Robert Nelson 1 file changed, 222 insertions(+) diff --git a/arch/arm/boot/dts/am335x-bone-common.dtsi b/arch/arm/boot/dts/am335x-bone-common.dtsi -index 1fd496fe1a68..9688dda39e7a 100644 +index b2e14381dd1c..853079eb0080 100644 --- a/arch/arm/boot/dts/am335x-bone-common.dtsi +++ b/arch/arm/boot/dts/am335x-bone-common.dtsi @@ -95,6 +95,20 @@ @@ -222,7 +222,7 @@ index 1fd496fe1a68..9688dda39e7a 100644 /include/ "tps65217.dtsi" &tps { -@@ -347,4 +529,44 @@ +@@ -366,4 +548,44 @@ &sham { status = "okay"; diff --git a/kbuild-AFTER_LINK.patch b/kbuild-AFTER_LINK.patch index 70e748474..447898b88 100644 --- a/kbuild-AFTER_LINK.patch +++ b/kbuild-AFTER_LINK.patch @@ -90,7 +90,7 @@ index 2a8ddfd12a5b..452ca53561fe 100644 cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $< diff --git a/arch/x86/vdso/Makefile b/arch/x86/vdso/Makefile -index 7b9be9822724..c4c5d4ae3dad 100644 +index 8533c96bab13..b466047c2f53 100644 --- a/arch/x86/vdso/Makefile +++ b/arch/x86/vdso/Makefile @@ -172,8 +172,9 @@ $(vdso32-images:%=$(obj)/%.dbg): $(obj)/vdso32-%.so.dbg: FORCE \ From 6c73a14ffa004fa03572905a28ab422f80497663 Mon Sep 17 00:00:00 2001 From: Laura Abbott Date: Mon, 29 Jun 2015 14:06:24 -0700 Subject: [PATCH 4/4] Linux v4.0.7 --- kernel.spec | 11 ++-- ...v-Restore-non-volatile-CRs-after-nap.patch | 58 ------------------- sources | 2 +- 3 files changed, 5 insertions(+), 66 deletions(-) delete mode 100644 powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch diff --git a/kernel.spec b/kernel.spec index c5e20be52..e10fc10de 100644 --- a/kernel.spec +++ b/kernel.spec @@ -52,7 +52,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 6 +%define stable_update 7 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -673,9 +673,6 @@ Patch26220: 0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch #rhbz 1226743 Patch26221: drm-i915-turn-off-wc-mmaps.patch -#rhbz 1227877 -Patch26222: powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch - #rhbz 1212230 Patch26238: Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch Patch26239: Input-synaptics-allocate-3-slots-to-keep-stability-i.patch @@ -1475,9 +1472,6 @@ ApplyPatch 0001-mwifiex-use-del_timer-variant-in-interrupt-context.patch #rhbz 1226743 ApplyPatch drm-i915-turn-off-wc-mmaps.patch -#rhbz 1227877 -ApplyPatch powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch - #rhbz 1212230 ApplyPatch Input-Revert-Revert-synaptics-use-dmax-in-input_mt_a.patch ApplyPatch Input-synaptics-allocate-3-slots-to-keep-stability-i.patch @@ -2339,6 +2333,9 @@ fi # # %changelog +* Mon Jun 29 2015 Laura Abbott - 4.0.7-300 +- Linux v4.0.7 + * Tue Jun 23 2015 Justin M. Forbes - 4.0.6-300 - Linux v4.0.6 diff --git a/powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch b/powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch deleted file mode 100644 index 4e36cdc08..000000000 --- a/powerpc-powernv-Restore-non-volatile-CRs-after-nap.patch +++ /dev/null @@ -1,58 +0,0 @@ -From: Sam Bobroff -Date: Fri, 1 May 2015 16:50:34 +1000 -Subject: [PATCH] powerpc/powernv: Restore non-volatile CRs after nap - -Patches 7cba160ad "powernv/cpuidle: Redesign idle states management" -and 77b54e9f2 "powernv/powerpc: Add winkle support for offline cpus" -use non-volatile condition registers (cr2, cr3 and cr4) early in the system -reset interrupt handler (system_reset_pSeries()) before it has been determined -if state loss has occurred. If state loss has not occurred, control returns via -the power7_wakeup_noloss() path which does not restore those condition -registers, leaving them corrupted. - -Fix this by restoring the condition registers in the power7_wakeup_noloss() -case. - -This is apparent when running a KVM guest on hardware that does not -support winkle or sleep and the guest makes use of secondary threads. In -practice this means Power7 machines, though some early unreleased Power8 -machines may also be susceptible. - -The secondary CPUs are taken off line before the guest is started and -they call pnv_smp_cpu_kill_self(). This checks support for sleep -states (in this case there is no support) and power7_nap() is called. - -When the CPU is woken, power7_nap() returns and because the CPU is -still off line, the main while loop executes again. The sleep states -support test is executed again, but because the tested values cannot -have changed, the compiler has optimized the test away and instead we -rely on the result of the first test, which has been left in cr3 -and/or cr4. With the result overwritten, the wrong branch is taken and -power7_winkle() is called on a CPU that does not support it, leading -to it stalling. - -Fixes: 7cba160ad789 ("powernv/cpuidle: Redesign idle states management") -Fixes: 77b54e9f213f ("powernv/powerpc: Add winkle support for offline cpus") -[mpe: Massage change log a bit more] -Signed-off-by: Sam Bobroff -Signed-off-by: Michael Ellerman ---- - arch/powerpc/kernel/idle_power7.S | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/arch/powerpc/kernel/idle_power7.S b/arch/powerpc/kernel/idle_power7.S -index 05adc8bbdef8..401d8d0085aa 100644 ---- a/arch/powerpc/kernel/idle_power7.S -+++ b/arch/powerpc/kernel/idle_power7.S -@@ -500,9 +500,11 @@ BEGIN_FTR_SECTION - CHECK_HMI_INTERRUPT - END_FTR_SECTION_IFSET(CPU_FTR_HVMODE) - ld r1,PACAR1(r13) -+ ld r6,_CCR(r1) - ld r4,_MSR(r1) - ld r5,_NIP(r1) - addi r1,r1,INT_FRAME_SIZE -+ mtcr r6 - mtspr SPRN_SRR1,r4 - mtspr SPRN_SRR0,r5 - rfid diff --git a/sources b/sources index 4363e5640..c61b5f358 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ a86916bd12798220da9eb4a1eec3616d linux-4.0.tar.xz d125eecce68ab6fb5f1f23523c2c04b8 perf-man-4.0.tar.gz -8ad50a9bdcb3895f1e60acb971bd990b patch-4.0.6.xz +7396e86d2c1909aad4cb6ddb8cef434a patch-4.0.7.xz