From patchwork Tue Feb 18 08:15:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Maciej Wieczor-Retman X-Patchwork-Id: 13979250 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6A3A0C02198 for ; Tue, 18 Feb 2025 08:20:50 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F28EE2800FB; Tue, 18 Feb 2025 03:20:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id ED80F2800F9; Tue, 18 Feb 2025 03:20:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D51B12800FB; Tue, 18 Feb 2025 03:20:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id B6BCE2800F9 for ; Tue, 18 Feb 2025 03:20:49 -0500 (EST) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 60F6A43D74 for ; Tue, 18 Feb 2025 08:20:49 +0000 (UTC) X-FDA: 83132369418.12.0760CEA Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by imf06.hostedemail.com (Postfix) with ESMTP id 22A1318000B for ; Tue, 18 Feb 2025 08:20:46 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=eRkaE6I5; spf=pass (imf06.hostedemail.com: domain of maciej.wieczor-retman@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=maciej.wieczor-retman@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739866847; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=y+2vJ5V8fj0QHnrVr72+4J/GflVUeiKjoW1Qh/HQtpE=; b=npvo6hphKnyazktR9n1Na48dQIKczZOhRWlTSrkSjqdv9Wm83ZGamlnWn52ltPXjcw9081 CJ28NAmAo7fD5c6fLNSecYRdGiHaZhLklRjJlYJ9LhnBd5RZYPJfqFCI4Yctfx0V4VIROn NPMyZ46aQBGX5zCAPi3TllDo635VzDc= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=eRkaE6I5; spf=pass (imf06.hostedemail.com: domain of maciej.wieczor-retman@intel.com designates 192.198.163.16 as permitted sender) smtp.mailfrom=maciej.wieczor-retman@intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739866847; a=rsa-sha256; cv=none; b=C4MbZIz47+CzsYPqhTi2o56a6aP4zsmUg1AOeSvtvH0Ee00dpEucum1NU7nEPj+LI2VWGl ggCLNEqe6U+05V/d0dH8PIhVoGqHpSQpuKNl/rf6EpwhdpPiJdftaiAgbvYfGcdpj4ILOQ AFUhHLm6P02ZWRmgmMlviLBw0xo1P3Q= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1739866847; x=1771402847; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=AlEyxh75+r5QiPqcPtjpo+/HVa79C4HAQUROM4qi8Mc=; b=eRkaE6I5/2OliVANuvq01HFglALM2FhrNQ293lcR7gJ4NbSeLzVEhuMn 82aKqjn8ZsNt+uLQnW29ziafBkiXDTK//a3VgDYPvzxqMPMby8Jo7Q9oT DAqmXGuiJDzR9EaWwhQI2QJpQsL2vZkxAqZ/92Ki4pIALqyBy5zO7Gbmh HT0gBBsNAR+spUYqkvIcRabM2y7jeUPeF+94FhG0+hH6P0mCOmeuAex9q PNF+eXZ1SnsWxxsiFjhz2X4XE7b349ziiYdNAMxSdrm1zOhh0rcZwKRpM 6i/xMSNPS+jggGZbU9+w36XSvc3Idw75nDp/oFHFR+y7X1afUJz7fQVV5 g==; X-CSE-ConnectionGUID: oQEUNx69RFOxhD7f2UhhrQ== X-CSE-MsgGUID: 3bdk6uM0Qu+yLyJsquv3nQ== X-IronPort-AV: E=McAfee;i="6700,10204,11348"; a="28150611" X-IronPort-AV: E=Sophos;i="6.13,295,1732608000"; d="scan'208";a="28150611" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa110.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2025 00:20:46 -0800 X-CSE-ConnectionGUID: WmLxTe3CRhiKO8fnH2NB1g== X-CSE-MsgGUID: lzXfGprHTkiUTI4Yyjdk7g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="119248085" Received: from ijarvine-mobl1.ger.corp.intel.com (HELO wieczorr-mobl1.intel.com) ([10.245.245.49]) by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Feb 2025 00:20:25 -0800 From: Maciej Wieczor-Retman To: kees@kernel.org, julian.stecklina@cyberus-technology.de, kevinloughlin@google.com, peterz@infradead.org, tglx@linutronix.de, justinstitt@google.com, catalin.marinas@arm.com, wangkefeng.wang@huawei.com, bhe@redhat.com, ryabinin.a.a@gmail.com, kirill.shutemov@linux.intel.com, will@kernel.org, ardb@kernel.org, jason.andryuk@amd.com, dave.hansen@linux.intel.com, pasha.tatashin@soleen.com, ndesaulniers@google.com, guoweikang.kernel@gmail.com, dwmw@amazon.co.uk, mark.rutland@arm.com, broonie@kernel.org, apopple@nvidia.com, bp@alien8.de, rppt@kernel.org, kaleshsingh@google.com, richard.weiyang@gmail.com, luto@kernel.org, glider@google.com, pankaj.gupta@amd.com, andreyknvl@gmail.com, pawan.kumar.gupta@linux.intel.com, kuan-ying.lee@canonical.com, tony.luck@intel.com, tj@kernel.org, jgross@suse.com, dvyukov@google.com, baohua@kernel.org, samuel.holland@sifive.com, dennis@kernel.org, akpm@linux-foundation.org, thomas.weissschuh@linutronix.de, surenb@google.com, kbingham@kernel.org, ankita@nvidia.com, nathan@kernel.org, maciej.wieczor-retman@intel.com, ziy@nvidia.com, xin@zytor.com, rafael.j.wysocki@intel.com, andriy.shevchenko@linux.intel.com, cl@linux.com, jhubbard@nvidia.com, hpa@zytor.com, scott@os.amperecomputing.com, david@redhat.com, jan.kiszka@siemens.com, vincenzo.frascino@arm.com, corbet@lwn.net, maz@kernel.org, mingo@redhat.com, arnd@arndb.de, ytcoode@gmail.com, xur@google.com, morbo@google.com, thiago.bauermann@linaro.org Cc: linux-doc@vger.kernel.org, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, linux-mm@kvack.org, linux-arm-kernel@lists.infradead.org, x86@kernel.org Subject: [PATCH v2 14/14] x86: Make software tag-based kasan available Date: Tue, 18 Feb 2025 09:15:30 +0100 Message-ID: X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 22A1318000B X-Stat-Signature: 53ir7e1zapxzzgxkktgue5x8axupew1s X-HE-Tag: 1739866846-587787 X-HE-Meta: U2FsdGVkX19oRR92xAi7OO49P/xGh9sx2Wh8QBwXAV4kIDoq7+wHAop8xen5hET1G1Jc4YnL9zQhDCU0h8MDJWv5vBCI5Rc0QMq2/xTQr0rPr4RnlOtfQVmsXWhe7KDMhNml5+tDysak/3+X3eg9wbA/tam2fxwJ2dZnKe9x9aYVHUa7emMZtQJiuqZjNUlsJHICbTq+RHXbPfLVvXyJNTbs18X8FAesRgmpB1XByBEadbUq5YmTjAuDBrGIG3Wh06dGgtNTvKc+V10zsZgg4M/jMnf4NEvgg3gI1TyYTHUn5N7gyPBLBiJEVXq/cQWmm4M7Dn71YJMmML4a6FqWIOvWc+EN1G+oDHRlbDAlD+UHbWHtq2CRFDfOPe5eVohqYLt1EkjU818nUGdS8joiPjY8ywwcKo8qhyWo/fhEmxXr4gXk+iJkF2006z7K6eX4msymZxLUguPK2ojjcQLMMSoWZniZd0ySl9hdsi6oPq6z7cgxp0m8vuNOrEI1199mFdBNGT4bUBPanE8w2kib+QrKlDhe2QHiBkeuAudGyLDZxveG38hFx1C6PNKAfvicwMGo0ZB4CexmJfrkiuqQgOSYGKiyXj8/WZW+1e2ByqWN24gAvhwu6AEl0AygUQ64dcR4UgladOJbRTdgZbo+At7v4cCwwsTwMs0M2qySkbi/07eENsQcokGHlPMCHX/mFaPqf9gGslEEIZrakBpx79i5lY2EOnZxYy4A5saF/2IkQaamndtxQHAMTn2336XmNAoglLCsdUYdoL9EuKDCw4mewXpTD8qWD58XewJ/hcFScy6NwWDOIecIu6Y62adgbIZVuxlFs9aRcYfi8ZK4yVGxF7hIt348JicTkLulww5lzvo4jGr1+hj545yeKT0wqgZNi5KkxOwwmiXYz2aMTkELgAgr9or0kVhv2rYuhvn2AWWGARDoxrOgktVG8q6J3ColmuOq9hY5jxcSj0N duBW8Tfm Ah/3/yYP+w1P3HuM64Tq1qebeA+aMRVDQ/PVZYw8Hla1s8CC/NSfKNwMmAwxE0Xxoc+5o3gjJ5kBPA+rxOTv9ctR3+7TdwYxxM4ygZgpmDWkUPuOubClhvgxuwthsNhsh4L8gQXY3bjTkVpTHtz5+jB08bnnm7Xt36jMsGqr0537pHpvUuEBonUnupjh4kEJW9Y1kbdrEqoq0/BFFvrEi85O3hNfg5/mrTtS52OQTtxxyW3RUQNita6L7Sg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: Make CONFIG_KASAN_SW_TAGS available for x86 machines if they have ADDRESS_MASKING enabled (LAM) as that works similarly to Top-Byte Ignore (TBI) that allows the software tag-based mode on arm64 platform. Set scale macro based on KASAN mode: in software tag-based mode 32 bytes of memory map to one shadow byte and 16 in generic mode. Signed-off-by: Maciej Wieczor-Retman --- Changelog v2: - Remove KASAN dense code. arch/x86/Kconfig | 6 ++++++ arch/x86/boot/compressed/misc.h | 1 + arch/x86/include/asm/kasan.h | 2 +- arch/x86/kernel/setup.c | 2 ++ 4 files changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index f4ef64bf824a..dc48eb5b664f 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -195,6 +195,7 @@ config X86 select HAVE_ARCH_JUMP_LABEL_RELATIVE select HAVE_ARCH_KASAN if X86_64 select HAVE_ARCH_KASAN_VMALLOC if X86_64 + select HAVE_ARCH_KASAN_SW_TAGS if ADDRESS_MASKING select HAVE_ARCH_KFENCE select HAVE_ARCH_KMSAN if X86_64 select HAVE_ARCH_KGDB @@ -402,6 +403,11 @@ config KASAN_SHADOW_OFFSET hex default 0xdffffc0000000000 if KASAN_GENERIC +config KASAN_SHADOW_SCALE_SHIFT + int + default 4 if KASAN_SW_TAGS + default 3 + config HAVE_INTEL_TXT def_bool y depends on INTEL_IOMMU && ACPI diff --git a/arch/x86/boot/compressed/misc.h b/arch/x86/boot/compressed/misc.h index dd8d1a85f671..f6a87e9ad200 100644 --- a/arch/x86/boot/compressed/misc.h +++ b/arch/x86/boot/compressed/misc.h @@ -13,6 +13,7 @@ #undef CONFIG_PARAVIRT_SPINLOCKS #undef CONFIG_KASAN #undef CONFIG_KASAN_GENERIC +#undef CONFIG_KASAN_SW_TAGS #define __NO_FORTIFY diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h index 4bfd3641af84..cfc31e4a2f70 100644 --- a/arch/x86/include/asm/kasan.h +++ b/arch/x86/include/asm/kasan.h @@ -6,7 +6,7 @@ #include #include -#define KASAN_SHADOW_SCALE_SHIFT 3 +#define KASAN_SHADOW_SCALE_SHIFT CONFIG_KASAN_SHADOW_SCALE_SHIFT /* * Compiler uses shadow offset assuming that addresses start diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c index cebee310e200..768990c573ea 100644 --- a/arch/x86/kernel/setup.c +++ b/arch/x86/kernel/setup.c @@ -1124,6 +1124,8 @@ void __init setup_arch(char **cmdline_p) kasan_init(); + kasan_init_sw_tags(); + /* * Sync back kernel address range. *