Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp704965iob; Thu, 12 May 2022 02:57:16 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwBN99ABMKjcvO5n/c8BRgm04+P2UVlP/MpB40qJRY/VurOJaMRMF5t2mQHpTtL2zhUfloI X-Received: by 2002:a65:6412:0:b0:3c1:7976:5be8 with SMTP id a18-20020a656412000000b003c179765be8mr25045454pgv.580.1652349436533; Thu, 12 May 2022 02:57:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652349436; cv=none; d=google.com; s=arc-20160816; b=rsW7zjqLz4nAZKsMa6dDcQ9QF2ng7kPIidnVns2QqfOPmD9pezYUOzV+QbUDLii/4W Yfq3o9xh2Loi6PPCGZSiRg2P9B6iVO6d4NtwuuZ7g9OYRqhGP0wf3qIiWS1rm8DF3dLB m7kkTkN0IBeJuCG45u8DJI362BdZ2u3wUCHEVSsZbbjeoTC3nafUIl775f71Yt6k84jx CDq6FPRlv9V88d9IWEhyhbrilYo9pIS0CDjWnMW7qq19yielVFy4HSSBAJkHi4FUlN+T O3i8MQv3gyNjVklwb8xlcM7cY85fPcMzhf8TTS0EG7pAX6koweNe910BOcw2Ps5SpBcg IrbQ== 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 :message-id:subject:cc:to:from:date; bh=qr1qgBLw8G5HXK6ThLapcKfVUyVSOCfx2msITRVlXY0=; b=h8y/U6+oX429KDsebZ9gBgJM27kgEPt+HUTGvSZkTuZ/M/DIXl6oc7sk8ZkZr2ggfL foYTCgxZoNMcs0UJwCUVqV0PbOSYEMoGaJCCe8PUpc70ig6918OxswCV7XSdypMXjiFj MGtC700N484XfzPCVBlLDX1gbT2mqeheq1TGAjiqc54w2ZPaM4Z1JFbxcVTN/plLKql4 4fwDhT3FzVn+MwQgdpSZGaBtZgKPptv920zwcfO6oGUzFsflrGbHnVHHGeN4gDHrFcnG sKN3HpjxbQDYqnrRTxS/nmGG2ltcoYswA7gFAen9ykJjGmrPTFj/7das8UtkNbtOipZ+ cqGg== ARC-Authentication-Results: i=1; mx.google.com; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id z12-20020a63330c000000b003c6a5d78bb5si2696164pgz.411.2022.05.12.02.56.49; Thu, 12 May 2022 02:57:16 -0700 (PDT) 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; 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1346463AbiELEgM (ORCPT + 99 others); Thu, 12 May 2022 00:36:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57802 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1347030AbiELEf7 (ORCPT ); Thu, 12 May 2022 00:35:59 -0400 Received: from fornost.hmeau.com (helcar.hmeau.com [216.24.177.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3D35765FB; Wed, 11 May 2022 21:35:58 -0700 (PDT) Received: from gwarestrin.arnor.me.apana.org.au ([192.168.103.7]) by fornost.hmeau.com with smtp (Exim 4.94.2 #2 (Debian)) id 1np0YJ-00CnG2-KM; Thu, 12 May 2022 14:35:53 +1000 Received: by gwarestrin.arnor.me.apana.org.au (sSMTP sendmail emulation); Thu, 12 May 2022 12:35:51 +0800 Date: Thu, 12 May 2022 12:35:51 +0800 From: Herbert Xu To: "Jason A. Donenfeld" Cc: linux-kernel@vger.kernel.org, linux-crypto@vger.kernel.org, tytso@mit.edu, linux@dominikbrodowski.net, rostedt@goodmis.org, ardb@kernel.org Subject: Re: [PATCH RFC v1] random: use static branch for crng_ready() Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Newsgroups: apana.lists.os.linux.cryptoapi,apana.lists.os.linux.kernel X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE 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 Jason A. Donenfeld wrote: > On Tue, May 03, 2022 at 03:40:52PM +0200, Jason A. Donenfeld wrote: >> +static bool crng_ready_slowpath(void) >> +{ >> + if (crng_init <= 1) >> + return false; >> + if (in_atomic() || irqs_disabled() || cmpxchg(&crng_init, 2, 3) != 2) >> + return true; > > Nobody chimed in here, but for posterity I thought I should point out > that this approach actually won't work, since in_atomic() doesn't work > with CONFIG_PREEMPT_COUNT=n kernels. > > So back to the drawing board in trying to figure out the best way to do > this... Well the standard solution to code paths that require sleeping is to use a work queue. So any reason why you can't just schedule a work to do the static_branch_enable? Cheers, -- Email: Herbert Xu Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt