From patchwork Tue Oct 3 19:45:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Axel Rasmussen X-Patchwork-Id: 13407945 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 C414CE8FDB1 for ; Tue, 3 Oct 2023 19:46:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 445D98D0088; Tue, 3 Oct 2023 15:46:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3CE428D0003; Tue, 3 Oct 2023 15:46:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 247858D0088; Tue, 3 Oct 2023 15:46:02 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 0BB998D0003 for ; Tue, 3 Oct 2023 15:46:02 -0400 (EDT) Received: from smtpin02.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id DACBB1A0468 for ; Tue, 3 Oct 2023 19:46:01 +0000 (UTC) X-FDA: 81305180922.02.A746818 Received: from mail-yb1-f202.google.com (mail-yb1-f202.google.com [209.85.219.202]) by imf10.hostedemail.com (Postfix) with ESMTP id 687FCC0020 for ; Tue, 3 Oct 2023 19:45:59 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xCh2YIlm; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 3dm8cZQ0KCPUXubioXpjrppbkdlldib.Zljifkru-jjhsXZh.lod@flex--axelrasmussen.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3dm8cZQ0KCPUXubioXpjrppbkdlldib.Zljifkru-jjhsXZh.lod@flex--axelrasmussen.bounces.google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1696362359; 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=saHgOnMA67n4gZwlJ4PpFPUXnm1EsnwqlouJFj0QSrA=; b=TbGUHAcyAtYzIS6h68SvHIbtRl8nDii1/wpSTsGNXWZOaqtVdo/hwzCqDSdAhGbdJ3j8RG oUTUc1mjOjFsowkY1b2z0wFm/J/GXNkbJTpmBS9KQHx4LC5MEqmOVaco4X9qBQgHDCPEs2 6UnNelFq7XIBbaGZaSLxrMuVlQUzl/M= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=google.com header.s=20230601 header.b=xCh2YIlm; dmarc=pass (policy=reject) header.from=google.com; spf=pass (imf10.hostedemail.com: domain of 3dm8cZQ0KCPUXubioXpjrppbkdlldib.Zljifkru-jjhsXZh.lod@flex--axelrasmussen.bounces.google.com designates 209.85.219.202 as permitted sender) smtp.mailfrom=3dm8cZQ0KCPUXubioXpjrppbkdlldib.Zljifkru-jjhsXZh.lod@flex--axelrasmussen.bounces.google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1696362359; a=rsa-sha256; cv=none; b=SfYkj46VeRNkRfSUvDzwI0rGPJ+mffXwGHYv+b0L7x9iUDpqFGoueZDN1i6eaoKaCvH2wL UQaAf3UsiqRqcJBBJM5t3CwlJFbAtg1B3JPa/1x0R21NRCVIDmo5oShosg0BjL3OkqCaHC A3wCb4ATbC4bFAYVsZeUO3i6J8E9xhU= Received: by mail-yb1-f202.google.com with SMTP id 3f1490d57ef6-d8153284d6eso1589772276.3 for ; Tue, 03 Oct 2023 12:45:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1696362358; x=1696967158; 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=saHgOnMA67n4gZwlJ4PpFPUXnm1EsnwqlouJFj0QSrA=; b=xCh2YIlm9Y7UL8roIsCegN5wCafiuWxFjqW6RaDV6huRENgvyzHrItrwpzWLALgGbY MaBbPDu7cGaH9iFFV9m0U3iYw2+UjHHKbh41p1xCMwhVmtTMPrsBEjujnsmIqhgr0tgO 3h1I47or0GhRVLujbcSGXCiBBTEB7QVdQB+NDPVMA7dQA2RLciN5Fu9fdh0nQLgb8+b2 JRnxhZTS3rq/XU+ioZb4AvW48J6e+4Q3VrVdS9Hg6VYjkdNHlh6E148dv9h7CDjlZZHw nGuUSQAH8xCSVJMA8RpHOCCucHriMTsh+MfIaw2F5Dc2g86hfiCCtCMCts/uqBYUK5BA lp1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1696362358; x=1696967158; 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=saHgOnMA67n4gZwlJ4PpFPUXnm1EsnwqlouJFj0QSrA=; b=K7IUk/SOnp17dToc26ybt6I8/Kfi7nDtDkt1ArWNFwhNouADgBmuwGjluSVL7OiCFv giv3NdQsJfrWbtQhbp3aHZgCF7ogvcusBMlTptT5fgqPm8XAfVLOTsdJvY6yBwLizFBN 4SWQ5iwk78FLUhDLpfbjYODMd2xdoK0ihygSmn8C0CVDlrFe63sHh/Std0q1y46FsC8H aVomf05dib7zO8HsmaBwq0GELxiPn8c4Rla0RQMfEN5m0c802XzCuuB0jlJrocv3TW6/ KQLTe1oERsgw4r1t1PtlpikXqAR2Pxa+v0z8Zt7hn67MqwKmjcKWct+vcknoTwlrb/t7 kHTQ== X-Gm-Message-State: AOJu0YxLvvSG9z7cw/6SNYpnjhJrS5iasg8iQka1c3Iq4/Q+be1NoMI3 CnklF2GISh/xgv8DZn8dWEZWfJ8k5WPJB+zfomvg X-Google-Smtp-Source: AGHT+IE+GcDf+X27c5kJNc3oNmGJKigBdaixTtklNARXTwZm81BadP68GajItBX8aDtIKT3fxza5qJXIav70Sa2bVhk8 X-Received: from axel.svl.corp.google.com ([2620:15c:2a3:200:6577:b8c1:dd2d:1c93]) (user=axelrasmussen job=sendgmr) by 2002:a25:770f:0:b0:d35:bf85:5aa0 with SMTP id s15-20020a25770f000000b00d35bf855aa0mr4058ybc.4.1696362358605; Tue, 03 Oct 2023 12:45:58 -0700 (PDT) Date: Tue, 3 Oct 2023 12:45:44 -0700 In-Reply-To: <20231003194547.2237424-1-axelrasmussen@google.com> Mime-Version: 1.0 References: <20231003194547.2237424-1-axelrasmussen@google.com> X-Mailer: git-send-email 2.42.0.609.gbb76f46606-goog Message-ID: <20231003194547.2237424-3-axelrasmussen@google.com> Subject: [PATCH v2 2/5] 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-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 687FCC0020 X-Stat-Signature: o39exrtfqg87pfisjktnjpxu1b431o4j X-HE-Tag: 1696362359-488575 X-HE-Meta: U2FsdGVkX1+JFeOXdYsgwMxKKoZ0Km1fTzowjHzOD2z7tTrZ6JHniaiaGxWoRAhPJtZcPsCJA69b2W4MUDCvCXaZlbr8iFuG7pyaAd7jnre9AWuJI13RVQgQckgwN2nVKTBKSE1pZrfng57b0Vr4fBEn6JUZ/EEH7wKV97FrKoQzF5GxUliPobWEfy8TOPLY5AG3yu97L3455O30h9m9hVAavO0Vxy0xnY4RYbUvwTV5gtGOMh+iJj+RBqhUjP+SX54nj8u8JVXJWKlop4T9PhZ50UqJqyEkXt4zslND7SG2s5i57SWsu3VS6RlvYkQSOTuUxOTOyU2UrhOTN3fq9D4vsszatvKJSW7YjEeNzVQyzaRPBpRR98/d78mr7kTNWNBnyBqfdf2vMetiJit2+VQK5fT2bxSvdHWeOzHHJE+4T1G2Ta/1mDglbvzF/Hai68cEbjgrbJAktxNdTfwUxsWNqfLY2kDoOJebnjOGNjHog8bsgTsl54ejKyyjnmKHLU+2OrklwwNqDahAL0TuyBspceMkGWk7ufdtWUGN8/sW9R1f95WKPIW1O/8O2tUXbV8VACgLWOu+QQllAsUGLl+/Zzlw6XASSVh45e0dw0M7zCjVwW4r42T5zyopfhyYEMCmynKgPK3cE0RsRg5FAauXNWpszxOhY3STR4BFh8V2MipHW0O65k5ypNymc4UHYZ6KAdrHYIRNgV/CENw/dbUpsHtd48J8lEwqzvNGwrM6DmkJ8E8G2kRDRDoor2bQrBWwOqU/TRVA2kYrt90YrGETaWbBAyirYi5VndF7UY706rOwpPUI6sr8VL5ygaz7XTs+hgt26zeHWUzzbTqxFpFozu0iXvlRIk//3G8G92KI0st3KxITTFMGqR7fv0XBoEm5mN4px56JHLCsElyWdAfT25tnk/mbEJ0XBD7RICfC5P245ijaz4Uyr/lCEqbrTCeK8urAzR9WU3p/Nz/ F0SLPXot Egj7inAsUDD8t3K2XkVMieu30u5Jy11HHJLg57hmMC0moV9JKnCWJo5UI1MGtp4u7ijkbG33XxjZ2f5RjrX76lRizTso4xmweSCoRHTabMi2mAc/G/MKwz6ibzhm/MY2C1LvOS5xIPJvBCRGzQTrDK9jYSdW94IoW4lwcFSWDbGSD3OJJ83GVVRmuu8JrE8aec5QAbMtxRSpbwHNSUCPIvIACEXcyRzDaj48d8LKpNhjm1U8crZWBnoSo/V9JmbwJLMxLY74W0y7X6YVWUOwIe+Cn9zAd7fWCwuzx3ISsxENDiy0JLIYVoOxse3NmbebE3y/Yk4dvvm7679uTegoA7ip3Z5n0rU6Hv9Sz16lSSSCr/nuI/u31iykBtKQi3gp9zm8GF+Q5M6pBxxWNOrVGG5afMJzyjJIN+yo9k4Kpr0gxmxFZUK3IRIc8eIqeFL+CLP6YgBIYRR9Uk1ihlMqIdLeIkW3oGpIEHjkUsSOL/W5tOzNG0iK8tiTvJ6OpIDsyB479viJnTPwjy4giMgu3XOH6gWZuQWpuU/zwKDU4Jz002Pjr1ccYu2CdXAmRrRBHVzfHRrL5oN6XJzQL8yilyRHT9x33v5jqHe7rlwhHYVBYiv8= X-Bogosity: Ham, tests=bogofilter, spamicity=0.018999, 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 --- 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 ef352a69d..28dd2fcdd 100644 --- a/man2/ioctl_userfaultfd.2 +++ b/man2/ioctl_userfaultfd.2 @@ -256,17 +256,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 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. +.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. .\" 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. .\"