From patchwork Sat Jul 18 19:24:57 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Scott Wood X-Patchwork-Id: 497395 X-Patchwork-Delegate: scottwood@freescale.com Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 58954140778 for ; Sun, 19 Jul 2015 05:26:15 +1000 (AEST) Received: from lists.ozlabs.org (lists.ozlabs.org [IPv6:2401:3900:2:1::3]) by lists.ozlabs.org (Postfix) with ESMTP id 3D9B51A1BCC for ; Sun, 19 Jul 2015 05:26:15 +1000 (AEST) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0121.outbound.protection.outlook.com [207.46.100.121]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id A828D1A0CEC for ; Sun, 19 Jul 2015 05:25:16 +1000 (AEST) Authentication-Results: lists.ozlabs.org; dkim=none (message not signed) header.d=none; Received: from snotra.am.freescale.net (192.88.168.49) by BN3PR03MB1479.namprd03.prod.outlook.com (10.163.35.142) with Microsoft SMTP Server (TLS) id 15.1.213.14; Sat, 18 Jul 2015 19:25:09 +0000 From: Scott Wood To: Subject: [PATCH 1/2] powerpc/booke64: Move mb() to __set_pte_at() with kernel-addr test Date: Sat, 18 Jul 2015 14:24:57 -0500 Message-ID: <1437247498-6027-1-git-send-email-scottwood@freescale.com> X-Mailer: git-send-email 2.1.4 MIME-Version: 1.0 X-Originating-IP: [192.88.168.49] X-ClientProxiedBy: BY2PR21CA0019.namprd21.prod.outlook.com (25.162.74.157) To BN3PR03MB1479.namprd03.prod.outlook.com (25.163.35.142) X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1479; 2:ZqlkzqHjAsSOjoa2H77fs853u9TWUnC4xyzaGuacNkYuhpeDNEdvVsCyFHkS4gS4; 3:ip7Cred4PbxLgk1q8rG/9SWbzwubTxF3h5eNQZqZ6WP+P3hzudmf2Z9xUILalMK/+5FaM+zF1hW7pykmiy38Q3pfQNpWqOJemHoLk60iSLXLrhtHz/wzmln7+aeCBG3mvWfu77ZglU+VrmugOAsXmw==; 25:wW9Sevbj4IVdS3iR4pkZiFNnLHpHPH1En3+lzS+ZnJN/jzTt8QxaXHYqXPr6X6L83zt/CZGAwObESdhiI8SjUlJn7PSd9y2yuXh+iQ5+Vaph6Hv9eQKaeZQ2InAbaLuEOd2EAV069kxqDgW3iZqMgKP5X3TIlWhKUSHL99YJ5R1PxcLU/SRRs1tAXFaqZlcTVHdeTvoyQlo/74eZ8Rnckmth7kkvEydc0xdZCrXVZ02Mxi2aE/r2okfs56mw1lO3NKh4tA53EJw7ydDEUV/+xQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:BN3PR03MB1479; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1479; 20:HV2/ttK5vbx5bfQeJ9b6ATWd0KntW12mrvfYKv5OJqwTaUiid7TrPWHPRuNtvY6GxtCOWwrFCXCetLkL9w/PLuR4OsTwS84h7NR4OR+BBEadbFL6QD7BTgqQfuhFwKV2klL/VT+Ku5nXgrL4FLORD2vq8RJsXfhh7JiQMO5XKHIbpGVC3hbe+UkkKhrfVUodvKbb0+ea8oJI3eT/2KBjXIZ/y+kYys87791vLHBmNYZyFQbEJDPyTY+KIkJA4df/dZq+QeIsrIIBNwuB637fYjw+SQhhZKbPp0wQN8kUYNKf9BtZ7doYoMsMaVfif47r9Fm8CPYNJHbJvDuODYlAOvWvIa5/opWu2P7wrpVFCx+XVpE9wh7T92FbbnKgbC6pbO1iX2U2EfAAyydA6GYJrfTGGpp9Oj2z0r6M+hG6Mynuw8WiQJ10Ld6yoILdsXyEmNE0WU/1lBqwrBvBKjAbZ9BWuqyyY2Z2efmtpaooIR/Bgf3eJJwB5i4NdSspWbGW; 4:oK3qZbwg+sENXdieJ7Dibls9Qp2KD5rgupoQZEEuqJXHq7vPvgDqptZtFCqT//g2Ui6CVu2+A0NdhiPaz1X/9a/5/L9HJswaddPGcjnBPFt6YEreHqJftA/6y2OnTCmiBSuExB0H2T6bzKmnm/tdqGf+bjL277+a3zq/2jBYzhVTYBf9pafcvtjdtBghnSqT6C+2rc/E8jcATVQSkTbF5gCcutbEpfEK2HPEbmr9AtsU7sIke/L2ik/L8vU3apXM9yPcAoOBwwTQXo4N0fKVmTxkqEYOywxpPCk3/IryaQk= BN3PR03MB1479: X-MS-Exchange-Organization-RulesExecuted X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(5005006)(3002001); SRVR:BN3PR03MB1479; BCL:0; PCL:0; RULEID:; SRVR:BN3PR03MB1479; X-Forefront-PRVS: 0641678E68 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10019020)(6009001)(450100001)(50986999)(66066001)(122386002)(77156002)(92566002)(48376002)(50226001)(62966003)(40100003)(87976001)(189998001)(50466002)(86362001)(33646002)(42186005)(46102003)(36756003)(19580405001)(2351001)(47776003)(110136002)(5001960100002)(229853001)(5003940100001)(77096005)(19580395003)(5001920100001)(107886002)(4001430100001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN3PR03MB1479; H:snotra.am.freescale.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1479; 23:WDeQOotTr+05ReVfAKU4/eM+mV0ogmbzNKQ3S2RkFp2IXuBaa8BOXLHMOd086Nfv3uJwHlmnm/TFMjEbCJ/aYepMEocNi+yTn7AGq8S6dfftd0zgHDZ5epQsnBcNhE7tUQ3pO32DMVzIleCbEQaQhTQHAZ3Z9jRy74DX9M0MeQ87+ZiO0hdq9Pg/egzDprHPmSBsznzG3tw2mH31fJqnbNbTPx0H8v0OkE8qj16D7Tiar13efbOPEzKgP9SYrFvZ4kEZReKZkbWEcNvqstWpfvzkimwjRqCxt591zVO69DWS3miU+9LHnFzd/uwZS04cae+Nx5wcof2z5FfR0yStglXOX0f/4hKzVHZeSusIppHpt96NpDgBFAqOo1zN3UqwzOw2aL65V+HVh0g8lruCgJ9kY5gQB6NS6cbpd/E481943kf7iXybPdw/nbL5ACSzQsMHbX7DRMvNC3Y1DtCNSfJsJsIGjLeHIO/WE1hrYDJNK3RJLKGBQh0n1T33i7y8LqqCXSzNoGV7HXHX5mmOy4EjaH4FFjFczgp6bBhtkBtCogdRIA3Cy1+gEIGAap3Kr32CMX5YyJBdQXKeCThoW6fNKp4HMd2IYzJbQmL/iKvqhxkTSxram5JrwdXE8T5uVXJu5p8l1mKmxWJKN1fiQjenuFiXHwm3HC0YTIxcRJWZL4bSJPUpP810hvscPBda9SAXvs/d7Bl9OIIyl1Ar/IeU9M6GIHTdcoaP/qzJ28UaL7B7yn3pOSZ9Y6CC53tHEdFVYCxr/dJik+24sieTi9XT1aK1kamKTd8vktnolJbhyIZiAAfXMv1VkjR5OUuCMWMG5wdS1Px0TiVgwsP465M9l4a+oE08PUMapmWvmPwOcNSnGiZB/ic+89Oxi/dC X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB1479; 5:W13UIrizS4Q0VKp7a7OOj89lHoSgOJQ93ijcSJVb6BQLwYYzPy0dtnTzBg+e+gs3LkmIGvgnaya5rXNCtwB1/aLCoPt6FV2oLhVt6TVMocq9FDEN4kVQ2gYBsamcub3Sf2cusdDqNi2NRQgG3iYZOQ==; 24:NL4UgVuBHauBYTBuMNXw72bmT9CC4O2Gl8m0gGqDWjmjD2CgLWjajUyiedmwX5tJIe5UIqmwpWhAPqizEuEoH7Lbhvs9AdS6BJCz8s9DXlM=; 20:wfS9x2269F6JVb3Jkg9seMpokCQeMqQswexQ9bwzTtwmZMFht38VmuP+Ui4MhHa4Lx6rJyiCaW1YUc+T7+uKZg== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jul 2015 19:25:09.1575 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB1479 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Scott Wood Errors-To: linuxppc-dev-bounces+patchwork-incoming=ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" map_kernel() doesn't catch all places that create kernel PTEs. In particular, vmalloc() calls set_pte_at() directly. This causes a crash when booting a non-SMP kernel on e6500. Move the sync to __set_pte(), to be executed only for kernel addresses. Signed-off-by: Scott Wood --- arch/powerpc/include/asm/pgtable.h | 11 +++++++++++ arch/powerpc/mm/pgtable_64.c | 10 ---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h index 11a3863..0717693 100644 --- a/arch/powerpc/include/asm/pgtable.h +++ b/arch/powerpc/include/asm/pgtable.h @@ -169,6 +169,17 @@ static inline void __set_pte_at(struct mm_struct *mm, unsigned long addr, * cases, and 32-bit non-hash with 32-bit PTEs. */ *ptep = pte; + +#ifdef CONFIG_PPC_BOOK3E_64 + /* + * With hardware tablewalk, a sync is needed to ensure that + * subsequent accesses see the PTE we just wrote. Unlike userspace + * mappings, we can't tolerate spurious faults, so make sure + * the new PTE will be seen the first time. + */ + if (is_kernel_addr(addr)) + mb(); +#endif #endif } diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c index 876232d..e92cb21 100644 --- a/arch/powerpc/mm/pgtable_64.c +++ b/arch/powerpc/mm/pgtable_64.c @@ -149,17 +149,7 @@ int map_kernel_page(unsigned long ea, unsigned long pa, int flags) #endif /* !CONFIG_PPC_MMU_NOHASH */ } -#ifdef CONFIG_PPC_BOOK3E_64 - /* - * With hardware tablewalk, a sync is needed to ensure that - * subsequent accesses see the PTE we just wrote. Unlike userspace - * mappings, we can't tolerate spurious faults, so make sure - * the new PTE will be seen the first time. - */ - mb(); -#else smp_wmb(); -#endif return 0; }