Received: by 2002:a05:6a10:1a4d:0:0:0:0 with SMTP id nk13csp998038pxb; Tue, 8 Feb 2022 07:10:04 -0800 (PST) X-Google-Smtp-Source: ABdhPJwSeCc1sFWRPcVuREGmf4Yml7H+8ywEOZg1K00MXGZYnaG9hfu8fhRX/vWVBkk/84KGUv+j X-Received: by 2002:a17:907:97cd:: with SMTP id js13mr4121379ejc.41.1644333004027; Tue, 08 Feb 2022 07:10:04 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1644333004; cv=none; d=google.com; s=arc-20160816; b=J4EVpZ2O4t3ARyCG0hvFAjOshf1/yiNSGoozvFIDpo/h67oCWj8yBm/AC3TuYJT4ou Cd7cLtBLy/lucw5Dg/XH4hKyF2CSB2x0A/MATVpFjFX/+r0Jxkvoo7t6cpDB4q6NlB2N wZWSJKb2za2OQLZmnyHYuqihbIMWbeoEGg2H3CFZQBUCBl5ySKCj13Cr+6FKMd/C1CHc Ji08uAoJbd7YoCzAdyWKtxs7uHpV7fh5h2H+bNEQ8Ws0meEQ0RDY+zIlX4K+zE5byqO4 KliUTaMfW8D0XOP4Cstu7AfaCXEwVmHKc+XIGGjnPpMyQ0iVnui8qupOPs9b9Ps9+r1O mT+w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:dkim-signature; bh=lwNho10NSvUvgMsTPwNeOvofrX+IJ611XZs8ySHA1Wo=; b=1FxGLN34W5IcxnaHsy/+m72wEPQ30P8wXEma+3pwkop0ILIrBUCZh42oBnL2+A8cO+ 0dyQJaP6qjsyZ8pSqW/pL1Cg0uV4Ab0a6Ye1Koaq7kL1i6D81cmpJPDLd7Y4aRq88YdK hdY9Q2OG/2xolv0lxmHKQbNbvBab9g9aDBTzkbZX4Zt5MCBV2+ldWoMiOFKaU1i53eq3 syedxtA4diQL0Nxg2mS78IvyWUqwq5r/SWK96XAINmdVhaa1bN07r6iDyuAVW/wVCyKc mYoC6ieTVaD2fRsFybTXkrFNzFRjkGHPkiCm6+gh/DbVlhDDGEy9RpW2g/ycT0j1s3Xy rfog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=LBxgTV4F; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id er22si3024491edb.193.2022.02.08.07.09.36; Tue, 08 Feb 2022 07:10:04 -0800 (PST) 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=@google.com header.s=20210112 header.b=LBxgTV4F; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241994AbiBGVpj (ORCPT + 99 others); Mon, 7 Feb 2022 16:45:39 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235505AbiBGVph (ORCPT ); Mon, 7 Feb 2022 16:45:37 -0500 Received: from mail-vs1-xe35.google.com (mail-vs1-xe35.google.com [IPv6:2607:f8b0:4864:20::e35]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B072C061355 for ; Mon, 7 Feb 2022 13:45:37 -0800 (PST) Received: by mail-vs1-xe35.google.com with SMTP id f6so1237343vsa.5 for ; Mon, 07 Feb 2022 13:45:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=lwNho10NSvUvgMsTPwNeOvofrX+IJ611XZs8ySHA1Wo=; b=LBxgTV4F2iQiPXVDRq7ADCCqouUP5XvK/lIQIaGw5372xy8vdbEcd+Gq6sFDu0BG6O UFcbCoKIC7XrpnRPmARzCDBxwChhmZeI5rXTetBg+pQ05Y1V0p8FTWyoqKjDKkBEZEH0 5G/FZKRu95PXGzfQ4cG0meMf6H28mqTJD6Kx3lMFdADSzmmeN2ltFfBh3lDZWYTN+60e SrmL4lSgOKwF+LTQpdBwS43THXBpf0MzSuwQst7EK+h/SZGXe0QiTURnhwRrqUvUlQdj 9Z/yJ0awQtytvQmDPUiGMa0hLRbNiSO1Lgtw+GTEG22XjfKxcuBel1fEEcFgO4M/0uA3 M9rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=lwNho10NSvUvgMsTPwNeOvofrX+IJ611XZs8ySHA1Wo=; b=HjQpr9CtdGicJVQLypcr+oRfdNvQvOCjN5ipEPxQmuflg5r5q+oc03HiWtzxdLizx9 w3RI/UvvV/ZYWZVfGnOHuOayclRCwFuxeCK+om6f2WELoeYd1/JPNCdgokBEJesWBirq 3UFJUt+YiLwx/2zTha0maKI9TwnoIWTQ6JmrES+8AOOjuvDUapsVE0ZsdXyr4mnbJ60T uouFk5fntguXJFwEpyo8Hd7oHndsGNLdut67jyInHPHNkoPyxPfxBR4q+ZYpAQNd/8Q4 IQTmJGFqE7UiGITffREyTgEcHM75NJ2pmBYhJdvw9zOvbtNd/HVR6w6Ho/sY+FVxve6s oZ+Q== X-Gm-Message-State: AOAM5330+oo1oqhXZaoGgil4prW3HrfOz80iGDAvfm5aKEArPiMydUGx onID8rqfMqzn/Li9EbZYGicd0eMJCpU1Xkn5NCftDpfLoJY= X-Received: by 2002:a67:e08d:: with SMTP id f13mr603569vsl.78.1644270336041; Mon, 07 Feb 2022 13:45:36 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Jann Horn Date: Mon, 7 Feb 2022 22:45:09 +0100 Message-ID: Subject: Re: BUG: KCSAN: data-race in add_device_randomness+0x20d/0x290 To: "Jason A. Donenfeld" Cc: pmenzel@molgen.mpg.de, "Theodore Y. Ts'o" , LKML , Dominik Brodowski Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Mon, Feb 7, 2022 at 7:42 PM Jason A. Donenfeld wrote: > Thanks for the report. I assume that this is actually an old bug. Do > you have a vmlinux or a random.o from this kernel you could send me to > double check? Without that, my best guess, which I'd say I have > relatively high confidence about, is that the "1 byte read" is > actually a `movzx eax, cs:lfsr` referring to the `static u8 lfsr` > here, which gets inlined into add_device_randomness: > > static int crng_slow_load(const u8 *cp, size_t len) > { > unsigned long flags; > static u8 lfsr = 1; > > This was added in 2008 with dc12baacb95f ("random: use a different > mixing algorithm for add_device_randomness()"). My understanding is > that the race here isn't super problematic as we're in kind of a half > assed "low effort" phase anyway. But I'll give it some thought. I'm > CCing Jann as well who reported the original issue that motivated that > change. But the "lfsr" variable is never accessed outside the part of this method that holds a global spinlock. So that can't really be it, right?