From: Greg Kroah-Hartman Date: Thu, 18 Aug 2016 10:56:36 +0000 (+0200) Subject: 3.14-stable patches X-Git-Tag: v3.14.77~23 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ae958400d0e42838782307edb5c18fa99cbfe87e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.14-stable patches added patches: arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch --- 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 index 00000000000..14c8c8c43e6 --- /dev/null +++ b/queue-3.14/arm-8579-1-mm-fix-definition-of-pmd_mknotpresent.patch @@ -0,0 +1,61 @@ +From 56530f5d2ddc9b9fade7ef8db9cb886e9dc689b5 Mon Sep 17 00:00:00 2001 +From: Steve Capper +Date: Tue, 7 Jun 2016 17:58:06 +0100 +Subject: ARM: 8579/1: mm: Fix definition of pmd_mknotpresent + +From: Steve Capper + +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: # 3.11+ +Reported-by: Kirill A. Shutemov +Acked-by: Will Deacon +Cc: Russell King +Signed-off-by: Steve Capper +Signed-off-by: Catalin Marinas +Signed-off-by: Russell King +Signed-off-by: Greg Kroah-Hartman +--- + +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 index 00000000000..4a47704c919 --- /dev/null +++ b/queue-3.14/netlabel-add-address-family-checks-to-netlbl_-sock-req-_delattr.patch @@ -0,0 +1,51 @@ +From 0e0e36774081534783aa8eeb9f6fbddf98d3c061 Mon Sep 17 00:00:00 2001 +From: Paul Moore +Date: Mon, 6 Jun 2016 15:17:20 -0400 +Subject: netlabel: add address family checks to netlbl_{sock,req}_delattr() + +From: Paul Moore + +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 +Signed-off-by: Paul Moore +Signed-off-by: Greg Kroah-Hartman + +--- + 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; ++ } + } + + /** diff --git a/queue-3.14/series b/queue-3.14/series index 63b5c5663ca..fa059c73a4a 100644 --- a/queue-3.14/series +++ b/queue-3.14/series @@ -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