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 5B912C77B6E for ; Mon, 3 Apr 2023 14:46:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D83DE900004; Mon, 3 Apr 2023 10:46:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D0D16900003; Mon, 3 Apr 2023 10:46:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B87EE900004; Mon, 3 Apr 2023 10:46:34 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id A2FC0900003 for ; Mon, 3 Apr 2023 10:46:34 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 6E1A3ABF8B for ; Mon, 3 Apr 2023 14:46:34 +0000 (UTC) X-FDA: 80640355908.29.7D008DA Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf18.hostedemail.com (Postfix) with ESMTP id 9A4881C001C for ; Mon, 3 Apr 2023 14:46:32 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=qkquT762; spf=pass (imf18.hostedemail.com: domain of dvyukov@google.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=dvyukov@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680533192; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=+0Is/5kUiz89V8Gf8TcMES1IfV2tlSCSl8CHRGwQyg8=; b=AFquCCZNM1+g9yFA7HakkAS8CkheNPh6Fkk9PpcqHctzVPPPb8FK3AXxuW+0oBfmvrVfiM 4vlBPx0sKepz/LM8EnNFbiOwMpuCpHAwe10kyDpcBc30D0LIbE/eWjhRN04OmeeyokanGn M3Jmr1HOIz4lTQjAPRB2u+iwml7uB1E= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=qkquT762; spf=pass (imf18.hostedemail.com: domain of dvyukov@google.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=dvyukov@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680533192; a=rsa-sha256; cv=none; b=C8NHib1C6L7W/eiICq8K9nykEucefRBxM3bKOLnmPosDp9sU/6GVFJ0xPDfSRX9f3Bn/Og zpaHj9h1VKV60rWQia7dIrz9qas2m/ne6gtqG29wrp7tYBy4pYsPUgbw1A5wVu0PMBMZNm DQpW3rjFc3ypEIEIQinv8pXG3T0d1CM= Received: by mail-lf1-f52.google.com with SMTP id g17so38417756lfv.4 for ; Mon, 03 Apr 2023 07:46:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680533190; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=+0Is/5kUiz89V8Gf8TcMES1IfV2tlSCSl8CHRGwQyg8=; b=qkquT762YNUWctaKrmxGMiZPhyAN60ukJofAYr6gO92rEkvDQ6Hmk+0/ttUJ/v5o4B mXaKA0/9+8wtNx2/9VhAhfB/dogsedaNQlqIWBpsHIQVeCBQG0lpO6aG09tH8KZGiqmq +rgygjuG8uw6iD3Pf81J+o29gU3EGOk9DuocB1mwF3xo9hEmS+5M0D30PA0+fxHMnTN/ tg0YQmiwSTe543/D6MNaSFa95bKc41cQfUkpbErcl1h7Ts2RWHfDrK8J6VG0pgDsNeXm rjHTn5+0Mv1j2s7dvPX0w3u2TuMr5LfaDX7kf6AR5/etzmXzjpj/efnrVQb8rFrA3hWl cmxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680533190; h=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=+0Is/5kUiz89V8Gf8TcMES1IfV2tlSCSl8CHRGwQyg8=; b=NWbQvcTRih824aTkdVng7uEFhWPXI5XQDEPwfSfxqPvuJkoxhStufGQ/j1EvW/0+Bs BRMnXiEnOnwwY39Id6tE2PU4Z/NT81nUqSBHsy5lCV7mpfu7VC3gJB5p6H4QMskMkzG3 WmRMwbbF3PH5BjL/0PJPJ9xVI3RWEuhWv8meehIB2eKI1yKpkgnsBQJCBid0L5sGZ5Iu 03sA2DnRt6Kc9swXrfPFSK6qQmCjgqTuwhXybT8Z1FP4CzB8bdVyB7/8rXVBAo13hoIx FgmSo1j+KCmxnIE9A6e6SX/wKKcXyLPDH8qOGdRCi3GvkSFM/CcHnXK6lOzKMOBMICoz 89rg== X-Gm-Message-State: AAQBX9cuf0ebvWgaUind7At6Ci2OeSG7EygovWnWuiWrK78f4mpbl+8M QwwRWt4JrKipRFtdNoFe/bFHhDvhY6k9TGYX/CT69Q== X-Google-Smtp-Source: AKy350bSnPbpTlbAAvYcUmy4R3hDL0x8lXGAvTZEJHWaFCgLjWFcMb6Y89j6TauNU7RLIDG5XKlA23YDTz184TJyw1Q= X-Received: by 2002:ac2:485b:0:b0:4d5:ca32:6ed8 with SMTP id 27-20020ac2485b000000b004d5ca326ed8mr5673856lfy.6.1680533190490; Mon, 03 Apr 2023 07:46:30 -0700 (PDT) MIME-Version: 1.0 References: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> <20230403111020.3136-3-kirill.shutemov@linux.intel.com> <20230403143105.rj4l5tqn43t3zcnh@box.shutemov.name> In-Reply-To: <20230403143105.rj4l5tqn43t3zcnh@box.shutemov.name> From: Dmitry Vyukov Date: Mon, 3 Apr 2023 16:46:18 +0200 Message-ID: Subject: Re: [PATCH 2/2] x86/mm/iommu/sva: Do not allow to set FORCE_TAGGED_SVA bit from outside To: "Kirill A. Shutemov" Cc: "Kirill A. Shutemov" , Dave Hansen , Andy Lutomirski , Peter Zijlstra , x86@kernel.org, Kostya Serebryany , Andrey Ryabinin , Andrey Konovalov , Alexander Potapenko , Taras Madan , "H . J . Lu" , Andi Kleen , Rick Edgecombe , Bharata B Rao , Jacob Pan , Ashok Raj , Linus Torvalds , linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9A4881C001C X-Stat-Signature: abdg7phqeqhsding7iwmudrzrqgy3zch X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1680533192-907173 X-HE-Meta: U2FsdGVkX1/iFWiZDjXmlH22ei5cl1dMn/yNC9ypTqIKSJAqsw1pXt4HPQydeWKmI02w8VGJo9dKI9/ThD8oXVYn83wb6iE82MFbZpTQBtM3IOKojeHQ4iIjYzCYaEybWDHJad6b6QqhP9F0cZGZficHf+Ge9fCr6tx7v/9C2qjgPcBaNA87U2k0UNwcw1mmAp1b53V9VKjBZgruOCcf7SWrRySqmnxUNqcIPaSf4Xrs5eMRs66gwv8Nj3V0gR3XexGhNEknad2FB611QvEDOuddPJpmMXS+v0mks2kXu5BD70zC1Sy846X+bsIl7FICIVAIH63bfNVYA5ABG/UsaE1FP1B6xyg+cWPXhsFuBUi3b8urEPgVurV/Uwt4VE0QhNM26HiQA+S0CAFNLlDUnlQ50yBWjEzipGvDO2qRrLSNgT0/6DKSHBhCvKxe4wwyCzV6VU3IhtYqUfu24Oy6A7llgfCCan8PgOZCcza/WlIMbK4ooJbzwrprhpPRyo5hxN/TTHwlOjj7ninYacSXgWPIls7tQsihFY9NdVPyEf3Tmikjqy2ag97p/yzK/RZQDJKoPmDVC6g+ZjqD2slXmJ3JD7OAu28EnDjKU/ykQM38JVPv0ilN+NF8ruN26fe6VYz4spZuip48G43v1Mr85bVBS5OyiYOUvPcXVCLSnP1EARMSd7r+YFpiIEdCQ1gWVQ9+9ltavc0hk0FfqQJ2DyMrWqmECNkHj4LQk6mpum1nl1TUP90G7k1w49TItJ/nQjyAnoAnzFv4z0aQElWCAlFn8pX7IFs5gpz9/6bNvLAKPo/4fy9PrRJ0bBLyrxgiCM/ytzh+Ho7gzZnYVUoYkNn3hvZV9h1c+xIyvsfVDZ6Kc8S54UIU244vwFiD/moZz7xuU1T7j8tHHcRIjv0AX+tHnVNlYfE6tSaNrYbAsDUL0/8e4LC8cBv4zfFbVRzOWy3KyiTLap3c9nq0rl0 tYP9pcSs OWKxGGC1cSOzj7oEDASu4tEODHFkj/wJsYMbaOSd03NOurJ7HXHdWTiEWc8RzmYuLH2dbih/XsnCNBjiYktYIFl3MZl48gt6oNNFGJwJupETzGDHvYkEGBdaL4uUze9/gKiiIR7ao3IRX83CfjoLlOI0lxzMym9D1gHqMI24NAtW7gmzdVoAmTdjfvye+GF7LBtkD6pYhX4FEv7EskWU2tqZraGAJ5FByo0rOnHc65Dp084H6ri5i2+2WWwgzh2wdZIxM3ov6jLqZu63fKN2d4osrQsCC5ZbBMG6yj4AQmBKFGRYMxw4aZJ5NYqNQAHEDJPGvbsyVqvmbrTTCNxx1x5A4Y6x4IzdmOomqSMyUj7GEBJbFqXWWdu/4zqJ4F7fanJB/fq0eLljCvBDdn/5G6YzF7o7Mw5Wf+znH 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: On Mon, 3 Apr 2023 at 16:31, Kirill A. Shutemov wrote: > > On Mon, Apr 03, 2023 at 03:55:09PM +0200, Dmitry Vyukov wrote: > > On Mon, 3 Apr 2023 at 13:10, Kirill A. Shutemov > > wrote: > > > > > > arch_prctl(ARCH_FORCE_TAGGED_SVA) overrides the default and allows LAM > > > and SVA to co-exist in the process. It is expected by called by the > > > process when it knows what it is doing. > > > > > > arch_prctl() operates on the current process, but the same code is > > > reachable from ptrace where it can be called on arbitrary task. > > > > > > Make it strict and only allow to set MM_CONTEXT_FORCE_TAGGED_SVA for the > > > current process. > > > > > > Signed-off-by: Kirill A. Shutemov > > > Fixes: 23e5d9ec2bab ("x86/mm/iommu/sva: Make LAM and SVA mutually exclusive") > > > Suggested-by: Dmitry Vyukov > > > --- > > > arch/x86/kernel/process_64.c | 2 ++ > > > 1 file changed, 2 insertions(+) > > > > > > diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c > > > index c7dfd727c9ec..cefac2d3a9f6 100644 > > > --- a/arch/x86/kernel/process_64.c > > > +++ b/arch/x86/kernel/process_64.c > > > @@ -885,6 +885,8 @@ long do_arch_prctl_64(struct task_struct *task, int option, unsigned long arg2) > > > case ARCH_ENABLE_TAGGED_ADDR: > > > return prctl_enable_tagged_addr(task->mm, arg2); > > > case ARCH_FORCE_TAGGED_SVA: > > > + if (current != task) > > > + return -EINVAL; > > > > prctl_enable_tagged_addr() checks "task->mm != current->mm". > > Should we check the same here for consistency? Or also change the > > check in prctl_enable_tagged_addr(). > > > > arch_prctl() can only do task==current, so I guess "current != task" > > is a more reasonable check for prctl_enable_tagged_addr() as well. > > As of now, prctl_enable_tagged_addr() doesn't have the task on hands. It > gets mm as input, so it cannot check the task directly. But functionally > it is the same check. > > I would prefer to keep it this way. Unless anyone feels strongly about it. Fine with me. Reviewed-by: Dmitry Vyukov