Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp2226235pxb; Wed, 30 Mar 2022 19:57:43 -0700 (PDT) X-Google-Smtp-Source: ABdhPJyj6kjI8SkISN+3AvsculmjbaYahmBNMsvA709fyyNrOrJsUqhCGXtdg3hMtA/gkFQc74K4 X-Received: by 2002:a63:4463:0:b0:381:3c1e:7299 with SMTP id t35-20020a634463000000b003813c1e7299mr8947135pgk.490.1648695463025; Wed, 30 Mar 2022 19:57:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648695463; cv=none; d=google.com; s=arc-20160816; b=kOPja38fHUeuATFrCLjc/cKgUBJFICJ/Hk+ymH5r7o0DsoJUupp+CgowBK2Un8Mu29 k48ibUUkKGlb7GTo4bxN+XOgWtgllFarwa7iE80dCVRzhZOno9uPLBY98/XdTsg/InyB kSuAqRxhrY9rWfGp6srvRI+SPvLvO7hH+chJzjnPsXgyJcrdmLsJZpLJRwCFwH5p0ntc qKU1NXLr8sBKU7qB6B5uHDWK6sbTD/YQkqyN4chykDzjPmS2mXY9lbfQdD3IzcUXYpzJ ritloG2GsQ6SKixbDsM6BVqHp70Pq0K7LAfdWyW3FGqQagsw135nDRvvtBusnz9EzbtS 6KfQ== 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=g4O/g3yGtjFTnRq6Tym+8EhZXJHjgp/RAJrohmerxSE=; b=klPYjrQVYWlvT/jAlMpUOBEg+AipcCBb3pegyV4HtZunaZ3gpyDXCsbUoRU+XrJGZH TajT/P/Z2ap4fTiS14cqDIJkuQHNzHyHEYtsI6ZckxcRLI294tSkyTeqhDeZG9TIFi1w AlvS4R9+F8Uki+SNMulSXIiGccMiXT1FeIQR2VNsk5yIrn0UY9j31UpPIykhcrJu9n9/ HNK1B5SBHOiFSMP1F6s8oQJBUBFr7+YuTcKEIknduKNMz4n11pSbe7v8rfqmvxOxjsga LysD4mBWpAIsDs73gzcSD59T8zzJfvfetwLF3BrSdgnA8dTOLqvFtw+lpECFSGGzFQQs ZnTQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=qOFgBTIR; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 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 lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [23.128.96.19]) by mx.google.com with ESMTPS id w15-20020a63934f000000b003816043ee76si23541932pgm.107.2022.03.30.19.57.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 30 Mar 2022 19:57:43 -0700 (PDT) Received-SPF: softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) client-ip=23.128.96.19; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=qOFgBTIR; spf=softfail (google.com: domain of transitioning linux-kernel-owner@vger.kernel.org does not designate 23.128.96.19 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 9A8B9DD974; Wed, 30 Mar 2022 19:41:39 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233161AbiC2Mrc (ORCPT + 99 others); Tue, 29 Mar 2022 08:47:32 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34470 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236175AbiC2MrA (ORCPT ); Tue, 29 Mar 2022 08:47:00 -0400 Received: from mail-ej1-x649.google.com (mail-ej1-x649.google.com [IPv6:2a00:1450:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8558823D763 for ; Tue, 29 Mar 2022 05:42:02 -0700 (PDT) Received: by mail-ej1-x649.google.com with SMTP id k16-20020a17090632d000b006ae1cdb0f07so8118089ejk.16 for ; Tue, 29 Mar 2022 05:42:02 -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=g4O/g3yGtjFTnRq6Tym+8EhZXJHjgp/RAJrohmerxSE=; b=qOFgBTIRaBAgytLmSPVdMFIKWup6qEgqCTL9zlLnfBr+1qisKGAs7mZQzS5fF1N0/w 75BSqMadVv+ZwN4R/Y1880VwCu1sYPXecdfh1+jci1QJBCu4bN2ZpoxrkGg5fNAeuw4/ uqe7fS8vFdcz0MK3boRrEmswcahRoIs30mkNDrxgpAlwqh22khuALzbXXL7Bb57cf0og bNlPI0uZOKQd1VXKE1IEuIH6YQWnxA8v5sTwzz+4zJH90L3gpVOfXta50Pkpjz1H1DCt 0Gsp0BrH+su3tpLOFauLfvXBA1RwcNoUCkd+jh5ebsHf0jr1Db/zRDrg1iivqcmqkSXF Zf4g== 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=g4O/g3yGtjFTnRq6Tym+8EhZXJHjgp/RAJrohmerxSE=; b=bHhrlyjeHkq7ExyNq6YxtlOMKEwXEeEqbiDGoeUATDRxjigfahQLijjEhaDYvsYQgw B6QPA9lSaHXCo/zRayz/jJPL0CL3vClmSuT9yxP/KrRFx1l+T9XSLMfyOEruvbPI+/4P DJFaPSRFZsr1Ur2f7ei4+2nvaJAuI0JY+ztqSk7LlyoPJOJHLkufH+pGV3JZ1wxLg2rZ YR71KPzPN/XVYA9ig5Ikj3kyRgYEDlI3OpoYNp/REZ/jxwDBV4veb9IyejwH35Zx17ui ClSWVRWobFOxRjmZTndKn1s6BTHcbsorgI+8/cWeaSd1DOpbjXiM6ynEoJlgkAAClTI+ A/Tg== X-Gm-Message-State: AOAM533JLXIEer1QnmwniRkd972AUCuju/W+VZ5MoUS2xaU1EfStW0Uc XIqcGI/66cFbNLXtyECPLBZgZSuIAl8= X-Received: from glider.muc.corp.google.com ([2a00:79e0:15:13:36eb:759:798f:98c3]) (user=glider job=sendgmr) by 2002:a17:907:da6:b0:6e0:c59:f3ad with SMTP id go38-20020a1709070da600b006e00c59f3admr34366333ejc.85.1648557720656; Tue, 29 Mar 2022 05:42:00 -0700 (PDT) Date: Tue, 29 Mar 2022 14:40:03 +0200 In-Reply-To: <20220329124017.737571-1-glider@google.com> Message-Id: <20220329124017.737571-35-glider@google.com> Mime-Version: 1.0 References: <20220329124017.737571-1-glider@google.com> X-Mailer: git-send-email 2.35.1.1021.g381101b075-goog Subject: [PATCH v2 34/48] kmsan: disable physical page merging in biovec From: Alexander Potapenko To: glider@google.com Cc: Alexander Viro , 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 , 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.5 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=no 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 8bd43b3ad33d5..eb349916ac116 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.35.1.1021.g381101b075-goog