[linux] 01/01: Update to 4.8.15

debian-kernel at lists.debian.org debian-kernel at lists.debian.org
Fri Dec 16 10:17:41 UTC 2016


This is an automated email from the git hooks/post-receive script.

carnil pushed a commit to branch sid
in repository linux.

commit 8e3469b562d553653ec18b6d07d5910db8a66b2a
Author: Salvatore Bonaccorso <carnil at debian.org>
Date:   Thu Dec 15 20:52:48 2016 +0100

    Update to 4.8.15
---
 debian/changelog                                   |  39 ++++-
 .../rtmutex-Prevent-dequeue-vs.-unlock-race.patch  | 168 ---------------------
 ...number-of-sata-port-for-linkstation-ls-gl.patch |  37 -----
 debian/patches/series                              |   1 -
 debian/patches/series-rt                           |   1 -
 5 files changed, 34 insertions(+), 212 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index ba0b981..aab9934 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-linux (4.8.14-1) UNRELEASED; urgency=medium
+linux (4.8.15-1) UNRELEASED; urgency=medium
 
   * New upstream stable update:
     https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.12
@@ -117,14 +117,43 @@ linux (4.8.14-1) UNRELEASED; urgency=medium
     - flowcache: Increase threshold for refusing new allocations
     - esp4: Fix integrity verification when ESN are used
     - esp6: Fix integrity verification when ESN are used
