From patchwork Mon Jan 17 10:06:39 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christophe Leroy X-Patchwork-Id: 1580646 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ozlabs.org (client-ip=112.213.38.117; helo=lists.ozlabs.org; envelope-from=linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org; receiver=) Received: from lists.ozlabs.org (lists.ozlabs.org [112.213.38.117]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4JcndP60p2z9sRR for ; Mon, 17 Jan 2022 21:07:21 +1100 (AEDT) Received: from boromir.ozlabs.org (localhost [IPv6:::1]) by lists.ozlabs.org (Postfix) with ESMTP id 4JcndP0mfbz30N0 for ; Mon, 17 Jan 2022 21:07:21 +1100 (AEDT) X-Original-To: linuxppc-dev@lists.ozlabs.org Delivered-To: linuxppc-dev@lists.ozlabs.org Authentication-Results: lists.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=csgroup.eu (client-ip=2a01:111:f400:7e19::618; helo=fra01-mr2-obe.outbound.protection.outlook.com; envelope-from=christophe.leroy@csgroup.eu; receiver=) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01on0618.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e19::618]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 4Jcnd64Gg2z2xDM for ; Mon, 17 Jan 2022 21:07:04 +1100 (AEDT) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WCk4fy5/APxSx7+bZ5kbBZfpHdGAKtNmnPjlOqLMWH/tBS0Ar1VtI91qj8vsvLq6QN5oBpc6lzOECEm4/BLJZ30jfFngayn2jmPDXZWnh9olP0CDYk5YjpdUJytDEA1DXTrJ6WJiHBxwIECKdg/2fxtvedmA/ZebB5d80ojKk+4aozfKyTtOvPRWwW2zx3I64QyyE2rQSX3IOjuYwGavugmSBMlmgzJ8g0KqgrYOAvi/EZVDvOQfek2LDpiVVARUlRKjEvWVNyFbI6yd/FFz/+8q/GXtg9soL+WFsXZPn43hgV62iGJl9RnZCCd+18Wy66xde6cS6JC6ZaPxMd6NEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ZChNNeWBMA/w9hnSGFwBn1OHXD4XBocmcjf/kIKBCp0=; b=PHOQeF2fCHWN5Mr6mF9bd7qEILzP+mfrHzUsDcmGgNOH42pKtn9pY3d0NtzM0ipxstkxMur8lV1CfmCIZS7+5ShfHKFVEbWfSTnaCjiHsajN6TNXUG8SfVg0JziDjhNxj8xhMlP1wH8ZjbFHfOeyg6id66qwznrcu12VqvmIRl3K1CziiZ7WzuQ5lXWPGOJx7YqY3qBVmbCzbCyjFGQ71iM6HMeTX9oxmvoJJkjghlAcUtvNqqXukylKyKRLlybEWDFUgwRKeQBaL56v2TCr5MD5GR2oRjy1oxVHsr04OXug79AZy7AWHm4sIr/MScQMdFw/IY9iPUGJ6HBqOQSjkA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=csgroup.eu; dmarc=pass action=none header.from=csgroup.eu; dkim=pass header.d=csgroup.eu; arc=none Received: from MR1P264MB2980.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:3d::7) by PR0P264MB3625.FRAP264.PROD.OUTLOOK.COM (2603:10a6:102:146::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4888.11; Mon, 17 Jan 2022 10:06:39 +0000 Received: from MR1P264MB2980.FRAP264.PROD.OUTLOOK.COM ([fe80::30e4:16d5:f514:b8f8]) by MR1P264MB2980.FRAP264.PROD.OUTLOOK.COM ([fe80::30e4:16d5:f514:b8f8%2]) with mapi id 15.20.4888.013; Mon, 17 Jan 2022 10:06:39 +0000 From: Christophe Leroy To: Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman Subject: [PATCH] powerpc/32s: Enable STRICT_MODULE_RWX for the 603 core Thread-Topic: [PATCH] powerpc/32s: Enable STRICT_MODULE_RWX for the 603 core Thread-Index: AQHYC4nrAjqfbFaQXE6sowexREg9UA== Date: Mon, 17 Jan 2022 10:06:39 +0000 Message-ID: <1e6162f334167e75f1140082932e3a354b16daba.1642413973.git.christophe.leroy@csgroup.eu> Accept-Language: fr-FR, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=csgroup.eu; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 4b73ff81-ffde-4df0-ee38-08d9d9a10da4 x-ms-traffictypediagnostic: PR0P264MB3625:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:3826; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: AC/WYSni0NoTfmKow3tOr/hTnFnXNTLL4JrXnTAsWgTGEnRTfws9tHuasMDDH2GdAlc5K+5PKrndnowk/ezhScjIHLdPOnI3Z/LBB2vC+SZXcZxaA9fverEKB4JpeCn6NvGXX0Q8PfCWQMgHOhz2fZ5o5HSiq6pmDmLGeeGLG177Z/8vDDBf7u75Watq0gaIzZyWHVEdZ0xBp5OrF2UL/yry0UzbHQQI9vTCYsdTuoaYJGp230mRPsw1x4LG9kyM/jzz+KpNILBJXXRnuxNydvdJf82GqJizu/yC76LEI7AKJPDTAZcPJDEOW6oBeKtXIvwNtrhyl2VP0pTbHg59mGL40R5DylET/yjXp/973hSMX7AbNKhMp4nQ541GTMXATsHVk0mUq2PD0TqVDB+9GD76o9fjtppZj+gyCEN0RqZ5JPAwNqsc3dwEf7o4hNzPndSOCXelXmEOb9B5dRoFdmS+Q68JeKPWwe9g4k10ciLlV3TkJk7SAA6rHjymXeCKZ4uRKGRK2uYwrgryI33MKIET0O7EQqWOxT4ctr7W3dXUvm4r7sqp5CmOibzMxD5qu/ki7efMlZSuYrptdyKapKmURG0W5jML+B9wbIZPB/BekhHPe70weplrIFEh46JZpUMsxCJ7JiJbVSVfeNKjBn5jR2xUXpJWB+XeYtf6j7YOGkbHuJrGbcUMYmbdu3Am6L47A+LMwDEe8Z8z7wvwZQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MR1P264MB2980.FRAP264.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(4636009)(366004)(54906003)(76116006)(186003)(71200400001)(66946007)(6506007)(6512007)(86362001)(2616005)(4326008)(44832011)(66556008)(508600001)(122000001)(64756008)(66446008)(8676002)(5660300002)(316002)(38070700005)(66476007)(38100700002)(36756003)(83380400001)(91956017)(6486002)(8936002)(2906002)(26005)(110136005); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?q?MzpRRgqZp9vZnyHhx8uzP7w?= =?iso-8859-1?q?cuYg4Hz4RT8wF9iGpGvP8VdKaxp6m7Cg6YmOEMxo7S3W4ozm/0VKmfmGXwmX?= =?iso-8859-1?q?TXsV2dQN1DSey44ZjQVmSxKgHCAjEr3gt39pW8TDPgLynx6SOrfMe8yuUvb4?= =?iso-8859-1?q?VTs+phxfDUI0y7YjlGSYHCsQ/rrbu635TMPZ5AyEegPW+TDLgCqY+IiJR11b?= =?iso-8859-1?q?iRFXX6PHKA+C+hdI1zpkpUr/9VW0VA/th3PAJulLX4GzrptURhM/vm1gSnUc?= =?iso-8859-1?q?rlT2Wsc99q+MdYZXOmIUjWZAKdouF7hTe+qUmQPAbcEZbs1/S8wYAgAhav1J?= =?iso-8859-1?q?oCyCVhQyugMes2LyD5z/AeCufqWu4VdKk6bPOXmECJEMF5tJpwnKqIF3JQFT?= =?iso-8859-1?q?OcNZYfhU9hl0bW7ZWOduPJ/MSzlI3HThzfUI1VYFzGxWyRsz+NZ+pFntoqyN?= =?iso-8859-1?q?NuahnWRjAeRaX9k2ad8uhVZ8t3nJSD8VJtkp2jIXgKwK7gGwR0m3xgUeHaca?= =?iso-8859-1?q?ez05ntbNxnp/Ko8VzDLvKwu7j9trTUvIak3t1Jt0Itx3kBiTPdCRxofDnzUQ?= =?iso-8859-1?q?yeBAzbvJfzzBfhKqg6dty362pHgLRqyaKa+stycZ6J1d6TozuwtzK2xfm1RS?= =?iso-8859-1?q?2S/RCXp9KvR8HKlfOM9J3MrWlC7CJxgA1Dwa0Q3YxMgXprUBiKk9nni7pHQ4?= =?iso-8859-1?q?N8R0iRxurM25wXEPaFUvQcGSMIyFAakCV4ofi+gpaIzYhS4e7uooiUz/UvqV?= =?iso-8859-1?q?bpymM6aViQZ/PazBQUDnAlNOnqcry/ilh+LqCankmW+oZDKPwH69lk909ij/?= =?iso-8859-1?q?dE4FQ+V/bA9dRXh8cmgc1ZM489LJOr39slxtthtv4hH53YDQ4d0gNQdyQCoi?= =?iso-8859-1?q?T3bqb2528e+UFZ4rmRZWSs9mRCPjab08HwcZbX0Ao2hzYB3h4BKOJjUHiWFt?= =?iso-8859-1?q?f+7DMN0EJJ7dNpYph9WK7bTJKi9GfagWL4E7IQ4YI6npJMKqTySBa54mb/c+?= =?iso-8859-1?q?RdpZCrEyxxrIrPv1bpZx6RwmPr/NsTfVhIsROnAYqtZ/1ICG5JwSQ+fdysZw?= =?iso-8859-1?q?vxLpll0+GYdqaOOvN/2hmAJihKBYinXNaQ54nJ6T07nNeV+lJMW2mRsmzx4t?= =?iso-8859-1?q?6oOzCKG7Muqfp5Ea7F/7Kv3jKw7mjbdFGmnOBG4KgFhsNCdXkqgP6DCBbHpK?= =?iso-8859-1?q?QK22U2GTBsG+gMe7CmpKpTsfFj8en8NRp2VJl3Ac5wFaLI6CxzAy55U0CyP2?= =?iso-8859-1?q?EyQRQkPXk/zQogrWxTKE9mlWpWkoOdrhJU54RRxNiwQ7d90tNsQy6NEf/Yu1?= =?iso-8859-1?q?vLhGe+qrAJIbcvUi325fv8ZFco20tZw7ppDBqW4whe89R2xDhs7bn0CE5PtX?= =?iso-8859-1?q?xTiLea+EtsArV/pj792NoeiW6MCAajNhj3V17e/jWqdvLvY5XERHquyhY8ok?= =?iso-8859-1?q?fryToX5ECbDNfFWnMq9bR0bbIl8UjH31ALxXmhydsm7uX0Tqh9GnyERB5e61?= =?iso-8859-1?q?4DbwQD43bJAqfjLbcb7nkZKYvEtEjDFeI/ki47/Xd6YzEsB0gQpdz02KT0zc?= =?iso-8859-1?q?LuxH2yAk7E6AVlHpGQmuktwDjuAp2addFGI81a0G670FWJ6EekBFiBvIc3Nv?= =?iso-8859-1?q?l9F9Lkgcu/9TGocTFC6GttUd2vM0n6/eizJ452I8sZj+5kfYeKaDehnaPId2?= =?iso-8859-1?q?bKFfOS1DCocGbNm96mbJQKFqBkoR8sg6pISrOc8raF+Kssi15QCsB2H9maD0?= =?iso-8859-1?q?2X9E=3D?= MIME-Version: 1.0 X-OriginatorOrg: csgroup.eu X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2980.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 4b73ff81-ffde-4df0-ee38-08d9d9a10da4 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Jan 2022 10:06:39.1191 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 9914def7-b676-4fda-8815-5d49fb3b45c8 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: RrNWxdVyAWKRWwMBMXNxxYbhJhL+7+gJ0n85np/REmjo/4RLSMHkGj+jnrcay0QfXLYWEz8TIkQ77fV5R4nbmwUPLHElgC2MKWdxTlMbS2w= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR0P264MB3625 X-BeenThere: linuxppc-dev@lists.ozlabs.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" Errors-To: linuxppc-dev-bounces+incoming=patchwork.ozlabs.org@lists.ozlabs.org Sender: "Linuxppc-dev" The book3s/32 MMU doesn't support per page execution protection and doesn't support RO protection for kernel pages. However, on the 603 which implements software loaded TLBs, execution protection is honored by the TLB Miss handler which doesn't load Instruction TLB for non executable pages. And RO protection is honored by clearing the C bit for RO pages, leading to DSI. So on the 603, STRICT_MODULE_RWX is possible without much effort. Don't disable STRICT_MODULE_RWX on book3s/32 and print a warning in case STRICT_MODULE_RWX has been selected and the platform has a Hardware HASH MMU. Signed-off-by: Christophe Leroy --- arch/powerpc/Kconfig | 2 +- arch/powerpc/mm/pgtable_32.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig index 0631c9241af3..cabd26b2c103 100644 --- a/arch/powerpc/Kconfig +++ b/arch/powerpc/Kconfig @@ -140,7 +140,7 @@ config PPC select ARCH_HAS_SET_MEMORY select ARCH_HAS_STRICT_KERNEL_RWX if (PPC_BOOK3S || PPC_8xx || 40x) && !HIBERNATION select ARCH_HAS_STRICT_KERNEL_RWX if FSL_BOOKE && !HIBERNATION && !RANDOMIZE_BASE - select ARCH_HAS_STRICT_MODULE_RWX if ARCH_HAS_STRICT_KERNEL_RWX && !PPC_BOOK3S_32 + select ARCH_HAS_STRICT_MODULE_RWX if ARCH_HAS_STRICT_KERNEL_RWX select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST select ARCH_HAS_UACCESS_FLUSHCACHE select ARCH_HAS_UBSAN_SANITIZE_ALL diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c index f71ededdc02a..a56ade39dc68 100644 --- a/arch/powerpc/mm/pgtable_32.c +++ b/arch/powerpc/mm/pgtable_32.c @@ -148,6 +148,9 @@ void mark_rodata_ro(void) { unsigned long numpages; + if (IS_ENABLED(CONFIG_STRICT_MODULE_RWX) && mmu_has_feature(MMU_FTR_HPTE_TABLE)) + pr_warn("This platform has HASH MMU, STRICT_MODULE_RWX won't work\n"); + if (v_block_mapped((unsigned long)_stext + 1)) { mmu_mark_rodata_ro(); ptdump_check_wx();