Received: by 2002:a05:6358:45e:b0:b5:b6eb:e1f9 with SMTP id 30csp488201rwe; Fri, 26 Aug 2022 08:35:34 -0700 (PDT) X-Google-Smtp-Source: AA6agR6DjLJ2T4DUzvwD20NT/bGX4sDT2chw20PGstfn1bMIDyJs0XBgeJPhKPiZK3TgJKBR1v5w X-Received: by 2002:a05:6402:d05:b0:425:b5c8:faeb with SMTP id eb5-20020a0564020d0500b00425b5c8faebmr7002109edb.273.1661528134063; Fri, 26 Aug 2022 08:35:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1661528134; cv=none; d=google.com; s=arc-20160816; b=U+Cz4aZqtAev0Kv0JALLufG5ukrXdYRpnTyxw8u94XKqI2fU5J6mlx/oPeQ4gwUyCP hXo1AXGfFlsx7suwUNqNNGVBAwMBOGrCa6xMFPE410feRDBl1kObJFhmjACnj9urh9h2 zYCZOGfCBKIQpTu7dd3HQGLAT1cmTLroJssP6CmF1Q2Q0WKw8GJbvQFS3Dmx4GGSmRuw knYofUFDUwU+0A6rdVRPTCgZELbyuIsc19w+I9pF7dC3a32fDo5cVhwfW8TEuPB+1gFq StBe1ar9/ZmZIrHTsznqQHcdudhc0+vkg/LI6mRzThFD0WPmaYT3jU3AFToj+6Xr1Qqs b/Uw== 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:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=+5QrT5xfdlDeiLaqkJXiB84dUzsqj5PxvneJHk/QPSg=; b=Gzw8tp37QT0iFVy6uncE2wj6NAsy8SiaOxO9A50bCPdbL4c+96Bdypnzgs1dllokV4 PykjrZ1CPkSVWyX6jk2RsQAKEQ98iJ5Wj3QcXv04rx97g/qMSnN9bUD5YMArEThouyPz H9hzfKRi1gs2YsgyYGgB9MAAmMOO8oeGlD9eDaJvYFVXBPzfg+FQ/I1/siqMK6kVAN5X 1tCO9rxRudPQHFkasoa3XQ4JdXEMATEoBCvmLkvlFCN3oqLl8KfGY/1ZsZ+e0My6IUvn 5cLRdaAGUb3gqOxSDETYNAZGHk5wDxTI6yAhRzDquzkYUjpEDroIkN3OPj7Br3ssp+aU s6lg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=psU325Bc; 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 cw7-20020a170906478700b0073d8ba5a9e6si1442789ejc.879.2022.08.26.08.35.06; Fri, 26 Aug 2022 08:35:34 -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=psU325Bc; 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 S1344241AbiHZPN5 (ORCPT + 99 others); Fri, 26 Aug 2022 11:13:57 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35090 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1343787AbiHZPMa (ORCPT ); Fri, 26 Aug 2022 11:12:30 -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 7B137DF093 for ; Fri, 26 Aug 2022 08:09:31 -0700 (PDT) Received: by mail-ed1-x54a.google.com with SMTP id w20-20020a05640234d400b00447e6ffefccso1265265edc.0 for ; Fri, 26 Aug 2022 08:09:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc; bh=+5QrT5xfdlDeiLaqkJXiB84dUzsqj5PxvneJHk/QPSg=; b=psU325BcC9yCrTgirTaG4c6+Xtt5yEuOoqBDgzPyoh8Hu/P8wcF78qEe5Fv8Uq6mxM 5keARp+YcPeQ8kw2cba6I1H8TcR6qm0KRbaLOkU+IfLk8PtK83FSP/gowyt+6cMWfvxZ fE9laQ1Snqp2aoMqiOY1YPig7tDAMkED/KaWIJ682ZVuc6+uGvL4n3H/HrRhkL0dFAfP qPPg29aXbvpDPvKUJJFkWAZ+F418Tz4/xxZqjZPJP6QnWJRDQgXx2bOBAWB+HjiGP74T HU0Ev+YyOY48tZD9hgwrs4RkUWaxRCmaLSAihTVflh5YMg0/YJxLiIdMMS9B8R/uWWUE aznw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc; bh=+5QrT5xfdlDeiLaqkJXiB84dUzsqj5PxvneJHk/QPSg=; b=Z/aPbPORWwAZct2WQX6mam5o4G6hpoH5ViXa+VLHBQg+sexlLFfQVIUHZxTqqWUZkN icFjFnRORb1zSgFUABLiF7DH8ZICKi0gP6sFPZtG71DmW6f6XxNI7vnCqvzi8O/rkDjm JEyntHUu02XzWwWmQPlf0CQHWLdrTfQut0UtAVCkqiJh8r16+oljHVlC3K8C+GKnmnju Xb+18njkewCBRKSXzPhGqtMOcNM1VS/4S/yVEveKH5mF2N5eHrgbbxdTzX+Hyhu8xCCD UGEuSPXjqZTqwsnEHzForrB0EFEEQgBh3od7ivypcLKGHKKlN5ZsUoA+TIpiYUFbVs8V DC1w== X-Gm-Message-State: ACgBeo3pTEiskqfF1mw8Uju3X5sVvEstpaYvabbRFjEYRgaPHhX9m9hZ 0N86hAZIUqfP3Q8iBM3Jt8KtaHZmwAI= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:5207:ac36:fdd3:502d]) (user=glider job=sendgmr) by 2002:a05:6402:496:b0:443:a5f5:d3b with SMTP id k22-20020a056402049600b00443a5f50d3bmr7388597edv.331.1661526570674; Fri, 26 Aug 2022 08:09:30 -0700 (PDT) Date: Fri, 26 Aug 2022 17:07:51 +0200 In-Reply-To: <20220826150807.723137-1-glider@google.com> Mime-Version: 1.0 References: <20220826150807.723137-1-glider@google.com> X-Mailer: git-send-email 2.37.2.672.g94769d06f0-goog Message-ID: <20220826150807.723137-29-glider@google.com> Subject: [PATCH v5 28/44] 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 d7142c4d2fefb..af02b93c1dba5 100644 --- a/block/blk.h +++ b/block/blk.h @@ -88,6 +88,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.2.672.g94769d06f0-goog