From patchwork Tue Sep 19 19:02:03 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Axel Rasmussen X-Patchwork-Id: 13391776 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 5ADF0CE79AB for ; Tue, 19 Sep 2023 19:02:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E0D416B00BD; Tue, 19 Sep 2023 15:02:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DBD1C6B00BE; Tue, 19 Sep 2023 15:02:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C0FA96B00BF; Tue, 19 Sep 2023 15:02:31 -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 ACE036B00BD for ; Tue, 19 Sep 2023 15:02:31 -0400 (EDT) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 70AA31A0557 for ; Tue, 19 Sep 2023 19:02:31 +0000 (UTC) X-FDA: 81254268102.14.9B5C425 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf13.hostedemail.com (Postfix) with ESMTP id BAAAB2000D for ; Tue, 19 Sep 2023 19:02:28 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="Ls/yNoeT"; spf=pass (imf13.hostedemail.com: domain of 3Q_AJZQ0KCHoYvcjpYqksqqclemmejc.amkjglsv-kkitYai.mpe@flex--axelrasmussen.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3Q_AJZQ0KCHoYvcjpYqksqqclemmejc.amkjglsv-kkitYai.mpe@flex--axelrasmussen.bounces.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=1695150148; 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=dATpzHjDHVSfxWhEgldjVmKuWzgWmKZlkhKuoIGibHA=; b=CrFX2/6lVX1Lkl0usaQDYgu9xjMtEFpA2TNOA7Y3iPJChL7OXWrWrgVf6a+Jsu1kP5mueP vtdD8wT9+qk+hPe/Ir+CY9DmScfGqQidBj/x39fg/dI04mqOLnJ9X4ATbW8M0vT7JX1N4C T7eD4i62/7nbH95tOaGbFMo/VTEGJM4= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1695150148; a=rsa-sha256; cv=none; b=sUwPdgQCdorub3QewVCIDahRTxdFqf6GQFNOmA4Q9zeH9ysh8mfvtZj+8VUfzazaxiJvcp WIpdB2d3pOHQc7YZ5UPMQM691GvibXGqS9fPyfg6py3PktfQx+oqjXWF60kX7M0rkyKZav NwnHWGIvvdTliggUhs97sK1yYj6yMqw= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b="Ls/yNoeT"; spf=pass (imf13.hostedemail.com: domain of 3Q_AJZQ0KCHoYvcjpYqksqqclemmejc.amkjglsv-kkitYai.mpe@flex--axelrasmussen.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3Q_AJZQ0KCHoYvcjpYqksqqclemmejc.amkjglsv-kkitYai.mpe@flex--axelrasmussen.bounces.google.com; dmarc=pass (policy=reject) header.from=google.com Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-d8191a1d5acso6227242276.1 for ; Tue, 19 Sep 2023 12:02:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1695150148; x=1695754948; darn=kvack.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=dATpzHjDHVSfxWhEgldjVmKuWzgWmKZlkhKuoIGibHA=; b=Ls/yNoeTtdTsB3rmasXi16pO/PoJU7NVEQ8JkrbZGsbbbW4U6k4hk8rNeHUXn1w9LR MCU1f9MNESSn7gua7k4qst0GAd5fZ08RvF9HyuVvprfTRNQHAJ4fQ2giF8+tlk2mFnY6 caqi7o5wLXHRq/idwf5qeovJfTUgfYRukVfXZBOGQYaH/IYCEyBNoERch78JfKWLN4+0 W/RMPG3OGSHh8k0I7ek5PyUZIWZmP0ceXwtvE1v40YzRsfH6/k4HgMSzn5dABwEp5Ajm byBJTwrBZdXJAZ4IeW2foualM8TlNy7XkSNxyPWS2JjxxOPAN8HZWP0jzouo3FSzNZ1X +tew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1695150148; x=1695754948; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=dATpzHjDHVSfxWhEgldjVmKuWzgWmKZlkhKuoIGibHA=; b=ZfYf73ZgXYNPeRFaaVSVCVCsD+sWSOG0J4XiZFtXiPXC8BT3+uHipnlUH+T5Krhcan Af2lZ4I5wg4aBtC+Y+RUkjTfYeiuuv3VOU9ErlmmitW2h5n0V13iGE24fEC+tc8/JwlW 6poVAkpBFpgLO0pQ5hNTLcCeJtpi3SvBOj9LYOIq96Ymkfkg8c9rz6ev2ysKnTHUr9AG zrBpleE9hDrJ5cIFZKbfeIvw0RodOfEpW90kk9SJE30O73OQjJj+0Iyht5RLSW2kyuBZ dWgiAHRpkbBv/9MBqaW9OSZWPGOLoIxLeaMhLGhpG56Aq6zVEi7Ujw99lmRx3vsUPG/M DLOA== X-Gm-Message-State: AOJu0YxxeOBsVUyJ2P26g12NeRZtSUHvUoZd3ygs0ZnSIDoaZaHUNk8T 4fCtGc80wC1z24bkAdZjhQCFIjYIaiRPgh/ApeLj X-Google-Smtp-Source: AGHT+IF45ElZoDnMndnZOu1lqkwCh0nmxIEmNv3ls7RqY7t81Fhtx/Bi4C+mC54hjZ/x4utF8vcipSUw1i7E3maljlSH X-Received: from axel.svl.corp.google.com ([2620:15c:2a3:200:8f5a:6a6a:cafc:a3ad]) (user=axelrasmussen job=sendgmr) by 2002:a05:6902:1802:b0:d77:8641:670c with SMTP id cf2-20020a056902180200b00d778641670cmr8426ybb.10.1695150147917; Tue, 19 Sep 2023 12:02:27 -0700 (PDT) Date: Tue, 19 Sep 2023 12:02:03 -0700 In-Reply-To: <20230919190206.388896-1-axelrasmussen@google.com> Mime-Version: 1.0 References: <20230919190206.388896-1-axelrasmussen@google.com> X-Mailer: git-send-email 2.42.0.459.ge4e396fd5e-goog Message-ID: <20230919190206.388896-8-axelrasmussen@google.com> Subject: [PATCH 07/10] ioctl_userfaultfd.2: correct and update UFFDIO_API ioctl error codes From: Axel Rasmussen To: Alejandro Colomar , Peter Xu Cc: linux-man@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Axel Rasmussen X-Rspamd-Queue-Id: BAAAB2000D X-Rspam-User: X-Stat-Signature: zc8pxo4z4cxkgbdhisgmx6m7mo3aypbd X-Rspamd-Server: rspam03 X-HE-Tag: 1695150148-80428 X-HE-Meta: U2FsdGVkX1+142PNoBvCjkUkr2UUfxZS+rdcRU3sZ8ZOMOLoO4xCQby+fRYMsoe2BYzDqhxGahTXtrnMOBfuWjR9RMQD+IFakciGHD97ciuqzLxRcOwh0Kujtw2CwKGeQZ/8YJgd8G40mWoa7r+TADOApGa6tV3YYEvrsxHWyx1XiN/5SlNwnREtgU38rFGUCR16R5hqzZxI8kC10JyX3wTTTeztnNwb2JEqNqZZeWUUut+yYl0YE5ScuOuZBdu5mVq81rLhfJALCPAg4CwFdlNqy8k9IhcXTbGG4hgwhhQUcetvSNCSttf/Pm7DEBxpo9ol+0rfljqy8g+PbYDJU/SibCCJPQyPrrzk2gPJiGRoz47smnzuBZPVk3llQX/WpncMYWX1Y54QkkrD4yJ/iADPY2M6ISYEyfKSB9kl371WCVPf7sgaoWhN/yIaQ/EptlDVssn+LARX76AaxtkDVZ7gZ+xWqGPg25U/Vzksy1SMPhajVSryL/TeUGYtBcIIkv7nUQNUDPswiwqnBkQaNJC2PJCSTnP3YtT5C503hPv7a+erFQct1bygcRfQp7BlIDEAJImwT3nB6nx2A+GvKlQU5z+ow9wRSb7aztmgEVTHkDVlccuEAbn46v+FT99ORoo9lijXNOANi41VBcFOGIZr0s6gWdAoE66AsgMfXWIscffpWYrn2ZJN4Wuoz7Id6wLQxanRU0J9v8I49MLys3lmE/91T7nHWLct/2aQsHxseSsNLRKulBilqaoZFFXuabKvLGY1Ac6UrG4NOfuy3Xblk77WWWA01BvJLgA0TnEspAPdtt/mIS+bZCmyy7hIE66VEGwS2UzvLyO1oujhZtsqq9K256OdlsJZBV0d/LIMtFqruLsAJweQ68O1xfiIWNRIprJTJExzamd7LcB1dNiaVDcEs+ZIqkO5XJ50DqUS4o2Y1XtR90OLuTNinPsfPQjwHFyF9QCul32P1m8 BIqDWfgT kFpaBqnngUw41HnevkOGoe7fw7cbb7KUcbAzeokR7oOpKHtb2HM1ZlQ31+g59OAFscAY7vXP6Y8CxBOfPGB3q+5d5zkujWMEoWgwhmH8iZKpb2tWQnQHDLLGaQOrvKCwdFsLuF2CnefmA+aLFAEqBqoRD2T3vcnxF6U9EfGE+8XPjpb3eHogKP7DpYfvyYvNaYVMonIJ5BJss3VBpGJJufc8VA6SSwxDupE8f05oy4Q2Eb67WmwbJ2nd5+fCtdR3KiwO+6eagbX7I6l1IbR/5JvEbp+Ythxnt/hgR3m1mtYYDjZVbQcpYvrG5q/xCwrGuCw52d5GuNTIaP3E5SsK4JeFUkiGlF4DSVkD008HAgkCCearlUJL72vcm9FDL5Fpzg9EbFAkRuALODJgL4Yqbq/5qDqVuNKyzZTwLe5xsqx9DGrork6zPgCpRSlUCoaoM8TR4tvKialYfg1uOHrHtlMtnxaj6gK5ZTZVvzeV1HU824ilXEVyt2jzmngtVRWAGTfy5bqB4d0GikeoP4qdvbdYYvJdPqx4hxi4EHdTmnJiUKTYOwelOurqs/lGKsSTlsThYq6MnF0Es1wzWYPXhUkwnO8t6RDw+YOnSVhV21tLXn4ct9NecbpqAOIH2hb2jjOVSgHQHKRs5hrHvQ5NkUB+azW1qKiKYiJ6RO31WiGDiLup0oz2NeL1Fi3i2zAlIoxen1YnL7yb9iaI= X-Bogosity: Ham, tests=bogofilter, spamicity=0.069453, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: First, it is not correct that repeated UFFDIO_API calls result in EINVAL. This is true *if both calls enable features*, but in the case where we're doing a two-step feature detection handshake, the kernel explicitly expects 2 calls (one with no features set). So, correct this description. Then, some new error cases have been added to the kernel recently, and the man page wasn't updated to note these. So, add in descriptions of these new error cases. Signed-off-by: Axel Rasmussen Reviewed-by: Mike Rapoport (IBM) --- man2/ioctl_userfaultfd.2 | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/man2/ioctl_userfaultfd.2 b/man2/ioctl_userfaultfd.2 index 53b1f473f..1aa9654be 100644 --- a/man2/ioctl_userfaultfd.2 +++ b/man2/ioctl_userfaultfd.2 @@ -280,17 +280,31 @@ refers to an address that is outside the calling process's accessible address space. .TP .B EINVAL -The userfaultfd has already been enabled by a previous -.B UFFDIO_API -operation. -.TP -.B EINVAL The API version requested in the .I api field is not supported by this kernel, or the .I features field passed to the kernel includes feature bits that are not supported by the current kernel version. +.TP +.B EPERM +The +.B UFFD_FEATURE_EVENT_FORK +feature was enabled, +but the calling process doesn't have the +.B CAP_SYS_PTRACE +capability. +.TP +.B EINVAL +A previous +.B UFFDIO_API +call already enabled one or more features for this userfaultfd. +Calling +.B UFFDIO_API +twice, +the first time with no features set, +is explicitly allowed +as per the two-step feature detection handshake. .\" FIXME In the above error case, the returned 'uffdio_api' structure is .\" zeroed out. Why is this done? This should be explained in the manual page. .\"