From patchwork Tue Sep 12 14:16:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ard Biesheuvel X-Patchwork-Id: 13381790 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 0BA2DCA0EEB for ; Tue, 12 Sep 2023 14:19:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:From:Subject:Message-ID: References:Mime-Version:In-Reply-To:Date:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=5rfyGfJQ4XMClbuc6u/xhg+YfYH78Snc95vAurAaEZ8=; b=brBp+txZn2GsKo93NzVDqq/k5k EfgvE+o47NUqTb09Z9mzrYxRCW/8QeI8Q0xe37WLjpYGuyQwYaE6aQMLRji5riuVrqY+xE8jdiYx4 jMOAdn+wpHZNK4jpuq2KqJTHSVrZJVPyxTCS+5dMoPkVsAExTVHyGRFfRjYjn1JACplF3/z5Uy3ob 1ZDoM8EHd0/Enot9R4oHC+Vmd3Gn94muuSBllj6zkiKF0sEL74/P4UginVMpwLLH0p5mIaES5+Qyd GYXu8r0DaTVQVGOVXZ+FyN+oq+6RDkt3qRubeQq8Alf+biaHsM9Qz1CPuMz6WLE3tH+/qaXDjPyea Kqw0DQLg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1qg4EP-003XDg-0H; Tue, 12 Sep 2023 14:19:09 +0000 Received: from mail-wr1-x44a.google.com ([2a00:1450:4864:20::44a]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qg4Di-003WcY-1k for linux-arm-kernel@lists.infradead.org; Tue, 12 Sep 2023 14:18:42 +0000 Received: by mail-wr1-x44a.google.com with SMTP id ffacd0b85a97d-31adc3ca07aso3770136f8f.2 for ; Tue, 12 Sep 2023 07:18:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1694528304; x=1695133104; darn=lists.infradead.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=7s7pai1xoVt13aBh9Ezg4YG1E//1US9GWQnzYNAW+dM=; b=TVV0+99OG21l2KRdPjccN1SZhips+fbML+O5YMB7aEtvju5MrC9sJhfZtvll+AVyGg s6jlb3ZtOVk2dG6pOSfc5aFsBm6JSc5eYjViAva4wvsX0LzEMoanbqH/aZ85oDQQ6LWl PKYKub370cFNp1ZQ4ZAIbEfc3fjb152NFwJF6KPapESnJPTgsnXY6Tj+ZfqY1v6beINr LWHcMi9U655mYOI5B20ABaIUpVO3WLhqOuG5omKUR2Q0dEXYWTRxNLrPWZ+X/Fg8GkrJ YG4GafNv6KAWPB0VJ41C2vVBmddWa3+kwhpTvNH2x5Lmg8ZrtTZX9EvF3kmpkvMISx5w Ep9Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1694528304; x=1695133104; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=7s7pai1xoVt13aBh9Ezg4YG1E//1US9GWQnzYNAW+dM=; b=FO94C8v+CVTkUTerhPsll+kUqC+O281PcIVD5PfzP1rQTbOMhWCFdFrfwxI6Ydnjvf 27suXmVJ/t5fSywCczMjtpBdxVb5k8P4l/P0PytdzqymLLF145usKUrW78b95/fuE+Yi V6qmnLuuxC3uw06FkZCvpSp1ULm4DAEwGLfVb0A1ZbMslknM6kH6qKmZOFNLdlL+M/5p phU4tAKGmhSCe8At0vqUv/NBvIgUO49KCZRXUrlzUJOOTucT/9mN3ns6V1z4tinLODLt T+5VWwQp13/AMHbamca7M6dOTmVFBQV9wnJzzO7t3und6OcwbiNfEHuDzUyFgz0dRXzQ 32UQ== X-Gm-Message-State: AOJu0YyZUU7WytrJ/8gCX9dac4YRXe1srDlFhs6E4g4iSRhcXVopFVJI iX98xQxiAex5RVEvVZEdS26YDntGiHjopiQJkx5x8M/ZfykMrNV7798rCgx9yeFgiIwopam87K1 exAhPgs7kCvc2c8AGUf1m2EhyVWEZ8O3Br4wEBkeiyCou2HU6+C8x3K5BoLW1xkbbIFD/KDanY5 Q= X-Google-Smtp-Source: AGHT+IHX6YS+oBegRZpG8nhOj/EiX4VDWma9+zjm6V5x43qT0laV9Z/nmIz9XuxECRjn4pkG66rCC6K2 X-Received: from palermo.c.googlers.com ([fda3:e722:ac3:cc00:28:9cb1:c0a8:118a]) (user=ardb job=sendgmr) by 2002:a05:6000:1005:b0:319:8430:f801 with SMTP id a5-20020a056000100500b003198430f801mr146297wrx.2.1694528303902; Tue, 12 Sep 2023 07:18:23 -0700 (PDT) Date: Tue, 12 Sep 2023 14:16:18 +0000 In-Reply-To: <20230912141549.278777-63-ardb@google.com> Mime-Version: 1.0 References: <20230912141549.278777-63-ardb@google.com> X-Developer-Key: i=ardb@kernel.org; a=openpgp; fpr=F43D03328115A198C90016883D200E9CA6329909 X-Developer-Signature: v=1; a=openpgp-sha256; l=1646; i=ardb@kernel.org; h=from:subject; bh=mQ9WTXexSe7RDVaszyU1z28xUH4JLiVjQ9a8QrnwVNk=; b=owGbwMvMwCFmkMcZplerG8N4Wi2JIZWhaLP0r1Sl8Og/Wxb49y2aKcp3/+4zkUszq7ecT3E5v nP7CcG6jlIWBjEOBlkxRRaB2X/f7Tw9UarWeZYszBxWJpAhDFycAjCRK6wM/8uafjGae0knuPxl XLrt0+k+nQe3XjyTWH2t3J/55o5Z064y/JVs1Kh0LJ60w+WXwe7bYQ1W3IdUuue05xvt6GQobQw 8ygwA X-Mailer: git-send-email 2.42.0.283.g2d96d420d3-goog Message-ID: <20230912141549.278777-91-ardb@google.com> Subject: [PATCH v4 28/61] arm64: idreg-override: Create a pseudo feature for rodata=off From: Ard Biesheuvel To: linux-arm-kernel@lists.infradead.org Cc: Ard Biesheuvel , Catalin Marinas , Will Deacon , Marc Zyngier , Mark Rutland , Ryan Roberts , Anshuman Khandual , Kees Cook , Joey Gouly X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230912_071826_627197_69BEB42D X-CRM114-Status: GOOD ( 14.20 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org From: Ard Biesheuvel Add rodata=off to the set of kernel command line options that is parsed early using the CPU feature override detection code, so we can easily refer to it when creating the kernel mapping. Signed-off-by: Ard Biesheuvel --- arch/arm64/include/asm/cpufeature.h | 1 + arch/arm64/kernel/pi/idreg-override.c | 2 ++ 2 files changed, 3 insertions(+) diff --git a/arch/arm64/include/asm/cpufeature.h b/arch/arm64/include/asm/cpufeature.h index 6c0e2cb710d0..54f3dbeb9e80 100644 --- a/arch/arm64/include/asm/cpufeature.h +++ b/arch/arm64/include/asm/cpufeature.h @@ -17,6 +17,7 @@ #define ARM64_SW_FEATURE_OVERRIDE_NOKASLR 0 #define ARM64_SW_FEATURE_OVERRIDE_HVHE 4 +#define ARM64_SW_FEATURE_OVERRIDE_RODATA_OFF 8 #ifndef __ASSEMBLY__ diff --git a/arch/arm64/kernel/pi/idreg-override.c b/arch/arm64/kernel/pi/idreg-override.c index 26961e0f94b7..1aa59c01ab33 100644 --- a/arch/arm64/kernel/pi/idreg-override.c +++ b/arch/arm64/kernel/pi/idreg-override.c @@ -163,6 +163,7 @@ static const struct ftr_set_desc sw_features __prel64_initconst = { .fields = { FIELD("nokaslr", ARM64_SW_FEATURE_OVERRIDE_NOKASLR, NULL), FIELD("hvhe", ARM64_SW_FEATURE_OVERRIDE_HVHE, hvhe_filter), + FIELD("rodataoff", ARM64_SW_FEATURE_OVERRIDE_RODATA_OFF, NULL), {} }, }; @@ -196,6 +197,7 @@ static const struct { { "arm64.nomops", "id_aa64isar2.mops=0" }, { "arm64.nomte", "id_aa64pfr1.mte=0" }, { "nokaslr", "arm64_sw.nokaslr=1" }, + { "rodata=off", "arm64_sw.rodataoff=1" }, }; static int __init parse_hexdigit(const char *p, u64 *v)