Received: by 2002:a6b:fb09:0:0:0:0:0 with SMTP id h9csp2906412iog; Mon, 27 Jun 2022 05:30:58 -0700 (PDT) X-Google-Smtp-Source: AGRyM1sESA/oaBC+HjHP+i1QPFRJKa4/Sq6YvuHuRJqQBsz+z036v6HoHepV290P7Snnt+nhVzJE X-Received: by 2002:a05:6a00:16ca:b0:525:a5d5:d16f with SMTP id l10-20020a056a0016ca00b00525a5d5d16fmr7955341pfc.9.1656333058424; Mon, 27 Jun 2022 05:30:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656333058; cv=none; d=google.com; s=arc-20160816; b=QKe1hJbZ8SYmzI2K7fj1s/ic/cWao5SfswEQG9NWye4gEg12CbzeML2CEELrNbVAj9 AWRnr7HIvw5fnpehw3L/ToFW1tm2tYd/M0uSjCuLJ8JzbVzqpzRSwWVukPSceBJYU1QS OXgAVuI5q8PerRHNoKTcjpZgI6gv+qZbSpfiQP0IazZirwQx85zsT4rbg+lXYqvr3nIy 2RNlG2eXn0hGYrnxkyAhycvKkoBTkIunMU95rjOxxy7KgeTMZiFi/9Hk1GfQtVLN7E6+ ZMV55QJqQ/igw07SAZbnP+vjlFwtm544xd88le9JwpbCPzP40MI/+by8RdEjYRYThEfB 7y7w== 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=6MsS3T0JxP3erpLPdBK+o0z7sHsnTnkctMEcsDgKLe8=; b=KgD9Z+QhN+r5tmAmHruWFlMJkC3bdFEmK6hs2UzMhvn0KCAaFFipKikJlJoopY1dze oHVVPQrdIIXhZ6i/NB+tqF4EPVMnDapHp077NgyysUBvt43t56DS+G+fY8I5qf2y2evD 4pQIfOr3NcUqVcbsYIwUUDfUb1ce3EXw6iZSAAUjx5BDy4lVX255IEXC4SS3WAOuZncP v3ftcHSV91terv3AiQ+gwk6dcontvneyOD+nG65B49fZteVUNj0A3GU8+YJnVqmsS2xN aewa0xzURgNXWrsZCqiwp4fcVxpwC4XCwZblO2v3g9bV3Nt5Bdp8Rzl1ja5opc+YPApx unjg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=xu5dEthc; 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 j2-20020a056a00174200b0051872773159si16808523pfc.228.2022.06.27.05.30.45; Mon, 27 Jun 2022 05:30:58 -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=xu5dEthc; 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 S238217AbiF0Luf (ORCPT + 99 others); Mon, 27 Jun 2022 07:50:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:45234 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238242AbiF0LsK (ORCPT ); Mon, 27 Jun 2022 07:48:10 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 55F02BCB3; Mon, 27 Jun 2022 04:40:08 -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 dfw.source.kernel.org (Postfix) with ESMTPS id D1F0761189; Mon, 27 Jun 2022 11:40:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id DD900C341CB; Mon, 27 Jun 2022 11:40:06 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1656330007; bh=bvE7pUXu9UZetb17AyI0bAhjaGK3GCkKQJQrvyIq5Dg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=xu5dEthc0MNdykgUbwuw9QGo1c/tDn+oMEgnTUc6gHXZY3A2QiiFPQvLq4g3qr28P 57DjSXyzSuDW3gdTmfzebyIoXjuOLBiBbWlJeyEdIVzqbxZeA8Bh7YMwRqr9o47Frv HISM72uy5a9w9SqTFWutje0LC+eJ+eOTOODkMXWQ= 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.18 002/181] random: quiet urandom warning ratelimit suppression message Date: Mon, 27 Jun 2022 13:19:35 +0200 Message-Id: <20220627111944.629481911@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220627111944.553492442@linuxfoundation.org> References: <20220627111944.553492442@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_types.h | 12 ++++++++---- 2 files changed, 9 insertions(+), 5 deletions(-) --- a/drivers/char/random.c +++ b/drivers/char/random.c @@ -87,7 +87,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_types.h +++ b/include/linux/ratelimit_types.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)