From 593d83e2cf0db91e1862b8c25bae4839ef294ddf Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 5 Jun 2014 18:19:02 +0000 Subject: [PATCH 01/32] Update headers for some patches that are already upstream svn path=/dists/sid/linux/; revision=21402 --- ...ging-speakup-Move-pasting-into-a-work-item.patch | 11 +++++++++-- ...eakup-Update-__speakup_paste_selection-tty.patch | 13 ++++++++++--- ...Add-another-early-deadlock-detection-check.patch | 3 +-- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch b/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch index 4316b503b..73f4d4ca1 100644 --- a/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch +++ b/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch @@ -1,6 +1,7 @@ From: Ben Hutchings -Date: Sat, 15 Mar 2014 22:34:09 +0000 -Subject: [PATCH 1/2] Staging: speakup: Move pasting into a work item +Date: Mon, 19 May 2014 00:56:22 +0100 +Subject: Staging: speakup: Move pasting into a work item +Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/commit?id=d7500135802ca55b3f4e01a16544e8b34082f8c3 Bug-Debian: https://bugs.debian.org/735202 Bug-Debian: https://bugs.debian.org/744015 @@ -15,7 +16,13 @@ context. Move it into a work item and make sure to cancel it on exit. +References: https://bugs.debian.org/735202 +References: https://bugs.debian.org/744015 +Reported-by: Paul Gevers +Reported-and-tested-by: Jarek Czekalski Signed-off-by: Ben Hutchings +Cc: stable@vger.kernel.org +Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/main.c | 1 + drivers/staging/speakup/selection.c | 38 +++++++++++++++++++++++++++++++------ diff --git a/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch b/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch index 026c1b48e..64f661f99 100644 --- a/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch +++ b/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch @@ -1,7 +1,8 @@ From: Ben Hutchings -Date: Sat, 15 Mar 2014 22:42:27 +0000 -Subject: [PATCH 2/2] Staging: speakup: Update __speakup_paste_selection() tty - (ab)usage to match vt +Date: Mon, 19 May 2014 01:03:06 +0100 +Subject: Staging: speakup: Update __speakup_paste_selection() tty (ab)usage to + match vt +Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/commit?id=28a821c306889b9f2c3fff49abedc9b2c743eb73 Bug-Debian: https://bugs.debian.org/735202 Bug-Debian: https://bugs.debian.org/744015 @@ -13,7 +14,13 @@ For now, apply the changes from 'TTY: vt, fix paste_selection ldisc handling', 'tty: Make ldisc input flow control concurrency-friendly', and 'tty: Fix unsafe vt paste_selection()'. +References: https://bugs.debian.org/735202 +References: https://bugs.debian.org/744015 +Reported-by: Paul Gevers +Reported-and-tested-by: Jarek Czekalski Signed-off-by: Ben Hutchings +Cc: # v3.8 but needs backporting for < 3.12 +Signed-off-by: Greg Kroah-Hartman --- drivers/staging/speakup/selection.c | 14 +++++++++++--- drivers/tty/tty_buffer.c | 2 ++ diff --git a/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch b/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch index 2f5e14dc7..016f536a5 100644 --- a/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch +++ b/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch @@ -1,8 +1,7 @@ From: Thomas Gleixner Date: Mon, 12 May 2014 20:45:34 +0000 Subject: futex: Add another early deadlock detection check - -commit 866293ee54227584ffcb4a42f69c1f365974ba7f upstream. +Origin: https://git.kernel.org/linus/866293ee54227584ffcb4a42f69c1f365974ba7f Dave Jones trinity syscall fuzzer exposed an issue in the deadlock detection code of rtmutex: From 6f4f459aefeb74f71e6a8effd6d7db267ea2b7a8 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 5 Jun 2014 18:19:37 +0000 Subject: [PATCH 02/32] Remove redundant mail headers from futex fixes svn path=/dists/sid/linux/; revision=21403 --- ...lways-cleanup-owner-tid-in-unlock_pi.patch | 36 ------------------ ...tex-Make-lookup_pi_state-more-robust.patch | 37 ------------------- ...-acquisition-in-futex_lock_pi_atomic.patch | 36 ------------------ ...tex-prevent-requeue-pi-on-same-futex.patch | 37 ------------------- 4 files changed, 146 deletions(-) diff --git a/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch b/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch index c4b2bb25f..767935000 100644 --- a/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch +++ b/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch @@ -1,42 +1,6 @@ -Return-Path: -Received: from Galois.linutronix.de (Galois.linutronix.de - [IPv6:2001:470:1f0b:db:abcd:42:0:1]) by vinyl.outflux.net - (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id s53CRBS5010805 - (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for - ; Tue, 3 Jun 2014 05:27:17 -0700 -Received: from localhost ([127.0.0.1] helo=[127.0.1.1]) by - Galois.linutronix.de with esmtp (Exim 4.80) (envelope-from - ) id 1Wrno4-0002Sb-9g; Tue, 03 Jun 2014 14:27:08 +0200 -Message-Id: <20140603121944.949737592@linutronix.de> -User-Agent: quilt/0.63-1 Date: Tue, 03 Jun 2014 12:27:07 -0000 From: Thomas Gleixner -To: Linus Torvalds -Cc: Darren Hart , Kees Cook , - "security@kernel.org" , linux-distros@vs.openwall.org, - Sebastian Krahmer , Ingo Molnar , Kees - Cook , Will Drewry Subject: [patch 3/4] futex: Always cleanup owner tid in unlock_pi -References: <20140603113303.799564413@linutronix.de> -MIME-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-15 -Content-Disposition: inline; filename=futex-cleanup-owner-tid-on-unlock.patch -X-Linutronix-Spam-Score: -1.0 -X-Linutronix-Spam-Level: - -X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, - ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 -Received-SPF: none (linutronix.de: No applicable sender policy available) - receiver=smtp.outflux.net; identity=mailfrom; - envelope-from="tglx@linutronix.de"; helo=Galois.linutronix.de; - client-ip="2001:470:1f0b:db:abcd:42:0:1" -Envelope-To: kees@outflux.net -X-MIMEDefang-Filter: outflux$Revision: 1.316 $ -X-HELO: Galois.linutronix.de -X-Spam-Status: No, hits=-0.651 required=5 tests=RP_MATCHES_RCVD -X-Spam-Checker-Version: SpamAssassin 3.4.0-outflux_revision__1.66__ -X-Scanned-By: MIMEDefang 2.73 -Content-Length: 2854 -Lines: 93 If the owner died bit is set at futex_unlock_pi, we currently do not cleanup the user space futex. So the owner TID of the current owner diff --git a/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch b/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch index db0fd4ee9..8dfa49282 100644 --- a/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch +++ b/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch @@ -1,43 +1,6 @@ -Return-Path: -Received: from Galois.linutronix.de (Galois.linutronix.de - [IPv6:2001:470:1f0b:db:abcd:42:0:1]) by vinyl.outflux.net - (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id s53CRPJj010831 - (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for - ; Tue, 3 Jun 2014 05:27:31 -0700 -Received: from localhost ([127.0.0.1] helo=[127.0.1.1]) by - Galois.linutronix.de with esmtp (Exim 4.80) (envelope-from - ) id 1Wrno5-0002Se-1m; Tue, 03 Jun 2014 14:27:09 +0200 -Message-Id: <20140603121945.039282525@linutronix.de> -User-Agent: quilt/0.63-1 Date: Tue, 03 Jun 2014 12:27:08 -0000 From: Thomas Gleixner -To: Linus Torvalds -Cc: Darren Hart , Kees Cook , - "security@kernel.org" , linux-distros@vs.openwall.org, - Sebastian Krahmer , Ingo Molnar , Kees - Cook , Will Drewry Subject: [patch 4/4] futex: Make lookup_pi_state more robust -References: <20140603113303.799564413@linutronix.de> -MIME-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-15 -Content-Disposition: inline; filename=futex-make-lookup-pi-state-more-robust.patch -X-Linutronix-Spam-Score: -1.0 -X-Linutronix-Spam-Level: - -X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, - ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 -Received-SPF: none (linutronix.de: No applicable sender policy available) - receiver=smtp.outflux.net; identity=mailfrom; - envelope-from="tglx@linutronix.de"; helo=Galois.linutronix.de; - client-ip="2001:470:1f0b:db:abcd:42:0:1" -Envelope-To: kees@outflux.net -X-MIMEDefang-Filter: outflux$Revision: 1.316 $ -X-HELO: Galois.linutronix.de -X-Spam-Status: No, hits=-0.651 required=5 tests=RP_MATCHES_RCVD -X-Spam-Checker-Version: SpamAssassin 3.4.0-outflux_revision__1.66__ -X-Scanned-By: MIMEDefang 2.73 -Status: RO -Content-Length: 8955 -Lines: 270 The current implementation of lookup_pi_state has ambigous handling of the TID value 0 in the user space futex. We can get into the kernel diff --git a/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch b/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch index 6bd7d0e8b..814f63db2 100644 --- a/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch +++ b/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch @@ -1,43 +1,7 @@ -Return-Path: -Received: from Galois.linutronix.de (Galois.linutronix.de - [IPv6:2001:470:1f0b:db:abcd:42:0:1]) by vinyl.outflux.net - (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id s53CRBqO010803 - (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for - ; Tue, 3 Jun 2014 05:27:17 -0700 -Received: from localhost ([127.0.0.1] helo=[127.0.1.1]) by - Galois.linutronix.de with esmtp (Exim 4.80) (envelope-from - ) id 1Wrno3-0002SY-Hl; Tue, 03 Jun 2014 14:27:07 +0200 -Message-Id: <20140603121944.859726103@linutronix.de> -User-Agent: quilt/0.63-1 Date: Tue, 03 Jun 2014 12:27:06 -0000 From: Thomas Gleixner -To: Linus Torvalds -Cc: Darren Hart , Kees Cook , - "security@kernel.org" , linux-distros@vs.openwall.org, - Sebastian Krahmer , Ingo Molnar , Kees - Cook , Will Drewry Subject: [patch 2/4] futex: Validate atomic acquisition in futex_lock_pi_atomic() -References: <20140603113303.799564413@linutronix.de> -MIME-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-15 -Content-Disposition: inline; filename=futex-validate-atomic-acquisiton.patch -X-Linutronix-Spam-Score: -1.0 -X-Linutronix-Spam-Level: - -X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, - ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 -Received-SPF: none (linutronix.de: No applicable sender policy available) - receiver=smtp.outflux.net; identity=mailfrom; - envelope-from="tglx@linutronix.de"; helo=Galois.linutronix.de; - client-ip="2001:470:1f0b:db:abcd:42:0:1" -Envelope-To: kees@outflux.net -X-MIMEDefang-Filter: outflux$Revision: 1.316 $ -X-HELO: Galois.linutronix.de -X-Spam-Status: No, hits=-0.651 required=5 tests=RP_MATCHES_RCVD -X-Spam-Checker-Version: SpamAssassin 3.4.0-outflux_revision__1.66__ -X-Scanned-By: MIMEDefang 2.73 -Content-Length: 1615 -Lines: 47 We need to protect the atomic acquisition in the kernel against rogue user space which sets the user space futex to 0, so the kernel side diff --git a/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch b/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch index 370f384de..50d461760 100644 --- a/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch +++ b/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch @@ -1,44 +1,7 @@ -Return-Path: -Received: from Galois.linutronix.de (Galois.linutronix.de - [IPv6:2001:470:1f0b:db:abcd:42:0:1]) by vinyl.outflux.net - (8.14.4/8.14.4/Debian-4.1ubuntu1) with ESMTP id s53CRBLI010804 - (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for - ; Tue, 3 Jun 2014 05:27:17 -0700 -Received: from localhost ([127.0.0.1] helo=[127.0.1.1]) by - Galois.linutronix.de with esmtp (Exim 4.80) (envelope-from - ) id 1Wrno2-0002SV-Po; Tue, 03 Jun 2014 14:27:06 +0200 -Message-Id: <20140603121944.770732571@linutronix.de> -User-Agent: quilt/0.63-1 Date: Tue, 03 Jun 2014 12:27:06 -0000 From: Thomas Gleixner -To: Linus Torvalds -Cc: Darren Hart , Kees Cook , - "security@kernel.org" , linux-distros@vs.openwall.org, - Sebastian Krahmer , Ingo Molnar , Will - Drewry , Kees Cook Subject: [patch 1/4] futex-prevent-requeue-pi-on-same-futex.patch futex: Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) -References: <20140603113303.799564413@linutronix.de> -MIME-Version: 1.0 -Content-Type: text/plain; charset=ISO-8859-15 -Content-Disposition: inline; filename=futex-prevent-requeue-pi-on-same-futex.patch -X-Linutronix-Spam-Score: -1.0 -X-Linutronix-Spam-Level: - -X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, - ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 -Received-SPF: none (linutronix.de: No applicable sender policy available) - receiver=smtp.outflux.net; identity=mailfrom; - envelope-from="tglx@linutronix.de"; helo=Galois.linutronix.de; - client-ip="2001:470:1f0b:db:abcd:42:0:1" -Envelope-To: kees@outflux.net -X-MIMEDefang-Filter: outflux$Revision: 1.316 $ -X-HELO: Galois.linutronix.de -X-Spam-Status: No, hits=-0.651 required=5 tests=RP_MATCHES_RCVD -X-Spam-Checker-Version: SpamAssassin 3.4.0-outflux_revision__1.66__ -X-Scanned-By: MIMEDefang 2.73 -Status: RO -Content-Length: 2114 -Lines: 73 If uaddr == uaddr2, then we have broken the rule of only requeueing from a non-pi futex to a pi futex with this call. If we attempt this, From 3f8f55a1741321e1126436541706f14570ecd1c8 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 5 Jun 2014 18:21:30 +0000 Subject: [PATCH 03/32] Add "Forwarded: not-needed" to ABI maintenance patches svn path=/dists/sid/linux/; revision=21404 --- debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch | 1 + debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch | 1 + debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch | 1 + debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch | 1 + debian/patches/debian/sockdiag-avoid-abi-change-in-3.14.5.patch | 1 + debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch | 1 + 6 files changed, 6 insertions(+) diff --git a/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch b/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch index 05ae1eb15..c58f94e60 100644 --- a/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch +++ b/debian/patches/debian/dm-avoid-abi-change-in-3.14.4.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Tue, 13 May 2014 18:48:29 +0100 Subject: dm: Avoid ABI change in 3.14.4 +Forwarded: not-needed The dm_bm_flush_and_unlock() function was replaced by dm_bm_flush(). As both callers were changed to call dm_bm_unlock() and then diff --git a/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch b/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch index 02956f51c..35043d0e8 100644 --- a/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch +++ b/debian/patches/debian/libata-avoid-abi-change-in-3.14.4.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Tue, 13 May 2014 18:39:19 +0100 Subject: libata: Avoid ABI change in 3.14.4 +Forwarded: not-needed Commit 8a4aeec8d2d6 ("libata/ahci: accommodate tag ordered controllers") added the ata_port::last_tag field. As this structure diff --git a/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch b/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch index e50f25b20..eb94c9e43 100644 --- a/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch +++ b/debian/patches/debian/net-revert-lockdep-changes-in-3.14.5.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Sun, 01 Jun 2014 20:33:54 +0100 Subject: net: Revert lockdep changes in 3.14.5 +Forwarded: not-needed These changes fixed false lockep warnings, but result in an ABI change. As lockdep is not enabled in our binary packages, they diff --git a/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch b/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch index 2c05d472a..7ee340d59 100644 --- a/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch +++ b/debian/patches/debian/netfilter-avoid-abi-change-in-3.14.5.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Sun, 01 Jun 2014 23:29:17 +0100 Subject: netfilter: Avoid ABI change in 3.14.5 +Forwarded: not-needed The types of fields in struct nf_ct_ext were changed by commit 223b02d923ec ("netfilter: nf_conntrack: reserve two bytes for diff --git a/debian/patches/debian/sockdiag-avoid-abi-change-in-3.14.5.patch b/debian/patches/debian/sockdiag-avoid-abi-change-in-3.14.5.patch index 6163d69a0..812e8e619 100644 --- a/debian/patches/debian/sockdiag-avoid-abi-change-in-3.14.5.patch +++ b/debian/patches/debian/sockdiag-avoid-abi-change-in-3.14.5.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Sun, 01 Jun 2014 20:38:59 +0100 Subject: sockdiag: Avoid ABI change in 3.14.5 +Forwarded: not-needed Add the user_namespace parameter back to sock_diag_put_filterinfo(), but don't use it there. diff --git a/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch b/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch index f49c2a548..f5713330e 100644 --- a/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch +++ b/debian/patches/debian/target-avoid-abi-change-in-3.14.5.patch @@ -1,6 +1,7 @@ From: Ben Hutchings Date: Sun, 01 Jun 2014 20:47:46 +0100 Subject: target: Avoid ABI change in 3.14.5 +Forwarded: not-needed Commit e63ed0d7a980 ("scsi: fix our current target reap infrastructure") removed one field (ew) and changed the type of another (reap_ref). From ace97ec8c9a6807fdbfa65c35cda786be0e7cba3 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Sat, 7 Jun 2014 07:41:54 +0000 Subject: [PATCH 04/32] [armhf/armmp] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) svn path=/dists/sid/linux/; revision=21407 --- debian/changelog | 7 +++++++ debian/config/armhf/config.armmp | 2 ++ 2 files changed, 9 insertions(+) diff --git a/debian/changelog b/debian/changelog index 8d3f57f6b..b202cf764 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +linux (3.14.5-2) UNRELEASED; urgency=medium + + [ Ian Campbell ] + * [armhf/armmp] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) + + -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 + linux (3.14.5-1) unstable; urgency=high * New upstream stable update: diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp index f9d65d975..69190c4a2 100644 --- a/debian/config/armhf/config.armmp +++ b/debian/config/armhf/config.armmp @@ -749,7 +749,9 @@ CONFIG_FB_OMAP2=m ## ## file: drivers/virtio/Kconfig ## +CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_MMIO=m +CONFIG_VIRTIO_BALLOON=m ## ## file: drivers/watchdog/Kconfig From 6a7c0fe64ea2255fb4cc5c42259f52b761a59330 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Sat, 7 Jun 2014 07:41:57 +0000 Subject: [PATCH 05/32] [arm64] Update modules included in installer udebs. - Enable input - Correct nic-modules and scsi-modules, no PCI on this platform yet. svn path=/dists/sid/linux/; revision=21408 --- debian/changelog | 1 + debian/config/arm64/config | 6 ++++++ debian/installer/arm64/modules/arm64/nic-modules | 1 - debian/installer/arm64/modules/arm64/scsi-modules | 4 ++-- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index b202cf764..675c3c687 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,7 @@ linux (3.14.5-2) UNRELEASED; urgency=medium [ Ian Campbell ] * [armhf/armmp] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) + * [arm64] Update modules included in installer udebs. -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/config/arm64/config b/debian/config/arm64/config index 877106627..65c687f60 100644 --- a/debian/config/arm64/config +++ b/debian/config/arm64/config @@ -6,6 +6,12 @@ CONFIG_ARCH_XGENE=y CONFIG_SMP=y CONFIG_XEN=y +## +## file: drivers/input/misc/Kconfig +## +CONFIG_INPUT_MISC=y +CONFIG_INPUT_UINPUT=m + ## ## file: drivers/mmc/Kconfig ## diff --git a/debian/installer/arm64/modules/arm64/nic-modules b/debian/installer/arm64/modules/arm64/nic-modules index a530f19fd..83a95ea84 100644 --- a/debian/installer/arm64/modules/arm64/nic-modules +++ b/debian/installer/arm64/modules/arm64/nic-modules @@ -1,3 +1,2 @@ -#include smc91x smsc911x diff --git a/debian/installer/arm64/modules/arm64/scsi-modules b/debian/installer/arm64/modules/arm64/scsi-modules index 675462a14..fa172f59f 100644 --- a/debian/installer/arm64/modules/arm64/scsi-modules +++ b/debian/installer/arm64/modules/arm64/scsi-modules @@ -1,2 +1,2 @@ -#include - +sg +xen-blkfront From e68b65e5784c576d6413a402b0a7cc695da12afb Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Sat, 7 Jun 2014 07:42:00 +0000 Subject: [PATCH 06/32] Include virtio_mmio in virtio-modules udeb when available. svn path=/dists/sid/linux/; revision=21409 --- debian/changelog | 1 + debian/installer/modules/virtio-modules | 1 + 2 files changed, 2 insertions(+) diff --git a/debian/changelog b/debian/changelog index 675c3c687..fe55eb55b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -3,6 +3,7 @@ linux (3.14.5-2) UNRELEASED; urgency=medium [ Ian Campbell ] * [armhf/armmp] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) * [arm64] Update modules included in installer udebs. + * Include virtio_mmio in virtio-modules udeb when available. -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/installer/modules/virtio-modules b/debian/installer/modules/virtio-modules index 04ae7e89b..01c6997e8 100644 --- a/debian/installer/modules/virtio-modules +++ b/debian/installer/modules/virtio-modules @@ -5,3 +5,4 @@ virtio_scsi # Some architectures do not have PCI bus virtio_pci ? +virtio_mmio ? From 80b824e969691b668b1e1a76bb3ac783ed303865 Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Sun, 8 Jun 2014 07:12:54 +0000 Subject: [PATCH 07/32] Correct changelog entry svn path=/dists/sid/linux/; revision=21410 --- debian/changelog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index fe55eb55b..14ff6b201 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,7 +1,7 @@ linux (3.14.5-2) UNRELEASED; urgency=medium [ Ian Campbell ] - * [armhf/armmp] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) + * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) * [arm64] Update modules included in installer udebs. * Include virtio_mmio in virtio-modules udeb when available. From ef9299159e6d3bb42f59ef2e7869e77e513c0b5f Mon Sep 17 00:00:00 2001 From: Ian Campbell Date: Sun, 8 Jun 2014 17:06:50 +0000 Subject: [PATCH 08/32] [armel/hf] disable virtio for specific armel flavours Instead of overriding the global default in kernelarch-arm disable virtio on those armel flavours which do not want it (which is all but vexpress). This allows the armmp flavours to pickup the global default. No change to any of the eventual .config files. svn path=/dists/sid/linux/; revision=21412 --- debian/config/armel/config.ixp4xx | 6 ++++++ debian/config/armel/config.kirkwood | 6 ++++++ debian/config/armel/config.mv78xx0 | 6 ++++++ debian/config/armel/config.orion5x | 6 ++++++ debian/config/armhf/config.armmp | 2 -- debian/config/kernelarch-arm/config | 6 ------ 6 files changed, 24 insertions(+), 8 deletions(-) diff --git a/debian/config/armel/config.ixp4xx b/debian/config/armel/config.ixp4xx index 5a7d97113..4788af314 100644 --- a/debian/config/armel/config.ixp4xx +++ b/debian/config/armel/config.ixp4xx @@ -796,3 +796,9 @@ CONFIG_SND_PCXHR=m ## # CONFIG_SND_HDA_INTEL is not set +## +## file: drivers/virtio/Kconfig +## +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set + diff --git a/debian/config/armel/config.kirkwood b/debian/config/armel/config.kirkwood index f8d364a22..0e0f6c41c 100644 --- a/debian/config/armel/config.kirkwood +++ b/debian/config/armel/config.kirkwood @@ -685,6 +685,12 @@ CONFIG_SND_KIRKWOOD_SOC=m CONFIG_SND_KIRKWOOD_SOC_OPENRD=m CONFIG_SND_KIRKWOOD_SOC_T5325=m +## +## file: drivers/virtio/Kconfig +## +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set + ## ## file: unknown ## diff --git a/debian/config/armel/config.mv78xx0 b/debian/config/armel/config.mv78xx0 index ed4860be4..7d580b22d 100644 --- a/debian/config/armel/config.mv78xx0 +++ b/debian/config/armel/config.mv78xx0 @@ -545,3 +545,9 @@ CONFIG_AX25=m CONFIG_NETROM=m CONFIG_ROSE=m +## +## file: drivers/virtio/Kconfig +## +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set + diff --git a/debian/config/armel/config.orion5x b/debian/config/armel/config.orion5x index 3c5650cca..97d16dd49 100644 --- a/debian/config/armel/config.orion5x +++ b/debian/config/armel/config.orion5x @@ -566,6 +566,12 @@ CONFIG_AX25=m CONFIG_NETROM=m CONFIG_ROSE=m +## +## file: drivers/virtio/Kconfig +## +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_BALLOON is not set + ## ## file: unknown ## diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp index 69190c4a2..f9d65d975 100644 --- a/debian/config/armhf/config.armmp +++ b/debian/config/armhf/config.armmp @@ -749,9 +749,7 @@ CONFIG_FB_OMAP2=m ## ## file: drivers/virtio/Kconfig ## -CONFIG_VIRTIO_PCI=m CONFIG_VIRTIO_MMIO=m -CONFIG_VIRTIO_BALLOON=m ## ## file: drivers/watchdog/Kconfig diff --git a/debian/config/kernelarch-arm/config b/debian/config/kernelarch-arm/config index aead6defe..7f8a6c63e 100644 --- a/debian/config/kernelarch-arm/config +++ b/debian/config/kernelarch-arm/config @@ -106,12 +106,6 @@ CONFIG_MTD_PHYSMAP=y CONFIG_THERMAL=y CONFIG_CPU_THERMAL=y -## -## file: drivers/virtio/Kconfig -## -# CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTIO_BALLOON is not set - ## ## file: lib/xz/Kconfig ## From 2a5c1497c91e6e14aee684ffc664a440f1199177 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 8 Jun 2014 19:28:12 +0000 Subject: [PATCH 09/32] Update to 3.14.6 Drop patches applied upstream. Resolve textual conflicts in the rt patches. svn path=/dists/sid/linux/; revision=21413 --- debian/changelog | 154 +++++++++- ...other-early-deadlock-detection-check.patch | 157 ---------- ...lways-cleanup-owner-tid-in-unlock_pi.patch | 95 ------ ...tex-Make-lookup_pi_state-more-robust.patch | 272 ------------------ ...-Prevent-attaching-to-kernel-threads.patch | 50 ---- ...-acquisition-in-futex_lock_pi_atomic.patch | 50 ---- ...tex-prevent-requeue-pi-on-same-futex.patch | 76 ----- ...x-invalid-pointer-accesses-in-acpi_t.patch | 64 ----- ...voke-the-affinity-callback-via-a-wor.patch | 16 +- .../features/all/rt/latency-hist.patch | 8 +- .../all/rt/rtmutex-futex-prepare-rt.patch | 20 +- debian/patches/series | 7 - 12 files changed, 176 insertions(+), 793 deletions(-) delete mode 100644 debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch delete mode 100644 debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch delete mode 100644 debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch delete mode 100644 debian/patches/bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch delete mode 100644 debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch delete mode 100644 debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch delete mode 100644 debian/patches/bugfix/x86/ACPICA-Tables-Fix-invalid-pointer-accesses-in-acpi_t.patch diff --git a/debian/changelog b/debian/changelog index 14ff6b201..3d0797178 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,156 @@ -linux (3.14.5-2) UNRELEASED; urgency=medium +linux (3.14.6-1) UNRELEASED; urgency=medium + + * New upstream stable update: + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6 + - [mipsel] loongson2_cpufreq: Fix CPU clock rate setting + (regression in 3.14) + - rtmutex: Fix deadlock detector for real + - kernfs: add back missing error check in kernfs_fop_mmap() + (regression in 3.14) + - coredump: fix va_list corruption (regression in 3.11) + - mm: make fixup_user_fault() check the vma access rights too + - serial: 8250: Fix thread unsafe __dma_tx_complete function + - 8250_core: Fix unwanted TX chars write + - iwlwifi: 7000: bump API to 9 + - timer: Prevent overflow in apply_slack + - cfg80211: free sme on connection failures (regression in 3.11) + - cfg80211: add cfg80211_sched_scan_stopped_rtnl (regression in 3.14) + - mac80211: fix nested rtnl locking on ieee80211_reconfig + (regression in 3.14) + - mm, thp: close race between mremap() and split_huge_page() + - [x86] mm, hugetlb: Add missing TLB page invalidation for hugetlb_cow() + - hwpoison, hugetlb: lock_page/unlock_page does not match for handling a + free hugepage + - iwlwifi: mvm: delay enabling smart FIFO until after beacon RX + (regression in 3.14) + - aio: fix potential leak in aio_run_iocb(). + - Revert "hwmon: (coretemp) Refine TjMax detection" + - hrtimer: Prevent remote enqueue of leftmost timers + - hrtimer: Set expiry time before switch_hrtimer_base() + - dm verity: fix biovecs hash calculation regression (regression in 3.14) + - dm cache: fix writethrough mode quiescing in cache_map + (regression in 3.13) + - md/raid10: call wait_barrier() for each request submitted. + (regression in 3.14) + - PNP / ACPI: Do not return errors if _DIS or _SRS are not present + (regression in 3.14) + - ACPI / EC: Process rather than discard events in acpi_ec_clear + (regression in 3.13.7, 3.14) + - irqchip: armada-370-xp: fix invalid cast of signed value into unsigned + variable (regression in 3.13) + - irqchip: armada-370-xp: implement the ->check_device() msi_chip + operation (regression in 3.13) + - irqchip: armada-370-xp: Fix releasing of MSIs (regression in 3.13) + - [x86] drm/i915: Allow user modes to exceed DVI 165MHz limit + (regression in 3.14) + - [x86] drm/i915: Don't check gmch state on inherited configs + (regression in 3.13?) + - [x86] drm/i915: Don't WARN nor handle unexpected hpd interrupts on gmch + platforms (regression in 3.13) + - [x86] drm/radeon: fix runpm handling on APUs (v4) (regression in 3.13) + - drm/radeon: disable mclk dpm on R7 260X (regression in 3.14) + - drm/radeon: add support for newer mc ucode on SI (v2) + - drm/radeon: add support for newer mc ucode on CI (v2) + - drm/radeon: re-enable mclk dpm on R7 260X asics + - drm/radeon/uvd: use lower clocks on old UVD to boot v2 + (regression in 3.13) + - drm/radeon: check buffer relocation offset + - USB: Nokia 305 should be treated as unusual dev + - USB: Nokia 5300 should be treated as unusual dev + - Revert "Bluetooth: Enable autosuspend for Intel Bluetooth device" + (regression in 3.14) + - posix_acl: handle NULL ACL in posix_acl_equiv_mode + - fs/affs/super.c: bugfix / double free (regression in 3.14) + - [armel/orion5x] fix target ID for crypto SRAM window + (regression in 3.12) + - [armel/kirkwood]: dts: fix mislocated pcie-controller nodes + (regression in 3.12) + - [armhf/armmp-lpae] 8012/1: kdump: Avoid overflow when converting pfn to + physaddr + - drm/nouveau: fix another lock unbalance in nouveau_crtc_page_flip + (regression in 3.11) + - drm/i915/vlv: reset VLV media force wake request register + (regression in 3.14?) + - i40e: potential array underflow in i40e_vc_process_vf_msg() + - igb: Fix Null-pointer dereference in igb_reset_q_vector + (regression in 3.14) + - igb: Unset IGB_FLAG_HAS_MSIX-flag when falling back to msi-only + (regression in 3.14) + - leds: leds-pwm: properly clean up after probe failure + - device_cgroup: rework device access check and exception checking + - device_cgroup: check if exception removal is allowed + - media: media-device: fix infoleak in ioctl media_enum_entities() + (CVE-2014-1739) + - Input: Add INPUT_PROP_TOPBUTTONPAD device property + - Input: synaptics - report INPUT_PROP_TOPBUTTONPAD property + - e1000e: Fix no connectivity when driver loaded with cable out + (regression in 3.12) + - autofs: fix lockref lookup + - vfs: fix races between __d_instantiate() and checks of dentry flags + - ALSA: hda - hdmi: Set converter channel count even without sink + (regression in 3.13) + - NFSd: Move default initialisers from create_client() to alloc_client() + - NFSd: call rpc_destroy_wait_queue() from free_client() + - NFSD: Call ->set_acl with a NULL ACL structure if no entries + - nfsd4: remove lockowner when removing lock stateid + - workqueue: fix bugs in wq_update_unbound_numa() failure path + - workqueue: fix a possible race condition between rescuer and pwq-release + - [arm] mvebu: mvebu-soc-id: add missing clk_put() call + (regression in 3.14) + - [arm] mvebu: mvebu-soc-id: keep clock enabled if PCIe unit is enabled + (regression in 3.14) + - ASoC: dapm: Skip CODEC<->CODEC links in connect_dai_link_widgets() + (regression in 3.14) + - [hppa] ratelimit userspace segfault printing + - [amd64] modify_ldt: Make support for 16-bit segments a runtime option + - sysfs: make sure read buffer is zeroed (possible regression in 3.13) + - Target/iser: Fix wrong connection requests list addition + - Target/iser: Fix iscsit_accept_np and rdma_cm racy flow + - iscsi-target: Change BUG_ON to REJECT in iscsit_process_nop_out + (regression in 3.11) + - target: fix memory leak on XCOPY + - [x86] drm/i915: Disable self-refresh for untiled fbs on i915gm + (regression in 3.14) + - [x86] drm/i915: move power domain init earlier during system resume + (regression in 3.14?) + - [x86] drm/i915: Fix unsafe loop iteration over vma whilst unbinding them + (regression in 3.12) + - iwlwifi: mvm: BT Coex - fix Look Up Table (regression in 3.13) + - PCI: Wrong register used to check pending traffic (regression in 3.14) + - dm crypt: fix cpu hotplug crash by removing per-cpu structure + - dm thin: allow metadata commit if pool is in PM_OUT_OF_DATA_SPACE mode + (regression in 3.14) + - dm thin: add timeout to stop out-of-data-space mode holding IO forever + - dmaengine: fix dmaengine_unmap failure + - dma: mv_xor: Flush descriptors before activating a channel + - tcm_fc: Fix free-after-use regression in ft_free_cmd + (regression in 3.13) + - ACPICA: Tables: Restore old behavor to favor 32-bit FADT addresses. + (regression in 3.14) + - ACPI: Revert "ACPI: Remove CONFIG_ACPI_PROCFS_POWER and cm_sbsc.c" + (regression in 3.13) + - ACPI: Revert "ACPI / Battery: Remove battery's proc directory" + (regression in 3.13) + - [x86] ACPI / video: Add use_native_backlight quirks for more systems + - ACPI: Revert "ACPI / AC: convert ACPI ac driver to platform bus" + (regression in 3.13) + - [x86] ACPI / TPM: Fix resume regression on Chromebooks + (regression in 3.14) + - i2c: s3c2410: resume race fix + - [x86] intel_pstate: Set turbo VID for BayTrail + - [s390] crypto: fix aes,des ctr mode concurrency finding. + - clk: Fix double free due to devm_clk_register() + - clk: Fix slab corruption in clk_unregister() + - [powerpc] powernv: Reset root port in firmware (regression in 3.14) + - [powerpc] irq work racing with timer interrupt can result in timer + interrupt hang (regression in 3.14) + - [powerpc] kexec: Fix "Processor X is stuck" issue during kexec from ST + mode (regression in 3.13) + - spi: core: Ignore unsupported Dual/Quad Transfer Mode bits + (regression in 3.12) + - libceph: fix corruption when using page_count 0 page in rbd + - media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel + from user-space [ Ian Campbell ] * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) diff --git a/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch b/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch deleted file mode 100644 index 016f536a5..000000000 --- a/debian/patches/bugfix/all/futex-Add-another-early-deadlock-detection-check.patch +++ /dev/null @@ -1,157 +0,0 @@ -From: Thomas Gleixner -Date: Mon, 12 May 2014 20:45:34 +0000 -Subject: futex: Add another early deadlock detection check -Origin: https://git.kernel.org/linus/866293ee54227584ffcb4a42f69c1f365974ba7f - -Dave Jones trinity syscall fuzzer exposed an issue in the deadlock -detection code of rtmutex: - http://lkml.kernel.org/r/20140429151655.GA14277@redhat.com - -That underlying issue has been fixed with a patch to the rtmutex code, -but the futex code must not call into rtmutex in that case because - - it can detect that issue early - - it avoids a different and more complex fixup for backing out - -If the user space variable got manipulated to 0x80000000 which means -no lock holder, but the waiters bit set and an active pi_state in the -kernel is found we can figure out the recursive locking issue by -looking at the pi_state owner. If that is the current task, then we -can safely return -EDEADLK. - -The check should have been added in commit 59fa62451 (futex: Handle -futex_pi OWNER_DIED take over correctly) already, but I did not see -the above issue caused by user space manipulation back then. - -Signed-off-by: Thomas Gleixner -Cc: Dave Jones -Cc: Linus Torvalds -Cc: Peter Zijlstra -Cc: Darren Hart -Cc: Davidlohr Bueso -Cc: Steven Rostedt -Cc: Clark Williams -Cc: Paul McKenney -Cc: Lai Jiangshan -Cc: Roland McGrath -Cc: Carlos ODonell -Cc: Jakub Jelinek -Cc: Michael Kerrisk -Cc: Sebastian Andrzej Siewior -Link: http://lkml.kernel.org/r/20140512201701.097349971@linutronix.de -Signed-off-by: Thomas Gleixner ---- - kernel/futex.c | 47 ++++++++++++++++++++++++++++++++++------------- - 1 file changed, 34 insertions(+), 13 deletions(-) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -731,7 +731,8 @@ void exit_pi_state_list(struct task_stru - - static int - lookup_pi_state(u32 uval, struct futex_hash_bucket *hb, -- union futex_key *key, struct futex_pi_state **ps) -+ union futex_key *key, struct futex_pi_state **ps, -+ struct task_struct *task) - { - struct futex_pi_state *pi_state = NULL; - struct futex_q *this, *next; -@@ -772,6 +773,16 @@ lookup_pi_state(u32 uval, struct futex_h - return -EINVAL; - } - -+ /* -+ * Protect against a corrupted uval. If uval -+ * is 0x80000000 then pid is 0 and the waiter -+ * bit is set. So the deadlock check in the -+ * calling code has failed and we did not fall -+ * into the check above due to !pid. -+ */ -+ if (task && pi_state->owner == task) -+ return -EDEADLK; -+ - atomic_inc(&pi_state->refcount); - *ps = pi_state; - -@@ -921,7 +932,7 @@ retry: - * We dont have the lock. Look up the PI state (or create it if - * we are the first waiter): - */ -- ret = lookup_pi_state(uval, hb, key, ps); -+ ret = lookup_pi_state(uval, hb, key, ps, task); - - if (unlikely(ret)) { - switch (ret) { -@@ -1333,7 +1344,7 @@ void requeue_pi_wake_futex(struct futex_ - * - * Return: - * 0 - failed to acquire the lock atomically; -- * 1 - acquired the lock; -+ * >0 - acquired the lock, return value is vpid of the top_waiter - * <0 - error - */ - static int futex_proxy_trylock_atomic(u32 __user *pifutex, -@@ -1344,7 +1355,7 @@ static int futex_proxy_trylock_atomic(u3 - { - struct futex_q *top_waiter = NULL; - u32 curval; -- int ret; -+ int ret, vpid; - - if (get_futex_value_locked(&curval, pifutex)) - return -EFAULT; -@@ -1372,11 +1383,13 @@ static int futex_proxy_trylock_atomic(u3 - * the contended case or if set_waiters is 1. The pi_state is returned - * in ps in contended cases. - */ -+ vpid = task_pid_vnr(top_waiter->task); - ret = futex_lock_pi_atomic(pifutex, hb2, key2, ps, top_waiter->task, - set_waiters); -- if (ret == 1) -+ if (ret == 1) { - requeue_pi_wake_futex(top_waiter, key2, hb2); -- -+ return vpid; -+ } - return ret; - } - -@@ -1407,7 +1420,6 @@ static int futex_requeue(u32 __user *uad - struct futex_pi_state *pi_state = NULL; - struct futex_hash_bucket *hb1, *hb2; - struct futex_q *this, *next; -- u32 curval2; - - if (requeue_pi) { - /* -@@ -1495,16 +1507,25 @@ retry_private: - * At this point the top_waiter has either taken uaddr2 or is - * waiting on it. If the former, then the pi_state will not - * exist yet, look it up one more time to ensure we have a -- * reference to it. -+ * reference to it. If the lock was taken, ret contains the -+ * vpid of the top waiter task. - */ -- if (ret == 1) { -+ if (ret > 0) { - WARN_ON(pi_state); - drop_count++; - task_count++; -- ret = get_futex_value_locked(&curval2, uaddr2); -- if (!ret) -- ret = lookup_pi_state(curval2, hb2, &key2, -- &pi_state); -+ /* -+ * If we acquired the lock, then the user -+ * space value of uaddr2 should be vpid. It -+ * cannot be changed by the top waiter as it -+ * is blocked on hb2 lock if it tries to do -+ * so. If something fiddled with it behind our -+ * back the pi state lookup might unearth -+ * it. So we rather use the known value than -+ * rereading and handing potential crap to -+ * lookup_pi_state. -+ */ -+ ret = lookup_pi_state(ret, hb2, &key2, &pi_state, NULL); - } - - switch (ret) { diff --git a/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch b/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch deleted file mode 100644 index 767935000..000000000 --- a/debian/patches/bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch +++ /dev/null @@ -1,95 +0,0 @@ -Date: Tue, 03 Jun 2014 12:27:07 -0000 -From: Thomas Gleixner -Subject: [patch 3/4] futex: Always cleanup owner tid in unlock_pi - -If the owner died bit is set at futex_unlock_pi, we currently do not -cleanup the user space futex. So the owner TID of the current owner -(the unlocker) persists. That's observable inconsistant state, -especially when the ownership of the pi state got transferred. - -Clean it up unconditionally. - -Signed-off-by: Thomas Gleixner -Cc: Kees Cook -Cc: Will Drewry -Cc: Darren Hart -Cc: stable@vger.kernel.org ---- - kernel/futex.c | 44 ++++++++++++++++++++------------------------ - 1 file changed, 20 insertions(+), 24 deletions(-) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -1038,6 +1038,7 @@ static int wake_futex_pi(u32 __user *uad - struct task_struct *new_owner; - struct futex_pi_state *pi_state = this->pi_state; - u32 uninitialized_var(curval), newval; -+ int ret = 0; - - if (!pi_state) - return -EINVAL; -@@ -1061,23 +1062,19 @@ static int wake_futex_pi(u32 __user *uad - new_owner = this->task; - - /* -- * We pass it to the next owner. (The WAITERS bit is always -- * kept enabled while there is PI state around. We must also -- * preserve the owner died bit.) -- */ -- if (!(uval & FUTEX_OWNER_DIED)) { -- int ret = 0; -- -- newval = FUTEX_WAITERS | task_pid_vnr(new_owner); -- -- if (cmpxchg_futex_value_locked(&curval, uaddr, uval, newval)) -- ret = -EFAULT; -- else if (curval != uval) -- ret = -EINVAL; -- if (ret) { -- raw_spin_unlock(&pi_state->pi_mutex.wait_lock); -- return ret; -- } -+ * We pass it to the next owner. The WAITERS bit is always -+ * kept enabled while there is PI state around. We cleanup the -+ * owner died bit, because we are the owner. -+ */ -+ newval = FUTEX_WAITERS | task_pid_vnr(new_owner); -+ -+ if (cmpxchg_futex_value_locked(&curval, uaddr, uval, newval)) -+ ret = -EFAULT; -+ else if (curval != uval) -+ ret = -EINVAL; -+ if (ret) { -+ raw_spin_unlock(&pi_state->pi_mutex.wait_lock); -+ return ret; - } - - raw_spin_lock_irq(&pi_state->owner->pi_lock); -@@ -2337,9 +2334,10 @@ retry: - /* - * To avoid races, try to do the TID -> 0 atomic transition - * again. If it succeeds then we can return without waking -- * anyone else up: -+ * anyone else up. We only try this if neither the waiters nor -+ * the owner died bit are set. - */ -- if (!(uval & FUTEX_OWNER_DIED) && -+ if (!(uval & ~FUTEX_TID_MASK) && - cmpxchg_futex_value_locked(&uval, uaddr, vpid, 0)) - goto pi_faulted; - /* -@@ -2369,11 +2367,9 @@ retry: - /* - * No waiters - kernel unlocks the futex: - */ -- if (!(uval & FUTEX_OWNER_DIED)) { -- ret = unlock_futex_pi(uaddr, uval); -- if (ret == -EFAULT) -- goto pi_faulted; -- } -+ ret = unlock_futex_pi(uaddr, uval); -+ if (ret == -EFAULT) -+ goto pi_faulted; - - out_unlock: - spin_unlock(&hb->lock); diff --git a/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch b/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch deleted file mode 100644 index 8dfa49282..000000000 --- a/debian/patches/bugfix/all/futex-Make-lookup_pi_state-more-robust.patch +++ /dev/null @@ -1,272 +0,0 @@ -Date: Tue, 03 Jun 2014 12:27:08 -0000 -From: Thomas Gleixner -Subject: [patch 4/4] futex: Make lookup_pi_state more robust - -The current implementation of lookup_pi_state has ambigous handling of -the TID value 0 in the user space futex. We can get into the kernel -even if the TID value is 0, because either there is a stale waiters -bit or the owner died bit is set or we are called from the requeue_pi -path or from user space just for fun. - -The current code avoids an explicit sanity check for pid = 0 in case -that kernel internal state (waiters) are found for the user space -address. This can lead to state leakage and worse under some -circumstances. - -Handle the cases explicit: - - Waiter | pi_state | pi->owner | uTID | uODIED | ? - -[1] NULL | --- | --- | 0 | 0/1 | Valid -[2] NULL | --- | --- | >0 | 0/1 | Valid - -[3] Found | NULL | -- | Any | 0/1 | Invalid - -[4] Found | Found | NULL | 0 | 1 | Valid -[5] Found | Found | NULL | >0 | 1 | Invalid - -[6] Found | Found | task | 0 | 1 | Valid - -[7] Found | Found | NULL | Any | 0 | Invalid - -[8] Found | Found | task | ==taskTID | 0/1 | Valid -[9] Found | Found | task | 0 | 0 | Invalid -[10] Found | Found | task | !=taskTID | 0/1 | Invalid - -[1] Indicates that the kernel can acquire the futex atomically. We - came came here due to a stale FUTEX_WAITERS/FUTEX_OWNER_DIED bit. - -[2] Valid, if TID does not belong to a kernel thread. If no matching - thread is found then it indicates that the owner TID has died. - -[3] Invalid. The waiter is queued on a non PI futex - -[4] Valid state after exit_robust_list(), which sets the user space - value to FUTEX_WAITERS | FUTEX_OWNER_DIED. - -[5] The user space value got manipulated between exit_robust_list() - and exit_pi_state_list() - -[6] Valid state after exit_pi_state_list() which sets the new owner in - the pi_state but cannot access the user space value. - -[7] pi_state->owner can only be NULL when the OWNER_DIED bit is set. - -[8] Owner and user space value match - -[9] There is no transient state which sets the user space TID to 0 - except exit_robust_list(), but this is indicated by the - FUTEX_OWNER_DIED bit. See [4] - -[10] There is no transient state which leaves owner and user space - TID out of sync. - -Signed-off-by: Thomas Gleixner -Cc: Kees Cook -Cc: Will Drewry -Cc: Darren Hart -Cc: stable@vger.kernel.org ---- - kernel/futex.c | 134 +++++++++++++++++++++++++++++++++++++++++++++------------ - 1 file changed, 106 insertions(+), 28 deletions(-) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -729,10 +729,58 @@ void exit_pi_state_list(struct task_stru - raw_spin_unlock_irq(&curr->pi_lock); - } - -+/* -+ * We need to check the following states: -+ * -+ * Waiter | pi_state | pi->owner | uTID | uODIED | ? -+ * -+ * [1] NULL | --- | --- | 0 | 0/1 | Valid -+ * [2] NULL | --- | --- | >0 | 0/1 | Valid -+ * -+ * [3] Found | NULL | -- | Any | 0/1 | Invalid -+ * -+ * [4] Found | Found | NULL | 0 | 1 | Valid -+ * [5] Found | Found | NULL | >0 | 1 | Invalid -+ * -+ * [6] Found | Found | task | 0 | 1 | Valid -+ * -+ * [7] Found | Found | NULL | Any | 0 | Invalid -+ * -+ * [8] Found | Found | task | ==taskTID | 0/1 | Valid -+ * [9] Found | Found | task | 0 | 0 | Invalid -+ * [10] Found | Found | task | !=taskTID | 0/1 | Invalid -+ * -+ * [1] Indicates that the kernel can acquire the futex atomically. We -+ * came came here due to a stale FUTEX_WAITERS/FUTEX_OWNER_DIED bit. -+ * -+ * [2] Valid, if TID does not belong to a kernel thread. If no matching -+ * thread is found then it indicates that the owner TID has died. -+ * -+ * [3] Invalid. The waiter is queued on a non PI futex -+ * -+ * [4] Valid state after exit_robust_list(), which sets the user space -+ * value to FUTEX_WAITERS | FUTEX_OWNER_DIED. -+ * -+ * [5] The user space value got manipulated between exit_robust_list() -+ * and exit_pi_state_list() -+ * -+ * [6] Valid state after exit_pi_state_list() which sets the new owner in -+ * the pi_state but cannot access the user space value. -+ * -+ * [7] pi_state->owner can only be NULL when the OWNER_DIED bit is set. -+ * -+ * [8] Owner and user space value match -+ * -+ * [9] There is no transient state which sets the user space TID to 0 -+ * except exit_robust_list(), but this is indicated by the -+ * FUTEX_OWNER_DIED bit. See [4] -+ * -+ * [10] There is no transient state which leaves owner and user space -+ * TID out of sync. -+ */ - static int - lookup_pi_state(u32 uval, struct futex_hash_bucket *hb, -- union futex_key *key, struct futex_pi_state **ps, -- struct task_struct *task) -+ union futex_key *key, struct futex_pi_state **ps) - { - struct futex_pi_state *pi_state = NULL; - struct futex_q *this, *next; -@@ -742,12 +790,13 @@ lookup_pi_state(u32 uval, struct futex_h - plist_for_each_entry_safe(this, next, &hb->chain, list) { - if (match_futex(&this->key, key)) { - /* -- * Another waiter already exists - bump up -- * the refcount and return its pi_state: -+ * Sanity check the waiter before increasing -+ * the refcount and attaching to it. - */ - pi_state = this->pi_state; - /* -- * Userspace might have messed up non-PI and PI futexes -+ * Userspace might have messed up non-PI and -+ * PI futexes [3] - */ - if (unlikely(!pi_state)) - return -EINVAL; -@@ -755,44 +804,70 @@ lookup_pi_state(u32 uval, struct futex_h - WARN_ON(!atomic_read(&pi_state->refcount)); - - /* -- * When pi_state->owner is NULL then the owner died -- * and another waiter is on the fly. pi_state->owner -- * is fixed up by the task which acquires -- * pi_state->rt_mutex. -- * -- * We do not check for pid == 0 which can happen when -- * the owner died and robust_list_exit() cleared the -- * TID. -+ * Handle the owner died case: - */ -- if (pid && pi_state->owner) { -+ if (uval & FUTEX_OWNER_DIED) { - /* -- * Bail out if user space manipulated the -- * futex value. -+ * exit_pi_state_list sets owner to NULL and -+ * wakes the topmost waiter. The task which -+ * acquires the pi_state->rt_mutex will fixup -+ * owner. - */ -- if (pid != task_pid_vnr(pi_state->owner)) -+ if (!pi_state->owner) { -+ /* -+ * No pi state owner, but the user -+ * space TID is not 0. Inconsistent -+ * state. [5] -+ */ -+ if (pid) -+ return -EINVAL; -+ /* -+ * Take a ref on the state and -+ * return. [4] -+ */ -+ goto out_state; -+ } -+ -+ /* -+ * If TID is 0, then either the dying owner -+ * has not yet executed exit_pi_state_list() -+ * or some waiter acquired the rtmutex in the -+ * pi state, but did not yet fixup the TID in -+ * user space. -+ * -+ * Take a ref on the state and return. [6] -+ */ -+ if (!pid) -+ goto out_state; -+ } else { -+ /* -+ * If the owner died bit is not set, -+ * then the pi_state must have an -+ * owner. [7] -+ */ -+ if (!pi_state->owner) - return -EINVAL; - } - - /* -- * Protect against a corrupted uval. If uval -- * is 0x80000000 then pid is 0 and the waiter -- * bit is set. So the deadlock check in the -- * calling code has failed and we did not fall -- * into the check above due to !pid. -+ * Bail out if user space manipulated the -+ * futex value. If pi state exists then the -+ * owner TID must be the same as the user -+ * space TID. [9/10] - */ -- if (task && pi_state->owner == task) -- return -EDEADLK; -+ if (pid != task_pid_vnr(pi_state->owner)) -+ return -EINVAL; - -+ out_state: - atomic_inc(&pi_state->refcount); - *ps = pi_state; -- - return 0; - } - } - - /* - * We are the first waiter - try to look up the real owner and attach -- * the new pi_state to it, but bail out when TID = 0 -+ * the new pi_state to it, but bail out when TID = 0 [1] - */ - if (!pid) - return -ESRCH; -@@ -825,6 +900,9 @@ lookup_pi_state(u32 uval, struct futex_h - return ret; - } - -+ /* -+ * No existing pi state. First waiter. [2] -+ */ - pi_state = alloc_pi_state(); - - /* -@@ -945,7 +1023,7 @@ retry: - * We dont have the lock. Look up the PI state (or create it if - * we are the first waiter): - */ -- ret = lookup_pi_state(uval, hb, key, ps, task); -+ ret = lookup_pi_state(uval, hb, key, ps); - - if (unlikely(ret)) { - switch (ret) { -@@ -1551,7 +1629,7 @@ retry_private: - * rereading and handing potential crap to - * lookup_pi_state. - */ -- ret = lookup_pi_state(ret, hb2, &key2, &pi_state, NULL); -+ ret = lookup_pi_state(ret, hb2, &key2, &pi_state); - } - - switch (ret) { diff --git a/debian/patches/bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch b/debian/patches/bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch deleted file mode 100644 index 8be1947ef..000000000 --- a/debian/patches/bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Thomas Gleixner -Date: Mon, 12 May 2014 20:45:35 +0000 -Subject: futex: Prevent attaching to kernel threads -Origin: https://git.kernel.org/linus/f0d71b3dcb8332f7971b5f2363632573e6d9486a - -We happily allow userspace to declare a random kernel thread to be the -owner of a user space PI futex. - -Found while analysing the fallout of Dave Jones syscall fuzzer. - -We also should validate the thread group for private futexes and find -some fast way to validate whether the "alleged" owner has RW access on -the file which backs the SHM, but that's a separate issue. - -Signed-off-by: Thomas Gleixner -Cc: Dave Jones -Cc: Linus Torvalds -Cc: Peter Zijlstra -Cc: Darren Hart -Cc: Davidlohr Bueso -Cc: Steven Rostedt -Cc: Clark Williams -Cc: Paul McKenney -Cc: Lai Jiangshan -Cc: Roland McGrath -Cc: Carlos ODonell -Cc: Jakub Jelinek -Cc: Michael Kerrisk -Cc: Sebastian Andrzej Siewior -Link: http://lkml.kernel.org/r/20140512201701.194824402@linutronix.de -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org ---- - kernel/futex.c | 5 +++++ - 1 file changed, 5 insertions(+) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -800,6 +800,11 @@ lookup_pi_state(u32 uval, struct futex_h - if (!p) - return -ESRCH; - -+ if (!p->mm) { -+ put_task_struct(p); -+ return -EPERM; -+ } -+ - /* - * We need to look at the task state flags to figure out, - * whether the task is exiting. To protect against the do_exit diff --git a/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch b/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch deleted file mode 100644 index 814f63db2..000000000 --- a/debian/patches/bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch +++ /dev/null @@ -1,50 +0,0 @@ -Date: Tue, 03 Jun 2014 12:27:06 -0000 -From: Thomas Gleixner -Subject: [patch 2/4] futex: Validate atomic acquisition in - futex_lock_pi_atomic() - -We need to protect the atomic acquisition in the kernel against rogue -user space which sets the user space futex to 0, so the kernel side -acquisition succeeds while there is existing state in the kernel -associated to the real owner. - -Verify whether the futex has waiters associated with kernel state. If -it has, return -EINVAL. The state is corrupted already, so no point in -cleaning it up. Subsequent calls will fail as well. Not our problem. - -[ tglx: Use futex_top_waiter() and explain why we do not need to try - restoring the already corrupted user space state. ] - -Signed-off-by: Darren Hart -Cc: Kees Cook -Cc: Will Drewry -Cc: stable@vger.kernel.org -Signed-off-by: Thomas Gleixner ---- - kernel/futex.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -896,10 +896,18 @@ retry: - return -EDEADLK; - - /* -- * Surprise - we got the lock. Just return to userspace: -+ * Surprise - we got the lock, but we do not trust user space at all. - */ -- if (unlikely(!curval)) -- return 1; -+ if (unlikely(!curval)) { -+ /* -+ * We verify whether there is kernel state for this -+ * futex. If not, we can safely assume, that the 0 -> -+ * TID transition is correct. If state exists, we do -+ * not bother to fixup the user space state as it was -+ * corrupted already. -+ */ -+ return futex_top_waiter(hb, key) ? -EINVAL : 1; -+ } - - uval = curval; - diff --git a/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch b/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch deleted file mode 100644 index 50d461760..000000000 --- a/debian/patches/bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch +++ /dev/null @@ -1,76 +0,0 @@ -Date: Tue, 03 Jun 2014 12:27:06 -0000 -From: Thomas Gleixner -Subject: [patch 1/4] futex-prevent-requeue-pi-on-same-futex.patch futex: - Forbid uaddr == uaddr2 in futex_requeue(..., requeue_pi=1) - -If uaddr == uaddr2, then we have broken the rule of only requeueing -from a non-pi futex to a pi futex with this call. If we attempt this, -then dangling pointers may be left for rt_waiter resulting in an -exploitable condition. - -This change brings futex_requeue() into line with -futex_wait_requeue_pi() which performs the same check as per commit -6f7b0a2a5 (futex: Forbid uaddr == uaddr2 in futex_wait_requeue_pi()) - -[ tglx: Compare the resulting keys as well, as uaddrs might be - different depending on the mapping ] - -Fixes CVE-2014-3153. - -Reported-by: Pinkie Pie -Signed-off-by: Will Drewry -Signed-off-by: Kees Cook -Cc: stable@vger.kernel.org -Signed-off-by: Thomas Gleixner ---- - kernel/futex.c | 25 +++++++++++++++++++++++++ - 1 file changed, 25 insertions(+) - ---- a/kernel/futex.c -+++ b/kernel/futex.c -@@ -1428,6 +1428,13 @@ static int futex_requeue(u32 __user *uad - - if (requeue_pi) { - /* -+ * Requeue PI only works on two distinct uaddrs. This -+ * check is only valid for private futexes. See below. -+ */ -+ if (uaddr1 == uaddr2) -+ return -EINVAL; -+ -+ /* - * requeue_pi requires a pi_state, try to allocate it now - * without any locks in case it fails. - */ -@@ -1465,6 +1472,15 @@ retry: - if (unlikely(ret != 0)) - goto out_put_key1; - -+ /* -+ * The check above which compares uaddrs is not sufficient for -+ * shared futexes. We need to compare the keys: -+ */ -+ if (requeue_pi && match_futex(&key1, &key2)) { -+ ret = -EINVAL; -+ goto out_put_keys; -+ } -+ - hb1 = hash_futex(&key1); - hb2 = hash_futex(&key2); - -@@ -2511,6 +2527,15 @@ static int futex_wait_requeue_pi(u32 __u - if (ret) - goto out_key2; - -+ /* -+ * The check above which compares uaddrs is not sufficient for -+ * shared futexes. We need to compare the keys: -+ */ -+ if (match_futex(&q.key, &key2)) { -+ ret = -EINVAL; -+ goto out_put_keys; -+ } -+ - /* Queue the futex_q, drop the hb lock, wait for wakeup. */ - futex_wait_queue_me(hb, &q, to); - diff --git a/debian/patches/bugfix/x86/ACPICA-Tables-Fix-invalid-pointer-accesses-in-acpi_t.patch b/debian/patches/bugfix/x86/ACPICA-Tables-Fix-invalid-pointer-accesses-in-acpi_t.patch deleted file mode 100644 index 636d6d033..000000000 --- a/debian/patches/bugfix/x86/ACPICA-Tables-Fix-invalid-pointer-accesses-in-acpi_t.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Lv Zheng -Date: Wed, 30 Apr 2014 10:05:40 +0800 -Subject: ACPICA: Tables: Fix invalid pointer accesses in - acpi_tb_parse_root_table(). -Origin: https://git.kernel.org/cgit/linux/kernel/git/rafael/linux-pm.git/commit?id=d48dc067450d84324067f4472dc0b169e9af4454 -Bug-Debian: https://bugs.debian.org/748574 - -Linux XSDT validation mechanism backport has introduced a regreession: - Commit: 671cc68dc61f029d44b43a681356078e02d8dab8 - Subject: ACPICA: Back port and refine validation of the XSDT root table. -There is a pointer still accessed after unmapping. - -This patch fixes this issue. Lv Zheng. - -Fixes: 671cc68dc61f (ACPICA: Back port and refine validation of the XSDT root table.) -References: https://bugzilla.kernel.org/show_bug.cgi?id=73911 -References: https://bugs.archlinux.org/task/39811 -Signed-off-by: Lv Zheng -Reported-and-tested-by: Bruce Chiarelli -Reported-and-tested-by: Spyros Stathopoulos -Signed-off-by: Bob Moore -Cc: 3.14+ # 3.14+ -Signed-off-by: Rafael J. Wysocki ---- - drivers/acpi/acpica/tbutils.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/drivers/acpi/acpica/tbutils.c b/drivers/acpi/acpica/tbutils.c -index a4702ee..9fb85f3 100644 ---- a/drivers/acpi/acpica/tbutils.c -+++ b/drivers/acpi/acpica/tbutils.c -@@ -461,6 +461,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address) - u32 table_count; - struct acpi_table_header *table; - acpi_physical_address address; -+ acpi_physical_address rsdt_address; - u32 length; - u8 *table_entry; - acpi_status status; -@@ -488,11 +489,14 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address) - * as per the ACPI specification. - */ - address = (acpi_physical_address) rsdp->xsdt_physical_address; -+ rsdt_address = -+ (acpi_physical_address) rsdp->rsdt_physical_address; - table_entry_size = ACPI_XSDT_ENTRY_SIZE; - } else { - /* Root table is an RSDT (32-bit physical addresses) */ - - address = (acpi_physical_address) rsdp->rsdt_physical_address; -+ rsdt_address = address; - table_entry_size = ACPI_RSDT_ENTRY_SIZE; - } - -@@ -515,8 +519,7 @@ acpi_status __init acpi_tb_parse_root_table(acpi_physical_address rsdp_address) - - /* Fall back to the RSDT */ - -- address = -- (acpi_physical_address) rsdp->rsdt_physical_address; -+ address = rsdt_address; - table_entry_size = ACPI_RSDT_ENTRY_SIZE; - } - } diff --git a/debian/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch b/debian/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch index 0c656976c..59fa3c5e5 100644 --- a/debian/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch +++ b/debian/patches/features/all/rt/genirq-do-not-invoke-the-affinity-callback-via-a-wor.patch @@ -11,6 +11,8 @@ This patch moves the invokation into a process context so that we only wakeup() a process while holding the lock. Signed-off-by: Sebastian Andrzej Siewior +[bwh: Adjust context to apply after commit 01f8fa4f01d8 ('genirq: Allow + forcing cpu affinity of interrupts') in 3.14.6] --- include/linux/interrupt.h | 1 kernel/irq/manage.c | 79 ++++++++++++++++++++++++++++++++++++++++++++-- @@ -18,7 +20,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/include/linux/interrupt.h +++ b/include/linux/interrupt.h -@@ -224,6 +224,7 @@ struct irq_affinity_notify { +@@ -257,6 +257,7 @@ struct irq_affinity_notify { unsigned int irq; struct kref kref; struct work_struct work; @@ -88,10 +90,10 @@ Signed-off-by: Sebastian Andrzej Siewior + +#endif + - int __irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask) + int irq_set_affinity_locked(struct irq_data *data, const struct cpumask *mask, + bool force) { - struct irq_chip *chip = irq_data_get_irq_chip(data); -@@ -182,7 +238,17 @@ int __irq_set_affinity_locked(struct irq +@@ -183,7 +239,17 @@ int irq_set_affinity_locked(struct irq_d if (desc->affinity_notify) { kref_get(&desc->affinity_notify->kref); @@ -109,7 +111,7 @@ Signed-off-by: Sebastian Andrzej Siewior } irqd_set(data, IRQD_AFFINITY_SET); -@@ -223,10 +289,8 @@ int irq_set_affinity_hint(unsigned int i +@@ -218,10 +284,8 @@ int irq_set_affinity_hint(unsigned int i } EXPORT_SYMBOL_GPL(irq_set_affinity_hint); @@ -121,7 +123,7 @@ Signed-off-by: Sebastian Andrzej Siewior struct irq_desc *desc = irq_to_desc(notify->irq); cpumask_var_t cpumask; unsigned long flags; -@@ -248,6 +312,13 @@ static void irq_affinity_notify(struct w +@@ -243,6 +307,13 @@ out: kref_put(¬ify->kref, notify->release); } @@ -135,7 +137,7 @@ Signed-off-by: Sebastian Andrzej Siewior /** * irq_set_affinity_notifier - control notification of IRQ affinity changes * @irq: Interrupt for which to enable/disable notification -@@ -277,6 +348,8 @@ irq_set_affinity_notifier(unsigned int i +@@ -272,6 +343,8 @@ irq_set_affinity_notifier(unsigned int i notify->irq = irq; kref_init(¬ify->kref); INIT_WORK(¬ify->work, irq_affinity_notify); diff --git a/debian/patches/features/all/rt/latency-hist.patch b/debian/patches/features/all/rt/latency-hist.patch index 4f3933998..1c3f25b0f 100644 --- a/debian/patches/features/all/rt/latency-hist.patch +++ b/debian/patches/features/all/rt/latency-hist.patch @@ -359,7 +359,7 @@ Signed-off-by: Thomas Gleixner /* * The timer bases: -@@ -998,6 +999,17 @@ int __hrtimer_start_range_ns(struct hrti +@@ -1017,6 +1018,17 @@ int __hrtimer_start_range_ns(struct hrti #endif } @@ -376,8 +376,8 @@ Signed-off-by: Thomas Gleixner + hrtimer_set_expires_range_ns(timer, tim, delta_ns); - timer_stats_hrtimer_set_start_info(timer); -@@ -1276,6 +1288,8 @@ static void __run_hrtimer(struct hrtimer + /* Switch the timer base, if necessary: */ +@@ -1298,6 +1310,8 @@ static void __run_hrtimer(struct hrtimer #ifdef CONFIG_HIGH_RES_TIMERS @@ -386,7 +386,7 @@ Signed-off-by: Thomas Gleixner /* * High resolution timer interrupt * Called with interrupts disabled -@@ -1319,6 +1333,15 @@ void hrtimer_interrupt(struct clock_even +@@ -1341,6 +1355,15 @@ retry: timer = container_of(node, struct hrtimer, node); diff --git a/debian/patches/features/all/rt/rtmutex-futex-prepare-rt.patch b/debian/patches/features/all/rt/rtmutex-futex-prepare-rt.patch index 3e5103fe5..536856efa 100644 --- a/debian/patches/features/all/rt/rtmutex-futex-prepare-rt.patch +++ b/debian/patches/features/all/rt/rtmutex-futex-prepare-rt.patch @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner --- a/kernel/futex.c +++ b/kernel/futex.c -@@ -1585,6 +1585,16 @@ static int futex_requeue(u32 __user *uad +@@ -1710,6 +1710,16 @@ retry_private: requeue_pi_wake_futex(this, &key2, hb2); drop_count++; continue; @@ -29,7 +29,7 @@ Signed-off-by: Thomas Gleixner } else if (ret) { /* -EDEADLK */ this->pi_state = NULL; -@@ -2439,7 +2449,7 @@ static int futex_wait_requeue_pi(u32 __u +@@ -2563,7 +2573,7 @@ static int futex_wait_requeue_pi(u32 __u struct hrtimer_sleeper timeout, *to = NULL; struct rt_mutex_waiter rt_waiter; struct rt_mutex *pi_mutex = NULL; @@ -38,7 +38,7 @@ Signed-off-by: Thomas Gleixner union futex_key key2 = FUTEX_KEY_INIT; struct futex_q q = futex_q_init; int res, ret; -@@ -2488,20 +2498,55 @@ static int futex_wait_requeue_pi(u32 __u +@@ -2621,20 +2631,55 @@ static int futex_wait_requeue_pi(u32 __u /* Queue the futex_q, drop the hb lock, wait for wakeup. */ futex_wait_queue_me(hb, &q, to); @@ -105,7 +105,7 @@ Signed-off-by: Thomas Gleixner /* Check if the requeue code acquired the second futex for us. */ if (!q.rt_waiter) { -@@ -2510,9 +2555,10 @@ static int futex_wait_requeue_pi(u32 __u +@@ -2643,9 +2688,10 @@ static int futex_wait_requeue_pi(u32 __u * did a lock-steal - fix up the PI-state in that case. */ if (q.pi_state && (q.pi_state->owner != current)) { @@ -118,7 +118,7 @@ Signed-off-by: Thomas Gleixner } } else { /* -@@ -2525,7 +2571,8 @@ static int futex_wait_requeue_pi(u32 __u +@@ -2658,7 +2704,8 @@ static int futex_wait_requeue_pi(u32 __u ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter, 1); debug_rt_mutex_free_waiter(&rt_waiter); @@ -151,8 +151,8 @@ Signed-off-by: Thomas Gleixner goto out_unlock_pi; /* -@@ -528,6 +533,23 @@ static int task_blocks_on_rt_mutex(struc - int chain_walk = 0, res; +@@ -552,6 +557,23 @@ static int task_blocks_on_rt_mutex(struc + return -EDEADLK; raw_spin_lock_irqsave(&task->pi_lock, flags); + @@ -175,7 +175,7 @@ Signed-off-by: Thomas Gleixner __rt_mutex_adjust_prio(task); waiter->task = task; waiter->lock = lock; -@@ -551,7 +573,7 @@ static int task_blocks_on_rt_mutex(struc +@@ -575,7 +597,7 @@ static int task_blocks_on_rt_mutex(struc rt_mutex_enqueue_pi(owner, waiter); __rt_mutex_adjust_prio(owner); @@ -184,7 +184,7 @@ Signed-off-by: Thomas Gleixner chain_walk = 1; raw_spin_unlock_irqrestore(&owner->pi_lock, flags); } -@@ -645,7 +667,7 @@ static void remove_waiter(struct rt_mute +@@ -669,7 +691,7 @@ static void remove_waiter(struct rt_mute } __rt_mutex_adjust_prio(owner); @@ -193,7 +193,7 @@ Signed-off-by: Thomas Gleixner chain_walk = 1; raw_spin_unlock_irqrestore(&owner->pi_lock, flags); -@@ -677,7 +699,7 @@ void rt_mutex_adjust_pi(struct task_stru +@@ -701,7 +723,7 @@ void rt_mutex_adjust_pi(struct task_stru raw_spin_lock_irqsave(&task->pi_lock, flags); waiter = task->pi_blocked_on; diff --git a/debian/patches/series b/debian/patches/series index d2f8fe8b5..6c62816df 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -83,15 +83,8 @@ features/arm/ARM-sun4i-dt-Add-bindings-for-USB-clocks.patch features/arm/ARM-sun4i-dt-Add-USB-host-bindings.patch debian/libata-avoid-abi-change-in-3.14.4.patch debian/dm-avoid-abi-change-in-3.14.4.patch -bugfix/x86/ACPICA-Tables-Fix-invalid-pointer-accesses-in-acpi_t.patch debian/net-revert-lockdep-changes-in-3.14.5.patch debian/sockdiag-avoid-abi-change-in-3.14.5.patch debian/target-avoid-abi-change-in-3.14.5.patch debian/netfilter-avoid-abi-change-in-3.14.5.patch bugfix/mips/MIPS-Fix-branch-emulation-of-branch-likely-instructi.patch -bugfix/all/futex-Add-another-early-deadlock-detection-check.patch -bugfix/all/futex-Prevent-attaching-to-kernel-threads.patch -bugfix/all/futex-prevent-requeue-pi-on-same-futex.patch -bugfix/all/futex-Validate-atomic-acquisition-in-futex_lock_pi_atomic.patch -bugfix/all/futex-Always-cleanup-owner-tid-in-unlock_pi.patch -bugfix/all/futex-Make-lookup_pi_state-more-robust.patch From 6c6c4815219d934fa889253c414bda2a149e435b Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Wed, 11 Jun 2014 15:27:00 +0000 Subject: [PATCH 10/32] =?UTF-8?q?*=20topconfig:=20Enable=20modular=20HW=5F?= =?UTF-8?q?RANDOM.=20*=20[kernelarch-powerpc]=20Remove=20HW=5FRANDOM.=20*?= =?UTF-8?q?=20[kernelarch-x86]=20Remove=20HW=5FRANDOM.=20*=20[mips/4kc-mal?= =?UTF-8?q?ta]=20Remove=20HW=5FRANDOM.=20*=20[mips/5kc-malta]=20Remove=20H?= =?UTF-8?q?W=5FRANDOM.=20*=C2=A0[mips/octeon]=20Remove=20HW=5FRANDOM.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/dists/sid/linux/; revision=21419 --- debian/changelog | 8 ++++++++ debian/config/armhf/config.armmp | 1 - debian/config/config | 2 +- debian/config/kernelarch-powerpc/config-arch-64 | 1 - debian/config/kernelarch-x86/config | 1 - debian/config/mips/config.4kc-malta | 5 ----- debian/config/mips/config.5kc-malta | 5 ----- debian/config/mips/config.octeon | 1 - 8 files changed, 9 insertions(+), 15 deletions(-) diff --git a/debian/changelog b/debian/changelog index 3d0797178..fc3c74667 100644 --- a/debian/changelog +++ b/debian/changelog @@ -157,6 +157,14 @@ linux (3.14.6-1) UNRELEASED; urgency=medium * [arm64] Update modules included in installer udebs. * Include virtio_mmio in virtio-modules udeb when available. + [ Aurelien Jarno ] + * topconfig: Enable modular HW_RANDOM. + * [kernelarch-powerpc] Remove HW_RANDOM. + * [kernelarch-x86] Remove HW_RANDOM. + * [mips/4kc-malta] Remove HW_RANDOM. + * [mips/5kc-malta] Remove HW_RANDOM. + * [mips/octeon] Remove HW_RANDOM. + -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 linux (3.14.5-1) unstable; urgency=high diff --git a/debian/config/armhf/config.armmp b/debian/config/armhf/config.armmp index f9d65d975..6a9893c79 100644 --- a/debian/config/armhf/config.armmp +++ b/debian/config/armhf/config.armmp @@ -138,7 +138,6 @@ CONFIG_OMAP_INTERCONNECT=m ## ## file: drivers/char/hw_random/Kconfig ## -CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_OMAP=m ## diff --git a/debian/config/config b/debian/config/config index 509bd4813..6e3613c94 100644 --- a/debian/config/config +++ b/debian/config/config @@ -335,7 +335,7 @@ CONFIG_TELCLOCK=m ## ## file: drivers/char/hw_random/Kconfig ## -# CONFIG_HW_RANDOM is not set +CONFIG_HW_RANDOM=m # CONFIG_HW_RANDOM_TIMERIOMEM is not set CONFIG_HW_RANDOM_VIRTIO=m CONFIG_HW_RANDOM_TPM=m diff --git a/debian/config/kernelarch-powerpc/config-arch-64 b/debian/config/kernelarch-powerpc/config-arch-64 index 269ddb03c..eef104518 100644 --- a/debian/config/kernelarch-powerpc/config-arch-64 +++ b/debian/config/kernelarch-powerpc/config-arch-64 @@ -90,7 +90,6 @@ CONFIG_BLK_DEV_RSXX=m ## ## file: drivers/char/hw_random/Kconfig ## -CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_PASEMI=m ## diff --git a/debian/config/kernelarch-x86/config b/debian/config/kernelarch-x86/config index 234d65d08..812a5398e 100644 --- a/debian/config/kernelarch-x86/config +++ b/debian/config/kernelarch-x86/config @@ -310,7 +310,6 @@ CONFIG_AGP_VIA=y ## ## file: drivers/char/hw_random/Kconfig ## -CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_GEODE=m diff --git a/debian/config/mips/config.4kc-malta b/debian/config/mips/config.4kc-malta index 3410aace9..b3cc474d3 100644 --- a/debian/config/mips/config.4kc-malta +++ b/debian/config/mips/config.4kc-malta @@ -166,11 +166,6 @@ CONFIG_PPDEV=m CONFIG_R3964=m CONFIG_APPLICOM=m -## -## file: drivers/char/hw_random/Kconfig -## -CONFIG_HW_RANDOM=m - ## ## file: drivers/char/ipmi/Kconfig ## diff --git a/debian/config/mips/config.5kc-malta b/debian/config/mips/config.5kc-malta index 83a35a092..70bda5b9d 100644 --- a/debian/config/mips/config.5kc-malta +++ b/debian/config/mips/config.5kc-malta @@ -169,11 +169,6 @@ CONFIG_PPDEV=m CONFIG_R3964=m CONFIG_APPLICOM=m -## -## file: drivers/char/hw_random/Kconfig -## -CONFIG_HW_RANDOM=m - ## ## file: drivers/char/ipmi/Kconfig ## diff --git a/debian/config/mips/config.octeon b/debian/config/mips/config.octeon index da9b9f1f9..f0273903f 100644 --- a/debian/config/mips/config.octeon +++ b/debian/config/mips/config.octeon @@ -37,7 +37,6 @@ CONFIG_PATA_OCTEON_CF=y ## ## file: drivers/char/hw_random/Kconfig ## -CONFIG_HW_RANDOM=m CONFIG_HW_RANDOM_OCTEON=m ## From 09ef47c5c7542265139e9477550b06f7291b167f Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 19:57:52 +0000 Subject: [PATCH 11/32] ppc64el: kernel: config: split common/big-endian powerpc64 options Move big-endian exclusive options into config-arch-64-be. Mostly things that don't support little-endian mode: Cell, PS3, PASemi, Maple, PowerMac. Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21420 --- .../config/kernelarch-powerpc/config-arch-64 | 84 ------------------- debian/config/powerpc/defines | 2 +- debian/config/ppc64/defines | 2 +- 3 files changed, 2 insertions(+), 86 deletions(-) diff --git a/debian/config/kernelarch-powerpc/config-arch-64 b/debian/config/kernelarch-powerpc/config-arch-64 index eef104518..e9aa8a0c4 100644 --- a/debian/config/kernelarch-powerpc/config-arch-64 +++ b/debian/config/kernelarch-powerpc/config-arch-64 @@ -18,16 +18,6 @@ CONFIG_RTAS_PROC=y CONFIG_RTAS_FLASH=m CONFIG_IBMEBUS=y -## -## file: arch/powerpc/platforms/cell/Kconfig -## -CONFIG_PPC_IBM_CELL_BLADE=y -# CONFIG_PPC_CELLEB is not set -CONFIG_SPU_FS=m -CONFIG_SPU_FS_64K_LS=y -CONFIG_CBE_RAS=y -CONFIG_CBE_THERM=m - ## ## file: arch/powerpc/platforms/Kconfig.cputype ## @@ -35,33 +25,6 @@ CONFIG_PPC64=y # CONFIG_TUNE_CELL is not set CONFIG_ALTIVEC=y CONFIG_SMP=y -CONFIG_NR_CPUS=32 - -## -## file: arch/powerpc/platforms/maple/Kconfig -## -CONFIG_PPC_MAPLE=y - -## -## file: arch/powerpc/platforms/pasemi/Kconfig -## -CONFIG_PPC_PASEMI=y -CONFIG_PPC_PASEMI_MDIO=m - -## -## file: arch/powerpc/platforms/ps3/Kconfig -## -CONFIG_PPC_PS3=y -CONFIG_PS3_ADVANCED=y -CONFIG_PS3_HTAB_SIZE=20 -# CONFIG_PS3_DYNAMIC_DMA is not set -CONFIG_PS3_PS3AV=y -CONFIG_PS3_SYS_MANAGER=y -CONFIG_PS3_DISK=m -CONFIG_PS3_ROM=m -CONFIG_PS3_FLASH=m -CONFIG_PS3_VRAM=m -CONFIG_PS3_LPM=m ## ## file: arch/powerpc/platforms/pseries/Kconfig @@ -90,28 +53,6 @@ CONFIG_BLK_DEV_RSXX=m ## ## file: drivers/char/hw_random/Kconfig ## -CONFIG_HW_RANDOM_PASEMI=m - -## -## file: drivers/cpufreq/Kconfig.powerpc -## -CONFIG_CPU_FREQ_CBE=m -CONFIG_CPU_FREQ_PMAC64=y -#. It's a bool -CONFIG_PPC_PASEMI_CPUFREQ=y - -## -## file: drivers/i2c/busses/Kconfig -## -CONFIG_I2C_PASEMI=m - -## -## file: drivers/macintosh/Kconfig -## -CONFIG_WINDFARM=m -CONFIG_WINDFARM_PM81=m -CONFIG_WINDFARM_PM91=m -CONFIG_WINDFARM_PM112=m ## ## file: drivers/net/ethernet/ibm/Kconfig @@ -135,28 +76,11 @@ CONFIG_IBM_EMAC_RX_SKB_HEADROOM=0 ## # CONFIG_MV643XX_ETH is not set -## -## file: drivers/net/ethernet/pasemi/Kconfig -## -CONFIG_PASEMI_MAC=m - -## -## file: drivers/net/ethernet/toshiba/Kconfig -## -CONFIG_GELIC_NET=m -CONFIG_GELIC_WIRELESS=y -CONFIG_SPIDER_NET=m - ## ## file: drivers/pci/hotplug/Kconfig ## # CONFIG_HOTPLUG_PCI is not set -## -## file: drivers/rtc/Kconfig -## -CONFIG_RTC_DRV_PS3=m - ## ## file: drivers/scsi/Kconfig ## @@ -188,8 +112,6 @@ CONFIG_HVCS=m # CONFIG_FB_VALKYRIE is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_ATY128 is not set -CONFIG_FB_PS3=y -CONFIG_FB_PS3_DEFAULT_SIZE_M=9 ## ## file: drivers/watchdog/Kconfig @@ -206,9 +128,3 @@ CONFIG_SPARSEMEM_MANUAL=y ## end choice CONFIG_SPARSEMEM_VMEMMAP=y -## -## file: sound/ppc/Kconfig -## -CONFIG_SND_PS3=m -CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 - diff --git a/debian/config/powerpc/defines b/debian/config/powerpc/defines index 889ce84e1..8c64080b3 100644 --- a/debian/config/powerpc/defines +++ b/debian/config/powerpc/defines @@ -30,4 +30,4 @@ configs: powerpc/config.powerpc powerpc/config.powerpc-smp hardware: 64-bit PowerPC [powerpc64_image] -configs: kernelarch-powerpc/config-arch-64 powerpc/config.powerpc64 +configs: kernelarch-powerpc/config-arch-64 powerpc/config.powerpc64 kernelarch-powerpc/config-arch-64-be diff --git a/debian/config/ppc64/defines b/debian/config/ppc64/defines index 3f0afd9e5..dd85eb039 100644 --- a/debian/config/ppc64/defines +++ b/debian/config/ppc64/defines @@ -19,4 +19,4 @@ gcc-4.8: gcc-4.8 (>= 4.8.2-21) hardware: 64-bit PowerPC [powerpc64_image] -configs: kernelarch-powerpc/config-arch-64 +configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-be From 41f65bbf2ca669ba8957d5062e442ff0f6263f88 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 19:59:57 +0000 Subject: [PATCH 12/32] ppc64el: kernel: config: split common/big-endian powerpc64 options Move big-endian exclusive options into config-arch-64-be. Mostly things that don't support little-endian mode: Cell, PS3, PASemi, Maple, PowerMac. Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21421 --- .../kernelarch-powerpc/config-arch-64-be | 96 +++++++++++++++++++ 1 file changed, 96 insertions(+) create mode 100644 debian/config/kernelarch-powerpc/config-arch-64-be diff --git a/debian/config/kernelarch-powerpc/config-arch-64-be b/debian/config/kernelarch-powerpc/config-arch-64-be new file mode 100644 index 000000000..486c347b3 --- /dev/null +++ b/debian/config/kernelarch-powerpc/config-arch-64-be @@ -0,0 +1,96 @@ +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +CONFIG_NR_CPUS=32 + +## +## file: arch/powerpc/platforms/cell/Kconfig +## +CONFIG_PPC_IBM_CELL_BLADE=y +# CONFIG_PPC_CELLEB is not set +CONFIG_SPU_FS=m +CONFIG_SPU_FS_64K_LS=y +CONFIG_CBE_RAS=y +CONFIG_CBE_THERM=m + +## +## file: arch/powerpc/platforms/maple/Kconfig +## +CONFIG_PPC_MAPLE=y + +## +## file: arch/powerpc/platforms/pasemi/Kconfig +## +CONFIG_PPC_PASEMI=y +CONFIG_PPC_PASEMI_MDIO=m + +## +## file: arch/powerpc/platforms/ps3/Kconfig +## +CONFIG_PPC_PS3=y +CONFIG_PS3_ADVANCED=y +CONFIG_PS3_HTAB_SIZE=20 +# CONFIG_PS3_DYNAMIC_DMA is not set +CONFIG_PS3_PS3AV=y +CONFIG_PS3_SYS_MANAGER=y +CONFIG_PS3_DISK=m +CONFIG_PS3_ROM=m +CONFIG_PS3_FLASH=m +CONFIG_PS3_VRAM=m +CONFIG_PS3_LPM=m + +## +## file: drivers/char/hw_random/Kconfig +## +CONFIG_HW_RANDOM_PASEMI=m + +## +## file: drivers/cpufreq/Kconfig.powerpc +## +CONFIG_CPU_FREQ_CBE=m +CONFIG_CPU_FREQ_PMAC64=y +#. It's a bool +CONFIG_PPC_PASEMI_CPUFREQ=y + +## +## file: drivers/i2c/busses/Kconfig +## +CONFIG_I2C_PASEMI=m + +## +## file: drivers/macintosh/Kconfig +## +CONFIG_WINDFARM=m +CONFIG_WINDFARM_PM81=m +CONFIG_WINDFARM_PM91=m +CONFIG_WINDFARM_PM112=m + +## +## file: drivers/net/ethernet/pasemi/Kconfig +## +CONFIG_PASEMI_MAC=m + +## +## file: drivers/net/ethernet/toshiba/Kconfig +## +CONFIG_GELIC_NET=m +CONFIG_GELIC_WIRELESS=y +CONFIG_SPIDER_NET=m + +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_PS3=m + +## +## file: drivers/video/Kconfig +## +CONFIG_FB_PS3=y +CONFIG_FB_PS3_DEFAULT_SIZE_M=9 + +## +## file: sound/ppc/Kconfig +## +CONFIG_SND_PS3=m +CONFIG_SND_PS3_DEFAULT_START_DELAY=2000 + From 0245fd5588291425d14aabc43b8901799163f8e1 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 20:01:13 +0000 Subject: [PATCH 13/32] ppc64el: kernel: config: little-endian powerpc64 options This config has options for little-endian PowerPC64 systems. It shares most options with big-endian PowerPC64 systems. The differences are: - choice: Endianness selection Build a little endian kernel. - choice: Page size 64k pages have benefits (performance et al) over 4k pages on IBM POWER processors. The Debian ppc64el port primarily runs on this sort of hardware and chances are it will also run on hardware based on it (i.e., OpenPOWER) [1] [2]. - Maximum number of CPUs This was increased to 2048 (following pseries_le_defconfig). For the currently announced systems, the number of CPUs range between 80-192 (1 or 2 processor module(s) * 10 or 12 cores per module * 8 threads per core) [3]. This is enough to have to diverge from CONFIG_NR_CPUS=32 in the other powerpc ports. For future systems, it's likely larger ones will be announced. The rationale: consider the announced systems are classified as 'scale-out' and 'entry-level', plus larger ones have been historically made available for addressing other markets; and notice the largest POWER7 server has 1024 CPUs (threads) [4], and that the threads-per-core doubled from POWER7 to POWER8. So, the 2048 value is a reasonable 'max' in that projection. Certainly it is greater than what would be required for most systems, but I belive 'max' makes sense in that case, if we are not looking for kernel rebuild and/with different config for the larger systems (although I would be ok with flavours). - choice: Default CPUFreq governor As other architectures, we would prefer the default cpufreq governor to be 'ondemand'. The currently available cpufreq driver is for the PowerNV (non-virtualized) platform, where all processors are available. In that scenario, statically running at the highest frequency (specially on idle processors) is not very desireable for the hardware around (servers), and it is not unlikely for future hardware (possibly non-servers) to benefit too, considering that energy savings have been increasingly important on most environments. (Note: the powernv-cpufreq driver was introduced only in 3.15; so, this option has no effect in 3.14; it is harmless. I can put in patches for enabling this on 3.14 soon.) - Apple PowerMac based machines This is being disabled temporarily, until a patch makes upstream (restricting it to 'depends on !CPU_LITTLE_ENDIAN'). This hardware line has no (known) support for little endian mode currently, and disabling it has the useful effect of also disabling a lot of config options which 'depends on PPC_PMAC', thus saving tens of lines from changing config files. It indeed has to be disabled because it's enabled by default ('depends on BOOK3S', 'default y'), so even changing it from config files would not be sufficient. [1] 'OpenPOWER Foundation Unveils First Innovations and Roadmap' http://openpowerfoundation.org/press-releases/openpower-foundation-unveils-first-innovations-and-roadmap/ [2] 'POWER8 Reference Board now available for Development!' http://openpowerfoundation.org/technical/related-links/ [3] 'IBM Power System S812L and S822L' http://www-03.ibm.com/systems/power/hardware/s812l-s822l/specs.html [4] 'IBM Power 795 server' http://www-03.ibm.com/systems/power/hardware/795/perfdata.html Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21422 --- .../kernelarch-powerpc/config-arch-64-le | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 debian/config/kernelarch-powerpc/config-arch-64-le diff --git a/debian/config/kernelarch-powerpc/config-arch-64-le b/debian/config/kernelarch-powerpc/config-arch-64-le new file mode 100644 index 000000000..367001a0b --- /dev/null +++ b/debian/config/kernelarch-powerpc/config-arch-64-le @@ -0,0 +1,34 @@ +## +## file: arch/powerpc/Kconfig +## +## choice: Page size +# CONFIG_PPC_4K_PAGES is not set +CONFIG_PPC_64K_PAGES=y +## end choice + +## +## file: arch/powerpc/platforms/Kconfig.cputype +## +## choice: Endianness selection +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_CPU_LITTLE_ENDIAN=y +## end choice +CONFIG_NR_CPUS=2048 + +## +## file: arch/powerpc/platforms/powermac/Kconfig +## +#. This needs to be explicitly disabled currently (3.15) +# CONFIG_PPC_PMAC is not set + +## +## file: drivers/cpufreq/Kconfig +## +## choice: Default CPUFreq governor +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +## end choice + From 426283d6eb88e2c29a876c1e9d8bb6b8ca72e167 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 20:24:15 +0000 Subject: [PATCH 14/32] ppc64el: kernel: defines file Create a more complete 'debian/config/ppc64el/defines' file. The ppc64el (little endian) config has most options common with the ppc64 (big endian) config. Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21423 --- debian/config/ppc64el/defines | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/debian/config/ppc64el/defines b/debian/config/ppc64el/defines index 11fd73a97..b5ec5ed67 100644 --- a/debian/config/ppc64el/defines +++ b/debian/config/ppc64el/defines @@ -1,4 +1,18 @@ [base] +flavours: + powerpc64le kernel-arch: powerpc -featuresets: -# empty + +[build] +image-file: vmlinux + +[image] +configs: +suggests: mkvmlinuz +install-stem: vmlinux + +[powerpc64le_description] +hardware: Little-endian 64-bit PowerPC + +[powerpc64le_image] +configs: kernelarch-powerpc/config-arch-64 kernelarch-powerpc/config-arch-64-le From e8390331a0f808059c5c69b833c488e1e90bc5e0 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 20:53:03 +0000 Subject: [PATCH 15/32] ppc64el: kernel: patch: temporarily disable zImage Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper' (zImage) patches upstream rather than shipping 32-bit tools for zImage. The patches are currently in Ben Herrenschmidt's linux-next tree [1]. The patches are not being carried over instead of this workaround because, even without both, the build process does produces vmlinux, only failing for zImage. So, it's ok to just work-around this for now, as we pick vmlinux. The workaround patch just avoids this build error: [...] LD vmlinux SYSMAP System.map [...] WRAP arch/powerpc/boot/zImage.pseries ld: unrecognised emulation mode: elf32ppc Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim make[6]: *** [arch/powerpc/boot/zImage.pseries] Error 1 make[5]: *** [zImage] Error 2 [1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=powerpc%2Fboot (15 commits with message prefix 'powerpc/boot:' dated of 2014-04-28) Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21426 --- .../debian/ppc64el-disable-zImage.patch | 49 +++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 50 insertions(+) create mode 100644 debian/patches/debian/ppc64el-disable-zImage.patch diff --git a/debian/patches/debian/ppc64el-disable-zImage.patch b/debian/patches/debian/ppc64el-disable-zImage.patch new file mode 100644 index 000000000..a234961ea --- /dev/null +++ b/debian/patches/debian/ppc64el-disable-zImage.patch @@ -0,0 +1,49 @@ +From: Mauricio Faria de Oliveira +Date: Wed, 4 Jun 2014 09:06:27 -0300 +Subject: ppc64el: kernel: patch: temporarily disable zImage + +Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper' +(zImage) patches upstream rather than shipping 32-bit tools for zImage. The +patches are currently in Ben Herrenschmidt's linux-next tree [1]. + +The patches are not being carried over instead of this workaround because, +even without both, the build process does produces vmlinux, only failing for +zImage. So, it's ok to just work-around this for now, as we pick vmlinux. + +The workaround patch just avoids this build error: + + [...] + LD vmlinux + SYSMAP System.map + [...] + WRAP arch/powerpc/boot/zImage.pseries + ld: unrecognised emulation mode: elf32ppc + Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim + make[6]: *** [arch/powerpc/boot/zImage.pseries] Error 1 + make[5]: *** [zImage] Error 2 + +[1] https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/log/?qt=grep&q=powerpc%2Fboot + (15 commits with message prefix 'powerpc/boot:' dated of 2014-04-28) + +Signed-off-by: Mauricio Faria de Oliveira +--- +Index: linux-3.14.2/arch/powerpc/boot/Makefile +=================================================================== +--- linux-3.14.2.orig/arch/powerpc/boot/Makefile 2014-05-02 16:52:37.000000000 -0300 ++++ linux-3.14.2/arch/powerpc/boot/Makefile 2014-05-07 09:39:11.000000000 -0300 +@@ -344,6 +344,15 @@ + $(obj)/%.dtb: $(src)/dts/%.dts FORCE + $(call if_changed_dep,dtc) + ++# Debian ppc64el will wait for the 'powerpc/boot: 64bit little endian wrapper' ++# (zImage) patches upstream rather than shipping 32-bit tools for zImage. ++# This makes the next conditional block to pick vmlinux.strip as image-y. ++ifdef CONFIG_PPC64 ++ifdef CONFIG_CPU_LITTLE_ENDIAN ++image-y := ++endif ++endif ++ + # If there isn't a platform selected then just strip the vmlinux. + ifeq (,$(image-y)) + image-y := vmlinux.strip diff --git a/debian/patches/series b/debian/patches/series index 6c62816df..7a6d58d62 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -6,6 +6,7 @@ debian/ia64-hardcode-arch-script-output.patch debian/mips-disable-werror.patch debian/arch-sh4-fix-uimage-build.patch debian/powerpcspe-omit-uimage.patch +debian/ppc64el-disable-zImage.patch features/all/Kbuild-kconfig-Verbose-version-of-listnewconfig.patch # Fixes/improvements to firmware loading From 264e49ce133e09ac48e017a7ab7b8151879190b2 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 20:54:28 +0000 Subject: [PATCH 16/32] powerpc/powernv: Add calls to support little endian host svn path=/dists/sid/linux/; revision=21427 --- ...wernv-calls-to-support-little-endian.patch | 101 ++++++++++++++++++ debian/patches/series | 1 + 2 files changed, 102 insertions(+) create mode 100644 debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch diff --git a/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch b/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch new file mode 100644 index 000000000..b05287870 --- /dev/null +++ b/debian/patches/bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch @@ -0,0 +1,101 @@ +Subject: powerpc/powernv: Add calls to support little endian host +From: Benjamin Herrenschmidt +Date: Tue, 20 May 2014 11:01:28 +1000 +Origin: http://patchwork.ozlabs.org/patch/350461/ + +When running as a powernv "host" system on P8, we need to switch +the endianness of interrupt handlers. This does it via the appropriate +call to the OPAL firmware which may result in just switching HID0:HILE +but depending on the processor version might need to do a few more +things. This call must be done early before any other processor has +been brought out of firmware. + +Signed-off-by: Benjamin Herrenschmidt +Signed-off-by: Andy Whitcroft + +--- + +diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h +index 0394e91..a2a3d0d 100644 +--- a/arch/powerpc/include/asm/opal.h ++++ b/arch/powerpc/include/asm/opal.h +@@ -129,6 +129,7 @@ extern int opal_enter_rtas(struct rtas_args *args, + #define OPAL_LPC_READ 67 + #define OPAL_LPC_WRITE 68 + #define OPAL_RETURN_CPU 69 ++#define OPAL_REINIT_CPUS 70 + #define OPAL_FLASH_VALIDATE 76 + #define OPAL_FLASH_MANAGE 77 + #define OPAL_FLASH_UPDATE 78 +@@ -599,6 +600,11 @@ struct OpalIoPhb3ErrorData { + uint64_t pestB[OPAL_PHB3_NUM_PEST_REGS]; + }; + ++enum { ++ OPAL_REINIT_CPUS_HILE_BE = (1 << 0), ++ OPAL_REINIT_CPUS_HILE_LE = (1 << 1), ++}; ++ + typedef struct oppanel_line { + const char * line; + uint64_t line_len; +@@ -719,6 +725,7 @@ int64_t opal_pci_next_error(uint64_t phb_id, uint64_t *first_frozen_pe, + uint16_t *pci_error_type, uint16_t *severity); + int64_t opal_pci_poll(uint64_t phb_id); + int64_t opal_return_cpu(void); ++int64_t opal_reinit_cpus(uint64_t flags); + + int64_t opal_xscom_read(uint32_t gcid, uint64_t pcb_addr, __be64 *val); + int64_t opal_xscom_write(uint32_t gcid, uint64_t pcb_addr, uint64_t val); +diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S +index e780650..3abb518 100644 +--- a/arch/powerpc/platforms/powernv/opal-wrappers.S ++++ b/arch/powerpc/platforms/powernv/opal-wrappers.S +@@ -123,6 +123,7 @@ OPAL_CALL(opal_xscom_write, OPAL_XSCOM_WRITE); + OPAL_CALL(opal_lpc_read, OPAL_LPC_READ); + OPAL_CALL(opal_lpc_write, OPAL_LPC_WRITE); + OPAL_CALL(opal_return_cpu, OPAL_RETURN_CPU); ++OPAL_CALL(opal_reinit_cpus, OPAL_REINIT_CPUS); + OPAL_CALL(opal_validate_flash, OPAL_FLASH_VALIDATE); + OPAL_CALL(opal_manage_flash, OPAL_FLASH_MANAGE); + OPAL_CALL(opal_update_flash, OPAL_FLASH_UPDATE); +diff --git a/arch/powerpc/platforms/powernv/opal.c b/arch/powerpc/platforms/powernv/opal.c +index 1c798cd..359f18a 100644 +--- a/arch/powerpc/platforms/powernv/opal.c ++++ b/arch/powerpc/platforms/powernv/opal.c +@@ -42,6 +42,21 @@ static DEFINE_SPINLOCK(opal_notifier_lock); + static uint64_t last_notified_mask = 0x0ul; + static atomic_t opal_notifier_hold = ATOMIC_INIT(0); + ++static void opal_reinit_cores(void) ++{ ++ /* Do the actual re-init, This will clobber all FPRs, VRs, etc... ++ * ++ * It will preserve non volatile GPRs and HSPRG0/1. It will ++ * also restore HIDs and other SPRs to their original value ++ * but it might clobber a bunch. ++ */ ++#ifdef __BIG_ENDIAN__ ++ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_BE); ++#else ++ opal_reinit_cpus(OPAL_REINIT_CPUS_HILE_LE); ++#endif ++} ++ + int __init early_init_dt_scan_opal(unsigned long node, + const char *uname, int depth, void *data) + { +@@ -77,6 +92,13 @@ int __init early_init_dt_scan_opal(unsigned long node, + printk("OPAL V1 detected !\n"); + } + ++ /* Reinit all cores with the right endian */ ++ opal_reinit_cores(); ++ ++ /* Restore some bits */ ++ if (cur_cpu_spec->cpu_restore) ++ cur_cpu_spec->cpu_restore(); ++ + return 1; + } + diff --git a/debian/patches/series b/debian/patches/series index 7a6d58d62..0c7a0e9dd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -59,6 +59,7 @@ bugfix/mips/disable-advansys.patch bugfix/arm/ixp4xx_iobe.patch bugfix/m68k/ethernat-kconfig.patch bugfix/arm/bfa-Replace-large-udelay-with-mdelay.patch +bugfix/powerpc/ppc64el-powernv-calls-to-support-little-endian.patch # Miscellaneous bug fixes bugfix/all/misc-bmp085-Enable-building-as-a-module.patch From a496fd6c8a4c295d2840655311630b947015038c Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 20:55:38 +0000 Subject: [PATCH 17/32] ppc64el: bug: bug/include-model Add 'ppc64le' (uname output) to the powerpc list. Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21428 --- debian/templates/image.plain.bug/include-model | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/debian/templates/image.plain.bug/include-model b/debian/templates/image.plain.bug/include-model index 40f802133..532ac5717 100644 --- a/debian/templates/image.plain.bug/include-model +++ b/debian/templates/image.plain.bug/include-model @@ -23,7 +23,7 @@ grep_model() { parisc|parisc64) egrep '^(model|[hs]version)\b' /proc/cpuinfo ;; - ppc|ppc64) + ppc|ppc64|ppc64le) egrep -i '^(board|machine|model|motherboard|platform|revision|vendor)\b' /proc/cpuinfo ;; s390|s390x) From 57356b0a9edfbdabf66e54db314d71b7cae055b3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Thu, 12 Jun 2014 21:02:14 +0000 Subject: [PATCH 18/32] Summarise ppc64el changes from Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21429 --- debian/changelog | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/changelog b/debian/changelog index fc3c74667..359024c7e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -165,6 +165,14 @@ linux (3.14.6-1) UNRELEASED; urgency=medium * [mips/5kc-malta] Remove HW_RANDOM. * [mips/octeon] Remove HW_RANDOM. + [ Ben Hutchings ] + * [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira: + - Split common/big-endian powerpc64 options + - Add little-endian powerpc64 options + - Temporarily disable zImage + - powerpc/powernv: Add calls to support little endian host + - Add 'ppc64le' (uname output) to bug/include-model script + -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 linux (3.14.5-1) unstable; urgency=high From a405ef41f3f90b7dd6b13a304e38190d570343b3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 13 Jun 2014 01:07:07 +0000 Subject: [PATCH 19/32] [ppc64el] Enable PPC_TRANSACTIONAL_MEM We want it for big-endian configs as well, but that changes ABI so will have to wait. svn path=/dists/sid/linux/; revision=21431 --- debian/config/kernelarch-powerpc/config-arch-64 | 1 + debian/config/kernelarch-powerpc/config-arch-64-be | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/debian/config/kernelarch-powerpc/config-arch-64 b/debian/config/kernelarch-powerpc/config-arch-64 index e9aa8a0c4..0748ce68e 100644 --- a/debian/config/kernelarch-powerpc/config-arch-64 +++ b/debian/config/kernelarch-powerpc/config-arch-64 @@ -10,6 +10,7 @@ CONFIG_NUMA=y CONFIG_SCHED_SMT=y CONFIG_CMDLINE="console=hvsi0 console=hvc0 console=ttyS0,9600 console=tty0" CONFIG_KERNEL_START=0xc000000000000000 +CONFIG_PPC_TRANSACTIONAL_MEM=y ## ## file: arch/powerpc/platforms/Kconfig diff --git a/debian/config/kernelarch-powerpc/config-arch-64-be b/debian/config/kernelarch-powerpc/config-arch-64-be index 486c347b3..13be21332 100644 --- a/debian/config/kernelarch-powerpc/config-arch-64-be +++ b/debian/config/kernelarch-powerpc/config-arch-64-be @@ -1,3 +1,9 @@ +## +## file: arch/powerpc/Kconfig +## +#. Temporarily disabled to maintain ABI +# CONFIG_PPC_TRANSACTIONAL_MEM is not set + ## ## file: arch/powerpc/platforms/Kconfig.cputype ## From f083fbcfe6f4fddf54fbb8b135568d50890a38b3 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 13 Jun 2014 02:15:33 +0000 Subject: [PATCH 20/32] Update to 3.14.7 Drop the speakup patches which were included in this. svn path=/dists/sid/linux/; revision=21432 --- debian/changelog | 49 ++++++- ...peakup-Move-pasting-into-a-work-item.patch | 121 ------------------ ...Update-__speakup_paste_selection-tty.patch | 89 ------------- debian/patches/series | 2 - 4 files changed, 48 insertions(+), 213 deletions(-) delete mode 100644 debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch delete mode 100644 debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch diff --git a/debian/changelog b/debian/changelog index 359024c7e..011909992 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (3.14.6-1) UNRELEASED; urgency=medium +linux (3.14.7-1) UNRELEASED; urgency=medium * New upstream stable update: http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6 @@ -151,6 +151,53 @@ linux (3.14.6-1) UNRELEASED; urgency=medium - libceph: fix corruption when using page_count 0 page in rbd - media: V4L2: ov7670: fix a wrong index, potentially Oopsing the kernel from user-space + http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.7 + - perf: Limit perf_event_attr::sample_period to 63 bits + - perf: Fix race in removing an event + - SCSI: scsi_transport_sas: move bsg destructor into sas_rphy_remove + (regression in 3.13) + - [arm] 8051/1: put_user: fix possible data corruption in put_user + - [arm] 8064/1: fix v7-M signal return (regression in 3.11) + - cpufreq: remove race while accessing cur_policy + - firewire: revert to 4 GB RDMA, fix protocols using Memory Space + (regression in 3.14) + - [mips] Fix typo when reporting cache and ftlb errors for ImgTec cores + (regression in 3.14) + - dm cache: always split discards on cache block boundaries + - virtio_blk: fix race between start and stop queue + - sched/deadline: Restrict user params max value to 2^63 ns + - sched/dl: Fix race in dl_task_timer() + - drm/radeon: avoid crash if VM command submission isn't available + - [x86] drm/i915: Only copy back the modified fields to userspace from + execbuffer + - drm/radeon/dpm: resume fixes for some systems (regression in 3.14) + - libata: Blacklist queued trim for Crucial M500 (regression in 3.14.4) + - md: always set MD_RECOVERY_INTR when aborting a reshape or other + "resync". + - md: always set MD_RECOVERY_INTR when interrupting a reshape thread. + (regression in 3.12.9, 3.13) + - xhci: delete endpoints from bandwidth list before freeing whole device + - staging: comedi: ni_daq_700: add mux settling delay + - staging: r8192e_pci: fix htons error (regression in 3.14) + - ALSA: hda/analog - Fix silent output on ASUS A8JN (regression in 3.12) + - USB: io_ti: fix firmware download on big-endian machines (part 2) + - usb: pci-quirks: Prevent Sony VAIO t-series from switching usb ports + (regression in 3.12) + - percpu-refcount: fix usage of this_cpu_ops + - [x86] intel_pstate: Remove C0 tracking (regression in 3.14) + - [x86] intel_pstate: Correct rounding in busy calculation + (regression in 3.14) + - [x86] intel_pstate: add sample time scaling + - [x86] intel_pstate: Improve initial busy calculation + - mm: add !pte_present() check on existing hugetlb_entry callbacks + - mm: rmap: fix use-after-free in __put_anon_vma + - iser-target: Add missing target_put_sess_cmd for ImmedateData failure + - iscsi-target: Fix wrong buffer / buffer overrun in + iscsi_change_param_value() + - target: Fix alua_access_state attribute OOPs for un-configured devices + - netfilter: Fix potential use after free in ip6_route_me_harder() + - netfilter: nfnetlink: Fix use after free when it fails to process batch + - [x86] iommu/vt-d: Fix missing IOTLB flush in intel_iommu_unmap() [ Ian Campbell ] * [armhf] Enable VIRTIO_BALLOON and VIRTIO_PCI (Closes: #750742) diff --git a/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch b/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch deleted file mode 100644 index 73f4d4ca1..000000000 --- a/debian/patches/bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch +++ /dev/null @@ -1,121 +0,0 @@ -From: Ben Hutchings -Date: Mon, 19 May 2014 00:56:22 +0100 -Subject: Staging: speakup: Move pasting into a work item -Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/commit?id=d7500135802ca55b3f4e01a16544e8b34082f8c3 -Bug-Debian: https://bugs.debian.org/735202 -Bug-Debian: https://bugs.debian.org/744015 - -Input is handled in softirq context, but when pasting we may -need to sleep. speakup_paste_selection() currently tries to -bodge this by busy-waiting if in_atomic(), but that doesn't -help because the ldisc may also sleep. - -For bonus breakage, speakup_paste_selection() changes the -state of current, even though it's not running in process -context. - -Move it into a work item and make sure to cancel it on exit. - -References: https://bugs.debian.org/735202 -References: https://bugs.debian.org/744015 -Reported-by: Paul Gevers -Reported-and-tested-by: Jarek Czekalski -Signed-off-by: Ben Hutchings -Cc: stable@vger.kernel.org -Signed-off-by: Greg Kroah-Hartman ---- - drivers/staging/speakup/main.c | 1 + - drivers/staging/speakup/selection.c | 38 +++++++++++++++++++++++++++++++------ - drivers/staging/speakup/speakup.h | 1 + - 3 files changed, 34 insertions(+), 6 deletions(-) - ---- a/drivers/staging/speakup/main.c -+++ b/drivers/staging/speakup/main.c -@@ -2218,6 +2218,7 @@ static void __exit speakup_exit(void) - unregister_keyboard_notifier(&keyboard_notifier_block); - unregister_vt_notifier(&vt_notifier_block); - speakup_unregister_devsynth(); -+ speakup_cancel_paste(); - del_timer(&cursor_timer); - kthread_stop(speakup_task); - speakup_task = NULL; ---- a/drivers/staging/speakup/selection.c -+++ b/drivers/staging/speakup/selection.c -@@ -4,6 +4,8 @@ - #include - #include /* for dev_warn */ - #include -+#include -+#include - - #include "speakup.h" - -@@ -121,20 +123,24 @@ int speakup_set_selection(struct tty_str - return 0; - } - --/* TODO: move to some helper thread, probably. That'd fix having to check for -- * in_atomic(). */ --int speakup_paste_selection(struct tty_struct *tty) --{ -+struct speakup_paste_work { -+ struct work_struct work; -+ struct tty_struct *tty; -+}; -+ -+static void __speakup_paste_selection(struct work_struct *work) -+{ -+ struct speakup_paste_work *spw = -+ container_of(work, struct speakup_paste_work, work); -+ struct tty_struct *tty = xchg(&spw->tty, NULL); - struct vc_data *vc = (struct vc_data *) tty->driver_data; - int pasted = 0, count; - DECLARE_WAITQUEUE(wait, current); -+ - add_wait_queue(&vc->paste_wait, &wait); - while (sel_buffer && sel_buffer_lth > pasted) { - set_current_state(TASK_INTERRUPTIBLE); - if (test_bit(TTY_THROTTLED, &tty->flags)) { -- if (in_atomic()) -- /* if we are in an interrupt handler, abort */ -- break; - schedule(); - continue; - } -@@ -146,6 +152,26 @@ int speakup_paste_selection(struct tty_s - } - remove_wait_queue(&vc->paste_wait, &wait); - current->state = TASK_RUNNING; -+ tty_kref_put(tty); -+} -+ -+static struct speakup_paste_work speakup_paste_work = { -+ .work = __WORK_INITIALIZER(speakup_paste_work.work, -+ __speakup_paste_selection) -+}; -+ -+int speakup_paste_selection(struct tty_struct *tty) -+{ -+ if (cmpxchg(&speakup_paste_work.tty, NULL, tty) != NULL) -+ return -EBUSY; -+ -+ tty_kref_get(tty); -+ schedule_work_on(WORK_CPU_UNBOUND, &speakup_paste_work.work); - return 0; - } - -+void speakup_cancel_paste(void) -+{ -+ cancel_work_sync(&speakup_paste_work.work); -+ tty_kref_put(speakup_paste_work.tty); -+} ---- a/drivers/staging/speakup/speakup.h -+++ b/drivers/staging/speakup/speakup.h -@@ -77,6 +77,7 @@ extern void synth_buffer_clear(void); - extern void speakup_clear_selection(void); - extern int speakup_set_selection(struct tty_struct *tty); - extern int speakup_paste_selection(struct tty_struct *tty); -+extern void speakup_cancel_paste(void); - extern void speakup_register_devsynth(void); - extern void speakup_unregister_devsynth(void); - extern void synth_write(const char *buf, size_t count); diff --git a/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch b/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch deleted file mode 100644 index 64f661f99..000000000 --- a/debian/patches/bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch +++ /dev/null @@ -1,89 +0,0 @@ -From: Ben Hutchings -Date: Mon, 19 May 2014 01:03:06 +0100 -Subject: Staging: speakup: Update __speakup_paste_selection() tty (ab)usage to - match vt -Origin: https://git.kernel.org/cgit/linux/kernel/git/gregkh/staging.git/commit?id=28a821c306889b9f2c3fff49abedc9b2c743eb73 -Bug-Debian: https://bugs.debian.org/735202 -Bug-Debian: https://bugs.debian.org/744015 - -This function is largely a duplicate of paste_selection() in -drivers/tty/vt/selection.c, but with its own selection state. The -speakup selection mechanism should really be merged with vt. - -For now, apply the changes from 'TTY: vt, fix paste_selection ldisc -handling', 'tty: Make ldisc input flow control concurrency-friendly', -and 'tty: Fix unsafe vt paste_selection()'. - -References: https://bugs.debian.org/735202 -References: https://bugs.debian.org/744015 -Reported-by: Paul Gevers -Reported-and-tested-by: Jarek Czekalski -Signed-off-by: Ben Hutchings -Cc: # v3.8 but needs backporting for < 3.12 -Signed-off-by: Greg Kroah-Hartman ---- - drivers/staging/speakup/selection.c | 14 +++++++++++--- - drivers/tty/tty_buffer.c | 2 ++ - 2 files changed, 13 insertions(+), 3 deletions(-) - ---- a/drivers/staging/speakup/selection.c -+++ b/drivers/staging/speakup/selection.c -@@ -5,6 +5,8 @@ - #include /* for dev_warn */ - #include - #include -+#include -+#include - #include - - #include "speakup.h" -@@ -135,8 +137,12 @@ static void __speakup_paste_selection(st - struct tty_struct *tty = xchg(&spw->tty, NULL); - struct vc_data *vc = (struct vc_data *) tty->driver_data; - int pasted = 0, count; -+ struct tty_ldisc *ld; - DECLARE_WAITQUEUE(wait, current); - -+ ld = tty_ldisc_ref_wait(tty); -+ tty_buffer_lock_exclusive(&vc->port); -+ - add_wait_queue(&vc->paste_wait, &wait); - while (sel_buffer && sel_buffer_lth > pasted) { - set_current_state(TASK_INTERRUPTIBLE); -@@ -145,13 +151,15 @@ static void __speakup_paste_selection(st - continue; - } - count = sel_buffer_lth - pasted; -- count = min_t(int, count, tty->receive_room); -- tty->ldisc->ops->receive_buf(tty, sel_buffer + pasted, -- NULL, count); -+ count = tty_ldisc_receive_buf(ld, sel_buffer + pasted, NULL, -+ count); - pasted += count; - } - remove_wait_queue(&vc->paste_wait, &wait); - current->state = TASK_RUNNING; -+ -+ tty_buffer_unlock_exclusive(&vc->port); -+ tty_ldisc_deref(ld); - tty_kref_put(tty); - } - ---- a/drivers/tty/tty_buffer.c -+++ b/drivers/tty/tty_buffer.c -@@ -60,6 +60,7 @@ void tty_buffer_lock_exclusive(struct tt - atomic_inc(&buf->priority); - mutex_lock(&buf->lock); - } -+EXPORT_SYMBOL_GPL(tty_buffer_lock_exclusive); - - void tty_buffer_unlock_exclusive(struct tty_port *port) - { -@@ -73,6 +74,7 @@ void tty_buffer_unlock_exclusive(struct - if (restart) - queue_work(system_unbound_wq, &buf->work); - } -+EXPORT_SYMBOL_GPL(tty_buffer_unlock_exclusive); - - /** - * tty_buffer_space_avail - return unused buffer space diff --git a/debian/patches/series b/debian/patches/series index 0c7a0e9dd..d027f081a 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -66,8 +66,6 @@ bugfix/all/misc-bmp085-Enable-building-as-a-module.patch bugfix/all/kbuild-use-nostdinc-in-compile-tests.patch bugfix/all/disable-some-marvell-phys.patch bugfix/all/bluetooth-allocate-static-minor-for-vhci.patch -bugfix/all/0001-Staging-speakup-Move-pasting-into-a-work-item.patch -bugfix/all/0002-Staging-speakup-Update-__speakup_paste_selection-tty.patch # Miscellaneous features features/all/x86-memtest-WARN-if-bad-RAM-found.patch From 85e47d5e9594c03933dc719341949df5dc8a8390 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Fri, 13 Jun 2014 02:47:37 +0000 Subject: [PATCH 21/32] Add some important fixes pending for 3.14.8 svn path=/dists/sid/linux/; revision=21433 --- debian/changelog | 4 + ...ule-mask-accesses-need-bounds-checki.patch | 80 +++++++++++++++++++ ...efrag-set-local_df-flag-on-defragmen.patch | 53 ++++++++++++ ...sm-thread_info-Add-_TIF_SECCOMP-flag.patch | 32 ++++++++ debian/patches/series | 3 + 5 files changed, 172 insertions(+) create mode 100644 debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch create mode 100644 debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch create mode 100644 debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch diff --git a/debian/changelog b/debian/changelog index 011909992..b2a691081 100644 --- a/debian/changelog +++ b/debian/changelog @@ -219,6 +219,10 @@ linux (3.14.7-1) UNRELEASED; urgency=medium - Temporarily disable zImage - powerpc/powernv: Add calls to support little endian host - Add 'ppc64le' (uname output) to bug/include-model script + * netfilter: ipv4: defrag: set local_df flag on defragmented skb + (regression in 3.14.5) + * [mips] asm: thread_info: Add _TIF_SECCOMP flag (Closes: #751417) + * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917) -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch b/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch new file mode 100644 index 000000000..b5c10893c --- /dev/null +++ b/debian/patches/bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch @@ -0,0 +1,80 @@ +From: Andy Lutomirski +Date: Wed, 28 May 2014 23:09:58 -0400 +Subject: auditsc: audit_krule mask accesses need bounds checking +Origin: https://git.kernel.org/linus/a3c54931199565930d6d84f4c3456f6440aefd41 + +Fixes an easy DoS and possible information disclosure. + +This does nothing about the broken state of x32 auditing. + +eparis: If the admin has enabled auditd and has specifically loaded +audit rules. This bug has been around since before git. Wow... + +Cc: stable@vger.kernel.org +Signed-off-by: Andy Lutomirski +Signed-off-by: Eric Paris +Signed-off-by: Linus Torvalds +--- + kernel/auditsc.c | 27 ++++++++++++++++++--------- + 1 file changed, 18 insertions(+), 9 deletions(-) + +--- a/kernel/auditsc.c ++++ b/kernel/auditsc.c +@@ -720,6 +720,22 @@ static enum audit_state audit_filter_tas + return AUDIT_BUILD_CONTEXT; + } + ++static int audit_in_mask(const struct audit_krule *rule, unsigned long val) ++{ ++ int word, bit; ++ ++ if (val > 0xffffffff) ++ return false; ++ ++ word = AUDIT_WORD(val); ++ if (word >= AUDIT_BITMASK_SIZE) ++ return false; ++ ++ bit = AUDIT_BIT(val); ++ ++ return rule->mask[word] & bit; ++} ++ + /* At syscall entry and exit time, this filter is called if the + * audit_state is not low enough that auditing cannot take place, but is + * also not high enough that we already know we have to write an audit +@@ -737,11 +753,8 @@ static enum audit_state audit_filter_sys + + rcu_read_lock(); + if (!list_empty(list)) { +- int word = AUDIT_WORD(ctx->major); +- int bit = AUDIT_BIT(ctx->major); +- + list_for_each_entry_rcu(e, list, list) { +- if ((e->rule.mask[word] & bit) == bit && ++ if (audit_in_mask(&e->rule, ctx->major) && + audit_filter_rules(tsk, &e->rule, ctx, NULL, + &state, false)) { + rcu_read_unlock(); +@@ -761,20 +774,16 @@ static enum audit_state audit_filter_sys + static int audit_filter_inode_name(struct task_struct *tsk, + struct audit_names *n, + struct audit_context *ctx) { +- int word, bit; + int h = audit_hash_ino((u32)n->ino); + struct list_head *list = &audit_inode_hash[h]; + struct audit_entry *e; + enum audit_state state; + +- word = AUDIT_WORD(ctx->major); +- bit = AUDIT_BIT(ctx->major); +- + if (list_empty(list)) + return 0; + + list_for_each_entry_rcu(e, list, list) { +- if ((e->rule.mask[word] & bit) == bit && ++ if (audit_in_mask(&e->rule, ctx->major) && + audit_filter_rules(tsk, &e->rule, ctx, n, &state, false)) { + ctx->current_state = state; + return 1; diff --git a/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch b/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch new file mode 100644 index 000000000..01c56d74f --- /dev/null +++ b/debian/patches/bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch @@ -0,0 +1,53 @@ +From: Florian Westphal +Date: Fri, 2 May 2014 15:32:16 +0200 +Subject: netfilter: ipv4: defrag: set local_df flag on defragmented skb +Origin: https://git.kernel.org/linus/895162b1101b3ea5db08ca6822ae9672717efec0 + +else we may fail to forward skb even if original fragments do fit +outgoing link mtu: + +1. remote sends 2k packets in two 1000 byte frags, DF set +2. we want to forward but only see '2k > mtu and DF set' +3. we then send icmp error saying that outgoing link is 1500 + +But original sender never sent a packet that would not fit +the outgoing link. + +Setting local_df makes outgoing path test size vs. +IPCB(skb)->frag_max_size, so we will still send the correct +error in case the largest original size did not fit +outgoing link mtu. + +Reported-by: Maxime Bizon +Suggested-by: Maxime Bizon +Fixes: 5f2d04f1f9 (ipv4: fix path MTU discovery with connection tracking) +Signed-off-by: Florian Westphal +Signed-off-by: Pablo Neira Ayuso +--- + net/ipv4/netfilter/nf_defrag_ipv4.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/net/ipv4/netfilter/nf_defrag_ipv4.c b/net/ipv4/netfilter/nf_defrag_ipv4.c +index 12e13bd..f40f321 100644 +--- a/net/ipv4/netfilter/nf_defrag_ipv4.c ++++ b/net/ipv4/netfilter/nf_defrag_ipv4.c +@@ -22,7 +22,6 @@ + #endif + #include + +-/* Returns new sk_buff, or NULL */ + static int nf_ct_ipv4_gather_frags(struct sk_buff *skb, u_int32_t user) + { + int err; +@@ -33,8 +32,10 @@ static int nf_ct_ipv4_gather_frags(struct sk_buff *skb, u_int32_t user) + err = ip_defrag(skb, user); + local_bh_enable(); + +- if (!err) ++ if (!err) { + ip_send_check(ip_hdr(skb)); ++ skb->local_df = 1; ++ } + + return err; + } diff --git a/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch b/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch new file mode 100644 index 000000000..02428d02c --- /dev/null +++ b/debian/patches/bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch @@ -0,0 +1,32 @@ +From: Markos Chandras +Date: Wed, 22 Jan 2014 14:40:00 +0000 +Subject: MIPS: asm: thread_info: Add _TIF_SECCOMP flag +Origin: https://git.kernel.org/linus/137f7df8cead00688524c82360930845396b8a21 + +Add _TIF_SECCOMP flag to _TIF_WORK_SYSCALL_ENTRY to indicate +that the system call needs to be checked against a seccomp filter. + +Signed-off-by: Markos Chandras +Reviewed-by: Paul Burton +Reviewed-by: James Hogan +Cc: linux-mips@linux-mips.org +Patchwork: https://patchwork.linux-mips.org/patch/6405/ +Signed-off-by: Ralf Baechle +--- + arch/mips/include/asm/thread_info.h | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h +index 24846f9..e80ae50 100644 +--- a/arch/mips/include/asm/thread_info.h ++++ b/arch/mips/include/asm/thread_info.h +@@ -136,7 +136,8 @@ static inline struct thread_info *current_thread_info(void) + #define _TIF_SYSCALL_TRACEPOINT (1< Date: Fri, 13 Jun 2014 02:50:20 +0000 Subject: [PATCH 22/32] Note that 3.14.7 fixes CVE-2014-3940 svn path=/dists/sid/linux/; revision=21434 --- debian/changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/changelog b/debian/changelog index b2a691081..c960c04c5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -190,6 +190,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium - [x86] intel_pstate: add sample time scaling - [x86] intel_pstate: Improve initial busy calculation - mm: add !pte_present() check on existing hugetlb_entry callbacks + (CVE-2014-3940) - mm: rmap: fix use-after-free in __put_anon_vma - iser-target: Add missing target_put_sess_cmd for ImmedateData failure - iscsi-target: Fix wrong buffer / buffer overrun in From 744d2c8d7113d66a3d719ae15a8998d90bb6f2c0 Mon Sep 17 00:00:00 2001 From: Aurelien Jarno Date: Fri, 13 Jun 2014 15:51:37 +0000 Subject: [PATCH 23/32] [arm64] Enable modular RTC_DRV_PL031. svn path=/dists/sid/linux/; revision=21436 --- debian/changelog | 1 + debian/config/arm64/config | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index c960c04c5..1af932d6e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -212,6 +212,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium * [mips/4kc-malta] Remove HW_RANDOM. * [mips/5kc-malta] Remove HW_RANDOM. * [mips/octeon] Remove HW_RANDOM. + * [arm64] Enable modular RTC_DRV_PL031. [ Ben Hutchings ] * [ppc64el] Add kernel image, thanks to Mauricio Faria de Oliveira: diff --git a/debian/config/arm64/config b/debian/config/arm64/config index 65c687f60..94d894b7f 100644 --- a/debian/config/arm64/config +++ b/debian/config/arm64/config @@ -52,6 +52,11 @@ CONFIG_SMSC911X=m CONFIG_POWER_RESET_VEXPRESS=y CONFIG_POWER_RESET_XGENE=y +## +## file: drivers/rtc/Kconfig +## +CONFIG_RTC_DRV_PL031=m + ## ## file: drivers/tty/serial/Kconfig ## From ade863b65b434e2e9fd173cd0d0b5eb935a23b9a Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 15:13:18 +0000 Subject: [PATCH 24/32] ppc64el: installer: new files This creates the debian/installer/ppc64el dir with the usual contents (kernel-versions, packages-list, and modules/). For commonality with the other powerpc-based ports, make the installer's module lists '#include' those from the ppc64 port (which in turn '#includes' some from the powerpc port). The differences are 4 modules from ps3/cell/powermacs systems removed from nic-modules and scsi-modules. Changes from V2 [1]: - Removed symlinks 'debian/installer/ppc64el/modules/{powerpc,ppc64}'. - Updated #include paths in module lists accordingly (path of ppc64 port). [2] https://lists.debian.org/debian-kernel/2014/06/msg00064.html Signed-off-by: Mauricio Faria de Oliveira svn path=/dists/sid/linux/; revision=21437 --- debian/changelog | 1 + debian/installer/ppc64el/kernel-versions | 2 ++ debian/installer/ppc64el/modules/ppc64el/ata-modules | 1 + debian/installer/ppc64el/modules/ppc64el/btrfs-modules | 1 + debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules | 1 + debian/installer/ppc64el/modules/ppc64el/core-modules | 1 + debian/installer/ppc64el/modules/ppc64el/crc-modules | 1 + debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules | 1 + debian/installer/ppc64el/modules/ppc64el/crypto-modules | 1 + debian/installer/ppc64el/modules/ppc64el/event-modules | 1 + debian/installer/ppc64el/modules/ppc64el/ext4-modules | 1 + debian/installer/ppc64el/modules/ppc64el/fancontrol-modules | 1 + debian/installer/ppc64el/modules/ppc64el/fat-modules | 1 + .../installer/ppc64el/modules/ppc64el/firewire-core-modules | 1 + debian/installer/ppc64el/modules/ppc64el/fuse-modules | 1 + debian/installer/ppc64el/modules/ppc64el/hypervisor-modules | 1 + debian/installer/ppc64el/modules/ppc64el/input-modules | 1 + debian/installer/ppc64el/modules/ppc64el/isofs-modules | 1 + debian/installer/ppc64el/modules/ppc64el/jfs-modules | 1 + debian/installer/ppc64el/modules/ppc64el/kernel-image | 1 + debian/installer/ppc64el/modules/ppc64el/loop-modules | 1 + debian/installer/ppc64el/modules/ppc64el/md-modules | 1 + debian/installer/ppc64el/modules/ppc64el/mouse-modules | 1 + debian/installer/ppc64el/modules/ppc64el/multipath-modules | 1 + debian/installer/ppc64el/modules/ppc64el/nbd-modules | 1 + debian/installer/ppc64el/modules/ppc64el/nic-modules | 5 +++++ debian/installer/ppc64el/modules/ppc64el/nic-shared-modules | 1 + debian/installer/ppc64el/modules/ppc64el/ppp-modules | 1 + debian/installer/ppc64el/modules/ppc64el/sata-modules | 1 + debian/installer/ppc64el/modules/ppc64el/scsi-common-modules | 1 + debian/installer/ppc64el/modules/ppc64el/scsi-core-modules | 1 + debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules | 1 + debian/installer/ppc64el/modules/ppc64el/scsi-modules | 3 +++ debian/installer/ppc64el/modules/ppc64el/serial-modules | 1 + debian/installer/ppc64el/modules/ppc64el/squashfs-modules | 1 + debian/installer/ppc64el/modules/ppc64el/udf-modules | 1 + debian/installer/ppc64el/modules/ppc64el/uinput-modules | 1 + debian/installer/ppc64el/modules/ppc64el/usb-modules | 1 + debian/installer/ppc64el/modules/ppc64el/usb-serial-modules | 1 + debian/installer/ppc64el/modules/ppc64el/usb-storage-modules | 1 + debian/installer/ppc64el/modules/ppc64el/virtio-modules | 1 + debian/installer/ppc64el/modules/ppc64el/xfs-modules | 1 + debian/installer/ppc64el/package-list | 1 + 43 files changed, 50 insertions(+) create mode 100644 debian/installer/ppc64el/kernel-versions create mode 100644 debian/installer/ppc64el/modules/ppc64el/ata-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/btrfs-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/core-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/crc-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/crypto-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/event-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/ext4-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/fancontrol-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/fat-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/firewire-core-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/fuse-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/hypervisor-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/input-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/isofs-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/jfs-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/kernel-image create mode 100644 debian/installer/ppc64el/modules/ppc64el/loop-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/md-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/mouse-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/multipath-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/nbd-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/nic-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/nic-shared-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/ppp-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/sata-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/scsi-common-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/scsi-core-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/scsi-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/serial-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/squashfs-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/udf-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/uinput-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/usb-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/usb-serial-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/usb-storage-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/virtio-modules create mode 100644 debian/installer/ppc64el/modules/ppc64el/xfs-modules create mode 120000 debian/installer/ppc64el/package-list diff --git a/debian/changelog b/debian/changelog index 1af932d6e..b78df608a 100644 --- a/debian/changelog +++ b/debian/changelog @@ -221,6 +221,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium - Temporarily disable zImage - powerpc/powernv: Add calls to support little endian host - Add 'ppc64le' (uname output) to bug/include-model script + - udeb: Add packages based on ppc64 configuration * netfilter: ipv4: defrag: set local_df flag on defragmented skb (regression in 3.14.5) * [mips] asm: thread_info: Add _TIF_SECCOMP flag (Closes: #751417) diff --git a/debian/installer/ppc64el/kernel-versions b/debian/installer/ppc64el/kernel-versions new file mode 100644 index 000000000..5f0d460d3 --- /dev/null +++ b/debian/installer/ppc64el/kernel-versions @@ -0,0 +1,2 @@ +# arch version flavour installedname suffix build-depends +ppc64el - powerpc64le - - - diff --git a/debian/installer/ppc64el/modules/ppc64el/ata-modules b/debian/installer/ppc64el/modules/ppc64el/ata-modules new file mode 100644 index 000000000..77a471d2f --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/ata-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ata-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/btrfs-modules b/debian/installer/ppc64el/modules/ppc64el/btrfs-modules new file mode 100644 index 000000000..4ab00bed8 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/btrfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/btrfs-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules b/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules new file mode 100644 index 000000000..ab06dbd9b --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/cdrom-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/cdrom-core-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/core-modules b/debian/installer/ppc64el/modules/ppc64el/core-modules new file mode 100644 index 000000000..b5c598d2a --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/core-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/crc-modules b/debian/installer/ppc64el/modules/ppc64el/crc-modules new file mode 100644 index 000000000..faf2d628d --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/crc-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crc-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules b/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules new file mode 100644 index 000000000..2c530b3d4 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/crypto-dm-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crypto-dm-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/crypto-modules b/debian/installer/ppc64el/modules/ppc64el/crypto-modules new file mode 100644 index 000000000..c6170b1d3 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/crypto-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/crypto-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/event-modules b/debian/installer/ppc64el/modules/ppc64el/event-modules new file mode 100644 index 000000000..b0e5f5626 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/event-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/event-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/ext4-modules b/debian/installer/ppc64el/modules/ppc64el/ext4-modules new file mode 100644 index 000000000..ac5f4c066 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/ext4-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ext4-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules b/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules new file mode 100644 index 000000000..55cde68ad --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/fancontrol-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fancontrol-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/fat-modules b/debian/installer/ppc64el/modules/ppc64el/fat-modules new file mode 100644 index 000000000..9ef0e07a2 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/fat-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fat-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules b/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules new file mode 100644 index 000000000..30b2c4c7c --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/firewire-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/firewire-core-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/fuse-modules b/debian/installer/ppc64el/modules/ppc64el/fuse-modules new file mode 100644 index 000000000..73597f9e7 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/fuse-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/fuse-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules b/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules new file mode 100644 index 000000000..f2edc4b77 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/hypervisor-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/hypervisor-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/input-modules b/debian/installer/ppc64el/modules/ppc64el/input-modules new file mode 100644 index 000000000..e4625ac77 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/input-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/input-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/isofs-modules b/debian/installer/ppc64el/modules/ppc64el/isofs-modules new file mode 100644 index 000000000..18fb993d2 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/isofs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/isofs-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/jfs-modules b/debian/installer/ppc64el/modules/ppc64el/jfs-modules new file mode 100644 index 000000000..193513f5f --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/jfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/jfs-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/kernel-image b/debian/installer/ppc64el/modules/ppc64el/kernel-image new file mode 100644 index 000000000..93f4a3702 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/kernel-image @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/kernel-image" diff --git a/debian/installer/ppc64el/modules/ppc64el/loop-modules b/debian/installer/ppc64el/modules/ppc64el/loop-modules new file mode 100644 index 000000000..fac3d38d4 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/loop-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/loop-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/md-modules b/debian/installer/ppc64el/modules/ppc64el/md-modules new file mode 100644 index 000000000..03b10183f --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/md-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/md-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/mouse-modules b/debian/installer/ppc64el/modules/ppc64el/mouse-modules new file mode 100644 index 000000000..163e3bab0 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/mouse-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/mouse-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/multipath-modules b/debian/installer/ppc64el/modules/ppc64el/multipath-modules new file mode 100644 index 000000000..cb7afcb65 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/multipath-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/multipath-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/nbd-modules b/debian/installer/ppc64el/modules/ppc64el/nbd-modules new file mode 100644 index 000000000..6540c0af6 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/nbd-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/nbd-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/nic-modules b/debian/installer/ppc64el/modules/ppc64el/nic-modules new file mode 100644 index 000000000..8ef5be227 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/nic-modules @@ -0,0 +1,5 @@ +#include "../../../ppc64/modules/ppc64/nic-modules" + +airport - +ps3_gelic - +spidernet - diff --git a/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules b/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules new file mode 100644 index 000000000..13812a869 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/nic-shared-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/nic-shared-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/ppp-modules b/debian/installer/ppc64el/modules/ppc64el/ppp-modules new file mode 100644 index 000000000..626201967 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/ppp-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/ppp-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/sata-modules b/debian/installer/ppc64el/modules/ppc64el/sata-modules new file mode 100644 index 000000000..6907d272e --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/sata-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/sata-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules new file mode 100644 index 000000000..a52a3c900 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/scsi-common-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/scsi-common-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules new file mode 100644 index 000000000..dd496f79b --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/scsi-core-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/scsi-core-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules new file mode 100644 index 000000000..ccfa60b5a --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/scsi-extra-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/scsi-extra-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/scsi-modules b/debian/installer/ppc64el/modules/ppc64el/scsi-modules new file mode 100644 index 000000000..da4567b84 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/scsi-modules @@ -0,0 +1,3 @@ +#include "../../../ppc64/modules/ppc64/scsi-modules" + +ps3rom - diff --git a/debian/installer/ppc64el/modules/ppc64el/serial-modules b/debian/installer/ppc64el/modules/ppc64el/serial-modules new file mode 100644 index 000000000..22548f450 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/serial-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/serial-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/squashfs-modules b/debian/installer/ppc64el/modules/ppc64el/squashfs-modules new file mode 100644 index 000000000..8c0c6d1c2 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/squashfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/squashfs-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/udf-modules b/debian/installer/ppc64el/modules/ppc64el/udf-modules new file mode 100644 index 000000000..9ab96e026 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/udf-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/udf-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/uinput-modules b/debian/installer/ppc64el/modules/ppc64el/uinput-modules new file mode 100644 index 000000000..3d3929e24 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/uinput-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/uinput-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-modules b/debian/installer/ppc64el/modules/ppc64el/usb-modules new file mode 100644 index 000000000..45ac3cf89 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/usb-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules b/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules new file mode 100644 index 000000000..63a8412e7 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/usb-serial-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-serial-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules b/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules new file mode 100644 index 000000000..1679b922b --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/usb-storage-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/usb-storage-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/virtio-modules b/debian/installer/ppc64el/modules/ppc64el/virtio-modules new file mode 100644 index 000000000..cbfbd1137 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/virtio-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/virtio-modules" diff --git a/debian/installer/ppc64el/modules/ppc64el/xfs-modules b/debian/installer/ppc64el/modules/ppc64el/xfs-modules new file mode 100644 index 000000000..5e8a7ce69 --- /dev/null +++ b/debian/installer/ppc64el/modules/ppc64el/xfs-modules @@ -0,0 +1 @@ +#include "../../../ppc64/modules/ppc64/xfs-modules" diff --git a/debian/installer/ppc64el/package-list b/debian/installer/ppc64el/package-list new file mode 120000 index 000000000..a872ee13e --- /dev/null +++ b/debian/installer/ppc64el/package-list @@ -0,0 +1 @@ +../ppc64/package-list \ No newline at end of file From 787e56b1825bce4aea1c4e5f907423f8bc775142 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 18:58:43 +0000 Subject: [PATCH 25/32] Ignore serio ABI change in 3.14.6 svn path=/dists/sid/linux/; revision=21438 --- debian/config/defines | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/config/defines b/debian/config/defines index f1f919e88..653fb8a91 100644 --- a/debian/config/defines +++ b/debian/config/defines @@ -12,6 +12,12 @@ ignore-changes: vsock_core_init # Cannot be used OOT nf_ct_extend_register +# Apparently not used OOT + __ps2_* + __serio_* + i8042_* + ps2_* + serio_* [base] arches: From 8495fb6a2553a33b08d7d06231fffd6e0e38b935 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 21:20:18 +0000 Subject: [PATCH 26/32] Fix some ABI changes in 3.14.6 svn path=/dists/sid/linux/; revision=21439 --- .../dma-avoid-abi-change-in-3.14.6.patch | 25 +++++++++++++++++++ ...-platform-avoid-abi-change-in-3.14.6.patch | 19 ++++++++++++++ debian/patches/series | 2 ++ 3 files changed, 46 insertions(+) create mode 100644 debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch create mode 100644 debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch diff --git a/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch b/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch new file mode 100644 index 000000000..8b4e64e42 --- /dev/null +++ b/debian/patches/debian/dma-avoid-abi-change-in-3.14.6.patch @@ -0,0 +1,25 @@ +From: Ben Hutchings +Date: Sun, 15 Jun 2014 21:44:43 +0100 +Subject: dmaengine: Avoid ABI change in 3.14.6 +Forwarded: not-needed + +dmaengine_unmap_data::map_cnt was added to the beginning of the +structure. Move it after bidi_cnt, where there was previously at +least one byte of padding, and hide it from genksyms. + +--- a/include/linux/dmaengine.h ++++ b/include/linux/dmaengine.h +@@ -433,10 +433,12 @@ typedef bool (*dma_filter_fn)(struct dma + typedef void (*dma_async_tx_callback)(void *dma_async_param); + + struct dmaengine_unmap_data { +- u8 map_cnt; + u8 to_cnt; + u8 from_cnt; + u8 bidi_cnt; ++#ifndef __GENKSYMS__ ++ u8 map_cnt; ++#endif + struct device *dev; + struct kref kref; + size_t len; diff --git a/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch b/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch new file mode 100644 index 000000000..83183b4f4 --- /dev/null +++ b/debian/patches/debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch @@ -0,0 +1,19 @@ +From: Ben Hutchings +Date: Sun, 15 Jun 2014 21:41:43 +0100 +Subject: drivers/base/platform: Avoid ABI change in 3.14.6 +Forwarded: not-needed + +Hide the new #include from genksyms. + +--- a/drivers/base/platform.c ++++ b/drivers/base/platform.c +@@ -13,7 +13,9 @@ + #include + #include + #include ++#ifndef __GENKSYMS__ + #include ++#endif + #include + #include + #include diff --git a/debian/patches/series b/debian/patches/series index df2602c33..69c7b1b83 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -91,3 +91,5 @@ bugfix/mips/MIPS-Fix-branch-emulation-of-branch-likely-instructi.patch bugfix/all/netfilter-ipv4-defrag-set-local_df-flag-on-defragmen.patch bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch +debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch +debian/dma-avoid-abi-change-in-3.14.6.patch From 48093cb0d169a5a9a1ee97c193facffb3af2b629 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 23:09:05 +0000 Subject: [PATCH 27/32] fs,userns: Change inode_capable to capable_wrt_inode_uidgid (CVE-2014-4014) Plus ABI fix. svn path=/dists/sid/linux/; revision=21440 --- debian/changelog | 2 + ..._capable-to-capable_wrt_inode_uidgid.patch | 191 ++++++++++++++++++ ...s-avoid-abi-change-for-cve-2014-4014.patch | 22 ++ debian/patches/series | 2 + 4 files changed, 217 insertions(+) create mode 100644 debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch create mode 100644 debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch diff --git a/debian/changelog b/debian/changelog index b78df608a..ce349caa4 100644 --- a/debian/changelog +++ b/debian/changelog @@ -226,6 +226,8 @@ linux (3.14.7-1) UNRELEASED; urgency=medium (regression in 3.14.5) * [mips] asm: thread_info: Add _TIF_SECCOMP flag (Closes: #751417) * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917) + * fs,userns: Change inode_capable to capable_wrt_inode_uidgid + (CVE-2014-4014) -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch b/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch new file mode 100644 index 000000000..2a6460a42 --- /dev/null +++ b/debian/patches/bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch @@ -0,0 +1,191 @@ +From: Andy Lutomirski +Date: Tue, 10 Jun 2014 12:45:42 -0700 +Subject: fs,userns: Change inode_capable to capable_wrt_inode_uidgid +Origin: https://git.kernel.org/linus/23adbe12ef7d3d4195e80800ab36b37bee28cd03 + +The kernel has no concept of capabilities with respect to inodes; inodes +exist independently of namespaces. For example, inode_capable(inode, +CAP_LINUX_IMMUTABLE) would be nonsense. + +This patch changes inode_capable to check for uid and gid mappings and +renames it to capable_wrt_inode_uidgid, which should make it more +obvious what it does. + +Fixes CVE-2014-4014. + +Cc: Theodore Ts'o +Cc: Serge Hallyn +Cc: "Eric W. Biederman" +Cc: Dave Chinner +Cc: stable@vger.kernel.org +Signed-off-by: Andy Lutomirski +Signed-off-by: Linus Torvalds +--- + fs/attr.c | 8 ++++---- + fs/inode.c | 10 +++++++--- + fs/namei.c | 11 ++++++----- + fs/xfs/xfs_ioctl.c | 2 +- + include/linux/capability.h | 2 +- + kernel/capability.c | 20 ++++++++------------ + 6 files changed, 27 insertions(+), 26 deletions(-) + +--- a/fs/attr.c ++++ b/fs/attr.c +@@ -50,14 +50,14 @@ int inode_change_ok(const struct inode * + if ((ia_valid & ATTR_UID) && + (!uid_eq(current_fsuid(), inode->i_uid) || + !uid_eq(attr->ia_uid, inode->i_uid)) && +- !inode_capable(inode, CAP_CHOWN)) ++ !capable_wrt_inode_uidgid(inode, CAP_CHOWN)) + return -EPERM; + + /* Make sure caller can chgrp. */ + if ((ia_valid & ATTR_GID) && + (!uid_eq(current_fsuid(), inode->i_uid) || + (!in_group_p(attr->ia_gid) && !gid_eq(attr->ia_gid, inode->i_gid))) && +- !inode_capable(inode, CAP_CHOWN)) ++ !capable_wrt_inode_uidgid(inode, CAP_CHOWN)) + return -EPERM; + + /* Make sure a caller can chmod. */ +@@ -67,7 +67,7 @@ int inode_change_ok(const struct inode * + /* Also check the setgid bit! */ + if (!in_group_p((ia_valid & ATTR_GID) ? attr->ia_gid : + inode->i_gid) && +- !inode_capable(inode, CAP_FSETID)) ++ !capable_wrt_inode_uidgid(inode, CAP_FSETID)) + attr->ia_mode &= ~S_ISGID; + } + +@@ -160,7 +160,7 @@ void setattr_copy(struct inode *inode, c + umode_t mode = attr->ia_mode; + + if (!in_group_p(inode->i_gid) && +- !inode_capable(inode, CAP_FSETID)) ++ !capable_wrt_inode_uidgid(inode, CAP_FSETID)) + mode &= ~S_ISGID; + inode->i_mode = mode; + } +--- a/fs/inode.c ++++ b/fs/inode.c +@@ -1842,14 +1842,18 @@ EXPORT_SYMBOL(inode_init_owner); + * inode_owner_or_capable - check current task permissions to inode + * @inode: inode being checked + * +- * Return true if current either has CAP_FOWNER to the inode, or +- * owns the file. ++ * Return true if current either has CAP_FOWNER in a namespace with the ++ * inode owner uid mapped, or owns the file. + */ + bool inode_owner_or_capable(const struct inode *inode) + { ++ struct user_namespace *ns; ++ + if (uid_eq(current_fsuid(), inode->i_uid)) + return true; +- if (inode_capable(inode, CAP_FOWNER)) ++ ++ ns = current_user_ns(); ++ if (ns_capable(ns, CAP_FOWNER) && kuid_has_mapping(ns, inode->i_uid)) + return true; + return false; + } +--- a/fs/namei.c ++++ b/fs/namei.c +@@ -332,10 +332,11 @@ int generic_permission(struct inode *ino + + if (S_ISDIR(inode->i_mode)) { + /* DACs are overridable for directories */ +- if (inode_capable(inode, CAP_DAC_OVERRIDE)) ++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE)) + return 0; + if (!(mask & MAY_WRITE)) +- if (inode_capable(inode, CAP_DAC_READ_SEARCH)) ++ if (capable_wrt_inode_uidgid(inode, ++ CAP_DAC_READ_SEARCH)) + return 0; + return -EACCES; + } +@@ -345,7 +346,7 @@ int generic_permission(struct inode *ino + * at least one exec bit set. + */ + if (!(mask & MAY_EXEC) || (inode->i_mode & S_IXUGO)) +- if (inode_capable(inode, CAP_DAC_OVERRIDE)) ++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE)) + return 0; + + /* +@@ -353,7 +354,7 @@ int generic_permission(struct inode *ino + */ + mask &= MAY_READ | MAY_WRITE | MAY_EXEC; + if (mask == MAY_READ) +- if (inode_capable(inode, CAP_DAC_READ_SEARCH)) ++ if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH)) + return 0; + + return -EACCES; +@@ -2370,7 +2371,7 @@ static inline int check_sticky(struct in + return 0; + if (uid_eq(dir->i_uid, fsuid)) + return 0; +- return !inode_capable(inode, CAP_FOWNER); ++ return !capable_wrt_inode_uidgid(inode, CAP_FOWNER); + } + + /* +--- a/fs/xfs/xfs_ioctl.c ++++ b/fs/xfs/xfs_ioctl.c +@@ -1241,7 +1241,7 @@ xfs_ioctl_setattr( + * cleared upon successful return from chown() + */ + if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && +- !inode_capable(VFS_I(ip), CAP_FSETID)) ++ !capable_wrt_inode_uidgid(VFS_I(ip), CAP_FSETID)) + ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); + + /* +--- a/include/linux/capability.h ++++ b/include/linux/capability.h +@@ -210,7 +210,7 @@ extern bool has_ns_capability_noaudit(st + struct user_namespace *ns, int cap); + extern bool capable(int cap); + extern bool ns_capable(struct user_namespace *ns, int cap); +-extern bool inode_capable(const struct inode *inode, int cap); ++extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap); + extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap); + + /* audit system wants to get cap info from files as well */ +--- a/kernel/capability.c ++++ b/kernel/capability.c +@@ -433,23 +433,19 @@ bool capable(int cap) + EXPORT_SYMBOL(capable); + + /** +- * inode_capable - Check superior capability over inode ++ * capable_wrt_inode_uidgid - Check nsown_capable and uid and gid mapped + * @inode: The inode in question + * @cap: The capability in question + * +- * Return true if the current task has the given superior capability +- * targeted at it's own user namespace and that the given inode is owned +- * by the current user namespace or a child namespace. +- * +- * Currently we check to see if an inode is owned by the current +- * user namespace by seeing if the inode's owner maps into the +- * current user namespace. +- * ++ * Return true if the current task has the given capability targeted at ++ * its own user namespace and that the given inode's uid and gid are ++ * mapped into the current user namespace. + */ +-bool inode_capable(const struct inode *inode, int cap) ++bool capable_wrt_inode_uidgid(const struct inode *inode, int cap) + { + struct user_namespace *ns = current_user_ns(); + +- return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid); ++ return ns_capable(ns, cap) && kuid_has_mapping(ns, inode->i_uid) && ++ kgid_has_mapping(ns, inode->i_gid); + } +-EXPORT_SYMBOL(inode_capable); ++EXPORT_SYMBOL(capable_wrt_inode_uidgid); diff --git a/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch b/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch new file mode 100644 index 000000000..8f638ec8e --- /dev/null +++ b/debian/patches/debian/vfs-avoid-abi-change-for-cve-2014-4014.patch @@ -0,0 +1,22 @@ +From: Ben Hutchings +Date: Sun, 15 Jun 2014 23:59:03 +0100 +Subject: vfs: Avoid ABI change for CVE-2014-4014 +Forwarded: not-needed + +inode_capable() was renamed for good reasons, but we should keep +providing a function with that name. The only modular in-tree caller, +xfs, wants the new behaviour of capable_wrt_inode_uidgid(), so make +inode_capable() call that. + +--- a/kernel/capability.c ++++ b/kernel/capability.c +@@ -449,3 +449,9 @@ bool capable_wrt_inode_uidgid(const stru + kgid_has_mapping(ns, inode->i_gid); + } + EXPORT_SYMBOL(capable_wrt_inode_uidgid); ++ ++bool inode_capable(const struct inode *inode, int cap) ++{ ++ return capable_wrt_inode_uidgid(inode, cap); ++} ++EXPORT_SYMBOL(inode_capable); diff --git a/debian/patches/series b/debian/patches/series index 69c7b1b83..d177b96ae 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -93,3 +93,5 @@ bugfix/mips/MIPS-asm-thread_info-Add-_TIF_SECCOMP-flag.patch bugfix/all/auditsc-audit_krule-mask-accesses-need-bounds-checki.patch debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch debian/dma-avoid-abi-change-in-3.14.6.patch +bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch +debian/vfs-avoid-abi-change-for-cve-2014-4014.patch From 7ed1428a7512751cbd623464868f7930b854792f Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 23:11:58 +0000 Subject: [PATCH 28/32] SCSI: Fix spurious request sense in error handling (regression in 3.14) svn path=/dists/sid/linux/; revision=21441 --- debian/changelog | 1 + ...ious-request-sense-in-error-handling.patch | 38 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 40 insertions(+) create mode 100644 debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch diff --git a/debian/changelog b/debian/changelog index ce349caa4..2f4410cee 100644 --- a/debian/changelog +++ b/debian/changelog @@ -228,6 +228,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917) * fs,userns: Change inode_capable to capable_wrt_inode_uidgid (CVE-2014-4014) + * SCSI: Fix spurious request sense in error handling (regression in 3.14) -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch b/debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch new file mode 100644 index 000000000..5cdfcb6d4 --- /dev/null +++ b/debian/patches/bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch @@ -0,0 +1,38 @@ +From: James Bottomley +Date: Fri, 28 Mar 2014 10:50:17 -0700 +Subject: [SCSI] Fix spurious request sense in error handling +Origin: https://git.kernel.org/linus/d555a2abf3481f81303d835046a5ec2c4fb3ca8e + +We unconditionally execute scsi_eh_get_sense() to make sure all failed +commands that should have sense attached, do. However, the routine forgets +that some commands, because of the way they fail, will not have any sense code +... we should not bother them with a REQUEST_SENSE command. Fix this by +testing to see if we actually got a CHECK_CONDITION return and skip asking for +sense if we don't. + +Tested-by: Alan Stern +Signed-off-by: James Bottomley +--- + drivers/scsi/scsi_error.c | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c +index 771c16b..d020149 100644 +--- a/drivers/scsi/scsi_error.c ++++ b/drivers/scsi/scsi_error.c +@@ -1157,6 +1157,15 @@ int scsi_eh_get_sense(struct list_head *work_q, + __func__)); + break; + } ++ if (status_byte(scmd->result) != CHECK_CONDITION) ++ /* ++ * don't request sense if there's no check condition ++ * status because the error we're processing isn't one ++ * that has a sense code (and some devices get ++ * confused by sense requests out of the blue) ++ */ ++ continue; ++ + SCSI_LOG_ERROR_RECOVERY(2, scmd_printk(KERN_INFO, scmd, + "%s: requesting sense\n", + current->comm)); diff --git a/debian/patches/series b/debian/patches/series index d177b96ae..414f924b6 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -95,3 +95,4 @@ debian/drivers-base-platform-avoid-abi-change-in-3.14.6.patch debian/dma-avoid-abi-change-in-3.14.6.patch bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch debian/vfs-avoid-abi-change-for-cve-2014-4014.patch +bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch From 58b54a11270d385dfbb039d1e3f91fef0e9ad783 Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 23:14:38 +0000 Subject: [PATCH 29/32] PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14) svn path=/dists/sid/linux/; revision=21442 --- debian/changelog | 1 + ...MSI-Fix-memory-leak-in-free_msi_irqs.patch | 33 +++++++++++++++++++ debian/patches/series | 1 + 3 files changed, 35 insertions(+) create mode 100644 debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch diff --git a/debian/changelog b/debian/changelog index 2f4410cee..909c062ff 100644 --- a/debian/changelog +++ b/debian/changelog @@ -229,6 +229,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium * fs,userns: Change inode_capable to capable_wrt_inode_uidgid (CVE-2014-4014) * SCSI: Fix spurious request sense in error handling (regression in 3.14) + * PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14) -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch b/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch new file mode 100644 index 000000000..c3a90d88b --- /dev/null +++ b/debian/patches/bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch @@ -0,0 +1,33 @@ +From: Alexei Starovoitov +Date: Wed, 4 Jun 2014 15:49:50 -0700 +Subject: PCI/MSI: Fix memory leak in free_msi_irqs() +Origin: https://git.kernel.org/linus/b701c0b1fe819a2083fc6ec5332e0e4492b9516d + +free_msi_irqs() is leaking memory, since list_for_each_entry(entry, +&dev->msi_list, list) {...} is never executed, because dev->msi_list is +made empty by the loop just above this one. + +Fix it by relying on zero termination of attribute array like +populate_msi_sysfs() does. + +Fixes: 1c51b50c2995 ("PCI/MSI: Export MSI mode using attributes, not kobjects") +Signed-off-by: Alexei Starovoitov +Signed-off-by: Bjorn Helgaas +Acked-by: Neil Horman +Acked-by: Greg Kroah-Hartman +CC: stable@vger.kernel.org # v3.14+ +--- + drivers/pci/msi.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/drivers/pci/msi.c ++++ b/drivers/pci/msi.c +@@ -414,7 +414,7 @@ static void free_msi_irqs(struct pci_dev + if (dev->msi_irq_groups) { + sysfs_remove_groups(&dev->dev.kobj, dev->msi_irq_groups); + msi_attrs = dev->msi_irq_groups[0]->attrs; +- list_for_each_entry(entry, &dev->msi_list, list) { ++ while (msi_attrs[count]) { + dev_attr = container_of(msi_attrs[count], + struct device_attribute, attr); + kfree(dev_attr->attr.name); diff --git a/debian/patches/series b/debian/patches/series index 414f924b6..d79966a3c 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -96,3 +96,4 @@ debian/dma-avoid-abi-change-in-3.14.6.patch bugfix/all/fs-userns-change-inode_capable-to-capable_wrt_inode_uidgid.patch debian/vfs-avoid-abi-change-for-cve-2014-4014.patch bugfix/all/SCSI-Fix-spurious-request-sense-in-error-handling.patch +bugfix/all/PCI-MSI-Fix-memory-leak-in-free_msi_irqs.patch From 678d260cd19f95e71d99a9b9caeb95f6aa66991a Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Sun, 15 Jun 2014 23:20:22 +0000 Subject: [PATCH 30/32] Explain the seccomp fix properly svn path=/dists/sid/linux/; revision=21443 --- debian/changelog | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 909c062ff..87dbea740 100644 --- a/debian/changelog +++ b/debian/changelog @@ -224,7 +224,8 @@ linux (3.14.7-1) UNRELEASED; urgency=medium - udeb: Add packages based on ppc64 configuration * netfilter: ipv4: defrag: set local_df flag on defragmented skb (regression in 3.14.5) - * [mips] asm: thread_info: Add _TIF_SECCOMP flag (Closes: #751417) + * [mips] seccomp: Check system calls whenever seccomp is enabled, + even if audit and trace are disabled (Closes: #751417) * auditsc: audit_krule mask accesses need bounds checking (CVE-2014-3917) * fs,userns: Change inode_capable to capable_wrt_inode_uidgid (CVE-2014-4014) From 5e3aaadf1d5335635ce0f9c132ab2093d46e65bf Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 16 Jun 2014 02:31:23 +0000 Subject: [PATCH 31/32] [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently result in a panic svn path=/dists/sid/linux/; revision=21450 --- debian/changelog | 2 ++ debian/config/featureset-rt/config | 5 ++++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/debian/changelog b/debian/changelog index 87dbea740..bdbdd977d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -231,6 +231,8 @@ linux (3.14.7-1) UNRELEASED; urgency=medium (CVE-2014-4014) * SCSI: Fix spurious request sense in error handling (regression in 3.14) * PCI/MSI: Fix memory leak in free_msi_irqs() (regression in 3.14) + * [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently + result in a panic -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 diff --git a/debian/config/featureset-rt/config b/debian/config/featureset-rt/config index 247fe31b6..1610bdc49 100644 --- a/debian/config/featureset-rt/config +++ b/debian/config/featureset-rt/config @@ -1,7 +1,10 @@ # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT_RT_FULL=y CONFIG_SCHED_TRACER=y -CONFIG_MISSED_TIMER_OFFSETS_HIST=y +#. This option is broken after commit 84ea7fe37908 +#. ('hrtimer: Set expiry time before switch_hrtimer_base()') but should be +#. enabled when this is resolved +# CONFIG_MISSED_TIMER_OFFSETS_HIST is not set CONFIG_WAKEUP_LATENCY_HIST=y ## disable aufs as it's not needed on rt and conflicts with fs-dentry-use-seqlock.patch From f66cd3322f51b30a7c65e5dc2012f5af3f5ee01f Mon Sep 17 00:00:00 2001 From: Ben Hutchings Date: Mon, 16 Jun 2014 12:05:16 +0000 Subject: [PATCH 32/32] Prepare to release linux (3.14.7-1). svn path=/dists/sid/linux/; revision=21451 --- debian/changelog | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index bdbdd977d..662950dfc 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -linux (3.14.7-1) UNRELEASED; urgency=medium +linux (3.14.7-1) unstable; urgency=medium * New upstream stable update: http://www.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.14.6 @@ -234,7 +234,7 @@ linux (3.14.7-1) UNRELEASED; urgency=medium * [rt] hrtimer: Disable MISSED_TIMER_OFFSETS_HIST as it will currently result in a panic - -- Ian Campbell Fri, 06 Jun 2014 18:18:41 +0100 + -- Ben Hutchings Mon, 16 Jun 2014 09:51:49 +0100 linux (3.14.5-1) unstable; urgency=high