Received: by 2002:ac0:c50a:0:0:0:0:0 with SMTP id y10csp1352537imi; Fri, 1 Jul 2022 08:04:37 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vN99ICIoug/krj3/+8fVC97BCOGQwuFGAjTI7jmz3dJiWE5oPz9FGt8WM06aUoDEZpecew X-Received: by 2002:a17:90a:7acd:b0:1ea:d721:eb5e with SMTP id b13-20020a17090a7acd00b001ead721eb5emr19245344pjl.238.1656687877747; Fri, 01 Jul 2022 08:04:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1656687877; cv=none; d=google.com; s=arc-20160816; b=eIqx7juKbOAL7BGINYRrKf06RTBSsoYECDwEoIreHcJiHUFaSO20XQVygdxZ8DAp0f GE6tdfxgnBsfcbOoGRU20VEKLkisLkUEALw6UtW7GPNn1KX19wtJzwFlmbgCMo2m7FCk P2ukqyppOBpdHCFUVlqQjBpwqE2vPOcEQK3mMjG3aOxnP0+4bDircB0qJgxh+8dDwv32 Y4iCGj+mN2Fxslg/y77mne4Xul6UkRtX52htAeGQ9wI3873JwPPAxSWgxZF9n/Y/MrIr fXStrtUiuhEsXRhDZWBBX5UX4L5s05zWI9CDOtBFUNqrenpFRZDnjvuwu3Pai2mbrTVH UuwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=tSPSuwfCBJYINsR4GH3IgbP5patOgmYnzcC5xbF5jrk=; b=fN132S60Jj9JVHT6mZNzrD8VCxRGm6mwv4BmreJmBI89en5Rt3pnuWY7RJxy4Er9++ amndZ7/y8WLD0v1R5jlOHtWPGSyrZAe+Zrl5fNQ7gO3WREjegTRcOrYHi38vlmv8pSh2 BJii8zeSyCB0lJ3qAp2wehj9tygOBatfpumRHGFbUUuqo9cGl4mOKmiUbIrObXOp3P58 Iemj87srUVbj1jigeKQz/h10bvJYtHyGCRD3FPMie+Bc9JpmktbtbFK/nhRKw5qqRFCp TL8hQ72J+HsNhllfff/ttO5iU0DXO8eDwEKCQHuyZFmRfmtlwL9Fh5rn6fAsDL3OxN9l Do6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=fBpJ5slq; 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 d184-20020a6368c1000000b0040daeafc8fbsi26263462pgc.215.2022.07.01.08.04.21; Fri, 01 Jul 2022 08:04:37 -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=@google.com header.s=20210112 header.b=fBpJ5slq; 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 S232817AbiGAO1k (ORCPT + 99 others); Fri, 1 Jul 2022 10:27:40 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38562 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232588AbiGAO0p (ORCPT ); Fri, 1 Jul 2022 10:26:45 -0400 Received: from mail-ed1-x54a.google.com (mail-ed1-x54a.google.com [IPv6:2a00:1450:4864:20::54a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 63E0B31366 for ; Fri, 1 Jul 2022 07:24:34 -0700 (PDT) Received: by mail-ed1-x54a.google.com with SMTP id m8-20020a056402430800b00435cfa7c6d1so1887749edc.9 for ; Fri, 01 Jul 2022 07:24:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=tSPSuwfCBJYINsR4GH3IgbP5patOgmYnzcC5xbF5jrk=; b=fBpJ5slqI8D0FOXlutf00Q01e2/qkKGZMnWH0QFqV3SMTrnSjxCWOU4Pqh88ufv3NQ IfRJI3UQIhuhwdip4JvVQMQ0GmgbHCP23qV+TLI5z5xixX0f7GhYWJ0KQ1im+NF7L5qc Pkq7nAOUgfMsrQqnSYEqcjeYwLR5EOBvpP0TGKGBvfsM2Tv2Ix3OAW1CAWsOCQoKqQ9c em6kSS3mBnEDJKreuud9sUY6SkRHrCFbsdOQdD/6Y3m3J12I9+Y2wd+Aam71SXnA0koY C8Wt7O96xHpDNeJE2AG92PtC1SizglmTVKICFmvWSO765naM8cDe6vlSu0NadfhbBuA2 mElQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=tSPSuwfCBJYINsR4GH3IgbP5patOgmYnzcC5xbF5jrk=; b=ELVspmPgJ6xWJweAk/q7GIkT0Di0rshw95bEIMUmM11tZ5zrONtoVsZXGc8VaU0C34 kxzxnSomea68ScLUz4Im9Fn1SEtFKKz8rqudmfFieGvmwpJ6L6WfO4BL/HTXOlf6MdTE 7xNx+/dTJzt2InKpd4DNDTuktML6FXKAMilXQR3jYxR+vDiB+Va0hNepeBfhA83jB/FH y5ceI72H87/FjkDRhEMg83Lf5uaLIDqn0M7bfyPSGPe2CFwgxvfvWxKMhFcS0Di+m0YA ER8uAAupg0lYX4XQP1nxzv43e+nvZG2Ge+d5XYMeIxiY0eH+riHByXYx9moL7TlioQ/g Ucwg== X-Gm-Message-State: AJIora/7O0EC9zGGyz295SLBYGddDGNioBE0GZzTnvq4GU8YVUJRHrjC /ulR5Sc9Q+D5ODZMzIvtftJxTykQRF0= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:a6f5:f713:759c:abb6]) (user=glider job=sendgmr) by 2002:a05:6402:1f15:b0:435:8a5a:e69c with SMTP id b21-20020a0564021f1500b004358a5ae69cmr19068159edb.90.1656685473944; Fri, 01 Jul 2022 07:24:33 -0700 (PDT) Date: Fri, 1 Jul 2022 16:22:53 +0200 In-Reply-To: <20220701142310.2188015-1-glider@google.com> Message-Id: <20220701142310.2188015-29-glider@google.com> Mime-Version: 1.0 References: <20220701142310.2188015-1-glider@google.com> X-Mailer: git-send-email 2.37.0.rc0.161.g10f37bed90-goog Subject: [PATCH v4 28/45] kmsan: disable physical page merging in biovec From: Alexander Potapenko To: glider@google.com Cc: Alexander Viro , Alexei Starovoitov , Andrew Morton , Andrey Konovalov , Andy Lutomirski , Arnd Bergmann , Borislav Petkov , Christoph Hellwig , Christoph Lameter , David Rientjes , Dmitry Vyukov , Eric Dumazet , Greg Kroah-Hartman , Herbert Xu , Ilya Leoshkevich , Ingo Molnar , Jens Axboe , Joonsoo Kim , Kees Cook , Marco Elver , Mark Rutland , Matthew Wilcox , "Michael S. Tsirkin" , Pekka Enberg , Peter Zijlstra , Petr Mladek , Steven Rostedt , Thomas Gleixner , Vasily Gorbik , Vegard Nossum , Vlastimil Babka , kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_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 KMSAN metadata for adjacent physical pages may not be adjacent, therefore accessing such pages together may lead to metadata corruption. We disable merging pages in biovec to prevent such corruptions. Signed-off-by: Alexander Potapenko --- Link: https://linux-review.googlesource.com/id/Iece16041be5ee47904fbc98121b105e5be5fea5c --- block/blk.h | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/block/blk.h b/block/blk.h index 434017701403f..96309a98a60e3 100644 --- a/block/blk.h +++ b/block/blk.h @@ -93,6 +93,13 @@ static inline bool biovec_phys_mergeable(struct request_queue *q, phys_addr_t addr1 = page_to_phys(vec1->bv_page) + vec1->bv_offset; phys_addr_t addr2 = page_to_phys(vec2->bv_page) + vec2->bv_offset; + /* + * Merging adjacent physical pages may not work correctly under KMSAN + * if their metadata pages aren't adjacent. Just disable merging. + */ + if (IS_ENABLED(CONFIG_KMSAN)) + return false; + if (addr1 + vec1->bv_len != addr2) return false; if (xen_domain() && !xen_biovec_phys_mergeable(vec1, vec2->bv_page)) -- 2.37.0.rc0.161.g10f37bed90-goog