From patchwork Tue Feb 18 08:15:19 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: 13979238 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 C7B5AC021A9 for ; Tue, 18 Feb 2025 08:17:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5AF7D2800F1; Tue, 18 Feb 2025 03:17:13 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 55F4F2800EC; Tue, 18 Feb 2025 03:17:13 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D9652800F1; Tue, 18 Feb 2025 03:17:13 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 202DA2800EC for ; Tue, 18 Feb 2025 03:17:13 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id C85FC1C80A2 for ; Tue, 18 Feb 2025 08:17:12 +0000 (UTC) X-FDA: 83132360304.29.A6F2C89 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.16]) by imf14.hostedemail.com (Postfix) with ESMTP id 9EAC5100004 for ; Tue, 18 Feb 2025 08:17:10 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=jxwnY7hL; spf=pass (imf14.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=1739866630; 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=iCSpbFIW52Uw1IMNiH8VOklKBmF7UNSkwh0phBRHF78=; b=y+TWGjv/kv8RJ4eROkCwayBsfi+mf6Pm+5WtqUbQrtQU+Q5aWIWkGFw1LjLyFPISo2GC4j L7nLhLTsQ0CQfalOJSCasje6ABUkwmq5J5sIhqB4MNf2X7yGUo9UVbFfSBzSpWVhxYMc9b miAirq/DJPlyCXSwsUIOQg+OdlA11zE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=jxwnY7hL; spf=pass (imf14.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=1739866630; a=rsa-sha256; cv=none; b=o3G8I6dt51X2ns7yL1NxPxf85uXIIcDH5Q94Bk+t0MGS8kpg43rdR9ubifCaRy7hU+kebT A8C3+8mkIS2IMbIcExicCBKIxWB/JQFHqHuc+7gOwCrl0t2niLr8SfqxPpHwyGLrYxBN5I nVbUpUyYXHJbg989IRnMONeRBH2heQA= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1739866631; x=1771402631; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=bXO9RjmvEI/gGPfc1eFRDuxO1uk/Wq+sbi65zILen0w=; b=jxwnY7hLXuHxZPdupZWqAMiRDDrtq7PdETdOABTGS1zO3GywvTfeIVos F4wZpo4+hFxfmROOJsSP9E6Py0VivkO5VPyuclWbcYb/2vJvnpeTR00gZ NL4yq1qsYQcQMtyo7PPjSkMnbVg+yjXA4YqEflI4p0AwY/J8PIMKr79dy sqk5hPfsAMJxj6cmPz9NUN8co09z35vxyBGTpwaVz6eoI3pX0coW3h7mK ghpriLdgB58O2J6N90/33Rb9IgIyGbD2kak+gHfmd9+0kYTpGPLnaZFci Iz8VI55bM7SnVrxN+hlXWqNS3vy8K9ic4NMmKxKoIDMTXNH0bzf137ycF w==; X-CSE-ConnectionGUID: 90p9WNODTlqtkpa5tqzqSQ== X-CSE-MsgGUID: RvBQlWGZTOCgXwNj47jUug== X-IronPort-AV: E=McAfee;i="6700,10204,11348"; a="28150093" X-IronPort-AV: E=Sophos;i="6.13,295,1732608000"; d="scan'208";a="28150093" 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:17:09 -0800 X-CSE-ConnectionGUID: +HOO78zjQVWglPzSMQGDaA== X-CSE-MsgGUID: iC+fl3UpTo2a4V5pAf6vOA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,199,1725346800"; d="scan'208";a="119247460" 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:16:49 -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 03/14] kasan: sw_tags: Support outline stack tag generation Date: Tue, 18 Feb 2025 09:15:19 +0100 Message-ID: <20f64170c0b59cb5185cfe02c4bc833073a2ebe6.1739866028.git.maciej.wieczor-retman@intel.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 9EAC5100004 X-Stat-Signature: 8ebemgqcfobxqttfoa7jou5rf48whr3a X-HE-Tag: 1739866630-646500 X-HE-Meta: U2FsdGVkX1/+Clj9Viz5tax29fna9htRiPtDStnhX5cL6xXTDjdQsxhQopiH3I/dE067v6ZOUDgiHPg+qAZw9WSj2aQDRSbFd5jzNqXGCMhtXr4WS8p7ASb0TUWls/ww/UjH0JggY4A+7B9h0JJWGZBdJKmtCddoNeMwX2uDXMniiO/x1SLHDiFESdYFBh0EJ4dtj6As5DZ95P/99ac9hZaJ5eckykX0mmKQKKGKUA7xSrjVWGMS10wK8lRMHr2BAuk0tOeRu4Rxrdc5PK1PtUiUKctTh3w5QH7rLSQp0U1HqQw0ZFYTB/RjLukIREhR/NcSNUhgX/CWVT5yZGBJI1RiTNebCQeClYrn/VIFYVehW1x0eRCl5AXROVuZxktjY5+e98Ki8W1XEKvzJajc6dNRVCVraxe+4k/a8bOfen1KSgxW50qTlFBWs0ms3iEnEIH0NQCcDywVB7KbZM+RjPUiw0mu51hHMijnEQncV9rozDq45goTIJOLsfsqCmYJD8mVMTJhR//nEXSrDS4yWrWdCP0LvFJMLGxiRzur8WR7dzaTp9uPX406Cw6QeMeRNJi9Zl1AxGBL74z23RwkcglaOh7LvFdLoKg3x8sl99QvssfRqv7Xe8dSEuzIB5fmyleZrXHqDui1q2hzWmZIkjdtgdbyip06ymRGHd0eLAx6h4gFDEwAIlJYxol+9+Zkqm1Q1okZcDXjzGqdpnvMdLQNMCVTlfoUqX1ZV1ZvJVag7M3XsgpswAT46A2quGKhBW1hBfU/yWbBQKDMo+AYYbi9NbKq9IOYbwGwHeJteFNqbFVoyJIG5GozY9ITD64eYK/QQHX8BgXAU2PU43RVZFAE3tVXpZaYnuIlnJ6tyv577eq9rJLklcnrm7g3X3ozdwleamTDqE86oMgjuUKCP7w6AVy8p/2vL/vGQ65p9HA3ZbfOhgnzY14tdXi1MaQsftUacZvtQLxfLXSKziz 7ssz8E/L jcDBBjrFgPGLVdjticwz0jaAlCNkShKalllLzhYUNPb1K5TRgg0fpo9P2782Hgrmunw+UVIPI8CQ/Ft3HDyD9j9rGmzT2yMo6angVK/Pws2EIHmMeYQeyyRfsCufCeheF5KEP2MePec1pVb0PZPp1dvnKqDnkgQjoamugdu6a24ybbYNzC+LnjezFIHhG5Nkiup/ZHdqNO9gYC5mRkc4iGTwAAOZ8VD2rPrOVUEpYa8VZ9KoNQD2nHRl0DEhkTg9iHaQS4LNj+M1uc8ui875QdkAHaPUij4VylEEHxrsWuSYdmeMDvrGZfoyPw+ylfdK2w2nTerv+v9JUa9lXxuaxviU84wkcsHk8f+td5xvmPu6wgYYuBpCcYmAoPA== 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: From: Samuel Holland This allows stack tagging to be disabled at runtime by tagging all stack objects with the match-all tag. This is necessary on RISC-V, where a kernel with KASAN_SW_TAGS enabled is expected to boot on hardware without pointer masking support. Signed-off-by: Samuel Holland Reviewed-by: Andrey Konovalov Signed-off-by: Maciej Wieczor-Retman --- mm/kasan/kasan.h | 2 ++ mm/kasan/sw_tags.c | 9 +++++++++ 2 files changed, 11 insertions(+) diff --git a/mm/kasan/kasan.h b/mm/kasan/kasan.h index 129178be5e64..2fb26f74dff9 100644 --- a/mm/kasan/kasan.h +++ b/mm/kasan/kasan.h @@ -636,6 +636,8 @@ void *__asan_memset(void *addr, int c, ssize_t len); void *__asan_memmove(void *dest, const void *src, ssize_t len); void *__asan_memcpy(void *dest, const void *src, ssize_t len); +u8 __hwasan_generate_tag(void); + void __hwasan_load1_noabort(void *); void __hwasan_store1_noabort(void *); void __hwasan_load2_noabort(void *); diff --git a/mm/kasan/sw_tags.c b/mm/kasan/sw_tags.c index b9382b5b6a37..94465a8a3640 100644 --- a/mm/kasan/sw_tags.c +++ b/mm/kasan/sw_tags.c @@ -71,6 +71,15 @@ u8 kasan_random_tag(void) return (u8)(state % (KASAN_TAG_MAX + 1)); } +u8 __hwasan_generate_tag(void) +{ + if (!kasan_enabled()) + return KASAN_TAG_KERNEL; + + return kasan_random_tag(); +} +EXPORT_SYMBOL(__hwasan_generate_tag); + bool kasan_check_range(const void *addr, size_t size, bool write, unsigned long ret_ip) {