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 B4945C02198 for ; Mon, 10 Feb 2025 22:57:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F147280008; Mon, 10 Feb 2025 17:57:25 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 09FA8280005; Mon, 10 Feb 2025 17:57:25 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EAA2D280008; Mon, 10 Feb 2025 17:57:24 -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 CB61C280005 for ; Mon, 10 Feb 2025 17:57:24 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 7B26A1206F4 for ; Mon, 10 Feb 2025 22:57:24 +0000 (UTC) X-FDA: 83105548008.03.D5F009C Received: from mail-wm1-f54.google.com (mail-wm1-f54.google.com [209.85.128.54]) by imf03.hostedemail.com (Postfix) with ESMTP id 8D35220007 for ; Mon, 10 Feb 2025 22:57:22 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=E8dY48Qs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1739228242; a=rsa-sha256; cv=none; b=d976qw3/SThdvvsg/XTpd03xEXH1fVQ9ujE09Ig/V2ArP9fIwTIZ6xkZZLt7Iu0SpXFu2U b34RDDxFuhYphItjr84ld0jmQyUolm104ZsatIRsWV28qR4Nnr0iiFBnkzTJ6A8rdaQdDc Q3ake0Hd/+j8D5WkYC3z8o4unZ0Bnn4= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=E8dY48Qs; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of andreyknvl@gmail.com designates 209.85.128.54 as permitted sender) smtp.mailfrom=andreyknvl@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1739228242; 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=RNWayjBWWd58FYF2aoHGNPi8TO+bWh90xjxqLfz1DXo=; b=qcevTo+EvJrljFbJ57Vf5KkEHrfLX4DlN1KleAf9HCtyTEK7hQZDYp1mt5OIgLq0l6yB2Y 0u0Mw7ZZnE6hCryiNudoUoc9/iMb5bunlbfhyNZFV/jHBMCRWUyDzDEhGNcW6LqGZ390UR jCasDv1FKKyG7L41u+aQloyxiqodJkk= Received: by mail-wm1-f54.google.com with SMTP id 5b1f17b1804b1-43932b9b09aso26186575e9.3 for ; Mon, 10 Feb 2025 14:57:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1739228241; x=1739833041; 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=RNWayjBWWd58FYF2aoHGNPi8TO+bWh90xjxqLfz1DXo=; b=E8dY48Qs8e2+bpwY60akbr1n+epNrEoDwyEFB1N/hQhvGUzMPpyU5VNvGPZXpV+znr AEx6B204Mwb12TOXoELGvAEw0CmnoyhJG9QliR8p7mWzIu+FvGngrhDCtCmX2Z/vXIq0 UssYal8c7NCxEkV9JmtD55oCQFAv0dhYPQfDfa6wgRQIA3AQng+xvnSIjlyZ4e/BEwft Czx7xQU9JfZOv10Zr87SiL6wtGsXx233/+O7TQwQ+gQDmLjrnQA3lvYmTQ6kY3KEz7cv 9NjAHHNX6NwgeJ1mmIHq/6qbzqSFIvbkCZn5L7lJI2b6MoYaQUQQwgx2VB9pV7ZeYi7S zt/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1739228241; x=1739833041; 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=RNWayjBWWd58FYF2aoHGNPi8TO+bWh90xjxqLfz1DXo=; b=GPeLnysi1sACeCe5gw5amQ1cVSD1ws2WN3ScYn8MDqPjwHfiPiv/CBd/TMyNHgoOIU tSrugNhsX3RjEdPnfxq8Ot25bBN/Nk4HjiUiaW1U/4jKc8ENvMqpnuWBlnVzJGd2mexE Lobqyuw3Q1XBgA6K7EplrNqNVhRt/onPeJj3uHcEgvPw8hl9AoFMWQc5y3tKy4evNoDf O9+9IwAWvZ4Py2XDEukDYhdRcRKyjdWHul55TayWQ3t8iaesLTOfrpYFOME2HCrQjv6S 2pGSVx1uPGh0AVWHuJUYmDtNqOd+QgC0YKSTNzWBRGT9NU2XSb1Tr83Bb+KYNznSZ3c+ 9Oew== X-Forwarded-Encrypted: i=1; AJvYcCWHrjTbtCsvveug8gdJ1k1nOMf7GyKtLyF17ZVNti+Ud1TObngtz6wfrBit98PB8YOgwoCZcF6vYQ==@kvack.org X-Gm-Message-State: AOJu0YxdisPMjmI5x+7RfvgbMqLBiZ0TYkg1hC1vX/F7ZCbBIiFw4uDI 18wVJA2VvTIc0D4TVaoX9r6lyulqTuGwYBrNkRz6RJj+WkzthwtdVuslW4fyKLzRBApwjNwwQej Ze9JwmmP7Q8Eiuyz/Rs8OuRx3SZA= X-Gm-Gg: ASbGncvuroPVUDcDLHUsyjs8h6P1Wf/eoqQO34GluAfyBmVvsjY1KZ2iU2myCk5L6YQ 7xDvPGG9Eo+IencZvQzDMd47PA5RLBAtLtAMqhzx2SdG3x7Je+8+a22IYyzkT/0eJA3sw3hFq8Q == X-Google-Smtp-Source: AGHT+IEyUgh5hlQMy0mHMpjDyPnw+ddSs3VVjhhzfY77llj/hDQfGTz8SApwdafm8zv7xWDMgUXawi4NTtMIohvXxFk= X-Received: by 2002:a05:600c:83ca:b0:434:f4fa:83c4 with SMTP id 5b1f17b1804b1-439249bcfc5mr154560525e9.29.1739228240742; Mon, 10 Feb 2025 14:57:20 -0800 (PST) MIME-Version: 1.0 References: <20241022015913.3524425-1-samuel.holland@sifive.com> <20241022015913.3524425-2-samuel.holland@sifive.com> In-Reply-To: From: Andrey Konovalov Date: Mon, 10 Feb 2025 23:57:10 +0100 X-Gm-Features: AWEUYZn_arFHbmdvgRzow88RfNbJeiY3tjTfw66TROSp7YjMhPMT9KN4C9hXEgM Message-ID: Subject: Re: [PATCH v2 1/9] kasan: sw_tags: Use arithmetic shift for shadow computation To: Maciej Wieczor-Retman Cc: Samuel Holland , Palmer Dabbelt , linux-riscv@lists.infradead.org, Andrey Ryabinin , Alexander Potapenko , Dmitry Vyukov , Vincenzo Frascino , kasan-dev@googlegroups.com, llvm@lists.linux.dev, Catalin Marinas , linux-kernel@vger.kernel.org, linux-mm@kvack.org, Alexandre Ghiti , Will Deacon , Evgenii Stepanov , Andrew Morton , linux-arm-kernel@lists.infradead.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Rspamd-Queue-Id: 8D35220007 X-Rspamd-Server: rspam12 X-Stat-Signature: 84ernh4x39xdqfapnzx6t8oti4ucsa1p X-HE-Tag: 1739228242-743759 X-HE-Meta: U2FsdGVkX1+uGAEMRhhjgS//eU6pvzTyA3m2HOVUjxCgKGAT8NI5H/3j5IN1bU7fEtJc++3S7xHTA+J5W6lxwb2acwId5HqgxJ4NmvobJVIBO1T3OrjcXDC332y15r42q5HUwRHUIVeDAemH+N/foxGqg9484GEK5JIf4xaJTTwr20uU/VdqhAf/enLIPubMrdGEtkTw9leTAugpOwBsMqQLd3+EqLeRnKN4nYZerCy9hJets9NmjOqpsaOsXQpEd4APLorONICXLRtgBaQu3ZxG7oSUH9AqfzqpF+46pzBoAb9qg64ViCG8em7SwMNthQqtbgDxOZPLUxmgvaQwT4vNu0mySIVpxpDGdE/vSBOARY+mWMZZevyN0hc/8TWLbgMDV3tlQx8l4AhFxQUyKt49bPCpIUkFhJJpsPlkJiEOp01AeCIFTiAkyJAh+ONV4Vl6g5vBxN6Lbh5gQrYVox/M18hpK24+5BNwDmTsBmrgZDXZ9hFGY6f1hFQ7WURiQ8kvKV5keP4FNaMF3nPsGzv1kTmzLYyFmPEHIOunQA4iFW9mwYIigERUi1pA1QTDzvrxPOM7uM3cxQqfjj7wJkJvJ1l/x18iv63uAu1cpCLJRYNKJytA2HvmZzxSJ2Df+9i2ERh0avuxIdGZBrtliLJVPqmkNuVr3zhY6It5BguHGpPoqgPYFmpEEb5MN9RxVgjWGNTPkgUqFuluYOpfRA3e/In/ayN7mNa/qxcTV9odxIhdO3BuqCWuSxcDNyeZR7M2fkQk3mVjM3C/VQe1y1mgz7hgXXhpfEoBvyddp7M6/yZa7RLjLoWze2xHQvUcBEu3jwRldD0GewttNnvXlXm2d7jFYkE7tvJT0asiUo4+m8Lsj8Q1x5kU1FnhYMp/iOpkhXKhUoWIxCBgnpgLsJ8zPG9QmV56V89Ke90dBeNsAuzGQxLuaHpD7MQmG3BSa7BEj1boZ6e/p6cmwcN XG7YwMdr xUdQ2DeEBT07MmHgpb2eHmleeQo7v183QT9ZWQq7tK4lzPBdU+tnUs1uXEREWg9Fb8auavxXItJnmvPtw1z9A+Mg4if1cuE5KOYFy+lmlOX/nf+m+vCXCfCMrMbHruL2z1pBh7S0GwaSYVR2pKXxslHw4XX59qxS6eV05PEQ6GvGMeG1xPBBrRxOOqbT1RF3FrfWN4aOkV/cXxAh4RVJoQo43mI/YOF8XebKfXF/63CJlxCuSCHiJLntKA03j2GP602vveIt4xufMcPbFp3X3EaZoO043Gkh+StM3obZuGrrwQuF7mv2WV15CvfaKPIktZOx8PD26Ode2CzeIe9IJLMvS7XRDWzRev5eHRg4mBq1MJOgEZJw+BmcKSruoaPftsvFD71C7zg+663dXqe7F5hJ5QQnNKq1NopCIgi8e5BcUyhOls/VxpZsS3lshFNJpb+baUdg9vOpXVO4exsGleR43QKSsp49mgpwg6/8pfHY4yyj4lfQgrzmtFjThyjURRVd211OGIhAxQIg= X-Bogosity: Ham, tests=bogofilter, spamicity=0.003252, 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 Mon, Feb 10, 2025 at 4:53=E2=80=AFPM Maciej Wieczor-Retman wrote: > > On 2025-02-10 at 16:22:41 +0100, Maciej Wieczor-Retman wrote: > >On 2024-10-23 at 20:41:57 +0200, Andrey Konovalov wrote: > >>On Tue, Oct 22, 2024 at 3:59=E2=80=AFAM Samuel Holland > >> wrote: > >... > >>> + * Software Tag-Based KASAN, the displacement is signed, so > >>> + * KASAN_SHADOW_OFFSET is the center of the range. > >>> */ > >>> - if (addr < KASAN_SHADOW_OFFSET) > >>> - return; > >>> + if (IS_ENABLED(CONFIG_KASAN_GENERIC)) { > >>> + if (addr < KASAN_SHADOW_OFFSET || > >>> + addr >=3D KASAN_SHADOW_OFFSET + max_shadow_size) > >>> + return; > >>> + } else { > >>> + if (addr < KASAN_SHADOW_OFFSET - max_shadow_size / 2 = || > >>> + addr >=3D KASAN_SHADOW_OFFSET + max_shadow_size /= 2) > >>> + return; > >> > >>Hm, I might be wrong, but I think this check does not work. > >> > >>Let's say we have non-canonical address 0x4242424242424242 and number > >>of VA bits is 48. > >> > >>Then: > >> > >>KASAN_SHADOW_OFFSET =3D=3D 0xffff800000000000 > >>kasan_mem_to_shadow(0x4242424242424242) =3D=3D 0x0423a42424242424 > >>max_shadow_size =3D=3D 0x1000000000000000 > >>KASAN_SHADOW_OFFSET - max_shadow_size / 2 =3D=3D 0xf7ff800000000000 > >>KASAN_SHADOW_OFFSET + max_shadow_size / 2 =3D=3D 0x07ff800000000000 (ov= erflows) > >> > >>0x0423a42424242424 is < than 0xf7ff800000000000, so the function will > >>wrongly return. > > > >As I understand this check aims to figure out if the address landed in s= hadow > >space and if it didn't we can return. > > > >Can't this above snippet be a simple: > > > > if (!addr_in_shadow(addr)) > > return; > > > >? > > Sorry, I think this wouldn't work. The tag also needs to be reset. Does t= his > perhaps work for this problem? > > if (!addr_in_shadow(kasan_reset_tag((void *)addr))) > return; This wouldn't work as well. addr_in_shadow() checks whether an address belongs to the proper shadow memory area. That area is the result of the memory-to-shadow mapping applied to the range of proper kernel addresses. However, what we want to check in this function is whether the given address can be the result of the memory-to-shadow mapping for some memory address, including userspace addresses, non-canonical addresses, etc. So essentially we need to check whether the given address belongs to the area that is the result of the memory-to-shadow mapping applied to the whole address space, not only to proper kernel addresses.