Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp3044974rwb; Mon, 5 Sep 2022 05:46:06 -0700 (PDT) X-Google-Smtp-Source: AA6agR7q4GsBWzXKAsQe0Fr3tBKX7Pph+Dt1TLUuHRCXsvkK4KEgmntsK6OBKREE3cqHYlkLaiYk X-Received: by 2002:a63:9142:0:b0:42b:5a50:7119 with SMTP id l63-20020a639142000000b0042b5a507119mr41570261pge.445.1662381966071; Mon, 05 Sep 2022 05:46:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662381966; cv=none; d=google.com; s=arc-20160816; b=NdaiLEPrJlE/sbhAOCj3BhyDotsayWvRDXNXp3xbn/7aDk5D0JDiCbtoofIlFOU1WS Rs1U9WzbWd7eIXtQQIiWbtTRWCtBqUmy+FFXX/N374UXxX4FCfyF/JgaoT9kkYyau2nO Mkz5hjdrz1+3MRA58TIB+tgAe6tTf7qEMyQX1BHEUQO9T3A2gcRAVycSduiGg9bovrOd yKA7ka6Hiyw27KmzhvBykrqgghjw2qpYzO9Z8kGAPvKv+eqZHJ76h+7TZT/Nyu/5+lHD ekpeLdIvGW5DxeQsZ4mpakElIZKFr2krzskl23iueiWP2ifpouHxa8GhfJTpiVRpf5Cl fqeA== 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=T4yulc1U4RDI/lAlxqlpzG4AIUYO9fQrzg+B84ydySw=; b=To94tECHn0+wpwofht5V8RMSrQNlczRjm0K6+9hHT/r0aILHv9v+cZG3geikmkbjJN 6HAucz/NRdJRHfcIo5TRApFt6WMUTAas+vBkwUN96rg4R1eqosCEm2n9xe/TVFhigquF /IjaRE/3rz50TZkYVBROtvJ96HfblVsim06WbpXOmlGgOjF+cyaXBF+MaOhlxHDlT0u5 Nb0l2F/tVEECE82QKZPU0TVdI/DArHFXucZRteLpk/kz3KtWyDX/ahcFa5Ujqx6W6nwZ GDOS3IgZr1tjUl9KFo+nL8Zb9kCKuuVhPR1fqo9O4ZrzKKr86pRVZBJUAbkwH77UwdZJ kWJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=gykJQm16; 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 y186-20020a638ac3000000b0042b799136bfsi10199360pgd.30.2022.09.05.05.45.54; Mon, 05 Sep 2022 05:46:06 -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=gykJQm16; 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 S238049AbiIEMbV (ORCPT + 99 others); Mon, 5 Sep 2022 08:31:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33818 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237650AbiIEMaS (ORCPT ); Mon, 5 Sep 2022 08:30:18 -0400 Received: from mail-ej1-x64a.google.com (mail-ej1-x64a.google.com [IPv6:2a00:1450:4864:20::64a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 99EC5606AD for ; Mon, 5 Sep 2022 05:26:31 -0700 (PDT) Received: by mail-ej1-x64a.google.com with SMTP id sh44-20020a1709076eac00b00741a01e2aafso2295715ejc.22 for ; Mon, 05 Sep 2022 05:26: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:subject:date; bh=T4yulc1U4RDI/lAlxqlpzG4AIUYO9fQrzg+B84ydySw=; b=gykJQm16KBq2G1POc9yawl2YF5uKFWxrq5CWIWwQMtdL8/Y4B0bJfVbxJTszw18YVx 4E7qTI7rzio5nRVJ1FODUAtp/gLZ4JUBLm7SxRqEGBezrmCDsaRdu10ahEbwyMKOHAnS mL4d3XS2YrrbBWzFaHkAc86d82LPVwuZr9FNhGX9lMdqGF26zvlVbpRXEh8qRgLj77Y8 76yFFAvEbnv46jD2CZU9sNo1Vk3UkvA6lYT1fvAVGXzAfOyNN03DhtVyXZh9WTPSiISL CK6qhGXl1pCPNGjaBDhupNrDjetS7nAg6yMvS2fe8SlPKpaw/+edKhLnuNlgtl8KA9cs 5eVg== 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:subject:date; bh=T4yulc1U4RDI/lAlxqlpzG4AIUYO9fQrzg+B84ydySw=; b=5bidj3ihAz9hbzlHpvtMQWx/l+BeBrpOAbMGpTv87HiQVe2JmZWaoJvq5ukN9/pgAG PAgS1/F+u/YQK4xCQBoYia4QMWBSPDepNRO3RspzBdD8hSMJlRhFpMohs6IovGEHMC9s VkhH9MDJ3vppbyBWGZQi73DZDVaN+bLIucSmrzyJIIb2Cv6Pv/6zRiMlm8WX87y+mdes cWJ/Sq/wPX9b8J6xb4RglzaILndPkD5kzrXWPW+EAaVRwZ/470d9FEeTATu/9HPRNNDN 3fhKa7QBgrMDE6xTNYCS7MXgkBZA/91ZBlLyd9QZxYfOMVyT8hQztH0Zd81BCfLZaEXf Mc/Q== X-Gm-Message-State: ACgBeo1Ekl64FUhVgOXv1oQ7pbAOYuSc1C5BQrCVDNKptfjGMognIpX+ pjfBD1TGV9cZ0phL3IHc/Iu2HqlOVI0= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:b808:8d07:ab4a:554c]) (user=glider job=sendgmr) by 2002:a17:906:cc13:b0:73d:d22d:63cd with SMTP id ml19-20020a170906cc1300b0073dd22d63cdmr36111625ejb.741.1662380774896; Mon, 05 Sep 2022 05:26:14 -0700 (PDT) Date: Mon, 5 Sep 2022 14:24:36 +0200 In-Reply-To: <20220905122452.2258262-1-glider@google.com> Mime-Version: 1.0 References: <20220905122452.2258262-1-glider@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220905122452.2258262-29-glider@google.com> Subject: [PATCH v6 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=unavailable 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.789.g6183377224-goog