Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp8205650rwb; Wed, 23 Nov 2022 17:31:33 -0800 (PST) X-Google-Smtp-Source: AA0mqf4yxznaYVjJ9+8e5DpNcbiGWUXuSOinsWE4ogDf3EAFQqAQyRBugeOKwtK4s/WWOrmNb8ju X-Received: by 2002:a05:6402:1502:b0:469:13c4:ec5f with SMTP id f2-20020a056402150200b0046913c4ec5fmr24274857edw.199.1669253493039; Wed, 23 Nov 2022 17:31:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669253493; cv=none; d=google.com; s=arc-20160816; b=Ej+Sssw9r4EUT/4cfJK41WrhwBDS5jp/v2TWiw0nQo98Xf5gHB33MPm52SJkchvwo4 PaUrQeKTsBaUIH0d04q6dHQCpOjRn1yUSAyXo7RRcsB1JjKoxzQoBsW8amzurOQLDGzH 34lgthdma0fcTFeI5pLzgM/oW+6xe+GxpL+XklJ/9BUP0J71d10P19HXRVDHMTqphWGb Gkpr6pjoiL7/Lgx1jUsT7eSB09ueAs/pF4Z3bwQR1uZ4QxnKBCErybU+w9XKL8eSk/Oy bQoIwpsn/kDQANLYeWncDwmH9KOm8+FOXqDZO9/WkvpcJHjiqhFJaamtdKzsF4jIAQXL 9j5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=jq/kgX6oeVA21zqtsBwkDHPYqUeMNJkafuAfZk9Ja+0=; b=1HKig9GjnZ10w1d5Qnn2IeVfRDZghjbvJx+zNNu6G9AW9+8Ovgm/qR82z/omwhDl70 jIzwLkeyIKcFyYcv0U7WDmq0llF/Kk0JXdI/cYp0jtKphqNTemtd4wi5eVJfZ4fBzU6c zYk0ivXjKSpYnaLGw0n4eOUxK6HtiQnhYPdgVEwsNOMJ6Q2I0Aujevx1JNETEKAFnKra 84ajTagjjNxVJZRoMc4Vo4zj8/uDhS4Nn0c2e/Ooi8+oviMPrYDD2FDjQ8o1IQAAoCTr rmucGDy2ceoonQkuiuR4eWHmoTnhWxf8XE/JPSsYXJPTD3IO+fle9LmMdQalGvQpygtf UWQA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=ESyQDzKV; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=zx2c4.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id xd4-20020a170907078400b0079d5da30399si16138740ejb.427.2022.11.23.17.31.01; Wed, 23 Nov 2022 17:31:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=ESyQDzKV; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229760AbiKXBI7 (ORCPT + 99 others); Wed, 23 Nov 2022 20:08:59 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37932 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229813AbiKXBIw (ORCPT ); Wed, 23 Nov 2022 20:08:52 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A24AE106121; Wed, 23 Nov 2022 17:08:51 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 61B63B82601; Thu, 24 Nov 2022 01:08:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 19061C433D6; Thu, 24 Nov 2022 01:08:47 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="ESyQDzKV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1669252126; 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: in-reply-to:in-reply-to:references:references; bh=jq/kgX6oeVA21zqtsBwkDHPYqUeMNJkafuAfZk9Ja+0=; b=ESyQDzKVrdgu1ir4VmP9swMJwjpGnDP1epO+1N1XeGcoWfi5vQOi9OcK8NkHse9NG+bmCq R6xSIqa6x0zcmDPZY0LaKjrtMQeJRruINLfghzLwEgR0gUMixuZKFFKcBMqTAezXrm2Gcg MyynCkI8vCgepZJdgCs6UI0v8hyAMjs= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 83d3477e (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Thu, 24 Nov 2022 01:08:46 +0000 (UTC) Date: Thu, 24 Nov 2022 02:08:44 +0100 From: "Jason A. Donenfeld" To: Florian Weimer Cc: linux-kernel@vger.kernel.org, patches@lists.linux.dev, tglx@linutronix.de, linux-crypto@vger.kernel.org, x86@kernel.org, Greg Kroah-Hartman , Adhemerval Zanella Netto , Carlos O'Donell Subject: Re: [PATCH v6 2/3] random: introduce generic vDSO getrandom() implementation Message-ID: References: <20221121152909.3414096-1-Jason@zx2c4.com> <20221121152909.3414096-3-Jason@zx2c4.com> <87r0xulzfd.fsf@oldenburg.str.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <87r0xulzfd.fsf@oldenburg.str.redhat.com> X-Spam-Status: No, score=-6.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_HI,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Hi Florian, On Wed, Nov 23, 2022 at 11:48:06AM +0100, Florian Weimer wrote: > * Jason A. Donenfeld: > > > static void *vgetrandom_alloc(size_t *num, size_t *size_per_each, unsigned int flags) > > { > > unsigned long ret = syscall(__NR_vgetrandom_alloc, num, size_per_each, flags); > > return ret > -4096UL ? NULL : (void *)ret; > > } > > The traditional syscall function returns -1 on error and set errors, so > using unsing long and the 4096 is quite misleading. Not sure I have any idea at all whatsoever about what you're talking about. Firstly, the function you quoted is from the "sample userspace code" in the commit message, so it might not be code for the context you have in mind. Secondly, it's just doing the thing to figure out if the return value is an error value or a pointer. Were we in glibc, we'd write this as: return INTERNAL_SYSCALL_ERROR_P(r) ? NULL : (void *) r; Right? And if you look at the expansion of that glibc macro, it's just: #define INTERNAL_SYSCALL_ERROR_P(val) \ ((unsigned long int) (val) > -4096UL) So it looks like the same exact thing? The only difference I could see is that I assign it to a `unsigned long ret`, while glibc code tends to assign it to a `long r`? Is that the difference you're pointing out? Except that clearly doesn't matter because it just gets casted to unsigned by that macro anyway? Confused. Jason