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 82D52C369A0 for ; Wed, 25 Sep 2024 07:09:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CD8E46B007B; Wed, 25 Sep 2024 03:09:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id C893F6B0082; Wed, 25 Sep 2024 03:09:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B51566B0083; Wed, 25 Sep 2024 03:09:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 945A96B007B for ; Wed, 25 Sep 2024 03:09:05 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 562EDA0A88 for ; Wed, 25 Sep 2024 07:09:05 +0000 (UTC) X-FDA: 82602383850.20.EFB270B Received: from pegase2.c-s.fr (pegase2.c-s.fr [93.17.235.10]) by imf18.hostedemail.com (Postfix) with ESMTP id 136D31C0018 for ; Wed, 25 Sep 2024 07:09:02 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=csgroup.eu; spf=pass (imf18.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 93.17.235.10 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1727248024; 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; bh=BBXWOB80KAtfWFWt+KgDkVtk4guta7WPhDFcIIeZfAw=; b=yBL38mP0OpDOx9lCOZvTb0E7LmU7YPPIUpjk4xWmxfRLq9Z1MPILgLV8n4T1KQ0/2oHD70 PZrPfZrYQ9LkphgItbXBGR1M65YaP9xUGWBZNUWZzOXFzAtoTOp2GPv1Ouk6pekqaJhnfE DMTDV4bqa7QfoYsN6J9OKtR7HlaJZOs= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1727248024; a=rsa-sha256; cv=none; b=21ZJ7+04MWtUUbaZt+4rKJAVUZ/h+UpEPMAe1brBJAtfJq1UYb5saJHl+tJZOpryirRNT0 xkjMWjsBXLbY1kH8KQ5KKQLqyOkclphoTaC30k4KNpuYGVmhGfqXcHSa8djVWKMwwBaOGJ N16z/gf/SQg2nv2jrKuaHj0UCi31TlM= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=none; dmarc=pass (policy=quarantine) header.from=csgroup.eu; spf=pass (imf18.hostedemail.com: domain of christophe.leroy@csgroup.eu designates 93.17.235.10 as permitted sender) smtp.mailfrom=christophe.leroy@csgroup.eu Received: from localhost (mailhub3.si.c-s.fr [172.26.127.67]) by localhost (Postfix) with ESMTP id 4XD7BP385Pz9sSt; Wed, 25 Sep 2024 09:09:01 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from pegase2.c-s.fr ([172.26.127.65]) by localhost (pegase2.c-s.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ofayadwilK7M; Wed, 25 Sep 2024 09:09:01 +0200 (CEST) Received: from messagerie.si.c-s.fr (messagerie.si.c-s.fr [192.168.25.192]) by pegase2.c-s.fr (Postfix) with ESMTP id 4XD7BP28JFz9sSp; Wed, 25 Sep 2024 09:09:01 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 355CF8B76E; Wed, 25 Sep 2024 09:09:01 +0200 (CEST) X-Virus-Scanned: amavisd-new at c-s.fr Received: from messagerie.si.c-s.fr ([127.0.0.1]) by localhost (messagerie.si.c-s.fr [127.0.0.1]) (amavisd-new, port 10023) with ESMTP id zc9XJ1vndXU7; Wed, 25 Sep 2024 09:09:01 +0200 (CEST) Received: from [192.168.232.90] (PO27091.IDSI0.si.c-s.fr [192.168.232.90]) by messagerie.si.c-s.fr (Postfix) with ESMTP id 4F6388B763; Wed, 25 Sep 2024 09:09:00 +0200 (CEST) Message-ID: <7c3bfb87-40e8-45ef-86a7-53f02053d9b3@csgroup.eu> Date: Wed, 25 Sep 2024 09:09:00 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v2 8/8] vdso: Modify getrandom to include the correct namespace. To: Vincenzo Frascino , linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-mm@kvack.org Cc: Andy Lutomirski , Thomas Gleixner , "Jason A . Donenfeld" , Michael Ellerman , Nicholas Piggin , Naveen N Rao , Ingo Molnar , Borislav Petkov , Dave Hansen , "H . Peter Anvin" , Theodore Ts'o , Arnd Bergmann , Andrew Morton , Steven Rostedt , Masami Hiramatsu , Mathieu Desnoyers References: <20240923141943.133551-1-vincenzo.frascino@arm.com> <20240923141943.133551-9-vincenzo.frascino@arm.com> Content-Language: fr-FR From: Christophe Leroy In-Reply-To: <20240923141943.133551-9-vincenzo.frascino@arm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 136D31C0018 X-Stat-Signature: f89hekb8z7s63cf91uhxt7qxzuqgziog X-Rspamd-Server: rspam09 X-Rspam-User: X-HE-Tag: 1727248142-918030 X-HE-Meta: U2FsdGVkX1+I3Z7tkkCjcy/ykD82OkQuodTMSXPDJqNQTckBFervO5gGJSTNm7ViD1/t3C3HbclIHoTcTCawLDKQ9o3ytEEg6f5AwGSEeOR+dY4pFk4M255x8V9cs6fvy/Nd2TYggVWLUlEh4KVz27i9/VpoOKW9qLfIti/c+MluFrFOazL0ZwLqqy9jwBIx+Tu6tOmscn2NxtgeKwdZXVTnoJKGd6jzWX36tute39/Q04nYrailQxXc90lN8t0+IE4vscjGaXnVEZH/I85b5FUrL/lrp9M38PuOqEjAJUeyk15CxhKtf1VT6zatb1BtZX7c/IJClZes7JS62b8p+IwJybR3dbGPglC63YUtGbVMsEQ7g+iax7RN+E787/mlHr56e+tmwIzQzd8yCdcs3o3WVWzo8CFh4hSvdt5xzlK6lpfyD4MqX8Fxzw8Gq7z+S2CzbeiA1OM9Y26DZbGP8flMteJY6eJRAShbyGtFPCaa1GQ5hJQPb+X9gg/onuatSVeljeiokDKN3qYfQx5E+gtfSVmcifCHlE5L3omE0TVmfsFj9F+F3lGl+WN826vlOWK0ilikC2qAchZRdZfVkLYI7ZozdpST8gzkZWDjH4d/0H9TBmXTetVLfEbNNJ152MOYKmqTxBvmnjGC5As3pRk22fqnbPIeX0iPUKWN77H5IKKhck+e1PBmdO+zoFA11Shm3sk7k6Wx2kng8uZ4Fql4+CbM852MdQtzntaVqzmPcyvszzDtKgdETGDyXLcfGfnGBufft8Tk9WEHi8H+y39rjCQv5aoL9yuXh/gqcewOIqsn4uIrEsNnxxI4waO+wp76ZsAGCm8vDhk3iKvVxydZTNfK9sKJDFhgdtl6zdDzKZ0dl9p7SGJmI5LB/jbb4FJovFlLEUNSOv2m+aXa9W423b3N4/Ykz+8brNwDDfPdLvTMW0Tx+HdBc4KGQ7uCzpKlHnTH7f7eX9syzzx xzbvcWb+ cY1P3TP27lzNawflWoRZ48u6JW4aQR2fQtVA6Qv1/o/+Qit4CrpGXJLQtiW5cxy9GbDTNIeKs1JZk9XRwlucI2pB644ePVcvJzIAH8FLIYJDm/J9qO721hMun9igDuKWyZQcknJ8MT60BN/yKJR7YGx6PBp2AgkcBe5P2FueJ8ZC4tm7sTjLwefThzZ1tXS6p68Fqi/2taXyZU0R9cpcOnqMGM5xOaaZ6XSTFwT2obCC+/tZ1BvinwvmqoC+pmtpmurhqiUeRxAtVxGxOGOUbgX/ou+QEisibYo2syygdarBSi+DuU6u72NpLuQ== 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: List-Subscribe: List-Unsubscribe: Le 23/09/2024 à 16:19, Vincenzo Frascino a écrit : > The VDSO implementation includes headers from outside of the > vdso/ namespace. > > Modify getrandom to take advantage of the refactoring done in the > previous patches and to include only the vdso/ namespace. > > Cc: Andy Lutomirski > Cc: Thomas Gleixner > Cc: Jason A. Donenfeld > Signed-off-by: Vincenzo Frascino > --- > include/vdso/datapage.h | 1 + > lib/vdso/getrandom.c | 22 +++++++++++----------- > 2 files changed, 12 insertions(+), 11 deletions(-) > > diff --git a/include/vdso/datapage.h b/include/vdso/datapage.h > index b7d6c71f20c1..127f0c51bf01 100644 > --- a/include/vdso/datapage.h > +++ b/include/vdso/datapage.h > @@ -5,6 +5,7 @@ > #ifndef __ASSEMBLY__ > > #include > +#include What in this datapage.h requires this build_bug header ? > #include > #include > #include > diff --git a/lib/vdso/getrandom.c b/lib/vdso/getrandom.c > index 938ca539aaa6..e15d3cf768c9 100644 > --- a/lib/vdso/getrandom.c > +++ b/lib/vdso/getrandom.c > @@ -3,19 +3,19 @@ > * Copyright (C) 2022-2024 Jason A. Donenfeld . All Rights Reserved. > */ > > -#include > -#include > #include > #include > #include > -#include > -#include > -#include > +#include This change is not needed, asm/vdso/getrandom.h is in VDSO namespace, and the other two are UAPI headers which must be safe to include in VDSO code as VDSO code in userland code. > +#include > > -#undef PAGE_SIZE > -#undef PAGE_MASK > -#define PAGE_SIZE (1UL << CONFIG_PAGE_SHIFT) > -#define PAGE_MASK (~(PAGE_SIZE - 1)) > +#ifndef ARRAY_SIZE > +#define ARRAY_SIZE(x) (sizeof(x) / sizeof(*x)) > +#endif > + > +#ifndef min_t > +#define min_t(type,a,b) ((type)(a) < (type)(b) ? (type)(a) : (type)(b)) > +#endif Would be better to force undefine/redefine ARRAY_SIZE and min_t instead of defining them only when they don't exist already. > > #define MEMCPY_AND_ZERO_SRC(type, dst, src, len) do { \ > while (len >= sizeof(type)) { \ > @@ -79,8 +79,8 @@ __cvdso_getrandom_data(const struct vdso_rng_data *rng_info, void *buffer, size_ > if (unlikely(opaque_len == ~0UL && !buffer && !len && !flags)) { > struct vgetrandom_opaque_params *params = opaque_state; > params->size_of_opaque_state = sizeof(*state); > - params->mmap_prot = PROT_READ | PROT_WRITE; > - params->mmap_flags = MAP_DROPPABLE | MAP_ANONYMOUS; > + params->mmap_prot = VDSO_MMAP_PROT; > + params->mmap_flags = VDSO_MMAP_FLAGS; At the time being the flags and prot are the same for all architectures, there is no point in introducing VDSO_MMAP_PROT and VDSO_MMAP_FLAGS. Maybe one day that may be needed, but until that day nothing should be changed, unless you already have in mind and describe an architecture that will need that. Christophe > for (size_t i = 0; i < ARRAY_SIZE(params->reserved); ++i) > params->reserved[i] = 0; > return 0;