]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Aug 2016 10:56:36 +0000 (12:56 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 18 Aug 2016 10:56:36 +0000 (12:56 +0200)
added patches:
arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch
netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch

queue-3.14/arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch [new file with mode: 0644]
queue-3.14/netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch b/queue-3.14/arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch
new file mode 100644 (file)
index 0000000..14c8c8c
--- /dev/null
@@ -0,0 +1,61 @@
+From 56530f5d2ddc9b9fade7ef8db9cb886e9dc689b5 Mon Sep 17 00:00:00 2001
+From: Steve Capper <steve.capper@arm.com>
+Date: Tue, 7 Jun 2016 17:58:06 +0100
+Subject: ARM: 8579/1: mm: Fix definition of pmd_mknotpresent
+
+From: Steve Capper <steve.capper@arm.com>
+
+commit 56530f5d2ddc9b9fade7ef8db9cb886e9dc689b5 upstream.
+
+Currently pmd_mknotpresent will use a zero entry to respresent an
+invalidated pmd.
+
+Unfortunately this definition clashes with pmd_none, thus it is
+possible for a race condition to occur if zap_pmd_range sees pmd_none
+whilst __split_huge_pmd_locked is running too with pmdp_invalidate
+just called.
+
+This patch fixes the race condition by modifying pmd_mknotpresent to
+create non-zero faulting entries (as is done in other architectures),
+removing the ambiguity with pmd_none.
+
+[catalin.marinas@arm.com: using L_PMD_SECT_VALID instead of PMD_TYPE_SECT]
+
+Fixes: 8d9625070073 ("ARM: mm: Transparent huge page support for LPAE systems.")
+Cc: <stable@vger.kernel.org> # 3.11+
+Reported-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
+Acked-by: Will Deacon <will.deacon@arm.com>
+Cc: Russell King <linux@armlinux.org.uk>
+Signed-off-by: Steve Capper <steve.capper@arm.com>
+Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
+Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+
+This is a backport of commit 56530f5d2ddc ("ARM: 8579/1: mm: Fix 
+definition of pmd_mknotpresent") to the 3.14.x  stable kernel and
+earlier because the original patch does not apply cleanly.
+
+As noted in the "Cc: stable" tag above, this patch requires commit 
+624531886987 ("ARM: 8578/1: mm: ensure pmd_present only checks the valid
+bit"), already queued for 3.14.x stable kernel.
+
+ arch/arm/include/asm/pgtable-3level.h |    7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+--- a/arch/arm/include/asm/pgtable-3level.h
++++ b/arch/arm/include/asm/pgtable-3level.h
+@@ -243,8 +243,11 @@ PMD_BIT_FUNC(mkyoung,   |= PMD_SECT_AF);
+ #define pfn_pmd(pfn,prot)     (__pmd(((phys_addr_t)(pfn) << PAGE_SHIFT) | pgprot_val(prot)))
+ #define mk_pmd(page,prot)     pfn_pmd(page_to_pfn(page),prot)
+-/* represent a notpresent pmd by zero, this is used by pmdp_invalidate */
+-#define pmd_mknotpresent(pmd) (__pmd(0))
++/* represent a notpresent pmd by faulting entry, this is used by pmdp_invalidate */
++static inline pmd_t pmd_mknotpresent(pmd_t pmd)
++{
++      return __pmd(pmd_val(pmd) & ~L_PMD_SECT_VALID);
++}
+ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot)
+ {
diff --git a/queue-3.14/netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch b/queue-3.14/netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch
new file mode 100644 (file)
index 0000000..4a47704
--- /dev/null
@@ -0,0 +1,51 @@
+From 0e0e36774081534783aa8eeb9f6fbddf98d3c061 Mon Sep 17 00:00:00 2001
+From: Paul Moore <paul@paul-moore.com>
+Date: Mon, 6 Jun 2016 15:17:20 -0400
+Subject: netlabel: add address family checks to netlbl_{sock,req}_delattr()
+
+From: Paul Moore <paul@paul-moore.com>
+
+commit 0e0e36774081534783aa8eeb9f6fbddf98d3c061 upstream.
+
+It seems risky to always rely on the caller to ensure the socket's
+address family is correct before passing it to the NetLabel kAPI,
+especially since we see at least one LSM which didn't. Add address
+family checks to the *_delattr() functions to help prevent future
+problems.
+
+Reported-by: Maninder Singh <maninder1.s@samsung.com>
+Signed-off-by: Paul Moore <paul@paul-moore.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/netlabel/netlabel_kapi.c |   12 ++++++++++--
+ 1 file changed, 10 insertions(+), 2 deletions(-)
+
+--- a/net/netlabel/netlabel_kapi.c
++++ b/net/netlabel/netlabel_kapi.c
+@@ -699,7 +699,11 @@ socket_setattr_return:
+  */
+ void netlbl_sock_delattr(struct sock *sk)
+ {
+-      cipso_v4_sock_delattr(sk);
++      switch (sk->sk_family) {
++      case AF_INET:
++              cipso_v4_sock_delattr(sk);
++              break;
++      }
+ }
+ /**
+@@ -862,7 +866,11 @@ req_setattr_return:
+ */
+ void netlbl_req_delattr(struct request_sock *req)
+ {
+-      cipso_v4_req_delattr(req);
++      switch (req->rsk_ops->family) {
++      case AF_INET:
++              cipso_v4_req_delattr(req);
++              break;
++      }
+ }
+ /**
index 63b5c5663caf0e461ab527b941f24c5c2a5a5e31..fa059c73a4affa2f6888c4b679f4799f3103c281 100644 (file)
@@ -20,3 +20,5 @@ mips-kvm-propagate-kseg0-mapped-tlb-fault-errors.patch
 nfs-don-t-create-zero-length-requests.patch
 usb-usbfs-fix-potential-infoleak-in-devio.patch
 udp-properly-support-msg_peek-with-truncated-buffers.patch
+arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch
+netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch