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 9B838C761A6 for ; Mon, 3 Apr 2023 13:55:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F35236B0071; Mon, 3 Apr 2023 09:55:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EE4EC6B0072; Mon, 3 Apr 2023 09:55:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DAD406B0074; Mon, 3 Apr 2023 09:55:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id CC8B66B0071 for ; Mon, 3 Apr 2023 09:55:25 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id A8863AB60A for ; Mon, 3 Apr 2023 13:55:25 +0000 (UTC) X-FDA: 80640227010.23.A818165 Received: from mail-lf1-f52.google.com (mail-lf1-f52.google.com [209.85.167.52]) by imf20.hostedemail.com (Postfix) with ESMTP id BC09E1C000D for ; Mon, 3 Apr 2023 13:55:23 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Q2fhX+th; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of dvyukov@google.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=dvyukov@google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680530123; 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=Cr44TItuNnAYmCkMRyFWU+nFevs9m8NmW2Lwd9YRKcg=; b=cKs6dIXW+c2xL/VBJzsSLz6dfPhO+OZJzm6PlyqAv3e0OZ4TAM+M8uLkNpHLwCLUU3Xtx7 qjzKePNraWIIv64U1ThKjUyUhIJ0ErDpT4fgGr0+vgJSnDmLQDPLDy06GFhRhZm5jQL6tg iX+SsEGkuCmzMzQNFf/bdF1UHkZu0II= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=Q2fhX+th; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf20.hostedemail.com: domain of dvyukov@google.com designates 209.85.167.52 as permitted sender) smtp.mailfrom=dvyukov@google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680530123; a=rsa-sha256; cv=none; b=FzCvhIeIeL9V6Es4qkMn92BjljoSeTpW5OVgqJA1YReNYEl5/HG6pLBNJ/SPC1k+0sHmII pN7Nii5tWM+gXnCAIf+dfV4fSUFiFYdzzL/IvH+MiVRutpxsK8vQNmgePLT3LW1YQODttL PfPyK1TVcGQy9iYQOomryk6frYN1CUs= Received: by mail-lf1-f52.google.com with SMTP id br6so38148013lfb.11 for ; Mon, 03 Apr 2023 06:55:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1680530122; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=Cr44TItuNnAYmCkMRyFWU+nFevs9m8NmW2Lwd9YRKcg=; b=Q2fhX+thL4tkyX0Ki80dZq5Pju+tv40Q8K2n4Y0xnEzkorp4WZf5ud7tBgGXoK7DZK m4r2lxcXXRgGPZMil0ep6eoOUxx1bqk7NeIeSwgqH+5KErGoWIkobnR4ouMXvdLsgR2a GM1+e7Kw+szzLtlXE334gkHp7R+C01/2lSs/eVPhY6F71Dvu5TwdV0LeM8C2Dk4IkM6p ilnDSFA8VA+FhdxyYSrwu7N/68hcn5nWLyU4kuYFHT44MVBt9ttk5atb6BJ2iAnqyTzN mC740GKeL/yu5ecfhLdL6euakyah1dMaI8qsWu7SVvxblCvS5MhSvP8dRkboHNjoTMPh lIdg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680530122; 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=Cr44TItuNnAYmCkMRyFWU+nFevs9m8NmW2Lwd9YRKcg=; b=wlOYBWbbqYLMZXrudLwd6mY1bayCDqL6d1TQSljm5WQ92PXK3qELb35pbxaZkB510g vNVj/gm5wZvwQyMislq8sLizCFNdp6MQ7Yg9qofmZZrHsb2Q10rZVOF+h4viYLA3XnUW kvWq8cLYjyzQyWEmpJAO6GvDYYt2gFy9XPVIXCHU/kz51G4LZBmRWqfNK4lK84jWigc9 M4cmMJiSt67wW573QoYWHuIp72NPHgSZ4O5ijyLBYVo5u+cpQtk/n05ByfL99AvDzTNw 8xaUGz/3251D53s6J3XsX9WDd+iWF+GrJeDobSSe8xx5GiLvg5mCz1SsTyLtUZJPRzkG NvGA== X-Gm-Message-State: AAQBX9fJgZHd8Qom9jxFhW2JhEcQFRcqhYV4fFE/FsFzj8KoQb5YrS5Z m/adABvdkYe3L8FwxBoIEorvWqI9YkXbv7wY9vLd1Q== X-Google-Smtp-Source: AKy350YFRak7MV4KuwcbOFrzdYnIESU6ZH4j05logCd/WNnVznAWadJB528qykijbARZewuA+mSaWBSmScEvXBSYUj0= X-Received: by 2002:a19:ae04:0:b0:4eb:4160:7ca8 with SMTP id f4-20020a19ae04000000b004eb41607ca8mr777178lfc.6.1680530121691; Mon, 03 Apr 2023 06:55:21 -0700 (PDT) MIME-Version: 1.0 References: <20230403111020.3136-1-kirill.shutemov@linux.intel.com> <20230403111020.3136-3-kirill.shutemov@linux.intel.com> In-Reply-To: <20230403111020.3136-3-kirill.shutemov@linux.intel.com> From: Dmitry Vyukov Date: Mon, 3 Apr 2023 15:55:09 +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: 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: BC09E1C000D X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: x1cricdajdci4pcj87rhdhc8ecz4r5rd X-HE-Tag: 1680530123-566523 X-HE-Meta: U2FsdGVkX1/P6s5TWzsOtLoda6S+faT1Y+/n7aL6qrUSOxB1Ltd2H8BUds1lO4grykWrWyxairiqqLxgBIwqh+SGCjmA9lui7I8gb8mKR8ZnIIjv1ZQF2C4xdEuOV77QiK/Lq9LincNmkh4I/YqXXbyQihzXenI6pTvZ3BSrotYhp1992FKyhwY9mbjiqR4p+/nWMJs3pgTvWqvJ4E+z2IuzsJ1G2Lfi8GbSmBgBZkadJely0lWyC/FC4XVtjmyGmZn47SemjCmHYgTC6rtpGP14NVikAixKSBu/1xgTbVjj0MJmUGv9T9RfKjmHfMT5TheAifYJl+RjIPKscCAMAKwbbGH1thoMwTIzdJNim/RtiAB9z06ZL3CmLWDRPFiP6nF02Td1kcBl45WqMHXNAH76H191D2uwoIBhnaavmusKp8/zid9CU+HkbVPxKbGGPIkkLJsJXcFDJ/jMdDskgo/QZTgSNXmJ1DOW+jISyCSLcvK78P3GOy0rMmpgqbnWQR1nVXBXTco/izyNYuz1wfS2Vw7pyuPd7qMbYEWVNEWgiMv6+A9av939mOUZ+aIgIMx58+yz6x+BsYCXtT1Cto90l/9oi+5h4+Tr1/pJqfPHJi7M7XJlGLpFb5nYgeF1Jk/9W0Bw2bsYF/lz7t11M1TxqBg6ZJhsXKNYME0hb/Csm9l0bPJFhG8qNUSytIWT+FOi78/hRgZ6DlGNbXyx0ODIWZSppUdqGVWErukaxjOWA9vSxnmbL2dkCXhwaPgqwgMBzDEkK/dhCzfcVSd0UJZC8yDzIGU/NRTJag4K+wxGkk9iInOl7KdfTg2GjDJWjZIJvRyNXRUO8mn9EL56GdBqoD9e2sb7v+5VL8U4kKASfDJXrf8qYjmTnomFhrbOchSBtWB87sxx+1P3HD+dVHe3+DGOpT8QjxDYnhXmoJLTYB80azsRshKrRK49pWV6U/yU7n5yk9zZ+DP94D3 i5OXElQc htUkYaZ/5EaahcjKF82GVv/p1t7rn5WUyTe5hZ9F/uD6YBW4/6i9MyNTKDSC4l1VYHsVs6CTOqVCUGNnKJcPYXEgaWHjHbS2+EjMa3D0gUTVSBtS1wWlI5O5xqL/6caZ2gx5+9i7T8OHFVGtVejWy1Ir/J9o4XBOBhuluyUEGHmHGVuHtQSkDYbG7G+n/RaFb4BL3oyanVYoxakRfATYw49+ZGGzj/OtTWKwLkQs64Kueww+bvrnp9ZtE/4RX5BpQTLhSOFQ+QRQKKSUNMIAi6mKyZLklvVmZajA6jwmI66qlT6f9B8fRpwS6jWiudyH++Qq6dN6bZ3jdIMxn1Mdmqt3E0TP8Yfctki1FIrZIIW4f551iiLFEBMzXCHCFjO5zM/29AHUIMUue8EeYFr29CFHdsDHfPbMXrrvi 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 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. > set_bit(MM_CONTEXT_FORCE_TAGGED_SVA, &task->mm->context.flags); > return 0; > case ARCH_GET_MAX_TAG_BITS: > -- > 2.39.2 >