Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp176247iob; Tue, 3 May 2022 14:25:13 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyKshldYEVUU80PzDzAhtgYSprtzsQ2Y6buOOkm+CLsif0FUhwVpB/Gh3Sh+ZF/8LI7+ktp X-Received: by 2002:aa7:83d0:0:b0:50c:eb2b:8e8a with SMTP id j16-20020aa783d0000000b0050ceb2b8e8amr17702265pfn.31.1651613113358; Tue, 03 May 2022 14:25:13 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1651613113; cv=none; d=google.com; s=arc-20160816; b=MANBv7U5TX1m7r/V/QXytci/DKXojTogmAxDILOuWKEfw+dAP4mnHdL2xdhBxwo+/9 Sh9u9/qLZbs29uc9PxJRPviBfhGHy8UN9AXbL7dxkXHIWneRpN/6JrAr/KGQxQh88sxy gSd11a/bQs5r5aGTUqPXsqPt6x4cU3iptA7y+d1XtGgVj/bt/6ejXEWLXJ395r9ujDF7 amUdc5U8vfzInO8HjdqntVudxf5VnMdfQDa9QdHRF7vwG+BYEOlQ52d/0D+16hWEj0zP cgBRLPF+ANi88rJFCyhbaNqn2r1y0GARXkzvyDH2+2EDWw2TQvgJJRcuaL5nvjy5PMrz Tvzg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature; bh=BxpYESRIKwi1auTgh5eHR9+TmwXL9lpEEEIwRD9mk/4=; b=tT4ScG2P3ZLELM/9z7ZYWh5HCN2913Y+Yq8n65UOAP2cg7ET96NQKpg183Se1luQ3S dlALMotf+Urb28Oeq2BwvZ4CafGldApc5sNyfQKxlwW8dEJSewRMJBRQOkGvNBlNAwgl EN30uHQCGfv1UOic9/IFd39mAzzaCVIlUNpyI57RvGbFqPXN7bGrP9QmP7dA8oYWaD5b vkLP7lPtZyQDWp69/j2NwJANh2VgxrKN5NLVuGD11tRojamF1ALxESby4T56a4l4jUrs DKiiV8HZ+Yu0McJNNo2e6tpiuBZR5lXccNrUI90NHfjmXgFeEw/feJIjcksYEz0+t8+g ntEw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=qGnTUWTZ; 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=NONE sp=NONE 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 p19-20020a056a000b5300b0050d332b93b2si704637pfo.18.2022.05.03.14.24.35; Tue, 03 May 2022 14:25:13 -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; dkim=pass header.i=@zx2c4.com header.s=20210105 header.b=qGnTUWTZ; 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=NONE sp=NONE dis=NONE) header.from=zx2c4.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231940AbiECTz3 (ORCPT + 99 others); Tue, 3 May 2022 15:55:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231902AbiECTz1 (ORCPT ); Tue, 3 May 2022 15:55:27 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A9183F30B; Tue, 3 May 2022 12:51:54 -0700 (PDT) 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 CC735B81EAD; Tue, 3 May 2022 19:51:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 2AA4DC385A4; Tue, 3 May 2022 19:51:51 +0000 (UTC) Authentication-Results: smtp.kernel.org; dkim=pass (1024-bit key) header.d=zx2c4.com header.i=@zx2c4.com header.b="qGnTUWTZ" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=zx2c4.com; s=20210105; t=1651607509; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=BxpYESRIKwi1auTgh5eHR9+TmwXL9lpEEEIwRD9mk/4=; b=qGnTUWTZg5FvW5bMKcItP4+AtWV8VClks/DbJqpTfqqUrCZDZiQjdQwjs42ZJxmjt/2qL1 BDhfuLlxprWjB2WWFdpR7BnI6+QbA4/gXEWu9gbm4XABLr5dG1ICyICAql/ZBathdG9Kmi 655ZkBgTWX+5Q96U4ReGa1tf34mk+9A= Received: by mail.zx2c4.com (ZX2C4 Mail Server) with ESMTPSA id 394072c4 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO); Tue, 3 May 2022 19:51:49 +0000 (UTC) From: "Jason A. Donenfeld" To: linux-crypto@vger.kernel.org, linux-kernel@vger.kernel.org Cc: "Jason A. Donenfeld" , Dominik Brodowski Subject: [PATCH] random: mix hwgenerator randomness before sleeping Date: Tue, 3 May 2022 21:51:41 +0200 Message-Id: <20220503195141.683217-1-Jason@zx2c4.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit 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,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 The add_hwgenerator_randomness() function is called in a loop from a kthread by the hwgenerator core. It's supposed to sleep when there's nothing to do, and wake up periodically for more entropy. Right now it receives entropy, sleeps, and then mixes it in. This commit reverses the order, so that it always mixes in entropy sooner and sleeps after. This way the entropy is more fresh. Cc: Dominik Brodowski Signed-off-by: Jason A. Donenfeld --- drivers/char/random.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/char/random.c b/drivers/char/random.c index 845f610b6611..d4eae4b167b4 100644 --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -1154,6 +1154,9 @@ void rand_initialize_disk(struct gendisk *disk) void add_hwgenerator_randomness(const void *buffer, size_t count, size_t entropy) { + mix_pool_bytes(buffer, count); + credit_entropy_bits(entropy); + /* * Throttle writing if we're above the trickle threshold. * We'll be woken up again once below POOL_MIN_BITS, when @@ -1164,8 +1167,6 @@ void add_hwgenerator_randomness(const void *buffer, size_t count, !system_wq || kthread_should_stop() || input_pool.entropy_count < POOL_MIN_BITS, CRNG_RESEED_INTERVAL); - mix_pool_bytes(buffer, count); - credit_entropy_bits(entropy); } EXPORT_SYMBOL_GPL(add_hwgenerator_randomness); -- 2.35.1