Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp2907934iog; Mon, 27 Jun 2022 05:32:42 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sh8z99qXffbLjcMKD9thlvw3tv2tkvIZnuPHbfKJxfahYsiqgc/0Gfoks9sfJXW4yOklNn X-Received: by 2002:a17:902:7893:b0:16a:6d44:2556 with SMTP id q19-20020a170902789300b0016a6d442556mr13681372pll.166.1656333162232; Mon, 27 Jun 2022 05:32:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656333162; cv=none; d=google.com; s=arc-20160816; b=Z/khdGgBIKQ5tmkXdOomY2LvqnQK5cYc6xppqhj8+tgBq6tLComPdkp4WO21D9YzIb q9PoA0N/Lrw3l6MBdGiDEXGhu2EWKuNl2gjUC8pmzmhQAUIpRZo70x8N7yasc7zQM0QX GtY4D6zx2ZP3ve6fb7FVOU+40RNf/q0fPvpdmhrUSgxRMS0sNPeSe4Gze6daqFS+XZSB Rg0eZL02Yhiiw0v1HK6noNEaqOoK7A+THP5z3i8BnJhH8qcz/jalfL4cKAMtZ+MIlCrK +WUoYy0VDZVwc4iBmisC6q0TqRkDQjP4d3eucLqG/ppzd5FTmvzpSOggcEW+A9VuqgBW UArQ== 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 :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=kY0Txeg16kLfxDqtv2upnCSpRuK9QD6dAAyhkq0hKac=; b=Amb6ySow2KgHcbvCtRNWlNJxgNpFZCuLmTHXilxKkfUFEoEejWBu06LJAwhoKB2xMm 678UjJebipkoLxxOEG2o1NAgSUNXKpxJfN4kxRElbrHEs1722012ngagC0x9vpP20xO8 bp/+zsTTotbHDJQy1U55yu1/wYFqvMZzbcHy4+W58Yxqf3hPXEyVvWi+3l+/srl1F4Rv qWBnIskIHUycD5VjF3fJ0Cq/KGiIOgO2rS0w/Wo3dN0nZMO6HvAgPh4vQPioGE5+NAx5 RqZddG8U5eyIrjnVsvYeQGib/bHNVBT6BVE0KYKj13m4Xmrq0vJSEi0nl23NJjs81qGX g0Vw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=gDABpeYS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b28-20020a631b1c000000b003db2ab7cae4si14142234pgb.688.2022.06.27.05.32.29; Mon, 27 Jun 2022 05:32:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-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=@linuxfoundation.org header.s=korg header.b=gDABpeYS; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235448AbiF0La0 (ORCPT + 99 others); Mon, 27 Jun 2022 07:30:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46496 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235260AbiF0L3W (ORCPT ); Mon, 27 Jun 2022 07:29:22 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1D8C282; Mon, 27 Jun 2022 04:28:19 -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 6FF88B81117; Mon, 27 Jun 2022 11:28:18 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id BB71BC341C8; Mon, 27 Jun 2022 11:28:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1656329297; bh=r/AUmqVNZ/rqk8TyaWRYjSqZNwcpqBfVSV8e106GGsk=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=gDABpeYSYDTuYz7ukqDcaMTnOqfdo8VRSvoMqsX44DxyNuVg3mYzkVGGZt1P3hW0S GHKSq50I/nBkXdSz0t59NhFEwYsMD7Ee2n2+9pC9DJDY19ddEqIYtyHTo54lEU/4yS 6aIHY57Q5H0vadHwgLLNPuHNjCXNDJiGtPsMxCvo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jon Hunter , Ron Economos , "Jason A. Donenfeld" Subject: [PATCH 5.4 13/60] random: quiet urandom warning ratelimit suppression message Date: Mon, 27 Jun 2022 13:21:24 +0200 Message-Id: <20220627111928.045896631@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220627111927.641837068@linuxfoundation.org> References: <20220627111927.641837068@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-7.5 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,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-kernel@vger.kernel.org From: Jason A. Donenfeld commit c01d4d0a82b71857be7449380338bc53dde2da92 upstream. random.c ratelimits how much it warns about uninitialized urandom reads using __ratelimit(). When the RNG is finally initialized, it prints the number of missed messages due to ratelimiting. It has been this way since that functionality was introduced back in 2018. Recently, cc1e127bfa95 ("random: remove ratelimiting for in-kernel unseeded randomness") put a bit more stress on the urandom ratelimiting, which teased out a bug in the implementation. Specifically, when under pressure, __ratelimit() will print its own message and reset the count back to 0, making the final message at the end less useful. Secondly, it does so as a pr_warn(), which apparently is undesirable for people's CI. Fortunately, __ratelimit() has the RATELIMIT_MSG_ON_RELEASE flag exactly for this purpose, so we set the flag. Fixes: 4e00b339e264 ("random: rate limit unseeded randomness warnings") Cc: stable@vger.kernel.org Reported-by: Jon Hunter Reported-by: Ron Economos Tested-by: Ron Economos Signed-off-by: Jason A. Donenfeld Signed-off-by: Greg Kroah-Hartman --- drivers/char/random.c | 2 +- include/linux/ratelimit.h | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -88,7 +88,7 @@ static RAW_NOTIFIER_HEAD(random_ready_ch /* Control how we warn userspace. */ static struct ratelimit_state urandom_warning = - RATELIMIT_STATE_INIT("warn_urandom_randomness", HZ, 3); + RATELIMIT_STATE_INIT_FLAGS("urandom_warning", HZ, 3, RATELIMIT_MSG_ON_RELEASE); static int ratelimit_disable __read_mostly = IS_ENABLED(CONFIG_WARN_ALL_UNSEEDED_RANDOM); module_param_named(ratelimit_disable, ratelimit_disable, int, 0644); --- a/include/linux/ratelimit.h +++ b/include/linux/ratelimit.h @@ -23,12 +23,16 @@ struct ratelimit_state { unsigned long flags; }; -#define RATELIMIT_STATE_INIT(name, interval_init, burst_init) { \ - .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ - .interval = interval_init, \ - .burst = burst_init, \ +#define RATELIMIT_STATE_INIT_FLAGS(name, interval_init, burst_init, flags_init) { \ + .lock = __RAW_SPIN_LOCK_UNLOCKED(name.lock), \ + .interval = interval_init, \ + .burst = burst_init, \ + .flags = flags_init, \ } +#define RATELIMIT_STATE_INIT(name, interval_init, burst_init) \ + RATELIMIT_STATE_INIT_FLAGS(name, interval_init, burst_init, 0) + #define RATELIMIT_STATE_INIT_DISABLED \ RATELIMIT_STATE_INIT(ratelimit_state, 0, DEFAULT_RATELIMIT_BURST)