+    https://www.kernel.org/pub/linux/kernel/v4.x/ChangeLog-4.8.15
+    - [powerpc] eeh: Fix deadlock when PE frozen state can't be cleared
+    - [powerpc] mm: Fix lazy icache flush on pre-POWER5
+    - [powerpc] boot: Fix build failure in 32-bit boot wrapper
+    - fuse: fix clearing suid, sgid for chown()
+    - [hppa/parisc] Purge TLB before setting PTE
+    - [hppa/parisc] Remove unnecessary TLB purges from flush_dcache_page_asm
+      and flush_icache_page_asm
+    - [hppa/parisc] Fix TLB related boot crash on SMP machines
+    - zram: restrict add/remove attributes to root only
+    - locking/rtmutex: Prevent dequeue vs. unlock race
+    - locking/rtmutex: Use READ_ONCE() in rt_mutex_owner()
+    - device-dax: fix private mapping restriction, permit read-only
+    - scsi: lpfc: fix oops/BUG in lpfc_sli_ringtxcmpl_put()
+    - sched/autogroup: Fix 64-bit kernel nice level adjustment
+    - [x86] perf: Fix full width counter, counter overflow
+    - acpi, nfit: fix extended status translations for ACPI DSMs
+    - acpi, nfit, libnvdimm: fix / harden ars_status output length handling
+    - acpi, nfit: validate ars_status output buffer size
+    - acpi, nfit: fix bus vs dimm confusion in xlat_status
+    - [armel, armhf] crypto: marvell - Don't copy hash operation twice into
+      the SRAM
+    - crypto: caam - fix pointer size for AArch64 boot loader, AArch32 kernel
+    - [armel, armhf] crypto: marvell - Don't corrupt state of an STD req for
+      re-stepped ahash
+    - can: raw: raw_setsockopt: limit number of can_filter that can be set
+    - can: peak: fix bad memory access and free sequence
+    - [armel] dts: orion5x: fix number of sata port for linkstation ls-gl
+      (Closes: #845611)
+    - ceph: don't set req->r_locked_dir in ceph_d_revalidate
+    - [m68k] Fix ndelay() macro
+    - batman-adv: Check for alloc errors when preparing TT local data
+    - hotplug: Make register and unregister notifier API symmetric
 
   [ Uwe Kleine-König ]
   * [armhf] dts: armada-385: add support for Turris Omnia
 
-  [ Roger Shimizu ]
-  * [armel] dts: marvell: fix number of sata port for linkstation ls-gl
-    (Closes: #845611)
-
   [ Salvatore Bonaccorso ]
   * Add ABI reference for 4.8.0-2
   * Ignore ABI changes in KVM
diff --git a/debian/patches/features/all/rt/rtmutex-Prevent-dequeue-vs.-unlock-race.patch b/debian/patches/features/all/rt/rtmutex-Prevent-dequeue-vs.-unlock-race.patch
deleted file mode 100644
index e4f7095..0000000
--- a/debian/patches/features/all/rt/rtmutex-Prevent-dequeue-vs.-unlock-race.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Thu, 1 Dec 2016 16:47:21 +0100
-Subject: [PATCH] rtmutex: Prevent dequeue vs. unlock race
-Origin: https://www.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patches-4.8.14-rt9.tar.xz
-
-David reported a futex/rtmutex state corruption. It's caused by the
-following problem:
-
-CPU0		CPU1		CPU2
-
-l->owner=T1
-		rt_mutex_lock(l)
-		lock(l->wait_lock)
-		l->owner = T1 | HAS_WAITERS;
-		enqueue(T2)
-		boost()
-		  unlock(l->wait_lock)
-		schedule()
-
-				rt_mutex_lock(l)
-				lock(l->wait_lock)
-				l->owner = T1 | HAS_WAITERS;
-				enqueue(T3)
-				boost()
-				  unlock(l->wait_lock)
-				schedule()
-		signal(->T2)	signal(->T3)
-		lock(l->wait_lock)
-		dequeue(T2)
-		deboost()
-		  unlock(l->wait_lock)
-				lock(l->wait_lock)
-				dequeue(T3)
-				  ===> wait list is now empty
-				deboost()
-				 unlock(l->wait_lock)
-		lock(l->wait_lock)
-		fixup_rt_mutex_waiters()
-		  if (wait_list_empty(l)) {
-		    owner = l->owner & ~HAS_WAITERS;
- 		    l->owner = owner
-		     ==> l->owner = T1
-		  }
-
-				lock(l->wait_lock)
-rt_mutex_unlock(l)		fixup_rt_mutex_waiters()
-				  if (wait_list_empty(l)) {
-				    owner = l->owner & ~HAS_WAITERS;
-cmpxchg(l->owner, T1, NULL)
- ===> Success (l->owner = NULL)
-				    l->owner = owner
-				     ==> l->owner = T1
-				  }
-
-That means the problem is caused by fixup_rt_mutex_waiters() which does the
-RMW to clear the waiters bit unconditionally when there are no waiters in
-the rtmutexes rbtree.
-
-This can be fatal: A concurrent unlock can release the rtmutex in the
-fastpath because the waiters bit is not set. If the cmpxchg() gets in the
-middle of the RMW operation then the previous owner, which just unlocked
-the rtmutex is set as the owner again when the write takes place after the
-successfull cmpxchg().
-
-The solution is rather trivial: Verify that the owner member of the rtmutex
-has the waiters bit set before clearing it. This does not require a
-cmpxchg() or other atomic operations because the waiters bit can only be
-set and cleared with the rtmutex wait_lock held. It's also safe against the
-fast path unlock attempt. The unlock attempt via cmpxchg() will either see
-the bit set and take the slowpath or see the bit cleared and release it
-atomically in the fastpath.
-
-It's remarkable that the test program provided by David triggers on ARM64
-and MIPS64 really quick, but it refuses to reproduce on x8664, while the
-problem exists there as well. That refusal might explain that this got not
-discovered earlier despite the bug existing from day one of the rtmutex
-implementation more than 10 years ago.
-
-Thanks to David for meticulously instrumenting the code and providing the
-information which allowed to decode this subtle problem.
-
-Fixes: 23f78d4a03c5 ("[PATCH] pi-futex: rt mutex core")
-Cc: stable at vger.kernel.org
-Cc: stable-rt at vger.kernel.org
-Reported-by: David Daney <ddaney at caviumnetworks.com>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
----
- kernel/locking/rtmutex.c |   68 +++++++++++++++++++++++++++++++++++++++++++++--
- 1 file changed, 66 insertions(+), 2 deletions(-)
-
---- a/kernel/locking/rtmutex.c
-+++ b/kernel/locking/rtmutex.c
-@@ -65,8 +65,72 @@ static inline void clear_rt_mutex_waiter
- 
- static void fixup_rt_mutex_waiters(struct rt_mutex *lock)
- {
--	if (!rt_mutex_has_waiters(lock))
--		clear_rt_mutex_waiters(lock);
-+	unsigned long owner, *p = (unsigned long *) &lock->owner;
-+
-+	if (rt_mutex_has_waiters(lock))
-+		return;
-+
-+	/*
-+	 * The rbtree has no waiters enqueued, now make sure that the
-+	 * lock->owner still has the waiters bit set, otherwise the
-+	 * following can happen:
-+	 *
-+	 * CPU 0	CPU 1		CPU2
-+	 * l->owner=T1
-+	 *		rt_mutex_lock(l)
-+	 *		lock(l->lock)
-+	 *		l->owner = T1 | HAS_WAITERS;
-+	 *		enqueue(T2)
-+	 *		boost()
-+	 *		  unlock(l->lock)
-+	 *		block()
-+	 *
-+	 *				rt_mutex_lock(l)
-+	 *				lock(l->lock)
-+	 *				l->owner = T1 | HAS_WAITERS;
-+	 *				enqueue(T3)
-+	 *				boost()
-+	 *				  unlock(l->lock)
-+	 *				block()
-+	 *		signal(->T2)	signal(->T3)
-+	 *		lock(l->lock)
-+	 *		dequeue(T2)
-+	 *		deboost()
-+	 *		  unlock(l->lock)
-+	 *				lock(l->lock)
-+	 *				dequeue(T3)
-+	 *				 ==> wait list is empty
-+	 *				deboost()
-+	 *				 unlock(l->lock)
-+	 *		lock(l->lock)
-+	 *		fixup_rt_mutex_waiters()
-+	 *		  if (wait_list_empty(l) {
-+	 *		    l->owner = owner
-+	 *		    owner = l->owner & ~HAS_WAITERS;
-+	 *		      ==> l->owner = T1
-+	 *		  }
-+	 *				lock(l->lock)
-+	 * rt_mutex_unlock(l)		fixup_rt_mutex_waiters()
-+	 *				  if (wait_list_empty(l) {
-+	 *				    owner = l->owner & ~HAS_WAITERS;
-+	 * cmpxchg(l->owner, T1, NULL)
-+	 *  ===> Success (l->owner = NULL)
-+	 *
-+	 *				    l->owner = owner
-+	 *				      ==> l->owner = T1
-+	 *				  }
-+	 *
-+	 * With the check for the waiter bit in place T3 on CPU2 will not
-+	 * overwrite. All tasks fiddling with the waiters bit are
-+	 * serialized by l->lock, so nothing else can modify the waiters
-+	 * bit. If the bit is set then nothing can change l->owner either
-+	 * so the simple RMW is safe. The cmpxchg() will simply fail if it
-+	 * happens in the middle of the RMW because the waiters bit is
-+	 * still set.
-+	 */
-+	owner = READ_ONCE(*p);
-+	if (owner & RT_MUTEX_HAS_WAITERS)
-+		WRITE_ONCE(*p, owner & ~RT_MUTEX_HAS_WAITERS);
- }
- 
- /*
diff --git a/debian/patches/features/arm/arm-dts-orion5x-fix-number-of-sata-port-for-linkstation-ls-gl.patch b/debian/patches/features/arm/arm-dts-orion5x-fix-number-of-sata-port-for-linkstation-ls-gl.patch
deleted file mode 100644
index 6eb39d2..0000000
--- a/debian/patches/features/arm/arm-dts-orion5x-fix-number-of-sata-port-for-linkstation-ls-gl.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From: Roger Shimizu <rogershimizu at gmail.com>
-Date: Fri, 2 Dec 2016 00:11:12 +0900
-Subject: [PATCH] ARM: dts: orion5x: fix number of sata port for linkstation
- ls-gl
-Origin: https://git.kernel.org/linus/038ccb3e8cee52e07dc118ff99f47eaebc1d0746
-
-Bug report from Debian [0] shows there's minor changed model of
-Linkstation LS-GL that uses the 2nd SATA port of the SoC.
-So it's necessary to enable two SATA ports, though for that specific
-model only the 2nd one is used.
-
-[0] https://bugs.debian.org/845611
-
-Fixes: b1742ffa9ddb ("ARM: dts: orion5x: add device tree for buffalo linkstation ls-gl")
-Reported-by: Ryan Tandy <ryan at nardis.ca>
-Tested-by: Ryan Tandy <ryan at nardis.ca>
-Signed-off-by: Roger Shimizu <rogershimizu at gmail.com>
-Signed-off-by: Gregory CLEMENT <gregory.clement at free-electrons.com>
----
- arch/arm/boot/dts/orion5x-linkstation-lsgl.dts | 4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
-index 1cf644b..51dc734 100644
---- a/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
-+++ b/arch/arm/boot/dts/orion5x-linkstation-lsgl.dts
-@@ -82,6 +82,10 @@
- 	gpios = <&gpio0 9 GPIO_ACTIVE_HIGH>;
- };
- 
-+&sata {
-+	nr-ports = <2>;
-+};
-+
- &ehci1 {
- 	status = "okay";
- };
diff --git a/debian/patches/series b/debian/patches/series
index cc32ebc..1f6687d 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -56,7 +56,6 @@ features/x86/x86-memtest-WARN-if-bad-RAM-found.patch
 features/x86/x86-make-x32-syscall-support-conditional.patch
 features/arm/arm-dts-imx53-add-support-for-usb-armory-board.patch
 features/arm/arm-dts-add-support-for-turris-omnia.patch
-features/arm/arm-dts-orion5x-fix-number-of-sata-port-for-linkstation-ls-gl.patch
 
 # Miscellaneous bug fixes
 bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch
diff --git a/debian/patches/series-rt b/debian/patches/series-rt
index 3564c44..6430649 100644
--- a/debian/patches/series-rt
+++ b/debian/patches/series-rt
@@ -45,7 +45,6 @@ features/all/rt/NFSv4-replace-seqcount_t-with-a-seqlock_t.patch
 ############################################################
 # Submitted on LKML
 ############################################################
-features/all/rt/rtmutex-Prevent-dequeue-vs.-unlock-race.patch
 
 # SPARC part of erly printk consolidation
 features/all/rt/sparc64-use-generic-rwsem-spinlocks-rt.patch

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/linux.git



More information about the Kernel-svn-changes mailing list