From nobody Fri Dec 19 17:36:20 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id C048CC6FA89 for ; Thu, 15 Sep 2022 15:10:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231156AbiIOPKA (ORCPT ); Thu, 15 Sep 2022 11:10:00 -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-Google-Smtp-Source: AMsMyM7l8lWYGJuBODDQ/HU6R5pl1eaYbgBKHbyvWwWvFjThOz32FII2oCbiswhP6heZLHjrzuBd6Y58nd4= 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 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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/Iece16041be5ee47904fbc98121b= 105e5be5fea5c --- 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 =3D page_to_phys(vec1->bv_page) + vec1->bv_offset; phys_addr_t addr2 =3D page_to_phys(vec2->bv_page) + vec2->bv_offset; =20 + /* + * 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 !=3D addr2) return false; if (xen_domain() && !xen_biovec_phys_mergeable(vec1, vec2->bv_page)) --=20 2.37.2.789.g6183377224-goog