Received: by 2002:a6b:500f:0:0:0:0:0 with SMTP id e15csp1002564iob; Fri, 13 May 2022 19:14:46 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhJKaxqaFnX++vcK+6EGv9lgWh6n7AjUCcu9DKEKMOAGKi5+dX9PqanzAnHpKSB/byqu9q X-Received: by 2002:a7b:c186:0:b0:394:bed:e0cf with SMTP id y6-20020a7bc186000000b003940bede0cfmr16987770wmi.162.1652494486676; Fri, 13 May 2022 19:14:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1652494486; cv=none; d=google.com; s=arc-20160816; b=VbHRTzD98zo2iEQ/G8axpSDYXHJOI5fphFCvWgPCo9+ie6jCPaBK/geWg2iXg4DlNr PTbXbxa3VOoUCgQs7b0UQ+hM3Dz4MbMRON8FmmhQGHbOtYhx6Cil9+5tNJYVtOvspTuJ 0/jZuz7XixSjs9DfE8cmOyDPylTJYf9u5UIdH2581rVSzf7p9DMZzLg2TUZSXIFreyzm xmrOCoMFZ2RZQvANFlf4uKkhAk4iXjMB5DiCvaRfBRQ7hKiqfybmYSpWKJszwD+f7D39 RCLLTmvVRX4IHXyFNSWq+8udq/XAfHU+d9JDKVmRRGt43H4DZL+pNWd2OM7GnOmiJDY/ TPmg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=/q/I5Zb3tlbmMbS0Qo1Fw3lpIlx3GwjoB/5q4qFrs4k=; b=mIwRQl6NYa4tteRTQxr8gbXnGweFtcwT+54PrFh/1anlyWAgDEYTnhCDSr87c5qvZm qtTxvjl1IA7Vfe18Fsc+dmwkvHdEZYDQ7K/bb4M2JB7Lf5cgrzIueq20hRI/IFXzViqk TdZ3nWUHh6SjmNw8cAFDvpvU1sNBWXFVtyS5MPDIfycKlHqkWXxbifDSE3CGJWSiOVxp AQsdF903+KXixitwXmdkKgx9J8wZg+zAPwxCBr7yzWmZ6EPTOARHyaEEmNKXYUCM6KsI f4+moPf05MPq3UwVNVBGO7ObVXdOPNaDsuM4EWwuf6MXZ72FgpyyrB+ydmKIYVv9EOqN JBPg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=jXjfWVQo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Return-Path: Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net. [2620:137:e000::1:18]) by mx.google.com with ESMTPS id s5-20020adfea85000000b00207a5488326si3357648wrm.446.2022.05.13.19.14.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 13 May 2022 19:14:46 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) client-ip=2620:137:e000::1:18; Authentication-Results: mx.google.com; dkim=pass header.i=@linuxfoundation.org header.s=korg header.b=jXjfWVQo; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linuxfoundation.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by lindbergh.monkeyblade.net (Postfix) with ESMTP id 4AA95317F1C; Fri, 13 May 2022 17:32:20 -0700 (PDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1381176AbiEMOc7 (ORCPT + 99 others); Fri, 13 May 2022 10:32:59 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:46700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1381008AbiEMO3g (ORCPT ); Fri, 13 May 2022 10:29:36 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F10EA8B0AE; Fri, 13 May 2022 07:27:52 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7085F61F99; Fri, 13 May 2022 14:27:52 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 510BDC34115; Fri, 13 May 2022 14:27:51 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=linuxfoundation.org; s=korg; t=1652452071; bh=zHoUYD+o1GnIl9sG0xD2eHVGS+koYvFKCsVWQJC2l7s=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=jXjfWVQoCJySeSFDoPiZp3cmu8Z521Gmd7ebPdEtf3iE6fOfrrtcO3p5w2sLWARjc QyIzc6AaHC4ObgorM+XWKBthqAjhBI1En/ZhwcxsLMdaYCmIAK6SUhVoSfIJc+InA3 vdRSxyVNycAmtvUpAKvAlkkbKCZYfGSK2gJXx5Lo= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Muchun Song , Mike Kravetz , Axel Rasmussen , David Rientjes , Fam Zheng , "Kirill A. Shutemov" , Lars Persson , Peter Xu , Xiongchun Duan , Zi Yan , Andrew Morton , Linus Torvalds Subject: [PATCH 5.10 09/10] mm: hugetlb: fix missing cache flush in copy_huge_page_from_user() Date: Fri, 13 May 2022 16:23:53 +0200 Message-Id: <20220513142228.581883501@linuxfoundation.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20220513142228.303546319@linuxfoundation.org> References: <20220513142228.303546319@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RDNS_NONE,SPF_HELO_NONE,T_SCC_BODY_TEXT_LINE 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 From: Muchun Song commit e763243cc6cb1fcc720ec58cfd6e7c35ae90a479 upstream. userfaultfd calls copy_huge_page_from_user() which does not do any cache flushing for the target page. Then the target page will be mapped to the user space with a different address (user address), which might have an alias issue with the kernel address used to copy the data from the user to. Fix this issue by flushing dcache in copy_huge_page_from_user(). Link: https://lkml.kernel.org/r/20220210123058.79206-4-songmuchun@bytedance.com Fixes: fa4d75c1de13 ("userfaultfd: hugetlbfs: add copy_huge_page_from_user for hugetlb userfaultfd support") Signed-off-by: Muchun Song Reviewed-by: Mike Kravetz Cc: Axel Rasmussen Cc: David Rientjes Cc: Fam Zheng Cc: Kirill A. Shutemov Cc: Lars Persson Cc: Peter Xu Cc: Xiongchun Duan Cc: Zi Yan Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Greg Kroah-Hartman --- mm/memory.c | 2 ++ 1 file changed, 2 insertions(+) --- a/mm/memory.c +++ b/mm/memory.c @@ -5295,6 +5295,8 @@ long copy_huge_page_from_user(struct pag if (rc) break; + flush_dcache_page(subpage); + cond_resched(); } return ret_val;