Received: by 2002:a05:6358:489b:b0:bb:da1:e618 with SMTP id x27csp976823rwn; Thu, 15 Sep 2022 08:46:08 -0700 (PDT) X-Google-Smtp-Source: AMsMyM4Dfrvit93t9y/nr2x46E3c+h35nN49icEW97w8ZcHRm+hbf6AjdoB5E68tQTlLgbcIO1VG X-Received: by 2002:a17:907:7209:b0:780:33b4:43a5 with SMTP id dr9-20020a170907720900b0078033b443a5mr382761ejc.547.1663256768619; Thu, 15 Sep 2022 08:46:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1663256768; cv=none; d=google.com; s=arc-20160816; b=vl2qUbOEvqvUr1u9wSLZpjgPsI9LfE9l0pysht+EGEWZdF/IKpBwefEDKr/IeZK2zM pqwl73RrvKrKrrylmOtRhWRsOxXGhIr9MY63kOcC24cS7Kvr8ymHsbn6JGE5NwKasmvX iUv/SnJLPyhGiSQUU+m+AP3kyGDssdpMaSHhHSx5hXnvwu/kS0u4mM+7kSUkWn5f+yek VYL/1fuB1kNESqPJFmSzRtvdlTyPAfMWkZAQU+aRh3jNEJYoda1T5Gh+KuOIjwjkGugr ssPTxRC8OcsfvDwblJGoQZLETJ/JG5fK3BbyaSf4og+CTB4chY1roTTmwtG3cI7W41GT KQGg== 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=iIMMsVuwSaCebfJ4PJYeSS2gCmNmcfgsDHtidevpb4rGutPNSi+YzKiBUC9OeYKK6w jYjrX48RBm6l/kCfjJxFRoInCmXQcF8lDF9QLy1hnfQpzLMfriB6iY+uZ9Bqqddx4MYS 2CMdONVp8hlgwJLs5+v5pc1kHDNxCFxObvkq9OOazjdzEvwWW1/FxVGxVtxAMGpDDRDt PchI2LsQepbnrfMPFCtxuEI6LdIkPxiLtg377iKqQz7dv4bEtDGGknDwVWwHSfWkGc/z 0Mvy34hFpwZFS0xh1qtBYOh4l0a3P2LVPI7eivq3KufKDrbZ63C6ELdawnDDUTNFgtri BCCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=bjU5Y1Uj; 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 m9-20020a056402430900b004485508bcfbsi16838157edc.30.2022.09.15.08.45.42; Thu, 15 Sep 2022 08:46:08 -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=bjU5Y1Uj; 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 S231153AbiIOPJ7 (ORCPT + 99 others); Thu, 15 Sep 2022 11:09:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231126AbiIOPIg (ORCPT ); Thu, 15 Sep 2022 11:08:36 -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 A0F1B5AA1A for ; Thu, 15 Sep 2022 08:05:53 -0700 (PDT) Received: by mail-ed1-x54a.google.com with SMTP id q32-20020a05640224a000b004462f105fa9so13076936eda.4 for ; Thu, 15 Sep 2022 08:05:53 -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=bjU5Y1Uj6lzmlmNdbvfJIhixfGz/+MKGRYCvur483Xf78D7CTzrNFlvd42wNziHYle Vw8zzRUPc25b8rF96my1wPCxCLp6TfupI3RftJKXAn7dq2QlPkGvBgmhor+As+69qJvo ts7cyW+lzlkiH21NDXMKOi08blf2XU9uBJs1YmQtKDbV3CYIcVN2LJH0wP7yDNAqAidw 2NVtGckV24urbHpg+UiXfOqAjGlT6CwNPdgB8y3HFou9URtWV43Pi53vkh8E0/1cN/xT J7/cYcC0yfDbDZhb+v1n2EFZPIQNAXrNcvBidelmwV20Zr+dNqjJnJC6KZ8B/YMPJfPN pmuQ== 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=Z6723StvrB0Q0LMQO5P8+xBDKm4wtqQ6steO6ipLxN7hohF9FRRK7KdnboNle378WT cCtMEN/4PHe8P8sBl6MQ8j+GDGAM7g6rB3puELo7gEclfWsp3XSr+Cb1JoqhqYzioUch O7YUqP+j/Ntw6Gr1ckJVFVXTTsFIeyvinaXC63hFSV46+1FEIyYM2sVSqqYLu5WA6Vof zMJiSIquj0D1zaQE8EjmxAYaJHyiJroO2djXy1wzlgn9N2WUV+N6ziGMJsn7qd1d33cS qcS+oSDw5OkpyVT3vQCJJqUPizwN8WlgFE8dluHODdXXqtdoS6BSf6ilFJS+/O5o5Qq2 mCWA== X-Gm-Message-State: ACrzQf2i++mGcx3+d7umPR8fzZ7WNctxGTWsJKL40IMswsuwkaysxJFo x09wPum512WePo32Ox3yc/Uh8bD1T5Q= X-Received: from glider.muc.corp.google.com ([2a00:79e0:9c:201:686d:27b5:495:85b7]) (user=glider job=sendgmr) by 2002:a05:6402:d06:b0:440:3e9d:77d with SMTP id eb6-20020a0564020d0600b004403e9d077dmr260579edb.286.1663254352056; Thu, 15 Sep 2022 08:05:52 -0700 (PDT) Date: Thu, 15 Sep 2022 17:04:01 +0200 In-Reply-To: <20220915150417.722975-1-glider@google.com> Mime-Version: 1.0 References: <20220915150417.722975-1-glider@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220915150417.722975-28-glider@google.com> Subject: [PATCH v7 27/43] 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 Biggers , 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 , Stephen Rothwell , 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,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.789.g6183377224-goog