Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp2926316rwb; Fri, 16 Dec 2022 08:06:56 -0800 (PST) X-Google-Smtp-Source: AA0mqf6nCszrpIGduURb0qdu610qrZ43fkG9rIWUw97vX4xiQrpCDHXrVgo/hYltoNBUz6kwA6eW X-Received: by 2002:a05:6a20:e68f:b0:9d:efbf:48d7 with SMTP id mz15-20020a056a20e68f00b0009defbf48d7mr39765931pzb.27.1671206816228; Fri, 16 Dec 2022 08:06:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1671206816; cv=none; d=google.com; s=arc-20160816; b=M5R1TTfn+j4HeTDBAgHf7RP06fUWA2HKs4dgCmzBs67x4TQwnFHmmwqkNtmWOHwAJZ v7bWDgQmyOp/QOT3kvFyy8HoYfMi9SV1zG5rO7GZuza5sd5X0d0CWdkkwPziunzmk2rg 32Y65NF7UpJ7H3ISlfETXyZrFULUJz0Cz9lBWADDwmXr6ROiWv2yiIX2jylYY7zb3M80 /WDivMrZM0vToWxFGLjjulXfsHQu/Em+a57a2R/gbDA8n35ETyvYEMzkwEeAQ0fhrse/ 77aQvEY3Ykx0LGAmAca7O/5rFFUt+sfPdo+cDORm1+blah9fzni3Cj+S8IIT/C8Y8jqu 0Whg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=UOP93QaAQMcfYeKQh80Wnem5s5Ji+Q2nkQ3zFddX4zk=; b=fuqwr/2oTpJEHbfuctFtvw6OTnsU+ICN6QQYq7YQmquLIdwqC+gQLAXaMgoMgdnLow Jsjo+9R9TS3SIqRcgCChJKpZUqCbDX/hjJQHr+MaigN798/gWhiK6k5qw4M++sNP1Owz Mnq89O9QuT3CBr/g9QR6XJKZ54UVe9wtZaleiAFjF3BpX4Lvbb/O/I6kmN19ygVw7rdd bsp/73bRiMqFEbjyGd8dL4gdd45uylrYmBlm9lqL0khrjr09b6OYqFzMb5Pqo8dkvckC wh55yBXuZ8borNSk2yrZFTtG3eL8B9ae8+LDiMNRDUtO61x7nXaPpl0J0z+k63OTdIpw ww9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=MKvZJHiN; 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 h9-20020a631209000000b0047923e93e6esi2808420pgl.555.2022.12.16.08.06.46; Fri, 16 Dec 2022 08:06:56 -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=MKvZJHiN; 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 S231543AbiLPPxm (ORCPT + 69 others); Fri, 16 Dec 2022 10:53:42 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59026 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231577AbiLPPxQ (ORCPT ); Fri, 16 Dec 2022 10:53:16 -0500 Received: from mail-yw1-x112d.google.com (mail-yw1-x112d.google.com [IPv6:2607:f8b0:4864:20::112d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6CA9FD7B for ; Fri, 16 Dec 2022 07:52:52 -0800 (PST) Received: by mail-yw1-x112d.google.com with SMTP id 00721157ae682-417b63464c6so38399867b3.8 for ; Fri, 16 Dec 2022 07:52:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=UOP93QaAQMcfYeKQh80Wnem5s5Ji+Q2nkQ3zFddX4zk=; b=MKvZJHiNxZPJHwFTNcCzAaRZYl8dantlYJp+WuJ0YpxrlF3J3BGhZHdGPiuOJrWbvX +8tqQXXp61xQOT1Jn6kCtb0D4RybGNBAkbJHDvhaShXjMJvAyHUZwXh9sDagYpTTkrjf npQWkSC0poPowZYA1GEOY9ze3gtstcwzLLXwKAdVOSI0IKoUSTZqfKnOjak1rqGYSlaG DyF+fnHwyXVdeTk7CNh6gvT4cZM3YTabPutd1r7JINmKv0Gb1Kn494iCHJoT4One3Rhp KPJ5fXd2k0RQb/ZL7bfc4ZEdK4rfLRXiObKUEIRQ8d+6iaD0dXsDDCjQ26eU9evSTEz5 uQIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UOP93QaAQMcfYeKQh80Wnem5s5Ji+Q2nkQ3zFddX4zk=; b=R4QthZIvsJXylROE8w2MTMUueBCrETWfuJm2o4Uh8fgI1ONKtQXh14S/DIKS803Pbn PXXQ2g/0qBYP2CzZ5XKLdTt+WbyFBHkNwmkZ8IkCbuBk7qpH7AF3lc/DXp7ti2EXyNVa W1H2ONld9HBWjxAwGFOZDgZZFnbC7BgtRYhIk3zIFUBDHsazHxdgpHRejxve4SGNFaFy 7pCaerrgNLkH894cdu4nATpwGW0qFuL5mfNCv5M6vpMuiSed8vXbqjZSorGvYtbNbleq Luyxe+97KY/tkLe/aP5q4Av1t+dIFGWnlkUr2yWJZqIbU+2ayPN9YMTBDcAdzH4Po2Kb +sNQ== X-Gm-Message-State: ANoB5pkhaZWc0kH9YqC9BLOvgRWAzXwmpGaTsfnRYv/Js2qVrv2n+TaG QpE5JJypnoDZ5aim5wqQJsmwQ8vtI+Ujm0do3MHemQ== X-Received: by 2002:a0d:f781:0:b0:373:6e8a:e7db with SMTP id h123-20020a0df781000000b003736e8ae7dbmr9775062ywf.144.1671205971474; Fri, 16 Dec 2022 07:52:51 -0800 (PST) MIME-Version: 1.0 References: <86bdfea2-7125-2e54-c2c0-920f28ff80ce@I-love.SAKURA.ne.jp> In-Reply-To: <86bdfea2-7125-2e54-c2c0-920f28ff80ce@I-love.SAKURA.ne.jp> From: Alexander Potapenko Date: Fri, 16 Dec 2022 16:52:14 +0100 Message-ID: Subject: Re: [PATCH] fbcon: Use kzalloc() in fbcon_prepare_logo() To: Tetsuo Handa Cc: Geert Uytterhoeven , Marco Elver , Dmitry Vyukov , kasan-dev , Daniel Vetter , Helge Deller , Linux Fbdev development list , DRI , Linux Kernel Mailing List Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable 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, 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 Fri, Dec 16, 2022 at 3:03 PM Tetsuo Handa wrote: > > On 2022/12/15 18:36, Geert Uytterhoeven wrote: > > The next line is: > > > > scr_memsetw(save, erase, array3_size(logo_lines, new_cols, 2)); > > > > So how can this turn out to be uninitialized later below? > > > > scr_memcpyw(q, save, array3_size(logo_lines, new_cols, 2)); > > > > What am I missing? > > Good catch. It turned out that this was a KMSAN problem (i.e. a false pos= itive report). > > On x86_64, scr_memsetw() is implemented as > > static inline void scr_memsetw(u16 *s, u16 c, unsigned int count) > { > memset16(s, c, count / 2); > } > > and memset16() is implemented as > > static inline void *memset16(uint16_t *s, uint16_t v, size_t n) > { > long d0, d1; > asm volatile("rep\n\t" > "stosw" > : "=3D&c" (d0), "=3D&D" (d1) > : "a" (v), "1" (s), "0" (n) > : "memory"); > return s; > } > > . Plain memset() in arch/x86/include/asm/string_64.h is redirected to __m= san_memset() > but memsetXX() are not redirected to __msan_memsetXX(). That is, memory i= nitialization > via memsetXX() results in KMSAN's shadow memory being not updated. > > KMSAN folks, how should we fix this problem? > Redirect assembly-implemented memset16(size) to memset(size*2) if KMSAN i= s enabled? > I think the easiest way to fix it would be disable memsetXX asm implementations by something like: ---------------------------------------------------------------------------= ---------------------- diff --git a/arch/x86/include/asm/string_64.h b/arch/x86/include/asm/string= _64.h index 888731ccf1f67..5fb330150a7d1 100644 --- a/arch/x86/include/asm/string_64.h +++ b/arch/x86/include/asm/string_64.h @@ -33,6 +33,7 @@ void *memset(void *s, int c, size_t n); #endif void *__memset(void *s, int c, size_t n); +#if !defined(__SANITIZE_MEMORY__) #define __HAVE_ARCH_MEMSET16 static inline void *memset16(uint16_t *s, uint16_t v, size_t n) { @@ -68,6 +69,7 @@ static inline void *memset64(uint64_t *s, uint64_t v, size_t n) : "memory"); return s; } +#endif #define __HAVE_ARCH_MEMMOVE #if defined(__SANITIZE_MEMORY__) && defined(__NO_FORTIFY) ---------------------------------------------------------------------------= ---------------------- This way we'll just pick the existing C implementations instead of reinventing them. --=20 Alexander Potapenko Software Engineer Google Germany GmbH Erika-Mann-Stra=C3=9Fe, 33 80636 M=C3=BCnchen Gesch=C3=A4ftsf=C3=BChrer: Paul Manicle, Liana Sebastian Registergericht und -nummer: Hamburg, HRB 86891 Sitz der Gesellschaft: Hamburg