From patchwork Sun Mar 12 23:40:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lorenzo Stoakes X-Patchwork-Id: 13171902 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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id F2656C6FD1F for ; Sun, 12 Mar 2023 23:42:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1298A6B0072; Sun, 12 Mar 2023 19:42:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0B3906B0074; Sun, 12 Mar 2023 19:42:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E6F288E0001; Sun, 12 Mar 2023 19:42:35 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id D66D06B0072 for ; Sun, 12 Mar 2023 19:42:35 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8E44440627 for ; Sun, 12 Mar 2023 23:42:35 +0000 (UTC) X-FDA: 80561873070.27.FE41F42 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) by imf19.hostedemail.com (Postfix) with ESMTP id ACDDF1A000C for ; Sun, 12 Mar 2023 23:42:32 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=L1Evxvsp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=lstoakes@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678664552; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=Q+mP9OxDgYsiVDAz5z+bfOZyYeqjlm5fObrSUjf3HHE=; b=3sm9hkTujhGTqzcil/yf9D21vyd1YclYGG21+rkbd/Cj+0EaqoR35wO2fBIfOClc2hLt2L VPhLVuRcHhRVkBLqd7ks9n3liNip80fk9f4aImQVteyMekSCs7upSnhygGOeQC6Gm+3aId M/srBzP/Zhqk4OmgpH5NJsx+jq95P1Y= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=L1Evxvsp; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf19.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.47 as permitted sender) smtp.mailfrom=lstoakes@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678664552; a=rsa-sha256; cv=none; b=3hki0KX/4/A9q5C7aCrGgUzbyE3nSSQnoTuTr/oebtOcDR7Kll5S9rPEmpvxOUf75tgYae HTZJTvkRsbdrEnq22bA3mFKtb6wxkhCsVbPyXnv08qjnCq/G6vADSqDQrROE7rCRjO2gMh hmRXcDal8h/+9aQEV//qATTL+JZ6kq8= Received: by mail-wm1-f47.google.com with SMTP id j19-20020a05600c1c1300b003e9b564fae9so9757469wms.2 for ; Sun, 12 Mar 2023 16:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1678664551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Q+mP9OxDgYsiVDAz5z+bfOZyYeqjlm5fObrSUjf3HHE=; b=L1EvxvspnWq8VbJ/cBPuwim/GfX7GyDcQh25eB8GiiGs7xV6czGIVCDJwylbb/WhpH jDFWtcEGZEkI905j9O6EBHcKvsGVqjZK04JkCGnQY528FTc/xGSKUQoJ1yY0pPvKCbzb IBNvOTkgsqZyZycwsx8m2Sth1E7Aozlkfg5MUoZCKaaMJPw/6tRWZDo07r5CQODqxUMT 1IeCaq70mfPubXlyZAz0EF4+uo1ZBp0Z928tN4A3fNLcS0TV/nntMus6BBh64bjYsk9h tNxjHKAtpE6j09aXXplCYPYqgmxOLm6RPMn+1oaBSQ4+kPQxO6ASvcd39FdgX1bjTARn 4pFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678664551; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Q+mP9OxDgYsiVDAz5z+bfOZyYeqjlm5fObrSUjf3HHE=; b=Duei8+Ttt4g530WMi7IFih6D9gBEyxoO7b+mgJjK8HDknPi5QtIxEofZaLKexNHoka yl+TXhAsHFnAjBrcnDRvdY2Zs5zgiLN4E/O1Si7kUFpdJ8Ytohk8l51b09WvXQG9v56T tW32AooB1N1gvyKzA1GjifdY5e+v8rS9o7iijEu7tIDdH4KuFvzDvJ1BpcQkIxhL4kEz BvcALLF9LNwHeu+znJc2EtpGmgLrzEMNVixMkp9jn7I0BW4A/hHOLjchETznoG7tZQXo 6MDgbGN54UCJrt7hc/1kck7F6zZU86BfovS6DOtCuyEY2Fj3Usb1f/s7aAyzbxNmQQaS 0MEA== X-Gm-Message-State: AO0yUKVXzxsCB1IIlIkNGllqT8jnEWI41n0usm1kIK6r1ajzX/Qqt2am a7R6SD7HIkZ8hUeDSOFIGhVmCrAkbis= X-Google-Smtp-Source: AK7set+tGc+DGYJtdNRAq9fRAAuOfnBu6NAnqmDjDmjxC2dzIZIZWRmGTBsrN67MRDZeVRNHzuZI8g== X-Received: by 2002:a05:600c:350c:b0:3eb:3692:6450 with SMTP id h12-20020a05600c350c00b003eb36926450mr10229727wmq.18.1678664550942; Sun, 12 Mar 2023 16:42:30 -0700 (PDT) Received: from lucifer.home (host86-146-209-214.range86-146.btcentralplus.com. [86.146.209.214]) by smtp.googlemail.com with ESMTPSA id iz20-20020a05600c555400b003ed201ddef2sm3698376wmb.2.2023.03.12.16.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 12 Mar 2023 16:42:30 -0700 (PDT) From: Lorenzo Stoakes To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, Andrew Morton Cc: Thomas Hellstrom , Christian Konig , Matthew Wilcox , Michal Hocko , "Kirill A . Shutemov" , Dan Williams , Jason Gunthorpe , Lorenzo Stoakes Subject: [PATCH 1/3] mm: remove unused vmf_insert_mixed_prot() Date: Sun, 12 Mar 2023 23:40:13 +0000 Message-Id: X-Mailer: git-send-email 2.39.2 In-Reply-To: References: MIME-Version: 1.0 X-Rspamd-Queue-Id: ACDDF1A000C X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: p5s48awkimhsotnj9ds17bgw5bfxmsex X-HE-Tag: 1678664552-565545 X-HE-Meta: U2FsdGVkX1+bi3kJNwZKj+ji2jBy/dBNi004F8BbARLLpux0M333ECeLU/Z93JoVpgAuIdVvR6i5enMTdOga2G4CFizexRaOkOv5D8a+dA/JsjKpNw050r/eSPKN7Q/FnlhCNdBbPYyzNHsIWmI8uL0sxi+tDV3t0A4wqMwt7ViWPit22HNd8sKqSwOPapxNm40OHMwcw4G+tJQF+1Cv357RTQKTNl75PA58rig8/GvvhQ2K+uIYfUzVkCGirHm7iPdJx2m5AZKilS7Q7NVLagPxGxB3T2O05vFQu4uahlLO9NJRYvchNJJXVww2ac3FZmKdf0xwNYRBTI5og6uKl0HqatqKDjcPkKkQNisLnAqZVI12334rTec24ZN9q/dOlEtMeN99mbK0204ACOim1B48HQIc0zMN7b6AMXQVEZaxS8xjTqoxhp9WXbogC9XbgKO9/K+L7NhLPNqiLbSvjR8v9cq94eOHCjhv1Uvnb+r38u5K02KFZKUbA3HRDjqLwzoagOHIBkAzY5TXEAgQjI+xX0yHmNxnf2fSdhCgUL8Enkyqw3XRiQOU/Xjd5IUw7QNjJIST1WIYGKTqAGBk9ILFAs7Js2zDZ2KlhEIt/4Zv2DO6+8O1CQeVJ77kwq09juFxAtw6EG7dhofcBWa5vxYic8i4O0ZEE6L0VeaiPbMUg7z+yHeN+ndSiro9Sjl690JlDbhbSs44m/j+ek+wD6U5YnaaPbSmgFq8f9nK4V2hTleb+KzFrz9SAPxp/Dzi3M3+KGo6Yz3lR9dI4Yr1gY9TRicLzhiP8Ik28c+AmkUZvbLXr00FNObJ7m8EZ7tGc8R1vFbZAeDskbLXSU3srCuw3KnK/Hw3y/6ErUWWYjuslfMzZPw7h4WyO1PShx0YAXY8vczhTOJivoSH5Ukui+FIoxDC7O8n3TXgAAv6rXO1G8yGdmnZGo71zAcLkxBhZ4obP53k3pGjrk9G9+C ryLwBR5J ZDtJEnUP8a1NU6PecsTRt/O+MOsucJnTeHtXobZwDut95RsCmIx4YTDCQgtZVtkwaEdI8/wEjDktozWl+Ko4hkvKMMBZ5lzNJ952kslmMkB+9hk19s5xLzOo9RZVVfYSAdy4wGkyWsOog9w6yK/kjfMOJ6i5VNnbRHh65AS9+Y2w0z711+0SKI2wr3Z+x0/W3kJ7FWx78zxOqRj6AYC/FXG1JjW2Boav8WDZbCVS4uXmI+dEAKPSYNCeWHFKzIAnL772PYfNxnD7N0V7KIwTG9ZSgoN4XpQ3dhSPrFEh27mQM1sTWTxwGtLgzHpPCEnDTBTax4/CLmmR1bRFTXW64zJHBdExvYDbHgX9/MscqoOK6WWby60JViRg6FdpoA5FgsCpWX7w9zYpruvEAGDvysOnJpG6LXQx9nhnuVokCUH00kF1Oyf9pwm+uF2oNfjKOjU5hes1esZolC3I2Yklq55+k5irJ/tmu8PyAyMEufGGHIdDKbntkL9xSBk44Vp4ncLss X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: The sole user of vmf_insert_mixed_prot(), the drm ttm module, stopped using this in commit f91142c62161 ("drm/ttm: nuke VM_MIXEDMAP on BO mappings v3") citing use of VM_MIXEDMAP in this case being terribly broken. Remove this now-dead code and references to it, but retain the useful description of the prot != vma->vm_page_prot case, moving it to vmf_insert_pfn_prot() instead. Signed-off-by: Lorenzo Stoakes --- include/linux/mm.h | 2 -- include/linux/mm_types.h | 7 +---- mm/memory.c | 57 +++++++++++++--------------------------- 3 files changed, 19 insertions(+), 47 deletions(-) diff --git a/include/linux/mm.h b/include/linux/mm.h index ce1590933995..ee755bb4e1c1 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -3330,8 +3330,6 @@ vm_fault_t vmf_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn, pgprot_t pgprot); vm_fault_t vmf_insert_mixed(struct vm_area_struct *vma, unsigned long addr, pfn_t pfn); -vm_fault_t vmf_insert_mixed_prot(struct vm_area_struct *vma, unsigned long addr, - pfn_t pfn, pgprot_t pgprot); vm_fault_t vmf_insert_mixed_mkwrite(struct vm_area_struct *vma, unsigned long addr, pfn_t pfn); int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len); diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 3a028db80ffb..5ef0d0da328a 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -502,12 +502,7 @@ struct vm_area_struct { }; struct mm_struct *vm_mm; /* The address space we belong to. */ - - /* - * Access permissions of this VMA. - * See vmf_insert_mixed_prot() for discussion. - */ - pgprot_t vm_page_prot; + pgprot_t vm_page_prot; /* Access permissions of this VMA. */ /* * Flags, see mm.h. diff --git a/mm/memory.c b/mm/memory.c index 7ca7951adcf5..ee6bcd747867 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -2147,8 +2147,20 @@ static vm_fault_t insert_pfn(struct vm_area_struct *vma, unsigned long addr, * vmf_insert_pfn_prot should only be used if using multiple VMAs is * impractical. * - * See vmf_insert_mixed_prot() for a discussion of the implication of using - * a value of @pgprot different from that of @vma->vm_page_prot. + * pgprot typically only differs from @vma->vm_page_prot when drivers set + * caching- and encryption bits different than those of @vma->vm_page_prot, + * because the caching- or encryption mode may not be known at mmap() time. + * + * This is ok as long as @vma->vm_page_prot is not used by the core vm + * to set caching and encryption bits for those vmas (except for COW pages). + * This is ensured by core vm only modifying these page table entries using + * functions that don't touch caching- or encryption bits, using pte_modify() + * if needed. (See for example mprotect()). + * + * Also when new page-table entries are created, this is only done using the + * fault() callback, and never using the value of vma->vm_page_prot, + * except for page-table entries that point to anonymous pages as the result + * of COW. * * Context: Process context. May allocate using %GFP_KERNEL. * Return: vm_fault_t value. @@ -2223,9 +2235,9 @@ static bool vm_mixed_ok(struct vm_area_struct *vma, pfn_t pfn) } static vm_fault_t __vm_insert_mixed(struct vm_area_struct *vma, - unsigned long addr, pfn_t pfn, pgprot_t pgprot, - bool mkwrite) + unsigned long addr, pfn_t pfn, bool mkwrite) { + pgprot_t pgprot = vma->vm_page_prot; int err; BUG_ON(!vm_mixed_ok(vma, pfn)); @@ -2268,43 +2280,10 @@ static vm_fault_t __vm_insert_mixed(struct vm_area_struct *vma, return VM_FAULT_NOPAGE; } -/** - * vmf_insert_mixed_prot - insert single pfn into user vma with specified pgprot - * @vma: user vma to map to - * @addr: target user address of this page - * @pfn: source kernel pfn - * @pgprot: pgprot flags for the inserted page - * - * This is exactly like vmf_insert_mixed(), except that it allows drivers - * to override pgprot on a per-page basis. - * - * Typically this function should be used by drivers to set caching- and - * encryption bits different than those of @vma->vm_page_prot, because - * the caching- or encryption mode may not be known at mmap() time. - * This is ok as long as @vma->vm_page_prot is not used by the core vm - * to set caching and encryption bits for those vmas (except for COW pages). - * This is ensured by core vm only modifying these page table entries using - * functions that don't touch caching- or encryption bits, using pte_modify() - * if needed. (See for example mprotect()). - * Also when new page-table entries are created, this is only done using the - * fault() callback, and never using the value of vma->vm_page_prot, - * except for page-table entries that point to anonymous pages as the result - * of COW. - * - * Context: Process context. May allocate using %GFP_KERNEL. - * Return: vm_fault_t value. - */ -vm_fault_t vmf_insert_mixed_prot(struct vm_area_struct *vma, unsigned long addr, - pfn_t pfn, pgprot_t pgprot) -{ - return __vm_insert_mixed(vma, addr, pfn, pgprot, false); -} -EXPORT_SYMBOL(vmf_insert_mixed_prot); - vm_fault_t vmf_insert_mixed(struct vm_area_struct *vma, unsigned long addr, pfn_t pfn) { - return __vm_insert_mixed(vma, addr, pfn, vma->vm_page_prot, false); + return __vm_insert_mixed(vma, addr, pfn, false); } EXPORT_SYMBOL(vmf_insert_mixed); @@ -2316,7 +2295,7 @@ EXPORT_SYMBOL(vmf_insert_mixed); vm_fault_t vmf_insert_mixed_mkwrite(struct vm_area_struct *vma, unsigned long addr, pfn_t pfn) { - return __vm_insert_mixed(vma, addr, pfn, vma->vm_page_prot, true); + return __vm_insert_mixed(vma, addr, pfn, true); } EXPORT_SYMBOL(vmf_insert_mixed_mkwrite);