From mboxrd@z Thu Jan 1 00:00:00 1970 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 B59A4C021B0 for ; Wed, 19 Feb 2025 23:30:49 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 553BE440188; Wed, 19 Feb 2025 18:30:49 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5033D280276; Wed, 19 Feb 2025 18:30:49 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3F1A6440188; Wed, 19 Feb 2025 18:30:49 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 2162D280276 for ; Wed, 19 Feb 2025 18:30:49 -0500 (EST) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A3E36A0ECE for ; Wed, 19 Feb 2025 23:30:48 +0000 (UTC) X-FDA: 83138291376.22.5B37C40 Received: from mail-wr1-f42.google.com (mail-wr1-f42.google.com [209.85.221.42]) by imf15.hostedemail.com (Postfix) with ESMTP id A42DCA0008 for ; Wed, 19 Feb 2025 23:30:46 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VDw3Wfvq; spf=pass (imf15.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1740007846; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=iyvyq2lJRxuQLrIeQSGTnuwykD7l8YgAhKyJ7T0zXzs=; b=mfpKS8gvzDwWexskHbUHgQ1nm8rzE6ak0OeU3egthVsj45efdkWLlZLQNsLSSU3xAIGnqU fbuCzCXRwh7FYWu/7hsvChjqLPUpMhl+kXwU+CrwUh+2FS+M+RM/vsvjmzIVeM10L0i+Uv Xot5Lzdy9kUM93KKmc3s9l8MgqwqnTI= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=VDw3Wfvq; spf=pass (imf15.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.221.42 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1740007846; a=rsa-sha256; cv=none; b=NnC7OFq/v0V97PSuIicMHWdj2suLqo71fFYrmBPbnirgfB5DqCRSN3TlVyvBahtmuerQ4d bd4HPnLWlgmeIPQTBCgA0I0MEMqrD0jHDBAWG4+Wkj82k4X5r8O+S6tZpca/sWJ+LYqrkn TgSoA2KNVa/dOMOSA66c6mmbe3C7jGQ= Received: by mail-wr1-f42.google.com with SMTP id ffacd0b85a97d-38f26a82d1dso168806f8f.2 for ; Wed, 19 Feb 2025 15:30:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740007845; x=1740612645; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=iyvyq2lJRxuQLrIeQSGTnuwykD7l8YgAhKyJ7T0zXzs=; b=VDw3WfvqaejPtJw3zgnC/mHLv0iVK5ML5KTKyv8nuny1M1wNrMaxIkZ4gjwoxVqa0Y IY7LsNVn+k+drSfZL9lrlry2J4r5nCjJk8v1F+X7dQOdKfdlfUqqmT+dwGzxcUsh2WGq DrcSagGvmHLV4pDy24WRKbz/XggZJJ4fayUhWvvC1Y494fi/NZyrfM2acH832nmjxEEV scWGNPMLL8T+ZPFCVArmYxvehJHFXpz8KtH1qeLoh1mf1UuegjJhc59RJR4CwvfAtudw gYNgH59W0dKoxFvW/N8w3eqn6epsZgxWrs/ASuOpAPOBhmD4aGVITrtuBbuJ58Ne8MXG fKGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740007845; x=1740612645; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=iyvyq2lJRxuQLrIeQSGTnuwykD7l8YgAhKyJ7T0zXzs=; b=vTZoA6Rw4wCej73hRwlyQEc9WPOAvQq3/eMzln1MXmU/WWoJLWGxNO3RzyW7dEyI+T EpW4DSFT470NBLxaA70BUIeBMzMDV+4nSsYs++BOrl3oa19Gpp41PKUpJKqxKDYpclBD oCT9c+J2BdAy5Cdhv4JpLydnTZRZ7UxvNlxmy2I5QJTZAbt2+vRevZ0QL2VLcQLHbXbq o8L/cbI9sS2HeA6NOUsO3ljaawyInxnM6qIE+kVYqKqkCO7XM7SKcZQir7u+fIScrZf3 ir08d3sU5qrq9p8KZFeK+67PPyVOfCiN8P0ukoQEjI1n3icRTqCnGqDz+/Qz+3/4jPUU m23w== X-Forwarded-Encrypted: i=1; AJvYcCUSeWhAQI8dkallappdLi3SOyU5BdrBIvNe675ZNJUyrQNxeqjFro90ws1MpCCIkQ/sDnMwJL222A==@kvack.org X-Gm-Message-State: AOJu0YxbKwzToAMe7AqpLPSF0/OAjrSxkxGeVk6VQMC9tf3WPWAAycnE IMHX0XJEHih5Jg96lmRScPM4Ug7cGdVFWrHMMxQFMSxZr5oLAd+EOiwidaAeDe36uqLuT7YRLd/ LuimTA8744sqFGQrkCY5wvOY2ke8= X-Gm-Gg: ASbGnctZXBfSNRGlIdy2nGutmHJWonj0oFARv3loJRzeMqM+lPHIvFFsrzTLWzjP4pF +MgdvUryISNqWzOuwh7iO0XsuNb7HUexS+MDgghh5wcs6glWFJ1tQouNsJJHwEjM/gsAXIbnaTf I= X-Google-Smtp-Source: AGHT+IGseMQ09wMlftf0S31IcDCmvH/2XCIbgKJZ4vMRGW1oprX1xhCTfYNu+V/QxrTLfB/+OtK8LLpcPdlzuT7FUW8= X-Received: by 2002:a5d:64e6:0:b0:38d:e092:3ced with SMTP id ffacd0b85a97d-38f33f1193cmr15640895f8f.7.1740007845049; Wed, 19 Feb 2025 15:30:45 -0800 (PST) MIME-Version: 1.0 References: <7099fb189737db12ab5ace5794080458d7a14638.1739866028.git.maciej.wieczor-retman@intel.com> In-Reply-To: <7099fb189737db12ab5ace5794080458d7a14638.1739866028.git.maciej.wieczor-retman@intel.com> From: Andrey Konovalov Date: Thu, 20 Feb 2025 00:30:34 +0100 X-Gm-Features: AWEUYZn8UfE_qbgWwdI_ZYXhFInJYUvvOaq2gnq6N0Mq2Y5hHq0QKSqyoBFpmX4 Message-ID: Subject: Re: [PATCH v2 06/14] x86: Add arch specific kasan functions To: Maciej Wieczor-Retman Cc: 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, 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, 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, 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: A42DCA0008 X-Stat-Signature: rpqk6efimb96t9rdo77oy5ixso9q5rz9 X-Rspamd-Server: rspam03 X-HE-Tag: 1740007846-412819 X-HE-Meta: U2FsdGVkX1+exh9Q54r25M8d4pDjENldI1w3Z/R+b9AoZTow27VlGryiYxVrfjpWDUOG3nIOoSxSqELvgEo8xdcHxDNqejS55g7JJ8s/pTbBGVOpoXRg4i9Ntfy9qSab8F6T+Gg0se0HUgGKu3z9QuObDX55E4wYuwh+3sqi3hxux3xYXDY5ps/3ZFOPUSCB0dsyhlRYGcbKwZ84xFb+wajYH3gE+0SoLr0QM8lxrKmuFIWRONQN4yTPciOEx2QFd3OPTusJcLVuf1/UAYH78iCqlaChbguq0AgcuJE6pOMVQeuSKBnwDX3mLMeHlvYyB7sIMqZcLPPQhBxR9OZZzGxZLYGnTrQ0l0yBhVDJZT1Au/FkSstzJroPS5xxP+ox0BQ+VAQojbYofpwz2WImzbDSY3HL61bvA2Om62i/EkZKqqlwJ25PTRqHC7HnNmzrp/oPWGZkj6JhGvRZMhbp1OyJiC6fULXMRSzhOgc2qvQedMP+0+fgQBqo0tNsx1hMWQ0M+ZehKNoy3UdTIKk9cfoR1aHsU34mNikaOIGbk9+tI2ZBf/PGEOLxlugnY3LldG/R7pIK6JebFqJ3HmXLhg+d9RNBVqZXklBdWVBUDsG0Oov4kk+mBtIc/tc+jsMyzvqyTsKWXulbSaqJzMz7L3IiNog11LinZEFf/d/bU7RrqoTkoMMpNJvmOqkR6CcmcYtBTwHRdqjp/HiPkAG/Le7/rgF+YOUP6GcO3cnWUeeEo5hO/yBH6mlFrUh8kD1BwjYhRXGTfjFY3/1w4NguhU65taEh8lh9i6losizWq5B1LJ2WzL8jDq3vy81NpJQMqY9Zc/YsS/qb7BUuACNMobBKDP27OGon6ZIWPmmjikZndS9CVJiAkIYvVC/dqFIC2S2/YUwm2Ifv//z7k/NNl0Mthpjqkv6Er2Da0qk841SWXCtLJRYYiYOuhWMQ0CDEh/eYziwWpO+HoDHVfJ+ TxCCrpmk vODfaICr1ysx7tHP5Au36h8BPMi52pEMqd/9TuZBoV913HZGtxjU2DwxKGix9qWqYUzvDiloOJ06bXFPjll8CYhkmgXlVrxILaJz2r6+cyBL1ZyDbEciiE6y8Gfblr2LEZlLXP/0lwpUHl78FIpyt4iq48VazCpyRUj5Gfak6OcZ+acHkoFY28NwAdivW+kHMhcJdxdpS8WZ4UrU2X+seZTeEdRZPXrDqZrJz68XQ49rsTsxJryQjMQfsGxHT9StKPbHvh5p5OBgGhCeWPIs/HladAhk1/V3MSqdf9EnvEDFKkM3p0sjkyAC2JCwRAtBC8t+mNMHlAopMYroH/43WS3wMN2VFMvIpyOFFwV+U8CbuVoEtzkG7z5dsYslxCTnzXfAn4H1qxV7hwidGOyv40v3bYhq79OpDcWHbfN/RA5P90ueEXuhKamK5WbVgYclt8jjE 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: On Tue, Feb 18, 2025 at 9:18=E2=80=AFAM Maciej Wieczor-Retman wrote: > > KASAN's software tag-based mode needs multiple macros/functions to > handle tag and pointer interactions - mainly to set and retrieve tags > from the top bits of a pointer. > > Mimic functions currently used by arm64 but change the tag's position to > bits [60:57] in the pointer. > > Signed-off-by: Maciej Wieczor-Retman > --- > arch/x86/include/asm/kasan.h | 32 ++++++++++++++++++++++++++++++-- > 1 file changed, 30 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/include/asm/kasan.h b/arch/x86/include/asm/kasan.h > index de75306b932e..8829337a75fa 100644 > --- a/arch/x86/include/asm/kasan.h > +++ b/arch/x86/include/asm/kasan.h > @@ -3,6 +3,8 @@ > #define _ASM_X86_KASAN_H > > #include > +#include > +#include > #define KASAN_SHADOW_OFFSET _AC(CONFIG_KASAN_SHADOW_OFFSET, UL) > #define KASAN_SHADOW_SCALE_SHIFT 3 > > @@ -24,8 +26,33 @@ > KASAN_SHADOW_SCALE_SHIF= T))) > > #ifndef __ASSEMBLY__ > +#include > +#include > +#include > + > +#define arch_kasan_set_tag(addr, tag) __tag_set(addr, tag) But __tag_set is defined below. I think these need to be reordered. > +#define arch_kasan_reset_tag(addr) __tag_reset(addr) > +#define arch_kasan_get_tag(addr) __tag_get(addr) > + > +#ifdef CONFIG_KASAN_SW_TAGS > + > +#define __tag_shifted(tag) FIELD_PREP(GENMASK_ULL(60, 57), t= ag) > +#define __tag_reset(addr) (sign_extend64((u64)(addr), 56)) > +#define __tag_get(addr) ((u8)FIELD_GET(GENMASK_UL= L(60, 57), (u64)addr)) > +#else > +#define __tag_shifted(tag) 0UL > +#define __tag_reset(addr) (addr) > +#define __tag_get(addr) 0 > +#endif /* CONFIG_KASAN_SW_TAGS */ > > #ifdef CONFIG_KASAN > + > +static inline const void *__tag_set(const void *addr, u8 tag) A bit weird that __tag_set is defined under CONFIG_KASAN: CONFIG_KASAN_SW_TAGS (or no condition, like on arm64) would make more sense. > +{ > + u64 __addr =3D (u64)addr & ~__tag_shifted(KASAN_TAG_KERNEL); > + return (const void *)(__addr | __tag_shifted(tag)); > +} > + > void __init kasan_early_init(void); > void __init kasan_init(void); > void __init kasan_populate_shadow_for_vaddr(void *va, size_t size, int n= id); > @@ -34,8 +61,9 @@ static inline void kasan_early_init(void) { } > static inline void kasan_init(void) { } > static inline void kasan_populate_shadow_for_vaddr(void *va, size_t size= , > int nid) { } > -#endif > > -#endif > +#endif /* CONFIG_KASAN */ > + > +#endif /* __ASSEMBLY__ */ > > #endif > -- > 2.47.1 >