Received: by 2002:ad5:4acb:0:0:0:0:0 with SMTP id n11csp3707476imw; Mon, 18 Jul 2022 13:02:42 -0700 (PDT) X-Google-Smtp-Source: AGRyM1v2saQe1GLuMlEGO1t6W3+yZ2HBxQFm9ic882E5LCHNUt9QLp34yP12BjDrV1rd6iGw/ejY X-Received: by 2002:a17:907:2c77:b0:72b:1154:33da with SMTP id ib23-20020a1709072c7700b0072b115433damr27692308ejc.27.1658174561881; Mon, 18 Jul 2022 13:02:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658174561; cv=none; d=google.com; s=arc-20160816; b=gZnOGpLiUaWBuBKJrsImjCrkKYcZs9oFs7kL3/tf1uJQ0xRzYpr2NWeuEV8aHLsj29 uIYsJrU0QJBC5SUs6v6tLiIew5x3E4AQ4FxFArPQxfbw6f+F4EmyHG0I15RKJ8wXJbka 49rjHruf/ow8+Xvne3BMDfL1zFZVUn3YkJHoma9womaFVT4lVrMq/knprsdcTrg6I+mo H2N0lH5txR3FfXo8TUZ0TCO5DomochA0o9y1aUAcxmjtjFFdgRAFFdbYNL42V13tV2Kk 3pl2a/vDIXyzP//7JqU76dmSOFiJ0WerBPGe7Ql/ptSBFB/HovSOpOiiMbKtb84rGQao sNjQ== 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 :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=2Q49j7ZnjpJbe7tnNHIQw9SAVjFrSuB+lmoi9+DDawg=; b=HdBTEGVXpMGYTK6XQG0nFYXNq+BxwCHcNg0I5frO9ZCkUBty28R/LUmOXRJzAFw1jc uyjOOcMMvuGjp8qSCv/SdhPyhe05EcyfBB8BfDTZcOiOfqA/Wik8Mz34fDGaETeFybQi q8bTTbcx9k43VeifLS2maqYqdDA4QOVPxn8rGQwwxL07ArhATCzYsQGfi4f/nXRN5hfY hGLKiLv1dNaDZ/p1/Gd3DPlzNLV9tflTibMdmixezwmDoUT67Ci1Uw1IocpSK55hqDN6 ttoI/nhziigSBwPYnRCbEzuVay5y26ElxeCqi1w5cn0rY9Wh+x4eArQLuazbcSBsKst3 ijhg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=bmUPVvdz; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id co13-20020a0564020c0d00b0043565bae501si14807206edb.210.2022.07.18.13.02.17; Mon, 18 Jul 2022 13:02:41 -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=@gmail.com header.s=20210112 header.b=bmUPVvdz; 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=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236185AbiGRThQ (ORCPT + 99 others); Mon, 18 Jul 2022 15:37:16 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57324 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236113AbiGRThI (ORCPT ); Mon, 18 Jul 2022 15:37:08 -0400 Received: from mail-pj1-x1035.google.com (mail-pj1-x1035.google.com [IPv6:2607:f8b0:4864:20::1035]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DBE7DE00D for ; Mon, 18 Jul 2022 12:37:07 -0700 (PDT) Received: by mail-pj1-x1035.google.com with SMTP id g4-20020a17090a290400b001f1f2b7379dso356929pjd.0 for ; Mon, 18 Jul 2022 12:37:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=2Q49j7ZnjpJbe7tnNHIQw9SAVjFrSuB+lmoi9+DDawg=; b=bmUPVvdzZ44bZXvMXaJebmRi8Em4oQjsNDUw0UeAiKmw4D56qcZbcTGB0JlqUCsblt OEV1P1bs52wmG0gm8jY3wqSSUBITQIxayVYMmqk0JsmL+4pXoNVZ2FH1OsJW8kiZmEr5 o7V/37GKM2yOHpp0l6kahMySGW2vJQoZxf4VUu7MLfRdvtcC2k5ObYDHuP/XNyCSsW5v F/svHC9579Af/qJy3HoEVjxdNA4i/N87zD/iGJjAednCkdcRy5LqlQH1N6K6bzUuXkKo O+nHVRq37bCF+vMHywbE4q/ySw3g4zg984mjk3Zd66z+yPz9kQc8fmRVgs/2ZAhpyHge Nzfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=2Q49j7ZnjpJbe7tnNHIQw9SAVjFrSuB+lmoi9+DDawg=; b=QTzDvcuX8FBkQsx5DxhJzvZ1Pcfl2KYNFjNOAasgtF2GcqiTrLlW4NyRWY7a2h2kaf YHoYnRi8/Fr0kKRwN+eYly7QUa7yUM2drCXEA8/DodWdow8GuN4Tf2Z5/VmUdFatPoQ8 fsSbufeLN40oFaEXbpXjKLL7xbvVHjVVmKQ1XGysMJ8I2+c1RkgHWRgElZzoT7eB1hAz 2jC6bVtS4O8ZbzCNUvwWuZnzvXZFCTE3RGbJ3avGlOmgIxCmjQuH6WQfSSfqbHjW2G7p URaRwA3PHFYqE2WU6uql22Y4a5+3P6wVgAitVuP50CpPp2lx1R5uM3GQPmqx6FfpEnwi zlew== X-Gm-Message-State: AJIora+tPWip9msXutFJW5q+hdHM/RQ73ScCDj8dL0/MhGSo6gN11w0Z +LgiAkRoXxNJZkf5Rd4CL64= X-Received: by 2002:a17:90a:d195:b0:1ef:8eb2:4f4d with SMTP id fu21-20020a17090ad19500b001ef8eb24f4dmr39367516pjb.104.1658173027111; Mon, 18 Jul 2022 12:37:07 -0700 (PDT) Received: from sc2-haas01-esx0118.eng.vmware.com ([66.170.99.1]) by smtp.gmail.com with ESMTPSA id q6-20020a170902a3c600b0016bc4a6ce28sm9907887plb.98.2022.07.18.12.37.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 Jul 2022 12:37:06 -0700 (PDT) From: Nadav Amit X-Google-Original-From: Nadav Amit To: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org, Andrew Morton , Mike Rapoport , Axel Rasmussen , Nadav Amit , Andrea Arcangeli , Andrew Cooper , Andy Lutomirski , Dave Hansen , David Hildenbrand , Peter Xu , Peter Zijlstra , Thomas Gleixner , Will Deacon , Yu Zhao , Nick Piggin Subject: [RFC PATCH 03/14] mm/mprotect: allow exclusive anon pages to be writable Date: Mon, 18 Jul 2022 05:02:01 -0700 Message-Id: <20220718120212.3180-4-namit@vmware.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20220718120212.3180-1-namit@vmware.com> References: <20220718120212.3180-1-namit@vmware.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE 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 From: Nadav Amit Anonymous pages might have the dirty bit clear, but this should not prevent mprotect from making them writable if they are exclusive. Therefore, skip the test whether the page is dirty in this case. Cc: Andrea Arcangeli Cc: Andrew Cooper Cc: Andrew Morton Cc: Andy Lutomirski Cc: Dave Hansen Cc: David Hildenbrand Cc: Peter Xu Cc: Peter Zijlstra Cc: Thomas Gleixner Cc: Will Deacon Cc: Yu Zhao Cc: Nick Piggin Signed-off-by: Nadav Amit --- mm/mprotect.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mm/mprotect.c b/mm/mprotect.c index 34c2dfb68c42..da5b9bf8204f 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -45,7 +45,7 @@ static inline bool can_change_pte_writable(struct vm_area_struct *vma, VM_BUG_ON(!(vma->vm_flags & VM_WRITE) || pte_write(pte)); - if (pte_protnone(pte) || !pte_dirty(pte)) + if (pte_protnone(pte)) return false; /* Do we need write faults for softdirty tracking? */ @@ -66,7 +66,8 @@ static inline bool can_change_pte_writable(struct vm_area_struct *vma, page = vm_normal_page(vma, addr, pte); if (!page || !PageAnon(page) || !PageAnonExclusive(page)) return false; - } + } else if (!pte_dirty(pte)) + return false; return true; } -- 2.25.1