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 61655C6FD1D for ; Thu, 30 Mar 2023 18:31:40 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA1C56B0074; Thu, 30 Mar 2023 14:31:39 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id E521A900002; Thu, 30 Mar 2023 14:31:39 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D405B6B007B; Thu, 30 Mar 2023 14:31:39 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id C49096B0074 for ; Thu, 30 Mar 2023 14:31:39 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 88482120A5F for ; Thu, 30 Mar 2023 18:31:39 +0000 (UTC) X-FDA: 80626407918.02.EA4938E Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by imf11.hostedemail.com (Postfix) with ESMTP id C242D40017 for ; Thu, 30 Mar 2023 18:31:35 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="WMzy2VM/"; spf=pass (imf11.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1680201095; 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=jobE+W1McsuIR3du17YGJC3Z6W/dejQUbpwCNwzU5Sc=; b=05kD1Zl0IhcyTiQyeEmbysI367GPgNpOmKNqqDx5d9AU50amO6Vw2LoqGERgWckD11DLDX JtMYsQNPWw+W+h4XKjdKrVHHRyx6JrA4jAAA2EsGSvj8LJ7acQlojJzbGYOkUQjYC5snlP v5oz6AJvyQyWr5i34ncVxlst2nuyFc4= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b="WMzy2VM/"; spf=pass (imf11.hostedemail.com: domain of david@redhat.com designates 170.10.129.124 as permitted sender) smtp.mailfrom=david@redhat.com; dmarc=pass (policy=none) header.from=redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1680201095; a=rsa-sha256; cv=none; b=YukT+jmZaXarT/tBZ+ZPS51G8H95Yg6G5GTEsox7MV3VqI7RgHYvjjZi0nZpzZUAAfobZ/ ZZKT0sFxIDeaQIf2t9dkBA7V7gVOtj39y5JOKoEOd9rTDPoo4z8aalKFgHoQtmhZ96JbFy f/wbHy7kfcQtU6YvnNQ3eC8y9TrT64I= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1680201095; h=from:from: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; bh=jobE+W1McsuIR3du17YGJC3Z6W/dejQUbpwCNwzU5Sc=; b=WMzy2VM/R/XgjPG7M/knr4iKdkwy7mNIjnusCWmP133csYlWd/VoiyCoQKVPcNtK/OUvRo lfKU2mASavdUGd/XhmIunkviyf0t/jLsh7T5TZHMTxKG17BucNM5fgZRvPfwGawJM31Yan 90739u6NDFpDBFjjs44YvaOQFegMc6w= Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-623-9Tk7IixxOXaYJkjVFlDaGw-1; Thu, 30 Mar 2023 14:31:33 -0400 X-MC-Unique: 9Tk7IixxOXaYJkjVFlDaGw-1 Received: by mail-pl1-f197.google.com with SMTP id kp6-20020a170903280600b001a2945a7fdeso717682plb.18 for ; Thu, 30 Mar 2023 11:31:33 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680201092; h=content-transfer-encoding:in-reply-to:organization:from :content-language:references:cc:to:subject:user-agent:mime-version :date:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=jobE+W1McsuIR3du17YGJC3Z6W/dejQUbpwCNwzU5Sc=; b=oaUJlp58lONjcd1nU6YR/WtfgD87QDw+M20N/oA3gwLLS3VebwJNLheFZcl5fsvt6e YjA3CWRhg4Y/Wbk/ifWzANjP2cRaPTBnv6lzAFputm3GwrgVWArSYs/p6qISLxxODlCS 9Ihmp2dXzoXqm58Rd6pcpAl9uqHcTWZJJ1VJ3hNX0Ms2TJwop3ghLnfrSTocar0FzNUF s3tTx8poh80PJdTfjpyQV9oIgk8llRAk2C35yzGjiJ1KO1pNf8IgmUDSP6tTDl6WWsOm PwWYYuAHACIckSnXrOgp96CZzfgpoAggC9Br4thWvXI7kbiergg9UrD6QKu5C4RmpX5q vKgQ== X-Gm-Message-State: AAQBX9fx6TLYntsm4CYw3wg6LYlVbsE4/dtLvyiIwm2gYXH+jGDvjjg0 AfEkoigUDtBXiLyVq82RhCZcS1hnyDiW6YrCkiuVkfsSeQfS9AokaObHc4KXLvLFxib3BaAFjSF 9Prr4yekn2pw= X-Received: by 2002:a17:902:f550:b0:1a1:b8cc:59da with SMTP id h16-20020a170902f55000b001a1b8cc59damr34302069plf.33.1680201092402; Thu, 30 Mar 2023 11:31:32 -0700 (PDT) X-Google-Smtp-Source: AKy350Y2XtPFSh2/v9wjpAeWlY42dx0ySEUXCrM0cIilFUSj200Kj1d2tPF9lFKbZ4sHT5e1f1bXcw== X-Received: by 2002:a17:902:f550:b0:1a1:b8cc:59da with SMTP id h16-20020a170902f55000b001a1b8cc59damr34302031plf.33.1680201092055; Thu, 30 Mar 2023 11:31:32 -0700 (PDT) Received: from [10.20.159.115] ([204.239.251.6]) by smtp.gmail.com with ESMTPSA id c11-20020a170902724b00b001a1a31953a8sm50799pll.130.2023.03.30.11.31.31 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 30 Mar 2023 11:31:31 -0700 (PDT) Message-ID: <6eb02bdd-e69e-d277-c44c-0aefb23430bb@redhat.com> Date: Thu, 30 Mar 2023 20:31:30 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Subject: Re: [PATCH 01/29] Revert "userfaultfd: don't fail on unrecognized features" To: Peter Xu , linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: Mike Kravetz , Andrew Morton , Andrea Arcangeli , Mike Rapoport , Axel Rasmussen , Nadav Amit , Leonardo Bras Soares Passos , linux-stable References: <20230330155707.3106228-1-peterx@redhat.com> <20230330155707.3106228-2-peterx@redhat.com> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20230330155707.3106228-2-peterx@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Stat-Signature: mkrw787rzjdz6bg9rt9ux935iy7qunqy X-Rspam-User: X-Rspamd-Queue-Id: C242D40017 X-Rspamd-Server: rspam06 X-HE-Tag: 1680201095-990165 X-HE-Meta: U2FsdGVkX18lv71JqKlc4P6vZZ16fb/33624WxIhgvGegk9sth8wZUXLvMh9nvbn1x05Bel40G97W8e46MuJXoYenEJnvZN8DofmF+0rynpCzRSXxthjF6iZDv0fbLA9tRCe0BllN9akzthtVUIhl01lwT+YVe4//U2nP3fHEFBaHeltD5VrYv9/dZncgeNIVDzChIKvfdp1sZu93JF8XJigiBwTCCmBvVkqLIKD44td2ju/aKPY231aoFO1NOMrnDXkRycdFf5ckNPkB4rgSIOeGAi87kL8YCJOZFWUsCMEn69rPmL90z77zTqPhMWDIkVb01jIkGHZhM3lZ+86khXy+YwZh8arUpLqmwI29b9EQgVxhfX/8DlN4jo1dY23dpRf62i3uz4gZjBDICzHE/Iltm0OPDXw9DOgZUJi2oLyQ9UVgWVpInkn6w9FlbKI8uhM2ekjLRoFrWhudNy5lJDVwWOCsdTF3DCuC9qcUffSMts08qVzeSbIv2LVc1oJYI+BYgI8nS+wt76KTF72wEdv205VFwjuJj5VyO8z6AJdnalvtshWMzSyraCSu603+Xdex6EOalexpDcLGZwUqz6hh6H8QpqEAee2sn/udfCqH6ynQEJrTaLA7vZ2xHsbuwHzSN7D/Ko9PRk8R/Zu/t5vyIiY36bHTbTMBCsOC1H8udXz4XbNDbbXvFVw3FSZ1qQpYzXqP2tpynZdzlUDSPIl/GRoBgQ+qr+jZm0K+N1HBfY/Uk9dDAGXBUByTyYYv8g8cjjwoSyfK/ga27d6FRqU/70ZaRgtrSgRHsbCOwdWSz8ACpPfAL4JjpjSG/KgKmkOQftIYX0QuRyo7aSVr/OOz5ixicagtIyb9Qht2KY3Dgg97NpL+Z7z9/zz5z7lyJFbZ7OJwbLtFtIE9uNP2X3stsOuQdlzJ1EQAsF3JeNF/kNoVxMzj9k850nyV5eXzhRiEd0lTUmvrEaglsQ 6SMhzJOE mznPUQBCUUudOqXd6pxX5otYriFdjPSfH43vN74f+giT2xx47UPDGX3dkm+cT36yOznX1OLLpyJ+YO4Y8R1NqdhoyGdnTEvKn68eAb+T/1GwBz6OLxNmoY9mEPlO2vJZmQCR1dai4D8ZTSfLWQLo+F+ukDe7B77FLzBT11GA4AfmUrpEFLP5PJIC436pKPh3xIJqDVMp8YkV1ROmRPsuiVzf7O9thKniO2qCjmzKgg4BprZOIB0GPa2t7HcCmIxiILTuhk9LnWHbjq4aZE8VvBsaggk0J2n4iwkFJysyiAWGSBF3gLxs0udQRCTdn7B6nPGpvwJ2W9dT++m8s+IKGS1KDaAPYGlItgqJAPWc25qG5Zb3mbXXobPbihFiNnaiZ1KvkU8abHULz1ALzF4VXhUuSzVIj8Uvb1V7t7zhTq9sgyN9Or6wRDzL/NL74Zfz6Jet0tXdz+OOye6l8sn6sqNzPh1bUykTyNgRZWGwpKLEbbRmEefa0XCT+lNNazR/RRt2nIe58eoJU8VuEwOpAmkaIdcEKjKA603M6aCsPVAdNSRbYFnHu9QHpd1y2eCXgwGJTwcJo4qnSI6RKkmdhladZag== 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 30.03.23 17:56, Peter Xu wrote: > This is a proposal to revert commit 914eedcb9ba0ff53c33808. > > I found this when writting a simple UFFDIO_API test to be the first unit > test in this set. Two things breaks with the commit: > > - UFFDIO_API check was lost and missing. According to man page, the > kernel should reject ioctl(UFFDIO_API) if uffdio_api.api != 0xaa. This > check is needed if the api version will be extended in the future, or > user app won't be able to identify which is a new kernel. Agreed. > > - Feature flags checks were removed, which means UFFDIO_API with a > feature that does not exist will also succeed. According to the man > page, we should (and it makes sense) to reject ioctl(UFFDIO_API) if > unknown features passed in. > Agreed. I understand the motivation of the original commit, but it should not have changed existing checks/functionality. Introducing a different way to enable such functionality on explicit request would be better. But maybe simple feature probing (is X support? is Y supported? is Z supported) might be easier without requiring ABI changes. I assume we better add Fixes: 914eedcb9ba0 ("userfaultfd: don't fail on unrecognized features") Acked-by: David Hildenbrand > Link: https://lore.kernel.org/r/20220722201513.1624158-1-axelrasmussen@google.com > Cc: Axel Rasmussen > Cc: linux-stable > Signed-off-by: Peter Xu > --- > fs/userfaultfd.c | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c > index 8395605790f6..3b2a41c330e6 100644 > --- a/fs/userfaultfd.c > +++ b/fs/userfaultfd.c > @@ -1977,8 +1977,10 @@ static int userfaultfd_api(struct userfaultfd_ctx *ctx, > ret = -EFAULT; > if (copy_from_user(&uffdio_api, buf, sizeof(uffdio_api))) > goto out; > - /* Ignore unsupported features (userspace built against newer kernel) */ > - features = uffdio_api.features & UFFD_API_FEATURES; > + features = uffdio_api.features; > + ret = -EINVAL; > + if (uffdio_api.api != UFFD_API || (features & ~UFFD_API_FEATURES)) > + goto err_out; > ret = -EPERM; > if ((features & UFFD_FEATURE_EVENT_FORK) && !capable(CAP_SYS_PTRACE)) > goto err_out; -- Thanks, David / dhildenb