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 0FFB4C7618D for ; Thu, 16 Mar 2023 15:28:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A5041900003; Thu, 16 Mar 2023 11:28:29 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9FFEC900002; Thu, 16 Mar 2023 11:28:29 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8C75F900003; Thu, 16 Mar 2023 11:28:29 -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 7CC0D900002 for ; Thu, 16 Mar 2023 11:28:29 -0400 (EDT) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 5C85E121334 for ; Thu, 16 Mar 2023 15:28:29 +0000 (UTC) X-FDA: 80575143138.19.1A5FE2A Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by imf10.hostedemail.com (Postfix) with ESMTP id AAC06C0011 for ; Thu, 16 Mar 2023 15:28:25 +0000 (UTC) Authentication-Results: imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TIL5DtmL; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf10.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678980505; 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=mdjkv+Dro60o5zto0WjmQhFWFoXz77DgBHrj6x+iB4E=; b=Bo5Xr/LSzio2JJjCqK75DtfwVieiCByGsNxy6FCJvA61wbMAIJ4Qh3F1jRvx0PW2VROcHg BzoGp3wlRnyfSri0aHVeorQVFrbEqlgQTBZ3Ev/CAyQ23gw1yRaIOYTt4swu5yNi64QPWx GshaB045/sMZYQ2bcYFkaIEIfhaPjD4= ARC-Authentication-Results: i=1; imf10.hostedemail.com; dkim=pass header.d=redhat.com header.s=mimecast20190719 header.b=TIL5DtmL; dmarc=pass (policy=none) header.from=redhat.com; spf=pass (imf10.hostedemail.com: domain of david@redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=david@redhat.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678980505; a=rsa-sha256; cv=none; b=PSaqR56Bykv/poYOJWxmOksZe576BCFbMboO8j0bVMpVhuflddX1Mn+dnfjDK8asdntCPX GvuTImH3AeKUTUfdpnBTJn0/EAT7BhTkJ+13xFTYKFiilM8AvPQeJTmxt2WzOVzRNVWP+K WRlBfcfQ1NAX70orMAz7gXiE5IEgXaM= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1678980505; 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=mdjkv+Dro60o5zto0WjmQhFWFoXz77DgBHrj6x+iB4E=; b=TIL5DtmL5BvrSqwTs84SjTW97YfglrKXiI/7KBXz3PwUbT1pTf4PITZfHxzn6JC5FyJd6o br6/C58EisA1XhAoPhNNOj6iA7kNL8xI9RO+eQ9RCGFCHH5ct8lhEnikAb20SnYcc+r4EP ikF4fC8afkqB5Sz7XAn7IqVW7o9J1xQ= Received: from mail-wm1-f69.google.com (mail-wm1-f69.google.com [209.85.128.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-100-4BXbz5lWPCe0T9EG_Hqzxg-1; Thu, 16 Mar 2023 11:28:23 -0400 X-MC-Unique: 4BXbz5lWPCe0T9EG_Hqzxg-1 Received: by mail-wm1-f69.google.com with SMTP id i8-20020a05600c354800b003ed59bae33bso796886wmq.5 for ; Thu, 16 Mar 2023 08:28:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678980502; h=content-transfer-encoding:in-reply-to:organization:from:references :cc:to:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=mdjkv+Dro60o5zto0WjmQhFWFoXz77DgBHrj6x+iB4E=; b=bGRWXouJjRNXk7Csz/n/bNFfjOeoYw/FnkvaTirw7ljwzdwrVAcwn5VKpyBtVvAn/x UzKnVlRn3+kEAUUj7NuTE8moN8tzfJdYdN1pRzV1XeRoUEBWH+9ah82kICBE/8sxL6Ph pAOep3PV7iC6zNbT/9rAZZ5sA7sQKEgsvqAzKIqBEi3clkJjoBnZvSRelG+7Rpmx8/BH OVygg/QmxDdHhxwdf8JaM/4UCnWZZ1FoF1zctbykipJeZ/LFkvDzbS9Jo5hA9hXDo9b1 DotjnD1EiQ1PMcBC4QqvnuWZh/KR2/1GUCS08qbwV43K9UJwZAQanx/5knw9Nvv8lPMX coZA== X-Gm-Message-State: AO0yUKVAoSx0sFs+DX/zsd0q3rwMInRFO6bt1UjaSCaFQFriIS0nOV/I BZmsTgEKAjXTx6XACDWoBrr/CP/cfxJRqam5vD+JwZK60XCn+TnRxU76XmAjG38vN4C/6o+jtyU 5vjvfk6gAxgipFMQRCwo= X-Received: by 2002:a05:600c:a0a:b0:3eb:2e1e:beae with SMTP id z10-20020a05600c0a0a00b003eb2e1ebeaemr22827101wmp.25.1678980502801; Thu, 16 Mar 2023 08:28:22 -0700 (PDT) X-Google-Smtp-Source: AK7set953OhR0PSJo4Wlye88S0M6Ni6iKYVzJO5E81/ycX2kl1XkCG+PEy2QJ3Xm6J5j+tXXXFeKfA== X-Received: by 2002:a05:600c:a0a:b0:3eb:2e1e:beae with SMTP id z10-20020a05600c0a0a00b003eb2e1ebeaemr22827088wmp.25.1678980502430; Thu, 16 Mar 2023 08:28:22 -0700 (PDT) Received: from ?IPV6:2a09:80c0:192:0:5dac:bf3d:c41:c3e7? ([2a09:80c0:192:0:5dac:bf3d:c41:c3e7]) by smtp.gmail.com with ESMTPSA id p9-20020a1c5449000000b003dc1d668866sm5273902wmi.10.2023.03.16.08.28.21 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 16 Mar 2023 08:28:21 -0700 (PDT) Message-ID: Date: Thu, 16 Mar 2023 16:28:21 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: Re: [PATCH] Using MAP_SHARE_VALIDATE in mmap without fd To: Nils Hartmann , Andrew Morton Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org References: <20230310171617.wqnqs42l2viwjsz5@archlinux> From: David Hildenbrand Organization: Red Hat In-Reply-To: <20230310171617.wqnqs42l2viwjsz5@archlinux> 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-Rspamd-Queue-Id: AAC06C0011 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: ijjsordsy6don6zxz1ruy6csz7yt3mpy X-HE-Tag: 1678980505-713832 X-HE-Meta: U2FsdGVkX1+oE5Qqzb6aQ3nmV0awVCkbQPnmcduri9MpQd/Bd9y75zrlku+1Vk+xnjzLR5QKdH0qS10CzmizA29iliFxYyzUJx4tA6Lx4rd5Rn/rq+aJs+Jrsuure2taLbgFmxCZYfXfWwGqhce/7J3BdNRRJ1WnNm0EkuR/BYcVgMtc/rVWS8hc8ojUm3y3rY7uSYA8hzNgRsbXkPAQdYo4cR7mPN7xACbF7ZBwKjODZzfyDF9xNpiVK/7QEZR0ZdJQ0NWRYVD8NgFubI3T3yWwEeaJRBU9yju/gWr3UvEfTOsr7NaxQbkc7iXLahPi+ZZkWuPvVDPxN4sRWHzszpvudK4gHrCkNH3BD1I0YbOEtVhk1Qoqg91YACdanKuf0CWBrS4J9KBp/L21VLTBswycJ35SxuL/PKtVeSeCtuiSNAm41qJYZObKRSQFo1/5Co1eEowavrdfe5PuzDbwtrIBbXEGU+1euAD0VhN8s+0vPb2gkH8FrULPUwYp9oYRrj1QpO54b3vNklcnTTv60xnMDRNG+tIHMR1jVDAf+7b3p0iMsWgicQP3d0V69ktwgzdhmlTPbNOUMAnNnukjYKTAAetKCepf7SuERqv6DdKrs7q5l2qidbV8nX5AAs5jnnBcv6PDJ41ft4VTdRRaV79FDjjnFHR2Rg/Kojxnc3zy/6xxiQzbn67MXabTi3MBOmvdjktmvsec9Qd3C2sc8ledrgXvO8+Y33jnyw9oQRZgOx+vyJ1JkirRvoaGululFXJ0mUtuvPC1uzcjAfC98zDWi6+la3V1rGWM0Oa3gPMFruRqp9SeQoODWBqR+E2EYY7LDL6hHD3vcOXD7iB9lghwIrQy+ZF5ZYh0bKZ6YggPiXFcLyoEyddZVkwS32I7KxD0k/6tBEpUpxNrir+5XFGDB2ZM3JeKwNXKq9Z/lpR/3h0WuyMQKOKJefO9tZlRJU4cf+KRW2mK6TabYlF x+FOP9hv 3Tarta+fFHoM7CXYxMimUBW4uVZTCPs9ww03C49A4mRjCK1ubWCU7tc84I9fi5Els9JSZBikpWL4+Yx/J2n8c9HXkB+A8K/c60q0NX9m4zn30VZhtedP6o6KemY5HjgaVjfdfpcODsPvP0i4Gx077U1NB1ZtdaKKHEuV/mdLcXZPjYi82rdqB7txDbIt0iiKc5CVc/YXmaoN9Heqsx5O9l/kF2IgBP/Pmn/LMsu/OL9n0qWn7ayhGiKcAzzeK8EX9s8MMxe4G789IP7XmPB/A1vow3HIUKM4Yzde3GKeIIbyRbo51TRBtPqb+ZnAx3MEcUCj4CAXaTViR2jp1C2grR74GK1+6/+KV/f+JrBSjfZ22rDeH0PN6nfutfNvNZhEwrENZcFxtUbLZrACQBtUwlrLilA== 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 10.03.23 18:16, Nils Hartmann wrote: > Hey, > I have a rather simple question about the MAP_SHARED_VALIDATE flag in mmap. > When used without a file pointer, EINVAL is returned. Is there a reason for this? You mean, using it with shared anonymous memory? (MAP_SHARED|MAP_ANON) I assume you mean "file descriptor" not "file pointer". > I researched a bit but could not find anything. I attached a simple patch that adds MAP_SHARE_VALIDATE to the flags switch and checks for invalid flags. > The only reason MAP_SHARED_VALIDATE was introduced was due to MAP_SYNC, only required for DAX. DAX does not apply to shared anonymous memory. I guess nobody cared/cares. Question is if we want to update the implementation (there has to be a good reason IMHO) or simply update the man page, stating that MAP_SHARED_VALIDATE is not supported for MAP_ANON. > Signed-off-by: Nils Hartmann > --- > mm/mmap.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index 740b54be3..fd7db51af 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -1196,6 +1196,7 @@ unsigned long do_mmap(struct file *file, unsigned long addr, > { > struct mm_struct *mm = current->mm; > vm_flags_t vm_flags; > + unsigned long flags_mask; > int pkey = 0; > > validate_mm(mm); > @@ -1266,14 +1267,14 @@ unsigned long do_mmap(struct file *file, unsigned long addr, > if (mlock_future_check(mm, vm_flags, len)) > return -EAGAIN; > > + flags_mask = LEGACY_MAP_MASK; > if (file) { > struct inode *inode = file_inode(file); > - unsigned long flags_mask; > > if (!file_mmap_ok(file, inode, pgoff, len)) > return -EOVERFLOW; > > - flags_mask = LEGACY_MAP_MASK | file->f_op->mmap_supported_flags; > + flags_mask |= file->f_op->mmap_supported_flags; > > switch (flags & MAP_TYPE) { > case MAP_SHARED: > @@ -1327,6 +1328,10 @@ unsigned long do_mmap(struct file *file, unsigned long addr, > } > } else { > switch (flags & MAP_TYPE) { > + case MAP_SHARED_VALIDATE: > + if (flags & ~flags_mask) > + return -EOPNOTSUPP; > + fallthrough; > case MAP_SHARED: > if (vm_flags & (VM_GROWSDOWN|VM_GROWSUP)) > return -EINVAL; -- Thanks, David / dhildenb