From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id ED4E2C36010 for ; Tue, 1 Apr 2025 12:26:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id DDE54280002; Tue, 1 Apr 2025 08:26:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D6688280001; Tue, 1 Apr 2025 08:26:16 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 01AA7280002; Tue, 1 Apr 2025 08:26:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 598DD280001 for ; Tue, 1 Apr 2025 08:26:15 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 06091121CD5 for ; Tue, 1 Apr 2025 12:26:16 +0000 (UTC) X-FDA: 83285397552.23.AA84DFC Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf15.hostedemail.com (Postfix) with ESMTP id 60CFFA000D for ; Tue, 1 Apr 2025 12:26:10 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="LZ2/PGI1"; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1743510372; a=rsa-sha256; cv=none; b=Un0k2qj7jeChNiZjNVU/pyuQ4UN3BXrLNJhCN/nCkEA5oO8YqlpmHJMJan4R7pjTBsD2aO 8wZ+QNHyUCFml0LsW0VDP/vkl+lDUUdwDueDLxlN1DJ41VpPByJsuP/ZcWALnjjfkyJ49E EAbAFmxGgS/kQ/PPPIV0vPK/n/Vr9Fo= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="LZ2/PGI1"; dmarc=none; spf=none (imf15.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1743510372; 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-type: content-transfer-encoding:content-transfer-encoding:in-reply-to: references:dkim-signature; bh=ezl4dAXISVU3PSLqkD+gpa+RdUvwSAohHd0oTf19clE=; b=Elta5oMh/R9Eb2tRJW53oaRTkQRysUOWsNZ0g4PKk9LRxi++z0QMXQtSIS/2WXGFNa97r4 rV9HC98G18IdgqKIhkRj68hovjEbP6WS3xqSBY/txhYWSpm2vhxyEFvmwQnUt9grVv0Q0n jh8fRiNfEODiZHE+MYBVrX8l6XRNLf0= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: MIME-Version:Message-ID:Date:Subject:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:In-Reply-To:References; bh=ezl4dAXISVU3PSLqkD+gpa+RdUvwSAohHd0oTf19clE=; b=LZ2/PGI1l85WXZ/c0rhAixwXKD A/JomUfqL881hg96A+mSL11UjdX8aqyKPkXiFYaC5U/2kw5KDLa8jeBthJjgQf3IIB71Vfj6uUUQg Y5Pd1pS8sYJ4vYpiL6SxtLql5kGlaF1+IYyzqUlhMFjdWhQNnfNYRTUxp/2/SVYjYRhs2t6eJNyP2 t/bdoPwoUxqcuvZRNWqBI9iBj13jCmVe1wzVbPDxjoyLkT5LzNHD/LBQO9cwZbczLbpjaVcEiw6I/ PddUZGRLF236WBMIH0UT+Uq7H0OQrN2YgBtB5CAC/HADinuVVO+7mYdu5L5RLBNq75eGvRik6ZoXM le1nEvEA==; Received: from willy by casper.infradead.org with local (Exim 4.98.1 #2 (Red Hat Linux)) id 1tzagu-00000007IGy-3Azf; Tue, 01 Apr 2025 12:26:04 +0000 From: "Matthew Wilcox (Oracle)" To: Andrew Morton Cc: "Matthew Wilcox (Oracle)" , "Liam R . Howlett" , Lorenzo Stoakes , Vlastimil Babka , Jann Horn , linux-mm@kvack.org Subject: [PATCH] mm: Rename vm_area_struct to mm_area Date: Tue, 1 Apr 2025 13:25:51 +0100 Message-ID: <20250401122602.1738511-1-willy@infradead.org> X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 60CFFA000D X-Stat-Signature: zp53984bugh9a9zpyefx1poco9gpab4a X-Rspam-User: X-Rspamd-Server: rspam06 X-Spam-Status: No, score=0.03 X-HE-Tag: 1743510370-838233 X-HE-Meta: U2FsdGVkX1/PqlFsaDnWguj/SJmG1HUUzYZ9jGVcdWXQI2xBD3IUdM/HftzBM+p3TZD98ldjt4RUHU8FgLrRlfBXZWSyaUhWM20Xt5S6TFZ0rAyVc4EDFO/8xcoCXi42yLZPq2e+FawFZngqIfO7V5LSIazTrpJaThgUkVZhfgHw11ePkaaIjXPEquex7Q2bB5JmlOV4jZqmS3fzSZ+0ZNP856IL8MDRtkp1UWReWQLntgqgFc+FcUWmRG69E+5dEmrcAEdAhXgS7j3gZgXB0A1KjGbWI7LSqxK4iqe1Ym6MpYK+3JLAXy1bSuPLjNqsUpd4CYQYy/RQBAWyxkZacFGn8kipHe/HP/rDdinAKfehErj8Sft42KjhwwFrYuV8rMrBerAOho+2O+AWvyIxrxBjqrw+2z6knCcxRXOeZM/zXXj1N3jbQMwE2RsyJkNA1BT8htfyYNrbyFzVAlBF9VqoJw34ux1vyWLPqgHMq3Jy5F2uBqdC1ZaIGxOyenRUeCeVppn/JTpYZDS3vxM+KgK2SWZoH8v+WpkYV3HkCcklK+bwl7NO3WiNRjZESVjXzpDqmHsag6oOVaNiDXOJALRA5QpOfYJfCUVhbge0x3O4as6GiKduwY6oV4ur1j391WM4Jjy+KdETacL8CApASeHVUHV3Eb62UX0twxTnzr4RFxPweYLEiu778kIgk7MQkLwdSN5cThCQiWAjZXHE3dZGL/ryUkOrifVm89I6qJOLTuMECenIpD7oxJ0EufUeM2zMch74zJDfQ4tcrwcfm+gR992NrGCGtRkXc3bZuP/BkcwmnXxTQNAmyuft0lDk2vf1tbfRuQLZq3KQ/qpTtDByiIlyZ+xrPrABMk6VddhEhZoJDM49C/WA4uNRobTS5ZuacJQAL0UZVP08Tq0A83B7udj6bggLgCaAqI6EAnYmu/s0ADL6TTMQkdT0aPy+87mfFzt2P4GM71YohnX FjQqmZni Uen6GqV8pzVYmE46kR9dtjVhb8kXy+/0BJL4uJChBPNsKh0xSa59TchrHtzJ4ueOo0M819rDbKuC8ZdRgQOAf/DIqcJUg/YsLj15jqinmHY/mSzUW2idCN3g8kV03997uFQYHL2nhTUxeNlGK8ErzdCobEbsQ1VIG0HsmNzhdJc6dDI0eGIsdRhHhcJ4be+vAjYhnlV0KOq9yJIqwXAqJtzWv6G0Zj57mR7s7NcKElLNizIIm/fCr2MoEnAJvNfUVyAPAy7he1GssNMYd+E25ihXqx3eqLdRYtjT/uYr1jOCdBVljeRUKk+cSuYyaMA4p/bTaOtEU8skOEAqsGj6LkItRipSS8atFak22ij/Ou2LtO6sPLIWO6wWHcE1BjTNa/6rZzBcuFuj4K351/bVVAoeeldjTalryVb2I 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: List-Subscribe: List-Unsubscribe: We don't need to put "_struct" on the end of the name. It's obviously a struct. Just look at the word "struct" before the name. The acronym "vm" tends to mean "virtual machine" rather than "virtual memory" these days, so use "mm_area" instead of "vm_area". I decided not to rename the variables (typically "vma") of type "struct mm_area *" as that would be a fair bit more disruptive. Signed-off-by: Matthew Wilcox (Oracle) --- Generated against next-20250401. Documentation/bpf/prog_lsm.rst | 6 +- Documentation/core-api/cachetlb.rst | 18 +- Documentation/core-api/dma-api.rst | 4 +- Documentation/driver-api/uio-howto.rst | 2 +- Documentation/driver-api/vfio.rst | 2 +- Documentation/filesystems/locking.rst | 12 +- Documentation/filesystems/proc.rst | 2 +- Documentation/filesystems/vfs.rst | 2 +- Documentation/gpu/drm-mm.rst | 4 +- Documentation/mm/hmm.rst | 2 +- Documentation/mm/hugetlbfs_reserv.rst | 12 +- Documentation/mm/process_addrs.rst | 6 +- .../translations/zh_CN/core-api/cachetlb.rst | 18 +- Documentation/translations/zh_CN/mm/hmm.rst | 2 +- .../zh_CN/mm/hugetlbfs_reserv.rst | 12 +- .../userspace-api/media/conf_nitpick.py | 2 +- arch/alpha/include/asm/cacheflush.h | 6 +- arch/alpha/include/asm/machvec.h | 2 +- arch/alpha/include/asm/pci.h | 2 +- arch/alpha/include/asm/pgtable.h | 6 +- arch/alpha/include/asm/tlbflush.h | 10 +- arch/alpha/kernel/pci-sysfs.c | 16 +- arch/alpha/kernel/smp.c | 8 +- arch/alpha/mm/fault.c | 2 +- arch/arc/include/asm/hugepage.h | 4 +- arch/arc/include/asm/page.h | 4 +- arch/arc/include/asm/pgtable-bits-arcv2.h | 2 +- arch/arc/include/asm/tlbflush.h | 12 +- arch/arc/kernel/arc_hostlink.c | 2 +- arch/arc/kernel/troubleshoot.c | 2 +- arch/arc/mm/cache.c | 2 +- arch/arc/mm/fault.c | 2 +- arch/arc/mm/mmap.c | 2 +- arch/arc/mm/tlb.c | 20 +- arch/arm/include/asm/cacheflush.h | 14 +- arch/arm/include/asm/page.h | 20 +- arch/arm/include/asm/tlbflush.h | 28 +- arch/arm/kernel/asm-offsets.c | 4 +- arch/arm/kernel/process.c | 10 +- arch/arm/kernel/smp_tlb.c | 6 +- arch/arm/kernel/vdso.c | 4 +- arch/arm/mach-rpc/ecard.c | 2 +- arch/arm/mm/cache-v6.S | 2 +- arch/arm/mm/cache-v7.S | 2 +- arch/arm/mm/cache-v7m.S | 2 +- arch/arm/mm/copypage-fa.c | 2 +- arch/arm/mm/copypage-feroceon.c | 2 +- arch/arm/mm/copypage-v4mc.c | 2 +- arch/arm/mm/copypage-v4wb.c | 2 +- arch/arm/mm/copypage-v4wt.c | 2 +- arch/arm/mm/copypage-v6.c | 4 +- arch/arm/mm/copypage-xsc3.c | 2 +- arch/arm/mm/copypage-xscale.c | 2 +- arch/arm/mm/dma-mapping.c | 2 +- arch/arm/mm/fault-armv.c | 10 +- arch/arm/mm/fault.c | 2 +- arch/arm/mm/flush.c | 14 +- arch/arm/mm/mmap.c | 4 +- arch/arm/mm/nommu.c | 2 +- arch/arm/mm/tlb-v6.S | 2 +- arch/arm/mm/tlb-v7.S | 2 +- arch/arm/mm/tlb.c | 12 +- arch/arm/xen/enlighten.c | 2 +- arch/arm64/include/asm/cacheflush.h | 2 +- arch/arm64/include/asm/hugetlb.h | 10 +- arch/arm64/include/asm/mmu_context.h | 2 +- arch/arm64/include/asm/page.h | 6 +- arch/arm64/include/asm/pgtable.h | 38 +-- arch/arm64/include/asm/pkeys.h | 4 +- arch/arm64/include/asm/tlb.h | 2 +- arch/arm64/include/asm/tlbflush.h | 8 +- arch/arm64/kernel/mte.c | 2 +- arch/arm64/kernel/vdso.c | 4 +- arch/arm64/kvm/mmu.c | 10 +- arch/arm64/mm/contpte.c | 10 +- arch/arm64/mm/copypage.c | 2 +- arch/arm64/mm/fault.c | 10 +- arch/arm64/mm/flush.c | 4 +- arch/arm64/mm/hugetlbpage.c | 14 +- arch/arm64/mm/mmu.c | 4 +- arch/csky/abiv1/cacheflush.c | 4 +- arch/csky/abiv1/inc/abi/cacheflush.h | 4 +- arch/csky/abiv1/mmap.c | 2 +- arch/csky/abiv2/cacheflush.c | 2 +- arch/csky/include/asm/page.h | 2 +- arch/csky/include/asm/pgtable.h | 2 +- arch/csky/include/asm/tlbflush.h | 4 +- arch/csky/kernel/vdso.c | 2 +- arch/csky/mm/fault.c | 4 +- arch/csky/mm/tlb.c | 4 +- arch/hexagon/include/asm/cacheflush.h | 4 +- arch/hexagon/include/asm/tlbflush.h | 4 +- arch/hexagon/kernel/vdso.c | 4 +- arch/hexagon/mm/cache.c | 2 +- arch/hexagon/mm/vm_fault.c | 2 +- arch/hexagon/mm/vm_tlb.c | 4 +- arch/loongarch/include/asm/hugetlb.h | 4 +- arch/loongarch/include/asm/page.h | 4 +- arch/loongarch/include/asm/pgtable.h | 8 +- arch/loongarch/include/asm/tlb.h | 2 +- arch/loongarch/include/asm/tlbflush.h | 8 +- arch/loongarch/kernel/smp.c | 6 +- arch/loongarch/kernel/vdso.c | 4 +- arch/loongarch/mm/fault.c | 2 +- arch/loongarch/mm/hugetlbpage.c | 2 +- arch/loongarch/mm/init.c | 2 +- arch/loongarch/mm/mmap.c | 2 +- arch/loongarch/mm/tlb.c | 8 +- arch/m68k/include/asm/cacheflush_mm.h | 10 +- arch/m68k/include/asm/pgtable_mm.h | 2 +- arch/m68k/include/asm/tlbflush.h | 12 +- arch/m68k/kernel/sys_m68k.c | 2 +- arch/m68k/mm/cache.c | 2 +- arch/m68k/mm/fault.c | 2 +- arch/microblaze/include/asm/cacheflush.h | 2 +- arch/microblaze/include/asm/pgtable.h | 4 +- arch/microblaze/include/asm/tlbflush.h | 4 +- arch/microblaze/mm/fault.c | 2 +- arch/mips/alchemy/common/setup.c | 2 +- arch/mips/include/asm/cacheflush.h | 10 +- arch/mips/include/asm/hugetlb.h | 4 +- arch/mips/include/asm/page.h | 4 +- arch/mips/include/asm/pgtable.h | 14 +- arch/mips/include/asm/tlbflush.h | 8 +- arch/mips/kernel/smp.c | 6 +- arch/mips/kernel/vdso.c | 2 +- arch/mips/mm/c-octeon.c | 6 +- arch/mips/mm/c-r3k.c | 4 +- arch/mips/mm/c-r4k.c | 10 +- arch/mips/mm/cache.c | 4 +- arch/mips/mm/fault.c | 2 +- arch/mips/mm/hugetlbpage.c | 2 +- arch/mips/mm/init.c | 6 +- arch/mips/mm/mmap.c | 2 +- arch/mips/mm/tlb-r3k.c | 6 +- arch/mips/mm/tlb-r4k.c | 8 +- arch/mips/vdso/genvdso.c | 2 +- arch/nios2/include/asm/cacheflush.h | 10 +- arch/nios2/include/asm/pgtable.h | 2 +- arch/nios2/include/asm/tlbflush.h | 6 +- arch/nios2/kernel/sys_nios2.c | 2 +- arch/nios2/mm/cacheflush.c | 14 +- arch/nios2/mm/fault.c | 2 +- arch/nios2/mm/init.c | 4 +- arch/nios2/mm/tlb.c | 4 +- arch/openrisc/include/asm/pgtable.h | 8 +- arch/openrisc/include/asm/tlbflush.h | 8 +- arch/openrisc/kernel/smp.c | 4 +- arch/openrisc/mm/cache.c | 2 +- arch/openrisc/mm/fault.c | 2 +- arch/openrisc/mm/tlb.c | 4 +- arch/parisc/include/asm/cacheflush.h | 12 +- arch/parisc/include/asm/hugetlb.h | 4 +- arch/parisc/include/asm/page.h | 4 +- arch/parisc/include/asm/pgtable.h | 6 +- arch/parisc/include/asm/tlbflush.h | 2 +- arch/parisc/kernel/cache.c | 30 +- arch/parisc/kernel/sys_parisc.c | 2 +- arch/parisc/kernel/traps.c | 2 +- arch/parisc/kernel/vdso.c | 4 +- arch/parisc/mm/fault.c | 6 +- arch/parisc/mm/hugetlbpage.c | 4 +- arch/powerpc/include/asm/book3s/32/pgtable.h | 2 +- arch/powerpc/include/asm/book3s/32/tlbflush.h | 8 +- arch/powerpc/include/asm/book3s/64/hash-4k.h | 2 +- arch/powerpc/include/asm/book3s/64/hash-64k.h | 6 +- arch/powerpc/include/asm/book3s/64/hugetlb.h | 14 +- .../include/asm/book3s/64/pgtable-64k.h | 2 +- arch/powerpc/include/asm/book3s/64/pgtable.h | 30 +- arch/powerpc/include/asm/book3s/64/radix.h | 6 +- .../include/asm/book3s/64/tlbflush-radix.h | 14 +- arch/powerpc/include/asm/book3s/64/tlbflush.h | 14 +- arch/powerpc/include/asm/cacheflush.h | 2 +- arch/powerpc/include/asm/hugetlb.h | 6 +- arch/powerpc/include/asm/mmu_context.h | 4 +- .../include/asm/nohash/32/hugetlb-8xx.h | 2 +- arch/powerpc/include/asm/nohash/32/pte-8xx.h | 2 +- .../powerpc/include/asm/nohash/hugetlb-e500.h | 2 +- arch/powerpc/include/asm/nohash/pgtable.h | 4 +- arch/powerpc/include/asm/nohash/tlbflush.h | 10 +- arch/powerpc/include/asm/page.h | 2 +- arch/powerpc/include/asm/pci.h | 4 +- arch/powerpc/include/asm/pgtable.h | 6 +- arch/powerpc/include/asm/pkeys.h | 6 +- arch/powerpc/include/asm/vas.h | 2 +- arch/powerpc/kernel/pci-common.c | 4 +- arch/powerpc/kernel/proc_powerpc.c | 2 +- arch/powerpc/kernel/vdso.c | 10 +- arch/powerpc/kvm/book3s_64_vio.c | 2 +- arch/powerpc/kvm/book3s_hv.c | 2 +- arch/powerpc/kvm/book3s_hv_uvmem.c | 16 +- arch/powerpc/kvm/book3s_xive_native.c | 6 +- arch/powerpc/mm/book3s32/mmu.c | 2 +- arch/powerpc/mm/book3s32/tlb.c | 4 +- arch/powerpc/mm/book3s64/hash_pgtable.c | 2 +- arch/powerpc/mm/book3s64/hash_utils.c | 2 +- arch/powerpc/mm/book3s64/hugetlbpage.c | 4 +- arch/powerpc/mm/book3s64/iommu_api.c | 2 +- arch/powerpc/mm/book3s64/pgtable.c | 22 +- arch/powerpc/mm/book3s64/pkeys.c | 6 +- arch/powerpc/mm/book3s64/radix_hugetlbpage.c | 8 +- arch/powerpc/mm/book3s64/radix_pgtable.c | 6 +- arch/powerpc/mm/book3s64/radix_tlb.c | 10 +- arch/powerpc/mm/book3s64/slice.c | 4 +- arch/powerpc/mm/book3s64/subpage_prot.c | 4 +- arch/powerpc/mm/cacheflush.c | 2 +- arch/powerpc/mm/copro_fault.c | 2 +- arch/powerpc/mm/fault.c | 12 +- arch/powerpc/mm/hugetlbpage.c | 2 +- arch/powerpc/mm/nohash/e500_hugetlbpage.c | 6 +- arch/powerpc/mm/nohash/tlb.c | 6 +- arch/powerpc/mm/pgtable.c | 6 +- arch/powerpc/platforms/book3s/vas-api.c | 6 +- arch/powerpc/platforms/cell/spufs/file.c | 18 +- arch/powerpc/platforms/powernv/memtrace.c | 2 +- arch/powerpc/platforms/powernv/opal-prd.c | 2 +- arch/powerpc/platforms/pseries/vas.c | 2 +- arch/riscv/include/asm/hugetlb.h | 4 +- arch/riscv/include/asm/pgtable.h | 18 +- arch/riscv/include/asm/tlbflush.h | 6 +- arch/riscv/kernel/vdso.c | 2 +- arch/riscv/kvm/mmu.c | 4 +- arch/riscv/mm/fault.c | 4 +- arch/riscv/mm/hugetlbpage.c | 10 +- arch/riscv/mm/pgtable.c | 6 +- arch/riscv/mm/tlbflush.c | 6 +- arch/s390/include/asm/hugetlb.h | 4 +- arch/s390/include/asm/pgtable.h | 28 +- arch/s390/include/asm/tlbflush.h | 2 +- arch/s390/kernel/crash_dump.c | 6 +- arch/s390/kernel/uv.c | 2 +- arch/s390/kernel/vdso.c | 4 +- arch/s390/mm/fault.c | 4 +- arch/s390/mm/gmap.c | 10 +- arch/s390/mm/hugetlbpage.c | 2 +- arch/s390/mm/mmap.c | 4 +- arch/s390/mm/pgtable.c | 12 +- arch/s390/pci/pci_mmio.c | 4 +- arch/sh/include/asm/cacheflush.h | 14 +- arch/sh/include/asm/hugetlb.h | 2 +- arch/sh/include/asm/page.h | 4 +- arch/sh/include/asm/pgtable.h | 8 +- arch/sh/include/asm/tlb.h | 4 +- arch/sh/include/asm/tlbflush.h | 8 +- arch/sh/kernel/smp.c | 6 +- arch/sh/kernel/sys_sh.c | 2 +- arch/sh/kernel/vsyscall/vsyscall.c | 4 +- arch/sh/mm/cache-sh4.c | 4 +- arch/sh/mm/cache.c | 14 +- arch/sh/mm/fault.c | 4 +- arch/sh/mm/hugetlbpage.c | 2 +- arch/sh/mm/mmap.c | 4 +- arch/sh/mm/nommu.c | 6 +- arch/sh/mm/tlb-pteaex.c | 2 +- arch/sh/mm/tlb-sh3.c | 2 +- arch/sh/mm/tlb-sh4.c | 2 +- arch/sh/mm/tlb-urb.c | 2 +- arch/sh/mm/tlbflush_32.c | 4 +- arch/sparc/include/asm/cacheflush_64.h | 2 +- arch/sparc/include/asm/cachetlb_32.h | 10 +- arch/sparc/include/asm/hugetlb.h | 4 +- arch/sparc/include/asm/leon.h | 4 +- arch/sparc/include/asm/page_64.h | 4 +- arch/sparc/include/asm/pgtable_32.h | 6 +- arch/sparc/include/asm/pgtable_64.h | 20 +- arch/sparc/include/asm/tlbflush_64.h | 4 +- arch/sparc/kernel/adi_64.c | 8 +- arch/sparc/kernel/asm-offsets.c | 2 +- arch/sparc/kernel/pci.c | 2 +- arch/sparc/kernel/ptrace_64.c | 2 +- arch/sparc/kernel/sys_sparc_64.c | 4 +- arch/sparc/mm/fault_32.c | 4 +- arch/sparc/mm/fault_64.c | 2 +- arch/sparc/mm/hugetlbpage.c | 2 +- arch/sparc/mm/init_64.c | 6 +- arch/sparc/mm/leon_mm.c | 10 +- arch/sparc/mm/srmmu.c | 54 +-- arch/sparc/mm/tlb.c | 4 +- arch/sparc/vdso/vma.c | 2 +- arch/um/drivers/mmapper_kern.c | 2 +- arch/um/include/asm/tlbflush.h | 4 +- arch/um/kernel/tlb.c | 2 +- arch/um/kernel/trap.c | 2 +- arch/x86/entry/vdso/vma.c | 12 +- arch/x86/entry/vsyscall/vsyscall_64.c | 8 +- arch/x86/include/asm/mmu_context.h | 2 +- arch/x86/include/asm/paravirt.h | 4 +- arch/x86/include/asm/paravirt_types.h | 6 +- arch/x86/include/asm/pgtable-3level.h | 2 +- arch/x86/include/asm/pgtable.h | 46 +-- arch/x86/include/asm/pgtable_32.h | 2 +- arch/x86/include/asm/pkeys.h | 6 +- arch/x86/include/asm/tlbflush.h | 2 +- arch/x86/kernel/cpu/resctrl/pseudo_lock.c | 4 +- arch/x86/kernel/cpu/sgx/driver.c | 2 +- arch/x86/kernel/cpu/sgx/encl.c | 14 +- arch/x86/kernel/cpu/sgx/encl.h | 4 +- arch/x86/kernel/cpu/sgx/ioctl.c | 2 +- arch/x86/kernel/cpu/sgx/virt.c | 6 +- arch/x86/kernel/shstk.c | 2 +- arch/x86/kernel/sys_x86_64.c | 4 +- arch/x86/mm/fault.c | 10 +- arch/x86/mm/pat/memtype.c | 18 +- arch/x86/mm/pgtable.c | 30 +- arch/x86/mm/pkeys.c | 4 +- arch/x86/um/mem_32.c | 6 +- arch/x86/um/mem_64.c | 2 +- arch/x86/um/vdso/vma.c | 2 +- arch/x86/xen/mmu.c | 2 +- arch/x86/xen/mmu_pv.c | 6 +- arch/xtensa/include/asm/cacheflush.h | 12 +- arch/xtensa/include/asm/page.h | 4 +- arch/xtensa/include/asm/pgtable.h | 8 +- arch/xtensa/include/asm/tlbflush.h | 8 +- arch/xtensa/kernel/pci.c | 2 +- arch/xtensa/kernel/smp.c | 10 +- arch/xtensa/kernel/syscall.c | 2 +- arch/xtensa/mm/cache.c | 12 +- arch/xtensa/mm/fault.c | 2 +- arch/xtensa/mm/tlb.c | 6 +- block/fops.c | 2 +- drivers/accel/amdxdna/amdxdna_gem.c | 6 +- .../accel/habanalabs/common/command_buffer.c | 2 +- drivers/accel/habanalabs/common/device.c | 6 +- drivers/accel/habanalabs/common/habanalabs.h | 14 +- drivers/accel/habanalabs/common/memory.c | 8 +- drivers/accel/habanalabs/common/memory_mgr.c | 4 +- drivers/accel/habanalabs/gaudi/gaudi.c | 4 +- drivers/accel/habanalabs/gaudi2/gaudi2.c | 4 +- drivers/accel/habanalabs/goya/goya.c | 4 +- drivers/accel/qaic/qaic_data.c | 2 +- drivers/acpi/pfr_telemetry.c | 2 +- drivers/android/binder.c | 6 +- drivers/android/binder_alloc.c | 6 +- drivers/android/binder_alloc.h | 2 +- drivers/auxdisplay/cfag12864bfb.c | 2 +- drivers/auxdisplay/ht16k33.c | 2 +- drivers/block/ublk_drv.c | 2 +- drivers/cdx/cdx.c | 4 +- drivers/char/bsr.c | 2 +- drivers/char/hpet.c | 4 +- drivers/char/mem.c | 8 +- drivers/char/uv_mmtimer.c | 4 +- drivers/comedi/comedi_fops.c | 8 +- drivers/crypto/hisilicon/qm.c | 2 +- drivers/dax/device.c | 8 +- drivers/dma-buf/dma-buf.c | 6 +- drivers/dma-buf/heaps/cma_heap.c | 4 +- drivers/dma-buf/heaps/system_heap.c | 2 +- drivers/dma-buf/udmabuf.c | 4 +- drivers/dma/idxd/cdev.c | 4 +- drivers/firewire/core-cdev.c | 2 +- drivers/fpga/dfl-afu-main.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_chardev.c | 6 +- drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_events.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_migrate.c | 12 +- drivers/gpu/drm/amd/amdkfd/kfd_priv.h | 8 +- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 2 +- drivers/gpu/drm/amd/amdkfd/kfd_svm.c | 10 +- drivers/gpu/drm/armada/armada_gem.c | 2 +- drivers/gpu/drm/drm_fbdev_dma.c | 2 +- drivers/gpu/drm/drm_fbdev_shmem.c | 2 +- drivers/gpu/drm/drm_gem.c | 8 +- drivers/gpu/drm/drm_gem_dma_helper.c | 2 +- drivers/gpu/drm/drm_gem_shmem_helper.c | 8 +- drivers/gpu/drm/drm_gem_ttm_helper.c | 2 +- drivers/gpu/drm/drm_gpusvm.c | 10 +- drivers/gpu/drm/drm_prime.c | 4 +- drivers/gpu/drm/etnaviv/etnaviv_gem.c | 8 +- drivers/gpu/drm/etnaviv/etnaviv_gem.h | 2 +- drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_fbdev.c | 2 +- drivers/gpu/drm/exynos/exynos_drm_gem.c | 6 +- drivers/gpu/drm/gma500/fbdev.c | 4 +- drivers/gpu/drm/gma500/gem.c | 2 +- drivers/gpu/drm/i915/display/intel_bo.c | 2 +- drivers/gpu/drm/i915/display/intel_bo.h | 4 +- drivers/gpu/drm/i915/display/intel_fbdev.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c | 2 +- drivers/gpu/drm/i915/gem/i915_gem_mman.c | 22 +- drivers/gpu/drm/i915/gem/i915_gem_mman.h | 4 +- drivers/gpu/drm/i915/gem/i915_gem_ttm.c | 8 +- drivers/gpu/drm/i915/gem/i915_gem_userptr.c | 2 +- .../drm/i915/gem/selftests/i915_gem_mman.c | 8 +- .../gpu/drm/i915/gem/selftests/mock_dmabuf.c | 2 +- drivers/gpu/drm/i915/gvt/kvmgt.c | 2 +- drivers/gpu/drm/i915/i915_mm.c | 4 +- drivers/gpu/drm/i915/i915_mm.h | 8 +- drivers/gpu/drm/imagination/pvr_gem.c | 2 +- drivers/gpu/drm/lima/lima_gem.c | 2 +- drivers/gpu/drm/lima/lima_gem.h | 2 +- drivers/gpu/drm/loongson/lsdc_gem.c | 2 +- drivers/gpu/drm/mediatek/mtk_gem.c | 4 +- drivers/gpu/drm/msm/msm_fbdev.c | 2 +- drivers/gpu/drm/msm/msm_gem.c | 4 +- drivers/gpu/drm/nouveau/nouveau_dmem.c | 2 +- drivers/gpu/drm/nouveau/nouveau_dmem.h | 2 +- drivers/gpu/drm/nouveau/nouveau_gem.c | 2 +- drivers/gpu/drm/nouveau/nouveau_svm.c | 2 +- drivers/gpu/drm/omapdrm/omap_fbdev.c | 2 +- drivers/gpu/drm/omapdrm/omap_gem.c | 8 +- drivers/gpu/drm/omapdrm/omap_gem.h | 2 +- drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c | 2 +- drivers/gpu/drm/panthor/panthor_device.c | 4 +- drivers/gpu/drm/panthor/panthor_device.h | 2 +- drivers/gpu/drm/panthor/panthor_drv.c | 2 +- drivers/gpu/drm/panthor/panthor_gem.c | 2 +- drivers/gpu/drm/radeon/radeon_gem.c | 2 +- drivers/gpu/drm/radeon/radeon_ttm.c | 2 +- drivers/gpu/drm/rockchip/rockchip_drm_gem.c | 6 +- drivers/gpu/drm/tegra/fbdev.c | 2 +- drivers/gpu/drm/tegra/gem.c | 8 +- drivers/gpu/drm/tegra/gem.h | 4 +- drivers/gpu/drm/ttm/ttm_bo_vm.c | 14 +- drivers/gpu/drm/vc4/vc4_bo.c | 4 +- drivers/gpu/drm/virtio/virtgpu_vram.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_gem.c | 2 +- drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c | 4 +- drivers/gpu/drm/xe/display/intel_bo.c | 2 +- drivers/gpu/drm/xe/xe_bo.c | 2 +- drivers/gpu/drm/xe/xe_device.c | 10 +- drivers/gpu/drm/xe/xe_oa.c | 2 +- drivers/gpu/drm/xen/xen_drm_front_gem.c | 2 +- drivers/hsi/clients/cmt_speech.c | 2 +- drivers/hv/mshv_root_main.c | 6 +- drivers/hwtracing/intel_th/msu.c | 6 +- drivers/hwtracing/stm/core.c | 6 +- drivers/infiniband/core/core_priv.h | 4 +- drivers/infiniband/core/ib_core_uverbs.c | 6 +- drivers/infiniband/core/uverbs_main.c | 8 +- drivers/infiniband/hw/bnxt_re/ib_verbs.c | 2 +- drivers/infiniband/hw/bnxt_re/ib_verbs.h | 2 +- drivers/infiniband/hw/cxgb4/provider.c | 2 +- drivers/infiniband/hw/efa/efa.h | 2 +- drivers/infiniband/hw/efa/efa_verbs.c | 4 +- drivers/infiniband/hw/erdma/erdma_verbs.c | 2 +- drivers/infiniband/hw/erdma/erdma_verbs.h | 2 +- drivers/infiniband/hw/hfi1/file_ops.c | 6 +- drivers/infiniband/hw/hns/hns_roce_main.c | 2 +- drivers/infiniband/hw/irdma/verbs.c | 4 +- drivers/infiniband/hw/mana/main.c | 2 +- drivers/infiniband/hw/mana/mana_ib.h | 2 +- drivers/infiniband/hw/mlx4/main.c | 2 +- drivers/infiniband/hw/mlx4/mr.c | 2 +- drivers/infiniband/hw/mlx5/main.c | 10 +- drivers/infiniband/hw/mthca/mthca_provider.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.c | 2 +- drivers/infiniband/hw/ocrdma/ocrdma_verbs.h | 2 +- drivers/infiniband/hw/qedr/verbs.c | 2 +- drivers/infiniband/hw/qedr/verbs.h | 2 +- drivers/infiniband/hw/qib/qib_file_ops.c | 14 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.c | 2 +- drivers/infiniband/hw/usnic/usnic_ib_verbs.h | 2 +- .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.c | 2 +- .../infiniband/hw/vmw_pvrdma/pvrdma_verbs.h | 2 +- drivers/infiniband/sw/rdmavt/mmap.c | 6 +- drivers/infiniband/sw/rdmavt/mmap.h | 2 +- drivers/infiniband/sw/rxe/rxe_loc.h | 2 +- drivers/infiniband/sw/rxe/rxe_mmap.c | 6 +- drivers/infiniband/sw/siw/siw_verbs.c | 2 +- drivers/infiniband/sw/siw/siw_verbs.h | 2 +- drivers/iommu/dma-iommu.c | 4 +- drivers/iommu/iommu-sva.c | 2 +- .../media/common/videobuf2/videobuf2-core.c | 2 +- .../common/videobuf2/videobuf2-dma-contig.c | 4 +- .../media/common/videobuf2/videobuf2-dma-sg.c | 4 +- .../media/common/videobuf2/videobuf2-memops.c | 4 +- .../media/common/videobuf2/videobuf2-v4l2.c | 2 +- .../common/videobuf2/videobuf2-vmalloc.c | 4 +- drivers/media/dvb-core/dmxdev.c | 4 +- drivers/media/dvb-core/dvb_vb2.c | 2 +- drivers/media/pci/cx18/cx18-fileops.h | 2 +- drivers/media/pci/intel/ipu6/ipu6-dma.c | 2 +- drivers/media/pci/intel/ipu6/ipu6-dma.h | 2 +- .../platform/samsung/exynos-gsc/gsc-m2m.c | 2 +- .../samsung/s3c-camif/camif-capture.c | 2 +- .../media/platform/samsung/s5p-mfc/s5p_mfc.c | 2 +- drivers/media/platform/ti/omap3isp/ispvideo.c | 2 +- drivers/media/usb/uvc/uvc_queue.c | 2 +- drivers/media/usb/uvc/uvc_v4l2.c | 2 +- drivers/media/usb/uvc/uvcvideo.h | 2 +- drivers/media/v4l2-core/v4l2-dev.c | 2 +- drivers/media/v4l2-core/v4l2-mem2mem.c | 4 +- drivers/misc/bcm-vk/bcm_vk_dev.c | 2 +- drivers/misc/fastrpc.c | 4 +- drivers/misc/genwqe/card_dev.c | 6 +- drivers/misc/ocxl/context.c | 12 +- drivers/misc/ocxl/file.c | 2 +- drivers/misc/ocxl/ocxl_internal.h | 2 +- drivers/misc/ocxl/sysfs.c | 4 +- drivers/misc/open-dice.c | 2 +- drivers/misc/sgi-gru/grufault.c | 14 +- drivers/misc/sgi-gru/grufile.c | 6 +- drivers/misc/sgi-gru/grumain.c | 10 +- drivers/misc/sgi-gru/grutables.h | 12 +- drivers/misc/uacce/uacce.c | 4 +- drivers/mtd/mtdchar.c | 2 +- drivers/pci/mmap.c | 4 +- drivers/pci/p2pdma.c | 2 +- drivers/pci/pci-sysfs.c | 16 +- drivers/pci/pci.h | 2 +- drivers/pci/proc.c | 2 +- drivers/platform/x86/intel/pmt/class.c | 2 +- drivers/ptp/ptp_vmclock.c | 2 +- drivers/rapidio/devices/rio_mport_cdev.c | 6 +- drivers/sbus/char/flash.c | 2 +- drivers/sbus/char/oradax.c | 4 +- drivers/scsi/sg.c | 4 +- drivers/soc/aspeed/aspeed-lpc-ctrl.c | 2 +- drivers/soc/aspeed/aspeed-p2a-ctrl.c | 2 +- drivers/soc/qcom/rmtfs_mem.c | 2 +- .../staging/media/atomisp/include/hmm/hmm.h | 2 +- .../media/atomisp/include/hmm/hmm_bo.h | 2 +- drivers/staging/media/atomisp/pci/hmm/hmm.c | 2 +- .../staging/media/atomisp/pci/hmm/hmm_bo.c | 6 +- drivers/staging/vme_user/vme.c | 2 +- drivers/staging/vme_user/vme.h | 2 +- drivers/staging/vme_user/vme_user.c | 8 +- drivers/target/target_core_user.c | 8 +- drivers/tee/optee/call.c | 2 +- drivers/tee/tee_shm.c | 2 +- drivers/uio/uio.c | 10 +- drivers/uio/uio_hv_generic.c | 2 +- drivers/usb/core/devio.c | 6 +- drivers/usb/gadget/function/uvc_queue.c | 2 +- drivers/usb/gadget/function/uvc_queue.h | 2 +- drivers/usb/gadget/function/uvc_v4l2.c | 2 +- drivers/usb/mon/mon_bin.c | 6 +- drivers/vdpa/vdpa_user/iova_domain.c | 2 +- drivers/vfio/cdx/main.c | 4 +- drivers/vfio/fsl-mc/vfio_fsl_mc.c | 4 +- .../vfio/pci/hisilicon/hisi_acc_vfio_pci.c | 2 +- drivers/vfio/pci/nvgrace-gpu/main.c | 2 +- drivers/vfio/pci/vfio_pci_core.c | 6 +- drivers/vfio/platform/vfio_platform_common.c | 4 +- drivers/vfio/platform/vfio_platform_private.h | 2 +- drivers/vfio/vfio_iommu_type1.c | 4 +- drivers/vfio/vfio_main.c | 2 +- drivers/vhost/vdpa.c | 6 +- drivers/video/fbdev/68328fb.c | 4 +- drivers/video/fbdev/atafb.c | 2 +- drivers/video/fbdev/aty/atyfb_base.c | 4 +- drivers/video/fbdev/au1100fb.c | 2 +- drivers/video/fbdev/au1200fb.c | 2 +- drivers/video/fbdev/bw2.c | 4 +- drivers/video/fbdev/cg14.c | 4 +- drivers/video/fbdev/cg3.c | 4 +- drivers/video/fbdev/cg6.c | 4 +- drivers/video/fbdev/controlfb.c | 2 +- drivers/video/fbdev/core/fb_chrdev.c | 2 +- drivers/video/fbdev/core/fb_defio.c | 2 +- drivers/video/fbdev/core/fb_io_fops.c | 2 +- drivers/video/fbdev/ep93xx-fb.c | 2 +- drivers/video/fbdev/ffb.c | 4 +- drivers/video/fbdev/gbefb.c | 2 +- drivers/video/fbdev/leo.c | 4 +- drivers/video/fbdev/omap/omapfb.h | 2 +- drivers/video/fbdev/omap/omapfb_main.c | 2 +- .../video/fbdev/omap2/omapfb/omapfb-main.c | 6 +- drivers/video/fbdev/p9100.c | 4 +- drivers/video/fbdev/ps3fb.c | 2 +- drivers/video/fbdev/pxa3xx-gcu.c | 2 +- drivers/video/fbdev/sa1100fb.c | 2 +- drivers/video/fbdev/sbuslib.c | 2 +- drivers/video/fbdev/sbuslib.h | 4 +- drivers/video/fbdev/sh_mobile_lcdcfb.c | 4 +- drivers/video/fbdev/smscufx.c | 2 +- drivers/video/fbdev/tcx.c | 4 +- drivers/video/fbdev/udlfb.c | 2 +- drivers/video/fbdev/vfb.c | 4 +- drivers/virt/acrn/mm.c | 2 +- drivers/xen/gntalloc.c | 6 +- drivers/xen/gntdev.c | 10 +- drivers/xen/privcmd-buf.c | 6 +- drivers/xen/privcmd.c | 26 +- drivers/xen/xenbus/xenbus_dev_backend.c | 2 +- drivers/xen/xenfs/xenstored.c | 2 +- drivers/xen/xlate_mmu.c | 8 +- fs/9p/vfs_file.c | 4 +- fs/afs/file.c | 12 +- fs/aio.c | 4 +- fs/backing-file.c | 2 +- fs/bcachefs/fs.c | 2 +- fs/binfmt_elf.c | 2 +- fs/btrfs/file.c | 2 +- fs/buffer.c | 2 +- fs/ceph/addr.c | 6 +- fs/ceph/super.h | 2 +- fs/coda/file.c | 6 +- fs/coredump.c | 12 +- fs/cramfs/inode.c | 4 +- fs/dax.c | 8 +- fs/ecryptfs/file.c | 2 +- fs/erofs/data.c | 2 +- fs/exec.c | 12 +- fs/exfat/file.c | 4 +- fs/ext2/file.c | 2 +- fs/ext4/file.c | 2 +- fs/ext4/inode.c | 2 +- fs/f2fs/file.c | 2 +- fs/fuse/dax.c | 2 +- fs/fuse/file.c | 4 +- fs/fuse/fuse_i.h | 4 +- fs/fuse/passthrough.c | 2 +- fs/gfs2/file.c | 2 +- fs/hugetlbfs/inode.c | 14 +- fs/kernfs/file.c | 6 +- fs/nfs/file.c | 2 +- fs/nfs/internal.h | 2 +- fs/nilfs2/file.c | 4 +- fs/ntfs3/file.c | 2 +- fs/ocfs2/mmap.c | 4 +- fs/ocfs2/mmap.h | 2 +- fs/orangefs/file.c | 2 +- fs/overlayfs/file.c | 2 +- fs/proc/base.c | 6 +- fs/proc/inode.c | 4 +- fs/proc/task_mmu.c | 88 ++--- fs/proc/task_nommu.c | 12 +- fs/proc/vmcore.c | 14 +- fs/ramfs/file-nommu.c | 4 +- fs/romfs/mmap-nommu.c | 2 +- fs/smb/client/cifsfs.h | 4 +- fs/smb/client/file.c | 4 +- fs/sysfs/file.c | 2 +- fs/ubifs/file.c | 2 +- fs/udf/file.c | 4 +- fs/userfaultfd.c | 20 +- fs/vboxsf/file.c | 4 +- fs/xfs/xfs_file.c | 2 +- fs/zonefs/file.c | 2 +- include/asm-generic/cacheflush.h | 8 +- include/asm-generic/hugetlb.h | 4 +- include/asm-generic/mm_hooks.h | 2 +- include/asm-generic/tlb.h | 12 +- include/drm/drm_gem.h | 10 +- include/drm/drm_gem_dma_helper.h | 4 +- include/drm/drm_gem_shmem_helper.h | 4 +- include/drm/drm_gem_ttm_helper.h | 2 +- include/drm/drm_gem_vram_helper.h | 2 +- include/drm/drm_prime.h | 4 +- include/drm/ttm/ttm_bo.h | 8 +- include/linux/backing-file.h | 2 +- include/linux/binfmts.h | 2 +- include/linux/bpf.h | 2 +- include/linux/btf_ids.h | 2 +- include/linux/buffer_head.h | 2 +- include/linux/buildid.h | 6 +- include/linux/cacheflush.h | 2 +- include/linux/configfs.h | 2 +- include/linux/crash_dump.h | 2 +- include/linux/dax.h | 4 +- include/linux/dma-buf.h | 4 +- include/linux/dma-map-ops.h | 10 +- include/linux/dma-mapping.h | 12 +- include/linux/fb.h | 8 +- include/linux/fs.h | 14 +- include/linux/gfp.h | 8 +- include/linux/highmem.h | 10 +- include/linux/huge_mm.h | 92 +++--- include/linux/hugetlb.h | 132 ++++---- include/linux/hugetlb_inline.h | 4 +- include/linux/io-mapping.h | 2 +- include/linux/iomap.h | 2 +- include/linux/iommu-dma.h | 4 +- include/linux/kernfs.h | 4 +- include/linux/khugepaged.h | 4 +- include/linux/ksm.h | 12 +- include/linux/kvm_host.h | 2 +- include/linux/lsm_hook_defs.h | 2 +- include/linux/mempolicy.h | 20 +- include/linux/migrate.h | 6 +- include/linux/mm.h | 308 +++++++++--------- include/linux/mm_inline.h | 18 +- include/linux/mm_types.h | 14 +- include/linux/mmdebug.h | 4 +- include/linux/mmu_notifier.h | 8 +- include/linux/net.h | 4 +- include/linux/pagemap.h | 2 +- include/linux/pagewalk.h | 10 +- include/linux/pci.h | 4 +- include/linux/perf_event.h | 4 +- include/linux/pgtable.h | 100 +++--- include/linux/pkeys.h | 2 +- include/linux/proc_fs.h | 2 +- include/linux/ring_buffer.h | 2 +- include/linux/rmap.h | 92 +++--- include/linux/secretmem.h | 4 +- include/linux/security.h | 4 +- include/linux/shmem_fs.h | 12 +- include/linux/swap.h | 2 +- include/linux/swapops.h | 4 +- include/linux/sysfs.h | 4 +- include/linux/time_namespace.h | 6 +- include/linux/uacce.h | 2 +- include/linux/uio_driver.h | 2 +- include/linux/uprobes.h | 10 +- include/linux/userfaultfd_k.h | 86 ++--- include/linux/vdso_datastore.h | 2 +- include/linux/vfio.h | 2 +- include/linux/vfio_pci_core.h | 4 +- include/linux/vmalloc.h | 6 +- include/media/dvb_vb2.h | 4 +- include/media/v4l2-dev.h | 2 +- include/media/v4l2-mem2mem.h | 6 +- include/media/videobuf2-core.h | 6 +- include/media/videobuf2-v4l2.h | 2 +- include/net/sock.h | 2 +- include/net/tcp.h | 2 +- include/rdma/ib_verbs.h | 6 +- include/rdma/rdma_vt.h | 2 +- include/sound/compress_driver.h | 2 +- include/sound/hwdep.h | 2 +- include/sound/info.h | 2 +- include/sound/memalloc.h | 4 +- include/sound/pcm.h | 8 +- include/sound/soc-component.h | 6 +- include/trace/events/mmap.h | 4 +- include/trace/events/sched.h | 2 +- include/uapi/linux/bpf.h | 2 +- include/xen/xen-ops.h | 24 +- io_uring/memmap.c | 6 +- io_uring/memmap.h | 2 +- ipc/shm.c | 22 +- kernel/acct.c | 2 +- kernel/bpf/arena.c | 10 +- kernel/bpf/arraymap.c | 2 +- kernel/bpf/ringbuf.c | 4 +- kernel/bpf/stackmap.c | 4 +- kernel/bpf/syscall.c | 6 +- kernel/bpf/task_iter.c | 16 +- kernel/bpf/verifier.c | 2 +- kernel/dma/coherent.c | 6 +- kernel/dma/direct.c | 2 +- kernel/dma/direct.h | 2 +- kernel/dma/dummy.c | 2 +- kernel/dma/mapping.c | 8 +- kernel/dma/ops_helpers.c | 2 +- kernel/events/core.c | 24 +- kernel/events/uprobes.c | 48 +-- kernel/fork.c | 26 +- kernel/kcov.c | 2 +- kernel/relay.c | 6 +- kernel/sched/fair.c | 4 +- kernel/signal.c | 2 +- kernel/sys.c | 2 +- kernel/time/namespace.c | 2 +- kernel/trace/ring_buffer.c | 6 +- kernel/trace/trace.c | 4 +- kernel/trace/trace_output.c | 2 +- lib/buildid.c | 6 +- lib/test_hmm.c | 6 +- lib/vdso/datastore.c | 6 +- mm/damon/ops-common.c | 4 +- mm/damon/ops-common.h | 4 +- mm/damon/paddr.c | 4 +- mm/damon/tests/vaddr-kunit.h | 16 +- mm/damon/vaddr.c | 4 +- mm/debug.c | 2 +- mm/debug_vm_pgtable.c | 2 +- mm/filemap.c | 12 +- mm/gup.c | 56 ++-- mm/hmm.c | 6 +- mm/huge_memory.c | 104 +++--- mm/hugetlb.c | 158 ++++----- mm/internal.h | 46 +-- mm/interval_tree.c | 16 +- mm/io-mapping.c | 2 +- mm/khugepaged.c | 34 +- mm/ksm.c | 48 +-- mm/madvise.c | 78 ++--- mm/memory-failure.c | 16 +- mm/memory.c | 244 +++++++------- mm/mempolicy.c | 42 +-- mm/migrate.c | 10 +- mm/migrate_device.c | 4 +- mm/mincore.c | 8 +- mm/mlock.c | 16 +- mm/mmap.c | 70 ++-- mm/mmu_gather.c | 4 +- mm/mprotect.c | 22 +- mm/mremap.c | 46 +-- mm/mseal.c | 14 +- mm/msync.c | 2 +- mm/nommu.c | 66 ++-- mm/oom_kill.c | 2 +- mm/page_idle.c | 2 +- mm/page_vma_mapped.c | 4 +- mm/pagewalk.c | 20 +- mm/pgtable-generic.c | 20 +- mm/rmap.c | 74 ++--- mm/secretmem.c | 4 +- mm/shmem.c | 34 +- mm/swap.c | 2 +- mm/swap.h | 6 +- mm/swap_state.c | 6 +- mm/swapfile.c | 14 +- mm/userfaultfd.c | 116 +++---- mm/util.c | 4 +- mm/vma.c | 196 +++++------ mm/vma.h | 126 +++---- mm/vmalloc.c | 4 +- mm/vmscan.c | 12 +- net/core/sock.c | 2 +- net/ipv4/tcp.c | 12 +- net/packet/af_packet.c | 6 +- net/socket.c | 4 +- net/xdp/xsk.c | 2 +- samples/ftrace/ftrace-direct-too.c | 4 +- samples/vfio-mdev/mbochs.c | 8 +- samples/vfio-mdev/mdpy.c | 2 +- scripts/coccinelle/api/vma_pages.cocci | 6 +- security/apparmor/lsm.c | 2 +- security/integrity/ima/ima_main.c | 4 +- security/ipe/hooks.c | 2 +- security/ipe/hooks.h | 2 +- security/security.c | 2 +- security/selinux/hooks.c | 2 +- security/selinux/selinuxfs.c | 4 +- sound/core/compress_offload.c | 2 +- sound/core/hwdep.c | 2 +- sound/core/info.c | 2 +- sound/core/init.c | 2 +- sound/core/memalloc.c | 22 +- sound/core/oss/pcm_oss.c | 2 +- sound/core/pcm_native.c | 20 +- sound/soc/fsl/fsl_asrc_m2m.c | 2 +- sound/soc/intel/avs/pcm.c | 2 +- sound/soc/loongson/loongson_dma.c | 2 +- sound/soc/pxa/mmp-sspa.c | 2 +- sound/soc/qcom/lpass-platform.c | 4 +- sound/soc/qcom/qdsp6/q6apm-dai.c | 2 +- sound/soc/qcom/qdsp6/q6asm-dai.c | 2 +- sound/soc/samsung/idma.c | 2 +- sound/soc/soc-component.c | 2 +- sound/soc/uniphier/aio-dma.c | 2 +- sound/usb/usx2y/us122l.c | 2 +- sound/usb/usx2y/usX2Yhwdep.c | 2 +- sound/usb/usx2y/usx2yhwdeppcm.c | 6 +- tools/include/linux/btf_ids.h | 2 +- tools/include/uapi/linux/bpf.h | 2 +- .../testing/selftests/bpf/bpf_experimental.h | 2 +- .../selftests/bpf/progs/bpf_iter_task_vmas.c | 2 +- .../selftests/bpf/progs/bpf_iter_vma_offset.c | 2 +- tools/testing/selftests/bpf/progs/find_vma.c | 2 +- .../selftests/bpf/progs/find_vma_fail1.c | 2 +- .../selftests/bpf/progs/find_vma_fail2.c | 2 +- .../selftests/bpf/progs/iters_css_task.c | 2 +- .../selftests/bpf/progs/iters_task_vma.c | 2 +- .../selftests/bpf/progs/iters_testmod.c | 4 +- tools/testing/selftests/bpf/progs/lsm.c | 2 +- .../selftests/bpf/progs/test_bpf_cookie.c | 2 +- .../bpf/progs/verifier_iterating_callbacks.c | 4 +- .../selftests/bpf/test_kmods/bpf_testmod.c | 2 +- .../bpf/test_kmods/bpf_testmod_kfunc.h | 2 +- tools/testing/vma/vma.c | 70 ++-- tools/testing/vma/vma_internal.h | 156 ++++----- virt/kvm/kvm_main.c | 12 +- 861 files changed, 3494 insertions(+), 3494 deletions(-) diff --git a/Documentation/bpf/prog_lsm.rst b/Documentation/bpf/prog_lsm.rst index ad2be02f30c2..f2b254b5a6ce 100644 --- a/Documentation/bpf/prog_lsm.rst +++ b/Documentation/bpf/prog_lsm.rst @@ -15,7 +15,7 @@ Structure The example shows an eBPF program that can be attached to the ``file_mprotect`` LSM hook: -.. c:function:: int file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, unsigned long prot); +.. c:function:: int file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot); Other LSM hooks which can be instrumented can be found in ``security/security.c``. @@ -31,7 +31,7 @@ the fields that need to be accessed. unsigned long start_brk, brk, start_stack; } __attribute__((preserve_access_index)); - struct vm_area_struct { + struct mm_area { unsigned long start_brk, brk, start_stack; unsigned long vm_start, vm_end; struct mm_struct *vm_mm; @@ -65,7 +65,7 @@ example: .. code-block:: c SEC("lsm/file_mprotect") - int BPF_PROG(mprotect_audit, struct vm_area_struct *vma, + int BPF_PROG(mprotect_audit, struct mm_area *vma, unsigned long reqprot, unsigned long prot, int ret) { /* ret is the return value from the previous BPF program diff --git a/Documentation/core-api/cachetlb.rst b/Documentation/core-api/cachetlb.rst index 889fc84ccd1b..597eb9760dea 100644 --- a/Documentation/core-api/cachetlb.rst +++ b/Documentation/core-api/cachetlb.rst @@ -50,7 +50,7 @@ changes occur: page table operations such as what happens during fork, and exec. -3) ``void flush_tlb_range(struct vm_area_struct *vma, +3) ``void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end)`` Here we are flushing a specific range of (user) virtual @@ -70,7 +70,7 @@ changes occur: call flush_tlb_page (see below) for each entry which may be modified. -4) ``void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)`` +4) ``void flush_tlb_page(struct mm_area *vma, unsigned long addr)`` This time we need to remove the PAGE_SIZE sized translation from the TLB. The 'vma' is the backing structure used by @@ -89,7 +89,7 @@ changes occur: This is used primarily during fault processing. 5) ``void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, pte_t *ptep, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr)`` At the end of every page fault, this routine is invoked to tell @@ -159,7 +159,7 @@ Here are the routines, one by one: This option is separate from flush_cache_mm to allow some optimizations for VIPT caches. -3) ``void flush_cache_range(struct vm_area_struct *vma, +3) ``void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end)`` Here we are flushing a specific range of (user) virtual @@ -176,7 +176,7 @@ Here are the routines, one by one: call flush_cache_page (see below) for each entry which may be modified. -4) ``void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn)`` +4) ``void flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn)`` This time we need to remove a PAGE_SIZE sized range from the cache. The 'vma' is the backing structure used by @@ -331,9 +331,9 @@ maps this page at its virtual address. dirty. Again, see sparc64 for examples of how to deal with this. - ``void copy_to_user_page(struct vm_area_struct *vma, struct page *page, + ``void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len)`` - ``void copy_from_user_page(struct vm_area_struct *vma, struct page *page, + ``void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len)`` When the kernel needs to copy arbitrary data in and out @@ -346,7 +346,7 @@ maps this page at its virtual address. likely that you will need to flush the instruction cache for copy_to_user_page(). - ``void flush_anon_page(struct vm_area_struct *vma, struct page *page, + ``void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr)`` When the kernel needs to access the contents of an anonymous @@ -365,7 +365,7 @@ maps this page at its virtual address. If the icache does not snoop stores then this routine will need to flush it. - ``void flush_icache_page(struct vm_area_struct *vma, struct page *page)`` + ``void flush_icache_page(struct mm_area *vma, struct page *page)`` All the functionality of flush_icache_page can be implemented in flush_dcache_folio and update_mmu_cache_range. In the future, the hope diff --git a/Documentation/core-api/dma-api.rst b/Documentation/core-api/dma-api.rst index 8e3cce3d0a23..ca0b3e0ef596 100644 --- a/Documentation/core-api/dma-api.rst +++ b/Documentation/core-api/dma-api.rst @@ -581,7 +581,7 @@ dma_alloc_pages(). page must be the pointer returned by dma_alloc_pages(). :: int - dma_mmap_pages(struct device *dev, struct vm_area_struct *vma, + dma_mmap_pages(struct device *dev, struct mm_area *vma, size_t size, struct page *page) Map an allocation returned from dma_alloc_pages() into a user address space. @@ -679,7 +679,7 @@ returned by dma_vmap_noncontiguous(). :: int - dma_mmap_noncontiguous(struct device *dev, struct vm_area_struct *vma, + dma_mmap_noncontiguous(struct device *dev, struct mm_area *vma, size_t size, struct sg_table *sgt) Map an allocation returned from dma_alloc_noncontiguous() into a user address diff --git a/Documentation/driver-api/uio-howto.rst b/Documentation/driver-api/uio-howto.rst index 907ffa3b38f5..9e68c745b295 100644 --- a/Documentation/driver-api/uio-howto.rst +++ b/Documentation/driver-api/uio-howto.rst @@ -246,7 +246,7 @@ the members are required, others are optional. hardware interrupt number. The flags given here will be used in the call to :c:func:`request_irq()`. -- ``int (*mmap)(struct uio_info *info, struct vm_area_struct *vma)``: +- ``int (*mmap)(struct uio_info *info, struct mm_area *vma)``: Optional. If you need a special :c:func:`mmap()` function, you can set it here. If this pointer is not NULL, your :c:func:`mmap()` will be called instead of the built-in one. diff --git a/Documentation/driver-api/vfio.rst b/Documentation/driver-api/vfio.rst index 2a21a42c9386..056e27a40f3d 100644 --- a/Documentation/driver-api/vfio.rst +++ b/Documentation/driver-api/vfio.rst @@ -419,7 +419,7 @@ similar to a file operations structure:: size_t count, loff_t *size); long (*ioctl)(struct vfio_device *vdev, unsigned int cmd, unsigned long arg); - int (*mmap)(struct vfio_device *vdev, struct vm_area_struct *vma); + int (*mmap)(struct vfio_device *vdev, struct mm_area *vma); void (*request)(struct vfio_device *vdev, unsigned int count); int (*match)(struct vfio_device *vdev, char *buf); void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length); diff --git a/Documentation/filesystems/locking.rst b/Documentation/filesystems/locking.rst index 0ec0bb6eb0fb..9c83c1262882 100644 --- a/Documentation/filesystems/locking.rst +++ b/Documentation/filesystems/locking.rst @@ -530,7 +530,7 @@ prototypes:: __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); - int (*mmap) (struct file *, struct vm_area_struct *); + int (*mmap) (struct file *, struct mm_area *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *); int (*release) (struct inode *, struct file *); @@ -643,14 +643,14 @@ vm_operations_struct prototypes:: - void (*open)(struct vm_area_struct *); - void (*close)(struct vm_area_struct *); + void (*open)(struct mm_area *); + void (*close)(struct mm_area *); vm_fault_t (*fault)(struct vm_fault *); vm_fault_t (*huge_fault)(struct vm_fault *, unsigned int order); vm_fault_t (*map_pages)(struct vm_fault *, pgoff_t start, pgoff_t end); - vm_fault_t (*page_mkwrite)(struct vm_area_struct *, struct vm_fault *); - vm_fault_t (*pfn_mkwrite)(struct vm_area_struct *, struct vm_fault *); - int (*access)(struct vm_area_struct *, unsigned long, void*, int, int); + vm_fault_t (*page_mkwrite)(struct mm_area *, struct vm_fault *); + vm_fault_t (*pfn_mkwrite)(struct mm_area *, struct vm_fault *); + int (*access)(struct mm_area *, unsigned long, void*, int, int); locking rules: diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesystems/proc.rst index 2a17865dfe39..2935efeceaa9 100644 --- a/Documentation/filesystems/proc.rst +++ b/Documentation/filesystems/proc.rst @@ -2175,7 +2175,7 @@ the process is maintaining. Example output:: | lr-------- 1 root root 64 Jan 27 11:24 400000-41a000 -> /usr/bin/ls The name of a link represents the virtual memory bounds of a mapping, i.e. -vm_area_struct::vm_start-vm_area_struct::vm_end. +mm_area::vm_start-mm_area::vm_end. The main purpose of the map_files is to retrieve a set of memory mapped files in a fast way instead of parsing /proc//maps or diff --git a/Documentation/filesystems/vfs.rst b/Documentation/filesystems/vfs.rst index ae79c30b6c0c..866485f271b0 100644 --- a/Documentation/filesystems/vfs.rst +++ b/Documentation/filesystems/vfs.rst @@ -1102,7 +1102,7 @@ This describes how the VFS can manipulate an open file. As of kernel __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); - int (*mmap) (struct file *, struct vm_area_struct *); + int (*mmap) (struct file *, struct mm_area *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); int (*release) (struct inode *, struct file *); diff --git a/Documentation/gpu/drm-mm.rst b/Documentation/gpu/drm-mm.rst index d55751cad67c..aac2545c4a54 100644 --- a/Documentation/gpu/drm-mm.rst +++ b/Documentation/gpu/drm-mm.rst @@ -280,8 +280,8 @@ made up of several fields, the more interesting ones being: .. code-block:: c struct vm_operations_struct { - void (*open)(struct vm_area_struct * area); - void (*close)(struct vm_area_struct * area); + void (*open)(struct mm_area * area); + void (*close)(struct mm_area * area); vm_fault_t (*fault)(struct vm_fault *vmf); }; diff --git a/Documentation/mm/hmm.rst b/Documentation/mm/hmm.rst index 7d61b7a8b65b..63fbba00dc3d 100644 --- a/Documentation/mm/hmm.rst +++ b/Documentation/mm/hmm.rst @@ -298,7 +298,7 @@ between device driver specific code and shared common code: 1. ``mmap_read_lock()`` - The device driver has to pass a ``struct vm_area_struct`` to + The device driver has to pass a ``struct mm_area`` to migrate_vma_setup() so the mmap_read_lock() or mmap_write_lock() needs to be held for the duration of the migration. diff --git a/Documentation/mm/hugetlbfs_reserv.rst b/Documentation/mm/hugetlbfs_reserv.rst index 4914fbf07966..afb86d44c57e 100644 --- a/Documentation/mm/hugetlbfs_reserv.rst +++ b/Documentation/mm/hugetlbfs_reserv.rst @@ -104,7 +104,7 @@ These operations result in a call to the routine hugetlb_reserve_pages():: int hugetlb_reserve_pages(struct inode *inode, long from, long to, - struct vm_area_struct *vma, + struct mm_area *vma, vm_flags_t vm_flags) The first thing hugetlb_reserve_pages() does is check if the NORESERVE @@ -181,7 +181,7 @@ Reservations are consumed when huge pages associated with the reservations are allocated and instantiated in the corresponding mapping. The allocation is performed within the routine alloc_hugetlb_folio():: - struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, + struct folio *alloc_hugetlb_folio(struct mm_area *vma, unsigned long addr, int avoid_reserve) alloc_hugetlb_folio is passed a VMA pointer and a virtual address, so it can @@ -464,14 +464,14 @@ account the 'opposite' meaning of reservation map entries for private and shared mappings and hide this detail from the caller:: long vma_needs_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) This routine calls region_chg() for the specified page. If no reservation exists, 1 is returned. If a reservation exists, 0 is returned:: long vma_commit_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) This calls region_add() for the specified page. As in the case of region_chg @@ -483,7 +483,7 @@ vma_needs_reservation. An unexpected difference indicates the reservation map was modified between calls:: void vma_end_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) This calls region_abort() for the specified page. As in the case of region_chg @@ -492,7 +492,7 @@ vma_needs_reservation. It will abort/end the in progress reservation add operation:: long vma_add_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) This is a special wrapper routine to help facilitate reservation cleanup diff --git a/Documentation/mm/process_addrs.rst b/Documentation/mm/process_addrs.rst index e6756e78b476..674c30658f90 100644 --- a/Documentation/mm/process_addrs.rst +++ b/Documentation/mm/process_addrs.rst @@ -9,10 +9,10 @@ Process Addresses Userland memory ranges are tracked by the kernel via Virtual Memory Areas or -'VMA's of type :c:struct:`!struct vm_area_struct`. +'VMA's of type :c:struct:`!struct mm_area`. Each VMA describes a virtually contiguous memory range with identical -attributes, each described by a :c:struct:`!struct vm_area_struct` +attributes, each described by a :c:struct:`!struct mm_area` object. Userland access outside of VMAs is invalid except in the case where an adjacent stack VMA could be extended to contain the accessed address. @@ -142,7 +142,7 @@ obtain either a read or a write lock for each of these. VMA fields ^^^^^^^^^^ -We can subdivide :c:struct:`!struct vm_area_struct` fields by their purpose, which makes it +We can subdivide :c:struct:`!struct mm_area` fields by their purpose, which makes it easier to explore their locking characteristics: .. note:: We exclude VMA lock-specific fields here to avoid confusion, as these diff --git a/Documentation/translations/zh_CN/core-api/cachetlb.rst b/Documentation/translations/zh_CN/core-api/cachetlb.rst index 64295c61d1c1..96eefda0262e 100644 --- a/Documentation/translations/zh_CN/core-api/cachetlb.rst +++ b/Documentation/translations/zh_CN/core-api/cachetlb.rst @@ -51,7 +51,7 @@ cpu上对这个地址空间进行刷新。 这个接口被用来处理整个地址空间的页表操作,比如在fork和exec过程 中发生的事情。 -3) ``void flush_tlb_range(struct vm_area_struct *vma, +3) ``void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end)`` 这里我们要从TLB中刷新一个特定范围的(用户)虚拟地址转换。在运行后, @@ -65,7 +65,7 @@ cpu上对这个地址空间进行刷新。 个页面大小的转换,而不是让内核为每个可能被修改的页表项调用 flush_tlb_page(见下文)。 -4) ``void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)`` +4) ``void flush_tlb_page(struct mm_area *vma, unsigned long addr)`` 这一次我们需要从TLB中删除PAGE_SIZE大小的转换。‘vma’是Linux用来跟 踪进程的mmap区域的支持结构体,地址空间可以通过vma->vm_mm获得。另 @@ -78,7 +78,7 @@ cpu上对这个地址空间进行刷新。 这主要是在故障处理时使用。 -5) ``void update_mmu_cache(struct vm_area_struct *vma, +5) ``void update_mmu_cache(struct mm_area *vma, unsigned long address, pte_t *ptep)`` 在每个缺页异常结束时,这个程序被调用,以告诉体系结构特定的代码,在 @@ -134,7 +134,7 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。 这个选项与flush_cache_mm分开,以允许对VIPT缓存进行一些优化。 -3) ``void flush_cache_range(struct vm_area_struct *vma, +3) ``void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end)`` 在这里,我们要从缓存中刷新一个特定范围的(用户)虚拟地址。运行 @@ -147,7 +147,7 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。 除多个页面大小的区域, 而不是让内核为每个可能被修改的页表项调 用 flush_cache_page (见下文)。 -4) ``void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, unsigned long pfn)`` +4) ``void flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn)`` 这一次我们需要从缓存中删除一个PAGE_SIZE大小的区域。“vma”是 Linux用来跟踪进程的mmap区域的支持结构体,地址空间可以通过 @@ -284,9 +284,9 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。 该函数的调用情形与flush_dcache_page()相同。它允许架构针对刷新整个 folio页面进行优化,而不是一次刷新一页。 - ``void copy_to_user_page(struct vm_area_struct *vma, struct page *page, + ``void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len)`` - ``void copy_from_user_page(struct vm_area_struct *vma, struct page *page, + ``void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len)`` 当内核需要复制任意的数据进出任意的用户页时(比如ptrace()),它将使 @@ -296,7 +296,7 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。 处理器的指令缓存没有对cpu存储进行窥探,那么你很可能需要为 copy_to_user_page()刷新指令缓存。 - ``void flush_anon_page(struct vm_area_struct *vma, struct page *page, + ``void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr)`` 当内核需要访问一个匿名页的内容时,它会调用这个函数(目前只有 @@ -310,7 +310,7 @@ HyperSparc cpu就是这样一个具有这种属性的cpu。 如果icache不对存储进行窥探,那么这个程序将需要对其进行刷新。 - ``void flush_icache_page(struct vm_area_struct *vma, struct page *page)`` + ``void flush_icache_page(struct mm_area *vma, struct page *page)`` flush_icache_page的所有功能都可以在flush_dcache_page和update_mmu_cache 中实现。在未来,我们希望能够完全删除这个接口。 diff --git a/Documentation/translations/zh_CN/mm/hmm.rst b/Documentation/translations/zh_CN/mm/hmm.rst index 22c210f4e94f..ad4e2847b119 100644 --- a/Documentation/translations/zh_CN/mm/hmm.rst +++ b/Documentation/translations/zh_CN/mm/hmm.rst @@ -247,7 +247,7 @@ devm_memunmap_pages() 和 devm_release_mem_region() 当资源可以绑定到 ``s 1. ``mmap_read_lock()`` - 设备驱动程序必须将 ``struct vm_area_struct`` 传递给migrate_vma_setup(), + 设备驱动程序必须将 ``struct mm_area`` 传递给migrate_vma_setup(), 因此需要在迁移期间保留 mmap_read_lock() 或 mmap_write_lock()。 2. ``migrate_vma_setup(struct migrate_vma *args)`` diff --git a/Documentation/translations/zh_CN/mm/hugetlbfs_reserv.rst b/Documentation/translations/zh_CN/mm/hugetlbfs_reserv.rst index 20947f8bd065..b85b68f3afd4 100644 --- a/Documentation/translations/zh_CN/mm/hugetlbfs_reserv.rst +++ b/Documentation/translations/zh_CN/mm/hugetlbfs_reserv.rst @@ -95,7 +95,7 @@ Page Flags int hugetlb_reserve_pages(struct inode *inode, long from, long to, - struct vm_area_struct *vma, + struct mm_area *vma, vm_flags_t vm_flags) hugetlb_reserve_pages()做的第一件事是检查在调用shmget()或mmap()时是否指定了NORESERVE @@ -146,7 +146,7 @@ HPAGE_RESV_OWNER标志被设置,以表明该VMA拥有预留。 当与预留相关的巨页在相应的映射中被分配和实例化时,预留就被消耗了。该分配是在函数alloc_hugetlb_folio() 中进行的:: - struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, + struct folio *alloc_hugetlb_folio(struct mm_area *vma, unsigned long addr, int avoid_reserve) alloc_hugetlb_folio被传递给一个VMA指针和一个虚拟地址,因此它可以查阅预留映射以确定是否存在预留。 @@ -342,13 +342,13 @@ region_count()在解除私有巨页映射时被调用。在私有映射中,预 它们确实考虑到了私有和共享映射的预留映射条目的 “相反” 含义,并向调用者隐藏了这个细节:: long vma_needs_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) 该函数为指定的页面调用 region_chg()。如果不存在预留,则返回1。如果存在预留,则返回0:: long vma_commit_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) 这将调用 region_add(),用于指定的页面。与region_chg和region_add的情况一样,该函数应在 @@ -357,14 +357,14 @@ region_count()在解除私有巨页映射时被调用。在私有映射中,预 现意外的差异,说明在两次调用之间修改了预留映射:: void vma_end_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) 这将调用指定页面的 region_abort()。与region_chg和region_abort的情况一样,该函数应在 先前调用的vma_needs_reservation后被调用。它将中止/结束正在进行的预留添加操作:: long vma_add_reservation(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) 这是一个特殊的包装函数,有助于在错误路径上清理预留。它只从repare_reserve_on_error()函数 diff --git a/Documentation/userspace-api/media/conf_nitpick.py b/Documentation/userspace-api/media/conf_nitpick.py index 0a8e236d07ab..3704eb6e4e3b 100644 --- a/Documentation/userspace-api/media/conf_nitpick.py +++ b/Documentation/userspace-api/media/conf_nitpick.py @@ -103,7 +103,7 @@ nitpick_ignore = [ ("c:type", "usb_interface"), ("c:type", "v4l2_std_id"), ("c:type", "video_system_t"), - ("c:type", "vm_area_struct"), + ("c:type", "mm_area"), # Opaque structures diff --git a/arch/alpha/include/asm/cacheflush.h b/arch/alpha/include/asm/cacheflush.h index 36a7e924c3b9..6a9f035ab3c9 100644 --- a/arch/alpha/include/asm/cacheflush.h +++ b/arch/alpha/include/asm/cacheflush.h @@ -35,7 +35,7 @@ extern void smp_imb(void); extern void __load_new_mm_context(struct mm_struct *); static inline void -flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len) { if (vma->vm_flags & VM_EXEC) { @@ -48,7 +48,7 @@ flush_icache_user_page(struct vm_area_struct *vma, struct page *page, } #define flush_icache_user_page flush_icache_user_page #else /* CONFIG_SMP */ -extern void flush_icache_user_page(struct vm_area_struct *vma, +extern void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len); #define flush_icache_user_page flush_icache_user_page #endif /* CONFIG_SMP */ @@ -57,7 +57,7 @@ extern void flush_icache_user_page(struct vm_area_struct *vma, * Both implementations of flush_icache_user_page flush the entire * address space, so one call, no matter how many pages. */ -static inline void flush_icache_pages(struct vm_area_struct *vma, +static inline void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr) { flush_icache_user_page(vma, page, 0, 0); diff --git a/arch/alpha/include/asm/machvec.h b/arch/alpha/include/asm/machvec.h index 490fc880bb3f..964ae4fe2dd3 100644 --- a/arch/alpha/include/asm/machvec.h +++ b/arch/alpha/include/asm/machvec.h @@ -16,7 +16,7 @@ struct task_struct; struct mm_struct; -struct vm_area_struct; +struct mm_area; struct linux_hose_info; struct pci_dev; struct pci_ops; diff --git a/arch/alpha/include/asm/pci.h b/arch/alpha/include/asm/pci.h index 6c04fcbdc8ed..d402ba6d7a00 100644 --- a/arch/alpha/include/asm/pci.h +++ b/arch/alpha/include/asm/pci.h @@ -82,7 +82,7 @@ extern int pci_legacy_read(struct pci_bus *bus, loff_t port, u32 *val, extern int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t count); extern int pci_mmap_legacy_page_range(struct pci_bus *bus, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_state); extern void pci_adjust_legacy_attr(struct pci_bus *bus, enum pci_mmap_state mmap_type); diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h index 02e8817a8921..fdb7f661c52a 100644 --- a/arch/alpha/include/asm/pgtable.h +++ b/arch/alpha/include/asm/pgtable.h @@ -19,7 +19,7 @@ #include struct mm_struct; -struct vm_area_struct; +struct mm_area; /* Certain architectures need to do special things when PTEs * within a page table are directly modified. Thus, the following @@ -298,13 +298,13 @@ extern pgd_t swapper_pg_dir[1024]; * The Alpha doesn't have any external MMU info: the kernel page * tables contain all the necessary information. */ -extern inline void update_mmu_cache(struct vm_area_struct * vma, +extern inline void update_mmu_cache(struct mm_area * vma, unsigned long address, pte_t *ptep) { } static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { } diff --git a/arch/alpha/include/asm/tlbflush.h b/arch/alpha/include/asm/tlbflush.h index ba4b359d6c39..76232c200987 100644 --- a/arch/alpha/include/asm/tlbflush.h +++ b/arch/alpha/include/asm/tlbflush.h @@ -26,7 +26,7 @@ ev5_flush_tlb_current(struct mm_struct *mm) __EXTERN_INLINE void ev5_flush_tlb_current_page(struct mm_struct * mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) { if (vma->vm_flags & VM_EXEC) @@ -81,7 +81,7 @@ flush_tlb_mm(struct mm_struct *mm) /* Page-granular tlb flush. */ static inline void -flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +flush_tlb_page(struct mm_area *vma, unsigned long addr) { struct mm_struct *mm = vma->vm_mm; @@ -94,7 +94,7 @@ flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) /* Flush a specified range of user mapping. On the Alpha we flush the whole user tlb. */ static inline void -flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { flush_tlb_mm(vma->vm_mm); @@ -104,8 +104,8 @@ flush_tlb_range(struct vm_area_struct *vma, unsigned long start, extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *); -extern void flush_tlb_page(struct vm_area_struct *, unsigned long); -extern void flush_tlb_range(struct vm_area_struct *, unsigned long, +extern void flush_tlb_page(struct mm_area *, unsigned long); +extern void flush_tlb_range(struct mm_area *, unsigned long, unsigned long); #endif /* CONFIG_SMP */ diff --git a/arch/alpha/kernel/pci-sysfs.c b/arch/alpha/kernel/pci-sysfs.c index 3048758304b5..ec66bae1cfae 100644 --- a/arch/alpha/kernel/pci-sysfs.c +++ b/arch/alpha/kernel/pci-sysfs.c @@ -16,7 +16,7 @@ #include static int hose_mmap_page_range(struct pci_controller *hose, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_type, int sparse) { unsigned long base; @@ -34,7 +34,7 @@ static int hose_mmap_page_range(struct pci_controller *hose, } static int __pci_mmap_fits(struct pci_dev *pdev, int num, - struct vm_area_struct *vma, int sparse) + struct mm_area *vma, int sparse) { unsigned long nr, start, size; int shift = sparse ? 5 : 0; @@ -56,7 +56,7 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, * pci_mmap_resource - map a PCI resource into user memory space * @kobj: kobject for mapping * @attr: struct bin_attribute for the file being mapped - * @vma: struct vm_area_struct passed into the mmap + * @vma: struct mm_area passed into the mmap * @sparse: address space type * * Use the bus mapping routines to map a PCI resource into userspace. @@ -65,7 +65,7 @@ static int __pci_mmap_fits(struct pci_dev *pdev, int num, */ static int pci_mmap_resource(struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma, int sparse) + struct mm_area *vma, int sparse) { struct pci_dev *pdev = to_pci_dev(kobj_to_dev(kobj)); struct resource *res = attr->private; @@ -94,14 +94,14 @@ static int pci_mmap_resource(struct kobject *kobj, static int pci_mmap_resource_sparse(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { return pci_mmap_resource(kobj, attr, vma, 1); } static int pci_mmap_resource_dense(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { return pci_mmap_resource(kobj, attr, vma, 0); } @@ -254,7 +254,7 @@ int pci_create_resource_files(struct pci_dev *pdev) /* Legacy I/O bus mapping stuff. */ static int __legacy_mmap_fits(struct pci_controller *hose, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long res_size, int sparse) { unsigned long nr, start, size; @@ -283,7 +283,7 @@ static inline int has_sparse(struct pci_controller *hose, return base != 0; } -int pci_mmap_legacy_page_range(struct pci_bus *bus, struct vm_area_struct *vma, +int pci_mmap_legacy_page_range(struct pci_bus *bus, struct mm_area *vma, enum pci_mmap_state mmap_type) { struct pci_controller *hose = bus->sysdata; diff --git a/arch/alpha/kernel/smp.c b/arch/alpha/kernel/smp.c index ed06367ece57..1f71a076196b 100644 --- a/arch/alpha/kernel/smp.c +++ b/arch/alpha/kernel/smp.c @@ -658,7 +658,7 @@ flush_tlb_mm(struct mm_struct *mm) EXPORT_SYMBOL(flush_tlb_mm); struct flush_tlb_page_struct { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; unsigned long addr; }; @@ -676,7 +676,7 @@ ipi_flush_tlb_page(void *x) } void -flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +flush_tlb_page(struct mm_area *vma, unsigned long addr) { struct flush_tlb_page_struct data; struct mm_struct *mm = vma->vm_mm; @@ -709,7 +709,7 @@ flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) EXPORT_SYMBOL(flush_tlb_page); void -flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { /* On the Alpha we always flush the whole user tlb. */ flush_tlb_mm(vma->vm_mm); @@ -727,7 +727,7 @@ ipi_flush_icache_page(void *x) } void -flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len) { struct mm_struct *mm = vma->vm_mm; diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c index a9816bbc9f34..a65198563de8 100644 --- a/arch/alpha/mm/fault.c +++ b/arch/alpha/mm/fault.c @@ -85,7 +85,7 @@ asmlinkage void do_page_fault(unsigned long address, unsigned long mmcsr, long cause, struct pt_regs *regs) { - struct vm_area_struct * vma; + struct mm_area * vma; struct mm_struct *mm = current->mm; const struct exception_table_entry *fixup; int si_code = SEGV_MAPERR; diff --git a/arch/arc/include/asm/hugepage.h b/arch/arc/include/asm/hugepage.h index 8a2441670a8f..3f3e305802f6 100644 --- a/arch/arc/include/asm/hugepage.h +++ b/arch/arc/include/asm/hugepage.h @@ -61,11 +61,11 @@ static inline void set_pmd_at(struct mm_struct *mm, unsigned long addr, *pmdp = pmd; } -extern void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, +extern void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd); #define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE -extern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); /* We don't have hardware dirty/accessed bits, generic_pmdp_establish is fine.*/ diff --git a/arch/arc/include/asm/page.h b/arch/arc/include/asm/page.h index def0dfb95b43..bb03a8165e36 100644 --- a/arch/arc/include/asm/page.h +++ b/arch/arc/include/asm/page.h @@ -25,13 +25,13 @@ #define copy_user_page(to, from, vaddr, pg) copy_page(to, from) #define copy_page(to, from) memcpy((to), (from), PAGE_SIZE) -struct vm_area_struct; +struct mm_area; struct page; #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_user_highpage(struct page *to, struct page *from, - unsigned long u_vaddr, struct vm_area_struct *vma); + unsigned long u_vaddr, struct mm_area *vma); void clear_user_page(void *to, unsigned long u_vaddr, struct page *page); typedef struct { diff --git a/arch/arc/include/asm/pgtable-bits-arcv2.h b/arch/arc/include/asm/pgtable-bits-arcv2.h index 8ebec1b21d24..80c4759894fc 100644 --- a/arch/arc/include/asm/pgtable-bits-arcv2.h +++ b/arch/arc/include/asm/pgtable-bits-arcv2.h @@ -101,7 +101,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) } struct vm_fault; -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr); #define update_mmu_cache(vma, addr, ptep) \ diff --git a/arch/arc/include/asm/tlbflush.h b/arch/arc/include/asm/tlbflush.h index 992a2837a53f..e442c338f36a 100644 --- a/arch/arc/include/asm/tlbflush.h +++ b/arch/arc/include/asm/tlbflush.h @@ -10,12 +10,12 @@ void local_flush_tlb_all(void); void local_flush_tlb_mm(struct mm_struct *mm); -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +void local_flush_tlb_page(struct mm_area *vma, unsigned long page); void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); -void local_flush_tlb_range(struct vm_area_struct *vma, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #ifdef CONFIG_TRANSPARENT_HUGEPAGE -void local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #endif @@ -29,14 +29,14 @@ void local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, #define flush_pmd_tlb_range(vma, s, e) local_flush_pmd_tlb_range(vma, s, e) #endif #else -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void flush_tlb_page(struct mm_area *vma, unsigned long page); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); #ifdef CONFIG_TRANSPARENT_HUGEPAGE -extern void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #endif #endif /* CONFIG_SMP */ #endif diff --git a/arch/arc/kernel/arc_hostlink.c b/arch/arc/kernel/arc_hostlink.c index 08c5196efe0a..ca695259edde 100644 --- a/arch/arc/kernel/arc_hostlink.c +++ b/arch/arc/kernel/arc_hostlink.c @@ -15,7 +15,7 @@ static unsigned char __HOSTLINK__[4 * PAGE_SIZE] __aligned(PAGE_SIZE); -static int arc_hl_mmap(struct file *fp, struct vm_area_struct *vma) +static int arc_hl_mmap(struct file *fp, struct mm_area *vma) { vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); diff --git a/arch/arc/kernel/troubleshoot.c b/arch/arc/kernel/troubleshoot.c index c380d8c30704..0e54ebd71f6c 100644 --- a/arch/arc/kernel/troubleshoot.c +++ b/arch/arc/kernel/troubleshoot.c @@ -76,7 +76,7 @@ static void print_task_path_n_nm(struct task_struct *tsk) static void show_faulting_vma(unsigned long address) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *active_mm = current->active_mm; /* can't use print_vma_addr() yet as it doesn't check for diff --git a/arch/arc/mm/cache.c b/arch/arc/mm/cache.c index 9106ceac323c..29f282d3b006 100644 --- a/arch/arc/mm/cache.c +++ b/arch/arc/mm/cache.c @@ -880,7 +880,7 @@ noinline void flush_cache_all(void) } void copy_user_highpage(struct page *to, struct page *from, - unsigned long u_vaddr, struct vm_area_struct *vma) + unsigned long u_vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); struct folio *dst = page_folio(to); diff --git a/arch/arc/mm/fault.c b/arch/arc/mm/fault.c index 95119a5e7761..a757e4c1aeca 100644 --- a/arch/arc/mm/fault.c +++ b/arch/arc/mm/fault.c @@ -72,7 +72,7 @@ noinline static int handle_kernel_vaddr_fault(unsigned long address) void do_page_fault(unsigned long address, struct pt_regs *regs) { - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; int sig, si_code = SEGV_MAPERR; diff --git a/arch/arc/mm/mmap.c b/arch/arc/mm/mmap.c index 2185afe8d59f..d43d7ab91d3d 100644 --- a/arch/arc/mm/mmap.c +++ b/arch/arc/mm/mmap.c @@ -27,7 +27,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_unmapped_area_info info = {}; /* diff --git a/arch/arc/mm/tlb.c b/arch/arc/mm/tlb.c index cae4a7aae0ed..94da2ce6b491 100644 --- a/arch/arc/mm/tlb.c +++ b/arch/arc/mm/tlb.c @@ -205,7 +205,7 @@ noinline void local_flush_tlb_mm(struct mm_struct *mm) * without doing any explicit Shootdown * -In case of kernel Flush, entry has to be shot down explicitly */ -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { const unsigned int cpu = smp_processor_id(); @@ -275,7 +275,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) * NOTE One TLB entry contains translation for single PAGE */ -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { const unsigned int cpu = smp_processor_id(); unsigned long flags; @@ -295,7 +295,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) #ifdef CONFIG_SMP struct tlb_args { - struct vm_area_struct *ta_vma; + struct mm_area *ta_vma; unsigned long ta_start; unsigned long ta_end; }; @@ -341,7 +341,7 @@ void flush_tlb_mm(struct mm_struct *mm) mm, 1); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +void flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { struct tlb_args ta = { .ta_vma = vma, @@ -351,7 +351,7 @@ void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) on_each_cpu_mask(mm_cpumask(vma->vm_mm), ipi_flush_tlb_page, &ta, 1); } -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct tlb_args ta = { @@ -364,7 +364,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, } #ifdef CONFIG_TRANSPARENT_HUGEPAGE -void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct tlb_args ta = { @@ -391,7 +391,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) /* * Routine to create a TLB entry */ -static void create_tlb(struct vm_area_struct *vma, unsigned long vaddr, pte_t *ptep) +static void create_tlb(struct mm_area *vma, unsigned long vaddr, pte_t *ptep) { unsigned long flags; unsigned int asid_or_sasid, rwx; @@ -469,7 +469,7 @@ static void create_tlb(struct vm_area_struct *vma, unsigned long vaddr, pte_t *p * Note that flush (when done) involves both WBACK - so physical page is * in sync as well as INV - so any non-congruent aliases don't remain */ -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long vaddr_unaligned, pte_t *ptep, unsigned int nr) { unsigned long vaddr = vaddr_unaligned & PAGE_MASK; @@ -527,14 +527,14 @@ void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, * Thus THP PMD accessors are implemented in terms of PTE (just like sparc) */ -void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, +void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd) { pte_t pte = __pte(pmd_val(*pmd)); update_mmu_cache_range(NULL, vma, addr, &pte, HPAGE_PMD_NR); } -void local_flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned int cpu; diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h index 8ed8b9a24efe..ad88660a95c4 100644 --- a/arch/arm/include/asm/cacheflush.h +++ b/arch/arm/include/asm/cacheflush.h @@ -165,7 +165,7 @@ extern void dmac_flush_range(const void *, const void *); * processes address space. Really, we want to allow our "user * space" model to handle this. */ -extern void copy_to_user_page(struct vm_area_struct *, struct page *, +extern void copy_to_user_page(struct mm_area *, struct page *, unsigned long, void *, const void *, unsigned long); #define copy_from_user_page(vma, page, vaddr, dst, src, len) \ do { \ @@ -222,7 +222,7 @@ static inline void vivt_flush_cache_mm(struct mm_struct *mm) } static inline void -vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +vivt_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -231,7 +231,7 @@ vivt_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned vma->vm_flags); } -static inline void vivt_flush_cache_pages(struct vm_area_struct *vma, +static inline void vivt_flush_cache_pages(struct mm_area *vma, unsigned long user_addr, unsigned long pfn, unsigned int nr) { struct mm_struct *mm = vma->vm_mm; @@ -252,8 +252,8 @@ static inline void vivt_flush_cache_pages(struct vm_area_struct *vma, vivt_flush_cache_pages(vma, addr, pfn, nr) #else void flush_cache_mm(struct mm_struct *mm); -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -void flush_cache_pages(struct vm_area_struct *vma, unsigned long user_addr, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); +void flush_cache_pages(struct mm_area *vma, unsigned long user_addr, unsigned long pfn, unsigned int nr); #endif @@ -309,10 +309,10 @@ static inline void invalidate_kernel_vmap_range(void *addr, int size) } #define ARCH_HAS_FLUSH_ANON_PAGE -static inline void flush_anon_page(struct vm_area_struct *vma, +static inline void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { - extern void __flush_anon_page(struct vm_area_struct *vma, + extern void __flush_anon_page(struct mm_area *vma, struct page *, unsigned long); if (PageAnon(page)) __flush_anon_page(vma, page, vmaddr); diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h index ef11b721230e..ba8262198322 100644 --- a/arch/arm/include/asm/page.h +++ b/arch/arm/include/asm/page.h @@ -102,34 +102,34 @@ #endif struct page; -struct vm_area_struct; +struct mm_area; struct cpu_user_fns { void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr); void (*cpu_copy_user_highpage)(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); }; void fa_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void fa_clear_user_highpage(struct page *page, unsigned long vaddr); void feroceon_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void feroceon_clear_user_highpage(struct page *page, unsigned long vaddr); void v4_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void v4_mc_clear_user_highpage(struct page *page, unsigned long vaddr); void v4wb_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void v4wb_clear_user_highpage(struct page *page, unsigned long vaddr); void v4wt_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void v4wt_clear_user_highpage(struct page *page, unsigned long vaddr); void xsc3_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void xsc3_mc_clear_user_highpage(struct page *page, unsigned long vaddr); void xscale_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); void xscale_mc_clear_user_highpage(struct page *page, unsigned long vaddr); #ifdef MULTI_USER @@ -145,7 +145,7 @@ extern struct cpu_user_fns cpu_user; extern void __cpu_clear_user_highpage(struct page *page, unsigned long vaddr); extern void __cpu_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #endif #define clear_user_highpage(page,vaddr) \ diff --git a/arch/arm/include/asm/tlbflush.h b/arch/arm/include/asm/tlbflush.h index 38c6e4a2a0b6..401ec430d0fd 100644 --- a/arch/arm/include/asm/tlbflush.h +++ b/arch/arm/include/asm/tlbflush.h @@ -205,7 +205,7 @@ #include struct cpu_tlb_fns { - void (*flush_user_range)(unsigned long, unsigned long, struct vm_area_struct *); + void (*flush_user_range)(unsigned long, unsigned long, struct mm_area *); void (*flush_kern_range)(unsigned long, unsigned long); unsigned long tlb_flags; }; @@ -223,7 +223,7 @@ struct cpu_tlb_fns { #define __cpu_flush_user_tlb_range __glue(_TLB,_flush_user_tlb_range) #define __cpu_flush_kern_tlb_range __glue(_TLB,_flush_kern_tlb_range) -extern void __cpu_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +extern void __cpu_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); extern void __cpu_flush_kern_tlb_range(unsigned long, unsigned long); #endif @@ -264,7 +264,7 @@ extern struct cpu_tlb_fns cpu_tlb; * flush_tlb_page(vma, uaddr) * * Invalidate the specified page in the specified address range. - * - vma - vm_area_struct describing address range + * - vma - mm_area describing address range * - vaddr - virtual address (may not be aligned) */ @@ -410,7 +410,7 @@ static inline void __flush_tlb_mm(struct mm_struct *mm) } static inline void -__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +__local_flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { const int zero = 0; const unsigned int __tlb_flag = __cpu_tlb_flags; @@ -432,7 +432,7 @@ __local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) } static inline void -local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +local_flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { const unsigned int __tlb_flag = __cpu_tlb_flags; @@ -449,7 +449,7 @@ local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) } static inline void -__flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +__flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { const unsigned int __tlb_flag = __cpu_tlb_flags; @@ -608,9 +608,9 @@ static inline void clean_pmd_entry(void *pmd) #else extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr); +extern void flush_tlb_page(struct mm_area *vma, unsigned long uaddr); extern void flush_tlb_kernel_page(unsigned long kaddr); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void flush_bp_all(void); #endif @@ -622,11 +622,11 @@ extern void flush_bp_all(void); * the set_ptes() function. */ #if __LINUX_ARM_ARCH__ < 6 -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr); #else static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, + struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { } @@ -644,17 +644,17 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #ifndef __ASSEMBLY__ static inline void local_flush_tlb_all(void) { } static inline void local_flush_tlb_mm(struct mm_struct *mm) { } -static inline void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) { } +static inline void local_flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { } static inline void local_flush_tlb_kernel_page(unsigned long kaddr) { } -static inline void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) { } +static inline void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { } static inline void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) { } static inline void local_flush_bp_all(void) { } extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr); +extern void flush_tlb_page(struct mm_area *vma, unsigned long uaddr); extern void flush_tlb_kernel_page(unsigned long kaddr); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void flush_bp_all(void); #endif /* __ASSEMBLY__ */ diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c index 123f4a8ef446..026d60dfd19e 100644 --- a/arch/arm/kernel/asm-offsets.c +++ b/arch/arm/kernel/asm-offsets.c @@ -106,8 +106,8 @@ int main(void) DEFINE(MM_CONTEXT_ID, offsetof(struct mm_struct, context.id.counter)); BLANK(); #endif - DEFINE(VMA_VM_MM, offsetof(struct vm_area_struct, vm_mm)); - DEFINE(VMA_VM_FLAGS, offsetof(struct vm_area_struct, vm_flags)); + DEFINE(VMA_VM_MM, offsetof(struct mm_area, vm_mm)); + DEFINE(VMA_VM_FLAGS, offsetof(struct mm_area, vm_flags)); BLANK(); DEFINE(VM_EXEC, VM_EXEC); BLANK(); diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index e16ed102960c..d35d4687e6a8 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -306,7 +306,7 @@ unsigned long __get_wchan(struct task_struct *p) * atomic helpers. Insert it into the gate_vma so that it is visible * through ptrace and /proc//mem. */ -static struct vm_area_struct gate_vma; +static struct mm_area gate_vma; static int __init gate_vma_init(void) { @@ -319,7 +319,7 @@ static int __init gate_vma_init(void) } arch_initcall(gate_vma_init); -struct vm_area_struct *get_gate_vma(struct mm_struct *mm) +struct mm_area *get_gate_vma(struct mm_struct *mm) { return &gate_vma; } @@ -338,7 +338,7 @@ int in_gate_area_no_mm(unsigned long addr) #define is_gate_vma(vma) 0 #endif -const char *arch_vma_name(struct vm_area_struct *vma) +const char *arch_vma_name(struct mm_area *vma) { return is_gate_vma(vma) ? "[vectors]" : NULL; } @@ -380,7 +380,7 @@ static struct page *signal_page; extern struct page *get_signal_page(void); static int sigpage_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { current->mm->context.sigpage = new_vma->vm_start; return 0; @@ -395,7 +395,7 @@ static const struct vm_special_mapping sigpage_mapping = { int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long npages; unsigned long addr; unsigned long hint; diff --git a/arch/arm/kernel/smp_tlb.c b/arch/arm/kernel/smp_tlb.c index d4908b3736d8..d827500c7538 100644 --- a/arch/arm/kernel/smp_tlb.c +++ b/arch/arm/kernel/smp_tlb.c @@ -18,7 +18,7 @@ * TLB operations */ struct tlb_args { - struct vm_area_struct *ta_vma; + struct mm_area *ta_vma; unsigned long ta_start; unsigned long ta_end; }; @@ -193,7 +193,7 @@ void flush_tlb_mm(struct mm_struct *mm) broadcast_tlb_mm_a15_erratum(mm); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +void flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { if (tlb_ops_need_broadcast()) { struct tlb_args ta; @@ -217,7 +217,7 @@ void flush_tlb_kernel_page(unsigned long kaddr) broadcast_tlb_a15_erratum(); } -void flush_tlb_range(struct vm_area_struct *vma, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (tlb_ops_need_broadcast()) { diff --git a/arch/arm/kernel/vdso.c b/arch/arm/kernel/vdso.c index 325448ffbba0..97b28ef9742a 100644 --- a/arch/arm/kernel/vdso.c +++ b/arch/arm/kernel/vdso.c @@ -35,7 +35,7 @@ extern char vdso_start[], vdso_end[]; unsigned int vdso_total_pages __ro_after_init; static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { current->mm->context.vdso = new_vma->vm_start; @@ -210,7 +210,7 @@ static_assert(__VDSO_PAGES == VDSO_NR_PAGES); /* assumes mmap_lock is write-locked */ void arm_install_vdso(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long len; mm->context.vdso = 0; diff --git a/arch/arm/mach-rpc/ecard.c b/arch/arm/mach-rpc/ecard.c index 2cde4c83b7f9..08d17ee66891 100644 --- a/arch/arm/mach-rpc/ecard.c +++ b/arch/arm/mach-rpc/ecard.c @@ -213,7 +213,7 @@ static DEFINE_MUTEX(ecard_mutex); */ static void ecard_init_pgtables(struct mm_struct *mm) { - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, VM_EXEC); + struct mm_area vma = TLB_FLUSH_VMA(mm, VM_EXEC); /* We want to set up the page tables for the following mapping: * Virtual Physical diff --git a/arch/arm/mm/cache-v6.S b/arch/arm/mm/cache-v6.S index 9f415476e218..560bf185d275 100644 --- a/arch/arm/mm/cache-v6.S +++ b/arch/arm/mm/cache-v6.S @@ -94,7 +94,7 @@ SYM_FUNC_END(v6_flush_user_cache_all) * * - start - start address (may not be aligned) * - end - end address (exclusive, may not be aligned) - * - flags - vm_area_struct flags describing address space + * - flags - mm_area flags describing address space * * It is assumed that: * - we have a VIPT cache. diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S index 201ca05436fa..c3d5c874c895 100644 --- a/arch/arm/mm/cache-v7.S +++ b/arch/arm/mm/cache-v7.S @@ -238,7 +238,7 @@ SYM_FUNC_END(v7_flush_user_cache_all) * * - start - start address (may not be aligned) * - end - end address (exclusive, may not be aligned) - * - flags - vm_area_struct flags describing address space + * - flags - mm_area flags describing address space * * It is assumed that: * - we have a VIPT cache. diff --git a/arch/arm/mm/cache-v7m.S b/arch/arm/mm/cache-v7m.S index 14d719eba729..611e0c7c4875 100644 --- a/arch/arm/mm/cache-v7m.S +++ b/arch/arm/mm/cache-v7m.S @@ -263,7 +263,7 @@ SYM_FUNC_END(v7m_flush_user_cache_all) * * - start - start address (may not be aligned) * - end - end address (exclusive, may not be aligned) - * - flags - vm_area_struct flags describing address space + * - flags - mm_area flags describing address space * * It is assumed that: * - we have a VIPT cache. diff --git a/arch/arm/mm/copypage-fa.c b/arch/arm/mm/copypage-fa.c index 7e28c26f5aa4..6620d7e4ef45 100644 --- a/arch/arm/mm/copypage-fa.c +++ b/arch/arm/mm/copypage-fa.c @@ -36,7 +36,7 @@ static void fa_copy_user_page(void *kto, const void *kfrom) } void fa_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; diff --git a/arch/arm/mm/copypage-feroceon.c b/arch/arm/mm/copypage-feroceon.c index 5fc8ef1e665f..c2b763bb8b94 100644 --- a/arch/arm/mm/copypage-feroceon.c +++ b/arch/arm/mm/copypage-feroceon.c @@ -64,7 +64,7 @@ static void feroceon_copy_user_page(void *kto, const void *kfrom) } void feroceon_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; diff --git a/arch/arm/mm/copypage-v4mc.c b/arch/arm/mm/copypage-v4mc.c index 7ddd82b9fe8b..c151e91373b7 100644 --- a/arch/arm/mm/copypage-v4mc.c +++ b/arch/arm/mm/copypage-v4mc.c @@ -62,7 +62,7 @@ static void mc_copy_user_page(void *from, void *to) } void v4_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); void *kto = kmap_atomic(to); diff --git a/arch/arm/mm/copypage-v4wb.c b/arch/arm/mm/copypage-v4wb.c index c3581b226459..04541e74d6a6 100644 --- a/arch/arm/mm/copypage-v4wb.c +++ b/arch/arm/mm/copypage-v4wb.c @@ -45,7 +45,7 @@ static void v4wb_copy_user_page(void *kto, const void *kfrom) } void v4wb_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; diff --git a/arch/arm/mm/copypage-v4wt.c b/arch/arm/mm/copypage-v4wt.c index 1fb10733305a..68cafffaeba6 100644 --- a/arch/arm/mm/copypage-v4wt.c +++ b/arch/arm/mm/copypage-v4wt.c @@ -41,7 +41,7 @@ static void v4wt_copy_user_page(void *kto, const void *kfrom) } void v4wt_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; diff --git a/arch/arm/mm/copypage-v6.c b/arch/arm/mm/copypage-v6.c index a1a71f36d850..dff1dd0f9e98 100644 --- a/arch/arm/mm/copypage-v6.c +++ b/arch/arm/mm/copypage-v6.c @@ -28,7 +28,7 @@ static DEFINE_RAW_SPINLOCK(v6_lock); * attack the kernel's existing mapping of these pages. */ static void v6_copy_user_highpage_nonaliasing(struct page *to, - struct page *from, unsigned long vaddr, struct vm_area_struct *vma) + struct page *from, unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; @@ -67,7 +67,7 @@ static void discard_old_kernel_data(void *kto) * Copy the page, taking account of the cache colour. */ static void v6_copy_user_highpage_aliasing(struct page *to, - struct page *from, unsigned long vaddr, struct vm_area_struct *vma) + struct page *from, unsigned long vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); unsigned int offset = CACHE_COLOUR(vaddr); diff --git a/arch/arm/mm/copypage-xsc3.c b/arch/arm/mm/copypage-xsc3.c index c86e79677ff9..4f866b2aba21 100644 --- a/arch/arm/mm/copypage-xsc3.c +++ b/arch/arm/mm/copypage-xsc3.c @@ -62,7 +62,7 @@ static void xsc3_mc_copy_user_page(void *kto, const void *kfrom) } void xsc3_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; diff --git a/arch/arm/mm/copypage-xscale.c b/arch/arm/mm/copypage-xscale.c index f1e29d3e8193..dcc5b53e7d8a 100644 --- a/arch/arm/mm/copypage-xscale.c +++ b/arch/arm/mm/copypage-xscale.c @@ -82,7 +82,7 @@ static void mc_copy_user_page(void *from, void *to) } void xscale_mc_copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); void *kto = kmap_atomic(to); diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 88c2d68a69c9..88ec2665d5d9 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c @@ -1112,7 +1112,7 @@ static void *arm_iommu_alloc_attrs(struct device *dev, size_t size, return NULL; } -static int arm_iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma, +static int arm_iommu_mmap_attrs(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index 39fd5df73317..4717aa3256bb 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c @@ -33,7 +33,7 @@ static pteval_t shared_pte_mask = L_PTE_MT_BUFFERABLE; * Therefore those configurations which might call adjust_pte (those * without CONFIG_CPU_CACHE_VIPT) cannot support split page_table_lock. */ -static int do_adjust_pte(struct vm_area_struct *vma, unsigned long address, +static int do_adjust_pte(struct mm_area *vma, unsigned long address, unsigned long pfn, pte_t *ptep) { pte_t entry = *ptep; @@ -61,7 +61,7 @@ static int do_adjust_pte(struct vm_area_struct *vma, unsigned long address, return ret; } -static int adjust_pte(struct vm_area_struct *vma, unsigned long address, +static int adjust_pte(struct mm_area *vma, unsigned long address, unsigned long pfn, bool need_lock) { spinlock_t *ptl; @@ -121,13 +121,13 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address, } static void -make_coherent(struct address_space *mapping, struct vm_area_struct *vma, +make_coherent(struct address_space *mapping, struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned long pfn) { const unsigned long pmd_start_addr = ALIGN_DOWN(addr, PMD_SIZE); const unsigned long pmd_end_addr = pmd_start_addr + PMD_SIZE; struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct *mpnt; + struct mm_area *mpnt; unsigned long offset; pgoff_t pgoff; int aliases = 0; @@ -184,7 +184,7 @@ make_coherent(struct address_space *mapping, struct vm_area_struct *vma, * * Note that the pte lock will be held. */ -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { unsigned long pfn = pte_pfn(*ptep); diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index ab01b51de559..b89935868510 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -264,7 +264,7 @@ static int __kprobes do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int sig, code; vm_fault_t fault; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index 0749cf8a6637..8b674a426eae 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c @@ -76,7 +76,7 @@ void flush_cache_mm(struct mm_struct *mm) } } -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (cache_is_vivt()) { vivt_flush_cache_range(vma, start, end); @@ -95,7 +95,7 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned __flush_icache_all(); } -void flush_cache_pages(struct vm_area_struct *vma, unsigned long user_addr, unsigned long pfn, unsigned int nr) +void flush_cache_pages(struct mm_area *vma, unsigned long user_addr, unsigned long pfn, unsigned int nr) { if (cache_is_vivt()) { vivt_flush_cache_pages(vma, user_addr, pfn, nr); @@ -156,7 +156,7 @@ void __flush_ptrace_access(struct page *page, unsigned long uaddr, void *kaddr, } static -void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, +void flush_ptrace_access(struct mm_area *vma, struct page *page, unsigned long uaddr, void *kaddr, unsigned long len) { unsigned int flags = 0; @@ -182,7 +182,7 @@ void flush_uprobe_xol_access(struct page *page, unsigned long uaddr, * * Note that this code needs to run on the current CPU. */ -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long uaddr, void *dst, const void *src, unsigned long len) { @@ -238,7 +238,7 @@ void __flush_dcache_folio(struct address_space *mapping, struct folio *folio) static void __flush_dcache_aliases(struct address_space *mapping, struct folio *folio) { struct mm_struct *mm = current->active_mm; - struct vm_area_struct *vma; + struct mm_area *vma; pgoff_t pgoff, pgoff_end; /* @@ -378,8 +378,8 @@ EXPORT_SYMBOL(flush_dcache_page); * memcpy() to/from page * if written to page, flush_dcache_page() */ -void __flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr); -void __flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr) +void __flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr); +void __flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { unsigned long pfn; diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c index 3dbb383c26d5..4077f5184814 100644 --- a/arch/arm/mm/mmap.c +++ b/arch/arm/mm/mmap.c @@ -32,7 +32,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int do_align = 0; int aliasing = cache_is_vipt_aliasing(); struct vm_unmapped_area_info info = {}; @@ -82,7 +82,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, const unsigned long len, const unsigned long pgoff, const unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; unsigned long addr = addr0; int do_align = 0; diff --git a/arch/arm/mm/nommu.c b/arch/arm/mm/nommu.c index d638cc87807e..57b8172a4830 100644 --- a/arch/arm/mm/nommu.c +++ b/arch/arm/mm/nommu.c @@ -189,7 +189,7 @@ void flush_dcache_page(struct page *page) } EXPORT_SYMBOL(flush_dcache_page); -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long uaddr, void *dst, const void *src, unsigned long len) { diff --git a/arch/arm/mm/tlb-v6.S b/arch/arm/mm/tlb-v6.S index 8256a67ac654..d4481f9f0757 100644 --- a/arch/arm/mm/tlb-v6.S +++ b/arch/arm/mm/tlb-v6.S @@ -27,7 +27,7 @@ * * - start - start address (may not be aligned) * - end - end address (exclusive, may not be aligned) - * - vma - vm_area_struct describing address range + * - vma - mm_area describing address range * * It is assumed that: * - the "Invalidate single entry" instruction will invalidate diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S index f1aa0764a2cc..28490bba1cf0 100644 --- a/arch/arm/mm/tlb-v7.S +++ b/arch/arm/mm/tlb-v7.S @@ -26,7 +26,7 @@ * * - start - start address (may not be aligned) * - end - end address (exclusive, may not be aligned) - * - vma - vm_area_struct describing address range + * - vma - mm_area describing address range * * It is assumed that: * - the "Invalidate single entry" instruction will invalidate diff --git a/arch/arm/mm/tlb.c b/arch/arm/mm/tlb.c index 42359793120b..57a2184da8ae 100644 --- a/arch/arm/mm/tlb.c +++ b/arch/arm/mm/tlb.c @@ -6,7 +6,7 @@ #include #ifdef CONFIG_CPU_TLB_V4WT -void v4_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void v4_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void v4_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns v4_tlb_fns __initconst = { @@ -17,7 +17,7 @@ struct cpu_tlb_fns v4_tlb_fns __initconst = { #endif #ifdef CONFIG_CPU_TLB_V4WB -void v4wb_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void v4wb_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void v4wb_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns v4wb_tlb_fns __initconst = { @@ -28,7 +28,7 @@ struct cpu_tlb_fns v4wb_tlb_fns __initconst = { #endif #if defined(CONFIG_CPU_TLB_V4WBI) || defined(CONFIG_CPU_TLB_FEROCEON) -void v4wbi_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void v4wbi_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void v4wbi_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns v4wbi_tlb_fns __initconst = { @@ -39,7 +39,7 @@ struct cpu_tlb_fns v4wbi_tlb_fns __initconst = { #endif #ifdef CONFIG_CPU_TLB_V6 -void v6wbi_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void v6wbi_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void v6wbi_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns v6wbi_tlb_fns __initconst = { @@ -50,7 +50,7 @@ struct cpu_tlb_fns v6wbi_tlb_fns __initconst = { #endif #ifdef CONFIG_CPU_TLB_V7 -void v7wbi_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void v7wbi_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void v7wbi_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns v7wbi_tlb_fns __initconst = { @@ -73,7 +73,7 @@ asm(" .pushsection \".alt.smp.init\", \"a\" \n" \ #endif #ifdef CONFIG_CPU_TLB_FA -void fa_flush_user_tlb_range(unsigned long, unsigned long, struct vm_area_struct *); +void fa_flush_user_tlb_range(unsigned long, unsigned long, struct mm_area *); void fa_flush_kern_tlb_range(unsigned long, unsigned long); struct cpu_tlb_fns fa_tlb_fns __initconst = { diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c index a395b6c0aae2..11029e2a5413 100644 --- a/arch/arm/xen/enlighten.c +++ b/arch/arm/xen/enlighten.c @@ -68,7 +68,7 @@ static __read_mostly phys_addr_t xen_grant_frames; uint32_t xen_start_flags; EXPORT_SYMBOL(xen_start_flags); -int xen_unmap_domain_gfn_range(struct vm_area_struct *vma, +int xen_unmap_domain_gfn_range(struct mm_area *vma, int nr, struct page **pages) { return xen_xlate_unmap_gfn_range(vma, nr, pages); diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h index 28ab96e808ef..aaf770ee6d2f 100644 --- a/arch/arm64/include/asm/cacheflush.h +++ b/arch/arm64/include/asm/cacheflush.h @@ -109,7 +109,7 @@ static inline void flush_icache_range(unsigned long start, unsigned long end) * processes address space. Really, we want to allow our "user * space" model to handle this. */ -extern void copy_to_user_page(struct vm_area_struct *, struct page *, +extern void copy_to_user_page(struct mm_area *, struct page *, unsigned long, void *, const void *, unsigned long); #define copy_to_user_page copy_to_user_page diff --git a/arch/arm64/include/asm/hugetlb.h b/arch/arm64/include/asm/hugetlb.h index 07fbf5bf85a7..0b84bfffd34e 100644 --- a/arch/arm64/include/asm/hugetlb.h +++ b/arch/arm64/include/asm/hugetlb.h @@ -38,7 +38,7 @@ pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags); extern void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte, unsigned long sz); #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -extern int huge_ptep_set_access_flags(struct vm_area_struct *vma, +extern int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty); #define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR @@ -48,7 +48,7 @@ extern pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, extern void huge_ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -extern pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +extern pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_HUGE_PTE_CLEAR extern void huge_pte_clear(struct mm_struct *mm, unsigned long addr, @@ -59,18 +59,18 @@ extern pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep void __init arm64_hugetlb_cma_reserve(void); #define huge_ptep_modify_prot_start huge_ptep_modify_prot_start -extern pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, +extern pte_t huge_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define huge_ptep_modify_prot_commit huge_ptep_modify_prot_commit -extern void huge_ptep_modify_prot_commit(struct vm_area_struct *vma, +extern void huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t new_pte); #include #define __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE -static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma, +static inline void flush_hugetlb_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h index 0dbe3b29049b..f0f70fb6934e 100644 --- a/arch/arm64/include/asm/mmu_context.h +++ b/arch/arm64/include/asm/mmu_context.h @@ -307,7 +307,7 @@ static inline unsigned long mm_untag_mask(struct mm_struct *mm) * Only enforce protection keys on the current process, because there is no * user context to access POR_EL0 for another address space. */ -static inline bool arch_vma_access_permitted(struct vm_area_struct *vma, +static inline bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign) { if (!system_supports_poe()) diff --git a/arch/arm64/include/asm/page.h b/arch/arm64/include/asm/page.h index 2312e6ee595f..d2258e036fae 100644 --- a/arch/arm64/include/asm/page.h +++ b/arch/arm64/include/asm/page.h @@ -17,19 +17,19 @@ #include struct page; -struct vm_area_struct; +struct mm_area; extern void copy_page(void *to, const void *from); extern void clear_page(void *to); void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_highpage(struct page *to, struct page *from); #define __HAVE_ARCH_COPY_HIGHPAGE -struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, +struct folio *vma_alloc_zeroed_movable_folio(struct mm_area *vma, unsigned long vaddr); #define vma_alloc_zeroed_movable_folio vma_alloc_zeroed_movable_folio diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h index d3b538be1500..914caa15c4c8 100644 --- a/arch/arm64/include/asm/pgtable.h +++ b/arch/arm64/include/asm/pgtable.h @@ -1207,13 +1207,13 @@ static inline pmd_t pmd_modify(pmd_t pmd, pgprot_t newprot) return pte_pmd(pte_modify(pmd_pte(pmd), newprot)); } -extern int __ptep_set_access_flags(struct vm_area_struct *vma, +extern int __ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty); #ifdef CONFIG_TRANSPARENT_HUGEPAGE #define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -static inline int pmdp_set_access_flags(struct vm_area_struct *vma, +static inline int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { @@ -1252,7 +1252,7 @@ static inline bool pud_user_accessible_page(pud_t pud) /* * Atomic pte/pmd modifications. */ -static inline int __ptep_test_and_clear_young(struct vm_area_struct *vma, +static inline int __ptep_test_and_clear_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { @@ -1269,7 +1269,7 @@ static inline int __ptep_test_and_clear_young(struct vm_area_struct *vma, return pte_young(pte); } -static inline int __ptep_clear_flush_young(struct vm_area_struct *vma, +static inline int __ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { int young = __ptep_test_and_clear_young(vma, address, ptep); @@ -1291,7 +1291,7 @@ static inline int __ptep_clear_flush_young(struct vm_area_struct *vma, #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) #define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG -static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, +static inline int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { @@ -1388,7 +1388,7 @@ static inline void __wrprotect_ptes(struct mm_struct *mm, unsigned long address, __ptep_set_wrprotect(mm, address, ptep); } -static inline void __clear_young_dirty_pte(struct vm_area_struct *vma, +static inline void __clear_young_dirty_pte(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, cydp_t flags) { @@ -1407,7 +1407,7 @@ static inline void __clear_young_dirty_pte(struct vm_area_struct *vma, } while (pte_val(pte) != pte_val(old_pte)); } -static inline void __clear_young_dirty_ptes(struct vm_area_struct *vma, +static inline void __clear_young_dirty_ptes(struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags) { @@ -1437,7 +1437,7 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, } #define pmdp_establish pmdp_establish -static inline pmd_t pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { page_table_check_pmd_set(vma->vm_mm, pmdp, pmd); @@ -1506,7 +1506,7 @@ extern void arch_swap_restore(swp_entry_t entry, struct folio *folio); * On AArch64, the cache coherency is handled via the __set_ptes() function. */ static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, + struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { /* @@ -1552,11 +1552,11 @@ static inline bool pud_sect_supported(void) #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION #define ptep_modify_prot_start ptep_modify_prot_start -extern pte_t ptep_modify_prot_start(struct vm_area_struct *vma, +extern pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define ptep_modify_prot_commit ptep_modify_prot_commit -extern void ptep_modify_prot_commit(struct vm_area_struct *vma, +extern void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t new_pte); @@ -1580,16 +1580,16 @@ extern void contpte_clear_full_ptes(struct mm_struct *mm, unsigned long addr, extern pte_t contpte_get_and_clear_full_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, unsigned int nr, int full); -extern int contpte_ptep_test_and_clear_young(struct vm_area_struct *vma, +extern int contpte_ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep); -extern int contpte_ptep_clear_flush_young(struct vm_area_struct *vma, +extern int contpte_ptep_clear_flush_young(struct mm_area *vma, unsigned long addr, pte_t *ptep); extern void contpte_wrprotect_ptes(struct mm_struct *mm, unsigned long addr, pte_t *ptep, unsigned int nr); -extern int contpte_ptep_set_access_flags(struct vm_area_struct *vma, +extern int contpte_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t entry, int dirty); -extern void contpte_clear_young_dirty_ptes(struct vm_area_struct *vma, +extern void contpte_clear_young_dirty_ptes(struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags); @@ -1747,7 +1747,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t orig_pte = __ptep_get(ptep); @@ -1759,7 +1759,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, } #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -static inline int ptep_clear_flush_young(struct vm_area_struct *vma, +static inline int ptep_clear_flush_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t orig_pte = __ptep_get(ptep); @@ -1802,7 +1802,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, } #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -static inline int ptep_set_access_flags(struct vm_area_struct *vma, +static inline int ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t entry, int dirty) { @@ -1817,7 +1817,7 @@ static inline int ptep_set_access_flags(struct vm_area_struct *vma, } #define clear_young_dirty_ptes clear_young_dirty_ptes -static inline void clear_young_dirty_ptes(struct vm_area_struct *vma, +static inline void clear_young_dirty_ptes(struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags) { diff --git a/arch/arm64/include/asm/pkeys.h b/arch/arm64/include/asm/pkeys.h index 0ca5f83ce148..14b1d4bfc8c0 100644 --- a/arch/arm64/include/asm/pkeys.h +++ b/arch/arm64/include/asm/pkeys.h @@ -20,12 +20,12 @@ static inline bool arch_pkeys_enabled(void) return system_supports_poe(); } -static inline int vma_pkey(struct vm_area_struct *vma) +static inline int vma_pkey(struct mm_area *vma) { return (vma->vm_flags & ARCH_VM_PKEY_FLAGS) >> VM_PKEY_SHIFT; } -static inline int arch_override_mprotect_pkey(struct vm_area_struct *vma, +static inline int arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey) { if (pkey != -1) diff --git a/arch/arm64/include/asm/tlb.h b/arch/arm64/include/asm/tlb.h index 8d762607285c..31aac313a4b8 100644 --- a/arch/arm64/include/asm/tlb.h +++ b/arch/arm64/include/asm/tlb.h @@ -52,7 +52,7 @@ static inline int tlb_get_level(struct mmu_gather *tlb) static inline void tlb_flush(struct mmu_gather *tlb) { - struct vm_area_struct vma = TLB_FLUSH_VMA(tlb->mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(tlb->mm, 0); bool last_level = !tlb->freed_tables; unsigned long stride = tlb_get_unmap_size(tlb); int tlb_level = tlb_get_level(tlb); diff --git a/arch/arm64/include/asm/tlbflush.h b/arch/arm64/include/asm/tlbflush.h index eba1a98657f1..bfed61ba7b05 100644 --- a/arch/arm64/include/asm/tlbflush.h +++ b/arch/arm64/include/asm/tlbflush.h @@ -295,13 +295,13 @@ static inline void __flush_tlb_page_nosync(struct mm_struct *mm, (uaddr & PAGE_MASK) + PAGE_SIZE); } -static inline void flush_tlb_page_nosync(struct vm_area_struct *vma, +static inline void flush_tlb_page_nosync(struct mm_area *vma, unsigned long uaddr) { return __flush_tlb_page_nosync(vma->vm_mm, uaddr); } -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { flush_tlb_page_nosync(vma, uaddr); @@ -472,7 +472,7 @@ static inline void __flush_tlb_range_nosync(struct mm_struct *mm, mmu_notifier_arch_invalidate_secondary_tlbs(mm, start, end); } -static inline void __flush_tlb_range(struct vm_area_struct *vma, +static inline void __flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long stride, bool last_level, int tlb_level) @@ -482,7 +482,7 @@ static inline void __flush_tlb_range(struct vm_area_struct *vma, dsb(ish); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { /* diff --git a/arch/arm64/kernel/mte.c b/arch/arm64/kernel/mte.c index 2fbfd27ff5f2..cc561fb4203d 100644 --- a/arch/arm64/kernel/mte.c +++ b/arch/arm64/kernel/mte.c @@ -422,7 +422,7 @@ static int __access_remote_tags(struct mm_struct *mm, unsigned long addr, return -EIO; while (len) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long tags, offset; void *maddr; struct page *page = get_user_page_vma_remote(mm, addr, diff --git a/arch/arm64/kernel/vdso.c b/arch/arm64/kernel/vdso.c index 78ddf6bdecad..5e3564b842a4 100644 --- a/arch/arm64/kernel/vdso.c +++ b/arch/arm64/kernel/vdso.c @@ -58,7 +58,7 @@ static struct vdso_abi_info vdso_info[] __ro_after_init = { }; static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { current->mm->context.vdso = (void *)new_vma->vm_start; @@ -157,7 +157,7 @@ static struct page *aarch32_vectors_page __ro_after_init; static struct page *aarch32_sig_page __ro_after_init; static int aarch32_sigpage_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { current->mm->context.sigpage = (void *)new_vma->vm_start; diff --git a/arch/arm64/kvm/mmu.c b/arch/arm64/kvm/mmu.c index 2feb6c6b63af..54ca059f6a02 100644 --- a/arch/arm64/kvm/mmu.c +++ b/arch/arm64/kvm/mmu.c @@ -1017,7 +1017,7 @@ static void stage2_unmap_memslot(struct kvm *kvm, * +--------------------------------------------+ */ do { - struct vm_area_struct *vma; + struct mm_area *vma; hva_t vm_start, vm_end; vma = find_vma_intersection(current->mm, hva, reg_end); @@ -1393,7 +1393,7 @@ transparent_hugepage_adjust(struct kvm *kvm, struct kvm_memory_slot *memslot, return PAGE_SIZE; } -static int get_vma_page_shift(struct vm_area_struct *vma, unsigned long hva) +static int get_vma_page_shift(struct mm_area *vma, unsigned long hva) { unsigned long pa; @@ -1461,7 +1461,7 @@ static void sanitise_mte_tags(struct kvm *kvm, kvm_pfn_t pfn, } } -static bool kvm_vma_mte_allowed(struct vm_area_struct *vma) +static bool kvm_vma_mte_allowed(struct mm_area *vma) { return vma->vm_flags & VM_MTE_ALLOWED; } @@ -1478,7 +1478,7 @@ static int user_mem_abort(struct kvm_vcpu *vcpu, phys_addr_t fault_ipa, unsigned long mmu_seq; phys_addr_t ipa = fault_ipa; struct kvm *kvm = vcpu->kvm; - struct vm_area_struct *vma; + struct mm_area *vma; short vma_shift; void *memcache; gfn_t gfn; @@ -2190,7 +2190,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, * +--------------------------------------------+ */ do { - struct vm_area_struct *vma; + struct mm_area *vma; vma = find_vma_intersection(current->mm, hva, reg_end); if (!vma) diff --git a/arch/arm64/mm/contpte.c b/arch/arm64/mm/contpte.c index bcac4f55f9c1..8bec9a656558 100644 --- a/arch/arm64/mm/contpte.c +++ b/arch/arm64/mm/contpte.c @@ -49,7 +49,7 @@ static void contpte_try_unfold_partial(struct mm_struct *mm, unsigned long addr, static void contpte_convert(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t pte) { - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(mm, 0); unsigned long start_addr; pte_t *start_ptep; int i; @@ -297,7 +297,7 @@ pte_t contpte_get_and_clear_full_ptes(struct mm_struct *mm, } EXPORT_SYMBOL_GPL(contpte_get_and_clear_full_ptes); -int contpte_ptep_test_and_clear_young(struct vm_area_struct *vma, +int contpte_ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { /* @@ -322,7 +322,7 @@ int contpte_ptep_test_and_clear_young(struct vm_area_struct *vma, } EXPORT_SYMBOL_GPL(contpte_ptep_test_and_clear_young); -int contpte_ptep_clear_flush_young(struct vm_area_struct *vma, +int contpte_ptep_clear_flush_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { int young; @@ -361,7 +361,7 @@ void contpte_wrprotect_ptes(struct mm_struct *mm, unsigned long addr, } EXPORT_SYMBOL_GPL(contpte_wrprotect_ptes); -void contpte_clear_young_dirty_ptes(struct vm_area_struct *vma, +void contpte_clear_young_dirty_ptes(struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags) { @@ -390,7 +390,7 @@ void contpte_clear_young_dirty_ptes(struct vm_area_struct *vma, } EXPORT_SYMBOL_GPL(contpte_clear_young_dirty_ptes); -int contpte_ptep_set_access_flags(struct vm_area_struct *vma, +int contpte_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t entry, int dirty) { diff --git a/arch/arm64/mm/copypage.c b/arch/arm64/mm/copypage.c index a86c897017df..8bb8e592eab4 100644 --- a/arch/arm64/mm/copypage.c +++ b/arch/arm64/mm/copypage.c @@ -61,7 +61,7 @@ void copy_highpage(struct page *to, struct page *from) EXPORT_SYMBOL(copy_highpage); void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { copy_highpage(to, from); flush_dcache_page(to); diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c index ec0a337891dd..340ac8c5bc25 100644 --- a/arch/arm64/mm/fault.c +++ b/arch/arm64/mm/fault.c @@ -210,7 +210,7 @@ static void show_pte(unsigned long addr) * * Returns whether or not the PTE actually changed. */ -int __ptep_set_access_flags(struct vm_area_struct *vma, +int __ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { @@ -487,7 +487,7 @@ static void do_bad_area(unsigned long far, unsigned long esr, } } -static bool fault_from_pkey(unsigned long esr, struct vm_area_struct *vma, +static bool fault_from_pkey(unsigned long esr, struct mm_area *vma, unsigned int mm_flags) { unsigned long iss2 = ESR_ELx_ISS2(esr); @@ -526,7 +526,7 @@ static bool is_write_abort(unsigned long esr) return (esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM); } -static bool is_invalid_gcs_access(struct vm_area_struct *vma, u64 esr) +static bool is_invalid_gcs_access(struct mm_area *vma, u64 esr) { if (!system_supports_gcs()) return false; @@ -552,7 +552,7 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, unsigned long vm_flags; unsigned int mm_flags = FAULT_FLAG_DEFAULT; unsigned long addr = untagged_addr(far); - struct vm_area_struct *vma; + struct mm_area *vma; int si_code; int pkey = -1; @@ -1010,7 +1010,7 @@ NOKPROBE_SYMBOL(do_debug_exception); /* * Used during anonymous page fault handling. */ -struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, +struct folio *vma_alloc_zeroed_movable_folio(struct mm_area *vma, unsigned long vaddr) { gfp_t flags = GFP_HIGHUSER_MOVABLE | __GFP_ZERO; diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index 013eead9b695..4931bb9d9937 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -29,7 +29,7 @@ void sync_icache_aliases(unsigned long start, unsigned long end) } } -static void flush_ptrace_access(struct vm_area_struct *vma, unsigned long start, +static void flush_ptrace_access(struct mm_area *vma, unsigned long start, unsigned long end) { if (vma->vm_flags & VM_EXEC) @@ -41,7 +41,7 @@ static void flush_ptrace_access(struct vm_area_struct *vma, unsigned long start, * address space. Really, we want to allow our "user space" model to handle * this. */ -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long uaddr, void *dst, const void *src, unsigned long len) { diff --git a/arch/arm64/mm/hugetlbpage.c b/arch/arm64/mm/hugetlbpage.c index cfe8cb8ba1cc..55246c6e60d0 100644 --- a/arch/arm64/mm/hugetlbpage.c +++ b/arch/arm64/mm/hugetlbpage.c @@ -182,7 +182,7 @@ static pte_t get_clear_contig_flush(struct mm_struct *mm, unsigned long ncontig) { pte_t orig_pte = get_clear_contig(mm, addr, ptep, pgsize, ncontig); - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(mm, 0); flush_tlb_range(&vma, addr, addr + (pgsize * ncontig)); return orig_pte; @@ -203,7 +203,7 @@ static void clear_flush(struct mm_struct *mm, unsigned long pgsize, unsigned long ncontig) { - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(mm, 0); unsigned long i, saddr = addr; for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) @@ -244,7 +244,7 @@ void set_huge_pte_at(struct mm_struct *mm, unsigned long addr, __set_ptes(mm, addr, ptep, pfn_pte(pfn, hugeprot), 1); } -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgdp; @@ -427,7 +427,7 @@ static int __cont_access_flags_changed(pte_t *ptep, pte_t pte, int ncontig) return 0; } -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { @@ -490,7 +490,7 @@ void huge_ptep_set_wrprotect(struct mm_struct *mm, __set_ptes(mm, addr, ptep, pfn_pte(pfn, hugeprot), 1); } -pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { struct mm_struct *mm = vma->vm_mm; @@ -534,7 +534,7 @@ bool __init arch_hugetlb_valid_size(unsigned long size) return __hugetlb_valid_size(size); } -pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) +pte_t huge_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long psize = huge_page_size(hstate_vma(vma)); @@ -550,7 +550,7 @@ pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr return huge_ptep_get_and_clear(vma->vm_mm, addr, ptep, psize); } -void huge_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, +void huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { unsigned long psize = huge_page_size(hstate_vma(vma)); diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c index ea6695d53fb9..4945b810f03c 100644 --- a/arch/arm64/mm/mmu.c +++ b/arch/arm64/mm/mmu.c @@ -1504,7 +1504,7 @@ static int __init prevent_bootmem_remove_init(void) early_initcall(prevent_bootmem_remove_init); #endif -pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) +pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { if (alternative_has_cap_unlikely(ARM64_WORKAROUND_2645198)) { /* @@ -1518,7 +1518,7 @@ pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, pte return ptep_get_and_clear(vma->vm_mm, addr, ptep); } -void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep, +void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { set_pte_at(vma->vm_mm, addr, ptep, pte); diff --git a/arch/csky/abiv1/cacheflush.c b/arch/csky/abiv1/cacheflush.c index 171e8fb32285..9253db16358c 100644 --- a/arch/csky/abiv1/cacheflush.c +++ b/arch/csky/abiv1/cacheflush.c @@ -41,7 +41,7 @@ void flush_dcache_page(struct page *page) } EXPORT_SYMBOL(flush_dcache_page); -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { unsigned long pfn = pte_pfn(*ptep); @@ -65,7 +65,7 @@ void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, } } -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { dcache_wbinv_all(); diff --git a/arch/csky/abiv1/inc/abi/cacheflush.h b/arch/csky/abiv1/inc/abi/cacheflush.h index d011a81575d2..be382265c4dc 100644 --- a/arch/csky/abiv1/inc/abi/cacheflush.h +++ b/arch/csky/abiv1/inc/abi/cacheflush.h @@ -30,7 +30,7 @@ static inline void invalidate_kernel_vmap_range(void *addr, int size) } #define ARCH_HAS_FLUSH_ANON_PAGE -static inline void flush_anon_page(struct vm_area_struct *vma, +static inline void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { if (PageAnon(page)) @@ -41,7 +41,7 @@ static inline void flush_anon_page(struct vm_area_struct *vma, * if (current_mm != vma->mm) cache_wbinv_range(start, end) will be broken. * Use cache_wbinv_all() here and need to be improved in future. */ -extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); #define flush_cache_vmap(start, end) cache_wbinv_all() #define flush_cache_vmap_early(start, end) do { } while (0) #define flush_cache_vunmap(start, end) cache_wbinv_all() diff --git a/arch/csky/abiv1/mmap.c b/arch/csky/abiv1/mmap.c index 1047865e82a9..587ea707e56a 100644 --- a/arch/csky/abiv1/mmap.c +++ b/arch/csky/abiv1/mmap.c @@ -27,7 +27,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int do_align = 0; struct vm_unmapped_area_info info = { .length = len, diff --git a/arch/csky/abiv2/cacheflush.c b/arch/csky/abiv2/cacheflush.c index 876028b1083f..9001fc55ca76 100644 --- a/arch/csky/abiv2/cacheflush.c +++ b/arch/csky/abiv2/cacheflush.c @@ -7,7 +7,7 @@ #include #include -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *pte, unsigned int nr) { unsigned long pfn = pte_pfn(*pte); diff --git a/arch/csky/include/asm/page.h b/arch/csky/include/asm/page.h index 4911d0892b71..bd643891e28a 100644 --- a/arch/csky/include/asm/page.h +++ b/arch/csky/include/asm/page.h @@ -43,7 +43,7 @@ struct page; #include -struct vm_area_struct; +struct mm_area; typedef struct { unsigned long pte_low; } pte_t; #define pte_val(x) ((x).pte_low) diff --git a/arch/csky/include/asm/pgtable.h b/arch/csky/include/asm/pgtable.h index a397e1718ab6..17de85d6cae5 100644 --- a/arch/csky/include/asm/pgtable.h +++ b/arch/csky/include/asm/pgtable.h @@ -263,7 +263,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; extern void paging_init(void); -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *pte, unsigned int nr); #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) diff --git a/arch/csky/include/asm/tlbflush.h b/arch/csky/include/asm/tlbflush.h index 407160b4fde7..1bb6e57ee7a5 100644 --- a/arch/csky/include/asm/tlbflush.h +++ b/arch/csky/include/asm/tlbflush.h @@ -14,8 +14,8 @@ */ extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_page(struct mm_area *vma, unsigned long page); +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); diff --git a/arch/csky/kernel/vdso.c b/arch/csky/kernel/vdso.c index c54d019d66bc..cb26b07cc994 100644 --- a/arch/csky/kernel/vdso.c +++ b/arch/csky/kernel/vdso.c @@ -40,7 +40,7 @@ arch_initcall(vdso_init); int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; unsigned long vdso_base, vdso_len; int ret; diff --git a/arch/csky/mm/fault.c b/arch/csky/mm/fault.c index 5226bc08c336..f64991717a1a 100644 --- a/arch/csky/mm/fault.c +++ b/arch/csky/mm/fault.c @@ -168,7 +168,7 @@ static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long a flush_tlb_one(addr); } -static inline bool access_error(struct pt_regs *regs, struct vm_area_struct *vma) +static inline bool access_error(struct pt_regs *regs, struct mm_area *vma) { if (is_write(regs)) { if (!(vma->vm_flags & VM_WRITE)) @@ -187,7 +187,7 @@ static inline bool access_error(struct pt_regs *regs, struct vm_area_struct *vma asmlinkage void do_page_fault(struct pt_regs *regs) { struct task_struct *tsk; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; unsigned long addr = read_mmu_entryhi() & PAGE_MASK; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/csky/mm/tlb.c b/arch/csky/mm/tlb.c index 9234c5e5ceaf..ad8e9be1a714 100644 --- a/arch/csky/mm/tlb.c +++ b/arch/csky/mm/tlb.c @@ -49,7 +49,7 @@ do { \ } while (0) #endif -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned long newpid = cpu_asid(vma->vm_mm); @@ -132,7 +132,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) #endif } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +void flush_tlb_page(struct mm_area *vma, unsigned long addr) { int newpid = cpu_asid(vma->vm_mm); diff --git a/arch/hexagon/include/asm/cacheflush.h b/arch/hexagon/include/asm/cacheflush.h index bfff514a81c8..29c492c45995 100644 --- a/arch/hexagon/include/asm/cacheflush.h +++ b/arch/hexagon/include/asm/cacheflush.h @@ -59,7 +59,7 @@ extern void flush_cache_all_hexagon(void); * */ static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { /* generic_ptrace_pokedata doesn't wind up here, does it? */ @@ -68,7 +68,7 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, void *src, int len); #define copy_to_user_page copy_to_user_page diff --git a/arch/hexagon/include/asm/tlbflush.h b/arch/hexagon/include/asm/tlbflush.h index a7c9ab398cab..e79e62a0e132 100644 --- a/arch/hexagon/include/asm/tlbflush.h +++ b/arch/hexagon/include/asm/tlbflush.h @@ -23,8 +23,8 @@ */ extern void tlb_flush_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr); -extern void flush_tlb_range(struct vm_area_struct *vma, +extern void flush_tlb_page(struct mm_area *vma, unsigned long addr); +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void flush_tlb_one(unsigned long); diff --git a/arch/hexagon/kernel/vdso.c b/arch/hexagon/kernel/vdso.c index 8119084dc519..c4728b6e7b05 100644 --- a/arch/hexagon/kernel/vdso.c +++ b/arch/hexagon/kernel/vdso.c @@ -51,7 +51,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { int ret; unsigned long vdso_base; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; static struct vm_special_mapping vdso_mapping = { .name = "[vdso]", @@ -87,7 +87,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) return ret; } -const char *arch_vma_name(struct vm_area_struct *vma) +const char *arch_vma_name(struct mm_area *vma) { if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) return "[vdso]"; diff --git a/arch/hexagon/mm/cache.c b/arch/hexagon/mm/cache.c index 7e46f40c8b54..c16d16954a28 100644 --- a/arch/hexagon/mm/cache.c +++ b/arch/hexagon/mm/cache.c @@ -115,7 +115,7 @@ void flush_cache_all_hexagon(void) mb(); } -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, void *src, int len) { memcpy(dst, src, len); diff --git a/arch/hexagon/mm/vm_fault.c b/arch/hexagon/mm/vm_fault.c index 3771fb453898..5eef0342fcaa 100644 --- a/arch/hexagon/mm/vm_fault.c +++ b/arch/hexagon/mm/vm_fault.c @@ -36,7 +36,7 @@ */ static void do_page_fault(unsigned long address, long cause, struct pt_regs *regs) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; int si_signo; int si_code = SEGV_MAPERR; diff --git a/arch/hexagon/mm/vm_tlb.c b/arch/hexagon/mm/vm_tlb.c index 8b6405e2234b..fee2184306a4 100644 --- a/arch/hexagon/mm/vm_tlb.c +++ b/arch/hexagon/mm/vm_tlb.c @@ -23,7 +23,7 @@ * processors must be induced to flush the copies in their local TLBs, * but Hexagon thread-based virtual processors share the same MMU. */ -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -64,7 +64,7 @@ void flush_tlb_mm(struct mm_struct *mm) /* * Flush TLB state associated with a page of a vma. */ -void flush_tlb_page(struct vm_area_struct *vma, unsigned long vaddr) +void flush_tlb_page(struct mm_area *vma, unsigned long vaddr) { struct mm_struct *mm = vma->vm_mm; diff --git a/arch/loongarch/include/asm/hugetlb.h b/arch/loongarch/include/asm/hugetlb.h index 4dc4b3e04225..6b92e8c42e37 100644 --- a/arch/loongarch/include/asm/hugetlb.h +++ b/arch/loongarch/include/asm/hugetlb.h @@ -48,7 +48,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte; @@ -67,7 +67,7 @@ static inline int huge_pte_none(pte_t pte) } #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, +static inline int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) diff --git a/arch/loongarch/include/asm/page.h b/arch/loongarch/include/asm/page.h index 7368f12b7cb1..d58207b68c4b 100644 --- a/arch/loongarch/include/asm/page.h +++ b/arch/loongarch/include/asm/page.h @@ -36,9 +36,9 @@ extern void copy_page(void *to, void *from); extern unsigned long shm_align_mask; struct page; -struct vm_area_struct; +struct mm_area; void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h index da346733a1da..8f8764731345 100644 --- a/arch/loongarch/include/asm/pgtable.h +++ b/arch/loongarch/include/asm/pgtable.h @@ -63,7 +63,7 @@ #include struct mm_struct; -struct vm_area_struct; +struct mm_area; /* * ZERO_PAGE is a global shared page that is always zero; used @@ -438,11 +438,11 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) (pgprot_val(newprot) & ~_PAGE_CHG_MASK)); } -extern void __update_tlb(struct vm_area_struct *vma, +extern void __update_tlb(struct mm_area *vma, unsigned long address, pte_t *ptep); static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { for (;;) { @@ -459,7 +459,7 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_tlb_range(vma, addr, ptep, nr) \ update_mmu_cache_range(NULL, vma, addr, ptep, nr) -static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, +static inline void update_mmu_cache_pmd(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { __update_tlb(vma, address, (pte_t *)pmdp); diff --git a/arch/loongarch/include/asm/tlb.h b/arch/loongarch/include/asm/tlb.h index e071f5e9e858..38a860530433 100644 --- a/arch/loongarch/include/asm/tlb.h +++ b/arch/loongarch/include/asm/tlb.h @@ -139,7 +139,7 @@ static void tlb_flush(struct mmu_gather *tlb); static inline void tlb_flush(struct mmu_gather *tlb) { - struct vm_area_struct vma; + struct mm_area vma; vma.vm_mm = tlb->mm; vm_flags_init(&vma, 0); diff --git a/arch/loongarch/include/asm/tlbflush.h b/arch/loongarch/include/asm/tlbflush.h index a0785e590681..3cab349279d8 100644 --- a/arch/loongarch/include/asm/tlbflush.h +++ b/arch/loongarch/include/asm/tlbflush.h @@ -20,18 +20,18 @@ extern void local_flush_tlb_all(void); extern void local_flush_tlb_user(void); extern void local_flush_tlb_kernel(void); extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); -extern void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void local_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void local_flush_tlb_one(unsigned long vaddr); #ifdef CONFIG_SMP extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long, unsigned long); +extern void flush_tlb_range(struct mm_area *vma, unsigned long, unsigned long); extern void flush_tlb_kernel_range(unsigned long, unsigned long); -extern void flush_tlb_page(struct vm_area_struct *, unsigned long); +extern void flush_tlb_page(struct mm_area *, unsigned long); extern void flush_tlb_one(unsigned long vaddr); #else /* CONFIG_SMP */ diff --git a/arch/loongarch/kernel/smp.c b/arch/loongarch/kernel/smp.c index 4b24589c0b56..f3cf1633dcc4 100644 --- a/arch/loongarch/kernel/smp.c +++ b/arch/loongarch/kernel/smp.c @@ -703,7 +703,7 @@ void flush_tlb_mm(struct mm_struct *mm) } struct flush_tlb_data { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr1; unsigned long addr2; }; @@ -715,7 +715,7 @@ static void flush_tlb_range_ipi(void *info) local_flush_tlb_range(fd->vma, fd->addr1, fd->addr2); } -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -764,7 +764,7 @@ static void flush_tlb_page_ipi(void *info) local_flush_tlb_page(fd->vma, fd->addr1); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void flush_tlb_page(struct mm_area *vma, unsigned long page) { preempt_disable(); if ((atomic_read(&vma->vm_mm->mm_users) != 1) || (current->mm != vma->vm_mm)) { diff --git a/arch/loongarch/kernel/vdso.c b/arch/loongarch/kernel/vdso.c index 10cf1608c7b3..a33039241859 100644 --- a/arch/loongarch/kernel/vdso.c +++ b/arch/loongarch/kernel/vdso.c @@ -25,7 +25,7 @@ extern char vdso_start[], vdso_end[]; -static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) +static int vdso_mremap(const struct vm_special_mapping *sm, struct mm_area *new_vma) { current->mm->context.vdso = (void *)(new_vma->vm_start); @@ -79,7 +79,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) int ret; unsigned long size, data_addr, vdso_addr; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct loongarch_vdso_info *info = current->thread.vdso; if (mmap_write_lock_killable(mm)) diff --git a/arch/loongarch/mm/fault.c b/arch/loongarch/mm/fault.c index deefd9617d00..b61c282fe87b 100644 --- a/arch/loongarch/mm/fault.c +++ b/arch/loongarch/mm/fault.c @@ -179,7 +179,7 @@ static void __kprobes __do_page_fault(struct pt_regs *regs, unsigned int flags = FAULT_FLAG_DEFAULT; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; vm_fault_t fault; if (kprobe_page_fault(regs, current->thread.trap_nr)) diff --git a/arch/loongarch/mm/hugetlbpage.c b/arch/loongarch/mm/hugetlbpage.c index e4068906143b..44d9969da492 100644 --- a/arch/loongarch/mm/hugetlbpage.c +++ b/arch/loongarch/mm/hugetlbpage.c @@ -13,7 +13,7 @@ #include #include -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; diff --git a/arch/loongarch/mm/init.c b/arch/loongarch/mm/init.c index fdb7f73ad160..f238502ebed5 100644 --- a/arch/loongarch/mm/init.c +++ b/arch/loongarch/mm/init.c @@ -40,7 +40,7 @@ unsigned long empty_zero_page[PAGE_SIZE / sizeof(unsigned long)] __page_aligned_ EXPORT_SYMBOL(empty_zero_page); void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *vfrom, *vto; diff --git a/arch/loongarch/mm/mmap.c b/arch/loongarch/mm/mmap.c index 1df9e99582cc..438f85199a7b 100644 --- a/arch/loongarch/mm/mmap.c +++ b/arch/loongarch/mm/mmap.c @@ -23,7 +23,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp, unsigned long flags, enum mmap_allocation_direction dir) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr = addr0; int do_color_align; struct vm_unmapped_area_info info = {}; diff --git a/arch/loongarch/mm/tlb.c b/arch/loongarch/mm/tlb.c index 3b427b319db2..ec386b53110b 100644 --- a/arch/loongarch/mm/tlb.c +++ b/arch/loongarch/mm/tlb.c @@ -54,7 +54,7 @@ void local_flush_tlb_mm(struct mm_struct *mm) preempt_enable(); } -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -110,7 +110,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) local_irq_restore(flags); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { int cpu = smp_processor_id(); @@ -135,7 +135,7 @@ void local_flush_tlb_one(unsigned long page) invtlb_addr(INVTLB_ADDR_GTRUE_OR_ASID, 0, page); } -static void __update_hugetlb(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) +static void __update_hugetlb(struct mm_area *vma, unsigned long address, pte_t *ptep) { #ifdef CONFIG_HUGETLB_PAGE int idx; @@ -163,7 +163,7 @@ static void __update_hugetlb(struct vm_area_struct *vma, unsigned long address, #endif } -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t *ptep) { int idx; unsigned long flags; diff --git a/arch/m68k/include/asm/cacheflush_mm.h b/arch/m68k/include/asm/cacheflush_mm.h index 9a71b0148461..edf5f643578d 100644 --- a/arch/m68k/include/asm/cacheflush_mm.h +++ b/arch/m68k/include/asm/cacheflush_mm.h @@ -204,7 +204,7 @@ static inline void flush_cache_mm(struct mm_struct *mm) /* flush_cache_range/flush_cache_page must be macros to avoid a dependency on linux/mm.h, which includes this file... */ -static inline void flush_cache_range(struct vm_area_struct *vma, +static inline void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -212,7 +212,7 @@ static inline void flush_cache_range(struct vm_area_struct *vma, __flush_cache_030(); } -static inline void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn) +static inline void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn) { if (vma->vm_mm == current->mm) __flush_cache_030(); @@ -263,13 +263,13 @@ static inline void __flush_pages_to_ram(void *vaddr, unsigned int nr) #define flush_icache_pages(vma, page, nr) \ __flush_pages_to_ram(page_address(page), nr) -extern void flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +extern void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len); extern void flush_icache_range(unsigned long address, unsigned long endaddr); extern void flush_icache_user_range(unsigned long address, unsigned long endaddr); -static inline void copy_to_user_page(struct vm_area_struct *vma, +static inline void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, void *src, int len) { @@ -277,7 +277,7 @@ static inline void copy_to_user_page(struct vm_area_struct *vma, memcpy(dst, src, len); flush_icache_user_page(vma, page, vaddr, len); } -static inline void copy_from_user_page(struct vm_area_struct *vma, +static inline void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, void *src, int len) { diff --git a/arch/m68k/include/asm/pgtable_mm.h b/arch/m68k/include/asm/pgtable_mm.h index dbdf1c2b2f66..fadc4c0e77cc 100644 --- a/arch/m68k/include/asm/pgtable_mm.h +++ b/arch/m68k/include/asm/pgtable_mm.h @@ -137,7 +137,7 @@ extern void kernel_set_cachemode(void *addr, unsigned long size, int cmode); * they are updated on demand. */ static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { } diff --git a/arch/m68k/include/asm/tlbflush.h b/arch/m68k/include/asm/tlbflush.h index 6d42e2906887..925c19068569 100644 --- a/arch/m68k/include/asm/tlbflush.h +++ b/arch/m68k/include/asm/tlbflush.h @@ -81,13 +81,13 @@ static inline void flush_tlb_mm(struct mm_struct *mm) __flush_tlb(); } -static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +static inline void flush_tlb_page(struct mm_area *vma, unsigned long addr) { if (vma->vm_mm == current->active_mm) __flush_tlb_one(addr); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (vma->vm_mm == current->active_mm) @@ -161,7 +161,7 @@ static inline void flush_tlb_mm (struct mm_struct *mm) /* Flush a single TLB page. In this case, we're limited to flushing a single PMEG */ -static inline void flush_tlb_page (struct vm_area_struct *vma, +static inline void flush_tlb_page (struct mm_area *vma, unsigned long addr) { unsigned char oldctx; @@ -182,7 +182,7 @@ static inline void flush_tlb_page (struct vm_area_struct *vma, } /* Flush a range of pages from TLB. */ -static inline void flush_tlb_range (struct vm_area_struct *vma, +static inline void flush_tlb_range (struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -252,12 +252,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm) BUG(); } -static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +static inline void flush_tlb_page(struct mm_area *vma, unsigned long addr) { BUG(); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { BUG(); diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c index 1af5e6082467..cc534ec40930 100644 --- a/arch/m68k/kernel/sys_m68k.c +++ b/arch/m68k/kernel/sys_m68k.c @@ -391,7 +391,7 @@ sys_cacheflush (unsigned long addr, int scope, int cache, unsigned long len) mmap_read_lock(current->mm); } else { - struct vm_area_struct *vma; + struct mm_area *vma; /* Check for overflow. */ if (addr + len < addr) diff --git a/arch/m68k/mm/cache.c b/arch/m68k/mm/cache.c index dde978e66f14..2858f1113768 100644 --- a/arch/m68k/mm/cache.c +++ b/arch/m68k/mm/cache.c @@ -96,7 +96,7 @@ void flush_icache_range(unsigned long address, unsigned long endaddr) } EXPORT_SYMBOL(flush_icache_range); -void flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len) { if (CPU_IS_COLDFIRE) { diff --git a/arch/m68k/mm/fault.c b/arch/m68k/mm/fault.c index fa3c5f38d989..af2e500427fd 100644 --- a/arch/m68k/mm/fault.c +++ b/arch/m68k/mm/fault.c @@ -71,7 +71,7 @@ int do_page_fault(struct pt_regs *regs, unsigned long address, unsigned long error_code) { struct mm_struct *mm = current->mm; - struct vm_area_struct * vma; + struct mm_area * vma; vm_fault_t fault; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/microblaze/include/asm/cacheflush.h b/arch/microblaze/include/asm/cacheflush.h index ffa2cf3893e4..c509ae39fec5 100644 --- a/arch/microblaze/include/asm/cacheflush.h +++ b/arch/microblaze/include/asm/cacheflush.h @@ -85,7 +85,7 @@ static inline void flush_dcache_folio(struct folio *folio) #define flush_cache_page(vma, vmaddr, pfn) \ flush_dcache_range(pfn << PAGE_SHIFT, (pfn << PAGE_SHIFT) + PAGE_SIZE); -static inline void copy_to_user_page(struct vm_area_struct *vma, +static inline void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, void *src, int len) { diff --git a/arch/microblaze/include/asm/pgtable.h b/arch/microblaze/include/asm/pgtable.h index e4ea2ec3642f..659f30da0029 100644 --- a/arch/microblaze/include/asm/pgtable.h +++ b/arch/microblaze/include/asm/pgtable.h @@ -336,8 +336,8 @@ static inline void set_pte(pte_t *ptep, pte_t pte) } #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG -struct vm_area_struct; -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, +struct mm_area; +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { return (pte_update(ptep, _PAGE_ACCESSED, 0) & _PAGE_ACCESSED) != 0; diff --git a/arch/microblaze/include/asm/tlbflush.h b/arch/microblaze/include/asm/tlbflush.h index a31ae9d44083..88e958108295 100644 --- a/arch/microblaze/include/asm/tlbflush.h +++ b/arch/microblaze/include/asm/tlbflush.h @@ -24,10 +24,10 @@ static inline void local_flush_tlb_all(void) { __tlbia(); } static inline void local_flush_tlb_mm(struct mm_struct *mm) { __tlbia(); } -static inline void local_flush_tlb_page(struct vm_area_struct *vma, +static inline void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { __tlbie(vmaddr); } -static inline void local_flush_tlb_range(struct vm_area_struct *vma, +static inline void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { __tlbia(); } diff --git a/arch/microblaze/mm/fault.c b/arch/microblaze/mm/fault.c index d3c3c33b73a6..3a0d2463eb4a 100644 --- a/arch/microblaze/mm/fault.c +++ b/arch/microblaze/mm/fault.c @@ -86,7 +86,7 @@ void bad_page_fault(struct pt_regs *regs, unsigned long address, int sig) void do_page_fault(struct pt_regs *regs, unsigned long address, unsigned long error_code) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; int code = SEGV_MAPERR; int is_write = error_code & ESR_S; diff --git a/arch/mips/alchemy/common/setup.c b/arch/mips/alchemy/common/setup.c index a7a6d31a7a41..b10a34b4a2ce 100644 --- a/arch/mips/alchemy/common/setup.c +++ b/arch/mips/alchemy/common/setup.c @@ -94,7 +94,7 @@ phys_addr_t fixup_bigphys_addr(phys_addr_t phys_addr, phys_addr_t size) return phys_addr; } -int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long vaddr, +int io_remap_pfn_range(struct mm_area *vma, unsigned long vaddr, unsigned long pfn, unsigned long size, pgprot_t prot) { phys_addr_t phys_addr = fixup_bigphys_addr(pfn << PAGE_SHIFT, size); diff --git a/arch/mips/include/asm/cacheflush.h b/arch/mips/include/asm/cacheflush.h index 1f14132b3fc9..6a10565c2726 100644 --- a/arch/mips/include/asm/cacheflush.h +++ b/arch/mips/include/asm/cacheflush.h @@ -47,9 +47,9 @@ extern void (*flush_cache_all)(void); extern void (*__flush_cache_all)(void); extern void (*flush_cache_mm)(struct mm_struct *mm); #define flush_cache_dup_mm(mm) do { (void) (mm); } while (0) -extern void (*flush_cache_range)(struct vm_area_struct *vma, +extern void (*flush_cache_range)(struct mm_area *vma, unsigned long start, unsigned long end); -extern void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, unsigned long pfn); +extern void (*flush_cache_page)(struct mm_area *vma, unsigned long page, unsigned long pfn); extern void __flush_dcache_pages(struct page *page, unsigned int nr); #define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1 @@ -75,7 +75,7 @@ static inline void flush_dcache_page(struct page *page) #define ARCH_HAS_FLUSH_ANON_PAGE extern void __flush_anon_page(struct page *, unsigned long); -static inline void flush_anon_page(struct vm_area_struct *vma, +static inline void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { if (cpu_has_dc_aliases && PageAnon(page)) @@ -107,11 +107,11 @@ static inline void flush_cache_vunmap(unsigned long start, unsigned long end) __flush_cache_vunmap(); } -extern void copy_to_user_page(struct vm_area_struct *vma, +extern void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len); -extern void copy_from_user_page(struct vm_area_struct *vma, +extern void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len); diff --git a/arch/mips/include/asm/hugetlb.h b/arch/mips/include/asm/hugetlb.h index fbc71ddcf0f6..abe7683fc4c4 100644 --- a/arch/mips/include/asm/hugetlb.h +++ b/arch/mips/include/asm/hugetlb.h @@ -39,7 +39,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte; @@ -63,7 +63,7 @@ static inline int huge_pte_none(pte_t pte) } #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, +static inline int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h index bc3e3484c1bf..5be4423baee8 100644 --- a/arch/mips/include/asm/page.h +++ b/arch/mips/include/asm/page.h @@ -91,9 +91,9 @@ static inline void clear_user_page(void *addr, unsigned long vaddr, flush_data_cache_page((unsigned long)addr); } -struct vm_area_struct; +struct mm_area; extern void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index c29a551eb0ca..ab28b3855dfc 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -23,7 +23,7 @@ #include struct mm_struct; -struct vm_area_struct; +struct mm_area; #define PAGE_SHARED vm_get_page_prot(VM_READ|VM_WRITE|VM_SHARED) @@ -478,7 +478,7 @@ static inline pgprot_t pgprot_writecombine(pgprot_t _prot) return __pgprot(prot); } -static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma, +static inline void flush_tlb_fix_spurious_fault(struct mm_area *vma, unsigned long address, pte_t *ptep) { @@ -491,7 +491,7 @@ static inline int pte_same(pte_t pte_a, pte_t pte_b) } #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -static inline int ptep_set_access_flags(struct vm_area_struct *vma, +static inline int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { @@ -575,11 +575,11 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte) } #endif -extern void __update_tlb(struct vm_area_struct *vma, unsigned long address, +extern void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte); static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { for (;;) { @@ -597,7 +597,7 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_tlb_range(vma, address, ptep, nr) \ update_mmu_cache_range(NULL, vma, address, ptep, nr) -static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, +static inline void update_mmu_cache_pmd(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pte_t pte = *(pte_t *)pmdp; @@ -610,7 +610,7 @@ static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, */ #ifdef CONFIG_MIPS_FIXUP_BIGPHYS_ADDR phys_addr_t fixup_bigphys_addr(phys_addr_t addr, phys_addr_t size); -int io_remap_pfn_range(struct vm_area_struct *vma, unsigned long vaddr, +int io_remap_pfn_range(struct mm_area *vma, unsigned long vaddr, unsigned long pfn, unsigned long size, pgprot_t prot); #define io_remap_pfn_range io_remap_pfn_range #else diff --git a/arch/mips/include/asm/tlbflush.h b/arch/mips/include/asm/tlbflush.h index 9789e7a32def..26d11d18b2b4 100644 --- a/arch/mips/include/asm/tlbflush.h +++ b/arch/mips/include/asm/tlbflush.h @@ -14,11 +14,11 @@ * - flush_tlb_kernel_range(start, end) flushes a range of kernel pages */ extern void local_flush_tlb_all(void); -extern void local_flush_tlb_range(struct vm_area_struct *vma, +extern void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); -extern void local_flush_tlb_page(struct vm_area_struct *vma, +extern void local_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void local_flush_tlb_one(unsigned long vaddr); @@ -28,10 +28,10 @@ extern void local_flush_tlb_one(unsigned long vaddr); extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long, +extern void flush_tlb_range(struct mm_area *vma, unsigned long, unsigned long); extern void flush_tlb_kernel_range(unsigned long, unsigned long); -extern void flush_tlb_page(struct vm_area_struct *, unsigned long); +extern void flush_tlb_page(struct mm_area *, unsigned long); extern void flush_tlb_one(unsigned long vaddr); #else /* CONFIG_SMP */ diff --git a/arch/mips/kernel/smp.c b/arch/mips/kernel/smp.c index 39e193cad2b9..6f006e89d2f3 100644 --- a/arch/mips/kernel/smp.c +++ b/arch/mips/kernel/smp.c @@ -566,7 +566,7 @@ void flush_tlb_mm(struct mm_struct *mm) } struct flush_tlb_data { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr1; unsigned long addr2; }; @@ -578,7 +578,7 @@ static void flush_tlb_range_ipi(void *info) local_flush_tlb_range(fd->vma, fd->addr1, fd->addr2); } -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; unsigned long addr; @@ -652,7 +652,7 @@ static void flush_tlb_page_ipi(void *info) local_flush_tlb_page(fd->vma, fd->addr1); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void flush_tlb_page(struct mm_area *vma, unsigned long page) { u32 old_mmid; diff --git a/arch/mips/kernel/vdso.c b/arch/mips/kernel/vdso.c index de096777172f..4ab46161d876 100644 --- a/arch/mips/kernel/vdso.c +++ b/arch/mips/kernel/vdso.c @@ -79,7 +79,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) struct mips_vdso_image *image = current->thread.abi->vdso; struct mm_struct *mm = current->mm; unsigned long gic_size, size, base, data_addr, vdso_addr, gic_pfn, gic_base; - struct vm_area_struct *vma; + struct mm_area *vma; int ret; if (mmap_write_lock_killable(mm)) diff --git a/arch/mips/mm/c-octeon.c b/arch/mips/mm/c-octeon.c index b7393b61cfa7..ba064d76dd1b 100644 --- a/arch/mips/mm/c-octeon.c +++ b/arch/mips/mm/c-octeon.c @@ -60,7 +60,7 @@ static void local_octeon_flush_icache_range(unsigned long start, * * @vma: VMA to flush or NULL to flush all icaches. */ -static void octeon_flush_icache_all_cores(struct vm_area_struct *vma) +static void octeon_flush_icache_all_cores(struct mm_area *vma) { extern void octeon_send_ipi_single(int cpu, unsigned int action); #ifdef CONFIG_SMP @@ -136,7 +136,7 @@ static void octeon_flush_icache_range(unsigned long start, unsigned long end) * @start: beginning address for flush * @end: ending address for flush */ -static void octeon_flush_cache_range(struct vm_area_struct *vma, +static void octeon_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (vma->vm_flags & VM_EXEC) @@ -151,7 +151,7 @@ static void octeon_flush_cache_range(struct vm_area_struct *vma, * @page: Page to flush * @pfn: Page frame number */ -static void octeon_flush_cache_page(struct vm_area_struct *vma, +static void octeon_flush_cache_page(struct mm_area *vma, unsigned long page, unsigned long pfn) { if (vma->vm_flags & VM_EXEC) diff --git a/arch/mips/mm/c-r3k.c b/arch/mips/mm/c-r3k.c index 5869df848fab..c97e789bb9cb 100644 --- a/arch/mips/mm/c-r3k.c +++ b/arch/mips/mm/c-r3k.c @@ -228,12 +228,12 @@ static void r3k_flush_cache_mm(struct mm_struct *mm) { } -static void r3k_flush_cache_range(struct vm_area_struct *vma, +static void r3k_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { } -static void r3k_flush_cache_page(struct vm_area_struct *vma, +static void r3k_flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn) { unsigned long kaddr = KSEG0ADDR(pfn << PAGE_SHIFT); diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index 10413b6f6662..d2e65e6548e4 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c @@ -469,7 +469,7 @@ static void r4k__flush_cache_vunmap(void) */ static inline void local_r4k_flush_cache_range(void * args) { - struct vm_area_struct *vma = args; + struct mm_area *vma = args; int exec = vma->vm_flags & VM_EXEC; if (!has_valid_asid(vma->vm_mm, R4K_INDEX)) @@ -487,7 +487,7 @@ static inline void local_r4k_flush_cache_range(void * args) r4k_blast_icache(); } -static void r4k_flush_cache_range(struct vm_area_struct *vma, +static void r4k_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { int exec = vma->vm_flags & VM_EXEC; @@ -529,7 +529,7 @@ static void r4k_flush_cache_mm(struct mm_struct *mm) } struct flush_cache_page_args { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr; unsigned long pfn; }; @@ -537,7 +537,7 @@ struct flush_cache_page_args { static inline void local_r4k_flush_cache_page(void *args) { struct flush_cache_page_args *fcp_args = args; - struct vm_area_struct *vma = fcp_args->vma; + struct mm_area *vma = fcp_args->vma; unsigned long addr = fcp_args->addr; struct page *page = pfn_to_page(fcp_args->pfn); int exec = vma->vm_flags & VM_EXEC; @@ -605,7 +605,7 @@ static inline void local_r4k_flush_cache_page(void *args) } } -static void r4k_flush_cache_page(struct vm_area_struct *vma, +static void r4k_flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn) { struct flush_cache_page_args args; diff --git a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c index bf9a37c60e9f..10eba2a62402 100644 --- a/arch/mips/mm/cache.c +++ b/arch/mips/mm/cache.c @@ -30,9 +30,9 @@ void (*flush_cache_all)(void); void (*__flush_cache_all)(void); EXPORT_SYMBOL_GPL(__flush_cache_all); void (*flush_cache_mm)(struct mm_struct *mm); -void (*flush_cache_range)(struct vm_area_struct *vma, unsigned long start, +void (*flush_cache_range)(struct mm_area *vma, unsigned long start, unsigned long end); -void (*flush_cache_page)(struct vm_area_struct *vma, unsigned long page, +void (*flush_cache_page)(struct mm_area *vma, unsigned long page, unsigned long pfn); void (*flush_icache_range)(unsigned long start, unsigned long end); EXPORT_SYMBOL_GPL(flush_icache_range); diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c index 37fedeaca2e9..a18c0a590a1e 100644 --- a/arch/mips/mm/fault.c +++ b/arch/mips/mm/fault.c @@ -39,7 +39,7 @@ int show_unhandled_signals = 1; static void __do_page_fault(struct pt_regs *regs, unsigned long write, unsigned long address) { - struct vm_area_struct * vma = NULL; + struct mm_area * vma = NULL; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; const int field = sizeof(unsigned long) * 2; diff --git a/arch/mips/mm/hugetlbpage.c b/arch/mips/mm/hugetlbpage.c index 0b9e15555b59..a1b62b2ce516 100644 --- a/arch/mips/mm/hugetlbpage.c +++ b/arch/mips/mm/hugetlbpage.c @@ -21,7 +21,7 @@ #include #include -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; diff --git a/arch/mips/mm/init.c b/arch/mips/mm/init.c index a673d3d68254..69ae87f80ad8 100644 --- a/arch/mips/mm/init.c +++ b/arch/mips/mm/init.c @@ -161,7 +161,7 @@ void kunmap_coherent(void) } void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); void *vfrom, *vto; @@ -185,7 +185,7 @@ void copy_user_highpage(struct page *to, struct page *from, smp_wmb(); } -void copy_to_user_page(struct vm_area_struct *vma, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -205,7 +205,7 @@ void copy_to_user_page(struct vm_area_struct *vma, flush_cache_page(vma, vaddr, page_to_pfn(page)); } -void copy_from_user_page(struct vm_area_struct *vma, +void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c index 5d2a1225785b..5451673f26d2 100644 --- a/arch/mips/mm/mmap.c +++ b/arch/mips/mm/mmap.c @@ -31,7 +31,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp, unsigned long flags, enum mmap_allocation_direction dir) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr = addr0; int do_color_align; struct vm_unmapped_area_info info = {}; diff --git a/arch/mips/mm/tlb-r3k.c b/arch/mips/mm/tlb-r3k.c index 173f7b36033b..b43ba28e3a6a 100644 --- a/arch/mips/mm/tlb-r3k.c +++ b/arch/mips/mm/tlb-r3k.c @@ -64,7 +64,7 @@ void local_flush_tlb_all(void) local_irq_restore(flags); } -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned long asid_mask = cpu_asid_mask(¤t_cpu_data); @@ -144,7 +144,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) local_irq_restore(flags); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { unsigned long asid_mask = cpu_asid_mask(¤t_cpu_data); int cpu = smp_processor_id(); @@ -176,7 +176,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) } } -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte) { unsigned long asid_mask = cpu_asid_mask(¤t_cpu_data); unsigned long flags; diff --git a/arch/mips/mm/tlb-r4k.c b/arch/mips/mm/tlb-r4k.c index 76f3b9c0a9f0..391bc8414146 100644 --- a/arch/mips/mm/tlb-r4k.c +++ b/arch/mips/mm/tlb-r4k.c @@ -45,7 +45,7 @@ static inline void flush_micro_tlb(void) } } -static inline void flush_micro_tlb_vm(struct vm_area_struct *vma) +static inline void flush_micro_tlb_vm(struct mm_area *vma) { if (vma->vm_flags & VM_EXEC) flush_micro_tlb(); @@ -103,7 +103,7 @@ void local_flush_tlb_all(void) } EXPORT_SYMBOL(local_flush_tlb_all); -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -208,7 +208,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) local_irq_restore(flags); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { int cpu = smp_processor_id(); @@ -290,7 +290,7 @@ void local_flush_tlb_one(unsigned long page) * updates the TLB with the new pte(s), and another which also checks * for the R4k "end of page" hardware bug and does the needy. */ -void __update_tlb(struct vm_area_struct * vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area * vma, unsigned long address, pte_t pte) { unsigned long flags; pgd_t *pgdp; diff --git a/arch/mips/vdso/genvdso.c b/arch/mips/vdso/genvdso.c index d47412ea6e67..4fdccdfe055d 100644 --- a/arch/mips/vdso/genvdso.c +++ b/arch/mips/vdso/genvdso.c @@ -261,7 +261,7 @@ int main(int argc, char **argv) fprintf(out_file, "#include \n"); fprintf(out_file, "static int vdso_mremap(\n"); fprintf(out_file, " const struct vm_special_mapping *sm,\n"); - fprintf(out_file, " struct vm_area_struct *new_vma)\n"); + fprintf(out_file, " struct mm_area *new_vma)\n"); fprintf(out_file, "{\n"); fprintf(out_file, " current->mm->context.vdso =\n"); fprintf(out_file, " (void *)(new_vma->vm_start);\n"); diff --git a/arch/nios2/include/asm/cacheflush.h b/arch/nios2/include/asm/cacheflush.h index 81484a776b33..c87da07c790b 100644 --- a/arch/nios2/include/asm/cacheflush.h +++ b/arch/nios2/include/asm/cacheflush.h @@ -23,9 +23,9 @@ struct mm_struct; extern void flush_cache_all(void); extern void flush_cache_mm(struct mm_struct *mm); extern void flush_cache_dup_mm(struct mm_struct *mm); -extern void flush_cache_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, +extern void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn); #define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1 void flush_dcache_page(struct page *page); @@ -33,7 +33,7 @@ void flush_dcache_folio(struct folio *folio); #define flush_dcache_folio flush_dcache_folio extern void flush_icache_range(unsigned long start, unsigned long end); -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr); #define flush_icache_pages flush_icache_pages @@ -41,10 +41,10 @@ void flush_icache_pages(struct vm_area_struct *vma, struct page *page, #define flush_cache_vmap_early(start, end) do { } while (0) #define flush_cache_vunmap(start, end) flush_dcache_range(start, end) -extern void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +extern void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len); -extern void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +extern void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len); diff --git a/arch/nios2/include/asm/pgtable.h b/arch/nios2/include/asm/pgtable.h index eab87c6beacb..558eda85615e 100644 --- a/arch/nios2/include/asm/pgtable.h +++ b/arch/nios2/include/asm/pgtable.h @@ -285,7 +285,7 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte) extern void __init paging_init(void); extern void __init mmu_init(void); -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr); #define update_mmu_cache(vma, addr, ptep) \ diff --git a/arch/nios2/include/asm/tlbflush.h b/arch/nios2/include/asm/tlbflush.h index 362d6da09d02..913f409d9777 100644 --- a/arch/nios2/include/asm/tlbflush.h +++ b/arch/nios2/include/asm/tlbflush.h @@ -23,11 +23,11 @@ struct mm_struct; */ extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long address) { flush_tlb_range(vma, address, address + PAGE_SIZE); @@ -38,7 +38,7 @@ static inline void flush_tlb_kernel_page(unsigned long address) flush_tlb_kernel_range(address, address + PAGE_SIZE); } -extern void reload_tlb_page(struct vm_area_struct *vma, unsigned long addr, +extern void reload_tlb_page(struct mm_area *vma, unsigned long addr, pte_t pte); #endif /* _ASM_NIOS2_TLBFLUSH_H */ diff --git a/arch/nios2/kernel/sys_nios2.c b/arch/nios2/kernel/sys_nios2.c index b1ca85699952..7c275dff5822 100644 --- a/arch/nios2/kernel/sys_nios2.c +++ b/arch/nios2/kernel/sys_nios2.c @@ -21,7 +21,7 @@ asmlinkage int sys_cacheflush(unsigned long addr, unsigned long len, unsigned int op) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; if (len == 0) diff --git a/arch/nios2/mm/cacheflush.c b/arch/nios2/mm/cacheflush.c index 0ee9c5f02e08..357ea747ea3d 100644 --- a/arch/nios2/mm/cacheflush.c +++ b/arch/nios2/mm/cacheflush.c @@ -74,7 +74,7 @@ static void __flush_icache(unsigned long start, unsigned long end) static void flush_aliases(struct address_space *mapping, struct folio *folio) { struct mm_struct *mm = current->active_mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long flags; pgoff_t pgoff; unsigned long nr = folio_nr_pages(folio); @@ -131,7 +131,7 @@ void invalidate_dcache_range(unsigned long start, unsigned long end) } EXPORT_SYMBOL(invalidate_dcache_range); -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { __flush_dcache(start, end); @@ -139,7 +139,7 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, __flush_icache(start, end); } -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr) { unsigned long start = (unsigned long) page_address(page); @@ -149,7 +149,7 @@ void flush_icache_pages(struct vm_area_struct *vma, struct page *page, __flush_icache(start, end); } -void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, +void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn) { unsigned long start = vmaddr; @@ -206,7 +206,7 @@ void flush_dcache_page(struct page *page) } EXPORT_SYMBOL(flush_dcache_page); -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { pte_t pte = *ptep; @@ -258,7 +258,7 @@ void clear_user_page(void *addr, unsigned long vaddr, struct page *page) __flush_icache((unsigned long)addr, (unsigned long)addr + PAGE_SIZE); } -void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len) { @@ -269,7 +269,7 @@ void copy_from_user_page(struct vm_area_struct *vma, struct page *page, __flush_icache((unsigned long)src, (unsigned long)src + len); } -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len) { diff --git a/arch/nios2/mm/fault.c b/arch/nios2/mm/fault.c index e3fa9c15181d..7901f945202e 100644 --- a/arch/nios2/mm/fault.c +++ b/arch/nios2/mm/fault.c @@ -43,7 +43,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long cause, unsigned long address) { - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; int code = SEGV_MAPERR; diff --git a/arch/nios2/mm/init.c b/arch/nios2/mm/init.c index 94efa3de3933..8f5a08ff465d 100644 --- a/arch/nios2/mm/init.c +++ b/arch/nios2/mm/init.c @@ -96,7 +96,7 @@ arch_initcall(alloc_kuser_page); int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; mmap_write_lock(mm); @@ -110,7 +110,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) return IS_ERR(vma) ? PTR_ERR(vma) : 0; } -const char *arch_vma_name(struct vm_area_struct *vma) +const char *arch_vma_name(struct mm_area *vma) { return (vma->vm_start == KUSER_BASE) ? "[kuser]" : NULL; } diff --git a/arch/nios2/mm/tlb.c b/arch/nios2/mm/tlb.c index f90ac35f05f3..749b4fd052cf 100644 --- a/arch/nios2/mm/tlb.c +++ b/arch/nios2/mm/tlb.c @@ -99,7 +99,7 @@ static void reload_tlb_one_pid(unsigned long addr, unsigned long mmu_pid, pte_t replace_tlb_one_pid(addr, mmu_pid, pte_val(pte)); } -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned long mmu_pid = get_pid_from_context(&vma->vm_mm->context); @@ -110,7 +110,7 @@ void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, } } -void reload_tlb_page(struct vm_area_struct *vma, unsigned long addr, pte_t pte) +void reload_tlb_page(struct mm_area *vma, unsigned long addr, pte_t pte) { unsigned long mmu_pid = get_pid_from_context(&vma->vm_mm->context); diff --git a/arch/openrisc/include/asm/pgtable.h b/arch/openrisc/include/asm/pgtable.h index 60c6ce7ff2dc..0acc625d0607 100644 --- a/arch/openrisc/include/asm/pgtable.h +++ b/arch/openrisc/include/asm/pgtable.h @@ -370,18 +370,18 @@ static inline unsigned long pmd_page_vaddr(pmd_t pmd) extern pgd_t swapper_pg_dir[PTRS_PER_PGD]; /* defined in head.S */ -struct vm_area_struct; +struct mm_area; -static inline void update_tlb(struct vm_area_struct *vma, +static inline void update_tlb(struct mm_area *vma, unsigned long address, pte_t *pte) { } -extern void update_cache(struct vm_area_struct *vma, +extern void update_cache(struct mm_area *vma, unsigned long address, pte_t *pte); static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { update_tlb(vma, address, ptep); diff --git a/arch/openrisc/include/asm/tlbflush.h b/arch/openrisc/include/asm/tlbflush.h index dbf030365ab4..4773da3c2d29 100644 --- a/arch/openrisc/include/asm/tlbflush.h +++ b/arch/openrisc/include/asm/tlbflush.h @@ -29,9 +29,9 @@ */ extern void local_flush_tlb_all(void); extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_page(struct vm_area_struct *vma, +extern void local_flush_tlb_page(struct mm_area *vma, unsigned long addr); -extern void local_flush_tlb_range(struct vm_area_struct *vma, +extern void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); @@ -43,8 +43,8 @@ extern void local_flush_tlb_range(struct vm_area_struct *vma, #else extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_page(struct mm_area *vma, unsigned long addr); +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #endif diff --git a/arch/openrisc/kernel/smp.c b/arch/openrisc/kernel/smp.c index 86da4bc5ee0b..1eb34b914609 100644 --- a/arch/openrisc/kernel/smp.c +++ b/arch/openrisc/kernel/smp.c @@ -300,12 +300,12 @@ void flush_tlb_mm(struct mm_struct *mm) smp_flush_tlb_mm(mm_cpumask(mm), mm); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +void flush_tlb_page(struct mm_area *vma, unsigned long uaddr) { smp_flush_tlb_range(mm_cpumask(vma->vm_mm), uaddr, uaddr + PAGE_SIZE); } -void flush_tlb_range(struct vm_area_struct *vma, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { const struct cpumask *cmask = vma ? mm_cpumask(vma->vm_mm) diff --git a/arch/openrisc/mm/cache.c b/arch/openrisc/mm/cache.c index 7bdd07cfca60..64649f65f943 100644 --- a/arch/openrisc/mm/cache.c +++ b/arch/openrisc/mm/cache.c @@ -78,7 +78,7 @@ void local_icache_range_inv(unsigned long start, unsigned long end) cache_loop(start, end, SPR_ICBIR, SPR_UPR_ICP); } -void update_cache(struct vm_area_struct *vma, unsigned long address, +void update_cache(struct mm_area *vma, unsigned long address, pte_t *pte) { unsigned long pfn = pte_val(*pte) >> PAGE_SHIFT; diff --git a/arch/openrisc/mm/fault.c b/arch/openrisc/mm/fault.c index 29e232d78d82..800bceca3bcd 100644 --- a/arch/openrisc/mm/fault.c +++ b/arch/openrisc/mm/fault.c @@ -48,7 +48,7 @@ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long address, { struct task_struct *tsk; struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; int si_code; vm_fault_t fault; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/openrisc/mm/tlb.c b/arch/openrisc/mm/tlb.c index 3115f2e4f864..594a5adb8646 100644 --- a/arch/openrisc/mm/tlb.c +++ b/arch/openrisc/mm/tlb.c @@ -80,7 +80,7 @@ void local_flush_tlb_all(void) #define flush_itlb_page_no_eir(addr) \ mtspr_off(SPR_ITLBMR_BASE(0), ITLB_OFFSET(addr), 0); -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +void local_flush_tlb_page(struct mm_area *vma, unsigned long addr) { if (have_dtlbeir) flush_dtlb_page_eir(addr); @@ -93,7 +93,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) flush_itlb_page_no_eir(addr); } -void local_flush_tlb_range(struct vm_area_struct *vma, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { int addr; diff --git a/arch/parisc/include/asm/cacheflush.h b/arch/parisc/include/asm/cacheflush.h index 8394718870e1..fe13de0d9a12 100644 --- a/arch/parisc/include/asm/cacheflush.h +++ b/arch/parisc/include/asm/cacheflush.h @@ -58,7 +58,7 @@ static inline void flush_dcache_page(struct page *page) #define flush_dcache_mmap_unlock_irqrestore(mapping, flags) \ xa_unlock_irqrestore(&mapping->i_pages, flags) -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr); #define flush_icache_pages flush_icache_pages @@ -67,17 +67,17 @@ void flush_icache_pages(struct vm_area_struct *vma, struct page *page, flush_kernel_icache_range_asm(s,e); \ } while (0) -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len); -void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len); -void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, +void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn); -void flush_cache_range(struct vm_area_struct *vma, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); #define ARCH_HAS_FLUSH_ANON_PAGE -void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr); +void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr); #define ARCH_HAS_FLUSH_ON_KUNMAP void kunmap_flush_on_unmap(const void *addr); diff --git a/arch/parisc/include/asm/hugetlb.h b/arch/parisc/include/asm/hugetlb.h index 21e9ace17739..f19c029f612b 100644 --- a/arch/parisc/include/asm/hugetlb.h +++ b/arch/parisc/include/asm/hugetlb.h @@ -13,7 +13,7 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep, unsigned long sz); #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { return *ptep; @@ -24,7 +24,7 @@ void huge_ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty); diff --git a/arch/parisc/include/asm/page.h b/arch/parisc/include/asm/page.h index 7fd447092630..427bf90b3f98 100644 --- a/arch/parisc/include/asm/page.h +++ b/arch/parisc/include/asm/page.h @@ -17,13 +17,13 @@ #define copy_page(to, from) copy_page_asm((void *)(to), (void *)(from)) struct page; -struct vm_area_struct; +struct mm_area; void clear_page_asm(void *page); void copy_page_asm(void *to, void *from); #define clear_user_page(vto, vaddr, page) clear_page_asm(vto) void copy_user_highpage(struct page *to, struct page *from, unsigned long vaddr, - struct vm_area_struct *vma); + struct mm_area *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE /* diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h index babf65751e81..4b59b5fbd85c 100644 --- a/arch/parisc/include/asm/pgtable.h +++ b/arch/parisc/include/asm/pgtable.h @@ -454,7 +454,7 @@ static inline pte_t ptep_get(pte_t *ptep) } #define ptep_get ptep_get -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte; @@ -466,8 +466,8 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned return 1; } -int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep); -pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep); +int ptep_clear_flush_young(struct mm_area *vma, unsigned long addr, pte_t *ptep); +pte_t ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep); struct mm_struct; static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep) diff --git a/arch/parisc/include/asm/tlbflush.h b/arch/parisc/include/asm/tlbflush.h index 5ffd7c17f593..3683645fd41d 100644 --- a/arch/parisc/include/asm/tlbflush.h +++ b/arch/parisc/include/asm/tlbflush.h @@ -61,7 +61,7 @@ static inline void flush_tlb_mm(struct mm_struct *mm) #endif } -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long addr) { purge_tlb_entries(vma->vm_mm, addr); diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index db531e58d70e..752562b78d90 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c @@ -328,7 +328,7 @@ void disable_sr_hashing(void) } static inline void -__flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, +__flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long physaddr) { if (!static_branch_likely(&parisc_has_cache)) @@ -390,7 +390,7 @@ void kunmap_flush_on_unmap(const void *addr) } EXPORT_SYMBOL(kunmap_flush_on_unmap); -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr) { void *kaddr = page_address(page); @@ -473,7 +473,7 @@ static inline unsigned long get_upa(struct mm_struct *mm, unsigned long addr) void flush_dcache_folio(struct folio *folio) { struct address_space *mapping = folio_flush_mapping(folio); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr, old_addr = 0; void *kaddr; unsigned long count = 0; @@ -620,7 +620,7 @@ extern void purge_kernel_dcache_page_asm(unsigned long); extern void clear_user_page_asm(void *, unsigned long); extern void copy_user_page_asm(void *, void *, unsigned long); -static void flush_cache_page_if_present(struct vm_area_struct *vma, +static void flush_cache_page_if_present(struct mm_area *vma, unsigned long vmaddr) { #if CONFIG_FLUSH_PAGE_ACCESSED @@ -645,7 +645,7 @@ static void flush_cache_page_if_present(struct vm_area_struct *vma, } void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { void *kto, *kfrom; @@ -657,7 +657,7 @@ void copy_user_highpage(struct page *to, struct page *from, kunmap_local(kfrom); } -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len) { __flush_cache_page(vma, user_vaddr, PFN_PHYS(page_to_pfn(page))); @@ -665,7 +665,7 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page, flush_kernel_dcache_page_addr(PTR_PAGE_ALIGN_DOWN(dst)); } -void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long user_vaddr, void *dst, void *src, int len) { __flush_cache_page(vma, user_vaddr, PFN_PHYS(page_to_pfn(page))); @@ -702,7 +702,7 @@ int __flush_tlb_range(unsigned long sid, unsigned long start, return 0; } -static void flush_cache_pages(struct vm_area_struct *vma, unsigned long start, unsigned long end) +static void flush_cache_pages(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned long addr; @@ -712,7 +712,7 @@ static void flush_cache_pages(struct vm_area_struct *vma, unsigned long start, u static inline unsigned long mm_total_size(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long usize = 0; VMA_ITERATOR(vmi, mm, 0); @@ -726,7 +726,7 @@ static inline unsigned long mm_total_size(struct mm_struct *mm) void flush_cache_mm(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); /* @@ -751,7 +751,7 @@ void flush_cache_mm(struct mm_struct *mm) flush_cache_pages(vma, vma->vm_start, vma->vm_end); } -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (!parisc_requires_coherency() || end - start >= parisc_cache_flush_threshold) { @@ -768,12 +768,12 @@ void flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned flush_cache_pages(vma, start & PAGE_MASK, end); } -void flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long pfn) +void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn) { __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn)); } -void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr) +void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { if (!PageAnon(page)) return; @@ -781,7 +781,7 @@ void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned lon __flush_cache_page(vma, vmaddr, PFN_PHYS(page_to_pfn(page))); } -int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr, +int ptep_clear_flush_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte = ptep_get(ptep); @@ -801,7 +801,7 @@ int ptep_clear_flush_young(struct vm_area_struct *vma, unsigned long addr, * can cause random cache corruption. Thus, we must flush the cache * as well as the TLB when clearing a PTE that's valid. */ -pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long addr, +pte_t ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { struct mm_struct *mm = (vma)->vm_mm; diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c index f852fe274abe..15fd6e8979d7 100644 --- a/arch/parisc/kernel/sys_parisc.c +++ b/arch/parisc/kernel/sys_parisc.c @@ -101,7 +101,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp, unsigned long flags, enum mmap_allocation_direction dir) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; unsigned long filp_pgoff; int do_color_align; struct vm_unmapped_area_info info = { diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c index b9b3d527bc90..6c26d9c5d7f9 100644 --- a/arch/parisc/kernel/traps.c +++ b/arch/parisc/kernel/traps.c @@ -711,7 +711,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs) */ if (user_mode(regs)) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(current->mm); vma = find_vma(current->mm,regs->iaoq[0]); diff --git a/arch/parisc/kernel/vdso.c b/arch/parisc/kernel/vdso.c index c5cbfce7a84c..f7075a8b3bd1 100644 --- a/arch/parisc/kernel/vdso.c +++ b/arch/parisc/kernel/vdso.c @@ -27,7 +27,7 @@ extern char vdso32_start, vdso32_end; extern char vdso64_start, vdso64_end; static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *vma) + struct mm_area *vma) { current->mm->context.vdso_base = vma->vm_start; return 0; @@ -56,7 +56,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, unsigned long vdso_text_start, vdso_text_len, map_base; struct vm_special_mapping *vdso_mapping; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int rc; if (mmap_write_lock_killable(mm)) diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c index c39de84e98b0..c1fbc50fc840 100644 --- a/arch/parisc/mm/fault.c +++ b/arch/parisc/mm/fault.c @@ -241,7 +241,7 @@ const char *trap_name(unsigned long code) static inline void show_signal_msg(struct pt_regs *regs, unsigned long code, unsigned long address, struct task_struct *tsk, - struct vm_area_struct *vma) + struct mm_area *vma) { if (!unhandled_signal(tsk, SIGSEGV)) return; @@ -267,7 +267,7 @@ show_signal_msg(struct pt_regs *regs, unsigned long code, void do_page_fault(struct pt_regs *regs, unsigned long code, unsigned long address) { - struct vm_area_struct *vma, *prev_vma; + struct mm_area *vma, *prev_vma; struct task_struct *tsk; struct mm_struct *mm; unsigned long acc_type; @@ -454,7 +454,7 @@ handle_nadtlb_fault(struct pt_regs *regs) { unsigned long insn = regs->iir; int breg, treg, xreg, val = 0; - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk; struct mm_struct *mm; unsigned long address; diff --git a/arch/parisc/mm/hugetlbpage.c b/arch/parisc/mm/hugetlbpage.c index a94fe546d434..31fa175e4b67 100644 --- a/arch/parisc/mm/hugetlbpage.c +++ b/arch/parisc/mm/hugetlbpage.c @@ -23,7 +23,7 @@ -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; @@ -146,7 +146,7 @@ void huge_ptep_set_wrprotect(struct mm_struct *mm, __set_huge_pte_at(mm, addr, ptep, pte_wrprotect(old_pte)); } -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { diff --git a/arch/powerpc/include/asm/book3s/32/pgtable.h b/arch/powerpc/include/asm/book3s/32/pgtable.h index 42c3af90d1f0..87c6abe37935 100644 --- a/arch/powerpc/include/asm/book3s/32/pgtable.h +++ b/arch/powerpc/include/asm/book3s/32/pgtable.h @@ -325,7 +325,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_update(mm, addr, ptep, _PAGE_WRITE, 0, 0); } -static inline void __ptep_set_access_flags(struct vm_area_struct *vma, +static inline void __ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) diff --git a/arch/powerpc/include/asm/book3s/32/tlbflush.h b/arch/powerpc/include/asm/book3s/32/tlbflush.h index e43534da5207..dd7630bfcab8 100644 --- a/arch/powerpc/include/asm/book3s/32/tlbflush.h +++ b/arch/powerpc/include/asm/book3s/32/tlbflush.h @@ -9,7 +9,7 @@ * TLB flushing for "classic" hash-MMU 32-bit CPUs, 6xx, 7xx, 7xxx */ void hash__flush_tlb_mm(struct mm_struct *mm); -void hash__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +void hash__flush_tlb_page(struct mm_area *vma, unsigned long vmaddr); void hash__flush_range(struct mm_struct *mm, unsigned long start, unsigned long end); #ifdef CONFIG_SMP @@ -52,7 +52,7 @@ static inline void flush_tlb_mm(struct mm_struct *mm) _tlbia(); } -static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +static inline void flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { if (mmu_has_feature(MMU_FTR_HPTE_TABLE)) hash__flush_tlb_page(vma, vmaddr); @@ -61,7 +61,7 @@ static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmad } static inline void -flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { flush_range(vma->vm_mm, start, end); } @@ -71,7 +71,7 @@ static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end flush_range(&init_mm, start, end); } -static inline void local_flush_tlb_page(struct vm_area_struct *vma, +static inline void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { flush_tlb_page(vma, vmaddr); diff --git a/arch/powerpc/include/asm/book3s/64/hash-4k.h b/arch/powerpc/include/asm/book3s/64/hash-4k.h index aa90a048f319..47b4b0ee9aff 100644 --- a/arch/powerpc/include/asm/book3s/64/hash-4k.h +++ b/arch/powerpc/include/asm/book3s/64/hash-4k.h @@ -158,7 +158,7 @@ static inline pmd_t hash__pmd_mkhuge(pmd_t pmd) extern unsigned long hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set); -extern pmd_t hash__pmdp_collapse_flush(struct vm_area_struct *vma, +extern pmd_t hash__pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable); diff --git a/arch/powerpc/include/asm/book3s/64/hash-64k.h b/arch/powerpc/include/asm/book3s/64/hash-64k.h index 0bf6fd0bf42a..5d42aee48d90 100644 --- a/arch/powerpc/include/asm/book3s/64/hash-64k.h +++ b/arch/powerpc/include/asm/book3s/64/hash-64k.h @@ -170,9 +170,9 @@ extern bool __rpte_sub_valid(real_pte_t rpte, unsigned long index); #define pte_pagesize_index(mm, addr, pte) \ (((pte) & H_PAGE_COMBO)? MMU_PAGE_4K: MMU_PAGE_64K) -extern int remap_pfn_range(struct vm_area_struct *, unsigned long addr, +extern int remap_pfn_range(struct mm_area *, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t); -static inline int hash__remap_4k_pfn(struct vm_area_struct *vma, unsigned long addr, +static inline int hash__remap_4k_pfn(struct mm_area *vma, unsigned long addr, unsigned long pfn, pgprot_t prot) { if (pfn > (PTE_RPN_MASK >> PAGE_SHIFT)) { @@ -271,7 +271,7 @@ static inline pmd_t hash__pmd_mkhuge(pmd_t pmd) extern unsigned long hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr, pmd_t *pmdp, unsigned long clr, unsigned long set); -extern pmd_t hash__pmdp_collapse_flush(struct vm_area_struct *vma, +extern pmd_t hash__pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); extern void hash__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable); diff --git a/arch/powerpc/include/asm/book3s/64/hugetlb.h b/arch/powerpc/include/asm/book3s/64/hugetlb.h index bb786694dd26..212cdb6c7e1f 100644 --- a/arch/powerpc/include/asm/book3s/64/hugetlb.h +++ b/arch/powerpc/include/asm/book3s/64/hugetlb.h @@ -9,10 +9,10 @@ * both hash and radix to be enabled together we need to workaround the * limitations. */ -void radix__flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr); -void radix__local_flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +void radix__flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr); +void radix__local_flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr); -extern void radix__huge_ptep_modify_prot_commit(struct vm_area_struct *vma, +extern void radix__huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte); @@ -50,22 +50,22 @@ static inline bool gigantic_page_runtime_supported(void) } #define huge_ptep_modify_prot_start huge_ptep_modify_prot_start -extern pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, +extern pte_t huge_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define huge_ptep_modify_prot_commit huge_ptep_modify_prot_commit -extern void huge_ptep_modify_prot_commit(struct vm_area_struct *vma, +extern void huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t new_pte); -static inline void flush_hugetlb_page(struct vm_area_struct *vma, +static inline void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { if (radix_enabled()) return radix__flush_hugetlb_page(vma, vmaddr); } -void flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr); static inline int check_and_get_huge_psize(int shift) { diff --git a/arch/powerpc/include/asm/book3s/64/pgtable-64k.h b/arch/powerpc/include/asm/book3s/64/pgtable-64k.h index 4d8d7b4ea16b..430ded76ad49 100644 --- a/arch/powerpc/include/asm/book3s/64/pgtable-64k.h +++ b/arch/powerpc/include/asm/book3s/64/pgtable-64k.h @@ -7,7 +7,7 @@ #endif /* CONFIG_HUGETLB_PAGE */ -static inline int remap_4k_pfn(struct vm_area_struct *vma, unsigned long addr, +static inline int remap_4k_pfn(struct mm_area *vma, unsigned long addr, unsigned long pfn, pgprot_t prot) { if (radix_enabled()) diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h index 6d98e6f08d4d..18222f1eab2e 100644 --- a/arch/powerpc/include/asm/book3s/64/pgtable.h +++ b/arch/powerpc/include/asm/book3s/64/pgtable.h @@ -722,7 +722,7 @@ static inline bool check_pte_access(unsigned long access, unsigned long ptev) * Generic functions with hash/radix callbacks */ -static inline void __ptep_set_access_flags(struct vm_area_struct *vma, +static inline void __ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) @@ -1104,12 +1104,12 @@ extern void set_pmd_at(struct mm_struct *mm, unsigned long addr, extern void set_pud_at(struct mm_struct *mm, unsigned long addr, pud_t *pudp, pud_t pud); -static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, +static inline void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd) { } -static inline void update_mmu_cache_pud(struct vm_area_struct *vma, +static inline void update_mmu_cache_pud(struct mm_area *vma, unsigned long addr, pud_t *pud) { } @@ -1284,19 +1284,19 @@ static inline pud_t pud_mkhuge(pud_t pud) #define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -extern int pmdp_set_access_flags(struct vm_area_struct *vma, +extern int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty); #define __HAVE_ARCH_PUDP_SET_ACCESS_FLAGS -extern int pudp_set_access_flags(struct vm_area_struct *vma, +extern int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty); #define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG -extern int pmdp_test_and_clear_young(struct vm_area_struct *vma, +extern int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #define __HAVE_ARCH_PUDP_TEST_AND_CLEAR_YOUNG -extern int pudp_test_and_clear_young(struct vm_area_struct *vma, +extern int pudp_test_and_clear_young(struct mm_area *vma, unsigned long address, pud_t *pudp); @@ -1319,7 +1319,7 @@ static inline pud_t pudp_huge_get_and_clear(struct mm_struct *mm, return *pudp; } -static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +static inline pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { if (radix_enabled()) @@ -1329,12 +1329,12 @@ static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, #define pmdp_collapse_flush pmdp_collapse_flush #define __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR_FULL -pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, +pmd_t pmdp_huge_get_and_clear_full(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, int full); #define __HAVE_ARCH_PUDP_HUGE_GET_AND_CLEAR_FULL -pud_t pudp_huge_get_and_clear_full(struct vm_area_struct *vma, +pud_t pudp_huge_get_and_clear_full(struct mm_area *vma, unsigned long addr, pud_t *pudp, int full); @@ -1357,16 +1357,16 @@ static inline pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, } #define __HAVE_ARCH_PMDP_INVALIDATE -extern pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +extern pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp); -extern pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address, +extern pud_t pudp_invalidate(struct mm_area *vma, unsigned long address, pud_t *pudp); #define pmd_move_must_withdraw pmd_move_must_withdraw struct spinlock; extern int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, struct spinlock *old_pmd_ptl, - struct vm_area_struct *vma); + struct mm_area *vma); /* * Hash translation mode use the deposited table to store hash pte * slot information. @@ -1413,8 +1413,8 @@ static inline int pgd_devmap(pgd_t pgd) #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION -pte_t ptep_modify_prot_start(struct vm_area_struct *, unsigned long, pte_t *); -void ptep_modify_prot_commit(struct vm_area_struct *, unsigned long, +pte_t ptep_modify_prot_start(struct mm_area *, unsigned long, pte_t *); +void ptep_modify_prot_commit(struct mm_area *, unsigned long, pte_t *, pte_t, pte_t); /* diff --git a/arch/powerpc/include/asm/book3s/64/radix.h b/arch/powerpc/include/asm/book3s/64/radix.h index 8f55ff74bb68..ffbeb52f4beb 100644 --- a/arch/powerpc/include/asm/book3s/64/radix.h +++ b/arch/powerpc/include/asm/book3s/64/radix.h @@ -143,11 +143,11 @@ extern void radix__mark_rodata_ro(void); extern void radix__mark_initmem_nx(void); #endif -extern void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, +extern void radix__ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize); -extern void radix__ptep_modify_prot_commit(struct vm_area_struct *vma, +extern void radix__ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte); @@ -288,7 +288,7 @@ extern unsigned long radix__pmd_hugepage_update(struct mm_struct *mm, unsigned l extern unsigned long radix__pud_hugepage_update(struct mm_struct *mm, unsigned long addr, pud_t *pudp, unsigned long clr, unsigned long set); -extern pmd_t radix__pmdp_collapse_flush(struct vm_area_struct *vma, +extern pmd_t radix__pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); extern void radix__pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable); diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush-radix.h b/arch/powerpc/include/asm/book3s/64/tlbflush-radix.h index a38542259fab..369f7d20a25a 100644 --- a/arch/powerpc/include/asm/book3s/64/tlbflush-radix.h +++ b/arch/powerpc/include/asm/book3s/64/tlbflush-radix.h @@ -8,7 +8,7 @@ #define RIC_FLUSH_PWC 1 #define RIC_FLUSH_ALL 2 -struct vm_area_struct; +struct mm_area; struct mm_struct; struct mmu_gather; @@ -60,30 +60,30 @@ static inline void radix__flush_all_lpid_guest(unsigned int lpid) } #endif -extern void radix__flush_hugetlb_tlb_range(struct vm_area_struct *vma, +extern void radix__flush_hugetlb_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void radix__flush_tlb_range_psize(struct mm_struct *mm, unsigned long start, unsigned long end, int psize); void radix__flush_tlb_pwc_range_psize(struct mm_struct *mm, unsigned long start, unsigned long end, int psize); -extern void radix__flush_pmd_tlb_range(struct vm_area_struct *vma, +extern void radix__flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void radix__flush_pud_tlb_range(struct vm_area_struct *vma, +extern void radix__flush_pud_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void radix__flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void radix__flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); extern void radix__flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void radix__local_flush_tlb_mm(struct mm_struct *mm); extern void radix__local_flush_all_mm(struct mm_struct *mm); -extern void radix__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +extern void radix__local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr); extern void radix__local_flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmaddr, int psize); extern void radix__tlb_flush(struct mmu_gather *tlb); #ifdef CONFIG_SMP extern void radix__flush_tlb_mm(struct mm_struct *mm); extern void radix__flush_all_mm(struct mm_struct *mm); -extern void radix__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +extern void radix__flush_tlb_page(struct mm_area *vma, unsigned long vmaddr); extern void radix__flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmaddr, int psize); #else diff --git a/arch/powerpc/include/asm/book3s/64/tlbflush.h b/arch/powerpc/include/asm/book3s/64/tlbflush.h index fd642b729775..73cc7feff758 100644 --- a/arch/powerpc/include/asm/book3s/64/tlbflush.h +++ b/arch/powerpc/include/asm/book3s/64/tlbflush.h @@ -44,7 +44,7 @@ static inline void tlbiel_all_lpid(bool radix) #define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE -static inline void flush_pmd_tlb_range(struct vm_area_struct *vma, +static inline void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (radix_enabled()) @@ -52,7 +52,7 @@ static inline void flush_pmd_tlb_range(struct vm_area_struct *vma, } #define __HAVE_ARCH_FLUSH_PUD_TLB_RANGE -static inline void flush_pud_tlb_range(struct vm_area_struct *vma, +static inline void flush_pud_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (radix_enabled()) @@ -60,7 +60,7 @@ static inline void flush_pud_tlb_range(struct vm_area_struct *vma, } #define __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE -static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma, +static inline void flush_hugetlb_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -68,7 +68,7 @@ static inline void flush_hugetlb_tlb_range(struct vm_area_struct *vma, radix__flush_hugetlb_tlb_range(vma, start, end); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { if (radix_enabled()) @@ -88,7 +88,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) radix__local_flush_tlb_mm(mm); } -static inline void local_flush_tlb_page(struct vm_area_struct *vma, +static inline void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { if (radix_enabled()) @@ -117,7 +117,7 @@ static inline void flush_tlb_mm(struct mm_struct *mm) radix__flush_tlb_mm(mm); } -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { if (radix_enabled()) @@ -129,7 +129,7 @@ static inline void flush_tlb_page(struct vm_area_struct *vma, #endif /* CONFIG_SMP */ #define flush_tlb_fix_spurious_fault flush_tlb_fix_spurious_fault -static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma, +static inline void flush_tlb_fix_spurious_fault(struct mm_area *vma, unsigned long address, pte_t *ptep) { diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h index f2656774aaa9..a7be13f896ca 100644 --- a/arch/powerpc/include/asm/cacheflush.h +++ b/arch/powerpc/include/asm/cacheflush.h @@ -53,7 +53,7 @@ static inline void flush_dcache_page(struct page *page) void flush_icache_range(unsigned long start, unsigned long stop); #define flush_icache_range flush_icache_range -void flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len); #define flush_icache_user_page flush_icache_user_page diff --git a/arch/powerpc/include/asm/hugetlb.h b/arch/powerpc/include/asm/hugetlb.h index 86326587e58d..84540436e22c 100644 --- a/arch/powerpc/include/asm/hugetlb.h +++ b/arch/powerpc/include/asm/hugetlb.h @@ -52,7 +52,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte; @@ -64,7 +64,7 @@ static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, } #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty); @@ -72,7 +72,7 @@ void gigantic_hugetlb_cma_reserve(void) __init; #include #else /* ! CONFIG_HUGETLB_PAGE */ -static inline void flush_hugetlb_page(struct vm_area_struct *vma, +static inline void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { } diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h index a157ab513347..9677c3775f7a 100644 --- a/arch/powerpc/include/asm/mmu_context.h +++ b/arch/powerpc/include/asm/mmu_context.h @@ -258,11 +258,11 @@ static inline void enter_lazy_tlb(struct mm_struct *mm, extern void arch_exit_mmap(struct mm_struct *mm); #ifdef CONFIG_PPC_MEM_KEYS -bool arch_vma_access_permitted(struct vm_area_struct *vma, bool write, +bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign); void arch_dup_pkeys(struct mm_struct *oldmm, struct mm_struct *mm); #else /* CONFIG_PPC_MEM_KEYS */ -static inline bool arch_vma_access_permitted(struct vm_area_struct *vma, +static inline bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign) { /* by default, allow everything */ diff --git a/arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h b/arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h index 014799557f60..5f9e81383526 100644 --- a/arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h +++ b/arch/powerpc/include/asm/nohash/32/hugetlb-8xx.h @@ -4,7 +4,7 @@ #define PAGE_SHIFT_8M 23 -static inline void flush_hugetlb_page(struct vm_area_struct *vma, +static inline void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { flush_tlb_page(vma, vmaddr); diff --git a/arch/powerpc/include/asm/nohash/32/pte-8xx.h b/arch/powerpc/include/asm/nohash/32/pte-8xx.h index 54ebb91dbdcf..ac6c02a4c26e 100644 --- a/arch/powerpc/include/asm/nohash/32/pte-8xx.h +++ b/arch/powerpc/include/asm/nohash/32/pte-8xx.h @@ -128,7 +128,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, } #define ptep_set_wrprotect ptep_set_wrprotect -static inline void __ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, +static inline void __ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) { unsigned long set = pte_val(entry) & (_PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_EXEC); diff --git a/arch/powerpc/include/asm/nohash/hugetlb-e500.h b/arch/powerpc/include/asm/nohash/hugetlb-e500.h index cab0e1f1eea0..788c610b8dff 100644 --- a/arch/powerpc/include/asm/nohash/hugetlb-e500.h +++ b/arch/powerpc/include/asm/nohash/hugetlb-e500.h @@ -2,7 +2,7 @@ #ifndef _ASM_POWERPC_NOHASH_HUGETLB_E500_H #define _ASM_POWERPC_NOHASH_HUGETLB_E500_H -void flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr); static inline int check_and_get_huge_psize(int shift) { diff --git a/arch/powerpc/include/asm/nohash/pgtable.h b/arch/powerpc/include/asm/nohash/pgtable.h index 8d1f0b7062eb..0aad651197ef 100644 --- a/arch/powerpc/include/asm/nohash/pgtable.h +++ b/arch/powerpc/include/asm/nohash/pgtable.h @@ -99,7 +99,7 @@ static inline pte_basic_t pte_update(struct mm_struct *mm, unsigned long addr, p } #endif -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long old; @@ -133,7 +133,7 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, pte_t *pt /* Set the dirty and/or accessed bits atomically in a linux PTE */ #ifndef __ptep_set_access_flags -static inline void __ptep_set_access_flags(struct vm_area_struct *vma, +static inline void __ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) diff --git a/arch/powerpc/include/asm/nohash/tlbflush.h b/arch/powerpc/include/asm/nohash/tlbflush.h index 9a2cf83ea4f1..8f013d3b3e17 100644 --- a/arch/powerpc/include/asm/nohash/tlbflush.h +++ b/arch/powerpc/include/asm/nohash/tlbflush.h @@ -23,12 +23,12 @@ * specific tlbie's */ -struct vm_area_struct; +struct mm_area; struct mm_struct; #define MMU_NO_CONTEXT ((unsigned int)-1) -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #ifdef CONFIG_PPC_8xx @@ -40,7 +40,7 @@ static inline void local_flush_tlb_mm(struct mm_struct *mm) asm volatile ("sync; tlbia; isync" : : : "memory"); } -static inline void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +static inline void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { asm volatile ("tlbie %0; sync" : : "r" (vmaddr) : "memory"); } @@ -63,7 +63,7 @@ static inline void flush_tlb_kernel_range(unsigned long start, unsigned long end #else extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +extern void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr); void local_flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmaddr, int psize); extern void __local_flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, @@ -72,7 +72,7 @@ extern void __local_flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, #ifdef CONFIG_SMP extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr); +extern void flush_tlb_page(struct mm_area *vma, unsigned long vmaddr); extern void __flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, int tsize, int ind); #else diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index af9a2628d1df..c5d6d4087e3c 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h @@ -280,7 +280,7 @@ void arch_free_page(struct page *page, int order); #define HAVE_ARCH_FREE_PAGE #endif -struct vm_area_struct; +struct mm_area; extern unsigned long kernstart_virt_addr; diff --git a/arch/powerpc/include/asm/pci.h b/arch/powerpc/include/asm/pci.h index 46a9c4491ed0..1fa9e34182b4 100644 --- a/arch/powerpc/include/asm/pci.h +++ b/arch/powerpc/include/asm/pci.h @@ -67,7 +67,7 @@ extern int pci_domain_nr(struct pci_bus *bus); /* Decide whether to display the domain number in /proc */ extern int pci_proc_domain(struct pci_bus *bus); -struct vm_area_struct; +struct mm_area; /* Tell PCI code what kind of PCI resource mappings we support */ #define HAVE_PCI_MMAP 1 @@ -80,7 +80,7 @@ extern int pci_legacy_read(struct pci_bus *bus, loff_t port, u32 *val, extern int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t count); extern int pci_mmap_legacy_page_range(struct pci_bus *bus, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_state); extern void pci_adjust_legacy_attr(struct pci_bus *bus, enum pci_mmap_state mmap_type); diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h index 2f72ad885332..d375c25ff925 100644 --- a/arch/powerpc/include/asm/pgtable.h +++ b/arch/powerpc/include/asm/pgtable.h @@ -119,7 +119,7 @@ static inline void mark_initmem_nx(void) { } #endif #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address, +int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty); pgprot_t __phys_mem_access_prot(unsigned long pfn, unsigned long size, @@ -133,7 +133,7 @@ static inline pgprot_t phys_mem_access_prot(struct file *file, unsigned long pfn } #define __HAVE_PHYS_MEM_ACCESS_PROT -void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep); +void __update_mmu_cache(struct mm_area *vma, unsigned long address, pte_t *ptep); /* * This gets called at the end of handling a page fault, when @@ -145,7 +145,7 @@ void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t * waiting for the inevitable extra hash-table miss exception. */ static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { if ((mmu_has_feature(MMU_FTR_HPTE_TABLE) && !radix_enabled()) || diff --git a/arch/powerpc/include/asm/pkeys.h b/arch/powerpc/include/asm/pkeys.h index 59a2c7dbc78f..b36ac2edf846 100644 --- a/arch/powerpc/include/asm/pkeys.h +++ b/arch/powerpc/include/asm/pkeys.h @@ -35,7 +35,7 @@ static inline u64 pkey_to_vmflag_bits(u16 pkey) return (((u64)pkey << VM_PKEY_SHIFT) & ARCH_VM_PKEY_FLAGS); } -static inline int vma_pkey(struct vm_area_struct *vma) +static inline int vma_pkey(struct mm_area *vma) { if (!mmu_has_feature(MMU_FTR_PKEY)) return 0; @@ -125,9 +125,9 @@ static inline int mm_pkey_free(struct mm_struct *mm, int pkey) * execute-only protection key. */ extern int execute_only_pkey(struct mm_struct *mm); -extern int __arch_override_mprotect_pkey(struct vm_area_struct *vma, +extern int __arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey); -static inline int arch_override_mprotect_pkey(struct vm_area_struct *vma, +static inline int arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey) { if (!mmu_has_feature(MMU_FTR_PKEY)) diff --git a/arch/powerpc/include/asm/vas.h b/arch/powerpc/include/asm/vas.h index c36f71e01c0f..086d494bd3d9 100644 --- a/arch/powerpc/include/asm/vas.h +++ b/arch/powerpc/include/asm/vas.h @@ -71,7 +71,7 @@ struct vas_user_win_ref { struct mm_struct *mm; /* Linux process mm_struct */ struct mutex mmap_mutex; /* protects paste address mmap() */ /* with DLPAR close/open windows */ - struct vm_area_struct *vma; /* Save VMA and used in DLPAR ops */ + struct mm_area *vma; /* Save VMA and used in DLPAR ops */ }; /* diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c index eac84d687b53..ce9a82d8120f 100644 --- a/arch/powerpc/kernel/pci-common.c +++ b/arch/powerpc/kernel/pci-common.c @@ -501,7 +501,7 @@ static int pci_read_irq_line(struct pci_dev *pci_dev) * Platform support for /proc/bus/pci/X/Y mmap()s. * -- paulus. */ -int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma) +int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct mm_area *vma) { struct pci_controller *hose = pci_bus_to_host(pdev->bus); resource_size_t ioaddr = pci_resource_start(pdev, bar); @@ -651,7 +651,7 @@ int pci_legacy_write(struct pci_bus *bus, loff_t port, u32 val, size_t size) /* This provides legacy IO or memory mmap access on a bus */ int pci_mmap_legacy_page_range(struct pci_bus *bus, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_state) { struct pci_controller *hose = pci_bus_to_host(bus); diff --git a/arch/powerpc/kernel/proc_powerpc.c b/arch/powerpc/kernel/proc_powerpc.c index 3816a2bf2b84..c80bc0cb32db 100644 --- a/arch/powerpc/kernel/proc_powerpc.c +++ b/arch/powerpc/kernel/proc_powerpc.c @@ -30,7 +30,7 @@ static ssize_t page_map_read( struct file *file, char __user *buf, size_t nbytes pde_data(file_inode(file)), PAGE_SIZE); } -static int page_map_mmap( struct file *file, struct vm_area_struct *vma ) +static int page_map_mmap( struct file *file, struct mm_area *vma ) { if ((vma->vm_end - vma->vm_start) > PAGE_SIZE) return -EINVAL; diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index 219d67bcf747..f6a853ae5dc7 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c @@ -42,7 +42,7 @@ extern char vdso64_start, vdso64_end; long sys_ni_syscall(void); -static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma, +static int vdso_mremap(const struct vm_special_mapping *sm, struct mm_area *new_vma, unsigned long text_size) { unsigned long new_size = new_vma->vm_end - new_vma->vm_start; @@ -55,17 +55,17 @@ static int vdso_mremap(const struct vm_special_mapping *sm, struct vm_area_struc return 0; } -static int vdso32_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) +static int vdso32_mremap(const struct vm_special_mapping *sm, struct mm_area *new_vma) { return vdso_mremap(sm, new_vma, &vdso32_end - &vdso32_start); } -static int vdso64_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) +static int vdso64_mremap(const struct vm_special_mapping *sm, struct mm_area *new_vma) { return vdso_mremap(sm, new_vma, &vdso64_end - &vdso64_start); } -static void vdso_close(const struct vm_special_mapping *sm, struct vm_area_struct *vma) +static void vdso_close(const struct vm_special_mapping *sm, struct mm_area *vma) { struct mm_struct *mm = vma->vm_mm; @@ -102,7 +102,7 @@ static int __arch_setup_additional_pages(struct linux_binprm *bprm, int uses_int struct vm_special_mapping *vdso_spec; unsigned long vvar_size = VDSO_NR_PAGES * PAGE_SIZE; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; if (is_32bit_task()) { vdso_spec = &vdso32_spec; diff --git a/arch/powerpc/kvm/book3s_64_vio.c b/arch/powerpc/kvm/book3s_64_vio.c index 742aa58a7c7e..236d3f95c4dd 100644 --- a/arch/powerpc/kvm/book3s_64_vio.c +++ b/arch/powerpc/kvm/book3s_64_vio.c @@ -247,7 +247,7 @@ static const struct vm_operations_struct kvm_spapr_tce_vm_ops = { .fault = kvm_spapr_tce_fault, }; -static int kvm_spapr_tce_mmap(struct file *file, struct vm_area_struct *vma) +static int kvm_spapr_tce_mmap(struct file *file, struct mm_area *vma) { vma->vm_ops = &kvm_spapr_tce_vm_ops; return 0; diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c index 86bff159c51e..62de957ec6da 100644 --- a/arch/powerpc/kvm/book3s_hv.c +++ b/arch/powerpc/kvm/book3s_hv.c @@ -5473,7 +5473,7 @@ static int kvmppc_hv_setup_htab_rma(struct kvm_vcpu *vcpu) struct kvm *kvm = vcpu->kvm; unsigned long hva; struct kvm_memory_slot *memslot; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long lpcr = 0, senc; unsigned long psize, porder; int srcu_idx; diff --git a/arch/powerpc/kvm/book3s_hv_uvmem.c b/arch/powerpc/kvm/book3s_hv_uvmem.c index 3a6592a31a10..16a49d4b5e47 100644 --- a/arch/powerpc/kvm/book3s_hv_uvmem.c +++ b/arch/powerpc/kvm/book3s_hv_uvmem.c @@ -395,7 +395,7 @@ static int kvmppc_memslot_page_merge(struct kvm *kvm, unsigned long end, start = gfn_to_hva(kvm, gfn); unsigned long vm_flags; int ret = 0; - struct vm_area_struct *vma; + struct mm_area *vma; int merge_flag = (merge) ? MADV_MERGEABLE : MADV_UNMERGEABLE; if (kvm_is_error_hva(start)) @@ -510,7 +510,7 @@ unsigned long kvmppc_h_svm_init_start(struct kvm *kvm) * from secure memory using UV_PAGE_OUT uvcall. * Caller must held kvm->arch.uvmem_lock. */ -static int __kvmppc_svm_page_out(struct vm_area_struct *vma, +static int __kvmppc_svm_page_out(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long page_shift, struct kvm *kvm, unsigned long gpa, struct page *fault_page) @@ -583,7 +583,7 @@ static int __kvmppc_svm_page_out(struct vm_area_struct *vma, return ret; } -static inline int kvmppc_svm_page_out(struct vm_area_struct *vma, +static inline int kvmppc_svm_page_out(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long page_shift, struct kvm *kvm, unsigned long gpa, @@ -613,7 +613,7 @@ void kvmppc_uvmem_drop_pages(const struct kvm_memory_slot *slot, int i; struct kvmppc_uvmem_page_pvt *pvt; struct page *uvmem_page; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; unsigned long uvmem_pfn, gfn; unsigned long addr; @@ -737,7 +737,7 @@ static struct page *kvmppc_uvmem_get_page(unsigned long gpa, struct kvm *kvm) * Alloc a PFN from private device memory pool. If @pagein is true, * copy page from normal memory to secure memory using UV_PAGE_IN uvcall. */ -static int kvmppc_svm_page_in(struct vm_area_struct *vma, +static int kvmppc_svm_page_in(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long gpa, struct kvm *kvm, unsigned long page_shift, @@ -795,7 +795,7 @@ static int kvmppc_uv_migrate_mem_slot(struct kvm *kvm, const struct kvm_memory_slot *memslot) { unsigned long gfn = memslot->base_gfn; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long start, end; int ret = 0; @@ -937,7 +937,7 @@ unsigned long kvmppc_h_svm_page_in(struct kvm *kvm, unsigned long gpa, unsigned long page_shift) { unsigned long start, end; - struct vm_area_struct *vma; + struct mm_area *vma; int srcu_idx; unsigned long gfn = gpa >> page_shift; int ret; @@ -1047,7 +1047,7 @@ kvmppc_h_svm_page_out(struct kvm *kvm, unsigned long gpa, { unsigned long gfn = gpa >> page_shift; unsigned long start, end; - struct vm_area_struct *vma; + struct mm_area *vma; int srcu_idx; int ret; diff --git a/arch/powerpc/kvm/book3s_xive_native.c b/arch/powerpc/kvm/book3s_xive_native.c index d9bf1bc3ff61..90ff2d0ed2a7 100644 --- a/arch/powerpc/kvm/book3s_xive_native.c +++ b/arch/powerpc/kvm/book3s_xive_native.c @@ -227,7 +227,7 @@ static struct kvmppc_xive_ops kvmppc_xive_native_ops = { static vm_fault_t xive_native_esb_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct kvm_device *dev = vma->vm_file->private_data; struct kvmppc_xive *xive = dev->private; struct kvmppc_xive_src_block *sb; @@ -287,7 +287,7 @@ static const struct vm_operations_struct xive_native_esb_vmops = { static vm_fault_t xive_native_tima_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; switch (vmf->pgoff - vma->vm_pgoff) { case 0: /* HW - forbid access */ @@ -307,7 +307,7 @@ static const struct vm_operations_struct xive_native_tima_vmops = { }; static int kvmppc_xive_native_mmap(struct kvm_device *dev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct kvmppc_xive *xive = dev->private; diff --git a/arch/powerpc/mm/book3s32/mmu.c b/arch/powerpc/mm/book3s32/mmu.c index be9c4106e22f..438af9822627 100644 --- a/arch/powerpc/mm/book3s32/mmu.c +++ b/arch/powerpc/mm/book3s32/mmu.c @@ -319,7 +319,7 @@ static void hash_preload(struct mm_struct *mm, unsigned long ea) * * This must always be called with the pte lock held. */ -void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, +void __update_mmu_cache(struct mm_area *vma, unsigned long address, pte_t *ptep) { /* diff --git a/arch/powerpc/mm/book3s32/tlb.c b/arch/powerpc/mm/book3s32/tlb.c index 9ad6b56bfec9..badcf34a99b4 100644 --- a/arch/powerpc/mm/book3s32/tlb.c +++ b/arch/powerpc/mm/book3s32/tlb.c @@ -80,7 +80,7 @@ EXPORT_SYMBOL(hash__flush_range); */ void hash__flush_tlb_mm(struct mm_struct *mm) { - struct vm_area_struct *mp; + struct mm_area *mp; VMA_ITERATOR(vmi, mm, 0); /* @@ -94,7 +94,7 @@ void hash__flush_tlb_mm(struct mm_struct *mm) } EXPORT_SYMBOL(hash__flush_tlb_mm); -void hash__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void hash__flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { struct mm_struct *mm; pmd_t *pmd; diff --git a/arch/powerpc/mm/book3s64/hash_pgtable.c b/arch/powerpc/mm/book3s64/hash_pgtable.c index 988948d69bc1..444a148f54f8 100644 --- a/arch/powerpc/mm/book3s64/hash_pgtable.c +++ b/arch/powerpc/mm/book3s64/hash_pgtable.c @@ -220,7 +220,7 @@ unsigned long hash__pmd_hugepage_update(struct mm_struct *mm, unsigned long addr return old; } -pmd_t hash__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, +pmd_t hash__pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pmd_t pmd; diff --git a/arch/powerpc/mm/book3s64/hash_utils.c b/arch/powerpc/mm/book3s64/hash_utils.c index 5158aefe4873..8a135a261f2e 100644 --- a/arch/powerpc/mm/book3s64/hash_utils.c +++ b/arch/powerpc/mm/book3s64/hash_utils.c @@ -2099,7 +2099,7 @@ static void hash_preload(struct mm_struct *mm, pte_t *ptep, unsigned long ea, * * This must always be called with the pte lock held. */ -void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, +void __update_mmu_cache(struct mm_area *vma, unsigned long address, pte_t *ptep) { /* diff --git a/arch/powerpc/mm/book3s64/hugetlbpage.c b/arch/powerpc/mm/book3s64/hugetlbpage.c index 83c3361b358b..a26f928dbf56 100644 --- a/arch/powerpc/mm/book3s64/hugetlbpage.c +++ b/arch/powerpc/mm/book3s64/hugetlbpage.c @@ -135,7 +135,7 @@ int __hash_page_huge(unsigned long ea, unsigned long access, unsigned long vsid, } #endif -pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, +pte_t huge_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long pte_val; @@ -150,7 +150,7 @@ pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, return __pte(pte_val); } -void huge_ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, +void huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { unsigned long psize; diff --git a/arch/powerpc/mm/book3s64/iommu_api.c b/arch/powerpc/mm/book3s64/iommu_api.c index c0e8d597e4cb..fbf8a7ae297a 100644 --- a/arch/powerpc/mm/book3s64/iommu_api.c +++ b/arch/powerpc/mm/book3s64/iommu_api.c @@ -98,7 +98,7 @@ static long mm_iommu_do_alloc(struct mm_struct *mm, unsigned long ua, mmap_read_lock(mm); chunk = (1UL << (PAGE_SHIFT + MAX_PAGE_ORDER)) / - sizeof(struct vm_area_struct *); + sizeof(struct mm_area *); chunk = min(chunk, entries); for (entry = 0; entry < entries; entry += chunk) { unsigned long n = min(entries - entry, chunk); diff --git a/arch/powerpc/mm/book3s64/pgtable.c b/arch/powerpc/mm/book3s64/pgtable.c index 8f7d41ce2ca1..58f7938e9872 100644 --- a/arch/powerpc/mm/book3s64/pgtable.c +++ b/arch/powerpc/mm/book3s64/pgtable.c @@ -57,7 +57,7 @@ early_param("kfence.sample_interval", parse_kfence_early_init); * handled those two for us, we additionally deal with missing execute * permission here on some processors */ -int pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, +int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { int changed; @@ -77,7 +77,7 @@ int pmdp_set_access_flags(struct vm_area_struct *vma, unsigned long address, return changed; } -int pudp_set_access_flags(struct vm_area_struct *vma, unsigned long address, +int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty) { int changed; @@ -98,13 +98,13 @@ int pudp_set_access_flags(struct vm_area_struct *vma, unsigned long address, } -int pmdp_test_and_clear_young(struct vm_area_struct *vma, +int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { return __pmdp_test_and_clear_young(vma->vm_mm, address, pmdp); } -int pudp_test_and_clear_young(struct vm_area_struct *vma, +int pudp_test_and_clear_young(struct mm_area *vma, unsigned long address, pud_t *pudp) { return __pudp_test_and_clear_young(vma->vm_mm, address, pudp); @@ -177,7 +177,7 @@ void serialize_against_pte_lookup(struct mm_struct *mm) * We use this to invalidate a pmdp entry before switching from a * hugepte to regular pmd entry. */ -pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { unsigned long old_pmd; @@ -188,7 +188,7 @@ pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, return __pmd(old_pmd); } -pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address, +pud_t pudp_invalidate(struct mm_area *vma, unsigned long address, pud_t *pudp) { unsigned long old_pud; @@ -199,7 +199,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address, return __pud(old_pud); } -pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, +pmd_t pmdp_huge_get_and_clear_full(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, int full) { pmd_t pmd; @@ -217,7 +217,7 @@ pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, return pmd; } -pud_t pudp_huge_get_and_clear_full(struct vm_area_struct *vma, +pud_t pudp_huge_get_and_clear_full(struct mm_area *vma, unsigned long addr, pud_t *pudp, int full) { pud_t pud; @@ -534,7 +534,7 @@ void arch_report_meminfo(struct seq_file *m) } #endif /* CONFIG_PROC_FS */ -pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, +pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long pte_val; @@ -550,7 +550,7 @@ pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, } -void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, +void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { if (radix_enabled()) @@ -574,7 +574,7 @@ void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, */ int pmd_move_must_withdraw(struct spinlock *new_pmd_ptl, struct spinlock *old_pmd_ptl, - struct vm_area_struct *vma) + struct mm_area *vma) { if (radix_enabled()) return (new_pmd_ptl != old_pmd_ptl) && vma_is_anonymous(vma); diff --git a/arch/powerpc/mm/book3s64/pkeys.c b/arch/powerpc/mm/book3s64/pkeys.c index a974baf8f327..3bdeb406fa0f 100644 --- a/arch/powerpc/mm/book3s64/pkeys.c +++ b/arch/powerpc/mm/book3s64/pkeys.c @@ -376,7 +376,7 @@ int execute_only_pkey(struct mm_struct *mm) return mm->context.execute_only_pkey; } -static inline bool vma_is_pkey_exec_only(struct vm_area_struct *vma) +static inline bool vma_is_pkey_exec_only(struct mm_area *vma) { /* Do this check first since the vm_flags should be hot */ if ((vma->vm_flags & VM_ACCESS_FLAGS) != VM_EXEC) @@ -388,7 +388,7 @@ static inline bool vma_is_pkey_exec_only(struct vm_area_struct *vma) /* * This should only be called for *plain* mprotect calls. */ -int __arch_override_mprotect_pkey(struct vm_area_struct *vma, int prot, +int __arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey) { /* @@ -444,7 +444,7 @@ bool arch_pte_access_permitted(u64 pte, bool write, bool execute) * So do not enforce things if the VMA is not from the current mm, or if we are * in a kernel thread. */ -bool arch_vma_access_permitted(struct vm_area_struct *vma, bool write, +bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign) { if (!mmu_has_feature(MMU_FTR_PKEY)) diff --git a/arch/powerpc/mm/book3s64/radix_hugetlbpage.c b/arch/powerpc/mm/book3s64/radix_hugetlbpage.c index 35fd2a95be24..81569a2ec474 100644 --- a/arch/powerpc/mm/book3s64/radix_hugetlbpage.c +++ b/arch/powerpc/mm/book3s64/radix_hugetlbpage.c @@ -7,7 +7,7 @@ #include #include -void radix__flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void radix__flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { int psize; struct hstate *hstate = hstate_file(vma->vm_file); @@ -16,7 +16,7 @@ void radix__flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr) radix__flush_tlb_page_psize(vma->vm_mm, vmaddr, psize); } -void radix__local_flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void radix__local_flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { int psize; struct hstate *hstate = hstate_file(vma->vm_file); @@ -25,7 +25,7 @@ void radix__local_flush_hugetlb_page(struct vm_area_struct *vma, unsigned long v radix__local_flush_tlb_page_psize(vma->vm_mm, vmaddr, psize); } -void radix__flush_hugetlb_tlb_range(struct vm_area_struct *vma, unsigned long start, +void radix__flush_hugetlb_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { int psize; @@ -42,7 +42,7 @@ void radix__flush_hugetlb_tlb_range(struct vm_area_struct *vma, unsigned long st mmu_notifier_arch_invalidate_secondary_tlbs(vma->vm_mm, start, end); } -void radix__huge_ptep_modify_prot_commit(struct vm_area_struct *vma, +void radix__huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c b/arch/powerpc/mm/book3s64/radix_pgtable.c index 311e2112d782..abb8ee24f4ec 100644 --- a/arch/powerpc/mm/book3s64/radix_pgtable.c +++ b/arch/powerpc/mm/book3s64/radix_pgtable.c @@ -1439,7 +1439,7 @@ unsigned long radix__pud_hugepage_update(struct mm_struct *mm, unsigned long add return old; } -pmd_t radix__pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, +pmd_t radix__pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { @@ -1528,7 +1528,7 @@ pud_t radix__pudp_huge_get_and_clear(struct mm_struct *mm, #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ -void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, +void radix__ptep_set_access_flags(struct mm_area *vma, pte_t *ptep, pte_t entry, unsigned long address, int psize) { struct mm_struct *mm = vma->vm_mm; @@ -1570,7 +1570,7 @@ void radix__ptep_set_access_flags(struct vm_area_struct *vma, pte_t *ptep, /* See ptesync comment in radix__set_pte_at */ } -void radix__ptep_modify_prot_commit(struct vm_area_struct *vma, +void radix__ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { diff --git a/arch/powerpc/mm/book3s64/radix_tlb.c b/arch/powerpc/mm/book3s64/radix_tlb.c index 9e1f6558d026..522515490a77 100644 --- a/arch/powerpc/mm/book3s64/radix_tlb.c +++ b/arch/powerpc/mm/book3s64/radix_tlb.c @@ -625,7 +625,7 @@ void radix__local_flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmadd preempt_enable(); } -void radix__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void radix__local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { #ifdef CONFIG_HUGETLB_PAGE /* need the return fix for nohash.c */ @@ -947,7 +947,7 @@ void radix__flush_tlb_page_psize(struct mm_struct *mm, unsigned long vmaddr, preempt_enable(); } -void radix__flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void radix__flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { #ifdef CONFIG_HUGETLB_PAGE if (is_vm_hugetlb_page(vma)) @@ -1114,7 +1114,7 @@ static inline void __radix__flush_tlb_range(struct mm_struct *mm, mmu_notifier_arch_invalidate_secondary_tlbs(mm, start, end); } -void radix__flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void radix__flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -1360,14 +1360,14 @@ void radix__flush_tlb_collapsed_pmd(struct mm_struct *mm, unsigned long addr) } #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ -void radix__flush_pmd_tlb_range(struct vm_area_struct *vma, +void radix__flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { radix__flush_tlb_range_psize(vma->vm_mm, start, end, MMU_PAGE_2M); } EXPORT_SYMBOL(radix__flush_pmd_tlb_range); -void radix__flush_pud_tlb_range(struct vm_area_struct *vma, +void radix__flush_pud_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { radix__flush_tlb_range_psize(vma->vm_mm, start, end, MMU_PAGE_1G); diff --git a/arch/powerpc/mm/book3s64/slice.c b/arch/powerpc/mm/book3s64/slice.c index 28bec5bc7879..7ea8f4a1046b 100644 --- a/arch/powerpc/mm/book3s64/slice.c +++ b/arch/powerpc/mm/book3s64/slice.c @@ -86,7 +86,7 @@ static void slice_range_to_mask(unsigned long start, unsigned long len, static int slice_area_is_free(struct mm_struct *mm, unsigned long addr, unsigned long len) { - struct vm_area_struct *vma; + struct mm_area *vma; if ((mm_ctx_slb_addr_limit(&mm->context) - len) < addr) return 0; @@ -808,7 +808,7 @@ int slice_is_hugepage_only_range(struct mm_struct *mm, unsigned long addr, return !slice_check_range_fits(mm, maskp, addr, len); } -unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) +unsigned long vma_mmu_pagesize(struct mm_area *vma) { /* With radix we don't use slice, so derive it from vma*/ if (radix_enabled()) diff --git a/arch/powerpc/mm/book3s64/subpage_prot.c b/arch/powerpc/mm/book3s64/subpage_prot.c index ec98e526167e..574aa22bb238 100644 --- a/arch/powerpc/mm/book3s64/subpage_prot.c +++ b/arch/powerpc/mm/book3s64/subpage_prot.c @@ -138,7 +138,7 @@ static void subpage_prot_clear(unsigned long addr, unsigned long len) static int subpage_walk_pmd_entry(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; split_huge_pmd(vma, pmd, addr); return 0; } @@ -151,7 +151,7 @@ static const struct mm_walk_ops subpage_walk_ops = { static void subpage_mark_vma_nohuge(struct mm_struct *mm, unsigned long addr, unsigned long len) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, addr); /* diff --git a/arch/powerpc/mm/cacheflush.c b/arch/powerpc/mm/cacheflush.c index 7186516eca52..75547ebd112c 100644 --- a/arch/powerpc/mm/cacheflush.c +++ b/arch/powerpc/mm/cacheflush.c @@ -210,7 +210,7 @@ void copy_user_page(void *vto, void *vfrom, unsigned long vaddr, flush_dcache_page(pg); } -void flush_icache_user_page(struct vm_area_struct *vma, struct page *page, +void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len) { void *maddr; diff --git a/arch/powerpc/mm/copro_fault.c b/arch/powerpc/mm/copro_fault.c index f5f8692e2c69..b6196e004f19 100644 --- a/arch/powerpc/mm/copro_fault.c +++ b/arch/powerpc/mm/copro_fault.c @@ -21,7 +21,7 @@ int copro_handle_mm_fault(struct mm_struct *mm, unsigned long ea, unsigned long dsisr, vm_fault_t *flt) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long is_write; int ret; diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c index c156fe0d53c3..45b8039647f6 100644 --- a/arch/powerpc/mm/fault.c +++ b/arch/powerpc/mm/fault.c @@ -72,7 +72,7 @@ static noinline int bad_area_nosemaphore(struct pt_regs *regs, unsigned long add } static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code, - struct mm_struct *mm, struct vm_area_struct *vma) + struct mm_struct *mm, struct mm_area *vma) { /* @@ -89,7 +89,7 @@ static int __bad_area(struct pt_regs *regs, unsigned long address, int si_code, static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, struct mm_struct *mm, - struct vm_area_struct *vma) + struct mm_area *vma) { int pkey; @@ -131,7 +131,7 @@ static noinline int bad_access_pkey(struct pt_regs *regs, unsigned long address, } static noinline int bad_access(struct pt_regs *regs, unsigned long address, - struct mm_struct *mm, struct vm_area_struct *vma) + struct mm_struct *mm, struct mm_area *vma) { return __bad_area(regs, address, SEGV_ACCERR, mm, vma); } @@ -235,7 +235,7 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code, } static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey, - struct vm_area_struct *vma) + struct mm_area *vma) { /* * Make sure to check the VMA so that we do not perform @@ -248,7 +248,7 @@ static bool access_pkey_error(bool is_write, bool is_exec, bool is_pkey, return false; } -static bool access_error(bool is_write, bool is_exec, struct vm_area_struct *vma) +static bool access_error(bool is_write, bool is_exec, struct mm_area *vma) { /* * Allow execution from readable areas if the MMU does not @@ -413,7 +413,7 @@ static int page_fault_is_bad(unsigned long err) static int ___do_page_fault(struct pt_regs *regs, unsigned long address, unsigned long error_code) { - struct vm_area_struct * vma; + struct mm_area * vma; struct mm_struct *mm = current->mm; unsigned int flags = FAULT_FLAG_DEFAULT; int is_exec = TRAP(regs) == INTERRUPT_INST_STORAGE; diff --git a/arch/powerpc/mm/hugetlbpage.c b/arch/powerpc/mm/hugetlbpage.c index d3c1b749dcfc..290850810f27 100644 --- a/arch/powerpc/mm/hugetlbpage.c +++ b/arch/powerpc/mm/hugetlbpage.c @@ -40,7 +40,7 @@ pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr, unsigned long s return __find_linux_pte(mm->pgd, addr, NULL, NULL); } -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { p4d_t *p4d; diff --git a/arch/powerpc/mm/nohash/e500_hugetlbpage.c b/arch/powerpc/mm/nohash/e500_hugetlbpage.c index a134d28a0e4d..1117ec25cafc 100644 --- a/arch/powerpc/mm/nohash/e500_hugetlbpage.c +++ b/arch/powerpc/mm/nohash/e500_hugetlbpage.c @@ -116,7 +116,7 @@ static inline int book3e_tlb_exists(unsigned long ea, unsigned long pid) } static void -book3e_hugetlb_preload(struct vm_area_struct *vma, unsigned long ea, pte_t pte) +book3e_hugetlb_preload(struct mm_area *vma, unsigned long ea, pte_t pte) { unsigned long mas1, mas2; u64 mas7_3; @@ -178,13 +178,13 @@ book3e_hugetlb_preload(struct vm_area_struct *vma, unsigned long ea, pte_t pte) * * This must always be called with the pte lock held. */ -void __update_mmu_cache(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) +void __update_mmu_cache(struct mm_area *vma, unsigned long address, pte_t *ptep) { if (is_vm_hugetlb_page(vma)) book3e_hugetlb_preload(vma, address, *ptep); } -void flush_hugetlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void flush_hugetlb_page(struct mm_area *vma, unsigned long vmaddr) { struct hstate *hstate = hstate_file(vma->vm_file); unsigned long tsize = huge_page_shift(hstate) - 10; diff --git a/arch/powerpc/mm/nohash/tlb.c b/arch/powerpc/mm/nohash/tlb.c index 0a650742f3a0..cd62f02ed016 100644 --- a/arch/powerpc/mm/nohash/tlb.c +++ b/arch/powerpc/mm/nohash/tlb.c @@ -149,7 +149,7 @@ void __local_flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, preempt_enable(); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void local_flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { __local_flush_tlb_page(vma ? vma->vm_mm : NULL, vmaddr, mmu_get_tsize(mmu_virtual_psize), 0); @@ -275,7 +275,7 @@ void __flush_tlb_page(struct mm_struct *mm, unsigned long vmaddr, preempt_enable(); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long vmaddr) +void flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { #ifdef CONFIG_HUGETLB_PAGE if (vma && is_vm_hugetlb_page(vma)) @@ -313,7 +313,7 @@ EXPORT_SYMBOL(flush_tlb_kernel_range); * some implementation can stack multiple tlbivax before a tlbsync but * for now, we keep it that way */ -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { diff --git a/arch/powerpc/mm/pgtable.c b/arch/powerpc/mm/pgtable.c index 61df5aed7989..425f2f8a2d95 100644 --- a/arch/powerpc/mm/pgtable.c +++ b/arch/powerpc/mm/pgtable.c @@ -141,7 +141,7 @@ static inline pte_t set_pte_filter(pte_t pte, unsigned long addr) return pte_exprotect(pte); } -static pte_t set_access_flags_filter(pte_t pte, struct vm_area_struct *vma, +static pte_t set_access_flags_filter(pte_t pte, struct mm_area *vma, int dirty) { struct folio *folio; @@ -240,7 +240,7 @@ void unmap_kernel_page(unsigned long va) * handled those two for us, we additionally deal with missing execute * permission here on some processors */ -int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address, +int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { int changed; @@ -255,7 +255,7 @@ int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address, } #ifdef CONFIG_HUGETLB_PAGE -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { diff --git a/arch/powerpc/platforms/book3s/vas-api.c b/arch/powerpc/platforms/book3s/vas-api.c index 0b6365d85d11..ee6e08d98377 100644 --- a/arch/powerpc/platforms/book3s/vas-api.c +++ b/arch/powerpc/platforms/book3s/vas-api.c @@ -394,7 +394,7 @@ static int do_fail_paste(void) */ static vm_fault_t vas_mmap_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct file *fp = vma->vm_file; struct coproc_instance *cp_inst = fp->private_data; struct vas_window *txwin; @@ -472,7 +472,7 @@ static vm_fault_t vas_mmap_fault(struct vm_fault *vmf) * be invalid. Set VAS window VMA to NULL in this function which * is called before VMA free. */ -static void vas_mmap_close(struct vm_area_struct *vma) +static void vas_mmap_close(struct mm_area *vma) { struct file *fp = vma->vm_file; struct coproc_instance *cp_inst = fp->private_data; @@ -504,7 +504,7 @@ static const struct vm_operations_struct vas_vm_ops = { .fault = vas_mmap_fault, }; -static int coproc_mmap(struct file *fp, struct vm_area_struct *vma) +static int coproc_mmap(struct file *fp, struct mm_area *vma) { struct coproc_instance *cp_inst = fp->private_data; struct vas_window *txwin; diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c index d5a2c77bc908..a7ec9abc6d00 100644 --- a/arch/powerpc/platforms/cell/spufs/file.c +++ b/arch/powerpc/platforms/cell/spufs/file.c @@ -229,7 +229,7 @@ spufs_mem_write(struct file *file, const char __user *buffer, static vm_fault_t spufs_mem_mmap_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct spu_context *ctx = vma->vm_file->private_data; unsigned long pfn, offset; vm_fault_t ret; @@ -258,7 +258,7 @@ spufs_mem_mmap_fault(struct vm_fault *vmf) return ret; } -static int spufs_mem_mmap_access(struct vm_area_struct *vma, +static int spufs_mem_mmap_access(struct mm_area *vma, unsigned long address, void *buf, int len, int write) { @@ -286,7 +286,7 @@ static const struct vm_operations_struct spufs_mem_mmap_vmops = { .access = spufs_mem_mmap_access, }; -static int spufs_mem_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_mem_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -376,7 +376,7 @@ static const struct vm_operations_struct spufs_cntl_mmap_vmops = { /* * mmap support for problem state control area [0x4000 - 0x4fff]. */ -static int spufs_cntl_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_cntl_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -1031,7 +1031,7 @@ static const struct vm_operations_struct spufs_signal1_mmap_vmops = { .fault = spufs_signal1_mmap_fault, }; -static int spufs_signal1_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_signal1_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -1165,7 +1165,7 @@ static const struct vm_operations_struct spufs_signal2_mmap_vmops = { .fault = spufs_signal2_mmap_fault, }; -static int spufs_signal2_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_signal2_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -1286,7 +1286,7 @@ static const struct vm_operations_struct spufs_mss_mmap_vmops = { /* * mmap support for problem state MFC DMA area [0x0000 - 0x0fff]. */ -static int spufs_mss_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_mss_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -1347,7 +1347,7 @@ static const struct vm_operations_struct spufs_psmap_mmap_vmops = { /* * mmap support for full problem state area [0x00000 - 0x1ffff]. */ -static int spufs_psmap_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_psmap_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; @@ -1406,7 +1406,7 @@ static const struct vm_operations_struct spufs_mfc_mmap_vmops = { /* * mmap support for problem state MFC DMA area [0x0000 - 0x0fff]. */ -static int spufs_mfc_mmap(struct file *file, struct vm_area_struct *vma) +static int spufs_mfc_mmap(struct file *file, struct mm_area *vma) { if (!(vma->vm_flags & VM_SHARED)) return -EINVAL; diff --git a/arch/powerpc/platforms/powernv/memtrace.c b/arch/powerpc/platforms/powernv/memtrace.c index 4ac9808e55a4..1fd35cc9716e 100644 --- a/arch/powerpc/platforms/powernv/memtrace.c +++ b/arch/powerpc/platforms/powernv/memtrace.c @@ -45,7 +45,7 @@ static ssize_t memtrace_read(struct file *filp, char __user *ubuf, return simple_read_from_buffer(ubuf, count, ppos, ent->mem, ent->size); } -static int memtrace_mmap(struct file *filp, struct vm_area_struct *vma) +static int memtrace_mmap(struct file *filp, struct mm_area *vma) { struct memtrace_entry *ent = filp->private_data; diff --git a/arch/powerpc/platforms/powernv/opal-prd.c b/arch/powerpc/platforms/powernv/opal-prd.c index dc246ed4b7b4..5a922ddd9b62 100644 --- a/arch/powerpc/platforms/powernv/opal-prd.c +++ b/arch/powerpc/platforms/powernv/opal-prd.c @@ -110,7 +110,7 @@ static int opal_prd_open(struct inode *inode, struct file *file) * @vma: VMA to map the registers into */ -static int opal_prd_mmap(struct file *file, struct vm_area_struct *vma) +static int opal_prd_mmap(struct file *file, struct mm_area *vma) { size_t addr, size; pgprot_t page_prot; diff --git a/arch/powerpc/platforms/pseries/vas.c b/arch/powerpc/platforms/pseries/vas.c index c25eb1a38185..a47633bd7586 100644 --- a/arch/powerpc/platforms/pseries/vas.c +++ b/arch/powerpc/platforms/pseries/vas.c @@ -763,7 +763,7 @@ static int reconfig_close_windows(struct vas_caps *vcap, int excess_creds, { struct pseries_vas_window *win, *tmp; struct vas_user_win_ref *task_ref; - struct vm_area_struct *vma; + struct mm_area *vma; int rc = 0, flag; if (migrate) diff --git a/arch/riscv/include/asm/hugetlb.h b/arch/riscv/include/asm/hugetlb.h index 446126497768..1a0ebd9019eb 100644 --- a/arch/riscv/include/asm/hugetlb.h +++ b/arch/riscv/include/asm/hugetlb.h @@ -32,7 +32,7 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long sz); #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT @@ -40,7 +40,7 @@ void huge_ptep_set_wrprotect(struct mm_struct *mm, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty); diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 428e48e5f57d..2fa52e4eae6a 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -506,7 +506,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) /* Commit new configuration to MMU hardware */ static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { asm goto(ALTERNATIVE("nop", "j %l[svvptc]", 0, RISCV_ISA_EXT_SVVPTC, 1) @@ -535,7 +535,7 @@ svvptc:; #define update_mmu_tlb_range(vma, addr, ptep, nr) \ update_mmu_cache_range(NULL, vma, addr, ptep, nr) -static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, +static inline void update_mmu_cache_pmd(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pte_t *ptep = (pte_t *)pmdp; @@ -593,10 +593,10 @@ static inline void pte_clear(struct mm_struct *mm, } #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS /* defined in mm/pgtable.c */ -extern int ptep_set_access_flags(struct vm_area_struct *vma, unsigned long address, +extern int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty); #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG /* defined in mm/pgtable.c */ -extern int ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long address, +extern int ptep_test_and_clear_young(struct mm_area *vma, unsigned long address, pte_t *ptep); #define __HAVE_ARCH_PTEP_GET_AND_CLEAR @@ -618,7 +618,7 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, } #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -static inline int ptep_clear_flush_young(struct vm_area_struct *vma, +static inline int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { /* @@ -859,7 +859,7 @@ static inline int pmd_trans_huge(pmd_t pmd) } #define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -static inline int pmdp_set_access_flags(struct vm_area_struct *vma, +static inline int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { @@ -867,7 +867,7 @@ static inline int pmdp_set_access_flags(struct vm_area_struct *vma, } #define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG -static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, +static inline int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { return ptep_test_and_clear_young(vma, address, (pte_t *)pmdp); @@ -892,7 +892,7 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, } #define pmdp_establish pmdp_establish -static inline pmd_t pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { page_table_check_pmd_set(vma->vm_mm, pmdp, pmd); @@ -900,7 +900,7 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, } #define pmdp_collapse_flush pmdp_collapse_flush -extern pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +extern pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ diff --git a/arch/riscv/include/asm/tlbflush.h b/arch/riscv/include/asm/tlbflush.h index ce0dd0fed764..18dbd9b692b9 100644 --- a/arch/riscv/include/asm/tlbflush.h +++ b/arch/riscv/include/asm/tlbflush.h @@ -47,14 +47,14 @@ void flush_tlb_all(void); void flush_tlb_mm(struct mm_struct *mm); void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned int page_size); -void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr); -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_page(struct mm_area *vma, unsigned long addr); +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); void flush_tlb_kernel_range(unsigned long start, unsigned long end); void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); #ifdef CONFIG_TRANSPARENT_HUGEPAGE #define __HAVE_ARCH_FLUSH_PMD_TLB_RANGE -void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); #endif diff --git a/arch/riscv/kernel/vdso.c b/arch/riscv/kernel/vdso.c index cc2895d1fbc2..0aada37e5b12 100644 --- a/arch/riscv/kernel/vdso.c +++ b/arch/riscv/kernel/vdso.c @@ -34,7 +34,7 @@ static struct __vdso_info compat_vdso_info; #endif static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { current->mm->context.vdso = (void *)new_vma->vm_start; diff --git a/arch/riscv/kvm/mmu.c b/arch/riscv/kvm/mmu.c index 1087ea74567b..afd478082547 100644 --- a/arch/riscv/kvm/mmu.c +++ b/arch/riscv/kvm/mmu.c @@ -487,7 +487,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, * +--------------------------------------------+ */ do { - struct vm_area_struct *vma = find_vma(current->mm, hva); + struct mm_area *vma = find_vma(current->mm, hva); hva_t vm_start, vm_end; if (!vma || vma->vm_start >= reg_end) @@ -595,7 +595,7 @@ int kvm_riscv_gstage_map(struct kvm_vcpu *vcpu, bool writable; short vma_pageshift; gfn_t gfn = gpa >> PAGE_SHIFT; - struct vm_area_struct *vma; + struct mm_area *vma; struct kvm *kvm = vcpu->kvm; struct kvm_mmu_memory_cache *pcache = &vcpu->arch.mmu_page_cache; bool logging = (memslot->dirty_bitmap && diff --git a/arch/riscv/mm/fault.c b/arch/riscv/mm/fault.c index 0194324a0c50..75986abf7b4e 100644 --- a/arch/riscv/mm/fault.c +++ b/arch/riscv/mm/fault.c @@ -243,7 +243,7 @@ static inline void vmalloc_fault(struct pt_regs *regs, int code, unsigned long a local_flush_tlb_page(addr); } -static inline bool access_error(unsigned long cause, struct vm_area_struct *vma) +static inline bool access_error(unsigned long cause, struct mm_area *vma) { switch (cause) { case EXC_INST_PAGE_FAULT: @@ -275,7 +275,7 @@ static inline bool access_error(unsigned long cause, struct vm_area_struct *vma) void handle_page_fault(struct pt_regs *regs) { struct task_struct *tsk; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; unsigned long addr, cause; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/riscv/mm/hugetlbpage.c b/arch/riscv/mm/hugetlbpage.c index b4a78a4b35cf..f9ef0699f193 100644 --- a/arch/riscv/mm/hugetlbpage.c +++ b/arch/riscv/mm/hugetlbpage.c @@ -28,7 +28,7 @@ pte_t huge_ptep_get(struct mm_struct *mm, unsigned long addr, pte_t *ptep) } pte_t *huge_pte_alloc(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long sz) { @@ -172,7 +172,7 @@ static pte_t get_clear_contig_flush(struct mm_struct *mm, unsigned long pte_num) { pte_t orig_pte = get_clear_contig(mm, addr, ptep, pte_num); - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(mm, 0); bool valid = !pte_none(orig_pte); if (valid) @@ -203,7 +203,7 @@ static void clear_flush(struct mm_struct *mm, unsigned long pgsize, unsigned long ncontig) { - struct vm_area_struct vma = TLB_FLUSH_VMA(mm, 0); + struct mm_area vma = TLB_FLUSH_VMA(mm, 0); unsigned long i, saddr = addr; for (i = 0; i < ncontig; i++, addr += pgsize, ptep++) @@ -260,7 +260,7 @@ void set_huge_pte_at(struct mm_struct *mm, set_pte_at(mm, addr, ptep, pte); } -int huge_ptep_set_access_flags(struct vm_area_struct *vma, +int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, @@ -331,7 +331,7 @@ void huge_ptep_set_wrprotect(struct mm_struct *mm, set_pte_at(mm, addr, ptep, orig_pte); } -pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { diff --git a/arch/riscv/mm/pgtable.c b/arch/riscv/mm/pgtable.c index 4ae67324f992..f81997996346 100644 --- a/arch/riscv/mm/pgtable.c +++ b/arch/riscv/mm/pgtable.c @@ -5,7 +5,7 @@ #include #include -int ptep_set_access_flags(struct vm_area_struct *vma, +int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { @@ -31,7 +31,7 @@ int ptep_set_access_flags(struct vm_area_struct *vma, return false; } -int ptep_test_and_clear_young(struct vm_area_struct *vma, +int ptep_test_and_clear_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { @@ -136,7 +136,7 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) #endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */ #ifdef CONFIG_TRANSPARENT_HUGEPAGE -pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pmd_t pmd = pmdp_huge_get_and_clear(vma->vm_mm, address, pmdp); diff --git a/arch/riscv/mm/tlbflush.c b/arch/riscv/mm/tlbflush.c index c25a40aa2fe0..1ae019b7e60b 100644 --- a/arch/riscv/mm/tlbflush.c +++ b/arch/riscv/mm/tlbflush.c @@ -130,13 +130,13 @@ void flush_tlb_mm_range(struct mm_struct *mm, __flush_tlb_range(mm, mm_cpumask(mm), start, end - start, page_size); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +void flush_tlb_page(struct mm_area *vma, unsigned long addr) { __flush_tlb_range(vma->vm_mm, mm_cpumask(vma->vm_mm), addr, PAGE_SIZE, PAGE_SIZE); } -void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { unsigned long stride_size; @@ -176,7 +176,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) } #ifdef CONFIG_TRANSPARENT_HUGEPAGE -void flush_pmd_tlb_range(struct vm_area_struct *vma, unsigned long start, +void flush_pmd_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { __flush_tlb_range(vma->vm_mm, mm_cpumask(vma->vm_mm), diff --git a/arch/s390/include/asm/hugetlb.h b/arch/s390/include/asm/hugetlb.h index 931fcc413598..ad92be48a9e4 100644 --- a/arch/s390/include/asm/hugetlb.h +++ b/arch/s390/include/asm/hugetlb.h @@ -54,14 +54,14 @@ static inline void huge_pte_clear(struct mm_struct *mm, unsigned long addr, } #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long address, pte_t *ptep) { return __huge_ptep_get_and_clear(vma->vm_mm, address, ptep); } #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, +static inline int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index f8a6b54986ec..6bc573582112 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -1215,7 +1215,7 @@ pte_t ptep_xchg_direct(struct mm_struct *, unsigned long, pte_t *, pte_t); pte_t ptep_xchg_lazy(struct mm_struct *, unsigned long, pte_t *, pte_t); #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte = *ptep; @@ -1225,7 +1225,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, } #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -static inline int ptep_clear_flush_young(struct vm_area_struct *vma, +static inline int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { return ptep_test_and_clear_young(vma, address, ptep); @@ -1245,12 +1245,12 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION -pte_t ptep_modify_prot_start(struct vm_area_struct *, unsigned long, pte_t *); -void ptep_modify_prot_commit(struct vm_area_struct *, unsigned long, +pte_t ptep_modify_prot_start(struct mm_area *, unsigned long, pte_t *); +void ptep_modify_prot_commit(struct mm_area *, unsigned long, pte_t *, pte_t, pte_t); #define __HAVE_ARCH_PTEP_CLEAR_FLUSH -static inline pte_t ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t res; @@ -1327,7 +1327,7 @@ static inline int pte_allow_rdp(pte_t old, pte_t new) return (pte_val(old) & _PAGE_RDP_MASK) == (pte_val(new) & _PAGE_RDP_MASK); } -static inline void flush_tlb_fix_spurious_fault(struct vm_area_struct *vma, +static inline void flush_tlb_fix_spurious_fault(struct mm_area *vma, unsigned long address, pte_t *ptep) { @@ -1350,7 +1350,7 @@ void ptep_reset_dat_prot(struct mm_struct *mm, unsigned long addr, pte_t *ptep, pte_t new); #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -static inline int ptep_set_access_flags(struct vm_area_struct *vma, +static inline int ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t entry, int dirty) { @@ -1776,7 +1776,7 @@ void pgtable_trans_huge_deposit(struct mm_struct *mm, pmd_t *pmdp, pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); #define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -static inline int pmdp_set_access_flags(struct vm_area_struct *vma, +static inline int pmdp_set_access_flags(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, pmd_t entry, int dirty) { @@ -1792,7 +1792,7 @@ static inline int pmdp_set_access_flags(struct vm_area_struct *vma, } #define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG -static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, +static inline int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { pmd_t pmd = *pmdp; @@ -1802,7 +1802,7 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, } #define __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH -static inline int pmdp_clear_flush_young(struct vm_area_struct *vma, +static inline int pmdp_clear_flush_young(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { VM_BUG_ON(addr & ~HPAGE_MASK); @@ -1830,7 +1830,7 @@ static inline pmd_t pmdp_huge_get_and_clear(struct mm_struct *mm, } #define __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR_FULL -static inline pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, +static inline pmd_t pmdp_huge_get_and_clear_full(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, int full) { @@ -1843,14 +1843,14 @@ static inline pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, } #define __HAVE_ARCH_PMDP_HUGE_CLEAR_FLUSH -static inline pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, +static inline pmd_t pmdp_huge_clear_flush(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { return pmdp_huge_get_and_clear(vma->vm_mm, addr, pmdp); } #define __HAVE_ARCH_PMDP_INVALIDATE -static inline pmd_t pmdp_invalidate(struct vm_area_struct *vma, +static inline pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { pmd_t pmd; @@ -1870,7 +1870,7 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, pmd = pmdp_xchg_lazy(mm, addr, pmdp, pmd_wrprotect(pmd)); } -static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +static inline pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { diff --git a/arch/s390/include/asm/tlbflush.h b/arch/s390/include/asm/tlbflush.h index 75491baa2197..8eab59435a2c 100644 --- a/arch/s390/include/asm/tlbflush.h +++ b/arch/s390/include/asm/tlbflush.h @@ -111,7 +111,7 @@ static inline void flush_tlb_mm(struct mm_struct *mm) __tlb_flush_mm_lazy(mm); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { __tlb_flush_mm_lazy(vma->vm_mm); diff --git a/arch/s390/kernel/crash_dump.c b/arch/s390/kernel/crash_dump.c index 4a981266b483..cff27a7da9bc 100644 --- a/arch/s390/kernel/crash_dump.c +++ b/arch/s390/kernel/crash_dump.c @@ -176,7 +176,7 @@ ssize_t copy_oldmem_page(struct iov_iter *iter, unsigned long pfn, size_t csize, * For the kdump reserved memory this functions performs a swap operation: * [0 - OLDMEM_SIZE] is mapped to [OLDMEM_BASE - OLDMEM_BASE + OLDMEM_SIZE] */ -static int remap_oldmem_pfn_range_kdump(struct vm_area_struct *vma, +static int remap_oldmem_pfn_range_kdump(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { @@ -203,7 +203,7 @@ static int remap_oldmem_pfn_range_kdump(struct vm_area_struct *vma, * We only map available memory above HSA size. Memory below HSA size * is read on demand using the copy_oldmem_page() function. */ -static int remap_oldmem_pfn_range_zfcpdump(struct vm_area_struct *vma, +static int remap_oldmem_pfn_range_zfcpdump(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) @@ -225,7 +225,7 @@ static int remap_oldmem_pfn_range_zfcpdump(struct vm_area_struct *vma, /* * Remap "oldmem" for kdump or zfcp/nvme dump */ -int remap_oldmem_pfn_range(struct vm_area_struct *vma, unsigned long from, +int remap_oldmem_pfn_range(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { if (oldmem_data.start) diff --git a/arch/s390/kernel/uv.c b/arch/s390/kernel/uv.c index 9a5d5be8acf4..a41b180a29bc 100644 --- a/arch/s390/kernel/uv.c +++ b/arch/s390/kernel/uv.c @@ -356,7 +356,7 @@ static int s390_wiggle_split_folio(struct mm_struct *mm, struct folio *folio, bo int make_hva_secure(struct mm_struct *mm, unsigned long hva, struct uv_cb_header *uvcb) { - struct vm_area_struct *vma; + struct mm_area *vma; struct folio_walk fw; struct folio *folio; int rc; diff --git a/arch/s390/kernel/vdso.c b/arch/s390/kernel/vdso.c index 430feb1a5013..f660415e46c0 100644 --- a/arch/s390/kernel/vdso.c +++ b/arch/s390/kernel/vdso.c @@ -27,7 +27,7 @@ extern char vdso64_start[], vdso64_end[]; extern char vdso32_start[], vdso32_end[]; static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *vma) + struct mm_area *vma) { current->mm->context.vdso_base = vma->vm_start; return 0; @@ -55,7 +55,7 @@ static int map_vdso(unsigned long addr, unsigned long vdso_mapping_len) unsigned long vvar_start, vdso_text_start, vdso_text_len; struct vm_special_mapping *vdso_mapping; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int rc; BUILD_BUG_ON(VDSO_NR_PAGES != __VDSO_PAGES); diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c index da84ff6770de..119a4c17873b 100644 --- a/arch/s390/mm/fault.c +++ b/arch/s390/mm/fault.c @@ -258,7 +258,7 @@ static void do_sigbus(struct pt_regs *regs) */ static void do_exception(struct pt_regs *regs, int access) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long address; struct mm_struct *mm; unsigned int flags; @@ -405,7 +405,7 @@ void do_secure_storage_access(struct pt_regs *regs) { union teid teid = { .val = regs->int_parm_long }; unsigned long addr = get_fault_address(regs); - struct vm_area_struct *vma; + struct mm_area *vma; struct folio_walk fw; struct mm_struct *mm; struct folio *folio; diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c index a94bd4870c65..8c6a886f71d1 100644 --- a/arch/s390/mm/gmap.c +++ b/arch/s390/mm/gmap.c @@ -620,7 +620,7 @@ EXPORT_SYMBOL(__gmap_link); */ void __gmap_zap(struct gmap *gmap, unsigned long gaddr) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long vmaddr; spinlock_t *ptl; pte_t *ptep; @@ -648,7 +648,7 @@ EXPORT_SYMBOL_GPL(__gmap_zap); void gmap_discard(struct gmap *gmap, unsigned long from, unsigned long to) { unsigned long gaddr, vmaddr, size; - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(gmap->mm); for (gaddr = from; gaddr < to; @@ -2222,7 +2222,7 @@ EXPORT_SYMBOL_GPL(gmap_sync_dirty_log_pmd); static int thp_split_walk_pmd_entry(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; split_huge_pmd(vma, pmd, addr); return 0; @@ -2235,7 +2235,7 @@ static const struct mm_walk_ops thp_split_walk_ops = { static inline void thp_split_mm(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); for_each_vma(vmi, vma) { @@ -2312,7 +2312,7 @@ static const struct mm_walk_ops find_zeropage_ops = { */ static int __s390_unshare_zeropages(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); unsigned long addr; vm_fault_t fault; diff --git a/arch/s390/mm/hugetlbpage.c b/arch/s390/mm/hugetlbpage.c index e88c02c9e642..c54f4772b8bf 100644 --- a/arch/s390/mm/hugetlbpage.c +++ b/arch/s390/mm/hugetlbpage.c @@ -203,7 +203,7 @@ pte_t __huge_ptep_get_and_clear(struct mm_struct *mm, return pte; } -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgdp; diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c index 40a526d28184..edbd4688f56a 100644 --- a/arch/s390/mm/mmap.c +++ b/arch/s390/mm/mmap.c @@ -81,7 +81,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_unmapped_area_info info = {}; if (len > TASK_SIZE - mmap_min_addr) @@ -116,7 +116,7 @@ unsigned long arch_get_unmapped_area_topdown(struct file *filp, unsigned long ad unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; struct vm_unmapped_area_info info = {}; diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index 9901934284ec..28f0316e4db1 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c @@ -327,7 +327,7 @@ pte_t ptep_xchg_lazy(struct mm_struct *mm, unsigned long addr, } EXPORT_SYMBOL(ptep_xchg_lazy); -pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, +pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pgste_t pgste; @@ -346,7 +346,7 @@ pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, return old; } -void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, +void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { pgste_t pgste; @@ -437,7 +437,7 @@ static inline pmd_t pmdp_flush_lazy(struct mm_struct *mm, #ifdef CONFIG_PGSTE static int pmd_lookup(struct mm_struct *mm, unsigned long addr, pmd_t **pmdp) { - struct vm_area_struct *vma; + struct mm_area *vma; pgd_t *pgd; p4d_t *p4d; pud_t *pud; @@ -1032,7 +1032,7 @@ EXPORT_SYMBOL(get_guest_storage_key); int pgste_perform_essa(struct mm_struct *mm, unsigned long hva, int orc, unsigned long *oldpte, unsigned long *oldpgste) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long pgstev; spinlock_t *ptl; pgste_t pgste; @@ -1138,7 +1138,7 @@ EXPORT_SYMBOL(pgste_perform_essa); int set_pgste_bits(struct mm_struct *mm, unsigned long hva, unsigned long bits, unsigned long value) { - struct vm_area_struct *vma; + struct mm_area *vma; spinlock_t *ptl; pgste_t new; pte_t *ptep; @@ -1170,7 +1170,7 @@ EXPORT_SYMBOL(set_pgste_bits); */ int get_pgste(struct mm_struct *mm, unsigned long hva, unsigned long *pgstep) { - struct vm_area_struct *vma; + struct mm_area *vma; spinlock_t *ptl; pte_t *ptep; diff --git a/arch/s390/pci/pci_mmio.c b/arch/s390/pci/pci_mmio.c index 5fcc1a3b04bd..77d158f08245 100644 --- a/arch/s390/pci/pci_mmio.c +++ b/arch/s390/pci/pci_mmio.c @@ -126,7 +126,7 @@ SYSCALL_DEFINE3(s390_pci_mmio_write, unsigned long, mmio_addr, u8 local_buf[64]; void __iomem *io_addr; void *buf; - struct vm_area_struct *vma; + struct mm_area *vma; long ret; if (!zpci_is_enabled()) @@ -279,7 +279,7 @@ SYSCALL_DEFINE3(s390_pci_mmio_read, unsigned long, mmio_addr, u8 local_buf[64]; void __iomem *io_addr; void *buf; - struct vm_area_struct *vma; + struct mm_area *vma; long ret; if (!zpci_is_enabled()) diff --git a/arch/sh/include/asm/cacheflush.h b/arch/sh/include/asm/cacheflush.h index e6642ff14889..87666383d58a 100644 --- a/arch/sh/include/asm/cacheflush.h +++ b/arch/sh/include/asm/cacheflush.h @@ -37,9 +37,9 @@ extern void (*__flush_invalidate_region)(void *start, int size); extern void flush_cache_all(void); extern void flush_cache_mm(struct mm_struct *mm); extern void flush_cache_dup_mm(struct mm_struct *mm); -extern void flush_cache_page(struct vm_area_struct *vma, +extern void flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn); -extern void flush_cache_range(struct vm_area_struct *vma, +extern void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); #define ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE 1 void flush_dcache_folio(struct folio *folio); @@ -51,20 +51,20 @@ static inline void flush_dcache_page(struct page *page) extern void flush_icache_range(unsigned long start, unsigned long end); #define flush_icache_user_range flush_icache_range -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr); #define flush_icache_pages flush_icache_pages extern void flush_cache_sigtramp(unsigned long address); struct flusher_data { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr1, addr2; }; #define ARCH_HAS_FLUSH_ANON_PAGE extern void __flush_anon_page(struct page *page, unsigned long); -static inline void flush_anon_page(struct vm_area_struct *vma, +static inline void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { if (boot_cpu_data.dcache.n_aliases && PageAnon(page)) @@ -81,11 +81,11 @@ static inline void invalidate_kernel_vmap_range(void *addr, int size) __flush_invalidate_region(addr, size); } -extern void copy_to_user_page(struct vm_area_struct *vma, +extern void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len); -extern void copy_from_user_page(struct vm_area_struct *vma, +extern void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len); diff --git a/arch/sh/include/asm/hugetlb.h b/arch/sh/include/asm/hugetlb.h index 4a92e6e4d627..f2f364330ed9 100644 --- a/arch/sh/include/asm/hugetlb.h +++ b/arch/sh/include/asm/hugetlb.h @@ -6,7 +6,7 @@ #include #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { return *ptep; diff --git a/arch/sh/include/asm/page.h b/arch/sh/include/asm/page.h index 3990cbd9aa04..feba697dd921 100644 --- a/arch/sh/include/asm/page.h +++ b/arch/sh/include/asm/page.h @@ -48,10 +48,10 @@ extern void copy_page(void *to, void *from); #define copy_user_page(to, from, vaddr, pg) __copy_user(to, from, PAGE_SIZE) struct page; -struct vm_area_struct; +struct mm_area; extern void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #define __HAVE_ARCH_COPY_USER_HIGHPAGE extern void clear_user_highpage(struct page *page, unsigned long vaddr); #define clear_user_highpage clear_user_highpage diff --git a/arch/sh/include/asm/pgtable.h b/arch/sh/include/asm/pgtable.h index 729f5c6225fb..1cc0974cae6c 100644 --- a/arch/sh/include/asm/pgtable.h +++ b/arch/sh/include/asm/pgtable.h @@ -94,16 +94,16 @@ typedef pte_t *pte_addr_t; #define pte_pfn(x) ((unsigned long)(((x).pte_low >> PAGE_SHIFT))) -struct vm_area_struct; +struct mm_area; struct mm_struct; -extern void __update_cache(struct vm_area_struct *vma, +extern void __update_cache(struct mm_area *vma, unsigned long address, pte_t pte); -extern void __update_tlb(struct vm_area_struct *vma, +extern void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte); static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { pte_t pte = *ptep; diff --git a/arch/sh/include/asm/tlb.h b/arch/sh/include/asm/tlb.h index ddf324bfb9a0..6d1e9c61e24c 100644 --- a/arch/sh/include/asm/tlb.h +++ b/arch/sh/include/asm/tlb.h @@ -10,10 +10,10 @@ #include #if defined(CONFIG_CPU_SH4) -extern void tlb_wire_entry(struct vm_area_struct *, unsigned long, pte_t); +extern void tlb_wire_entry(struct mm_area *, unsigned long, pte_t); extern void tlb_unwire_entry(void); #else -static inline void tlb_wire_entry(struct vm_area_struct *vma , +static inline void tlb_wire_entry(struct mm_area *vma , unsigned long addr, pte_t pte) { BUG(); diff --git a/arch/sh/include/asm/tlbflush.h b/arch/sh/include/asm/tlbflush.h index 8f180cd3bcd6..ca2de60ad063 100644 --- a/arch/sh/include/asm/tlbflush.h +++ b/arch/sh/include/asm/tlbflush.h @@ -13,10 +13,10 @@ */ extern void local_flush_tlb_all(void); extern void local_flush_tlb_mm(struct mm_struct *mm); -extern void local_flush_tlb_range(struct vm_area_struct *vma, +extern void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void local_flush_tlb_page(struct vm_area_struct *vma, +extern void local_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); @@ -28,9 +28,9 @@ extern void __flush_tlb_global(void); extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -extern void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void flush_tlb_page(struct mm_area *vma, unsigned long page); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); extern void flush_tlb_one(unsigned long asid, unsigned long page); diff --git a/arch/sh/kernel/smp.c b/arch/sh/kernel/smp.c index 108d808767fa..61d56994d473 100644 --- a/arch/sh/kernel/smp.c +++ b/arch/sh/kernel/smp.c @@ -377,7 +377,7 @@ void flush_tlb_mm(struct mm_struct *mm) } struct flush_tlb_data { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr1; unsigned long addr2; }; @@ -389,7 +389,7 @@ static void flush_tlb_range_ipi(void *info) local_flush_tlb_range(fd->vma, fd->addr1, fd->addr2); } -void flush_tlb_range(struct vm_area_struct *vma, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -435,7 +435,7 @@ static void flush_tlb_page_ipi(void *info) local_flush_tlb_page(fd->vma, fd->addr1); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void flush_tlb_page(struct mm_area *vma, unsigned long page) { preempt_disable(); if ((atomic_read(&vma->vm_mm->mm_users) != 1) || diff --git a/arch/sh/kernel/sys_sh.c b/arch/sh/kernel/sys_sh.c index a5a7b33ed81a..2d263feef643 100644 --- a/arch/sh/kernel/sys_sh.c +++ b/arch/sh/kernel/sys_sh.c @@ -57,7 +57,7 @@ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len, /* sys_cacheflush -- flush (part of) the processor cache. */ asmlinkage int sys_cacheflush(unsigned long addr, unsigned long len, int op) { - struct vm_area_struct *vma; + struct mm_area *vma; if ((op <= 0) || (op > (CACHEFLUSH_D_PURGE|CACHEFLUSH_I))) return -EINVAL; diff --git a/arch/sh/kernel/vsyscall/vsyscall.c b/arch/sh/kernel/vsyscall/vsyscall.c index 1563dcc55fd3..9916506a052a 100644 --- a/arch/sh/kernel/vsyscall/vsyscall.c +++ b/arch/sh/kernel/vsyscall/vsyscall.c @@ -83,7 +83,7 @@ fs_initcall(vm_sysctl_init); int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr; int ret; @@ -113,7 +113,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) return ret; } -const char *arch_vma_name(struct vm_area_struct *vma) +const char *arch_vma_name(struct mm_area *vma) { if (vma->vm_mm && vma->vm_start == (long)vma->vm_mm->context.vdso) return "[vdso]"; diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index 46393b00137e..f4d37a852d27 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c @@ -214,7 +214,7 @@ static void sh4_flush_cache_mm(void *arg) static void sh4_flush_cache_page(void *args) { struct flusher_data *data = args; - struct vm_area_struct *vma; + struct mm_area *vma; struct page *page; unsigned long address, pfn, phys; int map_coherent = 0; @@ -283,7 +283,7 @@ static void sh4_flush_cache_page(void *args) static void sh4_flush_cache_range(void *args) { struct flusher_data *data = args; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long start, end; vma = data->vma; diff --git a/arch/sh/mm/cache.c b/arch/sh/mm/cache.c index 6ebdeaff3021..2f85019529ff 100644 --- a/arch/sh/mm/cache.c +++ b/arch/sh/mm/cache.c @@ -57,7 +57,7 @@ static inline void cacheop_on_each_cpu(void (*func) (void *info), void *info, preempt_enable(); } -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -78,7 +78,7 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page, flush_cache_page(vma, vaddr, page_to_pfn(page)); } -void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -97,7 +97,7 @@ void copy_from_user_page(struct vm_area_struct *vma, struct page *page, } void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { struct folio *src = page_folio(from); void *vfrom, *vto; @@ -138,7 +138,7 @@ void clear_user_highpage(struct page *page, unsigned long vaddr) } EXPORT_SYMBOL(clear_user_highpage); -void __update_cache(struct vm_area_struct *vma, +void __update_cache(struct mm_area *vma, unsigned long address, pte_t pte) { unsigned long pfn = pte_pfn(pte); @@ -197,7 +197,7 @@ void flush_cache_dup_mm(struct mm_struct *mm) cacheop_on_each_cpu(local_flush_cache_dup_mm, mm, 1); } -void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, +void flush_cache_page(struct mm_area *vma, unsigned long addr, unsigned long pfn) { struct flusher_data data; @@ -209,7 +209,7 @@ void flush_cache_page(struct vm_area_struct *vma, unsigned long addr, cacheop_on_each_cpu(local_flush_cache_page, (void *)&data, 1); } -void flush_cache_range(struct vm_area_struct *vma, unsigned long start, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct flusher_data data; @@ -240,7 +240,7 @@ void flush_icache_range(unsigned long start, unsigned long end) } EXPORT_SYMBOL(flush_icache_range); -void flush_icache_pages(struct vm_area_struct *vma, struct page *page, +void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr) { /* Nothing uses the VMA, so just pass the folio along */ diff --git a/arch/sh/mm/fault.c b/arch/sh/mm/fault.c index 06e6b4952924..962137e245fc 100644 --- a/arch/sh/mm/fault.c +++ b/arch/sh/mm/fault.c @@ -355,7 +355,7 @@ mm_fault_error(struct pt_regs *regs, unsigned long error_code, return 1; } -static inline int access_error(int error_code, struct vm_area_struct *vma) +static inline int access_error(int error_code, struct mm_area *vma) { if (error_code & FAULT_CODE_WRITE) { /* write, present and write, not present: */ @@ -393,7 +393,7 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs, unsigned long vec; struct task_struct *tsk; struct mm_struct *mm; - struct vm_area_struct * vma; + struct mm_area * vma; vm_fault_t fault; unsigned int flags = FAULT_FLAG_DEFAULT; diff --git a/arch/sh/mm/hugetlbpage.c b/arch/sh/mm/hugetlbpage.c index ff209b55285a..ea147dc50cfa 100644 --- a/arch/sh/mm/hugetlbpage.c +++ b/arch/sh/mm/hugetlbpage.c @@ -21,7 +21,7 @@ #include #include -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c index c442734d9b0c..a015e881f62f 100644 --- a/arch/sh/mm/mmap.c +++ b/arch/sh/mm/mmap.c @@ -56,7 +56,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int do_colour_align; struct vm_unmapped_area_info info = {}; @@ -102,7 +102,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, const unsigned long len, const unsigned long pgoff, const unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; unsigned long addr = addr0; int do_colour_align; diff --git a/arch/sh/mm/nommu.c b/arch/sh/mm/nommu.c index fa3dc9428a73..739f316eb55a 100644 --- a/arch/sh/mm/nommu.c +++ b/arch/sh/mm/nommu.c @@ -46,13 +46,13 @@ void local_flush_tlb_mm(struct mm_struct *mm) BUG(); } -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { BUG(); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { BUG(); } @@ -71,7 +71,7 @@ void __flush_tlb_global(void) { } -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte) { } diff --git a/arch/sh/mm/tlb-pteaex.c b/arch/sh/mm/tlb-pteaex.c index 4db21adfe5de..c88f5cdca94e 100644 --- a/arch/sh/mm/tlb-pteaex.c +++ b/arch/sh/mm/tlb-pteaex.c @@ -15,7 +15,7 @@ #include #include -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte) { unsigned long flags, pteval, vpn; diff --git a/arch/sh/mm/tlb-sh3.c b/arch/sh/mm/tlb-sh3.c index fb400afc2a49..77369712a89c 100644 --- a/arch/sh/mm/tlb-sh3.c +++ b/arch/sh/mm/tlb-sh3.c @@ -24,7 +24,7 @@ #include #include -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte) { unsigned long flags, pteval, vpn; diff --git a/arch/sh/mm/tlb-sh4.c b/arch/sh/mm/tlb-sh4.c index aa0a9f4680a1..edd340097b4a 100644 --- a/arch/sh/mm/tlb-sh4.c +++ b/arch/sh/mm/tlb-sh4.c @@ -13,7 +13,7 @@ #include #include -void __update_tlb(struct vm_area_struct *vma, unsigned long address, pte_t pte) +void __update_tlb(struct mm_area *vma, unsigned long address, pte_t pte) { unsigned long flags, pteval, vpn; diff --git a/arch/sh/mm/tlb-urb.c b/arch/sh/mm/tlb-urb.c index c92ce20db39b..78a98552ccac 100644 --- a/arch/sh/mm/tlb-urb.c +++ b/arch/sh/mm/tlb-urb.c @@ -17,7 +17,7 @@ /* * Load the entry for 'addr' into the TLB and wire the entry. */ -void tlb_wire_entry(struct vm_area_struct *vma, unsigned long addr, pte_t pte) +void tlb_wire_entry(struct mm_area *vma, unsigned long addr, pte_t pte) { unsigned long status, flags; int urb; diff --git a/arch/sh/mm/tlbflush_32.c b/arch/sh/mm/tlbflush_32.c index a6a20d6de4c0..6307b906924a 100644 --- a/arch/sh/mm/tlbflush_32.c +++ b/arch/sh/mm/tlbflush_32.c @@ -12,7 +12,7 @@ #include #include -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { unsigned int cpu = smp_processor_id(); @@ -36,7 +36,7 @@ void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) } } -void local_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; diff --git a/arch/sparc/include/asm/cacheflush_64.h b/arch/sparc/include/asm/cacheflush_64.h index 2b1261b77ecd..1e6477ef34bb 100644 --- a/arch/sparc/include/asm/cacheflush_64.h +++ b/arch/sparc/include/asm/cacheflush_64.h @@ -53,7 +53,7 @@ static inline void flush_dcache_page(struct page *page) flush_dcache_folio(page_folio(page)); } -void flush_ptrace_access(struct vm_area_struct *, struct page *, +void flush_ptrace_access(struct mm_area *, struct page *, unsigned long uaddr, void *kaddr, unsigned long len, int write); diff --git a/arch/sparc/include/asm/cachetlb_32.h b/arch/sparc/include/asm/cachetlb_32.h index 534da70c6357..1ae6b8f58673 100644 --- a/arch/sparc/include/asm/cachetlb_32.h +++ b/arch/sparc/include/asm/cachetlb_32.h @@ -3,20 +3,20 @@ #define _SPARC_CACHETLB_H struct mm_struct; -struct vm_area_struct; +struct mm_area; struct sparc32_cachetlb_ops { void (*cache_all)(void); void (*cache_mm)(struct mm_struct *); - void (*cache_range)(struct vm_area_struct *, unsigned long, + void (*cache_range)(struct mm_area *, unsigned long, unsigned long); - void (*cache_page)(struct vm_area_struct *, unsigned long); + void (*cache_page)(struct mm_area *, unsigned long); void (*tlb_all)(void); void (*tlb_mm)(struct mm_struct *); - void (*tlb_range)(struct vm_area_struct *, unsigned long, + void (*tlb_range)(struct mm_area *, unsigned long, unsigned long); - void (*tlb_page)(struct vm_area_struct *, unsigned long); + void (*tlb_page)(struct mm_area *, unsigned long); void (*page_to_ram)(unsigned long); void (*sig_insns)(struct mm_struct *, unsigned long); diff --git a/arch/sparc/include/asm/hugetlb.h b/arch/sparc/include/asm/hugetlb.h index e7a9cdd498dc..fdc29771a6a6 100644 --- a/arch/sparc/include/asm/hugetlb.h +++ b/arch/sparc/include/asm/hugetlb.h @@ -23,7 +23,7 @@ pte_t huge_ptep_get_and_clear(struct mm_struct *mm, unsigned long addr, pte_t *ptep, unsigned long sz); #define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { return *ptep; @@ -38,7 +38,7 @@ static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, } #define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, +static inline int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { diff --git a/arch/sparc/include/asm/leon.h b/arch/sparc/include/asm/leon.h index c1e05e4ab9e3..e0cf0f724fb4 100644 --- a/arch/sparc/include/asm/leon.h +++ b/arch/sparc/include/asm/leon.h @@ -195,7 +195,7 @@ static inline int sparc_leon3_cpuid(void) #define LEON2_CFG_SSIZE_MASK 0x00007000UL #ifndef __ASSEMBLY__ -struct vm_area_struct; +struct mm_area; unsigned long leon_swprobe(unsigned long vaddr, unsigned long *paddr); void leon_flush_icache_all(void); @@ -204,7 +204,7 @@ void leon_flush_cache_all(void); void leon_flush_tlb_all(void); extern int leon_flush_during_switch; int leon_flush_needed(void); -void leon_flush_pcache_all(struct vm_area_struct *vma, unsigned long page); +void leon_flush_pcache_all(struct mm_area *vma, unsigned long page); /* struct that hold LEON3 cache configuration registers */ struct leon3_cacheregs { diff --git a/arch/sparc/include/asm/page_64.h b/arch/sparc/include/asm/page_64.h index 2a68ff5b6eab..1abc1d8743c5 100644 --- a/arch/sparc/include/asm/page_64.h +++ b/arch/sparc/include/asm/page_64.h @@ -46,9 +46,9 @@ void clear_user_page(void *addr, unsigned long vaddr, struct page *page); #define copy_page(X,Y) memcpy((void *)(X), (void *)(Y), PAGE_SIZE) void copy_user_page(void *to, void *from, unsigned long vaddr, struct page *topage); #define __HAVE_ARCH_COPY_USER_HIGHPAGE -struct vm_area_struct; +struct mm_area; void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #define __HAVE_ARCH_COPY_HIGHPAGE void copy_highpage(struct page *to, struct page *from); diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h index 62bcafe38b1f..a451d5430db1 100644 --- a/arch/sparc/include/asm/pgtable_32.h +++ b/arch/sparc/include/asm/pgtable_32.h @@ -33,7 +33,7 @@ #include -struct vm_area_struct; +struct mm_area; struct page; void load_mmu(void); @@ -400,10 +400,10 @@ __get_iospace (unsigned long addr) #define GET_IOSPACE(pfn) (pfn >> (BITS_PER_LONG - 4)) #define GET_PFN(pfn) (pfn & 0x0fffffffUL) -int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long, +int remap_pfn_range(struct mm_area *, unsigned long, unsigned long, unsigned long, pgprot_t); -static inline int io_remap_pfn_range(struct vm_area_struct *vma, +static inline int io_remap_pfn_range(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { diff --git a/arch/sparc/include/asm/pgtable_64.h b/arch/sparc/include/asm/pgtable_64.h index dc28f2c4eee3..7d06b4894f2a 100644 --- a/arch/sparc/include/asm/pgtable_64.h +++ b/arch/sparc/include/asm/pgtable_64.h @@ -979,17 +979,17 @@ unsigned long find_ecache_flush_span(unsigned long size); struct seq_file; void mmu_info(struct seq_file *); -struct vm_area_struct; -void update_mmu_cache_range(struct vm_fault *, struct vm_area_struct *, +struct mm_area; +void update_mmu_cache_range(struct vm_fault *, struct mm_area *, unsigned long addr, pte_t *ptep, unsigned int nr); #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) #ifdef CONFIG_TRANSPARENT_HUGEPAGE -void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, +void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd); #define __HAVE_ARCH_PMDP_INVALIDATE -extern pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +extern pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #define __HAVE_ARCH_PGTABLE_DEPOSIT @@ -1050,18 +1050,18 @@ int page_in_phys_avail(unsigned long paddr); #define GET_IOSPACE(pfn) (pfn >> (BITS_PER_LONG - 4)) #define GET_PFN(pfn) (pfn & 0x0fffffffffffffffUL) -int remap_pfn_range(struct vm_area_struct *, unsigned long, unsigned long, +int remap_pfn_range(struct mm_area *, unsigned long, unsigned long, unsigned long, pgprot_t); -void adi_restore_tags(struct mm_struct *mm, struct vm_area_struct *vma, +void adi_restore_tags(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t pte); -int adi_save_tags(struct mm_struct *mm, struct vm_area_struct *vma, +int adi_save_tags(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t oldpte); #define __HAVE_ARCH_DO_SWAP_PAGE static inline void arch_do_swap_page(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t pte, pte_t oldpte) { @@ -1078,7 +1078,7 @@ static inline void arch_do_swap_page(struct mm_struct *mm, #define __HAVE_ARCH_UNMAP_ONE static inline int arch_unmap_one(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t oldpte) { if (adi_state.enabled && (pte_val(oldpte) & _PAGE_MCD_4V)) @@ -1086,7 +1086,7 @@ static inline int arch_unmap_one(struct mm_struct *mm, return 0; } -static inline int io_remap_pfn_range(struct vm_area_struct *vma, +static inline int io_remap_pfn_range(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { diff --git a/arch/sparc/include/asm/tlbflush_64.h b/arch/sparc/include/asm/tlbflush_64.h index 8b8cdaa69272..c41114cbd3fe 100644 --- a/arch/sparc/include/asm/tlbflush_64.h +++ b/arch/sparc/include/asm/tlbflush_64.h @@ -27,12 +27,12 @@ static inline void flush_tlb_mm(struct mm_struct *mm) { } -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long vmaddr) { } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { } diff --git a/arch/sparc/kernel/adi_64.c b/arch/sparc/kernel/adi_64.c index e0e4fc527b24..3e7c7bb97fd8 100644 --- a/arch/sparc/kernel/adi_64.c +++ b/arch/sparc/kernel/adi_64.c @@ -122,7 +122,7 @@ void __init mdesc_adi_init(void) } static tag_storage_desc_t *find_tag_store(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) { tag_storage_desc_t *tag_desc = NULL; @@ -154,7 +154,7 @@ static tag_storage_desc_t *find_tag_store(struct mm_struct *mm, } static tag_storage_desc_t *alloc_tag_store(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) { unsigned char *tags; @@ -324,7 +324,7 @@ static void del_tag_store(tag_storage_desc_t *tag_desc, struct mm_struct *mm) /* Retrieve any saved ADI tags for the page being swapped back in and * restore these tags to the newly allocated physical page. */ -void adi_restore_tags(struct mm_struct *mm, struct vm_area_struct *vma, +void adi_restore_tags(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t pte) { unsigned char *tag; @@ -367,7 +367,7 @@ void adi_restore_tags(struct mm_struct *mm, struct vm_area_struct *vma, * this physical page so they can be restored later when the page is swapped * back in. */ -int adi_save_tags(struct mm_struct *mm, struct vm_area_struct *vma, +int adi_save_tags(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t oldpte) { unsigned char *tag; diff --git a/arch/sparc/kernel/asm-offsets.c b/arch/sparc/kernel/asm-offsets.c index 3d9b9855dce9..360c8cb8f396 100644 --- a/arch/sparc/kernel/asm-offsets.c +++ b/arch/sparc/kernel/asm-offsets.c @@ -52,7 +52,7 @@ static int __used foo(void) BLANK(); DEFINE(AOFF_mm_context, offsetof(struct mm_struct, context)); BLANK(); - DEFINE(VMA_VM_MM, offsetof(struct vm_area_struct, vm_mm)); + DEFINE(VMA_VM_MM, offsetof(struct mm_area, vm_mm)); /* DEFINE(NUM_USER_SEGMENTS, TASK_SIZE>>28); */ return 0; diff --git a/arch/sparc/kernel/pci.c b/arch/sparc/kernel/pci.c index ddac216a2aff..64767a6e60cd 100644 --- a/arch/sparc/kernel/pci.c +++ b/arch/sparc/kernel/pci.c @@ -750,7 +750,7 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) } /* Platform support for /proc/bus/pci/X/Y mmap()s. */ -int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma) +int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct mm_area *vma) { struct pci_pbm_info *pbm = pdev->dev.archdata.host_controller; resource_size_t ioaddr = pci_resource_start(pdev, bar); diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c index 4deba5b6eddb..2bbee6413504 100644 --- a/arch/sparc/kernel/ptrace_64.c +++ b/arch/sparc/kernel/ptrace_64.c @@ -103,7 +103,7 @@ void ptrace_disable(struct task_struct *child) * has been created * 2) flush the I-cache if this is pre-cheetah and we did a write */ -void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, +void flush_ptrace_access(struct mm_area *vma, struct page *page, unsigned long uaddr, void *kaddr, unsigned long len, int write) { diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c index c5a284df7b41..261c971b346a 100644 --- a/arch/sparc/kernel/sys_sparc_64.c +++ b/arch/sparc/kernel/sys_sparc_64.c @@ -101,7 +101,7 @@ static unsigned long get_align_mask(struct file *filp, unsigned long flags) unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct * vma; + struct mm_area * vma; unsigned long task_size = TASK_SIZE; int do_color_align; struct vm_unmapped_area_info info = {}; @@ -164,7 +164,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0, const unsigned long len, const unsigned long pgoff, const unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; unsigned long task_size = STACK_TOP32; unsigned long addr = addr0; diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c index 86a831ebd8c8..27bb2c2a8d54 100644 --- a/arch/sparc/mm/fault_32.c +++ b/arch/sparc/mm/fault_32.c @@ -112,7 +112,7 @@ static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs, asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, unsigned long address) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; int from_user = !(regs->psr & PSR_PS); @@ -304,7 +304,7 @@ asmlinkage void do_sparc_fault(struct pt_regs *regs, int text_fault, int write, /* This always deals with user addresses. */ static void force_user_fault(unsigned long address, int write) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk = current; struct mm_struct *mm = tsk->mm; unsigned int flags = FAULT_FLAG_USER; diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c index e326caf708c6..1dd10e512d61 100644 --- a/arch/sparc/mm/fault_64.c +++ b/arch/sparc/mm/fault_64.c @@ -268,7 +268,7 @@ asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs) { enum ctx_state prev_state = exception_enter(); struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned int insn = 0; int si_code, fault_code; vm_fault_t fault; diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c index 80504148d8a5..c02f3fa3a0fa 100644 --- a/arch/sparc/mm/hugetlbpage.c +++ b/arch/sparc/mm/hugetlbpage.c @@ -167,7 +167,7 @@ unsigned long pud_leaf_size(pud_t pud) { return 1UL << tte_to_shift(*(pte_t *)&p unsigned long pmd_leaf_size(pmd_t pmd) { return 1UL << tte_to_shift(*(pte_t *)&pmd); } unsigned long pte_leaf_size(pte_t pte) { return 1UL << tte_to_shift(pte); } -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c index 760818950464..235770b832be 100644 --- a/arch/sparc/mm/init_64.c +++ b/arch/sparc/mm/init_64.c @@ -394,7 +394,7 @@ bool __init arch_hugetlb_valid_size(unsigned long size) } #endif /* CONFIG_HUGETLB_PAGE */ -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { struct mm_struct *mm; @@ -2945,7 +2945,7 @@ void pte_free_defer(struct mm_struct *mm, pgtable_t pgtable) call_rcu(&page->rcu_head, pte_free_now); } -void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long addr, +void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd) { unsigned long pte, flags; @@ -3134,7 +3134,7 @@ void flush_tlb_kernel_range(unsigned long start, unsigned long end) } void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { char *vfrom, *vto; diff --git a/arch/sparc/mm/leon_mm.c b/arch/sparc/mm/leon_mm.c index 1dc9b3d70eda..2e36b02d81d2 100644 --- a/arch/sparc/mm/leon_mm.c +++ b/arch/sparc/mm/leon_mm.c @@ -185,7 +185,7 @@ void leon_flush_dcache_all(void) "i"(ASI_LEON_DFLUSH) : "memory"); } -void leon_flush_pcache_all(struct vm_area_struct *vma, unsigned long page) +void leon_flush_pcache_all(struct mm_area *vma, unsigned long page) { if (vma->vm_flags & VM_EXEC) leon_flush_icache_all(); @@ -273,12 +273,12 @@ static void leon_flush_cache_mm(struct mm_struct *mm) leon_flush_cache_all(); } -static void leon_flush_cache_page(struct vm_area_struct *vma, unsigned long page) +static void leon_flush_cache_page(struct mm_area *vma, unsigned long page) { leon_flush_pcache_all(vma, page); } -static void leon_flush_cache_range(struct vm_area_struct *vma, +static void leon_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -290,13 +290,13 @@ static void leon_flush_tlb_mm(struct mm_struct *mm) leon_flush_tlb_all(); } -static void leon_flush_tlb_page(struct vm_area_struct *vma, +static void leon_flush_tlb_page(struct mm_area *vma, unsigned long page) { leon_flush_tlb_all(); } -static void leon_flush_tlb_range(struct vm_area_struct *vma, +static void leon_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { diff --git a/arch/sparc/mm/srmmu.c b/arch/sparc/mm/srmmu.c index dd32711022f5..1337bc4daf6f 100644 --- a/arch/sparc/mm/srmmu.c +++ b/arch/sparc/mm/srmmu.c @@ -555,34 +555,34 @@ void srmmu_unmapiorange(unsigned long virt_addr, unsigned int len) /* tsunami.S */ extern void tsunami_flush_cache_all(void); extern void tsunami_flush_cache_mm(struct mm_struct *mm); -extern void tsunami_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -extern void tsunami_flush_cache_page(struct vm_area_struct *vma, unsigned long page); +extern void tsunami_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); +extern void tsunami_flush_cache_page(struct mm_area *vma, unsigned long page); extern void tsunami_flush_page_to_ram(unsigned long page); extern void tsunami_flush_page_for_dma(unsigned long page); extern void tsunami_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr); extern void tsunami_flush_tlb_all(void); extern void tsunami_flush_tlb_mm(struct mm_struct *mm); -extern void tsunami_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -extern void tsunami_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void tsunami_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); +extern void tsunami_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void tsunami_setup_blockops(void); /* swift.S */ extern void swift_flush_cache_all(void); extern void swift_flush_cache_mm(struct mm_struct *mm); -extern void swift_flush_cache_range(struct vm_area_struct *vma, +extern void swift_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void swift_flush_cache_page(struct vm_area_struct *vma, unsigned long page); +extern void swift_flush_cache_page(struct mm_area *vma, unsigned long page); extern void swift_flush_page_to_ram(unsigned long page); extern void swift_flush_page_for_dma(unsigned long page); extern void swift_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr); extern void swift_flush_tlb_all(void); extern void swift_flush_tlb_mm(struct mm_struct *mm); -extern void swift_flush_tlb_range(struct vm_area_struct *vma, +extern void swift_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void swift_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void swift_flush_tlb_page(struct mm_area *vma, unsigned long page); #if 0 /* P3: deadwood to debug precise flushes on Swift. */ -void swift_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void swift_flush_tlb_page(struct mm_area *vma, unsigned long page) { int cctx, ctx1; @@ -621,9 +621,9 @@ void swift_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) /* viking.S */ extern void viking_flush_cache_all(void); extern void viking_flush_cache_mm(struct mm_struct *mm); -extern void viking_flush_cache_range(struct vm_area_struct *vma, unsigned long start, +extern void viking_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void viking_flush_cache_page(struct vm_area_struct *vma, unsigned long page); +extern void viking_flush_cache_page(struct mm_area *vma, unsigned long page); extern void viking_flush_page_to_ram(unsigned long page); extern void viking_flush_page_for_dma(unsigned long page); extern void viking_flush_sig_insns(struct mm_struct *mm, unsigned long addr); @@ -631,29 +631,29 @@ extern void viking_flush_page(unsigned long page); extern void viking_mxcc_flush_page(unsigned long page); extern void viking_flush_tlb_all(void); extern void viking_flush_tlb_mm(struct mm_struct *mm); -extern void viking_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void viking_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void viking_flush_tlb_page(struct vm_area_struct *vma, +extern void viking_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void sun4dsmp_flush_tlb_all(void); extern void sun4dsmp_flush_tlb_mm(struct mm_struct *mm); -extern void sun4dsmp_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, +extern void sun4dsmp_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); -extern void sun4dsmp_flush_tlb_page(struct vm_area_struct *vma, +extern void sun4dsmp_flush_tlb_page(struct mm_area *vma, unsigned long page); /* hypersparc.S */ extern void hypersparc_flush_cache_all(void); extern void hypersparc_flush_cache_mm(struct mm_struct *mm); -extern void hypersparc_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -extern void hypersparc_flush_cache_page(struct vm_area_struct *vma, unsigned long page); +extern void hypersparc_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); +extern void hypersparc_flush_cache_page(struct mm_area *vma, unsigned long page); extern void hypersparc_flush_page_to_ram(unsigned long page); extern void hypersparc_flush_page_for_dma(unsigned long page); extern void hypersparc_flush_sig_insns(struct mm_struct *mm, unsigned long insn_addr); extern void hypersparc_flush_tlb_all(void); extern void hypersparc_flush_tlb_mm(struct mm_struct *mm); -extern void hypersparc_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end); -extern void hypersparc_flush_tlb_page(struct vm_area_struct *vma, unsigned long page); +extern void hypersparc_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); +extern void hypersparc_flush_tlb_page(struct mm_area *vma, unsigned long page); extern void hypersparc_setup_blockops(void); /* @@ -1235,7 +1235,7 @@ static void turbosparc_flush_cache_mm(struct mm_struct *mm) FLUSH_END } -static void turbosparc_flush_cache_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +static void turbosparc_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { FLUSH_BEGIN(vma->vm_mm) flush_user_windows(); @@ -1243,7 +1243,7 @@ static void turbosparc_flush_cache_range(struct vm_area_struct *vma, unsigned lo FLUSH_END } -static void turbosparc_flush_cache_page(struct vm_area_struct *vma, unsigned long page) +static void turbosparc_flush_cache_page(struct mm_area *vma, unsigned long page) { FLUSH_BEGIN(vma->vm_mm) flush_user_windows(); @@ -1286,14 +1286,14 @@ static void turbosparc_flush_tlb_mm(struct mm_struct *mm) FLUSH_END } -static void turbosparc_flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end) +static void turbosparc_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { FLUSH_BEGIN(vma->vm_mm) srmmu_flush_whole_tlb(); FLUSH_END } -static void turbosparc_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +static void turbosparc_flush_tlb_page(struct mm_area *vma, unsigned long page) { FLUSH_BEGIN(vma->vm_mm) srmmu_flush_whole_tlb(); @@ -1672,7 +1672,7 @@ static void smp_flush_tlb_mm(struct mm_struct *mm) } } -static void smp_flush_cache_range(struct vm_area_struct *vma, +static void smp_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -1686,7 +1686,7 @@ static void smp_flush_cache_range(struct vm_area_struct *vma, } } -static void smp_flush_tlb_range(struct vm_area_struct *vma, +static void smp_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -1700,7 +1700,7 @@ static void smp_flush_tlb_range(struct vm_area_struct *vma, } } -static void smp_flush_cache_page(struct vm_area_struct *vma, unsigned long page) +static void smp_flush_cache_page(struct mm_area *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; @@ -1711,7 +1711,7 @@ static void smp_flush_cache_page(struct vm_area_struct *vma, unsigned long page) } } -static void smp_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +static void smp_flush_tlb_page(struct mm_area *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c index a35ddcca5e76..dd950cbd4fd7 100644 --- a/arch/sparc/mm/tlb.c +++ b/arch/sparc/mm/tlb.c @@ -231,7 +231,7 @@ void set_pmd_at(struct mm_struct *mm, unsigned long addr, __set_pmd_acct(mm, addr, orig, pmd); } -static inline pmd_t pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { pmd_t old; @@ -247,7 +247,7 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, /* * This routine is only called when splitting a THP */ -pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pmd_t old, entry; diff --git a/arch/sparc/vdso/vma.c b/arch/sparc/vdso/vma.c index bab7a59575e8..f8124af4d6f0 100644 --- a/arch/sparc/vdso/vma.c +++ b/arch/sparc/vdso/vma.c @@ -363,7 +363,7 @@ static int map_vdso(const struct vdso_image *image, struct vm_special_mapping *vdso_mapping) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long text_start, addr = 0; int ret = 0; diff --git a/arch/um/drivers/mmapper_kern.c b/arch/um/drivers/mmapper_kern.c index 807cd3358740..0cb875338307 100644 --- a/arch/um/drivers/mmapper_kern.c +++ b/arch/um/drivers/mmapper_kern.c @@ -46,7 +46,7 @@ static long mmapper_ioctl(struct file *file, unsigned int cmd, unsigned long arg return -ENOIOCTLCMD; } -static int mmapper_mmap(struct file *file, struct vm_area_struct *vma) +static int mmapper_mmap(struct file *file, struct mm_area *vma) { int ret = -EINVAL; int size; diff --git a/arch/um/include/asm/tlbflush.h b/arch/um/include/asm/tlbflush.h index 13a3009942be..cb9e58edd300 100644 --- a/arch/um/include/asm/tlbflush.h +++ b/arch/um/include/asm/tlbflush.h @@ -35,13 +35,13 @@ extern int um_tlb_sync(struct mm_struct *mm); extern void flush_tlb_all(void); extern void flush_tlb_mm(struct mm_struct *mm); -static inline void flush_tlb_page(struct vm_area_struct *vma, +static inline void flush_tlb_page(struct mm_area *vma, unsigned long address) { um_tlb_mark_sync(vma->vm_mm, address, address + PAGE_SIZE); } -static inline void flush_tlb_range(struct vm_area_struct *vma, +static inline void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { um_tlb_mark_sync(vma->vm_mm, start, end); diff --git a/arch/um/kernel/tlb.c b/arch/um/kernel/tlb.c index cf7e0d4407f2..9d8fc85b2896 100644 --- a/arch/um/kernel/tlb.c +++ b/arch/um/kernel/tlb.c @@ -214,7 +214,7 @@ void flush_tlb_all(void) void flush_tlb_mm(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); for_each_vma(vmi, vma) diff --git a/arch/um/kernel/trap.c b/arch/um/kernel/trap.c index ce073150dc20..22dd6c703a70 100644 --- a/arch/um/kernel/trap.c +++ b/arch/um/kernel/trap.c @@ -26,7 +26,7 @@ int handle_page_fault(unsigned long address, unsigned long ip, int is_write, int is_user, int *code_out) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; pmd_t *pmd; pte_t *pte; int err = -EFAULT; diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index adb299d3b6a1..987c2d16ed16 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c @@ -50,7 +50,7 @@ int __init init_vdso_image(const struct vdso_image *image) struct linux_binprm; static vm_fault_t vdso_fault(const struct vm_special_mapping *sm, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { const struct vdso_image *image = vma->vm_mm->context.vdso_image; @@ -63,7 +63,7 @@ static vm_fault_t vdso_fault(const struct vm_special_mapping *sm, } static void vdso_fix_landing(const struct vdso_image *image, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION if (in_ia32_syscall() && image == &vdso_image_32) { @@ -80,7 +80,7 @@ static void vdso_fix_landing(const struct vdso_image *image, } static int vdso_mremap(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { const struct vdso_image *image = current->mm->context.vdso_image; @@ -91,7 +91,7 @@ static int vdso_mremap(const struct vm_special_mapping *sm, } static vm_fault_t vvar_vclock_fault(const struct vm_special_mapping *sm, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { switch (vmf->pgoff) { #ifdef CONFIG_PARAVIRT_CLOCK @@ -139,7 +139,7 @@ static const struct vm_special_mapping vvar_vclock_mapping = { static int map_vdso(const struct vdso_image *image, unsigned long addr) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long text_start; int ret = 0; @@ -203,7 +203,7 @@ static int map_vdso(const struct vdso_image *image, unsigned long addr) int map_vdso_once(const struct vdso_image *image, unsigned long addr) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); mmap_write_lock(mm); diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c index 2fb7d53cf333..155a54569893 100644 --- a/arch/x86/entry/vsyscall/vsyscall_64.c +++ b/arch/x86/entry/vsyscall/vsyscall_64.c @@ -275,14 +275,14 @@ bool emulate_vsyscall(unsigned long error_code, * covers the 64bit vsyscall page now. 32bit has a real VMA now and does * not need special handling anymore: */ -static const char *gate_vma_name(struct vm_area_struct *vma) +static const char *gate_vma_name(struct mm_area *vma) { return "[vsyscall]"; } static const struct vm_operations_struct gate_vma_ops = { .name = gate_vma_name, }; -static struct vm_area_struct gate_vma __ro_after_init = { +static struct mm_area gate_vma __ro_after_init = { .vm_start = VSYSCALL_ADDR, .vm_end = VSYSCALL_ADDR + PAGE_SIZE, .vm_page_prot = PAGE_READONLY_EXEC, @@ -290,7 +290,7 @@ static struct vm_area_struct gate_vma __ro_after_init = { .vm_ops = &gate_vma_ops, }; -struct vm_area_struct *get_gate_vma(struct mm_struct *mm) +struct mm_area *get_gate_vma(struct mm_struct *mm) { #ifdef CONFIG_COMPAT if (!mm || !test_bit(MM_CONTEXT_HAS_VSYSCALL, &mm->context.flags)) @@ -303,7 +303,7 @@ struct vm_area_struct *get_gate_vma(struct mm_struct *mm) int in_gate_area(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma = get_gate_vma(mm); + struct mm_area *vma = get_gate_vma(mm); if (!vma) return 0; diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h index 2398058b6e83..45915a6f2b9e 100644 --- a/arch/x86/include/asm/mmu_context.h +++ b/arch/x86/include/asm/mmu_context.h @@ -256,7 +256,7 @@ static inline bool is_64bit_mm(struct mm_struct *mm) * So do not enforce things if the VMA is not from the current * mm, or if we are in a kernel thread. */ -static inline bool arch_vma_access_permitted(struct vm_area_struct *vma, +static inline bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign) { /* pkeys never affect instruction fetches */ diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h index c4c23190925c..3e73c01c3ba0 100644 --- a/arch/x86/include/asm/paravirt.h +++ b/arch/x86/include/asm/paravirt.h @@ -402,7 +402,7 @@ static inline pgdval_t pgd_val(pgd_t pgd) } #define __HAVE_ARCH_PTEP_MODIFY_PROT_TRANSACTION -static inline pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned long addr, +static inline pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pteval_t ret; @@ -412,7 +412,7 @@ static inline pte_t ptep_modify_prot_start(struct vm_area_struct *vma, unsigned return (pte_t) { .pte = ret }; } -static inline void ptep_modify_prot_commit(struct vm_area_struct *vma, unsigned long addr, +static inline void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h index 631c306ce1ff..dd67df3d8d0d 100644 --- a/arch/x86/include/asm/paravirt_types.h +++ b/arch/x86/include/asm/paravirt_types.h @@ -21,7 +21,7 @@ struct task_struct; struct cpumask; struct flush_tlb_info; struct mmu_gather; -struct vm_area_struct; +struct mm_area; /* * Wrapper type for pointers to code which uses the non-standard @@ -168,9 +168,9 @@ struct pv_mmu_ops { void (*set_pte)(pte_t *ptep, pte_t pteval); void (*set_pmd)(pmd_t *pmdp, pmd_t pmdval); - pte_t (*ptep_modify_prot_start)(struct vm_area_struct *vma, unsigned long addr, + pte_t (*ptep_modify_prot_start)(struct mm_area *vma, unsigned long addr, pte_t *ptep); - void (*ptep_modify_prot_commit)(struct vm_area_struct *vma, unsigned long addr, + void (*ptep_modify_prot_commit)(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte); struct paravirt_callee_save pte_val; diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h index dabafba957ea..b39a39a46f7a 100644 --- a/arch/x86/include/asm/pgtable-3level.h +++ b/arch/x86/include/asm/pgtable-3level.h @@ -122,7 +122,7 @@ static inline pud_t native_pudp_get_and_clear(pud_t *pudp) #ifndef pmdp_establish #define pmdp_establish pmdp_establish -static inline pmd_t pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { pmd_t old; diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h index 5ddba366d3b4..1415b469056b 100644 --- a/arch/x86/include/asm/pgtable.h +++ b/arch/x86/include/asm/pgtable.h @@ -498,8 +498,8 @@ static inline pte_t pte_mkwrite_novma(pte_t pte) return pte_set_flags(pte, _PAGE_RW); } -struct vm_area_struct; -pte_t pte_mkwrite(pte_t pte, struct vm_area_struct *vma); +struct mm_area; +pte_t pte_mkwrite(pte_t pte, struct mm_area *vma); #define pte_mkwrite pte_mkwrite static inline pte_t pte_mkhuge(pte_t pte) @@ -623,7 +623,7 @@ static inline pmd_t pmd_mkwrite_novma(pmd_t pmd) return pmd_set_flags(pmd, _PAGE_RW); } -pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma); +pmd_t pmd_mkwrite(pmd_t pmd, struct mm_area *vma); #define pmd_mkwrite pmd_mkwrite /* See comments above mksaveddirty_shift() */ @@ -1291,19 +1291,19 @@ static inline void set_pud_at(struct mm_struct *mm, unsigned long addr, * race with other CPU's that might be updating the dirty * bit at the same time. */ -struct vm_area_struct; +struct mm_area; #define __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -extern int ptep_set_access_flags(struct vm_area_struct *vma, +extern int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty); #define __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG -extern int ptep_test_and_clear_young(struct vm_area_struct *vma, +extern int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep); #define __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -extern int ptep_clear_flush_young(struct vm_area_struct *vma, +extern int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep); #define __HAVE_ARCH_PTEP_GET_AND_CLEAR @@ -1356,21 +1356,21 @@ static inline void ptep_set_wrprotect(struct mm_struct *mm, #define mk_pmd(page, pgprot) pfn_pmd(page_to_pfn(page), (pgprot)) #define __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -extern int pmdp_set_access_flags(struct vm_area_struct *vma, +extern int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty); -extern int pudp_set_access_flags(struct vm_area_struct *vma, +extern int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty); #define __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG -extern int pmdp_test_and_clear_young(struct vm_area_struct *vma, +extern int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long addr, pmd_t *pmdp); -extern int pudp_test_and_clear_young(struct vm_area_struct *vma, +extern int pudp_test_and_clear_young(struct mm_area *vma, unsigned long addr, pud_t *pudp); #define __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH -extern int pmdp_clear_flush_young(struct vm_area_struct *vma, +extern int pmdp_clear_flush_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp); @@ -1415,7 +1415,7 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm, #ifndef pmdp_establish #define pmdp_establish pmdp_establish -static inline pmd_t pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { page_table_check_pmd_set(vma->vm_mm, pmdp, pmd); @@ -1430,7 +1430,7 @@ static inline pmd_t pmdp_establish(struct vm_area_struct *vma, #endif #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -static inline pud_t pudp_establish(struct vm_area_struct *vma, +static inline pud_t pudp_establish(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t pud) { page_table_check_pud_set(vma->vm_mm, pudp, pud); @@ -1445,10 +1445,10 @@ static inline pud_t pudp_establish(struct vm_area_struct *vma, #endif #define __HAVE_ARCH_PMDP_INVALIDATE_AD -extern pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, +extern pmd_t pmdp_invalidate_ad(struct mm_area *vma, unsigned long address, pmd_t *pmdp); -pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address, +pud_t pudp_invalidate(struct mm_area *vma, unsigned long address, pud_t *pudp); /* @@ -1554,20 +1554,20 @@ static inline unsigned long page_level_mask(enum pg_level level) * The x86 doesn't have any external MMU info: the kernel page * tables contain all the necessary information. */ -static inline void update_mmu_cache(struct vm_area_struct *vma, +static inline void update_mmu_cache(struct mm_area *vma, unsigned long addr, pte_t *ptep) { } static inline void update_mmu_cache_range(struct vm_fault *vmf, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { } -static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, +static inline void update_mmu_cache_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd) { } -static inline void update_mmu_cache_pud(struct vm_area_struct *vma, +static inline void update_mmu_cache_pud(struct mm_area *vma, unsigned long addr, pud_t *pud) { } @@ -1724,13 +1724,13 @@ static inline bool arch_has_pfn_modify_check(void) } #define arch_check_zapped_pte arch_check_zapped_pte -void arch_check_zapped_pte(struct vm_area_struct *vma, pte_t pte); +void arch_check_zapped_pte(struct mm_area *vma, pte_t pte); #define arch_check_zapped_pmd arch_check_zapped_pmd -void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd); +void arch_check_zapped_pmd(struct mm_area *vma, pmd_t pmd); #define arch_check_zapped_pud arch_check_zapped_pud -void arch_check_zapped_pud(struct vm_area_struct *vma, pud_t pud); +void arch_check_zapped_pud(struct mm_area *vma, pud_t pud); #ifdef CONFIG_XEN_PV #define arch_has_hw_nonleaf_pmd_young arch_has_hw_nonleaf_pmd_young diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h index b612cc57a4d3..ce08b06f7b85 100644 --- a/arch/x86/include/asm/pgtable_32.h +++ b/arch/x86/include/asm/pgtable_32.h @@ -23,7 +23,7 @@ #include struct mm_struct; -struct vm_area_struct; +struct mm_area; extern pgd_t swapper_pg_dir[1024]; extern pgd_t initial_page_table[1024]; diff --git a/arch/x86/include/asm/pkeys.h b/arch/x86/include/asm/pkeys.h index 2e6c04d8a45b..c92d445a2d4d 100644 --- a/arch/x86/include/asm/pkeys.h +++ b/arch/x86/include/asm/pkeys.h @@ -30,9 +30,9 @@ static inline int execute_only_pkey(struct mm_struct *mm) return __execute_only_pkey(mm); } -extern int __arch_override_mprotect_pkey(struct vm_area_struct *vma, +extern int __arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey); -static inline int arch_override_mprotect_pkey(struct vm_area_struct *vma, +static inline int arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey) { if (!cpu_feature_enabled(X86_FEATURE_OSPKE)) @@ -115,7 +115,7 @@ int mm_pkey_free(struct mm_struct *mm, int pkey) return 0; } -static inline int vma_pkey(struct vm_area_struct *vma) +static inline int vma_pkey(struct mm_area *vma) { unsigned long vma_pkey_mask = VM_PKEY_BIT0 | VM_PKEY_BIT1 | VM_PKEY_BIT2 | VM_PKEY_BIT3; diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h index e9b81876ebe4..0db9ba656abc 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h @@ -319,7 +319,7 @@ extern void flush_tlb_mm_range(struct mm_struct *mm, unsigned long start, bool freed_tables); extern void flush_tlb_kernel_range(unsigned long start, unsigned long end); -static inline void flush_tlb_page(struct vm_area_struct *vma, unsigned long a) +static inline void flush_tlb_page(struct mm_area *vma, unsigned long a) { flush_tlb_mm_range(vma->vm_mm, a, a + PAGE_SIZE, PAGE_SHIFT, false); } diff --git a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c index 92ea1472bde9..a223490e1042 100644 --- a/arch/x86/kernel/cpu/resctrl/pseudo_lock.c +++ b/arch/x86/kernel/cpu/resctrl/pseudo_lock.c @@ -1484,7 +1484,7 @@ static int pseudo_lock_dev_release(struct inode *inode, struct file *filp) return 0; } -static int pseudo_lock_dev_mremap(struct vm_area_struct *area) +static int pseudo_lock_dev_mremap(struct mm_area *area) { /* Not supported */ return -EINVAL; @@ -1494,7 +1494,7 @@ static const struct vm_operations_struct pseudo_mmap_ops = { .mremap = pseudo_lock_dev_mremap, }; -static int pseudo_lock_dev_mmap(struct file *filp, struct vm_area_struct *vma) +static int pseudo_lock_dev_mmap(struct file *filp, struct mm_area *vma) { unsigned long vsize = vma->vm_end - vma->vm_start; unsigned long off = vma->vm_pgoff << PAGE_SHIFT; diff --git a/arch/x86/kernel/cpu/sgx/driver.c b/arch/x86/kernel/cpu/sgx/driver.c index 7f8d1e11dbee..e7e41b05b5c8 100644 --- a/arch/x86/kernel/cpu/sgx/driver.c +++ b/arch/x86/kernel/cpu/sgx/driver.c @@ -81,7 +81,7 @@ static int sgx_release(struct inode *inode, struct file *file) return 0; } -static int sgx_mmap(struct file *file, struct vm_area_struct *vma) +static int sgx_mmap(struct file *file, struct mm_area *vma) { struct sgx_encl *encl = file->private_data; int ret; diff --git a/arch/x86/kernel/cpu/sgx/encl.c b/arch/x86/kernel/cpu/sgx/encl.c index 279148e72459..8455a87e56f2 100644 --- a/arch/x86/kernel/cpu/sgx/encl.c +++ b/arch/x86/kernel/cpu/sgx/encl.c @@ -324,7 +324,7 @@ struct sgx_encl_page *sgx_encl_load_page(struct sgx_encl *encl, * Returns: Appropriate vm_fault_t: VM_FAULT_NOPAGE when PTE was installed * successfully, VM_FAULT_SIGBUS or VM_FAULT_OOM as error otherwise. */ -static vm_fault_t sgx_encl_eaug_page(struct vm_area_struct *vma, +static vm_fault_t sgx_encl_eaug_page(struct mm_area *vma, struct sgx_encl *encl, unsigned long addr) { vm_fault_t vmret = VM_FAULT_SIGBUS; @@ -430,7 +430,7 @@ static vm_fault_t sgx_encl_eaug_page(struct vm_area_struct *vma, static vm_fault_t sgx_vma_fault(struct vm_fault *vmf) { unsigned long addr = (unsigned long)vmf->address; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct sgx_encl_page *entry; unsigned long phys_addr; struct sgx_encl *encl; @@ -484,7 +484,7 @@ static vm_fault_t sgx_vma_fault(struct vm_fault *vmf) return VM_FAULT_NOPAGE; } -static void sgx_vma_open(struct vm_area_struct *vma) +static void sgx_vma_open(struct mm_area *vma) { struct sgx_encl *encl = vma->vm_private_data; @@ -567,7 +567,7 @@ int sgx_encl_may_map(struct sgx_encl *encl, unsigned long start, return ret; } -static int sgx_vma_mprotect(struct vm_area_struct *vma, unsigned long start, +static int sgx_vma_mprotect(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long newflags) { return sgx_encl_may_map(vma->vm_private_data, start, end, newflags); @@ -625,7 +625,7 @@ static struct sgx_encl_page *sgx_encl_reserve_page(struct sgx_encl *encl, return entry; } -static int sgx_vma_access(struct vm_area_struct *vma, unsigned long addr, +static int sgx_vma_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { struct sgx_encl *encl = vma->vm_private_data; @@ -1137,7 +1137,7 @@ int sgx_encl_test_and_clear_young(struct mm_struct *mm, { unsigned long addr = page->desc & PAGE_MASK; struct sgx_encl *encl = page->encl; - struct vm_area_struct *vma; + struct mm_area *vma; int ret; ret = sgx_encl_find(mm, addr, &vma); @@ -1200,7 +1200,7 @@ void sgx_zap_enclave_ptes(struct sgx_encl *encl, unsigned long addr) { unsigned long mm_list_version; struct sgx_encl_mm *encl_mm; - struct vm_area_struct *vma; + struct mm_area *vma; int idx, ret; do { diff --git a/arch/x86/kernel/cpu/sgx/encl.h b/arch/x86/kernel/cpu/sgx/encl.h index f94ff14c9486..de567cd442bc 100644 --- a/arch/x86/kernel/cpu/sgx/encl.h +++ b/arch/x86/kernel/cpu/sgx/encl.h @@ -87,9 +87,9 @@ struct sgx_backing { extern const struct vm_operations_struct sgx_vm_ops; static inline int sgx_encl_find(struct mm_struct *mm, unsigned long addr, - struct vm_area_struct **vma) + struct mm_area **vma) { - struct vm_area_struct *result; + struct mm_area *result; result = vma_lookup(mm, addr); if (!result || result->vm_ops != &sgx_vm_ops) diff --git a/arch/x86/kernel/cpu/sgx/ioctl.c b/arch/x86/kernel/cpu/sgx/ioctl.c index 776a20172867..b25b51724b3a 100644 --- a/arch/x86/kernel/cpu/sgx/ioctl.c +++ b/arch/x86/kernel/cpu/sgx/ioctl.c @@ -209,7 +209,7 @@ static int __sgx_encl_add_page(struct sgx_encl *encl, struct sgx_secinfo *secinfo, unsigned long src) { struct sgx_pageinfo pginfo; - struct vm_area_struct *vma; + struct mm_area *vma; struct page *src_page; int ret; diff --git a/arch/x86/kernel/cpu/sgx/virt.c b/arch/x86/kernel/cpu/sgx/virt.c index 7aaa3652e31d..a601d9e1d867 100644 --- a/arch/x86/kernel/cpu/sgx/virt.c +++ b/arch/x86/kernel/cpu/sgx/virt.c @@ -31,7 +31,7 @@ static struct mutex zombie_secs_pages_lock; static struct list_head zombie_secs_pages; static int __sgx_vepc_fault(struct sgx_vepc *vepc, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { struct sgx_epc_page *epc_page; unsigned long index, pfn; @@ -73,7 +73,7 @@ static int __sgx_vepc_fault(struct sgx_vepc *vepc, static vm_fault_t sgx_vepc_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct sgx_vepc *vepc = vma->vm_private_data; int ret; @@ -96,7 +96,7 @@ static const struct vm_operations_struct sgx_vepc_vm_ops = { .fault = sgx_vepc_fault, }; -static int sgx_vepc_mmap(struct file *file, struct vm_area_struct *vma) +static int sgx_vepc_mmap(struct file *file, struct mm_area *vma) { struct sgx_vepc *vepc = file->private_data; diff --git a/arch/x86/kernel/shstk.c b/arch/x86/kernel/shstk.c index 059685612362..f18dd5e2beff 100644 --- a/arch/x86/kernel/shstk.c +++ b/arch/x86/kernel/shstk.c @@ -294,7 +294,7 @@ static int shstk_push_sigframe(unsigned long *ssp) static int shstk_pop_sigframe(unsigned long *ssp) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long token_addr; bool need_to_check_vma; int err = 1; diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c index 776ae6fa7f2d..ab965bc812a7 100644 --- a/arch/x86/kernel/sys_x86_64.c +++ b/arch/x86/kernel/sys_x86_64.c @@ -128,7 +128,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_unmapped_area_info info = {}; unsigned long begin, end; @@ -168,7 +168,7 @@ arch_get_unmapped_area_topdown(struct file *filp, unsigned long addr0, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; unsigned long addr = addr0; struct vm_unmapped_area_info info = {}; diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 296d294142c8..9255779b17f4 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -836,7 +836,7 @@ bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code, static void __bad_area(struct pt_regs *regs, unsigned long error_code, unsigned long address, struct mm_struct *mm, - struct vm_area_struct *vma, u32 pkey, int si_code) + struct mm_area *vma, u32 pkey, int si_code) { /* * Something tried to access memory that isn't in our memory map.. @@ -851,7 +851,7 @@ __bad_area(struct pt_regs *regs, unsigned long error_code, } static inline bool bad_area_access_from_pkeys(unsigned long error_code, - struct vm_area_struct *vma) + struct mm_area *vma) { /* This code is always called on the current mm */ bool foreign = false; @@ -870,7 +870,7 @@ static inline bool bad_area_access_from_pkeys(unsigned long error_code, static noinline void bad_area_access_error(struct pt_regs *regs, unsigned long error_code, unsigned long address, struct mm_struct *mm, - struct vm_area_struct *vma) + struct mm_area *vma) { /* * This OSPKE check is not strictly necessary at runtime. @@ -1049,7 +1049,7 @@ NOKPROBE_SYMBOL(spurious_kernel_fault); int show_unhandled_signals = 1; static inline int -access_error(unsigned long error_code, struct vm_area_struct *vma) +access_error(unsigned long error_code, struct mm_area *vma) { /* This is only called for the current mm, so: */ bool foreign = false; @@ -1211,7 +1211,7 @@ void do_user_addr_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk; struct mm_struct *mm; vm_fault_t fault; diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c index 72d8cbc61158..f301b40be91b 100644 --- a/arch/x86/mm/pat/memtype.c +++ b/arch/x86/mm/pat/memtype.c @@ -932,7 +932,7 @@ static void free_pfn_range(u64 paddr, unsigned long size) memtype_free(paddr, paddr + size); } -static int follow_phys(struct vm_area_struct *vma, unsigned long *prot, +static int follow_phys(struct mm_area *vma, unsigned long *prot, resource_size_t *phys) { struct follow_pfnmap_args args = { .vma = vma, .address = vma->vm_start }; @@ -952,7 +952,7 @@ static int follow_phys(struct vm_area_struct *vma, unsigned long *prot, return 0; } -static int get_pat_info(struct vm_area_struct *vma, resource_size_t *paddr, +static int get_pat_info(struct mm_area *vma, resource_size_t *paddr, pgprot_t *pgprot) { unsigned long prot; @@ -984,8 +984,8 @@ static int get_pat_info(struct vm_area_struct *vma, resource_size_t *paddr, return -EINVAL; } -int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn) +int track_pfn_copy(struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long *pfn) { const unsigned long vma_size = src_vma->vm_end - src_vma->vm_start; resource_size_t paddr; @@ -1011,7 +1011,7 @@ int track_pfn_copy(struct vm_area_struct *dst_vma, return 0; } -void untrack_pfn_copy(struct vm_area_struct *dst_vma, unsigned long pfn) +void untrack_pfn_copy(struct mm_area *dst_vma, unsigned long pfn) { untrack_pfn(dst_vma, pfn, dst_vma->vm_end - dst_vma->vm_start, true); /* @@ -1026,7 +1026,7 @@ void untrack_pfn_copy(struct vm_area_struct *dst_vma, unsigned long pfn) * reserve the entire pfn + size range with single reserve_pfn_range * call. */ -int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, +int track_pfn_remap(struct mm_area *vma, pgprot_t *prot, unsigned long pfn, unsigned long addr, unsigned long size) { resource_size_t paddr = (resource_size_t)pfn << PAGE_SHIFT; @@ -1066,7 +1066,7 @@ int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, return 0; } -void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, pfn_t pfn) +void track_pfn_insert(struct mm_area *vma, pgprot_t *prot, pfn_t pfn) { enum page_cache_mode pcm; @@ -1084,7 +1084,7 @@ void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, pfn_t pfn) * untrack can be called for a specific region indicated by pfn and size or * can be for the entire vma (in which case pfn, size are zero). */ -void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, +void untrack_pfn(struct mm_area *vma, unsigned long pfn, unsigned long size, bool mm_wr_locked) { resource_size_t paddr; @@ -1108,7 +1108,7 @@ void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, } } -void untrack_pfn_clear(struct vm_area_struct *vma) +void untrack_pfn_clear(struct mm_area *vma) { vm_flags_clear(vma, VM_PAT); } diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c index a05fcddfc811..c0105e8b5130 100644 --- a/arch/x86/mm/pgtable.c +++ b/arch/x86/mm/pgtable.c @@ -458,7 +458,7 @@ void pgd_free(struct mm_struct *mm, pgd_t *pgd) * to also make the pte writeable at the same time the dirty bit is * set. In that case we do actually need to write the PTE. */ -int ptep_set_access_flags(struct vm_area_struct *vma, +int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { @@ -471,7 +471,7 @@ int ptep_set_access_flags(struct vm_area_struct *vma, } #ifdef CONFIG_TRANSPARENT_HUGEPAGE -int pmdp_set_access_flags(struct vm_area_struct *vma, +int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { @@ -492,7 +492,7 @@ int pmdp_set_access_flags(struct vm_area_struct *vma, return changed; } -int pudp_set_access_flags(struct vm_area_struct *vma, unsigned long address, +int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty) { int changed = !pud_same(*pudp, entry); @@ -513,7 +513,7 @@ int pudp_set_access_flags(struct vm_area_struct *vma, unsigned long address, } #endif -int ptep_test_and_clear_young(struct vm_area_struct *vma, +int ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { int ret = 0; @@ -526,7 +526,7 @@ int ptep_test_and_clear_young(struct vm_area_struct *vma, } #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) -int pmdp_test_and_clear_young(struct vm_area_struct *vma, +int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { int ret = 0; @@ -540,7 +540,7 @@ int pmdp_test_and_clear_young(struct vm_area_struct *vma, #endif #ifdef CONFIG_TRANSPARENT_HUGEPAGE -int pudp_test_and_clear_young(struct vm_area_struct *vma, +int pudp_test_and_clear_young(struct mm_area *vma, unsigned long addr, pud_t *pudp) { int ret = 0; @@ -553,7 +553,7 @@ int pudp_test_and_clear_young(struct vm_area_struct *vma, } #endif -int ptep_clear_flush_young(struct vm_area_struct *vma, +int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { /* @@ -573,7 +573,7 @@ int ptep_clear_flush_young(struct vm_area_struct *vma, } #ifdef CONFIG_TRANSPARENT_HUGEPAGE -int pmdp_clear_flush_young(struct vm_area_struct *vma, +int pmdp_clear_flush_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { int young; @@ -587,7 +587,7 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma, return young; } -pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_invalidate_ad(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { VM_WARN_ON_ONCE(!pmd_present(*pmdp)); @@ -602,7 +602,7 @@ pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address, #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) -pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address, +pud_t pudp_invalidate(struct mm_area *vma, unsigned long address, pud_t *pudp) { VM_WARN_ON_ONCE(!pud_present(*pudp)); @@ -858,7 +858,7 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr) #endif /* CONFIG_X86_64 */ #endif /* CONFIG_HAVE_ARCH_HUGE_VMAP */ -pte_t pte_mkwrite(pte_t pte, struct vm_area_struct *vma) +pte_t pte_mkwrite(pte_t pte, struct mm_area *vma) { if (vma->vm_flags & VM_SHADOW_STACK) return pte_mkwrite_shstk(pte); @@ -868,7 +868,7 @@ pte_t pte_mkwrite(pte_t pte, struct vm_area_struct *vma) return pte_clear_saveddirty(pte); } -pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) +pmd_t pmd_mkwrite(pmd_t pmd, struct mm_area *vma) { if (vma->vm_flags & VM_SHADOW_STACK) return pmd_mkwrite_shstk(pmd); @@ -878,7 +878,7 @@ pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) return pmd_clear_saveddirty(pmd); } -void arch_check_zapped_pte(struct vm_area_struct *vma, pte_t pte) +void arch_check_zapped_pte(struct mm_area *vma, pte_t pte) { /* * Hardware before shadow stack can (rarely) set Dirty=1 @@ -891,14 +891,14 @@ void arch_check_zapped_pte(struct vm_area_struct *vma, pte_t pte) pte_shstk(pte)); } -void arch_check_zapped_pmd(struct vm_area_struct *vma, pmd_t pmd) +void arch_check_zapped_pmd(struct mm_area *vma, pmd_t pmd) { /* See note in arch_check_zapped_pte() */ VM_WARN_ON_ONCE(!(vma->vm_flags & VM_SHADOW_STACK) && pmd_shstk(pmd)); } -void arch_check_zapped_pud(struct vm_area_struct *vma, pud_t pud) +void arch_check_zapped_pud(struct mm_area *vma, pud_t pud) { /* See note in arch_check_zapped_pte() */ VM_WARN_ON_ONCE(!(vma->vm_flags & VM_SHADOW_STACK) && pud_shstk(pud)); diff --git a/arch/x86/mm/pkeys.c b/arch/x86/mm/pkeys.c index 7418c367e328..8626515f8331 100644 --- a/arch/x86/mm/pkeys.c +++ b/arch/x86/mm/pkeys.c @@ -59,7 +59,7 @@ int __execute_only_pkey(struct mm_struct *mm) return execute_only_pkey; } -static inline bool vma_is_pkey_exec_only(struct vm_area_struct *vma) +static inline bool vma_is_pkey_exec_only(struct mm_area *vma) { /* Do this check first since the vm_flags should be hot */ if ((vma->vm_flags & VM_ACCESS_FLAGS) != VM_EXEC) @@ -73,7 +73,7 @@ static inline bool vma_is_pkey_exec_only(struct vm_area_struct *vma) /* * This is only called for *plain* mprotect calls. */ -int __arch_override_mprotect_pkey(struct vm_area_struct *vma, int prot, int pkey) +int __arch_override_mprotect_pkey(struct mm_area *vma, int prot, int pkey) { /* * Is this an mprotect_pkey() call? If so, never diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c index 29b2203bc82c..495b032f68f5 100644 --- a/arch/x86/um/mem_32.c +++ b/arch/x86/um/mem_32.c @@ -6,7 +6,7 @@ #include #include -static struct vm_area_struct gate_vma; +static struct mm_area gate_vma; static int __init gate_vma_init(void) { @@ -23,7 +23,7 @@ static int __init gate_vma_init(void) } __initcall(gate_vma_init); -struct vm_area_struct *get_gate_vma(struct mm_struct *mm) +struct mm_area *get_gate_vma(struct mm_struct *mm) { return FIXADDR_USER_START ? &gate_vma : NULL; } @@ -41,7 +41,7 @@ int in_gate_area_no_mm(unsigned long addr) int in_gate_area(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma = get_gate_vma(mm); + struct mm_area *vma = get_gate_vma(mm); if (!vma) return 0; diff --git a/arch/x86/um/mem_64.c b/arch/x86/um/mem_64.c index c027e93d1002..5fd2a34ebe23 100644 --- a/arch/x86/um/mem_64.c +++ b/arch/x86/um/mem_64.c @@ -2,7 +2,7 @@ #include #include -const char *arch_vma_name(struct vm_area_struct *vma) +const char *arch_vma_name(struct mm_area *vma) { if (vma->vm_mm && vma->vm_start == um_vdso_addr) return "[vdso]"; diff --git a/arch/x86/um/vdso/vma.c b/arch/x86/um/vdso/vma.c index dc8dfb2abd80..2f80bb140815 100644 --- a/arch/x86/um/vdso/vma.c +++ b/arch/x86/um/vdso/vma.c @@ -41,7 +41,7 @@ subsys_initcall(init_vdso); int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm = current->mm; static struct vm_special_mapping vdso_mapping = { .name = "[vdso]", diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c index c4c479373249..c268d7d323ab 100644 --- a/arch/x86/xen/mmu.c +++ b/arch/x86/xen/mmu.c @@ -38,7 +38,7 @@ xmaddr_t arbitrary_virt_to_machine(void *vaddr) EXPORT_SYMBOL_GPL(arbitrary_virt_to_machine); /* Returns: 0 success */ -int xen_unmap_domain_gfn_range(struct vm_area_struct *vma, +int xen_unmap_domain_gfn_range(struct mm_area *vma, int nr, struct page **pages) { if (xen_feature(XENFEAT_auto_translated_physmap)) diff --git a/arch/x86/xen/mmu_pv.c b/arch/x86/xen/mmu_pv.c index 38971c6dcd4b..ddb7a5dcce88 100644 --- a/arch/x86/xen/mmu_pv.c +++ b/arch/x86/xen/mmu_pv.c @@ -348,7 +348,7 @@ static void xen_set_pte(pte_t *ptep, pte_t pteval) __xen_set_pte(ptep, pteval); } -static pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, +static pte_t xen_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { /* Just return the pte as-is. We preserve the bits on commit */ @@ -356,7 +356,7 @@ static pte_t xen_ptep_modify_prot_start(struct vm_area_struct *vma, return *ptep; } -static void xen_ptep_modify_prot_commit(struct vm_area_struct *vma, +static void xen_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte) { @@ -2494,7 +2494,7 @@ static int remap_area_pfn_pte_fn(pte_t *ptep, unsigned long addr, void *data) return 0; } -int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr, +int xen_remap_pfn(struct mm_area *vma, unsigned long addr, xen_pfn_t *pfn, int nr, int *err_ptr, pgprot_t prot, unsigned int domid, bool no_translate) { diff --git a/arch/xtensa/include/asm/cacheflush.h b/arch/xtensa/include/asm/cacheflush.h index a2b6bb5429f5..6d4a401875c2 100644 --- a/arch/xtensa/include/asm/cacheflush.h +++ b/arch/xtensa/include/asm/cacheflush.h @@ -96,9 +96,9 @@ static inline void __invalidate_icache_page_alias(unsigned long virt, #ifdef CONFIG_SMP void flush_cache_all(void); -void flush_cache_range(struct vm_area_struct*, ulong, ulong); +void flush_cache_range(struct mm_area*, ulong, ulong); void flush_icache_range(unsigned long start, unsigned long end); -void flush_cache_page(struct vm_area_struct*, +void flush_cache_page(struct mm_area*, unsigned long, unsigned long); #define flush_cache_all flush_cache_all #define flush_cache_range flush_cache_range @@ -133,9 +133,9 @@ static inline void flush_dcache_page(struct page *page) flush_dcache_folio(page_folio(page)); } -void local_flush_cache_range(struct vm_area_struct *vma, +void local_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end); -void local_flush_cache_page(struct vm_area_struct *vma, +void local_flush_cache_page(struct mm_area *vma, unsigned long address, unsigned long pfn); #else @@ -155,9 +155,9 @@ void local_flush_cache_page(struct vm_area_struct *vma, #if defined(CONFIG_MMU) && (DCACHE_WAY_SIZE > PAGE_SIZE) -extern void copy_to_user_page(struct vm_area_struct*, struct page*, +extern void copy_to_user_page(struct mm_area*, struct page*, unsigned long, void*, const void*, unsigned long); -extern void copy_from_user_page(struct vm_area_struct*, struct page*, +extern void copy_from_user_page(struct mm_area*, struct page*, unsigned long, void*, const void*, unsigned long); #define copy_to_user_page copy_to_user_page #define copy_from_user_page copy_from_user_page diff --git a/arch/xtensa/include/asm/page.h b/arch/xtensa/include/asm/page.h index 644413792bf3..47df5872733a 100644 --- a/arch/xtensa/include/asm/page.h +++ b/arch/xtensa/include/asm/page.h @@ -106,7 +106,7 @@ typedef struct page *pgtable_t; # include struct page; -struct vm_area_struct; +struct mm_area; extern void clear_page(void *page); extern void copy_page(void *to, void *from); @@ -124,7 +124,7 @@ extern void copy_page_alias(void *to, void *from, void clear_user_highpage(struct page *page, unsigned long vaddr); #define __HAVE_ARCH_COPY_USER_HIGHPAGE void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma); + unsigned long vaddr, struct mm_area *vma); #else # define clear_user_page(page, vaddr, pg) clear_page(page) # define copy_user_page(to, from, vaddr, pg) copy_page(to, from) diff --git a/arch/xtensa/include/asm/pgtable.h b/arch/xtensa/include/asm/pgtable.h index 1647a7cc3fbf..247b9d7b91b4 100644 --- a/arch/xtensa/include/asm/pgtable.h +++ b/arch/xtensa/include/asm/pgtable.h @@ -313,10 +313,10 @@ set_pmd(pmd_t *pmdp, pmd_t pmdval) *pmdp = pmdval; } -struct vm_area_struct; +struct mm_area; static inline int -ptep_test_and_clear_young(struct vm_area_struct *vma, unsigned long addr, +ptep_test_and_clear_young(struct mm_area *vma, unsigned long addr, pte_t *ptep) { pte_t pte = *ptep; @@ -403,14 +403,14 @@ static inline pte_t pte_swp_clear_exclusive(pte_t pte) #else struct vm_fault; -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr); #define update_mmu_cache(vma, address, ptep) \ update_mmu_cache_range(NULL, vma, address, ptep, 1) typedef pte_t *pte_addr_t; -void update_mmu_tlb_range(struct vm_area_struct *vma, +void update_mmu_tlb_range(struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr); #define update_mmu_tlb_range update_mmu_tlb_range diff --git a/arch/xtensa/include/asm/tlbflush.h b/arch/xtensa/include/asm/tlbflush.h index 573df8cea200..36a5ca4f41b8 100644 --- a/arch/xtensa/include/asm/tlbflush.h +++ b/arch/xtensa/include/asm/tlbflush.h @@ -32,9 +32,9 @@ void local_flush_tlb_all(void); void local_flush_tlb_mm(struct mm_struct *mm); -void local_flush_tlb_page(struct vm_area_struct *vma, +void local_flush_tlb_page(struct mm_area *vma, unsigned long page); -void local_flush_tlb_range(struct vm_area_struct *vma, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end); void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); @@ -42,8 +42,8 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end); void flush_tlb_all(void); void flush_tlb_mm(struct mm_struct *); -void flush_tlb_page(struct vm_area_struct *, unsigned long); -void flush_tlb_range(struct vm_area_struct *, unsigned long, +void flush_tlb_page(struct mm_area *, unsigned long); +void flush_tlb_range(struct mm_area *, unsigned long, unsigned long); void flush_tlb_kernel_range(unsigned long start, unsigned long end); diff --git a/arch/xtensa/kernel/pci.c b/arch/xtensa/kernel/pci.c index 62c900e400d6..81f6d62f9bff 100644 --- a/arch/xtensa/kernel/pci.c +++ b/arch/xtensa/kernel/pci.c @@ -71,7 +71,7 @@ void pcibios_fixup_bus(struct pci_bus *bus) * -- paulus. */ -int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma) +int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct mm_area *vma) { struct pci_controller *pci_ctrl = (struct pci_controller*) pdev->sysdata; resource_size_t ioaddr = pci_resource_start(pdev, bar); diff --git a/arch/xtensa/kernel/smp.c b/arch/xtensa/kernel/smp.c index 94a23f100726..66c0c20799ef 100644 --- a/arch/xtensa/kernel/smp.c +++ b/arch/xtensa/kernel/smp.c @@ -468,7 +468,7 @@ int setup_profiling_timer(unsigned int multiplier) /* TLB flush functions */ struct flush_data { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr1; unsigned long addr2; }; @@ -499,7 +499,7 @@ static void ipi_flush_tlb_page(void *arg) local_flush_tlb_page(fd->vma, fd->addr1); } -void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr) +void flush_tlb_page(struct mm_area *vma, unsigned long addr) { struct flush_data fd = { .vma = vma, @@ -514,7 +514,7 @@ static void ipi_flush_tlb_range(void *arg) local_flush_tlb_range(fd->vma, fd->addr1, fd->addr2); } -void flush_tlb_range(struct vm_area_struct *vma, +void flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct flush_data fd = { @@ -558,7 +558,7 @@ static void ipi_flush_cache_page(void *arg) local_flush_cache_page(fd->vma, fd->addr1, fd->addr2); } -void flush_cache_page(struct vm_area_struct *vma, +void flush_cache_page(struct mm_area *vma, unsigned long address, unsigned long pfn) { struct flush_data fd = { @@ -575,7 +575,7 @@ static void ipi_flush_cache_range(void *arg) local_flush_cache_range(fd->vma, fd->addr1, fd->addr2); } -void flush_cache_range(struct vm_area_struct *vma, +void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { struct flush_data fd = { diff --git a/arch/xtensa/kernel/syscall.c b/arch/xtensa/kernel/syscall.c index dc54f854c2f5..9dd4ee487337 100644 --- a/arch/xtensa/kernel/syscall.c +++ b/arch/xtensa/kernel/syscall.c @@ -58,7 +58,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vmm; + struct mm_area *vmm; struct vma_iterator vmi; if (flags & MAP_FIXED) { diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c index 23be0e7516ce..b1f503c39d58 100644 --- a/arch/xtensa/mm/cache.c +++ b/arch/xtensa/mm/cache.c @@ -100,7 +100,7 @@ void clear_user_highpage(struct page *page, unsigned long vaddr) EXPORT_SYMBOL(clear_user_highpage); void copy_user_highpage(struct page *dst, struct page *src, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { struct folio *folio = page_folio(dst); unsigned long dst_paddr, src_paddr; @@ -181,7 +181,7 @@ EXPORT_SYMBOL(flush_dcache_folio); * For now, flush the whole cache. FIXME?? */ -void local_flush_cache_range(struct vm_area_struct *vma, +void local_flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { __flush_invalidate_dcache_all(); @@ -196,7 +196,7 @@ EXPORT_SYMBOL(local_flush_cache_range); * alias versions of the cache flush functions. */ -void local_flush_cache_page(struct vm_area_struct *vma, unsigned long address, +void local_flush_cache_page(struct mm_area *vma, unsigned long address, unsigned long pfn) { /* Note that we have to use the 'alias' address to avoid multi-hit */ @@ -213,7 +213,7 @@ EXPORT_SYMBOL(local_flush_cache_page); #endif /* DCACHE_WAY_SIZE > PAGE_SIZE */ -void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, +void update_mmu_cache_range(struct vm_fault *vmf, struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr) { unsigned long pfn = pte_pfn(*ptep); @@ -270,7 +270,7 @@ void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, #if (DCACHE_WAY_SIZE > PAGE_SIZE) -void copy_to_user_page(struct vm_area_struct *vma, struct page *page, +void copy_to_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { @@ -310,7 +310,7 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page, } } -extern void copy_from_user_page(struct vm_area_struct *vma, struct page *page, +extern void copy_from_user_page(struct mm_area *vma, struct page *page, unsigned long vaddr, void *dst, const void *src, unsigned long len) { diff --git a/arch/xtensa/mm/fault.c b/arch/xtensa/mm/fault.c index 16e11b6f6f78..02d6bcea445d 100644 --- a/arch/xtensa/mm/fault.c +++ b/arch/xtensa/mm/fault.c @@ -87,7 +87,7 @@ static void vmalloc_fault(struct pt_regs *regs, unsigned int address) void do_page_fault(struct pt_regs *regs) { - struct vm_area_struct * vma; + struct mm_area * vma; struct mm_struct *mm = current->mm; unsigned int exccause = regs->exccause; unsigned int address = regs->excvaddr; diff --git a/arch/xtensa/mm/tlb.c b/arch/xtensa/mm/tlb.c index 0a1a815dc796..b8fcadd0460a 100644 --- a/arch/xtensa/mm/tlb.c +++ b/arch/xtensa/mm/tlb.c @@ -86,7 +86,7 @@ void local_flush_tlb_mm(struct mm_struct *mm) # define _TLB_ENTRIES _DTLB_ENTRIES #endif -void local_flush_tlb_range(struct vm_area_struct *vma, +void local_flush_tlb_range(struct mm_area *vma, unsigned long start, unsigned long end) { int cpu = smp_processor_id(); @@ -124,7 +124,7 @@ void local_flush_tlb_range(struct vm_area_struct *vma, local_irq_restore(flags); } -void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page) +void local_flush_tlb_page(struct mm_area *vma, unsigned long page) { int cpu = smp_processor_id(); struct mm_struct* mm = vma->vm_mm; @@ -163,7 +163,7 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) } } -void update_mmu_tlb_range(struct vm_area_struct *vma, +void update_mmu_tlb_range(struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { local_flush_tlb_range(vma, address, address + PAGE_SIZE * nr); diff --git a/block/fops.c b/block/fops.c index be9f1dbea9ce..6b5d92baf4b6 100644 --- a/block/fops.c +++ b/block/fops.c @@ -871,7 +871,7 @@ static long blkdev_fallocate(struct file *file, int mode, loff_t start, return error; } -static int blkdev_mmap(struct file *file, struct vm_area_struct *vma) +static int blkdev_mmap(struct file *file, struct mm_area *vma) { struct inode *bd_inode = bdev_file_inode(file); diff --git a/drivers/accel/amdxdna/amdxdna_gem.c b/drivers/accel/amdxdna/amdxdna_gem.c index 606433d73236..10a1bd65acb0 100644 --- a/drivers/accel/amdxdna/amdxdna_gem.c +++ b/drivers/accel/amdxdna/amdxdna_gem.c @@ -159,7 +159,7 @@ static int amdxdna_hmm_register(struct amdxdna_gem_obj *abo, unsigned long addr, } static int amdxdna_gem_obj_mmap(struct drm_gem_object *gobj, - struct vm_area_struct *vma) + struct mm_area *vma) { struct amdxdna_gem_obj *abo = to_xdna_obj(gobj); unsigned long num_pages; @@ -192,12 +192,12 @@ static vm_fault_t amdxdna_gem_vm_fault(struct vm_fault *vmf) return drm_gem_shmem_vm_ops.fault(vmf); } -static void amdxdna_gem_vm_open(struct vm_area_struct *vma) +static void amdxdna_gem_vm_open(struct mm_area *vma) { drm_gem_shmem_vm_ops.open(vma); } -static void amdxdna_gem_vm_close(struct vm_area_struct *vma) +static void amdxdna_gem_vm_close(struct mm_area *vma) { struct drm_gem_object *gobj = vma->vm_private_data; diff --git a/drivers/accel/habanalabs/common/command_buffer.c b/drivers/accel/habanalabs/common/command_buffer.c index 0f0d295116e7..6dab3015eb48 100644 --- a/drivers/accel/habanalabs/common/command_buffer.c +++ b/drivers/accel/habanalabs/common/command_buffer.c @@ -247,7 +247,7 @@ static int hl_cb_mmap_mem_alloc(struct hl_mmap_mem_buf *buf, gfp_t gfp, void *ar } static int hl_cb_mmap(struct hl_mmap_mem_buf *buf, - struct vm_area_struct *vma, void *args) + struct mm_area *vma, void *args) { struct hl_cb *cb = buf->private; diff --git a/drivers/accel/habanalabs/common/device.c b/drivers/accel/habanalabs/common/device.c index 68eebed3b050..b86d048f3954 100644 --- a/drivers/accel/habanalabs/common/device.c +++ b/drivers/accel/habanalabs/common/device.c @@ -647,7 +647,7 @@ static int hl_device_release_ctrl(struct inode *inode, struct file *filp) return 0; } -static int __hl_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) +static int __hl_mmap(struct hl_fpriv *hpriv, struct mm_area *vma) { struct hl_device *hdev = hpriv->hdev; unsigned long vm_pgoff; @@ -675,12 +675,12 @@ static int __hl_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) * hl_mmap - mmap function for habanalabs device * * @*filp: pointer to file structure - * @*vma: pointer to vm_area_struct of the process + * @*vma: pointer to mm_area of the process * * Called when process does an mmap on habanalabs device. Call the relevant mmap * function at the end of the common code. */ -int hl_mmap(struct file *filp, struct vm_area_struct *vma) +int hl_mmap(struct file *filp, struct mm_area *vma) { struct drm_file *file_priv = filp->private_data; struct hl_fpriv *hpriv = file_priv->driver_priv; diff --git a/drivers/accel/habanalabs/common/habanalabs.h b/drivers/accel/habanalabs/common/habanalabs.h index 6f27ce4fa01b..2cb705768786 100644 --- a/drivers/accel/habanalabs/common/habanalabs.h +++ b/drivers/accel/habanalabs/common/habanalabs.h @@ -45,7 +45,7 @@ struct hl_fpriv; * bits[63:59] - Encode mmap type * bits[45:0] - mmap offset value * - * NOTE: struct vm_area_struct.vm_pgoff uses offset in pages. Hence, these + * NOTE: struct mm_area.vm_pgoff uses offset in pages. Hence, these * defines are w.r.t to PAGE_SIZE */ #define HL_MMAP_TYPE_SHIFT (59 - PAGE_SHIFT) @@ -931,7 +931,7 @@ struct hl_mmap_mem_buf_behavior { u64 mem_id; int (*alloc)(struct hl_mmap_mem_buf *buf, gfp_t gfp, void *args); - int (*mmap)(struct hl_mmap_mem_buf *buf, struct vm_area_struct *vma, void *args); + int (*mmap)(struct hl_mmap_mem_buf *buf, struct mm_area *vma, void *args); void (*release)(struct hl_mmap_mem_buf *buf); }; @@ -1650,7 +1650,7 @@ struct hl_asic_funcs { void (*halt_engines)(struct hl_device *hdev, bool hard_reset, bool fw_reset); int (*suspend)(struct hl_device *hdev); int (*resume)(struct hl_device *hdev); - int (*mmap)(struct hl_device *hdev, struct vm_area_struct *vma, + int (*mmap)(struct hl_device *hdev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size); void (*ring_doorbell)(struct hl_device *hdev, u32 hw_queue_id, u32 pi); void (*pqe_write)(struct hl_device *hdev, __le64 *pqe, @@ -1745,7 +1745,7 @@ struct hl_asic_funcs { void (*ack_protection_bits_errors)(struct hl_device *hdev); int (*get_hw_block_id)(struct hl_device *hdev, u64 block_addr, u32 *block_size, u32 *block_id); - int (*hw_block_mmap)(struct hl_device *hdev, struct vm_area_struct *vma, + int (*hw_block_mmap)(struct hl_device *hdev, struct mm_area *vma, u32 block_id, u32 block_size); void (*enable_events_from_fw)(struct hl_device *hdev); int (*ack_mmu_errors)(struct hl_device *hdev, u64 mmu_cap_mask); @@ -3733,7 +3733,7 @@ int hl_access_cfg_region(struct hl_device *hdev, u64 addr, u64 *val, int hl_access_dev_mem(struct hl_device *hdev, enum pci_region region_type, u64 addr, u64 *val, enum debugfs_access_type acc_type); -int hl_mmap(struct file *filp, struct vm_area_struct *vma); +int hl_mmap(struct file *filp, struct mm_area *vma); int hl_device_open(struct drm_device *drm, struct drm_file *file_priv); void hl_device_release(struct drm_device *ddev, struct drm_file *file_priv); @@ -3819,7 +3819,7 @@ int hl_cb_create(struct hl_device *hdev, struct hl_mem_mgr *mmg, struct hl_ctx *ctx, u32 cb_size, bool internal_cb, bool map_cb, u64 *handle); int hl_cb_destroy(struct hl_mem_mgr *mmg, u64 cb_handle); -int hl_hw_block_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma); +int hl_hw_block_mmap(struct hl_fpriv *hpriv, struct mm_area *vma); struct hl_cb *hl_cb_get(struct hl_mem_mgr *mmg, u64 handle); void hl_cb_put(struct hl_cb *cb); struct hl_cb *hl_cb_kernel_create(struct hl_device *hdev, u32 cb_size, @@ -4063,7 +4063,7 @@ const char *hl_sync_engine_to_string(enum hl_sync_engine_type engine_type); void hl_mem_mgr_init(struct device *dev, struct hl_mem_mgr *mmg); void hl_mem_mgr_fini(struct hl_mem_mgr *mmg, struct hl_mem_mgr_fini_stats *stats); void hl_mem_mgr_idr_destroy(struct hl_mem_mgr *mmg); -int hl_mem_mgr_mmap(struct hl_mem_mgr *mmg, struct vm_area_struct *vma, +int hl_mem_mgr_mmap(struct hl_mem_mgr *mmg, struct mm_area *vma, void *args); struct hl_mmap_mem_buf *hl_mmap_mem_buf_get(struct hl_mem_mgr *mmg, u64 handle); diff --git a/drivers/accel/habanalabs/common/memory.c b/drivers/accel/habanalabs/common/memory.c index 601fdbe70179..4688d24b34df 100644 --- a/drivers/accel/habanalabs/common/memory.c +++ b/drivers/accel/habanalabs/common/memory.c @@ -1424,7 +1424,7 @@ static int map_block(struct hl_device *hdev, u64 address, u64 *handle, u32 *size return 0; } -static void hw_block_vm_close(struct vm_area_struct *vma) +static void hw_block_vm_close(struct mm_area *vma) { struct hl_vm_hw_block_list_node *lnode = (struct hl_vm_hw_block_list_node *) vma->vm_private_data; @@ -1452,12 +1452,12 @@ static const struct vm_operations_struct hw_block_vm_ops = { /** * hl_hw_block_mmap() - mmap a hw block to user. * @hpriv: pointer to the private data of the fd - * @vma: pointer to vm_area_struct of the process + * @vma: pointer to mm_area of the process * * Driver increments context reference for every HW block mapped in order * to prevent user from closing FD without unmapping first */ -int hl_hw_block_mmap(struct hl_fpriv *hpriv, struct vm_area_struct *vma) +int hl_hw_block_mmap(struct hl_fpriv *hpriv, struct mm_area *vma) { struct hl_vm_hw_block_list_node *lnode; struct hl_device *hdev = hpriv->hdev; @@ -2103,7 +2103,7 @@ static void ts_buff_release(struct hl_mmap_mem_buf *buf) kfree(ts_buff); } -static int hl_ts_mmap(struct hl_mmap_mem_buf *buf, struct vm_area_struct *vma, void *args) +static int hl_ts_mmap(struct hl_mmap_mem_buf *buf, struct mm_area *vma, void *args) { struct hl_ts_buff *ts_buff = buf->private; diff --git a/drivers/accel/habanalabs/common/memory_mgr.c b/drivers/accel/habanalabs/common/memory_mgr.c index 99cd83139d46..ea06e092b341 100644 --- a/drivers/accel/habanalabs/common/memory_mgr.c +++ b/drivers/accel/habanalabs/common/memory_mgr.c @@ -196,7 +196,7 @@ hl_mmap_mem_buf_alloc(struct hl_mem_mgr *mmg, * * Put the memory buffer if it is no longer mapped. */ -static void hl_mmap_mem_buf_vm_close(struct vm_area_struct *vma) +static void hl_mmap_mem_buf_vm_close(struct mm_area *vma) { struct hl_mmap_mem_buf *buf = (struct hl_mmap_mem_buf *)vma->vm_private_data; @@ -227,7 +227,7 @@ static const struct vm_operations_struct hl_mmap_mem_buf_vm_ops = { * * Map the buffer specified by the vma->vm_pgoff to the given vma. */ -int hl_mem_mgr_mmap(struct hl_mem_mgr *mmg, struct vm_area_struct *vma, +int hl_mem_mgr_mmap(struct hl_mem_mgr *mmg, struct mm_area *vma, void *args) { struct hl_mmap_mem_buf *buf; diff --git a/drivers/accel/habanalabs/gaudi/gaudi.c b/drivers/accel/habanalabs/gaudi/gaudi.c index fa893a9b826e..a52647a1b640 100644 --- a/drivers/accel/habanalabs/gaudi/gaudi.c +++ b/drivers/accel/habanalabs/gaudi/gaudi.c @@ -4160,7 +4160,7 @@ static int gaudi_resume(struct hl_device *hdev) return gaudi_init_iatu(hdev); } -static int gaudi_mmap(struct hl_device *hdev, struct vm_area_struct *vma, +static int gaudi_mmap(struct hl_device *hdev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size) { int rc; @@ -8769,7 +8769,7 @@ static int gaudi_get_hw_block_id(struct hl_device *hdev, u64 block_addr, } static int gaudi_block_mmap(struct hl_device *hdev, - struct vm_area_struct *vma, + struct mm_area *vma, u32 block_id, u32 block_size) { return -EPERM; diff --git a/drivers/accel/habanalabs/gaudi2/gaudi2.c b/drivers/accel/habanalabs/gaudi2/gaudi2.c index a38b88baadf2..12ef2bdebe5d 100644 --- a/drivers/accel/habanalabs/gaudi2/gaudi2.c +++ b/drivers/accel/habanalabs/gaudi2/gaudi2.c @@ -6475,7 +6475,7 @@ static int gaudi2_resume(struct hl_device *hdev) return gaudi2_init_iatu(hdev); } -static int gaudi2_mmap(struct hl_device *hdev, struct vm_area_struct *vma, +static int gaudi2_mmap(struct hl_device *hdev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size) { int rc; @@ -11238,7 +11238,7 @@ static int gaudi2_get_hw_block_id(struct hl_device *hdev, u64 block_addr, return -EINVAL; } -static int gaudi2_block_mmap(struct hl_device *hdev, struct vm_area_struct *vma, +static int gaudi2_block_mmap(struct hl_device *hdev, struct mm_area *vma, u32 block_id, u32 block_size) { struct gaudi2_device *gaudi2 = hdev->asic_specific; diff --git a/drivers/accel/habanalabs/goya/goya.c b/drivers/accel/habanalabs/goya/goya.c index 84768e306269..9319d29bb802 100644 --- a/drivers/accel/habanalabs/goya/goya.c +++ b/drivers/accel/habanalabs/goya/goya.c @@ -2869,7 +2869,7 @@ int goya_resume(struct hl_device *hdev) return goya_init_iatu(hdev); } -static int goya_mmap(struct hl_device *hdev, struct vm_area_struct *vma, +static int goya_mmap(struct hl_device *hdev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size) { int rc; @@ -5313,7 +5313,7 @@ static int goya_get_hw_block_id(struct hl_device *hdev, u64 block_addr, return -EPERM; } -static int goya_block_mmap(struct hl_device *hdev, struct vm_area_struct *vma, +static int goya_block_mmap(struct hl_device *hdev, struct mm_area *vma, u32 block_id, u32 block_size) { return -EPERM; diff --git a/drivers/accel/qaic/qaic_data.c b/drivers/accel/qaic/qaic_data.c index 43aba57b48f0..331e4683f42a 100644 --- a/drivers/accel/qaic/qaic_data.c +++ b/drivers/accel/qaic/qaic_data.c @@ -602,7 +602,7 @@ static const struct vm_operations_struct drm_vm_ops = { .close = drm_gem_vm_close, }; -static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int qaic_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct qaic_bo *bo = to_qaic_bo(obj); unsigned long offset = 0; diff --git a/drivers/acpi/pfr_telemetry.c b/drivers/acpi/pfr_telemetry.c index 32bdf8cbe8f2..4222c75ced8e 100644 --- a/drivers/acpi/pfr_telemetry.c +++ b/drivers/acpi/pfr_telemetry.c @@ -295,7 +295,7 @@ static long pfrt_log_ioctl(struct file *file, unsigned int cmd, unsigned long ar } static int -pfrt_log_mmap(struct file *file, struct vm_area_struct *vma) +pfrt_log_mmap(struct file *file, struct mm_area *vma) { struct pfrt_log_device *pfrt_log_dev; struct pfrt_log_data_info info; diff --git a/drivers/android/binder.c b/drivers/android/binder.c index 76052006bd87..a674ff1ab9a5 100644 --- a/drivers/android/binder.c +++ b/drivers/android/binder.c @@ -5935,7 +5935,7 @@ static long binder_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) return ret; } -static void binder_vma_open(struct vm_area_struct *vma) +static void binder_vma_open(struct mm_area *vma) { struct binder_proc *proc = vma->vm_private_data; @@ -5946,7 +5946,7 @@ static void binder_vma_open(struct vm_area_struct *vma) (unsigned long)pgprot_val(vma->vm_page_prot)); } -static void binder_vma_close(struct vm_area_struct *vma) +static void binder_vma_close(struct mm_area *vma) { struct binder_proc *proc = vma->vm_private_data; @@ -5969,7 +5969,7 @@ static const struct vm_operations_struct binder_vm_ops = { .fault = binder_vm_fault, }; -static int binder_mmap(struct file *filp, struct vm_area_struct *vma) +static int binder_mmap(struct file *filp, struct mm_area *vma) { struct binder_proc *proc = filp->private_data; diff --git a/drivers/android/binder_alloc.c b/drivers/android/binder_alloc.c index fcfaf1b899c8..95d8a0def3c5 100644 --- a/drivers/android/binder_alloc.c +++ b/drivers/android/binder_alloc.c @@ -258,7 +258,7 @@ static int binder_page_insert(struct binder_alloc *alloc, struct page *page) { struct mm_struct *mm = alloc->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int ret = -ESRCH; /* attempt per-vma lock first */ @@ -892,7 +892,7 @@ void binder_alloc_free_buf(struct binder_alloc *alloc, * -ENOMEM = failed to map memory to given address space */ int binder_alloc_mmap_handler(struct binder_alloc *alloc, - struct vm_area_struct *vma) + struct mm_area *vma) { struct binder_buffer *buffer; const char *failure_string; @@ -1140,7 +1140,7 @@ enum lru_status binder_alloc_free_page(struct list_head *item, struct binder_shrinker_mdata *mdata = container_of(item, typeof(*mdata), lru); struct binder_alloc *alloc = mdata->alloc; struct mm_struct *mm = alloc->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct page *page_to_free; unsigned long page_addr; int mm_locked = 0; diff --git a/drivers/android/binder_alloc.h b/drivers/android/binder_alloc.h index feecd7414241..71474a96c9dd 100644 --- a/drivers/android/binder_alloc.h +++ b/drivers/android/binder_alloc.h @@ -143,7 +143,7 @@ binder_alloc_prepare_to_free(struct binder_alloc *alloc, void binder_alloc_free_buf(struct binder_alloc *alloc, struct binder_buffer *buffer); int binder_alloc_mmap_handler(struct binder_alloc *alloc, - struct vm_area_struct *vma); + struct mm_area *vma); void binder_alloc_deferred_release(struct binder_alloc *alloc); int binder_alloc_get_allocated_count(struct binder_alloc *alloc); void binder_alloc_print_allocated(struct seq_file *m, diff --git a/drivers/auxdisplay/cfag12864bfb.c b/drivers/auxdisplay/cfag12864bfb.c index 24baf6b2c587..c8953939f33a 100644 --- a/drivers/auxdisplay/cfag12864bfb.c +++ b/drivers/auxdisplay/cfag12864bfb.c @@ -47,7 +47,7 @@ static const struct fb_var_screeninfo cfag12864bfb_var = { .vmode = FB_VMODE_NONINTERLACED, }; -static int cfag12864bfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int cfag12864bfb_mmap(struct fb_info *info, struct mm_area *vma) { struct page *pages = virt_to_page(cfag12864b_buffer); diff --git a/drivers/auxdisplay/ht16k33.c b/drivers/auxdisplay/ht16k33.c index 0b8ba754b343..835db2ac68c3 100644 --- a/drivers/auxdisplay/ht16k33.c +++ b/drivers/auxdisplay/ht16k33.c @@ -303,7 +303,7 @@ static int ht16k33_blank(int blank, struct fb_info *info) return 0; } -static int ht16k33_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int ht16k33_mmap(struct fb_info *info, struct mm_area *vma) { struct ht16k33_priv *priv = info->par; struct page *pages = virt_to_page(priv->fbdev.buffer); diff --git a/drivers/block/ublk_drv.c b/drivers/block/ublk_drv.c index 2fd05c1bd30b..55cfd9965a5d 100644 --- a/drivers/block/ublk_drv.c +++ b/drivers/block/ublk_drv.c @@ -1467,7 +1467,7 @@ static int ublk_ch_release(struct inode *inode, struct file *filp) } /* map pre-allocated per-queue cmd buffer to ublksrv daemon */ -static int ublk_ch_mmap(struct file *filp, struct vm_area_struct *vma) +static int ublk_ch_mmap(struct file *filp, struct mm_area *vma) { struct ublk_device *ub = filp->private_data; size_t sz = vma->vm_end - vma->vm_start; diff --git a/drivers/cdx/cdx.c b/drivers/cdx/cdx.c index 092306ca2541..f3f114c29555 100644 --- a/drivers/cdx/cdx.c +++ b/drivers/cdx/cdx.c @@ -708,7 +708,7 @@ static const struct vm_operations_struct cdx_phys_vm_ops = { * this API is registered as a callback. * @kobj: kobject for mapping * @attr: struct bin_attribute for the file being mapped - * @vma: struct vm_area_struct passed into the mmap + * @vma: struct mm_area passed into the mmap * * Use the regular CDX mapping routines to map a CDX resource into userspace. * @@ -716,7 +716,7 @@ static const struct vm_operations_struct cdx_phys_vm_ops = { */ static int cdx_mmap_resource(struct file *fp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { struct cdx_device *cdx_dev = to_cdx_device(kobj_to_dev(kobj)); int num = (unsigned long)attr->private; diff --git a/drivers/char/bsr.c b/drivers/char/bsr.c index 837109ef6766..005cbf590708 100644 --- a/drivers/char/bsr.c +++ b/drivers/char/bsr.c @@ -111,7 +111,7 @@ static const struct class bsr_class = { .dev_groups = bsr_dev_groups, }; -static int bsr_mmap(struct file *filp, struct vm_area_struct *vma) +static int bsr_mmap(struct file *filp, struct mm_area *vma) { unsigned long size = vma->vm_end - vma->vm_start; struct bsr_dev *dev = filp->private_data; diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c index e110857824fc..af1076b99117 100644 --- a/drivers/char/hpet.c +++ b/drivers/char/hpet.c @@ -354,7 +354,7 @@ static __init int hpet_mmap_enable(char *str) } __setup("hpet_mmap=", hpet_mmap_enable); -static int hpet_mmap(struct file *file, struct vm_area_struct *vma) +static int hpet_mmap(struct file *file, struct mm_area *vma) { struct hpet_dev *devp; unsigned long addr; @@ -372,7 +372,7 @@ static int hpet_mmap(struct file *file, struct vm_area_struct *vma) return vm_iomap_memory(vma, addr, PAGE_SIZE); } #else -static int hpet_mmap(struct file *file, struct vm_area_struct *vma) +static int hpet_mmap(struct file *file, struct mm_area *vma) { return -ENOSYS; } diff --git a/drivers/char/mem.c b/drivers/char/mem.c index 169eed162a7f..350af6fa120a 100644 --- a/drivers/char/mem.c +++ b/drivers/char/mem.c @@ -322,13 +322,13 @@ static unsigned zero_mmap_capabilities(struct file *file) } /* can't do an in-place private mapping if there's no MMU */ -static inline int private_mapping_ok(struct vm_area_struct *vma) +static inline int private_mapping_ok(struct mm_area *vma) { return is_nommu_shared_mapping(vma->vm_flags); } #else -static inline int private_mapping_ok(struct vm_area_struct *vma) +static inline int private_mapping_ok(struct mm_area *vma) { return 1; } @@ -340,7 +340,7 @@ static const struct vm_operations_struct mmap_mem_ops = { #endif }; -static int mmap_mem(struct file *file, struct vm_area_struct *vma) +static int mmap_mem(struct file *file, struct mm_area *vma) { size_t size = vma->vm_end - vma->vm_start; phys_addr_t offset = (phys_addr_t)vma->vm_pgoff << PAGE_SHIFT; @@ -519,7 +519,7 @@ static ssize_t read_zero(struct file *file, char __user *buf, return cleared; } -static int mmap_zero(struct file *file, struct vm_area_struct *vma) +static int mmap_zero(struct file *file, struct mm_area *vma) { #ifndef CONFIG_MMU return -ENOSYS; diff --git a/drivers/char/uv_mmtimer.c b/drivers/char/uv_mmtimer.c index 956ebe2080a5..3a8a210592db 100644 --- a/drivers/char/uv_mmtimer.c +++ b/drivers/char/uv_mmtimer.c @@ -40,7 +40,7 @@ MODULE_LICENSE("GPL"); static long uv_mmtimer_ioctl(struct file *file, unsigned int cmd, unsigned long arg); -static int uv_mmtimer_mmap(struct file *file, struct vm_area_struct *vma); +static int uv_mmtimer_mmap(struct file *file, struct mm_area *vma); /* * Period in femtoseconds (10^-15 s) @@ -144,7 +144,7 @@ static long uv_mmtimer_ioctl(struct file *file, unsigned int cmd, * Calls remap_pfn_range() to map the clock's registers into * the calling process' address space. */ -static int uv_mmtimer_mmap(struct file *file, struct vm_area_struct *vma) +static int uv_mmtimer_mmap(struct file *file, struct mm_area *vma) { unsigned long uv_mmtimer_addr; diff --git a/drivers/comedi/comedi_fops.c b/drivers/comedi/comedi_fops.c index b9df9b19d4bd..9e3ef27295ec 100644 --- a/drivers/comedi/comedi_fops.c +++ b/drivers/comedi/comedi_fops.c @@ -2282,7 +2282,7 @@ static long comedi_unlocked_ioctl(struct file *file, unsigned int cmd, return rc; } -static void comedi_vm_open(struct vm_area_struct *area) +static void comedi_vm_open(struct mm_area *area) { struct comedi_buf_map *bm; @@ -2290,7 +2290,7 @@ static void comedi_vm_open(struct vm_area_struct *area) comedi_buf_map_get(bm); } -static void comedi_vm_close(struct vm_area_struct *area) +static void comedi_vm_close(struct mm_area *area) { struct comedi_buf_map *bm; @@ -2298,7 +2298,7 @@ static void comedi_vm_close(struct vm_area_struct *area) comedi_buf_map_put(bm); } -static int comedi_vm_access(struct vm_area_struct *vma, unsigned long addr, +static int comedi_vm_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { struct comedi_buf_map *bm = vma->vm_private_data; @@ -2318,7 +2318,7 @@ static const struct vm_operations_struct comedi_vm_ops = { .access = comedi_vm_access, }; -static int comedi_mmap(struct file *file, struct vm_area_struct *vma) +static int comedi_mmap(struct file *file, struct mm_area *vma) { struct comedi_file *cfp = file->private_data; struct comedi_device *dev = cfp->dev; diff --git a/drivers/crypto/hisilicon/qm.c b/drivers/crypto/hisilicon/qm.c index d3f5d108b898..c9d9b977c07a 100644 --- a/drivers/crypto/hisilicon/qm.c +++ b/drivers/crypto/hisilicon/qm.c @@ -2454,7 +2454,7 @@ static void hisi_qm_uacce_put_queue(struct uacce_queue *q) /* map sq/cq/doorbell to user space */ static int hisi_qm_uacce_mmap(struct uacce_queue *q, - struct vm_area_struct *vma, + struct mm_area *vma, struct uacce_qfile_region *qfr) { struct hisi_qp *qp = q->priv; diff --git a/drivers/dax/device.c b/drivers/dax/device.c index 328231cfb028..6a5724727688 100644 --- a/drivers/dax/device.c +++ b/drivers/dax/device.c @@ -14,7 +14,7 @@ #include "dax-private.h" #include "bus.h" -static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma, +static int check_vma(struct dev_dax *dev_dax, struct mm_area *vma, const char *func) { struct device *dev = &dev_dax->dev; @@ -261,7 +261,7 @@ static vm_fault_t dev_dax_fault(struct vm_fault *vmf) return dev_dax_huge_fault(vmf, 0); } -static int dev_dax_may_split(struct vm_area_struct *vma, unsigned long addr) +static int dev_dax_may_split(struct mm_area *vma, unsigned long addr) { struct file *filp = vma->vm_file; struct dev_dax *dev_dax = filp->private_data; @@ -271,7 +271,7 @@ static int dev_dax_may_split(struct vm_area_struct *vma, unsigned long addr) return 0; } -static unsigned long dev_dax_pagesize(struct vm_area_struct *vma) +static unsigned long dev_dax_pagesize(struct mm_area *vma) { struct file *filp = vma->vm_file; struct dev_dax *dev_dax = filp->private_data; @@ -286,7 +286,7 @@ static const struct vm_operations_struct dax_vm_ops = { .pagesize = dev_dax_pagesize, }; -static int dax_mmap(struct file *filp, struct vm_area_struct *vma) +static int dax_mmap(struct file *filp, struct mm_area *vma) { struct dev_dax *dev_dax = filp->private_data; int rc, id; diff --git a/drivers/dma-buf/dma-buf.c b/drivers/dma-buf/dma-buf.c index 5baa83b85515..afc92bd59362 100644 --- a/drivers/dma-buf/dma-buf.c +++ b/drivers/dma-buf/dma-buf.c @@ -144,7 +144,7 @@ static struct file_system_type dma_buf_fs_type = { .kill_sb = kill_anon_super, }; -static int dma_buf_mmap_internal(struct file *file, struct vm_area_struct *vma) +static int dma_buf_mmap_internal(struct file *file, struct mm_area *vma) { struct dma_buf *dmabuf; @@ -1364,7 +1364,7 @@ EXPORT_SYMBOL_NS_GPL(dma_buf_move_notify, "DMA_BUF"); * * .. code-block:: c * - * int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *, unsigned long); + * int dma_buf_mmap(struct dma_buf *, struct mm_area *, unsigned long); * * If the importing subsystem simply provides a special-purpose mmap call to * set up a mapping in userspace, calling do_mmap with &dma_buf.file will @@ -1474,7 +1474,7 @@ EXPORT_SYMBOL_NS_GPL(dma_buf_end_cpu_access, "DMA_BUF"); * * Can return negative error values, returns 0 on success. */ -int dma_buf_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma, +int dma_buf_mmap(struct dma_buf *dmabuf, struct mm_area *vma, unsigned long pgoff) { if (WARN_ON(!dmabuf || !vma)) diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c index 9512d050563a..17ae7983a93a 100644 --- a/drivers/dma-buf/heaps/cma_heap.c +++ b/drivers/dma-buf/heaps/cma_heap.c @@ -162,7 +162,7 @@ static int cma_heap_dma_buf_end_cpu_access(struct dma_buf *dmabuf, static vm_fault_t cma_heap_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct cma_heap_buffer *buffer = vma->vm_private_data; if (vmf->pgoff >= buffer->pagecount) @@ -175,7 +175,7 @@ static const struct vm_operations_struct dma_heap_vm_ops = { .fault = cma_heap_vm_fault, }; -static int cma_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) +static int cma_heap_mmap(struct dma_buf *dmabuf, struct mm_area *vma) { struct cma_heap_buffer *buffer = dmabuf->priv; diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c index 26d5dc89ea16..43fd8260f29b 100644 --- a/drivers/dma-buf/heaps/system_heap.c +++ b/drivers/dma-buf/heaps/system_heap.c @@ -192,7 +192,7 @@ static int system_heap_dma_buf_end_cpu_access(struct dma_buf *dmabuf, return 0; } -static int system_heap_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) +static int system_heap_mmap(struct dma_buf *dmabuf, struct mm_area *vma) { struct system_heap_buffer *buffer = dmabuf->priv; struct sg_table *table = &buffer->sg_table; diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c index e74e36a8ecda..7c3de3568e46 100644 --- a/drivers/dma-buf/udmabuf.c +++ b/drivers/dma-buf/udmabuf.c @@ -46,7 +46,7 @@ struct udmabuf { static vm_fault_t udmabuf_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct udmabuf *ubuf = vma->vm_private_data; pgoff_t pgoff = vmf->pgoff; unsigned long addr, pfn; @@ -93,7 +93,7 @@ static const struct vm_operations_struct udmabuf_vm_ops = { .fault = udmabuf_vm_fault, }; -static int mmap_udmabuf(struct dma_buf *buf, struct vm_area_struct *vma) +static int mmap_udmabuf(struct dma_buf *buf, struct mm_area *vma) { struct udmabuf *ubuf = buf->priv; diff --git a/drivers/dma/idxd/cdev.c b/drivers/dma/idxd/cdev.c index ff94ee892339..2fd71e61d6c8 100644 --- a/drivers/dma/idxd/cdev.c +++ b/drivers/dma/idxd/cdev.c @@ -368,7 +368,7 @@ static int idxd_cdev_release(struct inode *node, struct file *filep) return 0; } -static int check_vma(struct idxd_wq *wq, struct vm_area_struct *vma, +static int check_vma(struct idxd_wq *wq, struct mm_area *vma, const char *func) { struct device *dev = &wq->idxd->pdev->dev; @@ -384,7 +384,7 @@ static int check_vma(struct idxd_wq *wq, struct vm_area_struct *vma, return 0; } -static int idxd_cdev_mmap(struct file *filp, struct vm_area_struct *vma) +static int idxd_cdev_mmap(struct file *filp, struct mm_area *vma) { struct idxd_user_context *ctx = filp->private_data; struct idxd_wq *wq = ctx->wq; diff --git a/drivers/firewire/core-cdev.c b/drivers/firewire/core-cdev.c index bd04980009a4..a8a2ccd8af78 100644 --- a/drivers/firewire/core-cdev.c +++ b/drivers/firewire/core-cdev.c @@ -1786,7 +1786,7 @@ static long fw_device_op_ioctl(struct file *file, return dispatch_ioctl(file->private_data, cmd, (void __user *)arg); } -static int fw_device_op_mmap(struct file *file, struct vm_area_struct *vma) +static int fw_device_op_mmap(struct file *file, struct mm_area *vma) { struct client *client = file->private_data; unsigned long size; diff --git a/drivers/fpga/dfl-afu-main.c b/drivers/fpga/dfl-afu-main.c index 3bf8e7338dbe..1b9b86d2ee0f 100644 --- a/drivers/fpga/dfl-afu-main.c +++ b/drivers/fpga/dfl-afu-main.c @@ -805,7 +805,7 @@ static const struct vm_operations_struct afu_vma_ops = { #endif }; -static int afu_mmap(struct file *filp, struct vm_area_struct *vma) +static int afu_mmap(struct file *filp, struct mm_area *vma) { struct platform_device *pdev = filp->private_data; u64 size = vma->vm_end - vma->vm_start; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c index 69429df09477..993513183c9c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c @@ -272,7 +272,7 @@ static void amdgpu_gem_object_close(struct drm_gem_object *obj, drm_exec_fini(&exec); } -static int amdgpu_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int amdgpu_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct amdgpu_bo *bo = gem_to_amdgpu_bo(obj); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c index 53b71e9d8076..304a1c09b89c 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c @@ -700,7 +700,7 @@ int amdgpu_ttm_tt_get_user_pages(struct amdgpu_bo *bo, struct page **pages, struct ttm_tt *ttm = bo->tbo.ttm; struct amdgpu_ttm_tt *gtt = ttm_to_amdgpu_ttm_tt(ttm); unsigned long start = gtt->userptr; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; bool readonly; int r = 0; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c index 1e9dd00620bf..00a7f935b0a7 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c @@ -48,7 +48,7 @@ static long kfd_ioctl(struct file *, unsigned int, unsigned long); static int kfd_open(struct inode *, struct file *); static int kfd_release(struct inode *, struct file *); -static int kfd_mmap(struct file *, struct vm_area_struct *); +static int kfd_mmap(struct file *, struct mm_area *); static const char kfd_dev_name[] = "kfd"; @@ -3360,7 +3360,7 @@ static long kfd_ioctl(struct file *filep, unsigned int cmd, unsigned long arg) } static int kfd_mmio_mmap(struct kfd_node *dev, struct kfd_process *process, - struct vm_area_struct *vma) + struct mm_area *vma) { phys_addr_t address; @@ -3393,7 +3393,7 @@ static int kfd_mmio_mmap(struct kfd_node *dev, struct kfd_process *process, } -static int kfd_mmap(struct file *filp, struct vm_area_struct *vma) +static int kfd_mmap(struct file *filp, struct mm_area *vma) { struct kfd_process *process; struct kfd_node *dev = NULL; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c b/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c index 05c74887fd6f..cff9e53c009c 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_doorbell.c @@ -104,7 +104,7 @@ void kfd_doorbell_fini(struct kfd_dev *kfd) } int kfd_doorbell_mmap(struct kfd_node *dev, struct kfd_process *process, - struct vm_area_struct *vma) + struct mm_area *vma) { phys_addr_t address; struct kfd_process_device *pdd; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_events.c b/drivers/gpu/drm/amd/amdkfd/kfd_events.c index fecdb6794075..8b767a08782a 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_events.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_events.c @@ -1063,7 +1063,7 @@ int kfd_wait_on_events(struct kfd_process *p, return ret; } -int kfd_event_mmap(struct kfd_process *p, struct vm_area_struct *vma) +int kfd_event_mmap(struct kfd_process *p, struct mm_area *vma) { unsigned long pfn; struct kfd_signal_page *page; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c index 79251f22b702..86560564d30d 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_migrate.c @@ -240,7 +240,7 @@ svm_migrate_addr(struct amdgpu_device *adev, struct page *page) } static struct page * -svm_migrate_get_sys_page(struct vm_area_struct *vma, unsigned long addr) +svm_migrate_get_sys_page(struct mm_area *vma, unsigned long addr) { struct page *page; @@ -385,7 +385,7 @@ svm_migrate_copy_to_vram(struct kfd_node *node, struct svm_range *prange, static long svm_migrate_vma_to_vram(struct kfd_node *node, struct svm_range *prange, - struct vm_area_struct *vma, uint64_t start, + struct mm_area *vma, uint64_t start, uint64_t end, uint32_t trigger, uint64_t ttm_res_offset) { struct kfd_process *p = container_of(prange->svms, struct kfd_process, svms); @@ -489,7 +489,7 @@ svm_migrate_ram_to_vram(struct svm_range *prange, uint32_t best_loc, struct mm_struct *mm, uint32_t trigger) { unsigned long addr, start, end; - struct vm_area_struct *vma; + struct mm_area *vma; uint64_t ttm_res_offset; struct kfd_node *node; unsigned long mpages = 0; @@ -668,7 +668,7 @@ svm_migrate_copy_to_ram(struct amdgpu_device *adev, struct svm_range *prange, * svm_migrate_vma_to_ram - migrate range inside one vma from device to system * * @prange: svm range structure - * @vma: vm_area_struct that range [start, end] belongs to + * @vma: mm_area that range [start, end] belongs to * @start: range start virtual address in pages * @end: range end virtual address in pages * @node: kfd node device to migrate from @@ -683,7 +683,7 @@ svm_migrate_copy_to_ram(struct amdgpu_device *adev, struct svm_range *prange, */ static long svm_migrate_vma_to_ram(struct kfd_node *node, struct svm_range *prange, - struct vm_area_struct *vma, uint64_t start, uint64_t end, + struct mm_area *vma, uint64_t start, uint64_t end, uint32_t trigger, struct page *fault_page) { struct kfd_process *p = container_of(prange->svms, struct kfd_process, svms); @@ -793,7 +793,7 @@ int svm_migrate_vram_to_ram(struct svm_range *prange, struct mm_struct *mm, uint32_t trigger, struct page *fault_page) { struct kfd_node *node; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr; unsigned long start; unsigned long end; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h index f6aedf69c644..82d332c7bdd1 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_priv.h +++ b/drivers/gpu/drm/amd/amdkfd/kfd_priv.h @@ -61,7 +61,7 @@ * BITS[61:46] - Encode gpu_id. To identify to which GPU the offset belongs to * BITS[45:0] - MMAP offset value * - * NOTE: struct vm_area_struct.vm_pgoff uses offset in pages. Hence, these + * NOTE: struct mm_area.vm_pgoff uses offset in pages. Hence, these * defines are w.r.t to PAGE_SIZE */ #define KFD_MMAP_TYPE_SHIFT 62 @@ -1077,7 +1077,7 @@ struct kfd_process_device *kfd_create_process_device_data(struct kfd_node *dev, bool kfd_process_xnack_mode(struct kfd_process *p, bool supported); int kfd_reserved_mem_mmap(struct kfd_node *dev, struct kfd_process *process, - struct vm_area_struct *vma); + struct mm_area *vma); /* KFD process API for creating and translating handles */ int kfd_process_device_create_obj_handle(struct kfd_process_device *pdd, @@ -1099,7 +1099,7 @@ size_t kfd_doorbell_process_slice(struct kfd_dev *kfd); int kfd_doorbell_init(struct kfd_dev *kfd); void kfd_doorbell_fini(struct kfd_dev *kfd); int kfd_doorbell_mmap(struct kfd_node *dev, struct kfd_process *process, - struct vm_area_struct *vma); + struct mm_area *vma); void __iomem *kfd_get_kernel_doorbell(struct kfd_dev *kfd, unsigned int *doorbell_off); void kfd_release_kernel_doorbell(struct kfd_dev *kfd, u32 __iomem *db_addr); @@ -1487,7 +1487,7 @@ extern const struct kfd_device_global_init_class device_global_init_class_cik; int kfd_event_init_process(struct kfd_process *p); void kfd_event_free_process(struct kfd_process *p); -int kfd_event_mmap(struct kfd_process *process, struct vm_area_struct *vma); +int kfd_event_mmap(struct kfd_process *process, struct mm_area *vma); int kfd_wait_on_events(struct kfd_process *p, uint32_t num_events, void __user *data, bool all, uint32_t *user_timeout_ms, diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd/amdkfd/kfd_process.c index 7c0c24732481..94056ffd51d7 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -2111,7 +2111,7 @@ int kfd_resume_all_processes(void) } int kfd_reserved_mem_mmap(struct kfd_node *dev, struct kfd_process *process, - struct vm_area_struct *vma) + struct mm_area *vma) { struct kfd_process_device *pdd; struct qcm_process_device *qpd; diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c index 100717a98ec1..01e2538d9622 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_svm.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_svm.c @@ -1704,7 +1704,7 @@ static int svm_range_validate_and_map(struct mm_struct *mm, struct hmm_range *hmm_range = NULL; unsigned long map_start_vma; unsigned long map_last_vma; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long next = 0; unsigned long offset; unsigned long npages; @@ -2721,7 +2721,7 @@ svm_range_get_range_boundaries(struct kfd_process *p, int64_t addr, unsigned long *start, unsigned long *last, bool *is_heap_stack) { - struct vm_area_struct *vma; + struct mm_area *vma; struct interval_tree_node *node; struct rb_node *rb_node; unsigned long start_limit, end_limit; @@ -2938,7 +2938,7 @@ svm_range_count_fault(struct kfd_node *node, struct kfd_process *p, } static bool -svm_fault_allowed(struct vm_area_struct *vma, bool write_fault) +svm_fault_allowed(struct mm_area *vma, bool write_fault) { unsigned long requested = VM_READ; @@ -2965,7 +2965,7 @@ svm_range_restore_pages(struct amdgpu_device *adev, unsigned int pasid, int32_t best_loc; int32_t gpuid, gpuidx = MAX_GPU_INSTANCE; bool write_locked = false; - struct vm_area_struct *vma; + struct mm_area *vma; bool migration = false; int r = 0; @@ -3373,7 +3373,7 @@ static int svm_range_is_valid(struct kfd_process *p, uint64_t start, uint64_t size) { const unsigned long device_vma = VM_IO | VM_PFNMAP | VM_MIXEDMAP; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long end; unsigned long start_unchg = start; diff --git a/drivers/gpu/drm/armada/armada_gem.c b/drivers/gpu/drm/armada/armada_gem.c index 1a1680d71486..94767247f919 100644 --- a/drivers/gpu/drm/armada/armada_gem.c +++ b/drivers/gpu/drm/armada/armada_gem.c @@ -471,7 +471,7 @@ static void armada_gem_prime_unmap_dma_buf(struct dma_buf_attachment *attach, } static int -armada_gem_dmabuf_mmap(struct dma_buf *buf, struct vm_area_struct *vma) +armada_gem_dmabuf_mmap(struct dma_buf *buf, struct mm_area *vma) { return -EINVAL; } diff --git a/drivers/gpu/drm/drm_fbdev_dma.c b/drivers/gpu/drm/drm_fbdev_dma.c index 02a516e77192..d6b5bcdbc19f 100644 --- a/drivers/gpu/drm/drm_fbdev_dma.c +++ b/drivers/gpu/drm/drm_fbdev_dma.c @@ -35,7 +35,7 @@ static int drm_fbdev_dma_fb_release(struct fb_info *info, int user) return 0; } -static int drm_fbdev_dma_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int drm_fbdev_dma_fb_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *fb_helper = info->par; diff --git a/drivers/gpu/drm/drm_fbdev_shmem.c b/drivers/gpu/drm/drm_fbdev_shmem.c index f824369baacd..3077d8e6e55b 100644 --- a/drivers/gpu/drm/drm_fbdev_shmem.c +++ b/drivers/gpu/drm/drm_fbdev_shmem.c @@ -38,7 +38,7 @@ FB_GEN_DEFAULT_DEFERRED_SYSMEM_OPS(drm_fbdev_shmem, drm_fb_helper_damage_range, drm_fb_helper_damage_area); -static int drm_fbdev_shmem_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int drm_fbdev_shmem_fb_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *fb_helper = info->par; struct drm_framebuffer *fb = fb_helper->fb; diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index c6240bab3fa5..f7a750cea62c 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -1013,7 +1013,7 @@ EXPORT_SYMBOL(drm_gem_object_free); * This function implements the #vm_operations_struct open() callback for GEM * drivers. This must be used together with drm_gem_vm_close(). */ -void drm_gem_vm_open(struct vm_area_struct *vma) +void drm_gem_vm_open(struct mm_area *vma) { struct drm_gem_object *obj = vma->vm_private_data; @@ -1028,7 +1028,7 @@ EXPORT_SYMBOL(drm_gem_vm_open); * This function implements the #vm_operations_struct close() callback for GEM * drivers. This must be used together with drm_gem_vm_open(). */ -void drm_gem_vm_close(struct vm_area_struct *vma) +void drm_gem_vm_close(struct mm_area *vma) { struct drm_gem_object *obj = vma->vm_private_data; @@ -1061,7 +1061,7 @@ EXPORT_SYMBOL(drm_gem_vm_close); * size, or if no vm_ops are provided. */ int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, - struct vm_area_struct *vma) + struct mm_area *vma) { int ret; @@ -1119,7 +1119,7 @@ EXPORT_SYMBOL(drm_gem_mmap_obj); * If the caller is not granted access to the buffer object, the mmap will fail * with EACCES. Please see the vma manager for more information. */ -int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma) +int drm_gem_mmap(struct file *filp, struct mm_area *vma) { struct drm_file *priv = filp->private_data; struct drm_device *dev = priv->minor->dev; diff --git a/drivers/gpu/drm/drm_gem_dma_helper.c b/drivers/gpu/drm/drm_gem_dma_helper.c index b7f033d4352a..d3ae2d67fcc0 100644 --- a/drivers/gpu/drm/drm_gem_dma_helper.c +++ b/drivers/gpu/drm/drm_gem_dma_helper.c @@ -519,7 +519,7 @@ EXPORT_SYMBOL_GPL(drm_gem_dma_vmap); * Returns: * 0 on success or a negative error code on failure. */ -int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct vm_area_struct *vma) +int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct mm_area *vma) { struct drm_gem_object *obj = &dma_obj->base; int ret; diff --git a/drivers/gpu/drm/drm_gem_shmem_helper.c b/drivers/gpu/drm/drm_gem_shmem_helper.c index d99dee67353a..b98f02716ad7 100644 --- a/drivers/gpu/drm/drm_gem_shmem_helper.c +++ b/drivers/gpu/drm/drm_gem_shmem_helper.c @@ -533,7 +533,7 @@ EXPORT_SYMBOL_GPL(drm_gem_shmem_dumb_create); static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj = vma->vm_private_data; struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); loff_t num_pages = obj->size >> PAGE_SHIFT; @@ -561,7 +561,7 @@ static vm_fault_t drm_gem_shmem_fault(struct vm_fault *vmf) return ret; } -static void drm_gem_shmem_vm_open(struct vm_area_struct *vma) +static void drm_gem_shmem_vm_open(struct mm_area *vma) { struct drm_gem_object *obj = vma->vm_private_data; struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); @@ -583,7 +583,7 @@ static void drm_gem_shmem_vm_open(struct vm_area_struct *vma) drm_gem_vm_open(vma); } -static void drm_gem_shmem_vm_close(struct vm_area_struct *vma) +static void drm_gem_shmem_vm_close(struct mm_area *vma) { struct drm_gem_object *obj = vma->vm_private_data; struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); @@ -613,7 +613,7 @@ EXPORT_SYMBOL_GPL(drm_gem_shmem_vm_ops); * Returns: * 0 on success or a negative error code on failure. */ -int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct *vma) +int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct mm_area *vma) { struct drm_gem_object *obj = &shmem->base; int ret; diff --git a/drivers/gpu/drm/drm_gem_ttm_helper.c b/drivers/gpu/drm/drm_gem_ttm_helper.c index 3734aa2d1c5b..5ab41caf8e4a 100644 --- a/drivers/gpu/drm/drm_gem_ttm_helper.c +++ b/drivers/gpu/drm/drm_gem_ttm_helper.c @@ -97,7 +97,7 @@ EXPORT_SYMBOL(drm_gem_ttm_vunmap); * callback. */ int drm_gem_ttm_mmap(struct drm_gem_object *gem, - struct vm_area_struct *vma) + struct mm_area *vma) { struct ttm_buffer_object *bo = drm_gem_ttm_of_gem(gem); int ret; diff --git a/drivers/gpu/drm/drm_gpusvm.c b/drivers/gpu/drm/drm_gpusvm.c index 38431e8360e7..8d7fd83f2f1f 100644 --- a/drivers/gpu/drm/drm_gpusvm.c +++ b/drivers/gpu/drm/drm_gpusvm.c @@ -902,7 +902,7 @@ static bool drm_gpusvm_check_pages(struct drm_gpusvm *gpusvm, static unsigned long drm_gpusvm_range_chunk_size(struct drm_gpusvm *gpusvm, struct drm_gpusvm_notifier *notifier, - struct vm_area_struct *vas, + struct mm_area *vas, unsigned long fault_addr, unsigned long gpuva_start, unsigned long gpuva_end, @@ -1003,7 +1003,7 @@ drm_gpusvm_range_find_or_insert(struct drm_gpusvm *gpusvm, struct drm_gpusvm_notifier *notifier; struct drm_gpusvm_range *range; struct mm_struct *mm = gpusvm->mm; - struct vm_area_struct *vas; + struct mm_area *vas; bool notifier_alloc = false; unsigned long chunk_size; int err; @@ -1678,7 +1678,7 @@ int drm_gpusvm_migrate_to_devmem(struct drm_gpusvm *gpusvm, }; struct mm_struct *mm = gpusvm->mm; unsigned long i, npages = npages_in_range(start, end); - struct vm_area_struct *vas; + struct mm_area *vas; struct drm_gpusvm_zdd *zdd = NULL; struct page **pages; dma_addr_t *dma_addr; @@ -1800,7 +1800,7 @@ EXPORT_SYMBOL_GPL(drm_gpusvm_migrate_to_devmem); * * Return: 0 on success, negative error code on failure. */ -static int drm_gpusvm_migrate_populate_ram_pfn(struct vm_area_struct *vas, +static int drm_gpusvm_migrate_populate_ram_pfn(struct mm_area *vas, struct page *fault_page, unsigned long npages, unsigned long *mpages, @@ -1962,7 +1962,7 @@ EXPORT_SYMBOL_GPL(drm_gpusvm_evict_to_ram); * * Return: 0 on success, negative error code on failure. */ -static int __drm_gpusvm_migrate_to_ram(struct vm_area_struct *vas, +static int __drm_gpusvm_migrate_to_ram(struct mm_area *vas, void *device_private_page_owner, struct page *page, unsigned long fault_addr, diff --git a/drivers/gpu/drm/drm_prime.c b/drivers/gpu/drm/drm_prime.c index bdb51c8f262e..3691e0445696 100644 --- a/drivers/gpu/drm/drm_prime.c +++ b/drivers/gpu/drm/drm_prime.c @@ -737,7 +737,7 @@ EXPORT_SYMBOL(drm_gem_dmabuf_vunmap); * The fake GEM offset is added to vma->vm_pgoff and &drm_driver->fops->mmap is * called to set up the mapping. */ -int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +int drm_gem_prime_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct drm_file *priv; struct file *fil; @@ -795,7 +795,7 @@ EXPORT_SYMBOL(drm_gem_prime_mmap); * * Returns 0 on success or a negative error code on failure. */ -int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma) +int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct mm_area *vma) { struct drm_gem_object *obj = dma_buf->priv; diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.c b/drivers/gpu/drm/etnaviv/etnaviv_gem.c index 2f844e82bc46..8a5d096ddb36 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.c @@ -125,7 +125,7 @@ void etnaviv_gem_put_pages(struct etnaviv_gem_object *etnaviv_obj) } static int etnaviv_gem_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, - struct vm_area_struct *vma) + struct mm_area *vma) { pgprot_t vm_page_prot; @@ -152,7 +152,7 @@ static int etnaviv_gem_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, return 0; } -static int etnaviv_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int etnaviv_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); @@ -161,7 +161,7 @@ static int etnaviv_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *v static vm_fault_t etnaviv_gem_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj = vma->vm_private_data; struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj); struct page **pages; @@ -718,7 +718,7 @@ static void etnaviv_gem_userptr_release(struct etnaviv_gem_object *etnaviv_obj) } static int etnaviv_gem_userptr_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, - struct vm_area_struct *vma) + struct mm_area *vma) { return -EINVAL; } diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem.h b/drivers/gpu/drm/etnaviv/etnaviv_gem.h index e5ee82a0674c..20c10d1bedd2 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem.h +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem.h @@ -68,7 +68,7 @@ struct etnaviv_gem_ops { int (*get_pages)(struct etnaviv_gem_object *); void (*release)(struct etnaviv_gem_object *); void *(*vmap)(struct etnaviv_gem_object *); - int (*mmap)(struct etnaviv_gem_object *, struct vm_area_struct *); + int (*mmap)(struct etnaviv_gem_object *, struct mm_area *); }; static inline bool is_active(struct etnaviv_gem_object *etnaviv_obj) diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c index 42e57d142554..b81b597367e0 100644 --- a/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c +++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_prime.c @@ -89,7 +89,7 @@ static void *etnaviv_gem_prime_vmap_impl(struct etnaviv_gem_object *etnaviv_obj) } static int etnaviv_gem_prime_mmap_obj(struct etnaviv_gem_object *etnaviv_obj, - struct vm_area_struct *vma) + struct mm_area *vma) { int ret; diff --git a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c index 9526a25e90ac..637b38b274cd 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_fbdev.c +++ b/drivers/gpu/drm/exynos/exynos_drm_fbdev.c @@ -24,7 +24,7 @@ #define MAX_CONNECTOR 4 -static int exynos_drm_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int exynos_drm_fb_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *helper = info->par; struct drm_gem_object *obj = drm_gem_fb_get_obj(helper->fb, 0); diff --git a/drivers/gpu/drm/exynos/exynos_drm_gem.c b/drivers/gpu/drm/exynos/exynos_drm_gem.c index 4787fee4696f..8ab046d62150 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_gem.c +++ b/drivers/gpu/drm/exynos/exynos_drm_gem.c @@ -20,7 +20,7 @@ MODULE_IMPORT_NS("DMA_BUF"); -static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma); static int exynos_drm_alloc_buf(struct exynos_drm_gem *exynos_gem, bool kvmap) { @@ -268,7 +268,7 @@ struct exynos_drm_gem *exynos_drm_gem_get(struct drm_file *filp, } static int exynos_drm_gem_mmap_buffer(struct exynos_drm_gem *exynos_gem, - struct vm_area_struct *vma) + struct mm_area *vma) { struct drm_device *drm_dev = exynos_gem->base.dev; unsigned long vm_size; @@ -360,7 +360,7 @@ int exynos_drm_gem_dumb_create(struct drm_file *file_priv, return 0; } -static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int exynos_drm_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct exynos_drm_gem *exynos_gem = to_exynos_gem(obj); int ret; diff --git a/drivers/gpu/drm/gma500/fbdev.c b/drivers/gpu/drm/gma500/fbdev.c index 8edefea2ef59..57ff0f19937d 100644 --- a/drivers/gpu/drm/gma500/fbdev.c +++ b/drivers/gpu/drm/gma500/fbdev.c @@ -22,7 +22,7 @@ static vm_fault_t psb_fbdev_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct fb_info *info = vma->vm_private_data; unsigned long address = vmf->address - (vmf->pgoff << PAGE_SHIFT); unsigned long pfn = info->fix.smem_start >> PAGE_SHIFT; @@ -93,7 +93,7 @@ static int psb_fbdev_fb_setcolreg(unsigned int regno, return 0; } -static int psb_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int psb_fbdev_fb_mmap(struct fb_info *info, struct mm_area *vma) { if (vma->vm_pgoff != 0) return -EINVAL; diff --git a/drivers/gpu/drm/gma500/gem.c b/drivers/gpu/drm/gma500/gem.c index 4b7627a72637..b458c86773dd 100644 --- a/drivers/gpu/drm/gma500/gem.c +++ b/drivers/gpu/drm/gma500/gem.c @@ -253,7 +253,7 @@ int psb_gem_dumb_create(struct drm_file *file, struct drm_device *dev, */ static vm_fault_t psb_gem_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj; struct psb_gem_object *pobj; int err; diff --git a/drivers/gpu/drm/i915/display/intel_bo.c b/drivers/gpu/drm/i915/display/intel_bo.c index fbd16d7b58d9..b193ee0f7171 100644 --- a/drivers/gpu/drm/i915/display/intel_bo.c +++ b/drivers/gpu/drm/i915/display/intel_bo.c @@ -32,7 +32,7 @@ void intel_bo_flush_if_display(struct drm_gem_object *obj) i915_gem_object_flush_if_display(to_intel_bo(obj)); } -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct mm_area *vma) { return i915_gem_fb_mmap(to_intel_bo(obj), vma); } diff --git a/drivers/gpu/drm/i915/display/intel_bo.h b/drivers/gpu/drm/i915/display/intel_bo.h index ea7a2253aaa5..38f3518bb80f 100644 --- a/drivers/gpu/drm/i915/display/intel_bo.h +++ b/drivers/gpu/drm/i915/display/intel_bo.h @@ -8,14 +8,14 @@ struct drm_gem_object; struct seq_file; -struct vm_area_struct; +struct mm_area; bool intel_bo_is_tiled(struct drm_gem_object *obj); bool intel_bo_is_userptr(struct drm_gem_object *obj); bool intel_bo_is_shmem(struct drm_gem_object *obj); bool intel_bo_is_protected(struct drm_gem_object *obj); void intel_bo_flush_if_display(struct drm_gem_object *obj); -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct mm_area *vma); int intel_bo_read_from_page(struct drm_gem_object *obj, u64 offset, void *dst, int size); struct intel_frontbuffer *intel_bo_get_frontbuffer(struct drm_gem_object *obj); diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index adc19d5607de..69ade9a6ca90 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -121,7 +121,7 @@ static int intel_fbdev_pan_display(struct fb_var_screeninfo *var, return ret; } -static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int intel_fbdev_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *fb_helper = info->par; struct drm_gem_object *obj = drm_gem_fb_get_obj(fb_helper->fb, 0); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c index 9473050ac842..2caf031bfbc1 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_dmabuf.c @@ -91,7 +91,7 @@ static void i915_gem_dmabuf_vunmap(struct dma_buf *dma_buf, i915_gem_object_unpin_map(obj); } -static int i915_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma) +static int i915_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct mm_area *vma) { struct drm_i915_gem_object *obj = dma_buf_to_obj(dma_buf); struct drm_i915_private *i915 = to_i915(obj->base.dev); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c index c3dabb857960..9fcb86c991fd 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c @@ -27,7 +27,7 @@ #include "i915_vma.h" static inline bool -__vma_matches(struct vm_area_struct *vma, struct file *filp, +__vma_matches(struct mm_area *vma, struct file *filp, unsigned long addr, unsigned long size) { if (vma->vm_file != filp) @@ -104,7 +104,7 @@ i915_gem_mmap_ioctl(struct drm_device *dev, void *data, if (args->flags & I915_MMAP_WC) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; if (mmap_write_lock_killable(mm)) { addr = -EINTR; @@ -252,7 +252,7 @@ static vm_fault_t i915_error_to_vmf_fault(int err) static vm_fault_t vm_fault_cpu(struct vm_fault *vmf) { - struct vm_area_struct *area = vmf->vma; + struct mm_area *area = vmf->vma; struct i915_mmap_offset *mmo = area->vm_private_data; struct drm_i915_gem_object *obj = mmo->obj; unsigned long obj_offset; @@ -295,7 +295,7 @@ static vm_fault_t vm_fault_cpu(struct vm_fault *vmf) return i915_error_to_vmf_fault(err); } -static void set_address_limits(struct vm_area_struct *area, +static void set_address_limits(struct mm_area *area, struct i915_vma *vma, unsigned long obj_offset, resource_size_t gmadr_start, @@ -339,7 +339,7 @@ static void set_address_limits(struct vm_area_struct *area, static vm_fault_t vm_fault_gtt(struct vm_fault *vmf) { #define MIN_CHUNK_PAGES (SZ_1M >> PAGE_SHIFT) - struct vm_area_struct *area = vmf->vma; + struct mm_area *area = vmf->vma; struct i915_mmap_offset *mmo = area->vm_private_data; struct drm_i915_gem_object *obj = mmo->obj; struct drm_device *dev = obj->base.dev; @@ -506,7 +506,7 @@ static vm_fault_t vm_fault_gtt(struct vm_fault *vmf) } static int -vm_access(struct vm_area_struct *area, unsigned long addr, +vm_access(struct mm_area *area, unsigned long addr, void *buf, int len, int write) { struct i915_mmap_offset *mmo = area->vm_private_data; @@ -919,7 +919,7 @@ i915_gem_mmap_offset_ioctl(struct drm_device *dev, void *data, return __assign_mmap_offset_handle(file, args->handle, type, &args->offset); } -static void vm_open(struct vm_area_struct *vma) +static void vm_open(struct mm_area *vma) { struct i915_mmap_offset *mmo = vma->vm_private_data; struct drm_i915_gem_object *obj = mmo->obj; @@ -928,7 +928,7 @@ static void vm_open(struct vm_area_struct *vma) i915_gem_object_get(obj); } -static void vm_close(struct vm_area_struct *vma) +static void vm_close(struct mm_area *vma) { struct i915_mmap_offset *mmo = vma->vm_private_data; struct drm_i915_gem_object *obj = mmo->obj; @@ -990,7 +990,7 @@ static struct file *mmap_singleton(struct drm_i915_private *i915) static int i915_gem_object_mmap(struct drm_i915_gem_object *obj, struct i915_mmap_offset *mmo, - struct vm_area_struct *vma) + struct mm_area *vma) { struct drm_i915_private *i915 = to_i915(obj->base.dev); struct drm_device *dev = &i915->drm; @@ -1071,7 +1071,7 @@ i915_gem_object_mmap(struct drm_i915_gem_object *obj, * be able to resolve multiple mmap offsets which could be tied * to a single gem object. */ -int i915_gem_mmap(struct file *filp, struct vm_area_struct *vma) +int i915_gem_mmap(struct file *filp, struct mm_area *vma) { struct drm_vma_offset_node *node; struct drm_file *priv = filp->private_data; @@ -1114,7 +1114,7 @@ int i915_gem_mmap(struct file *filp, struct vm_area_struct *vma) return i915_gem_object_mmap(obj, mmo, vma); } -int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct vm_area_struct *vma) +int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct mm_area *vma) { struct drm_i915_private *i915 = to_i915(obj->base.dev); struct drm_device *dev = &i915->drm; diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.h b/drivers/gpu/drm/i915/gem/i915_gem_mman.h index 196417fd0f5c..5e6faa37dbc2 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_mman.h +++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.h @@ -18,7 +18,7 @@ struct i915_mmap_offset; struct mutex; int i915_gem_mmap_gtt_version(void); -int i915_gem_mmap(struct file *filp, struct vm_area_struct *vma); +int i915_gem_mmap(struct file *filp, struct mm_area *vma); int i915_gem_dumb_mmap_offset(struct drm_file *file_priv, struct drm_device *dev, @@ -29,5 +29,5 @@ void i915_gem_object_release_mmap_gtt(struct drm_i915_gem_object *obj); void i915_gem_object_runtime_pm_release_mmap_offset(struct drm_i915_gem_object *obj); void i915_gem_object_release_mmap_offset(struct drm_i915_gem_object *obj); -int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct vm_area_struct *vma); +int i915_gem_fb_mmap(struct drm_i915_gem_object *obj, struct mm_area *vma); #endif diff --git a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c index 1f4814968868..b65ee3c4c4fc 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_ttm.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_ttm.c @@ -1034,7 +1034,7 @@ static void i915_ttm_delayed_free(struct drm_i915_gem_object *obj) static vm_fault_t vm_fault_ttm(struct vm_fault *vmf) { - struct vm_area_struct *area = vmf->vma; + struct mm_area *area = vmf->vma; struct ttm_buffer_object *bo = area->vm_private_data; struct drm_device *dev = bo->base.dev; struct drm_i915_gem_object *obj = i915_ttm_to_gem(bo); @@ -1147,7 +1147,7 @@ static vm_fault_t vm_fault_ttm(struct vm_fault *vmf) } static int -vm_access_ttm(struct vm_area_struct *area, unsigned long addr, +vm_access_ttm(struct mm_area *area, unsigned long addr, void *buf, int len, int write) { struct drm_i915_gem_object *obj = @@ -1159,7 +1159,7 @@ vm_access_ttm(struct vm_area_struct *area, unsigned long addr, return ttm_bo_vm_access(area, addr, buf, len, write); } -static void ttm_vm_open(struct vm_area_struct *vma) +static void ttm_vm_open(struct mm_area *vma) { struct drm_i915_gem_object *obj = i915_ttm_to_gem(vma->vm_private_data); @@ -1168,7 +1168,7 @@ static void ttm_vm_open(struct vm_area_struct *vma) i915_gem_object_get(obj); } -static void ttm_vm_close(struct vm_area_struct *vma) +static void ttm_vm_close(struct mm_area *vma) { struct drm_i915_gem_object *obj = i915_ttm_to_gem(vma->vm_private_data); diff --git a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c index 09b68713ab32..a3badd817b6b 100644 --- a/drivers/gpu/drm/i915/gem/i915_gem_userptr.c +++ b/drivers/gpu/drm/i915/gem/i915_gem_userptr.c @@ -401,7 +401,7 @@ static int probe_range(struct mm_struct *mm, unsigned long addr, unsigned long len) { VMA_ITERATOR(vmi, mm, addr); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long end = addr + len; mmap_read_lock(mm); diff --git a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c index 804f74084bd4..c0a2c9bed6da 100644 --- a/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c +++ b/drivers/gpu/drm/i915/gem/selftests/i915_gem_mman.c @@ -896,7 +896,7 @@ static int __igt_mmap(struct drm_i915_private *i915, struct drm_i915_gem_object *obj, enum i915_mmap_type type) { - struct vm_area_struct *area; + struct mm_area *area; unsigned long addr; int err, i; u64 offset; @@ -924,7 +924,7 @@ static int __igt_mmap(struct drm_i915_private *i915, area = vma_lookup(current->mm, addr); mmap_read_unlock(current->mm); if (!area) { - pr_err("%s: Did not create a vm_area_struct for the mmap\n", + pr_err("%s: Did not create a mm_area for the mmap\n", obj->mm.region->name); err = -EINVAL; goto out_unmap; @@ -1096,7 +1096,7 @@ static int ___igt_mmap_migrate(struct drm_i915_private *i915, unsigned long addr, bool unfaultable) { - struct vm_area_struct *area; + struct mm_area *area; int err = 0, i; pr_info("igt_mmap(%s, %d) @ %lx\n", @@ -1106,7 +1106,7 @@ static int ___igt_mmap_migrate(struct drm_i915_private *i915, area = vma_lookup(current->mm, addr); mmap_read_unlock(current->mm); if (!area) { - pr_err("%s: Did not create a vm_area_struct for the mmap\n", + pr_err("%s: Did not create a mm_area for the mmap\n", obj->mm.region->name); err = -EINVAL; goto out_unmap; diff --git a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c index 5cd58e0f0dcf..11140801f804 100644 --- a/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c +++ b/drivers/gpu/drm/i915/gem/selftests/mock_dmabuf.c @@ -82,7 +82,7 @@ static void mock_dmabuf_vunmap(struct dma_buf *dma_buf, struct iosys_map *map) vm_unmap_ram(map->vaddr, mock->npages); } -static int mock_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma) +static int mock_dmabuf_mmap(struct dma_buf *dma_buf, struct mm_area *vma) { return -ENODEV; } diff --git a/drivers/gpu/drm/i915/gvt/kvmgt.c b/drivers/gpu/drm/i915/gvt/kvmgt.c index 69830a5c49d3..8f4cc972a94c 100644 --- a/drivers/gpu/drm/i915/gvt/kvmgt.c +++ b/drivers/gpu/drm/i915/gvt/kvmgt.c @@ -1011,7 +1011,7 @@ static ssize_t intel_vgpu_write(struct vfio_device *vfio_dev, } static int intel_vgpu_mmap(struct vfio_device *vfio_dev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct intel_vgpu *vgpu = vfio_dev_to_vgpu(vfio_dev); unsigned int index; diff --git a/drivers/gpu/drm/i915/i915_mm.c b/drivers/gpu/drm/i915/i915_mm.c index 76e2801619f0..d92cf85a65cf 100644 --- a/drivers/gpu/drm/i915/i915_mm.c +++ b/drivers/gpu/drm/i915/i915_mm.c @@ -91,7 +91,7 @@ static int remap_pfn(pte_t *pte, unsigned long addr, void *data) * * Note: this is only safe if the mm semaphore is held when called. */ -int remap_io_mapping(struct vm_area_struct *vma, +int remap_io_mapping(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, struct io_mapping *iomap) { @@ -127,7 +127,7 @@ int remap_io_mapping(struct vm_area_struct *vma, * * Note: this is only safe if the mm semaphore is held when called. */ -int remap_io_sg(struct vm_area_struct *vma, +int remap_io_sg(struct mm_area *vma, unsigned long addr, unsigned long size, struct scatterlist *sgl, unsigned long offset, resource_size_t iobase) diff --git a/drivers/gpu/drm/i915/i915_mm.h b/drivers/gpu/drm/i915/i915_mm.h index 69f9351b1a1c..0ba12093b9ed 100644 --- a/drivers/gpu/drm/i915/i915_mm.h +++ b/drivers/gpu/drm/i915/i915_mm.h @@ -9,17 +9,17 @@ #include #include -struct vm_area_struct; +struct mm_area; struct io_mapping; struct scatterlist; #if IS_ENABLED(CONFIG_X86) -int remap_io_mapping(struct vm_area_struct *vma, +int remap_io_mapping(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, struct io_mapping *iomap); #else static inline -int remap_io_mapping(struct vm_area_struct *vma, +int remap_io_mapping(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, struct io_mapping *iomap) { @@ -28,7 +28,7 @@ int remap_io_mapping(struct vm_area_struct *vma, } #endif -int remap_io_sg(struct vm_area_struct *vma, +int remap_io_sg(struct mm_area *vma, unsigned long addr, unsigned long size, struct scatterlist *sgl, unsigned long offset, resource_size_t iobase); diff --git a/drivers/gpu/drm/imagination/pvr_gem.c b/drivers/gpu/drm/imagination/pvr_gem.c index 6a8c81fe8c1e..b89482468e95 100644 --- a/drivers/gpu/drm/imagination/pvr_gem.c +++ b/drivers/gpu/drm/imagination/pvr_gem.c @@ -27,7 +27,7 @@ static void pvr_gem_object_free(struct drm_gem_object *obj) drm_gem_shmem_object_free(obj); } -static int pvr_gem_mmap(struct drm_gem_object *gem_obj, struct vm_area_struct *vma) +static int pvr_gem_mmap(struct drm_gem_object *gem_obj, struct mm_area *vma) { struct pvr_gem_object *pvr_obj = gem_to_pvr_gem(gem_obj); struct drm_gem_shmem_object *shmem_obj = shmem_gem_from_pvr_gem(pvr_obj); diff --git a/drivers/gpu/drm/lima/lima_gem.c b/drivers/gpu/drm/lima/lima_gem.c index 9bb997dbb4b9..236327d428cd 100644 --- a/drivers/gpu/drm/lima/lima_gem.c +++ b/drivers/gpu/drm/lima/lima_gem.c @@ -198,7 +198,7 @@ static int lima_gem_vmap(struct drm_gem_object *obj, struct iosys_map *map) return drm_gem_shmem_vmap(&bo->base, map); } -static int lima_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int lima_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct lima_bo *bo = to_lima_bo(obj); diff --git a/drivers/gpu/drm/lima/lima_gem.h b/drivers/gpu/drm/lima/lima_gem.h index ccea06142f4b..2dc229d7a747 100644 --- a/drivers/gpu/drm/lima/lima_gem.h +++ b/drivers/gpu/drm/lima/lima_gem.h @@ -42,6 +42,6 @@ int lima_gem_get_info(struct drm_file *file, u32 handle, u32 *va, u64 *offset); int lima_gem_submit(struct drm_file *file, struct lima_submit *submit); int lima_gem_wait(struct drm_file *file, u32 handle, u32 op, s64 timeout_ns); -void lima_set_vma_flags(struct vm_area_struct *vma); +void lima_set_vma_flags(struct mm_area *vma); #endif diff --git a/drivers/gpu/drm/loongson/lsdc_gem.c b/drivers/gpu/drm/loongson/lsdc_gem.c index a720d8f53209..21d13a9acde5 100644 --- a/drivers/gpu/drm/loongson/lsdc_gem.c +++ b/drivers/gpu/drm/loongson/lsdc_gem.c @@ -110,7 +110,7 @@ static void lsdc_gem_object_vunmap(struct drm_gem_object *obj, struct iosys_map } } -static int lsdc_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int lsdc_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct ttm_buffer_object *tbo = to_ttm_bo(obj); int ret; diff --git a/drivers/gpu/drm/mediatek/mtk_gem.c b/drivers/gpu/drm/mediatek/mtk_gem.c index a172456d1d7b..254a991e94b2 100644 --- a/drivers/gpu/drm/mediatek/mtk_gem.c +++ b/drivers/gpu/drm/mediatek/mtk_gem.c @@ -15,7 +15,7 @@ #include "mtk_drm_drv.h" #include "mtk_gem.h" -static int mtk_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); +static int mtk_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma); static const struct vm_operations_struct vm_ops = { .open = drm_gem_vm_open, @@ -157,7 +157,7 @@ int mtk_gem_dumb_create(struct drm_file *file_priv, struct drm_device *dev, } static int mtk_gem_object_mmap(struct drm_gem_object *obj, - struct vm_area_struct *vma) + struct mm_area *vma) { int ret; diff --git a/drivers/gpu/drm/msm/msm_fbdev.c b/drivers/gpu/drm/msm/msm_fbdev.c index c62249b1ab3d..058585d17be3 100644 --- a/drivers/gpu/drm/msm/msm_fbdev.c +++ b/drivers/gpu/drm/msm/msm_fbdev.c @@ -29,7 +29,7 @@ FB_GEN_DEFAULT_DEFERRED_SYSMEM_OPS(msm_fbdev, drm_fb_helper_damage_range, drm_fb_helper_damage_area) -static int msm_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int msm_fbdev_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *helper = (struct drm_fb_helper *)info->par; struct drm_gem_object *bo = msm_framebuffer_bo(helper->fb, 0); diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index ebc9ba66efb8..4564662c845c 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -321,7 +321,7 @@ static pgprot_t msm_gem_pgprot(struct msm_gem_object *msm_obj, pgprot_t prot) static vm_fault_t msm_gem_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj = vma->vm_private_data; struct msm_gem_object *msm_obj = to_msm_bo(obj); struct page **pages; @@ -1097,7 +1097,7 @@ static void msm_gem_free_object(struct drm_gem_object *obj) kfree(msm_obj); } -static int msm_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int msm_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct msm_gem_object *msm_obj = to_msm_bo(obj); diff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.c b/drivers/gpu/drm/nouveau/nouveau_dmem.c index 61d0f411ef84..4dd166e36cfe 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dmem.c +++ b/drivers/gpu/drm/nouveau/nouveau_dmem.c @@ -691,7 +691,7 @@ static void nouveau_dmem_migrate_chunk(struct nouveau_drm *drm, int nouveau_dmem_migrate_vma(struct nouveau_drm *drm, struct nouveau_svmm *svmm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long start, unsigned long end) { diff --git a/drivers/gpu/drm/nouveau/nouveau_dmem.h b/drivers/gpu/drm/nouveau/nouveau_dmem.h index 64da5d3635c8..c52336b7729f 100644 --- a/drivers/gpu/drm/nouveau/nouveau_dmem.h +++ b/drivers/gpu/drm/nouveau/nouveau_dmem.h @@ -36,7 +36,7 @@ void nouveau_dmem_resume(struct nouveau_drm *); int nouveau_dmem_migrate_vma(struct nouveau_drm *drm, struct nouveau_svmm *svmm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long start, unsigned long end); unsigned long nouveau_dmem_page_addr(struct page *page); diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 67e3c99de73a..db3fe08c1ee6 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -41,7 +41,7 @@ static vm_fault_t nouveau_ttm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ttm_buffer_object *bo = vma->vm_private_data; pgprot_t prot; vm_fault_t ret; diff --git a/drivers/gpu/drm/nouveau/nouveau_svm.c b/drivers/gpu/drm/nouveau/nouveau_svm.c index e12e2596ed84..43e5f70f664e 100644 --- a/drivers/gpu/drm/nouveau/nouveau_svm.c +++ b/drivers/gpu/drm/nouveau/nouveau_svm.c @@ -173,7 +173,7 @@ nouveau_svmm_bind(struct drm_device *dev, void *data, } for (addr = args->va_start, end = args->va_end; addr < end;) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long next; vma = find_vma_intersection(mm, addr, end); diff --git a/drivers/gpu/drm/omapdrm/omap_fbdev.c b/drivers/gpu/drm/omapdrm/omap_fbdev.c index 7b6396890681..5a1818a59244 100644 --- a/drivers/gpu/drm/omapdrm/omap_fbdev.c +++ b/drivers/gpu/drm/omapdrm/omap_fbdev.c @@ -81,7 +81,7 @@ static int omap_fbdev_pan_display(struct fb_var_screeninfo *var, struct fb_info return drm_fb_helper_pan_display(var, fbi); } -static int omap_fbdev_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int omap_fbdev_fb_mmap(struct fb_info *info, struct mm_area *vma) { vma->vm_page_prot = pgprot_writecombine(vm_get_page_prot(vma->vm_flags)); diff --git a/drivers/gpu/drm/omapdrm/omap_gem.c b/drivers/gpu/drm/omapdrm/omap_gem.c index b9c67e4ca360..cbbdaf381ad3 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.c +++ b/drivers/gpu/drm/omapdrm/omap_gem.c @@ -351,7 +351,7 @@ size_t omap_gem_mmap_size(struct drm_gem_object *obj) /* Normal handling for the case of faulting in non-tiled buffers */ static vm_fault_t omap_gem_fault_1d(struct drm_gem_object *obj, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { struct omap_gem_object *omap_obj = to_omap_bo(obj); unsigned long pfn; @@ -377,7 +377,7 @@ static vm_fault_t omap_gem_fault_1d(struct drm_gem_object *obj, /* Special handling for the case of faulting in 2d tiled buffers */ static vm_fault_t omap_gem_fault_2d(struct drm_gem_object *obj, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { struct omap_gem_object *omap_obj = to_omap_bo(obj); struct omap_drm_private *priv = obj->dev->dev_private; @@ -496,7 +496,7 @@ static vm_fault_t omap_gem_fault_2d(struct drm_gem_object *obj, */ static vm_fault_t omap_gem_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj = vma->vm_private_data; struct omap_gem_object *omap_obj = to_omap_bo(obj); int err; @@ -531,7 +531,7 @@ static vm_fault_t omap_gem_fault(struct vm_fault *vmf) return ret; } -static int omap_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int omap_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct omap_gem_object *omap_obj = to_omap_bo(obj); diff --git a/drivers/gpu/drm/omapdrm/omap_gem.h b/drivers/gpu/drm/omapdrm/omap_gem.h index fec3fa0e4c33..d28793a23d46 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem.h +++ b/drivers/gpu/drm/omapdrm/omap_gem.h @@ -23,7 +23,7 @@ struct file; struct list_head; struct page; struct seq_file; -struct vm_area_struct; +struct mm_area; struct vm_fault; union omap_gem_size; diff --git a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c index 30cf1cdc1aa3..64d9520d20c0 100644 --- a/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c +++ b/drivers/gpu/drm/omapdrm/omap_gem_dmabuf.c @@ -61,7 +61,7 @@ static int omap_gem_dmabuf_end_cpu_access(struct dma_buf *buffer, } static int omap_gem_dmabuf_mmap(struct dma_buf *buffer, - struct vm_area_struct *vma) + struct mm_area *vma) { struct drm_gem_object *obj = buffer->priv; diff --git a/drivers/gpu/drm/panthor/panthor_device.c b/drivers/gpu/drm/panthor/panthor_device.c index a9da1d1eeb70..c3092cf8f280 100644 --- a/drivers/gpu/drm/panthor/panthor_device.c +++ b/drivers/gpu/drm/panthor/panthor_device.c @@ -359,7 +359,7 @@ const char *panthor_exception_name(struct panthor_device *ptdev, u32 exception_c static vm_fault_t panthor_mmio_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct panthor_device *ptdev = vma->vm_private_data; u64 offset = (u64)vma->vm_pgoff << PAGE_SHIFT; unsigned long pfn; @@ -403,7 +403,7 @@ static const struct vm_operations_struct panthor_mmio_vm_ops = { .fault = panthor_mmio_vm_fault, }; -int panthor_device_mmap_io(struct panthor_device *ptdev, struct vm_area_struct *vma) +int panthor_device_mmap_io(struct panthor_device *ptdev, struct mm_area *vma) { u64 offset = (u64)vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/gpu/drm/panthor/panthor_device.h b/drivers/gpu/drm/panthor/panthor_device.h index da6574021664..a3205e6b0518 100644 --- a/drivers/gpu/drm/panthor/panthor_device.h +++ b/drivers/gpu/drm/panthor/panthor_device.h @@ -253,7 +253,7 @@ static inline bool panthor_device_reset_is_pending(struct panthor_device *ptdev) } int panthor_device_mmap_io(struct panthor_device *ptdev, - struct vm_area_struct *vma); + struct mm_area *vma); int panthor_device_resume(struct device *dev); int panthor_device_suspend(struct device *dev); diff --git a/drivers/gpu/drm/panthor/panthor_drv.c b/drivers/gpu/drm/panthor/panthor_drv.c index 06fe46e32073..3fca24a494d4 100644 --- a/drivers/gpu/drm/panthor/panthor_drv.c +++ b/drivers/gpu/drm/panthor/panthor_drv.c @@ -1402,7 +1402,7 @@ static const struct drm_ioctl_desc panthor_drm_driver_ioctls[] = { PANTHOR_IOCTL(GROUP_SUBMIT, group_submit, DRM_RENDER_ALLOW), }; -static int panthor_mmap(struct file *filp, struct vm_area_struct *vma) +static int panthor_mmap(struct file *filp, struct mm_area *vma) { struct drm_file *file = filp->private_data; struct panthor_file *pfile = file->driver_priv; diff --git a/drivers/gpu/drm/panthor/panthor_gem.c b/drivers/gpu/drm/panthor/panthor_gem.c index 8244a4e6c2a2..a323f6580f9c 100644 --- a/drivers/gpu/drm/panthor/panthor_gem.c +++ b/drivers/gpu/drm/panthor/panthor_gem.c @@ -129,7 +129,7 @@ panthor_kernel_bo_create(struct panthor_device *ptdev, struct panthor_vm *vm, return ERR_PTR(ret); } -static int panthor_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int panthor_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct panthor_gem_object *bo = to_panthor_bo(obj); diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index f86773f3db20..83230ce4e4f3 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -263,7 +263,7 @@ static int radeon_gem_handle_lockup(struct radeon_device *rdev, int r) return r; } -static int radeon_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int radeon_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct radeon_bo *bo = gem_to_radeon_bo(obj); struct radeon_device *rdev = radeon_get_rdev(bo->tbo.bdev); diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c index 616d25c8c2de..a9007d171911 100644 --- a/drivers/gpu/drm/radeon/radeon_ttm.c +++ b/drivers/gpu/drm/radeon/radeon_ttm.c @@ -338,7 +338,7 @@ static int radeon_ttm_tt_pin_userptr(struct ttm_device *bdev, struct ttm_tt *ttm /* check that we only pin down anonymous memory to prevent problems with writeback */ unsigned long end = gtt->userptr + (u64)ttm->num_pages * PAGE_SIZE; - struct vm_area_struct *vma; + struct mm_area *vma; vma = find_vma(gtt->usermm, gtt->userptr); if (!vma || vma->vm_file || vma->vm_end < end) return -EPERM; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c index 6330b883efc3..f35e43ef35c0 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_gem.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_gem.c @@ -213,7 +213,7 @@ static void rockchip_gem_free_buf(struct rockchip_gem_object *rk_obj) } static int rockchip_drm_gem_object_mmap_iommu(struct drm_gem_object *obj, - struct vm_area_struct *vma) + struct mm_area *vma) { struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); unsigned int count = obj->size >> PAGE_SHIFT; @@ -226,7 +226,7 @@ static int rockchip_drm_gem_object_mmap_iommu(struct drm_gem_object *obj, } static int rockchip_drm_gem_object_mmap_dma(struct drm_gem_object *obj, - struct vm_area_struct *vma) + struct mm_area *vma) { struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); struct drm_device *drm = obj->dev; @@ -236,7 +236,7 @@ static int rockchip_drm_gem_object_mmap_dma(struct drm_gem_object *obj, } static int rockchip_drm_gem_object_mmap(struct drm_gem_object *obj, - struct vm_area_struct *vma) + struct mm_area *vma) { int ret; struct rockchip_gem_object *rk_obj = to_rockchip_obj(obj); diff --git a/drivers/gpu/drm/tegra/fbdev.c b/drivers/gpu/drm/tegra/fbdev.c index cd9d798f8870..bb7d18a7ee7c 100644 --- a/drivers/gpu/drm/tegra/fbdev.c +++ b/drivers/gpu/drm/tegra/fbdev.c @@ -22,7 +22,7 @@ #include "drm.h" #include "gem.h" -static int tegra_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int tegra_fb_mmap(struct fb_info *info, struct mm_area *vma) { struct drm_fb_helper *helper = info->par; struct tegra_bo *bo; diff --git a/drivers/gpu/drm/tegra/gem.c b/drivers/gpu/drm/tegra/gem.c index ace3e5a805cf..8c8233eeeaf9 100644 --- a/drivers/gpu/drm/tegra/gem.c +++ b/drivers/gpu/drm/tegra/gem.c @@ -560,7 +560,7 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm, static vm_fault_t tegra_bo_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *gem = vma->vm_private_data; struct tegra_bo *bo = to_tegra_bo(gem); struct page *page; @@ -581,7 +581,7 @@ const struct vm_operations_struct tegra_bo_vm_ops = { .close = drm_gem_vm_close, }; -int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma) +int __tegra_gem_mmap(struct drm_gem_object *gem, struct mm_area *vma) { struct tegra_bo *bo = to_tegra_bo(gem); @@ -616,7 +616,7 @@ int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma) return 0; } -int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma) +int tegra_drm_mmap(struct file *file, struct mm_area *vma) { struct drm_gem_object *gem; int err; @@ -708,7 +708,7 @@ static int tegra_gem_prime_end_cpu_access(struct dma_buf *buf, return 0; } -static int tegra_gem_prime_mmap(struct dma_buf *buf, struct vm_area_struct *vma) +static int tegra_gem_prime_mmap(struct dma_buf *buf, struct mm_area *vma) { struct drm_gem_object *gem = buf->priv; int err; diff --git a/drivers/gpu/drm/tegra/gem.h b/drivers/gpu/drm/tegra/gem.h index bf2cbd48eb3f..ca8e8a5e3335 100644 --- a/drivers/gpu/drm/tegra/gem.h +++ b/drivers/gpu/drm/tegra/gem.h @@ -93,8 +93,8 @@ int tegra_bo_dumb_create(struct drm_file *file, struct drm_device *drm, extern const struct vm_operations_struct tegra_bo_vm_ops; -int __tegra_gem_mmap(struct drm_gem_object *gem, struct vm_area_struct *vma); -int tegra_drm_mmap(struct file *file, struct vm_area_struct *vma); +int __tegra_gem_mmap(struct drm_gem_object *gem, struct mm_area *vma); +int tegra_drm_mmap(struct file *file, struct mm_area *vma); struct dma_buf *tegra_gem_prime_export(struct drm_gem_object *gem, int flags); diff --git a/drivers/gpu/drm/ttm/ttm_bo_vm.c b/drivers/gpu/drm/ttm/ttm_bo_vm.c index a194db83421d..4139e029b35f 100644 --- a/drivers/gpu/drm/ttm/ttm_bo_vm.c +++ b/drivers/gpu/drm/ttm/ttm_bo_vm.c @@ -182,7 +182,7 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf, pgprot_t prot, pgoff_t num_prefault) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ttm_buffer_object *bo = vma->vm_private_data; struct ttm_device *bdev = bo->bdev; unsigned long page_offset; @@ -290,7 +290,7 @@ static void ttm_bo_release_dummy_page(struct drm_device *dev, void *res) vm_fault_t ttm_bo_vm_dummy_page(struct vm_fault *vmf, pgprot_t prot) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ttm_buffer_object *bo = vma->vm_private_data; struct drm_device *ddev = bo->base.dev; vm_fault_t ret = VM_FAULT_NOPAGE; @@ -320,7 +320,7 @@ EXPORT_SYMBOL(ttm_bo_vm_dummy_page); vm_fault_t ttm_bo_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pgprot_t prot; struct ttm_buffer_object *bo = vma->vm_private_data; struct drm_device *ddev = bo->base.dev; @@ -347,7 +347,7 @@ vm_fault_t ttm_bo_vm_fault(struct vm_fault *vmf) } EXPORT_SYMBOL(ttm_bo_vm_fault); -void ttm_bo_vm_open(struct vm_area_struct *vma) +void ttm_bo_vm_open(struct mm_area *vma) { struct ttm_buffer_object *bo = vma->vm_private_data; @@ -357,7 +357,7 @@ void ttm_bo_vm_open(struct vm_area_struct *vma) } EXPORT_SYMBOL(ttm_bo_vm_open); -void ttm_bo_vm_close(struct vm_area_struct *vma) +void ttm_bo_vm_close(struct mm_area *vma) { struct ttm_buffer_object *bo = vma->vm_private_data; @@ -453,7 +453,7 @@ int ttm_bo_access(struct ttm_buffer_object *bo, unsigned long offset, } EXPORT_SYMBOL(ttm_bo_access); -int ttm_bo_vm_access(struct vm_area_struct *vma, unsigned long addr, +int ttm_bo_vm_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { struct ttm_buffer_object *bo = vma->vm_private_data; @@ -480,7 +480,7 @@ static const struct vm_operations_struct ttm_bo_vm_ops = { * * Maps a buffer object. */ -int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo) +int ttm_bo_mmap_obj(struct mm_area *vma, struct ttm_buffer_object *bo) { /* Enforce no COW since would have really strange behavior with it. */ if (is_cow_mapping(vma->vm_flags)) diff --git a/drivers/gpu/drm/vc4/vc4_bo.c b/drivers/gpu/drm/vc4/vc4_bo.c index fb450b6a4d44..beedeaeecab4 100644 --- a/drivers/gpu/drm/vc4/vc4_bo.c +++ b/drivers/gpu/drm/vc4/vc4_bo.c @@ -715,7 +715,7 @@ static struct dma_buf *vc4_prime_export(struct drm_gem_object *obj, int flags) static vm_fault_t vc4_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct drm_gem_object *obj = vma->vm_private_data; struct vc4_bo *bo = to_vc4_bo(obj); @@ -729,7 +729,7 @@ static vm_fault_t vc4_fault(struct vm_fault *vmf) return VM_FAULT_SIGBUS; } -static int vc4_gem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int vc4_gem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct vc4_bo *bo = to_vc4_bo(obj); diff --git a/drivers/gpu/drm/virtio/virtgpu_vram.c b/drivers/gpu/drm/virtio/virtgpu_vram.c index 5ad3b7c6f73c..02a03a237fb5 100644 --- a/drivers/gpu/drm/virtio/virtgpu_vram.c +++ b/drivers/gpu/drm/virtio/virtgpu_vram.c @@ -30,7 +30,7 @@ static const struct vm_operations_struct virtio_gpu_vram_vm_ops = { }; static int virtio_gpu_vram_mmap(struct drm_gem_object *obj, - struct vm_area_struct *vma) + struct mm_area *vma) { int ret; struct virtio_gpu_device *vgdev = obj->dev->dev_private; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c index ed5015ced392..3d857670a3a1 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gem.c @@ -107,7 +107,7 @@ static void vmw_gem_vunmap(struct drm_gem_object *obj, struct iosys_map *map) drm_gem_ttm_vunmap(obj, map); } -static int vmw_gem_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static int vmw_gem_mmap(struct drm_gem_object *obj, struct mm_area *vma) { int ret; diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c b/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c index 74ff2812d66a..38567fdf7163 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_page_dirty.c @@ -374,7 +374,7 @@ void vmw_bo_dirty_clear_res(struct vmw_resource *res) vm_fault_t vmw_bo_vm_mkwrite(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ttm_buffer_object *bo = (struct ttm_buffer_object *) vma->vm_private_data; vm_fault_t ret; @@ -415,7 +415,7 @@ vm_fault_t vmw_bo_vm_mkwrite(struct vm_fault *vmf) vm_fault_t vmw_bo_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ttm_buffer_object *bo = (struct ttm_buffer_object *) vma->vm_private_data; struct vmw_bo *vbo = to_vmw_bo(&bo->base); diff --git a/drivers/gpu/drm/xe/display/intel_bo.c b/drivers/gpu/drm/xe/display/intel_bo.c index 27437c22bd70..6e32ab48de68 100644 --- a/drivers/gpu/drm/xe/display/intel_bo.c +++ b/drivers/gpu/drm/xe/display/intel_bo.c @@ -32,7 +32,7 @@ void intel_bo_flush_if_display(struct drm_gem_object *obj) { } -int intel_bo_fb_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +int intel_bo_fb_mmap(struct drm_gem_object *obj, struct mm_area *vma) { return drm_gem_prime_mmap(obj, vma); } diff --git a/drivers/gpu/drm/xe/xe_bo.c b/drivers/gpu/drm/xe/xe_bo.c index 3c7c2353d3c8..20e08ee00eee 100644 --- a/drivers/gpu/drm/xe/xe_bo.c +++ b/drivers/gpu/drm/xe/xe_bo.c @@ -1579,7 +1579,7 @@ static vm_fault_t xe_gem_fault(struct vm_fault *vmf) return ret; } -static int xe_bo_vm_access(struct vm_area_struct *vma, unsigned long addr, +static int xe_bo_vm_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { struct ttm_buffer_object *ttm_bo = vma->vm_private_data; diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c index d8e227ddf255..30a5eb67d7a1 100644 --- a/drivers/gpu/drm/xe/xe_device.c +++ b/drivers/gpu/drm/xe/xe_device.c @@ -237,12 +237,12 @@ static long xe_drm_compat_ioctl(struct file *file, unsigned int cmd, unsigned lo #define xe_drm_compat_ioctl NULL #endif -static void barrier_open(struct vm_area_struct *vma) +static void barrier_open(struct mm_area *vma) { drm_dev_get(vma->vm_private_data); } -static void barrier_close(struct vm_area_struct *vma) +static void barrier_close(struct mm_area *vma) { drm_dev_put(vma->vm_private_data); } @@ -257,7 +257,7 @@ static void barrier_release_dummy_page(struct drm_device *dev, void *res) static vm_fault_t barrier_fault(struct vm_fault *vmf) { struct drm_device *dev = vmf->vma->vm_private_data; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret = VM_FAULT_NOPAGE; pgprot_t prot; int idx; @@ -299,7 +299,7 @@ static const struct vm_operations_struct vm_ops_barrier = { }; static int xe_pci_barrier_mmap(struct file *filp, - struct vm_area_struct *vma) + struct mm_area *vma) { struct drm_file *priv = filp->private_data; struct drm_device *dev = priv->minor->dev; @@ -326,7 +326,7 @@ static int xe_pci_barrier_mmap(struct file *filp, return 0; } -static int xe_mmap(struct file *filp, struct vm_area_struct *vma) +static int xe_mmap(struct file *filp, struct mm_area *vma) { struct drm_file *priv = filp->private_data; struct drm_device *dev = priv->minor->dev; diff --git a/drivers/gpu/drm/xe/xe_oa.c b/drivers/gpu/drm/xe/xe_oa.c index 346f357b3d1f..d44ce76b3465 100644 --- a/drivers/gpu/drm/xe/xe_oa.c +++ b/drivers/gpu/drm/xe/xe_oa.c @@ -1623,7 +1623,7 @@ static int xe_oa_release(struct inode *inode, struct file *file) return 0; } -static int xe_oa_mmap(struct file *file, struct vm_area_struct *vma) +static int xe_oa_mmap(struct file *file, struct mm_area *vma) { struct xe_oa_stream *stream = file->private_data; struct xe_bo *bo = stream->oa_buffer.bo; diff --git a/drivers/gpu/drm/xen/xen_drm_front_gem.c b/drivers/gpu/drm/xen/xen_drm_front_gem.c index 63112ed975c4..41449a270d89 100644 --- a/drivers/gpu/drm/xen/xen_drm_front_gem.c +++ b/drivers/gpu/drm/xen/xen_drm_front_gem.c @@ -58,7 +58,7 @@ static void gem_free_pages_array(struct xen_gem_object *xen_obj) } static int xen_drm_front_gem_object_mmap(struct drm_gem_object *gem_obj, - struct vm_area_struct *vma) + struct mm_area *vma) { struct xen_gem_object *xen_obj = to_xen_gem_obj(gem_obj); int ret; diff --git a/drivers/hsi/clients/cmt_speech.c b/drivers/hsi/clients/cmt_speech.c index daa8e1bff5d9..ca6debea1173 100644 --- a/drivers/hsi/clients/cmt_speech.c +++ b/drivers/hsi/clients/cmt_speech.c @@ -1256,7 +1256,7 @@ static long cs_char_ioctl(struct file *file, unsigned int cmd, return r; } -static int cs_char_mmap(struct file *file, struct vm_area_struct *vma) +static int cs_char_mmap(struct file *file, struct mm_area *vma) { if (vma->vm_end < vma->vm_start) return -EINVAL; diff --git a/drivers/hv/mshv_root_main.c b/drivers/hv/mshv_root_main.c index 72df774e410a..ac1e44563cbf 100644 --- a/drivers/hv/mshv_root_main.c +++ b/drivers/hv/mshv_root_main.c @@ -75,7 +75,7 @@ static int mshv_vp_release(struct inode *inode, struct file *filp); static long mshv_vp_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg); static int mshv_partition_release(struct inode *inode, struct file *filp); static long mshv_partition_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg); -static int mshv_vp_mmap(struct file *file, struct vm_area_struct *vma); +static int mshv_vp_mmap(struct file *file, struct mm_area *vma); static vm_fault_t mshv_vp_fault(struct vm_fault *vmf); static int mshv_init_async_handler(struct mshv_partition *partition); static void mshv_async_hvcall_handler(void *data, u64 *status); @@ -831,7 +831,7 @@ static vm_fault_t mshv_vp_fault(struct vm_fault *vmf) return 0; } -static int mshv_vp_mmap(struct file *file, struct vm_area_struct *vma) +static int mshv_vp_mmap(struct file *file, struct mm_area *vma) { struct mshv_vp *vp = file->private_data; @@ -1332,7 +1332,7 @@ mshv_map_user_memory(struct mshv_partition *partition, struct mshv_user_mem_region mem) { struct mshv_mem_region *region; - struct vm_area_struct *vma; + struct mm_area *vma; bool is_mmio; ulong mmio_pfn; long ret; diff --git a/drivers/hwtracing/intel_th/msu.c b/drivers/hwtracing/intel_th/msu.c index bf99d79a4192..f51cbe4a8c55 100644 --- a/drivers/hwtracing/intel_th/msu.c +++ b/drivers/hwtracing/intel_th/msu.c @@ -1589,7 +1589,7 @@ static ssize_t intel_th_msc_read(struct file *file, char __user *buf, * vm operations callbacks (vm_ops) */ -static void msc_mmap_open(struct vm_area_struct *vma) +static void msc_mmap_open(struct mm_area *vma) { struct msc_iter *iter = vma->vm_file->private_data; struct msc *msc = iter->msc; @@ -1597,7 +1597,7 @@ static void msc_mmap_open(struct vm_area_struct *vma) atomic_inc(&msc->mmap_count); } -static void msc_mmap_close(struct vm_area_struct *vma) +static void msc_mmap_close(struct mm_area *vma) { struct msc_iter *iter = vma->vm_file->private_data; struct msc *msc = iter->msc; @@ -1644,7 +1644,7 @@ static const struct vm_operations_struct msc_mmap_ops = { .fault = msc_mmap_fault, }; -static int intel_th_msc_mmap(struct file *file, struct vm_area_struct *vma) +static int intel_th_msc_mmap(struct file *file, struct mm_area *vma) { unsigned long size = vma->vm_end - vma->vm_start; struct msc_iter *iter = vma->vm_file->private_data; diff --git a/drivers/hwtracing/stm/core.c b/drivers/hwtracing/stm/core.c index cdba4e875b28..c27322d82289 100644 --- a/drivers/hwtracing/stm/core.c +++ b/drivers/hwtracing/stm/core.c @@ -666,7 +666,7 @@ static ssize_t stm_char_write(struct file *file, const char __user *buf, return count; } -static void stm_mmap_open(struct vm_area_struct *vma) +static void stm_mmap_open(struct mm_area *vma) { struct stm_file *stmf = vma->vm_file->private_data; struct stm_device *stm = stmf->stm; @@ -674,7 +674,7 @@ static void stm_mmap_open(struct vm_area_struct *vma) pm_runtime_get(&stm->dev); } -static void stm_mmap_close(struct vm_area_struct *vma) +static void stm_mmap_close(struct mm_area *vma) { struct stm_file *stmf = vma->vm_file->private_data; struct stm_device *stm = stmf->stm; @@ -688,7 +688,7 @@ static const struct vm_operations_struct stm_mmap_vmops = { .close = stm_mmap_close, }; -static int stm_char_mmap(struct file *file, struct vm_area_struct *vma) +static int stm_char_mmap(struct file *file, struct mm_area *vma) { struct stm_file *stmf = file->private_data; struct stm_device *stm = stmf->stm; diff --git a/drivers/infiniband/core/core_priv.h b/drivers/infiniband/core/core_priv.h index 05102769a918..6662f745c123 100644 --- a/drivers/infiniband/core/core_priv.h +++ b/drivers/infiniband/core/core_priv.h @@ -359,13 +359,13 @@ int rdma_nl_net_init(struct rdma_dev_net *rnet); void rdma_nl_net_exit(struct rdma_dev_net *rnet); struct rdma_umap_priv { - struct vm_area_struct *vma; + struct mm_area *vma; struct list_head list; struct rdma_user_mmap_entry *entry; }; void rdma_umap_priv_init(struct rdma_umap_priv *priv, - struct vm_area_struct *vma, + struct mm_area *vma, struct rdma_user_mmap_entry *entry); void ib_cq_pool_cleanup(struct ib_device *dev); diff --git a/drivers/infiniband/core/ib_core_uverbs.c b/drivers/infiniband/core/ib_core_uverbs.c index b51bd7087a88..949863e7c66f 100644 --- a/drivers/infiniband/core/ib_core_uverbs.c +++ b/drivers/infiniband/core/ib_core_uverbs.c @@ -28,7 +28,7 @@ * */ void rdma_umap_priv_init(struct rdma_umap_priv *priv, - struct vm_area_struct *vma, + struct mm_area *vma, struct rdma_user_mmap_entry *entry) { struct ib_uverbs_file *ufile = vma->vm_file->private_data; @@ -64,7 +64,7 @@ EXPORT_SYMBOL(rdma_umap_priv_init); * Return -EINVAL on wrong flags or size, -EAGAIN on failure to map. 0 on * success. */ -int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma, +int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct mm_area *vma, unsigned long pfn, unsigned long size, pgprot_t prot, struct rdma_user_mmap_entry *entry) { @@ -159,7 +159,7 @@ EXPORT_SYMBOL(rdma_user_mmap_entry_get_pgoff); */ struct rdma_user_mmap_entry * rdma_user_mmap_entry_get(struct ib_ucontext *ucontext, - struct vm_area_struct *vma) + struct mm_area *vma) { struct rdma_user_mmap_entry *entry; diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c index 973fe2c7ef53..565b497a4523 100644 --- a/drivers/infiniband/core/uverbs_main.c +++ b/drivers/infiniband/core/uverbs_main.c @@ -688,7 +688,7 @@ static ssize_t ib_uverbs_write(struct file *filp, const char __user *buf, static const struct vm_operations_struct rdma_umap_ops; -static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma) +static int ib_uverbs_mmap(struct file *filp, struct mm_area *vma) { struct ib_uverbs_file *file = filp->private_data; struct ib_ucontext *ucontext; @@ -717,7 +717,7 @@ static int ib_uverbs_mmap(struct file *filp, struct vm_area_struct *vma) * The VMA has been dup'd, initialize the vm_private_data with a new tracking * struct */ -static void rdma_umap_open(struct vm_area_struct *vma) +static void rdma_umap_open(struct mm_area *vma) { struct ib_uverbs_file *ufile = vma->vm_file->private_data; struct rdma_umap_priv *opriv = vma->vm_private_data; @@ -759,7 +759,7 @@ static void rdma_umap_open(struct vm_area_struct *vma) zap_vma_ptes(vma, vma->vm_start, vma->vm_end - vma->vm_start); } -static void rdma_umap_close(struct vm_area_struct *vma) +static void rdma_umap_close(struct mm_area *vma) { struct ib_uverbs_file *ufile = vma->vm_file->private_data; struct rdma_umap_priv *priv = vma->vm_private_data; @@ -872,7 +872,7 @@ void uverbs_user_mmap_disassociate(struct ib_uverbs_file *ufile) mutex_lock(&ufile->umap_lock); list_for_each_entry_safe (priv, next_priv, &ufile->umaps, list) { - struct vm_area_struct *vma = priv->vma; + struct mm_area *vma = priv->vma; if (vma->vm_mm != mm) continue; diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.c b/drivers/infiniband/hw/bnxt_re/ib_verbs.c index 9082b3fd2b47..fd7b8fdc9bfb 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.c +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.c @@ -4425,7 +4425,7 @@ static struct bnxt_re_srq *bnxt_re_search_for_srq(struct bnxt_re_dev *rdev, u32 } /* Helper function to mmap the virtual memory from user app */ -int bnxt_re_mmap(struct ib_ucontext *ib_uctx, struct vm_area_struct *vma) +int bnxt_re_mmap(struct ib_ucontext *ib_uctx, struct mm_area *vma) { struct bnxt_re_ucontext *uctx = container_of(ib_uctx, struct bnxt_re_ucontext, diff --git a/drivers/infiniband/hw/bnxt_re/ib_verbs.h b/drivers/infiniband/hw/bnxt_re/ib_verbs.h index 22c9eb8e9cfc..6f709d4bfc12 100644 --- a/drivers/infiniband/hw/bnxt_re/ib_verbs.h +++ b/drivers/infiniband/hw/bnxt_re/ib_verbs.h @@ -265,7 +265,7 @@ struct ib_mr *bnxt_re_reg_user_mr_dmabuf(struct ib_pd *ib_pd, u64 start, struct uverbs_attr_bundle *attrs); int bnxt_re_alloc_ucontext(struct ib_ucontext *ctx, struct ib_udata *udata); void bnxt_re_dealloc_ucontext(struct ib_ucontext *context); -int bnxt_re_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); +int bnxt_re_mmap(struct ib_ucontext *context, struct mm_area *vma); void bnxt_re_mmap_free(struct rdma_user_mmap_entry *rdma_entry); int bnxt_re_process_mad(struct ib_device *device, int process_mad_flags, diff --git a/drivers/infiniband/hw/cxgb4/provider.c b/drivers/infiniband/hw/cxgb4/provider.c index e059f92d90fd..c3b14c76e9fd 100644 --- a/drivers/infiniband/hw/cxgb4/provider.c +++ b/drivers/infiniband/hw/cxgb4/provider.c @@ -125,7 +125,7 @@ static int c4iw_alloc_ucontext(struct ib_ucontext *ucontext, return ret; } -static int c4iw_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +static int c4iw_mmap(struct ib_ucontext *context, struct mm_area *vma) { int len = vma->vm_end - vma->vm_start; u32 key = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/infiniband/hw/efa/efa.h b/drivers/infiniband/hw/efa/efa.h index 838182d0409c..12502e6326bc 100644 --- a/drivers/infiniband/hw/efa/efa.h +++ b/drivers/infiniband/hw/efa/efa.h @@ -175,7 +175,7 @@ int efa_get_port_immutable(struct ib_device *ibdev, u32 port_num, int efa_alloc_ucontext(struct ib_ucontext *ibucontext, struct ib_udata *udata); void efa_dealloc_ucontext(struct ib_ucontext *ibucontext); int efa_mmap(struct ib_ucontext *ibucontext, - struct vm_area_struct *vma); + struct mm_area *vma); void efa_mmap_free(struct rdma_user_mmap_entry *rdma_entry); int efa_create_ah(struct ib_ah *ibah, struct rdma_ah_init_attr *init_attr, diff --git a/drivers/infiniband/hw/efa/efa_verbs.c b/drivers/infiniband/hw/efa/efa_verbs.c index a8645a40730f..3b9b6308bada 100644 --- a/drivers/infiniband/hw/efa/efa_verbs.c +++ b/drivers/infiniband/hw/efa/efa_verbs.c @@ -1978,7 +1978,7 @@ void efa_mmap_free(struct rdma_user_mmap_entry *rdma_entry) } static int __efa_mmap(struct efa_dev *dev, struct efa_ucontext *ucontext, - struct vm_area_struct *vma) + struct mm_area *vma) { struct rdma_user_mmap_entry *rdma_entry; struct efa_user_mmap_entry *entry; @@ -2041,7 +2041,7 @@ static int __efa_mmap(struct efa_dev *dev, struct efa_ucontext *ucontext, } int efa_mmap(struct ib_ucontext *ibucontext, - struct vm_area_struct *vma) + struct mm_area *vma) { struct efa_ucontext *ucontext = to_eucontext(ibucontext); struct efa_dev *dev = to_edev(ibucontext->device); diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.c b/drivers/infiniband/hw/erdma/erdma_verbs.c index af36a8d2df22..159f245e2e6b 100644 --- a/drivers/infiniband/hw/erdma/erdma_verbs.c +++ b/drivers/infiniband/hw/erdma/erdma_verbs.c @@ -1371,7 +1371,7 @@ void erdma_qp_put_ref(struct ib_qp *ibqp) erdma_qp_put(to_eqp(ibqp)); } -int erdma_mmap(struct ib_ucontext *ctx, struct vm_area_struct *vma) +int erdma_mmap(struct ib_ucontext *ctx, struct mm_area *vma) { struct rdma_user_mmap_entry *rdma_entry; struct erdma_user_mmap_entry *entry; diff --git a/drivers/infiniband/hw/erdma/erdma_verbs.h b/drivers/infiniband/hw/erdma/erdma_verbs.h index f9408ccc8bad..a4fd2061301c 100644 --- a/drivers/infiniband/hw/erdma/erdma_verbs.h +++ b/drivers/infiniband/hw/erdma/erdma_verbs.h @@ -455,7 +455,7 @@ struct ib_mr *erdma_reg_user_mr(struct ib_pd *ibpd, u64 start, u64 len, u64 virt, int access, struct ib_udata *udata); struct ib_mr *erdma_get_dma_mr(struct ib_pd *ibpd, int rights); int erdma_dereg_mr(struct ib_mr *ibmr, struct ib_udata *data); -int erdma_mmap(struct ib_ucontext *ctx, struct vm_area_struct *vma); +int erdma_mmap(struct ib_ucontext *ctx, struct mm_area *vma); void erdma_mmap_free(struct rdma_user_mmap_entry *rdma_entry); void erdma_qp_get_ref(struct ib_qp *ibqp); void erdma_qp_put_ref(struct ib_qp *ibqp); diff --git a/drivers/infiniband/hw/hfi1/file_ops.c b/drivers/infiniband/hw/hfi1/file_ops.c index 503abec709c9..239416504cd9 100644 --- a/drivers/infiniband/hw/hfi1/file_ops.c +++ b/drivers/infiniband/hw/hfi1/file_ops.c @@ -35,7 +35,7 @@ static int hfi1_file_open(struct inode *inode, struct file *fp); static int hfi1_file_close(struct inode *inode, struct file *fp); static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from); static __poll_t hfi1_poll(struct file *fp, struct poll_table_struct *pt); -static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma); +static int hfi1_file_mmap(struct file *fp, struct mm_area *vma); static u64 kvirt_to_phys(void *addr); static int assign_ctxt(struct hfi1_filedata *fd, unsigned long arg, u32 len); @@ -306,7 +306,7 @@ static ssize_t hfi1_write_iter(struct kiocb *kiocb, struct iov_iter *from) static inline void mmap_cdbg(u16 ctxt, u8 subctxt, u8 type, u8 mapio, u8 vmf, u64 memaddr, void *memvirt, dma_addr_t memdma, - ssize_t memlen, struct vm_area_struct *vma) + ssize_t memlen, struct mm_area *vma) { hfi1_cdbg(PROC, "%u:%u type:%u io/vf/dma:%d/%d/%d, addr:0x%llx, len:%lu(%lu), flags:0x%lx", @@ -315,7 +315,7 @@ static inline void mmap_cdbg(u16 ctxt, u8 subctxt, u8 type, u8 mapio, u8 vmf, vma->vm_end - vma->vm_start, vma->vm_flags); } -static int hfi1_file_mmap(struct file *fp, struct vm_area_struct *vma) +static int hfi1_file_mmap(struct file *fp, struct mm_area *vma) { struct hfi1_filedata *fd = fp->private_data; struct hfi1_ctxtdata *uctxt = fd->uctxt; diff --git a/drivers/infiniband/hw/hns/hns_roce_main.c b/drivers/infiniband/hw/hns/hns_roce_main.c index cf89a8db4f64..098c1ec4de0a 100644 --- a/drivers/infiniband/hw/hns/hns_roce_main.c +++ b/drivers/infiniband/hw/hns/hns_roce_main.c @@ -457,7 +457,7 @@ static void hns_roce_dealloc_ucontext(struct ib_ucontext *ibcontext) ida_free(&hr_dev->uar_ida.ida, (int)context->uar.logic_idx); } -static int hns_roce_mmap(struct ib_ucontext *uctx, struct vm_area_struct *vma) +static int hns_roce_mmap(struct ib_ucontext *uctx, struct mm_area *vma) { struct hns_roce_dev *hr_dev = to_hr_dev(uctx->device); struct rdma_user_mmap_entry *rdma_entry; diff --git a/drivers/infiniband/hw/irdma/verbs.c b/drivers/infiniband/hw/irdma/verbs.c index eeb932e58730..a361f423e140 100644 --- a/drivers/infiniband/hw/irdma/verbs.c +++ b/drivers/infiniband/hw/irdma/verbs.c @@ -117,7 +117,7 @@ static void irdma_disassociate_ucontext(struct ib_ucontext *context) } static int irdma_mmap_legacy(struct irdma_ucontext *ucontext, - struct vm_area_struct *vma) + struct mm_area *vma) { u64 pfn; @@ -168,7 +168,7 @@ irdma_user_mmap_entry_insert(struct irdma_ucontext *ucontext, u64 bar_offset, * @context: context created during alloc * @vma: kernel info for user memory map */ -static int irdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +static int irdma_mmap(struct ib_ucontext *context, struct mm_area *vma) { struct rdma_user_mmap_entry *rdma_entry; struct irdma_user_mmap_entry *entry; diff --git a/drivers/infiniband/hw/mana/main.c b/drivers/infiniband/hw/mana/main.c index eda9c5b971de..a11368d8c979 100644 --- a/drivers/infiniband/hw/mana/main.c +++ b/drivers/infiniband/hw/mana/main.c @@ -512,7 +512,7 @@ int mana_ib_gd_destroy_dma_region(struct mana_ib_dev *dev, u64 gdma_region) return mana_gd_destroy_dma_region(gc, gdma_region); } -int mana_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma) +int mana_ib_mmap(struct ib_ucontext *ibcontext, struct mm_area *vma) { struct mana_ib_ucontext *mana_ucontext = container_of(ibcontext, struct mana_ib_ucontext, ibucontext); diff --git a/drivers/infiniband/hw/mana/mana_ib.h b/drivers/infiniband/hw/mana/mana_ib.h index 6903946677e5..f02d93ed4fec 100644 --- a/drivers/infiniband/hw/mana/mana_ib.h +++ b/drivers/infiniband/hw/mana/mana_ib.h @@ -628,7 +628,7 @@ int mana_ib_alloc_ucontext(struct ib_ucontext *ibcontext, struct ib_udata *udata); void mana_ib_dealloc_ucontext(struct ib_ucontext *ibcontext); -int mana_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma); +int mana_ib_mmap(struct ib_ucontext *ibcontext, struct mm_area *vma); int mana_ib_get_port_immutable(struct ib_device *ibdev, u32 port_num, struct ib_port_immutable *immutable); diff --git a/drivers/infiniband/hw/mlx4/main.c b/drivers/infiniband/hw/mlx4/main.c index dd35e03402ab..26abc9faca3a 100644 --- a/drivers/infiniband/hw/mlx4/main.c +++ b/drivers/infiniband/hw/mlx4/main.c @@ -1150,7 +1150,7 @@ static void mlx4_ib_disassociate_ucontext(struct ib_ucontext *ibcontext) { } -static int mlx4_ib_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +static int mlx4_ib_mmap(struct ib_ucontext *context, struct mm_area *vma) { struct mlx4_ib_dev *dev = to_mdev(context->device); diff --git a/drivers/infiniband/hw/mlx4/mr.c b/drivers/infiniband/hw/mlx4/mr.c index e77645a673fb..92821271c4a2 100644 --- a/drivers/infiniband/hw/mlx4/mr.c +++ b/drivers/infiniband/hw/mlx4/mr.c @@ -114,7 +114,7 @@ static struct ib_umem *mlx4_get_umem_mr(struct ib_device *device, u64 start, */ if (!ib_access_writable(access_flags)) { unsigned long untagged_start = untagged_addr(start); - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(current->mm); /* diff --git a/drivers/infiniband/hw/mlx5/main.c b/drivers/infiniband/hw/mlx5/main.c index d07cacaa0abd..9434b1c99b60 100644 --- a/drivers/infiniband/hw/mlx5/main.c +++ b/drivers/infiniband/hw/mlx5/main.c @@ -2201,7 +2201,7 @@ static inline char *mmap_cmd2str(enum mlx5_ib_mmap_cmd cmd) } static int mlx5_ib_mmap_clock_info_page(struct mlx5_ib_dev *dev, - struct vm_area_struct *vma, + struct mm_area *vma, struct mlx5_ib_ucontext *context) { if ((vma->vm_end - vma->vm_start != PAGE_SIZE) || @@ -2252,7 +2252,7 @@ static void mlx5_ib_mmap_free(struct rdma_user_mmap_entry *entry) } static int uar_mmap(struct mlx5_ib_dev *dev, enum mlx5_ib_mmap_cmd cmd, - struct vm_area_struct *vma, + struct mm_area *vma, struct mlx5_ib_ucontext *context) { struct mlx5_bfreg_info *bfregi = &context->bfregi; @@ -2359,7 +2359,7 @@ static int uar_mmap(struct mlx5_ib_dev *dev, enum mlx5_ib_mmap_cmd cmd, return err; } -static unsigned long mlx5_vma_to_pgoff(struct vm_area_struct *vma) +static unsigned long mlx5_vma_to_pgoff(struct mm_area *vma) { unsigned long idx; u8 command; @@ -2371,7 +2371,7 @@ static unsigned long mlx5_vma_to_pgoff(struct vm_area_struct *vma) } static int mlx5_ib_mmap_offset(struct mlx5_ib_dev *dev, - struct vm_area_struct *vma, + struct mm_area *vma, struct ib_ucontext *ucontext) { struct mlx5_user_mmap_entry *mentry; @@ -2410,7 +2410,7 @@ static u64 mlx5_entry_to_mmap_offset(struct mlx5_user_mmap_entry *entry) (index & 0xFF)) << PAGE_SHIFT; } -static int mlx5_ib_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma) +static int mlx5_ib_mmap(struct ib_ucontext *ibcontext, struct mm_area *vma) { struct mlx5_ib_ucontext *context = to_mucontext(ibcontext); struct mlx5_ib_dev *dev = to_mdev(ibcontext->device); diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c index 6a1e2e79ddc3..5934a0cc68a0 100644 --- a/drivers/infiniband/hw/mthca/mthca_provider.c +++ b/drivers/infiniband/hw/mthca/mthca_provider.c @@ -330,7 +330,7 @@ static void mthca_dealloc_ucontext(struct ib_ucontext *context) } static int mthca_mmap_uar(struct ib_ucontext *context, - struct vm_area_struct *vma) + struct mm_area *vma) { if (vma->vm_end - vma->vm_start != PAGE_SIZE) return -EINVAL; diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c index 979de8f8df14..a4940538d888 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.c @@ -536,7 +536,7 @@ void ocrdma_dealloc_ucontext(struct ib_ucontext *ibctx) } } -int ocrdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +int ocrdma_mmap(struct ib_ucontext *context, struct mm_area *vma) { struct ocrdma_ucontext *ucontext = get_ocrdma_ucontext(context); struct ocrdma_dev *dev = get_ocrdma_dev(context->device); diff --git a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h index 0644346d8d98..7e9ff740faad 100644 --- a/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h +++ b/drivers/infiniband/hw/ocrdma/ocrdma_verbs.h @@ -64,7 +64,7 @@ int ocrdma_query_pkey(struct ib_device *ibdev, u32 port, u16 index, u16 *pkey); int ocrdma_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata); void ocrdma_dealloc_ucontext(struct ib_ucontext *uctx); -int ocrdma_mmap(struct ib_ucontext *, struct vm_area_struct *vma); +int ocrdma_mmap(struct ib_ucontext *, struct mm_area *vma); int ocrdma_alloc_pd(struct ib_pd *pd, struct ib_udata *udata); int ocrdma_dealloc_pd(struct ib_pd *pd, struct ib_udata *udata); diff --git a/drivers/infiniband/hw/qedr/verbs.c b/drivers/infiniband/hw/qedr/verbs.c index 568a5b18803f..779bcac34ca1 100644 --- a/drivers/infiniband/hw/qedr/verbs.c +++ b/drivers/infiniband/hw/qedr/verbs.c @@ -385,7 +385,7 @@ void qedr_mmap_free(struct rdma_user_mmap_entry *rdma_entry) kfree(entry); } -int qedr_mmap(struct ib_ucontext *ucontext, struct vm_area_struct *vma) +int qedr_mmap(struct ib_ucontext *ucontext, struct mm_area *vma) { struct ib_device *dev = ucontext->device; size_t length = vma->vm_end - vma->vm_start; diff --git a/drivers/infiniband/hw/qedr/verbs.h b/drivers/infiniband/hw/qedr/verbs.h index 5731458abb06..50654f10a4ea 100644 --- a/drivers/infiniband/hw/qedr/verbs.h +++ b/drivers/infiniband/hw/qedr/verbs.h @@ -45,7 +45,7 @@ int qedr_query_pkey(struct ib_device *ibdev, u32 port, u16 index, u16 *pkey); int qedr_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata); void qedr_dealloc_ucontext(struct ib_ucontext *uctx); -int qedr_mmap(struct ib_ucontext *ucontext, struct vm_area_struct *vma); +int qedr_mmap(struct ib_ucontext *ucontext, struct mm_area *vma); void qedr_mmap_free(struct rdma_user_mmap_entry *rdma_entry); int qedr_alloc_pd(struct ib_pd *pd, struct ib_udata *udata); int qedr_dealloc_pd(struct ib_pd *pd, struct ib_udata *udata); diff --git a/drivers/infiniband/hw/qib/qib_file_ops.c b/drivers/infiniband/hw/qib/qib_file_ops.c index 29e4c59aa23b..b7ff897e3729 100644 --- a/drivers/infiniband/hw/qib/qib_file_ops.c +++ b/drivers/infiniband/hw/qib/qib_file_ops.c @@ -59,7 +59,7 @@ static int qib_close(struct inode *, struct file *); static ssize_t qib_write(struct file *, const char __user *, size_t, loff_t *); static ssize_t qib_write_iter(struct kiocb *, struct iov_iter *); static __poll_t qib_poll(struct file *, struct poll_table_struct *); -static int qib_mmapf(struct file *, struct vm_area_struct *); +static int qib_mmapf(struct file *, struct mm_area *); /* * This is really, really weird shit - write() and writev() here @@ -705,7 +705,7 @@ static void qib_clean_part_key(struct qib_ctxtdata *rcd, } /* common code for the mappings on dma_alloc_coherent mem */ -static int qib_mmap_mem(struct vm_area_struct *vma, struct qib_ctxtdata *rcd, +static int qib_mmap_mem(struct mm_area *vma, struct qib_ctxtdata *rcd, unsigned len, void *kvaddr, u32 write_ok, char *what) { struct qib_devdata *dd = rcd->dd; @@ -747,7 +747,7 @@ static int qib_mmap_mem(struct vm_area_struct *vma, struct qib_ctxtdata *rcd, return ret; } -static int mmap_ureg(struct vm_area_struct *vma, struct qib_devdata *dd, +static int mmap_ureg(struct mm_area *vma, struct qib_devdata *dd, u64 ureg) { unsigned long phys; @@ -778,7 +778,7 @@ static int mmap_ureg(struct vm_area_struct *vma, struct qib_devdata *dd, return ret; } -static int mmap_piobufs(struct vm_area_struct *vma, +static int mmap_piobufs(struct mm_area *vma, struct qib_devdata *dd, struct qib_ctxtdata *rcd, unsigned piobufs, unsigned piocnt) @@ -823,7 +823,7 @@ static int mmap_piobufs(struct vm_area_struct *vma, return ret; } -static int mmap_rcvegrbufs(struct vm_area_struct *vma, +static int mmap_rcvegrbufs(struct mm_area *vma, struct qib_ctxtdata *rcd) { struct qib_devdata *dd = rcd->dd; @@ -889,7 +889,7 @@ static const struct vm_operations_struct qib_file_vm_ops = { .fault = qib_file_vma_fault, }; -static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, +static int mmap_kvaddr(struct mm_area *vma, u64 pgaddr, struct qib_ctxtdata *rcd, unsigned subctxt) { struct qib_devdata *dd = rcd->dd; @@ -971,7 +971,7 @@ static int mmap_kvaddr(struct vm_area_struct *vma, u64 pgaddr, * buffers in the chip. We have the open and close entries so we can bump * the ref count and keep the driver from being unloaded while still mapped. */ -static int qib_mmapf(struct file *fp, struct vm_area_struct *vma) +static int qib_mmapf(struct file *fp, struct mm_area *vma) { struct qib_ctxtdata *rcd; struct qib_devdata *dd; diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c index 217af34e82b3..9ed349e5fcc3 100644 --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.c +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.c @@ -658,7 +658,7 @@ void usnic_ib_dealloc_ucontext(struct ib_ucontext *ibcontext) } int usnic_ib_mmap(struct ib_ucontext *context, - struct vm_area_struct *vma) + struct mm_area *vma) { struct usnic_ib_ucontext *uctx = to_ucontext(context); struct usnic_ib_dev *us_ibdev; diff --git a/drivers/infiniband/hw/usnic/usnic_ib_verbs.h b/drivers/infiniband/hw/usnic/usnic_ib_verbs.h index 53f53f2d53be..e445f74b027f 100644 --- a/drivers/infiniband/hw/usnic/usnic_ib_verbs.h +++ b/drivers/infiniband/hw/usnic/usnic_ib_verbs.h @@ -65,5 +65,5 @@ int usnic_ib_dereg_mr(struct ib_mr *ibmr, struct ib_udata *udata); int usnic_ib_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata); void usnic_ib_dealloc_ucontext(struct ib_ucontext *ibcontext); int usnic_ib_mmap(struct ib_ucontext *context, - struct vm_area_struct *vma); + struct mm_area *vma); #endif /* !USNIC_IB_VERBS_H */ diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c index bcd43dc30e21..e536181063cf 100644 --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.c @@ -364,7 +364,7 @@ void pvrdma_dealloc_ucontext(struct ib_ucontext *ibcontext) * * @return: 0 on success, otherwise errno. */ -int pvrdma_mmap(struct ib_ucontext *ibcontext, struct vm_area_struct *vma) +int pvrdma_mmap(struct ib_ucontext *ibcontext, struct mm_area *vma) { struct pvrdma_ucontext *context = to_vucontext(ibcontext); unsigned long start = vma->vm_start; diff --git a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h index fd47b0b1df5c..a3720f30cb8d 100644 --- a/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h +++ b/drivers/infiniband/hw/vmw_pvrdma/pvrdma_verbs.h @@ -358,7 +358,7 @@ enum rdma_link_layer pvrdma_port_link_layer(struct ib_device *ibdev, u32 port); int pvrdma_modify_port(struct ib_device *ibdev, u32 port, int mask, struct ib_port_modify *props); -int pvrdma_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); +int pvrdma_mmap(struct ib_ucontext *context, struct mm_area *vma); int pvrdma_alloc_ucontext(struct ib_ucontext *uctx, struct ib_udata *udata); void pvrdma_dealloc_ucontext(struct ib_ucontext *context); int pvrdma_alloc_pd(struct ib_pd *pd, struct ib_udata *udata); diff --git a/drivers/infiniband/sw/rdmavt/mmap.c b/drivers/infiniband/sw/rdmavt/mmap.c index 46e3b3e0643a..45d7caafa4d0 100644 --- a/drivers/infiniband/sw/rdmavt/mmap.c +++ b/drivers/infiniband/sw/rdmavt/mmap.c @@ -39,14 +39,14 @@ void rvt_release_mmap_info(struct kref *ref) kfree(ip); } -static void rvt_vma_open(struct vm_area_struct *vma) +static void rvt_vma_open(struct mm_area *vma) { struct rvt_mmap_info *ip = vma->vm_private_data; kref_get(&ip->ref); } -static void rvt_vma_close(struct vm_area_struct *vma) +static void rvt_vma_close(struct mm_area *vma) { struct rvt_mmap_info *ip = vma->vm_private_data; @@ -65,7 +65,7 @@ static const struct vm_operations_struct rvt_vm_ops = { * * Return: zero if the mmap is OK. Otherwise, return an errno. */ -int rvt_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +int rvt_mmap(struct ib_ucontext *context, struct mm_area *vma) { struct rvt_dev_info *rdi = ib_to_rvt(context->device); unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/infiniband/sw/rdmavt/mmap.h b/drivers/infiniband/sw/rdmavt/mmap.h index 29aaca3e8b83..7075597849cd 100644 --- a/drivers/infiniband/sw/rdmavt/mmap.h +++ b/drivers/infiniband/sw/rdmavt/mmap.h @@ -10,7 +10,7 @@ void rvt_mmap_init(struct rvt_dev_info *rdi); void rvt_release_mmap_info(struct kref *ref); -int rvt_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); +int rvt_mmap(struct ib_ucontext *context, struct mm_area *vma); struct rvt_mmap_info *rvt_create_mmap_info(struct rvt_dev_info *rdi, u32 size, struct ib_udata *udata, void *obj); void rvt_update_mmap_info(struct rvt_dev_info *rdi, struct rvt_mmap_info *ip, diff --git a/drivers/infiniband/sw/rxe/rxe_loc.h b/drivers/infiniband/sw/rxe/rxe_loc.h index feb386d98d1d..3f40a7a141af 100644 --- a/drivers/infiniband/sw/rxe/rxe_loc.h +++ b/drivers/infiniband/sw/rxe/rxe_loc.h @@ -54,7 +54,7 @@ void rxe_mmap_release(struct kref *ref); struct rxe_mmap_info *rxe_create_mmap_info(struct rxe_dev *dev, u32 size, struct ib_udata *udata, void *obj); -int rxe_mmap(struct ib_ucontext *context, struct vm_area_struct *vma); +int rxe_mmap(struct ib_ucontext *context, struct mm_area *vma); /* rxe_mr.c */ u8 rxe_get_next_key(u32 last_key); diff --git a/drivers/infiniband/sw/rxe/rxe_mmap.c b/drivers/infiniband/sw/rxe/rxe_mmap.c index 6b7f2bd69879..2b478c3138b9 100644 --- a/drivers/infiniband/sw/rxe/rxe_mmap.c +++ b/drivers/infiniband/sw/rxe/rxe_mmap.c @@ -34,14 +34,14 @@ void rxe_mmap_release(struct kref *ref) * open and close keep track of how many times the memory region is mapped, * to avoid releasing it. */ -static void rxe_vma_open(struct vm_area_struct *vma) +static void rxe_vma_open(struct mm_area *vma) { struct rxe_mmap_info *ip = vma->vm_private_data; kref_get(&ip->ref); } -static void rxe_vma_close(struct vm_area_struct *vma) +static void rxe_vma_close(struct mm_area *vma) { struct rxe_mmap_info *ip = vma->vm_private_data; @@ -59,7 +59,7 @@ static const struct vm_operations_struct rxe_vm_ops = { * @vma: the VMA to be initialized * Return zero if the mmap is OK. Otherwise, return an errno. */ -int rxe_mmap(struct ib_ucontext *context, struct vm_area_struct *vma) +int rxe_mmap(struct ib_ucontext *context, struct mm_area *vma) { struct rxe_dev *rxe = to_rdev(context->device); unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/infiniband/sw/siw/siw_verbs.c b/drivers/infiniband/sw/siw/siw_verbs.c index fd7b266a221b..e04bb047470d 100644 --- a/drivers/infiniband/sw/siw/siw_verbs.c +++ b/drivers/infiniband/sw/siw/siw_verbs.c @@ -51,7 +51,7 @@ void siw_mmap_free(struct rdma_user_mmap_entry *rdma_entry) kfree(entry); } -int siw_mmap(struct ib_ucontext *ctx, struct vm_area_struct *vma) +int siw_mmap(struct ib_ucontext *ctx, struct mm_area *vma) { struct siw_ucontext *uctx = to_siw_ctx(ctx); size_t size = vma->vm_end - vma->vm_start; diff --git a/drivers/infiniband/sw/siw/siw_verbs.h b/drivers/infiniband/sw/siw/siw_verbs.h index 1f1a305540af..0df2ef43317c 100644 --- a/drivers/infiniband/sw/siw/siw_verbs.h +++ b/drivers/infiniband/sw/siw/siw_verbs.h @@ -80,7 +80,7 @@ int siw_query_srq(struct ib_srq *base_srq, struct ib_srq_attr *attr); int siw_destroy_srq(struct ib_srq *base_srq, struct ib_udata *udata); int siw_post_srq_recv(struct ib_srq *base_srq, const struct ib_recv_wr *wr, const struct ib_recv_wr **bad_wr); -int siw_mmap(struct ib_ucontext *ctx, struct vm_area_struct *vma); +int siw_mmap(struct ib_ucontext *ctx, struct mm_area *vma); void siw_mmap_free(struct rdma_user_mmap_entry *rdma_entry); void siw_qp_event(struct siw_qp *qp, enum ib_event_type type); void siw_cq_event(struct siw_cq *cq, enum ib_event_type type); diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c index 6054d0ab8023..44e86a5bf175 100644 --- a/drivers/iommu/dma-iommu.c +++ b/drivers/iommu/dma-iommu.c @@ -1066,7 +1066,7 @@ void *iommu_dma_vmap_noncontiguous(struct device *dev, size_t size, return vmap(sgt_handle(sgt)->pages, count, VM_MAP, PAGE_KERNEL); } -int iommu_dma_mmap_noncontiguous(struct device *dev, struct vm_area_struct *vma, +int iommu_dma_mmap_noncontiguous(struct device *dev, struct mm_area *vma, size_t size, struct sg_table *sgt) { unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT; @@ -1643,7 +1643,7 @@ void *iommu_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, return cpu_addr; } -int iommu_dma_mmap(struct device *dev, struct vm_area_struct *vma, +int iommu_dma_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { diff --git a/drivers/iommu/iommu-sva.c b/drivers/iommu/iommu-sva.c index ab18bc494eef..9d70a137db53 100644 --- a/drivers/iommu/iommu-sva.c +++ b/drivers/iommu/iommu-sva.c @@ -209,7 +209,7 @@ static enum iommu_page_response_code iommu_sva_handle_mm(struct iommu_fault *fault, struct mm_struct *mm) { vm_fault_t ret; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned int access_flags = 0; unsigned int fault_flags = FAULT_FLAG_REMOTE; struct iommu_fault_page_request *prm = &fault->prm; diff --git a/drivers/media/common/videobuf2/videobuf2-core.c b/drivers/media/common/videobuf2/videobuf2-core.c index 2df566f409b6..77bafec1433d 100644 --- a/drivers/media/common/videobuf2/videobuf2-core.c +++ b/drivers/media/common/videobuf2/videobuf2-core.c @@ -2496,7 +2496,7 @@ int vb2_core_expbuf(struct vb2_queue *q, int *fd, unsigned int type, } EXPORT_SYMBOL_GPL(vb2_core_expbuf); -int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma) +int vb2_mmap(struct vb2_queue *q, struct mm_area *vma) { unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; struct vb2_buffer *vb; diff --git a/drivers/media/common/videobuf2/videobuf2-dma-contig.c b/drivers/media/common/videobuf2/videobuf2-dma-contig.c index a13ec569c82f..e038533f7541 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-contig.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-contig.c @@ -271,7 +271,7 @@ static void *vb2_dc_alloc(struct vb2_buffer *vb, return buf; } -static int vb2_dc_mmap(void *buf_priv, struct vm_area_struct *vma) +static int vb2_dc_mmap(void *buf_priv, struct mm_area *vma) { struct vb2_dc_buf *buf = buf_priv; int ret; @@ -453,7 +453,7 @@ static int vb2_dc_dmabuf_ops_vmap(struct dma_buf *dbuf, struct iosys_map *map) } static int vb2_dc_dmabuf_ops_mmap(struct dma_buf *dbuf, - struct vm_area_struct *vma) + struct mm_area *vma) { return vb2_dc_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-dma-sg.c b/drivers/media/common/videobuf2/videobuf2-dma-sg.c index c6ddf2357c58..78bc6dd98236 100644 --- a/drivers/media/common/videobuf2/videobuf2-dma-sg.c +++ b/drivers/media/common/videobuf2/videobuf2-dma-sg.c @@ -329,7 +329,7 @@ static unsigned int vb2_dma_sg_num_users(void *buf_priv) return refcount_read(&buf->refcount); } -static int vb2_dma_sg_mmap(void *buf_priv, struct vm_area_struct *vma) +static int vb2_dma_sg_mmap(void *buf_priv, struct mm_area *vma) { struct vb2_dma_sg_buf *buf = buf_priv; int err; @@ -501,7 +501,7 @@ static int vb2_dma_sg_dmabuf_ops_vmap(struct dma_buf *dbuf, } static int vb2_dma_sg_dmabuf_ops_mmap(struct dma_buf *dbuf, - struct vm_area_struct *vma) + struct mm_area *vma) { return vb2_dma_sg_mmap(dbuf->priv, vma); } diff --git a/drivers/media/common/videobuf2/videobuf2-memops.c b/drivers/media/common/videobuf2/videobuf2-memops.c index f9a4ec44422e..3012d5b5c2d9 100644 --- a/drivers/media/common/videobuf2/videobuf2-memops.c +++ b/drivers/media/common/videobuf2/videobuf2-memops.c @@ -87,7 +87,7 @@ EXPORT_SYMBOL(vb2_destroy_framevec); * This function adds another user to the provided vma. It expects * struct vb2_vmarea_handler pointer in vma->vm_private_data. */ -static void vb2_common_vm_open(struct vm_area_struct *vma) +static void vb2_common_vm_open(struct mm_area *vma) { struct vb2_vmarea_handler *h = vma->vm_private_data; @@ -105,7 +105,7 @@ static void vb2_common_vm_open(struct vm_area_struct *vma) * This function releases the user from the provided vma. It expects * struct vb2_vmarea_handler pointer in vma->vm_private_data. */ -static void vb2_common_vm_close(struct vm_area_struct *vma) +static void vb2_common_vm_close(struct mm_area *vma) { struct vb2_vmarea_handler *h = vma->vm_private_data; diff --git a/drivers/media/common/videobuf2/videobuf2-v4l2.c b/drivers/media/common/videobuf2/videobuf2-v4l2.c index 9201d854dbcc..73aa54baf3a0 100644 --- a/drivers/media/common/videobuf2/videobuf2-v4l2.c +++ b/drivers/media/common/videobuf2/videobuf2-v4l2.c @@ -1141,7 +1141,7 @@ EXPORT_SYMBOL_GPL(vb2_ioctl_expbuf); /* v4l2_file_operations helpers */ -int vb2_fop_mmap(struct file *file, struct vm_area_struct *vma) +int vb2_fop_mmap(struct file *file, struct mm_area *vma) { struct video_device *vdev = video_devdata(file); diff --git a/drivers/media/common/videobuf2/videobuf2-vmalloc.c b/drivers/media/common/videobuf2/videobuf2-vmalloc.c index 3f777068cd34..7f9526ab3e5a 100644 --- a/drivers/media/common/videobuf2/videobuf2-vmalloc.c +++ b/drivers/media/common/videobuf2/videobuf2-vmalloc.c @@ -167,7 +167,7 @@ static unsigned int vb2_vmalloc_num_users(void *buf_priv) return refcount_read(&buf->refcount); } -static int vb2_vmalloc_mmap(void *buf_priv, struct vm_area_struct *vma) +static int vb2_vmalloc_mmap(void *buf_priv, struct mm_area *vma) { struct vb2_vmalloc_buf *buf = buf_priv; int ret; @@ -318,7 +318,7 @@ static int vb2_vmalloc_dmabuf_ops_vmap(struct dma_buf *dbuf, } static int vb2_vmalloc_dmabuf_ops_mmap(struct dma_buf *dbuf, - struct vm_area_struct *vma) + struct mm_area *vma) { return vb2_vmalloc_mmap(dbuf->priv, vma); } diff --git a/drivers/media/dvb-core/dmxdev.c b/drivers/media/dvb-core/dmxdev.c index 6063782e937a..72eae59b0646 100644 --- a/drivers/media/dvb-core/dmxdev.c +++ b/drivers/media/dvb-core/dmxdev.c @@ -1212,7 +1212,7 @@ static __poll_t dvb_demux_poll(struct file *file, poll_table *wait) } #ifdef CONFIG_DVB_MMAP -static int dvb_demux_mmap(struct file *file, struct vm_area_struct *vma) +static int dvb_demux_mmap(struct file *file, struct mm_area *vma) { struct dmxdev_filter *dmxdevfilter = file->private_data; struct dmxdev *dmxdev = dmxdevfilter->dev; @@ -1362,7 +1362,7 @@ static __poll_t dvb_dvr_poll(struct file *file, poll_table *wait) } #ifdef CONFIG_DVB_MMAP -static int dvb_dvr_mmap(struct file *file, struct vm_area_struct *vma) +static int dvb_dvr_mmap(struct file *file, struct mm_area *vma) { struct dvb_device *dvbdev = file->private_data; struct dmxdev *dmxdev = dvbdev->priv; diff --git a/drivers/media/dvb-core/dvb_vb2.c b/drivers/media/dvb-core/dvb_vb2.c index 29edaaff7a5c..8e6b7b0463e9 100644 --- a/drivers/media/dvb-core/dvb_vb2.c +++ b/drivers/media/dvb-core/dvb_vb2.c @@ -431,7 +431,7 @@ int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b) return 0; } -int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma) +int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct mm_area *vma) { int ret; diff --git a/drivers/media/pci/cx18/cx18-fileops.h b/drivers/media/pci/cx18/cx18-fileops.h index 943057b83d94..be284bd28c53 100644 --- a/drivers/media/pci/cx18/cx18-fileops.h +++ b/drivers/media/pci/cx18/cx18-fileops.h @@ -19,7 +19,7 @@ int cx18_start_capture(struct cx18_open_id *id); void cx18_stop_capture(struct cx18_stream *s, int gop_end); void cx18_mute(struct cx18 *cx); void cx18_unmute(struct cx18 *cx); -int cx18_v4l2_mmap(struct file *file, struct vm_area_struct *vma); +int cx18_v4l2_mmap(struct file *file, struct mm_area *vma); void cx18_clear_queue(struct cx18_stream *s, enum vb2_buffer_state state); void cx18_vb_timeout(struct timer_list *t); diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.c b/drivers/media/pci/intel/ipu6/ipu6-dma.c index 1ca60ca79dba..ffcd43703d6a 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-dma.c +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.c @@ -294,7 +294,7 @@ void ipu6_dma_free(struct ipu6_bus_device *sys, size_t size, void *vaddr, } EXPORT_SYMBOL_NS_GPL(ipu6_dma_free, "INTEL_IPU6"); -int ipu6_dma_mmap(struct ipu6_bus_device *sys, struct vm_area_struct *vma, +int ipu6_dma_mmap(struct ipu6_bus_device *sys, struct mm_area *vma, void *addr, dma_addr_t iova, size_t size, unsigned long attrs) { diff --git a/drivers/media/pci/intel/ipu6/ipu6-dma.h b/drivers/media/pci/intel/ipu6/ipu6-dma.h index 2882850d9366..8c63e2883ebb 100644 --- a/drivers/media/pci/intel/ipu6/ipu6-dma.h +++ b/drivers/media/pci/intel/ipu6/ipu6-dma.h @@ -30,7 +30,7 @@ void *ipu6_dma_alloc(struct ipu6_bus_device *sys, size_t size, unsigned long attrs); void ipu6_dma_free(struct ipu6_bus_device *sys, size_t size, void *vaddr, dma_addr_t dma_handle, unsigned long attrs); -int ipu6_dma_mmap(struct ipu6_bus_device *sys, struct vm_area_struct *vma, +int ipu6_dma_mmap(struct ipu6_bus_device *sys, struct mm_area *vma, void *addr, dma_addr_t iova, size_t size, unsigned long attrs); int ipu6_dma_map_sg(struct ipu6_bus_device *sys, struct scatterlist *sglist, diff --git a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c b/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c index 4bda1c369c44..8c35172b0e38 100644 --- a/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c +++ b/drivers/media/platform/samsung/exynos-gsc/gsc-m2m.c @@ -703,7 +703,7 @@ static __poll_t gsc_m2m_poll(struct file *file, return ret; } -static int gsc_m2m_mmap(struct file *file, struct vm_area_struct *vma) +static int gsc_m2m_mmap(struct file *file, struct mm_area *vma) { struct gsc_ctx *ctx = fh_to_ctx(file->private_data); struct gsc_dev *gsc = ctx->gsc_dev; diff --git a/drivers/media/platform/samsung/s3c-camif/camif-capture.c b/drivers/media/platform/samsung/s3c-camif/camif-capture.c index bd1149e8abc2..5ee766d8c40e 100644 --- a/drivers/media/platform/samsung/s3c-camif/camif-capture.c +++ b/drivers/media/platform/samsung/s3c-camif/camif-capture.c @@ -604,7 +604,7 @@ static __poll_t s3c_camif_poll(struct file *file, return ret; } -static int s3c_camif_mmap(struct file *file, struct vm_area_struct *vma) +static int s3c_camif_mmap(struct file *file, struct mm_area *vma) { struct camif_vp *vp = video_drvdata(file); int ret; diff --git a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c index 5f80931f056d..81656e3f2c49 100644 --- a/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c +++ b/drivers/media/platform/samsung/s5p-mfc/s5p_mfc.c @@ -1062,7 +1062,7 @@ static __poll_t s5p_mfc_poll(struct file *file, } /* Mmap */ -static int s5p_mfc_mmap(struct file *file, struct vm_area_struct *vma) +static int s5p_mfc_mmap(struct file *file, struct mm_area *vma) { struct s5p_mfc_ctx *ctx = fh_to_ctx(file->private_data); unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/media/platform/ti/omap3isp/ispvideo.c b/drivers/media/platform/ti/omap3isp/ispvideo.c index 5c9aa80023fd..ddab948fa88f 100644 --- a/drivers/media/platform/ti/omap3isp/ispvideo.c +++ b/drivers/media/platform/ti/omap3isp/ispvideo.c @@ -1401,7 +1401,7 @@ static __poll_t isp_video_poll(struct file *file, poll_table *wait) return ret; } -static int isp_video_mmap(struct file *file, struct vm_area_struct *vma) +static int isp_video_mmap(struct file *file, struct mm_area *vma) { struct isp_video_fh *vfh = to_isp_video_fh(file->private_data); diff --git a/drivers/media/usb/uvc/uvc_queue.c b/drivers/media/usb/uvc/uvc_queue.c index 2ee142621042..25642a2e8eec 100644 --- a/drivers/media/usb/uvc/uvc_queue.c +++ b/drivers/media/usb/uvc/uvc_queue.c @@ -346,7 +346,7 @@ int uvc_queue_streamoff(struct uvc_video_queue *queue, enum v4l2_buf_type type) return ret; } -int uvc_queue_mmap(struct uvc_video_queue *queue, struct vm_area_struct *vma) +int uvc_queue_mmap(struct uvc_video_queue *queue, struct mm_area *vma) { return vb2_mmap(&queue->queue, vma); } diff --git a/drivers/media/usb/uvc/uvc_v4l2.c b/drivers/media/usb/uvc/uvc_v4l2.c index 39065db44e86..f73fd604a62d 100644 --- a/drivers/media/usb/uvc/uvc_v4l2.c +++ b/drivers/media/usb/uvc/uvc_v4l2.c @@ -1413,7 +1413,7 @@ static ssize_t uvc_v4l2_read(struct file *file, char __user *data, return -EINVAL; } -static int uvc_v4l2_mmap(struct file *file, struct vm_area_struct *vma) +static int uvc_v4l2_mmap(struct file *file, struct mm_area *vma) { struct uvc_fh *handle = file->private_data; struct uvc_streaming *stream = handle->stream; diff --git a/drivers/media/usb/uvc/uvcvideo.h b/drivers/media/usb/uvc/uvcvideo.h index b4ee701835fc..a56e30f5a487 100644 --- a/drivers/media/usb/uvc/uvcvideo.h +++ b/drivers/media/usb/uvc/uvcvideo.h @@ -708,7 +708,7 @@ struct uvc_buffer *uvc_queue_next_buffer(struct uvc_video_queue *queue, struct uvc_buffer *uvc_queue_get_current_buffer(struct uvc_video_queue *queue); void uvc_queue_buffer_release(struct uvc_buffer *buf); int uvc_queue_mmap(struct uvc_video_queue *queue, - struct vm_area_struct *vma); + struct mm_area *vma); __poll_t uvc_queue_poll(struct uvc_video_queue *queue, struct file *file, poll_table *wait); #ifndef CONFIG_MMU diff --git a/drivers/media/v4l2-core/v4l2-dev.c b/drivers/media/v4l2-core/v4l2-dev.c index b40c08ce909d..172f16bd0d79 100644 --- a/drivers/media/v4l2-core/v4l2-dev.c +++ b/drivers/media/v4l2-core/v4l2-dev.c @@ -392,7 +392,7 @@ static unsigned long v4l2_get_unmapped_area(struct file *filp, } #endif -static int v4l2_mmap(struct file *filp, struct vm_area_struct *vm) +static int v4l2_mmap(struct file *filp, struct mm_area *vm) { struct video_device *vdev = video_devdata(filp); int ret = -ENODEV; diff --git a/drivers/media/v4l2-core/v4l2-mem2mem.c b/drivers/media/v4l2-core/v4l2-mem2mem.c index eb22d6172462..219609e59ee1 100644 --- a/drivers/media/v4l2-core/v4l2-mem2mem.c +++ b/drivers/media/v4l2-core/v4l2-mem2mem.c @@ -983,7 +983,7 @@ __poll_t v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, EXPORT_SYMBOL_GPL(v4l2_m2m_poll); int v4l2_m2m_mmap(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; struct vb2_queue *vq; @@ -1615,7 +1615,7 @@ EXPORT_SYMBOL_GPL(v4l2_m2m_ioctl_stateless_decoder_cmd); * for the output and the capture buffer queue. */ -int v4l2_m2m_fop_mmap(struct file *file, struct vm_area_struct *vma) +int v4l2_m2m_fop_mmap(struct file *file, struct mm_area *vma) { struct v4l2_fh *fh = file->private_data; diff --git a/drivers/misc/bcm-vk/bcm_vk_dev.c b/drivers/misc/bcm-vk/bcm_vk_dev.c index d4a96137728d..5742434e1178 100644 --- a/drivers/misc/bcm-vk/bcm_vk_dev.c +++ b/drivers/misc/bcm-vk/bcm_vk_dev.c @@ -1201,7 +1201,7 @@ static long bcm_vk_reset(struct bcm_vk *vk, struct vk_reset __user *arg) return ret; } -static int bcm_vk_mmap(struct file *file, struct vm_area_struct *vma) +static int bcm_vk_mmap(struct file *file, struct mm_area *vma) { struct bcm_vk_ctx *ctx = file->private_data; struct bcm_vk *vk = container_of(ctx->miscdev, struct bcm_vk, miscdev); diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 7b7a22c91fe4..e8c4ed8aea52 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -731,7 +731,7 @@ static int fastrpc_vmap(struct dma_buf *dmabuf, struct iosys_map *map) } static int fastrpc_mmap(struct dma_buf *dmabuf, - struct vm_area_struct *vma) + struct mm_area *vma) { struct fastrpc_buf *buf = dmabuf->priv; size_t size = vma->vm_end - vma->vm_start; @@ -984,7 +984,7 @@ static int fastrpc_get_args(u32 kernel, struct fastrpc_invoke_ctx *ctx) continue; if (ctx->maps[i]) { - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; rpra[i].buf.pv = (u64) ctx->args[i].ptr; pages[i].addr = ctx->maps[i]->phys; diff --git a/drivers/misc/genwqe/card_dev.c b/drivers/misc/genwqe/card_dev.c index 4441aca2280a..acff9681d657 100644 --- a/drivers/misc/genwqe/card_dev.c +++ b/drivers/misc/genwqe/card_dev.c @@ -376,7 +376,7 @@ static int genwqe_release(struct inode *inode, struct file *filp) return 0; } -static void genwqe_vma_open(struct vm_area_struct *vma) +static void genwqe_vma_open(struct mm_area *vma) { /* nothing ... */ } @@ -387,7 +387,7 @@ static void genwqe_vma_open(struct vm_area_struct *vma) * * Free memory which got allocated by GenWQE mmap(). */ -static void genwqe_vma_close(struct vm_area_struct *vma) +static void genwqe_vma_close(struct mm_area *vma) { unsigned long vsize = vma->vm_end - vma->vm_start; struct inode *inode = file_inode(vma->vm_file); @@ -432,7 +432,7 @@ static const struct vm_operations_struct genwqe_vma_ops = { * plain buffer, we lookup our dma_mapping list to find the * corresponding DMA address for the associated user-space address. */ -static int genwqe_mmap(struct file *filp, struct vm_area_struct *vma) +static int genwqe_mmap(struct file *filp, struct mm_area *vma) { int rc; unsigned long pfn, vsize = vma->vm_end - vma->vm_start; diff --git a/drivers/misc/ocxl/context.c b/drivers/misc/ocxl/context.c index cded7d1caf32..da4b82b2c938 100644 --- a/drivers/misc/ocxl/context.c +++ b/drivers/misc/ocxl/context.c @@ -95,7 +95,7 @@ int ocxl_context_attach(struct ocxl_context *ctx, u64 amr, struct mm_struct *mm) } EXPORT_SYMBOL_GPL(ocxl_context_attach); -static vm_fault_t map_afu_irq(struct vm_area_struct *vma, unsigned long address, +static vm_fault_t map_afu_irq(struct mm_area *vma, unsigned long address, u64 offset, struct ocxl_context *ctx) { u64 trigger_addr; @@ -108,7 +108,7 @@ static vm_fault_t map_afu_irq(struct vm_area_struct *vma, unsigned long address, return vmf_insert_pfn(vma, address, trigger_addr >> PAGE_SHIFT); } -static vm_fault_t map_pp_mmio(struct vm_area_struct *vma, unsigned long address, +static vm_fault_t map_pp_mmio(struct mm_area *vma, unsigned long address, u64 offset, struct ocxl_context *ctx) { u64 pp_mmio_addr; @@ -138,7 +138,7 @@ static vm_fault_t map_pp_mmio(struct vm_area_struct *vma, unsigned long address, static vm_fault_t ocxl_mmap_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ocxl_context *ctx = vma->vm_file->private_data; u64 offset; vm_fault_t ret; @@ -159,7 +159,7 @@ static const struct vm_operations_struct ocxl_vmops = { }; static int check_mmap_afu_irq(struct ocxl_context *ctx, - struct vm_area_struct *vma) + struct mm_area *vma) { int irq_id = ocxl_irq_offset_to_id(ctx, vma->vm_pgoff << PAGE_SHIFT); @@ -185,7 +185,7 @@ static int check_mmap_afu_irq(struct ocxl_context *ctx, } static int check_mmap_mmio(struct ocxl_context *ctx, - struct vm_area_struct *vma) + struct mm_area *vma) { if ((vma_pages(vma) + vma->vm_pgoff) > (ctx->afu->config.pp_mmio_stride >> PAGE_SHIFT)) @@ -193,7 +193,7 @@ static int check_mmap_mmio(struct ocxl_context *ctx, return 0; } -int ocxl_context_mmap(struct ocxl_context *ctx, struct vm_area_struct *vma) +int ocxl_context_mmap(struct ocxl_context *ctx, struct mm_area *vma) { int rc; diff --git a/drivers/misc/ocxl/file.c b/drivers/misc/ocxl/file.c index 7eb74711ac96..68ce28450ac8 100644 --- a/drivers/misc/ocxl/file.c +++ b/drivers/misc/ocxl/file.c @@ -289,7 +289,7 @@ static long afu_compat_ioctl(struct file *file, unsigned int cmd, return afu_ioctl(file, cmd, args); } -static int afu_mmap(struct file *file, struct vm_area_struct *vma) +static int afu_mmap(struct file *file, struct mm_area *vma) { struct ocxl_context *ctx = file->private_data; diff --git a/drivers/misc/ocxl/ocxl_internal.h b/drivers/misc/ocxl/ocxl_internal.h index d2028d6c6f08..4008b894d983 100644 --- a/drivers/misc/ocxl/ocxl_internal.h +++ b/drivers/misc/ocxl/ocxl_internal.h @@ -139,7 +139,7 @@ int ocxl_config_check_afu_index(struct pci_dev *dev, int ocxl_link_update_pe(void *link_handle, int pasid, __u16 tid); int ocxl_context_mmap(struct ocxl_context *ctx, - struct vm_area_struct *vma); + struct mm_area *vma); void ocxl_context_detach_all(struct ocxl_afu *afu); int ocxl_sysfs_register_afu(struct ocxl_file_info *info); diff --git a/drivers/misc/ocxl/sysfs.c b/drivers/misc/ocxl/sysfs.c index e849641687a0..2ba0dc539358 100644 --- a/drivers/misc/ocxl/sysfs.c +++ b/drivers/misc/ocxl/sysfs.c @@ -108,7 +108,7 @@ static ssize_t global_mmio_read(struct file *filp, struct kobject *kobj, static vm_fault_t global_mmio_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct ocxl_afu *afu = vma->vm_private_data; unsigned long offset; @@ -126,7 +126,7 @@ static const struct vm_operations_struct global_mmio_vmops = { static int global_mmio_mmap(struct file *filp, struct kobject *kobj, const struct bin_attribute *bin_attr, - struct vm_area_struct *vma) + struct mm_area *vma) { struct ocxl_afu *afu = to_afu(kobj_to_dev(kobj)); diff --git a/drivers/misc/open-dice.c b/drivers/misc/open-dice.c index 24c29e0f00ef..d763a0bd0c8a 100644 --- a/drivers/misc/open-dice.c +++ b/drivers/misc/open-dice.c @@ -86,7 +86,7 @@ static ssize_t open_dice_write(struct file *filp, const char __user *ptr, /* * Creates a mapping of the reserved memory region in user address space. */ -static int open_dice_mmap(struct file *filp, struct vm_area_struct *vma) +static int open_dice_mmap(struct file *filp, struct mm_area *vma) { struct open_dice_drvdata *drvdata = to_open_dice_drvdata(filp); diff --git a/drivers/misc/sgi-gru/grufault.c b/drivers/misc/sgi-gru/grufault.c index 3557d78ee47a..a97dde2c3775 100644 --- a/drivers/misc/sgi-gru/grufault.c +++ b/drivers/misc/sgi-gru/grufault.c @@ -45,9 +45,9 @@ static inline int is_gru_paddr(unsigned long paddr) /* * Find the vma of a GRU segment. Caller must hold mmap_lock. */ -struct vm_area_struct *gru_find_vma(unsigned long vaddr) +struct mm_area *gru_find_vma(unsigned long vaddr) { - struct vm_area_struct *vma; + struct mm_area *vma; vma = vma_lookup(current->mm, vaddr); if (vma && vma->vm_ops == &gru_vm_ops) @@ -66,7 +66,7 @@ struct vm_area_struct *gru_find_vma(unsigned long vaddr) static struct gru_thread_state *gru_find_lock_gts(unsigned long vaddr) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct gru_thread_state *gts = NULL; mmap_read_lock(mm); @@ -83,7 +83,7 @@ static struct gru_thread_state *gru_find_lock_gts(unsigned long vaddr) static struct gru_thread_state *gru_alloc_locked_gts(unsigned long vaddr) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct gru_thread_state *gts = ERR_PTR(-EINVAL); mmap_write_lock(mm); @@ -174,7 +174,7 @@ static void get_clear_fault_map(struct gru_state *gru, * < 0 - error code * 1 - (atomic only) try again in non-atomic context */ -static int non_atomic_pte_lookup(struct vm_area_struct *vma, +static int non_atomic_pte_lookup(struct mm_area *vma, unsigned long vaddr, int write, unsigned long *paddr, int *pageshift) { @@ -202,7 +202,7 @@ static int non_atomic_pte_lookup(struct vm_area_struct *vma, * NOTE: mmap_lock is already held on entry to this function. This * guarantees existence of the page tables. */ -static int atomic_pte_lookup(struct vm_area_struct *vma, unsigned long vaddr, +static int atomic_pte_lookup(struct mm_area *vma, unsigned long vaddr, int write, unsigned long *paddr, int *pageshift) { pgd_t *pgdp; @@ -253,7 +253,7 @@ static int gru_vtop(struct gru_thread_state *gts, unsigned long vaddr, int write, int atomic, unsigned long *gpa, int *pageshift) { struct mm_struct *mm = gts->ts_mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long paddr; int ret, ps; diff --git a/drivers/misc/sgi-gru/grufile.c b/drivers/misc/sgi-gru/grufile.c index e755690c9805..b831fdb27841 100644 --- a/drivers/misc/sgi-gru/grufile.c +++ b/drivers/misc/sgi-gru/grufile.c @@ -58,7 +58,7 @@ static int gru_supported(void) * Called when unmapping a device mapping. Frees all gru resources * and tables belonging to the vma. */ -static void gru_vma_close(struct vm_area_struct *vma) +static void gru_vma_close(struct mm_area *vma) { struct gru_vma_data *vdata; struct gru_thread_state *gts; @@ -92,7 +92,7 @@ static void gru_vma_close(struct vm_area_struct *vma) * and private data structure necessary to allocate, track, and free the * underlying pages. */ -static int gru_file_mmap(struct file *file, struct vm_area_struct *vma) +static int gru_file_mmap(struct file *file, struct mm_area *vma) { if ((vma->vm_flags & (VM_SHARED | VM_WRITE)) != (VM_SHARED | VM_WRITE)) return -EPERM; @@ -121,7 +121,7 @@ static int gru_file_mmap(struct file *file, struct vm_area_struct *vma) static int gru_create_new_context(unsigned long arg) { struct gru_create_context_req req; - struct vm_area_struct *vma; + struct mm_area *vma; struct gru_vma_data *vdata; int ret = -EINVAL; diff --git a/drivers/misc/sgi-gru/grumain.c b/drivers/misc/sgi-gru/grumain.c index 3036c15f3689..96374726d7e6 100644 --- a/drivers/misc/sgi-gru/grumain.c +++ b/drivers/misc/sgi-gru/grumain.c @@ -303,7 +303,7 @@ static struct gru_thread_state *gru_find_current_gts_nolock(struct gru_vma_data /* * Allocate a thread state structure. */ -struct gru_thread_state *gru_alloc_gts(struct vm_area_struct *vma, +struct gru_thread_state *gru_alloc_gts(struct mm_area *vma, int cbr_au_count, int dsr_au_count, unsigned char tlb_preload_count, int options, int tsid) { @@ -352,7 +352,7 @@ struct gru_thread_state *gru_alloc_gts(struct vm_area_struct *vma, /* * Allocate a vma private data structure. */ -struct gru_vma_data *gru_alloc_vma_data(struct vm_area_struct *vma, int tsid) +struct gru_vma_data *gru_alloc_vma_data(struct mm_area *vma, int tsid) { struct gru_vma_data *vdata = NULL; @@ -370,7 +370,7 @@ struct gru_vma_data *gru_alloc_vma_data(struct vm_area_struct *vma, int tsid) /* * Find the thread state structure for the current thread. */ -struct gru_thread_state *gru_find_thread_state(struct vm_area_struct *vma, +struct gru_thread_state *gru_find_thread_state(struct mm_area *vma, int tsid) { struct gru_vma_data *vdata = vma->vm_private_data; @@ -387,7 +387,7 @@ struct gru_thread_state *gru_find_thread_state(struct vm_area_struct *vma, * Allocate a new thread state for a GSEG. Note that races may allow * another thread to race to create a gts. */ -struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct *vma, +struct gru_thread_state *gru_alloc_thread_state(struct mm_area *vma, int tsid) { struct gru_vma_data *vdata = vma->vm_private_data; @@ -920,7 +920,7 @@ struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts) */ vm_fault_t gru_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct gru_thread_state *gts; unsigned long paddr, vaddr; unsigned long expires; diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h index 640daf1994df..cd0756f1e7c4 100644 --- a/drivers/misc/sgi-gru/grutables.h +++ b/drivers/misc/sgi-gru/grutables.h @@ -337,7 +337,7 @@ struct gru_thread_state { struct mutex ts_ctxlock; /* load/unload CTX lock */ struct mm_struct *ts_mm; /* mm currently mapped to context */ - struct vm_area_struct *ts_vma; /* vma of GRU context */ + struct mm_area *ts_vma; /* vma of GRU context */ struct gru_state *ts_gru; /* GRU where the context is loaded */ struct gru_mm_struct *ts_gms; /* asid & ioproc struct */ @@ -607,11 +607,11 @@ struct gru_unload_context_req; extern const struct vm_operations_struct gru_vm_ops; extern struct device *grudev; -extern struct gru_vma_data *gru_alloc_vma_data(struct vm_area_struct *vma, +extern struct gru_vma_data *gru_alloc_vma_data(struct mm_area *vma, int tsid); -extern struct gru_thread_state *gru_find_thread_state(struct vm_area_struct +extern struct gru_thread_state *gru_find_thread_state(struct mm_area *vma, int tsid); -extern struct gru_thread_state *gru_alloc_thread_state(struct vm_area_struct +extern struct gru_thread_state *gru_alloc_thread_state(struct mm_area *vma, int tsid); extern struct gru_state *gru_assign_gru_context(struct gru_thread_state *gts); extern void gru_load_context(struct gru_thread_state *gts); @@ -634,12 +634,12 @@ extern int gru_get_exception_detail(unsigned long arg); extern int gru_set_context_option(unsigned long address); extern int gru_check_context_placement(struct gru_thread_state *gts); extern int gru_cpu_fault_map_id(void); -extern struct vm_area_struct *gru_find_vma(unsigned long vaddr); +extern struct mm_area *gru_find_vma(unsigned long vaddr); extern void gru_flush_all_tlb(struct gru_state *gru); extern int gru_proc_init(void); extern void gru_proc_exit(void); -extern struct gru_thread_state *gru_alloc_gts(struct vm_area_struct *vma, +extern struct gru_thread_state *gru_alloc_gts(struct mm_area *vma, int cbr_au_count, int dsr_au_count, unsigned char tlb_preload_count, int options, int tsid); extern unsigned long gru_reserve_cb_resources(struct gru_state *gru, diff --git a/drivers/misc/uacce/uacce.c b/drivers/misc/uacce/uacce.c index bdc2e6fda782..316f5f5af318 100644 --- a/drivers/misc/uacce/uacce.c +++ b/drivers/misc/uacce/uacce.c @@ -200,7 +200,7 @@ static int uacce_fops_release(struct inode *inode, struct file *filep) return 0; } -static void uacce_vma_close(struct vm_area_struct *vma) +static void uacce_vma_close(struct mm_area *vma) { struct uacce_queue *q = vma->vm_private_data; @@ -218,7 +218,7 @@ static const struct vm_operations_struct uacce_vm_ops = { .close = uacce_vma_close, }; -static int uacce_fops_mmap(struct file *filep, struct vm_area_struct *vma) +static int uacce_fops_mmap(struct file *filep, struct mm_area *vma) { struct uacce_queue *q = filep->private_data; struct uacce_device *uacce = q->uacce; diff --git a/drivers/mtd/mtdchar.c b/drivers/mtd/mtdchar.c index 8dc4f5c493fc..389461af2b3e 100644 --- a/drivers/mtd/mtdchar.c +++ b/drivers/mtd/mtdchar.c @@ -1374,7 +1374,7 @@ static unsigned mtdchar_mmap_capabilities(struct file *file) /* * set up a mapping for shared memory segments */ -static int mtdchar_mmap(struct file *file, struct vm_area_struct *vma) +static int mtdchar_mmap(struct file *file, struct mm_area *vma) { #ifdef CONFIG_MMU struct mtd_file_info *mfi = file->private_data; diff --git a/drivers/pci/mmap.c b/drivers/pci/mmap.c index 8da3347a95c4..183568aa7b8c 100644 --- a/drivers/pci/mmap.c +++ b/drivers/pci/mmap.c @@ -22,7 +22,7 @@ static const struct vm_operations_struct pci_phys_vm_ops = { }; int pci_mmap_resource_range(struct pci_dev *pdev, int bar, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_state, int write_combine) { unsigned long size; @@ -56,7 +56,7 @@ int pci_mmap_resource_range(struct pci_dev *pdev, int bar, #if (defined(CONFIG_SYSFS) || defined(CONFIG_PROC_FS)) && \ (defined(HAVE_PCI_MMAP) || defined(ARCH_GENERIC_PCI_MMAP_RESOURCE)) -int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vma, +int pci_mmap_fits(struct pci_dev *pdev, int resno, struct mm_area *vma, enum pci_mmap_api mmap_api) { resource_size_t pci_start = 0, pci_end; diff --git a/drivers/pci/p2pdma.c b/drivers/pci/p2pdma.c index 19214ec81fbb..ba40bd4cb2a1 100644 --- a/drivers/pci/p2pdma.c +++ b/drivers/pci/p2pdma.c @@ -90,7 +90,7 @@ static ssize_t published_show(struct device *dev, struct device_attribute *attr, static DEVICE_ATTR_RO(published); static int p2pmem_alloc_mmap(struct file *filp, struct kobject *kobj, - const struct bin_attribute *attr, struct vm_area_struct *vma) + const struct bin_attribute *attr, struct mm_area *vma) { struct pci_dev *pdev = to_pci_dev(kobj_to_dev(kobj)); size_t len = vma->vm_end - vma->vm_start; diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c index c6cda56ca52c..4ceec1061fe5 100644 --- a/drivers/pci/pci-sysfs.c +++ b/drivers/pci/pci-sysfs.c @@ -930,7 +930,7 @@ static ssize_t pci_write_legacy_io(struct file *filp, struct kobject *kobj, * @filp: open sysfs file * @kobj: kobject corresponding to device to be mapped * @attr: struct bin_attribute for this file - * @vma: struct vm_area_struct passed to mmap + * @vma: struct mm_area passed to mmap * * Uses an arch specific callback, pci_mmap_legacy_mem_page_range, to mmap * legacy memory space (first meg of bus space) into application virtual @@ -938,7 +938,7 @@ static ssize_t pci_write_legacy_io(struct file *filp, struct kobject *kobj, */ static int pci_mmap_legacy_mem(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { struct pci_bus *bus = to_pci_bus(kobj_to_dev(kobj)); @@ -950,7 +950,7 @@ static int pci_mmap_legacy_mem(struct file *filp, struct kobject *kobj, * @filp: open sysfs file * @kobj: kobject corresponding to device to be mapped * @attr: struct bin_attribute for this file - * @vma: struct vm_area_struct passed to mmap + * @vma: struct mm_area passed to mmap * * Uses an arch specific callback, pci_mmap_legacy_io_page_range, to mmap * legacy IO space (first meg of bus space) into application virtual @@ -958,7 +958,7 @@ static int pci_mmap_legacy_mem(struct file *filp, struct kobject *kobj, */ static int pci_mmap_legacy_io(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { struct pci_bus *bus = to_pci_bus(kobj_to_dev(kobj)); @@ -1056,13 +1056,13 @@ void pci_remove_legacy_files(struct pci_bus *b) * pci_mmap_resource - map a PCI resource into user memory space * @kobj: kobject for mapping * @attr: struct bin_attribute for the file being mapped - * @vma: struct vm_area_struct passed into the mmap + * @vma: struct mm_area passed into the mmap * @write_combine: 1 for write_combine mapping * * Use the regular PCI mapping routines to map a PCI resource into userspace. */ static int pci_mmap_resource(struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma, int write_combine) + struct mm_area *vma, int write_combine) { struct pci_dev *pdev = to_pci_dev(kobj_to_dev(kobj)); int bar = (unsigned long)attr->private; @@ -1087,14 +1087,14 @@ static int pci_mmap_resource(struct kobject *kobj, const struct bin_attribute *a static int pci_mmap_resource_uc(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { return pci_mmap_resource(kobj, attr, vma, 0); } static int pci_mmap_resource_wc(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { return pci_mmap_resource(kobj, attr, vma, 1); } diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index b81e99cd4b62..3595cd20c401 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -99,7 +99,7 @@ enum pci_mmap_api { PCI_MMAP_SYSFS, /* mmap on /sys/bus/pci/devices//resource */ PCI_MMAP_PROCFS /* mmap on /proc/bus/pci/ */ }; -int pci_mmap_fits(struct pci_dev *pdev, int resno, struct vm_area_struct *vmai, +int pci_mmap_fits(struct pci_dev *pdev, int resno, struct mm_area *vmai, enum pci_mmap_api mmap_api); bool pci_reset_supported(struct pci_dev *dev); diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c index 9348a0fb8084..bb9b1a16c6b4 100644 --- a/drivers/pci/proc.c +++ b/drivers/pci/proc.c @@ -240,7 +240,7 @@ static long proc_bus_pci_ioctl(struct file *file, unsigned int cmd, } #ifdef HAVE_PCI_MMAP -static int proc_bus_pci_mmap(struct file *file, struct vm_area_struct *vma) +static int proc_bus_pci_mmap(struct file *file, struct mm_area *vma) { struct pci_dev *dev = pde_data(file_inode(file)); struct pci_filp_private *fpriv = file->private_data; diff --git a/drivers/platform/x86/intel/pmt/class.c b/drivers/platform/x86/intel/pmt/class.c index 7233b654bbad..1757c1109a16 100644 --- a/drivers/platform/x86/intel/pmt/class.c +++ b/drivers/platform/x86/intel/pmt/class.c @@ -105,7 +105,7 @@ intel_pmt_read(struct file *filp, struct kobject *kobj, static int intel_pmt_mmap(struct file *filp, struct kobject *kobj, - const struct bin_attribute *attr, struct vm_area_struct *vma) + const struct bin_attribute *attr, struct mm_area *vma) { struct intel_pmt_entry *entry = container_of(attr, struct intel_pmt_entry, diff --git a/drivers/ptp/ptp_vmclock.c b/drivers/ptp/ptp_vmclock.c index b3a83b03d9c1..b1dddbc99ce7 100644 --- a/drivers/ptp/ptp_vmclock.c +++ b/drivers/ptp/ptp_vmclock.c @@ -357,7 +357,7 @@ static struct ptp_clock *vmclock_ptp_register(struct device *dev, return ptp_clock_register(&st->ptp_clock_info, dev); } -static int vmclock_miscdev_mmap(struct file *fp, struct vm_area_struct *vma) +static int vmclock_miscdev_mmap(struct file *fp, struct mm_area *vma) { struct vmclock_state *st = container_of(fp->private_data, struct vmclock_state, miscdev); diff --git a/drivers/rapidio/devices/rio_mport_cdev.c b/drivers/rapidio/devices/rio_mport_cdev.c index cbf531d0ba68..e6f7cd47e550 100644 --- a/drivers/rapidio/devices/rio_mport_cdev.c +++ b/drivers/rapidio/devices/rio_mport_cdev.c @@ -2173,7 +2173,7 @@ static void mport_release_mapping(struct kref *ref) kfree(map); } -static void mport_mm_open(struct vm_area_struct *vma) +static void mport_mm_open(struct mm_area *vma) { struct rio_mport_mapping *map = vma->vm_private_data; @@ -2181,7 +2181,7 @@ static void mport_mm_open(struct vm_area_struct *vma) kref_get(&map->ref); } -static void mport_mm_close(struct vm_area_struct *vma) +static void mport_mm_close(struct mm_area *vma) { struct rio_mport_mapping *map = vma->vm_private_data; @@ -2196,7 +2196,7 @@ static const struct vm_operations_struct vm_ops = { .close = mport_mm_close, }; -static int mport_cdev_mmap(struct file *filp, struct vm_area_struct *vma) +static int mport_cdev_mmap(struct file *filp, struct mm_area *vma) { struct mport_cdev_priv *priv = filp->private_data; struct mport_dev *md; diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c index 6524a4a19109..20e2687a4cc7 100644 --- a/drivers/sbus/char/flash.c +++ b/drivers/sbus/char/flash.c @@ -31,7 +31,7 @@ static struct { } flash; static int -flash_mmap(struct file *file, struct vm_area_struct *vma) +flash_mmap(struct file *file, struct mm_area *vma) { unsigned long addr; unsigned long size; diff --git a/drivers/sbus/char/oradax.c b/drivers/sbus/char/oradax.c index a536dd6f4f7c..151f9f99565f 100644 --- a/drivers/sbus/char/oradax.c +++ b/drivers/sbus/char/oradax.c @@ -208,7 +208,7 @@ static ssize_t dax_read(struct file *filp, char __user *buf, size_t count, loff_t *ppos); static ssize_t dax_write(struct file *filp, const char __user *buf, size_t count, loff_t *ppos); -static int dax_devmap(struct file *f, struct vm_area_struct *vma); +static int dax_devmap(struct file *f, struct mm_area *vma); static int dax_close(struct inode *i, struct file *f); static const struct file_operations dax_fops = { @@ -368,7 +368,7 @@ static void __exit dax_detach(void) module_exit(dax_detach); /* map completion area */ -static int dax_devmap(struct file *f, struct vm_area_struct *vma) +static int dax_devmap(struct file *f, struct mm_area *vma) { struct dax_ctx *ctx = (struct dax_ctx *)f->private_data; size_t len = vma->vm_end - vma->vm_start; diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c index effb7e768165..a20fc2341c3c 100644 --- a/drivers/scsi/sg.c +++ b/drivers/scsi/sg.c @@ -1214,7 +1214,7 @@ sg_fasync(int fd, struct file *filp, int mode) static vm_fault_t sg_vma_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; Sg_fd *sfp; unsigned long offset, len, sa; Sg_scatter_hold *rsv_schp; @@ -1253,7 +1253,7 @@ static const struct vm_operations_struct sg_mmap_vm_ops = { }; static int -sg_mmap(struct file *filp, struct vm_area_struct *vma) +sg_mmap(struct file *filp, struct mm_area *vma) { Sg_fd *sfp; unsigned long req_sz, len, sa; diff --git a/drivers/soc/aspeed/aspeed-lpc-ctrl.c b/drivers/soc/aspeed/aspeed-lpc-ctrl.c index ee58151bd69e..9a64d76880a9 100644 --- a/drivers/soc/aspeed/aspeed-lpc-ctrl.c +++ b/drivers/soc/aspeed/aspeed-lpc-ctrl.c @@ -46,7 +46,7 @@ static struct aspeed_lpc_ctrl *file_aspeed_lpc_ctrl(struct file *file) miscdev); } -static int aspeed_lpc_ctrl_mmap(struct file *file, struct vm_area_struct *vma) +static int aspeed_lpc_ctrl_mmap(struct file *file, struct mm_area *vma) { struct aspeed_lpc_ctrl *lpc_ctrl = file_aspeed_lpc_ctrl(file); unsigned long vsize = vma->vm_end - vma->vm_start; diff --git a/drivers/soc/aspeed/aspeed-p2a-ctrl.c b/drivers/soc/aspeed/aspeed-p2a-ctrl.c index 6cc943744e12..8ad07f33f25c 100644 --- a/drivers/soc/aspeed/aspeed-p2a-ctrl.c +++ b/drivers/soc/aspeed/aspeed-p2a-ctrl.c @@ -97,7 +97,7 @@ static void aspeed_p2a_disable_bridge(struct aspeed_p2a_ctrl *p2a_ctrl) regmap_update_bits(p2a_ctrl->regmap, SCU180, SCU180_ENP2A, 0); } -static int aspeed_p2a_mmap(struct file *file, struct vm_area_struct *vma) +static int aspeed_p2a_mmap(struct file *file, struct mm_area *vma) { unsigned long vsize; pgprot_t prot; diff --git a/drivers/soc/qcom/rmtfs_mem.c b/drivers/soc/qcom/rmtfs_mem.c index 1b32469f2789..f07526023635 100644 --- a/drivers/soc/qcom/rmtfs_mem.c +++ b/drivers/soc/qcom/rmtfs_mem.c @@ -129,7 +129,7 @@ static const struct class rmtfs_class = { .name = "rmtfs", }; -static int qcom_rmtfs_mem_mmap(struct file *filep, struct vm_area_struct *vma) +static int qcom_rmtfs_mem_mmap(struct file *filep, struct mm_area *vma) { struct qcom_rmtfs_mem *rmtfs_mem = filep->private_data; diff --git a/drivers/staging/media/atomisp/include/hmm/hmm.h b/drivers/staging/media/atomisp/include/hmm/hmm.h index a7aef27f54de..6c20072ca7e0 100644 --- a/drivers/staging/media/atomisp/include/hmm/hmm.h +++ b/drivers/staging/media/atomisp/include/hmm/hmm.h @@ -63,7 +63,7 @@ void hmm_flush_vmap(ia_css_ptr virt); * virt must be the start address of ISP memory (return by hmm_alloc), * do not pass any other address. */ -int hmm_mmap(struct vm_area_struct *vma, ia_css_ptr virt); +int hmm_mmap(struct mm_area *vma, ia_css_ptr virt); extern struct hmm_bo_device bo_device; diff --git a/drivers/staging/media/atomisp/include/hmm/hmm_bo.h b/drivers/staging/media/atomisp/include/hmm/hmm_bo.h index e09ac29ac43d..9546a39e747b 100644 --- a/drivers/staging/media/atomisp/include/hmm/hmm_bo.h +++ b/drivers/staging/media/atomisp/include/hmm/hmm_bo.h @@ -232,7 +232,7 @@ void hmm_bo_vunmap(struct hmm_buffer_object *bo); * * vma->vm_flags will be set to (VM_RESERVED | VM_IO). */ -int hmm_bo_mmap(struct vm_area_struct *vma, +int hmm_bo_mmap(struct mm_area *vma, struct hmm_buffer_object *bo); /* diff --git a/drivers/staging/media/atomisp/pci/hmm/hmm.c b/drivers/staging/media/atomisp/pci/hmm/hmm.c index 84102c3aaf97..64712310f850 100644 --- a/drivers/staging/media/atomisp/pci/hmm/hmm.c +++ b/drivers/staging/media/atomisp/pci/hmm/hmm.c @@ -522,7 +522,7 @@ phys_addr_t hmm_virt_to_phys(ia_css_ptr virt) return page_to_phys(bo->pages[idx]) + offset; } -int hmm_mmap(struct vm_area_struct *vma, ia_css_ptr virt) +int hmm_mmap(struct mm_area *vma, ia_css_ptr virt) { struct hmm_buffer_object *bo; diff --git a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c index 224ca8d42721..15c48650d883 100644 --- a/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c +++ b/drivers/staging/media/atomisp/pci/hmm/hmm_bo.c @@ -974,7 +974,7 @@ void hmm_bo_unref(struct hmm_buffer_object *bo) kref_put(&bo->kref, kref_hmm_bo_release); } -static void hmm_bo_vm_open(struct vm_area_struct *vma) +static void hmm_bo_vm_open(struct mm_area *vma) { struct hmm_buffer_object *bo = (struct hmm_buffer_object *)vma->vm_private_data; @@ -992,7 +992,7 @@ static void hmm_bo_vm_open(struct vm_area_struct *vma) mutex_unlock(&bo->mutex); } -static void hmm_bo_vm_close(struct vm_area_struct *vma) +static void hmm_bo_vm_close(struct mm_area *vma) { struct hmm_buffer_object *bo = (struct hmm_buffer_object *)vma->vm_private_data; @@ -1021,7 +1021,7 @@ static const struct vm_operations_struct hmm_bo_vm_ops = { /* * mmap the bo to user space. */ -int hmm_bo_mmap(struct vm_area_struct *vma, struct hmm_buffer_object *bo) +int hmm_bo_mmap(struct mm_area *vma, struct hmm_buffer_object *bo) { unsigned int start, end; unsigned int virt; diff --git a/drivers/staging/vme_user/vme.c b/drivers/staging/vme_user/vme.c index 42304c9f83a2..ed589a97da4f 100644 --- a/drivers/staging/vme_user/vme.c +++ b/drivers/staging/vme_user/vme.c @@ -745,7 +745,7 @@ EXPORT_SYMBOL(vme_master_rmw); * resource or -EFAULT if map exceeds window size. Other generic mmap * errors may also be returned. */ -int vme_master_mmap(struct vme_resource *resource, struct vm_area_struct *vma) +int vme_master_mmap(struct vme_resource *resource, struct mm_area *vma) { struct vme_bridge *bridge = find_bridge(resource); struct vme_master_resource *image; diff --git a/drivers/staging/vme_user/vme.h b/drivers/staging/vme_user/vme.h index 7753e736f9fd..a1505b68907f 100644 --- a/drivers/staging/vme_user/vme.h +++ b/drivers/staging/vme_user/vme.h @@ -151,7 +151,7 @@ ssize_t vme_master_read(struct vme_resource *, void *, size_t, loff_t); ssize_t vme_master_write(struct vme_resource *, void *, size_t, loff_t); unsigned int vme_master_rmw(struct vme_resource *, unsigned int, unsigned int, unsigned int, loff_t); -int vme_master_mmap(struct vme_resource *resource, struct vm_area_struct *vma); +int vme_master_mmap(struct vme_resource *resource, struct mm_area *vma); void vme_master_free(struct vme_resource *); struct vme_resource *vme_dma_request(struct vme_dev *, u32); diff --git a/drivers/staging/vme_user/vme_user.c b/drivers/staging/vme_user/vme_user.c index 5829a4141561..fd777648698d 100644 --- a/drivers/staging/vme_user/vme_user.c +++ b/drivers/staging/vme_user/vme_user.c @@ -424,14 +424,14 @@ vme_user_unlocked_ioctl(struct file *file, unsigned int cmd, unsigned long arg) return ret; } -static void vme_user_vm_open(struct vm_area_struct *vma) +static void vme_user_vm_open(struct mm_area *vma) { struct vme_user_vma_priv *vma_priv = vma->vm_private_data; refcount_inc(&vma_priv->refcnt); } -static void vme_user_vm_close(struct vm_area_struct *vma) +static void vme_user_vm_close(struct mm_area *vma) { struct vme_user_vma_priv *vma_priv = vma->vm_private_data; unsigned int minor = vma_priv->minor; @@ -451,7 +451,7 @@ static const struct vm_operations_struct vme_user_vm_ops = { .close = vme_user_vm_close, }; -static int vme_user_master_mmap(unsigned int minor, struct vm_area_struct *vma) +static int vme_user_master_mmap(unsigned int minor, struct mm_area *vma) { int err; struct vme_user_vma_priv *vma_priv; @@ -482,7 +482,7 @@ static int vme_user_master_mmap(unsigned int minor, struct vm_area_struct *vma) return 0; } -static int vme_user_mmap(struct file *file, struct vm_area_struct *vma) +static int vme_user_mmap(struct file *file, struct mm_area *vma) { unsigned int minor = iminor(file_inode(file)); diff --git a/drivers/target/target_core_user.c b/drivers/target/target_core_user.c index 0f5d820af119..eaff895205b4 100644 --- a/drivers/target/target_core_user.c +++ b/drivers/target/target_core_user.c @@ -1823,7 +1823,7 @@ static int tcmu_irqcontrol(struct uio_info *info, s32 irq_on) * mmap code from uio.c. Copied here because we want to hook mmap() * and this stuff must come along. */ -static int tcmu_find_mem_index(struct vm_area_struct *vma) +static int tcmu_find_mem_index(struct mm_area *vma) { struct tcmu_dev *udev = vma->vm_private_data; struct uio_info *info = &udev->uio_info; @@ -1860,7 +1860,7 @@ static struct page *tcmu_try_get_data_page(struct tcmu_dev *udev, uint32_t dpi) return NULL; } -static void tcmu_vma_open(struct vm_area_struct *vma) +static void tcmu_vma_open(struct mm_area *vma) { struct tcmu_dev *udev = vma->vm_private_data; @@ -1869,7 +1869,7 @@ static void tcmu_vma_open(struct vm_area_struct *vma) kref_get(&udev->kref); } -static void tcmu_vma_close(struct vm_area_struct *vma) +static void tcmu_vma_close(struct mm_area *vma) { struct tcmu_dev *udev = vma->vm_private_data; @@ -1924,7 +1924,7 @@ static const struct vm_operations_struct tcmu_vm_ops = { .fault = tcmu_vma_fault, }; -static int tcmu_mmap(struct uio_info *info, struct vm_area_struct *vma) +static int tcmu_mmap(struct uio_info *info, struct mm_area *vma) { struct tcmu_dev *udev = container_of(info, struct tcmu_dev, uio_info); diff --git a/drivers/tee/optee/call.c b/drivers/tee/optee/call.c index 16eb953e14bb..24db89ca4e26 100644 --- a/drivers/tee/optee/call.c +++ b/drivers/tee/optee/call.c @@ -611,7 +611,7 @@ static bool is_normal_memory(pgprot_t p) static int __check_mem_type(struct mm_struct *mm, unsigned long start, unsigned long end) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, start); for_each_vma_range(vmi, vma, end) { diff --git a/drivers/tee/tee_shm.c b/drivers/tee/tee_shm.c index daf6e5cfd59a..c6b120e0d3ae 100644 --- a/drivers/tee/tee_shm.c +++ b/drivers/tee/tee_shm.c @@ -434,7 +434,7 @@ static int tee_shm_fop_release(struct inode *inode, struct file *filp) return 0; } -static int tee_shm_fop_mmap(struct file *filp, struct vm_area_struct *vma) +static int tee_shm_fop_mmap(struct file *filp, struct mm_area *vma) { struct tee_shm *shm = filp->private_data; size_t size = vma->vm_end - vma->vm_start; diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c index d93ed4e86a17..93d41eddc33c 100644 --- a/drivers/uio/uio.c +++ b/drivers/uio/uio.c @@ -669,7 +669,7 @@ static ssize_t uio_write(struct file *filep, const char __user *buf, return retval ? retval : sizeof(s32); } -static int uio_find_mem_index(struct vm_area_struct *vma) +static int uio_find_mem_index(struct mm_area *vma) { struct uio_device *idev = vma->vm_private_data; @@ -726,7 +726,7 @@ static const struct vm_operations_struct uio_logical_vm_ops = { .fault = uio_vma_fault, }; -static int uio_mmap_logical(struct vm_area_struct *vma) +static int uio_mmap_logical(struct mm_area *vma) { vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); vma->vm_ops = &uio_logical_vm_ops; @@ -739,7 +739,7 @@ static const struct vm_operations_struct uio_physical_vm_ops = { #endif }; -static int uio_mmap_physical(struct vm_area_struct *vma) +static int uio_mmap_physical(struct mm_area *vma) { struct uio_device *idev = vma->vm_private_data; int mi = uio_find_mem_index(vma); @@ -774,7 +774,7 @@ static int uio_mmap_physical(struct vm_area_struct *vma) vma->vm_page_prot); } -static int uio_mmap_dma_coherent(struct vm_area_struct *vma) +static int uio_mmap_dma_coherent(struct mm_area *vma) { struct uio_device *idev = vma->vm_private_data; struct uio_mem *mem; @@ -817,7 +817,7 @@ static int uio_mmap_dma_coherent(struct vm_area_struct *vma) return ret; } -static int uio_mmap(struct file *filep, struct vm_area_struct *vma) +static int uio_mmap(struct file *filep, struct mm_area *vma) { struct uio_listener *listener = filep->private_data; struct uio_device *idev = listener->dev; diff --git a/drivers/uio/uio_hv_generic.c b/drivers/uio/uio_hv_generic.c index 1b19b5647495..5283c75d0860 100644 --- a/drivers/uio/uio_hv_generic.c +++ b/drivers/uio/uio_hv_generic.c @@ -136,7 +136,7 @@ static void hv_uio_rescind(struct vmbus_channel *channel) */ static int hv_uio_ring_mmap(struct file *filp, struct kobject *kobj, const struct bin_attribute *attr, - struct vm_area_struct *vma) + struct mm_area *vma) { struct vmbus_channel *channel = container_of(kobj, struct vmbus_channel, kobj); diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c index f6ce6e26e0d4..328bdbc57cf0 100644 --- a/drivers/usb/core/devio.c +++ b/drivers/usb/core/devio.c @@ -205,7 +205,7 @@ static void dec_usb_memory_use_count(struct usb_memory *usbm, int *count) } } -static void usbdev_vm_open(struct vm_area_struct *vma) +static void usbdev_vm_open(struct mm_area *vma) { struct usb_memory *usbm = vma->vm_private_data; unsigned long flags; @@ -215,7 +215,7 @@ static void usbdev_vm_open(struct vm_area_struct *vma) spin_unlock_irqrestore(&usbm->ps->lock, flags); } -static void usbdev_vm_close(struct vm_area_struct *vma) +static void usbdev_vm_close(struct mm_area *vma) { struct usb_memory *usbm = vma->vm_private_data; @@ -227,7 +227,7 @@ static const struct vm_operations_struct usbdev_vm_ops = { .close = usbdev_vm_close }; -static int usbdev_mmap(struct file *file, struct vm_area_struct *vma) +static int usbdev_mmap(struct file *file, struct mm_area *vma) { struct usb_memory *usbm = NULL; struct usb_dev_state *ps = file->private_data; diff --git a/drivers/usb/gadget/function/uvc_queue.c b/drivers/usb/gadget/function/uvc_queue.c index 9a1bbd79ff5a..519586dfeb0f 100644 --- a/drivers/usb/gadget/function/uvc_queue.c +++ b/drivers/usb/gadget/function/uvc_queue.c @@ -212,7 +212,7 @@ __poll_t uvcg_queue_poll(struct uvc_video_queue *queue, struct file *file, return vb2_poll(&queue->queue, file, wait); } -int uvcg_queue_mmap(struct uvc_video_queue *queue, struct vm_area_struct *vma) +int uvcg_queue_mmap(struct uvc_video_queue *queue, struct mm_area *vma) { return vb2_mmap(&queue->queue, vma); } diff --git a/drivers/usb/gadget/function/uvc_queue.h b/drivers/usb/gadget/function/uvc_queue.h index b54becc570a3..4f8a2d2ef2ae 100644 --- a/drivers/usb/gadget/function/uvc_queue.h +++ b/drivers/usb/gadget/function/uvc_queue.h @@ -83,7 +83,7 @@ int uvcg_dequeue_buffer(struct uvc_video_queue *queue, __poll_t uvcg_queue_poll(struct uvc_video_queue *queue, struct file *file, poll_table *wait); -int uvcg_queue_mmap(struct uvc_video_queue *queue, struct vm_area_struct *vma); +int uvcg_queue_mmap(struct uvc_video_queue *queue, struct mm_area *vma); #ifndef CONFIG_MMU unsigned long uvcg_queue_get_unmapped_area(struct uvc_video_queue *queue, diff --git a/drivers/usb/gadget/function/uvc_v4l2.c b/drivers/usb/gadget/function/uvc_v4l2.c index fc9a8d31a1e9..f0016d03f5bb 100644 --- a/drivers/usb/gadget/function/uvc_v4l2.c +++ b/drivers/usb/gadget/function/uvc_v4l2.c @@ -702,7 +702,7 @@ uvc_v4l2_release(struct file *file) } static int -uvc_v4l2_mmap(struct file *file, struct vm_area_struct *vma) +uvc_v4l2_mmap(struct file *file, struct mm_area *vma) { struct video_device *vdev = video_devdata(file); struct uvc_device *uvc = video_get_drvdata(vdev); diff --git a/drivers/usb/mon/mon_bin.c b/drivers/usb/mon/mon_bin.c index c93b43f5bc46..765efbb61818 100644 --- a/drivers/usb/mon/mon_bin.c +++ b/drivers/usb/mon/mon_bin.c @@ -1222,7 +1222,7 @@ mon_bin_poll(struct file *file, struct poll_table_struct *wait) * open and close: just keep track of how many times the device is * mapped, to use the proper memory allocation function. */ -static void mon_bin_vma_open(struct vm_area_struct *vma) +static void mon_bin_vma_open(struct mm_area *vma) { struct mon_reader_bin *rp = vma->vm_private_data; unsigned long flags; @@ -1232,7 +1232,7 @@ static void mon_bin_vma_open(struct vm_area_struct *vma) spin_unlock_irqrestore(&rp->b_lock, flags); } -static void mon_bin_vma_close(struct vm_area_struct *vma) +static void mon_bin_vma_close(struct mm_area *vma) { unsigned long flags; @@ -1272,7 +1272,7 @@ static const struct vm_operations_struct mon_bin_vm_ops = { .fault = mon_bin_vma_fault, }; -static int mon_bin_mmap(struct file *filp, struct vm_area_struct *vma) +static int mon_bin_mmap(struct file *filp, struct mm_area *vma) { /* don't do anything here: "fault" will set up page table entries */ vma->vm_ops = &mon_bin_vm_ops; diff --git a/drivers/vdpa/vdpa_user/iova_domain.c b/drivers/vdpa/vdpa_user/iova_domain.c index 58116f89d8da..372456ffd5a3 100644 --- a/drivers/vdpa/vdpa_user/iova_domain.c +++ b/drivers/vdpa/vdpa_user/iova_domain.c @@ -532,7 +532,7 @@ static const struct vm_operations_struct vduse_domain_mmap_ops = { .fault = vduse_domain_mmap_fault, }; -static int vduse_domain_mmap(struct file *file, struct vm_area_struct *vma) +static int vduse_domain_mmap(struct file *file, struct mm_area *vma) { struct vduse_iova_domain *domain = file->private_data; diff --git a/drivers/vfio/cdx/main.c b/drivers/vfio/cdx/main.c index 5dd5f5ad7686..81d6e3d2293d 100644 --- a/drivers/vfio/cdx/main.c +++ b/drivers/vfio/cdx/main.c @@ -233,7 +233,7 @@ static long vfio_cdx_ioctl(struct vfio_device *core_vdev, } static int vfio_cdx_mmap_mmio(struct vfio_cdx_region region, - struct vm_area_struct *vma) + struct mm_area *vma) { u64 size = vma->vm_end - vma->vm_start; u64 pgoff, base; @@ -253,7 +253,7 @@ static int vfio_cdx_mmap_mmio(struct vfio_cdx_region region, } static int vfio_cdx_mmap(struct vfio_device *core_vdev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct vfio_cdx_device *vdev = container_of(core_vdev, struct vfio_cdx_device, vdev); diff --git a/drivers/vfio/fsl-mc/vfio_fsl_mc.c b/drivers/vfio/fsl-mc/vfio_fsl_mc.c index f65d91c01f2e..27b03c09f016 100644 --- a/drivers/vfio/fsl-mc/vfio_fsl_mc.c +++ b/drivers/vfio/fsl-mc/vfio_fsl_mc.c @@ -357,7 +357,7 @@ static ssize_t vfio_fsl_mc_write(struct vfio_device *core_vdev, } static int vfio_fsl_mc_mmap_mmio(struct vfio_fsl_mc_region region, - struct vm_area_struct *vma) + struct mm_area *vma) { u64 size = vma->vm_end - vma->vm_start; u64 pgoff, base; @@ -382,7 +382,7 @@ static int vfio_fsl_mc_mmap_mmio(struct vfio_fsl_mc_region region, } static int vfio_fsl_mc_mmap(struct vfio_device *core_vdev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct vfio_fsl_mc_device *vdev = container_of(core_vdev, struct vfio_fsl_mc_device, vdev); diff --git a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c index 451c639299eb..e61c19772dc2 100644 --- a/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c +++ b/drivers/vfio/pci/hisilicon/hisi_acc_vfio_pci.c @@ -1218,7 +1218,7 @@ static int hisi_acc_pci_rw_access_check(struct vfio_device *core_vdev, } static int hisi_acc_vfio_pci_mmap(struct vfio_device *core_vdev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct vfio_pci_core_device *vdev = container_of(core_vdev, struct vfio_pci_core_device, vdev); diff --git a/drivers/vfio/pci/nvgrace-gpu/main.c b/drivers/vfio/pci/nvgrace-gpu/main.c index e5ac39c4cc6b..935332b63571 100644 --- a/drivers/vfio/pci/nvgrace-gpu/main.c +++ b/drivers/vfio/pci/nvgrace-gpu/main.c @@ -131,7 +131,7 @@ static void nvgrace_gpu_close_device(struct vfio_device *core_vdev) } static int nvgrace_gpu_mmap(struct vfio_device *core_vdev, - struct vm_area_struct *vma) + struct mm_area *vma) { struct nvgrace_gpu_pci_core_device *nvdev = container_of(core_vdev, struct nvgrace_gpu_pci_core_device, diff --git a/drivers/vfio/pci/vfio_pci_core.c b/drivers/vfio/pci/vfio_pci_core.c index 35f9046af315..3e24952b7309 100644 --- a/drivers/vfio/pci/vfio_pci_core.c +++ b/drivers/vfio/pci/vfio_pci_core.c @@ -1629,7 +1629,7 @@ void vfio_pci_memory_unlock_and_restore(struct vfio_pci_core_device *vdev, u16 c up_write(&vdev->memory_lock); } -static unsigned long vma_to_pfn(struct vm_area_struct *vma) +static unsigned long vma_to_pfn(struct mm_area *vma) { struct vfio_pci_core_device *vdev = vma->vm_private_data; int index = vma->vm_pgoff >> (VFIO_PCI_OFFSET_SHIFT - PAGE_SHIFT); @@ -1644,7 +1644,7 @@ static unsigned long vma_to_pfn(struct vm_area_struct *vma) static vm_fault_t vfio_pci_mmap_huge_fault(struct vm_fault *vmf, unsigned int order) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct vfio_pci_core_device *vdev = vma->vm_private_data; unsigned long pfn, pgoff = vmf->pgoff - vma->vm_pgoff; vm_fault_t ret = VM_FAULT_SIGBUS; @@ -1708,7 +1708,7 @@ static const struct vm_operations_struct vfio_pci_mmap_ops = { #endif }; -int vfio_pci_core_mmap(struct vfio_device *core_vdev, struct vm_area_struct *vma) +int vfio_pci_core_mmap(struct vfio_device *core_vdev, struct mm_area *vma) { struct vfio_pci_core_device *vdev = container_of(core_vdev, struct vfio_pci_core_device, vdev); diff --git a/drivers/vfio/platform/vfio_platform_common.c b/drivers/vfio/platform/vfio_platform_common.c index 3bf1043cd795..194cd554d8e8 100644 --- a/drivers/vfio/platform/vfio_platform_common.c +++ b/drivers/vfio/platform/vfio_platform_common.c @@ -550,7 +550,7 @@ ssize_t vfio_platform_write(struct vfio_device *core_vdev, const char __user *bu EXPORT_SYMBOL_GPL(vfio_platform_write); static int vfio_platform_mmap_mmio(struct vfio_platform_region region, - struct vm_area_struct *vma) + struct mm_area *vma) { u64 req_len, pgoff, req_start; @@ -569,7 +569,7 @@ static int vfio_platform_mmap_mmio(struct vfio_platform_region region, req_len, vma->vm_page_prot); } -int vfio_platform_mmap(struct vfio_device *core_vdev, struct vm_area_struct *vma) +int vfio_platform_mmap(struct vfio_device *core_vdev, struct mm_area *vma) { struct vfio_platform_device *vdev = container_of(core_vdev, struct vfio_platform_device, vdev); diff --git a/drivers/vfio/platform/vfio_platform_private.h b/drivers/vfio/platform/vfio_platform_private.h index 8d8fab516849..a7355a03e43c 100644 --- a/drivers/vfio/platform/vfio_platform_private.h +++ b/drivers/vfio/platform/vfio_platform_private.h @@ -92,7 +92,7 @@ ssize_t vfio_platform_write(struct vfio_device *core_vdev, const char __user *buf, size_t count, loff_t *ppos); int vfio_platform_mmap(struct vfio_device *core_vdev, - struct vm_area_struct *vma); + struct mm_area *vma); int vfio_platform_irq_init(struct vfio_platform_device *vdev); void vfio_platform_irq_cleanup(struct vfio_platform_device *vdev); diff --git a/drivers/vfio/vfio_iommu_type1.c b/drivers/vfio/vfio_iommu_type1.c index 0ac56072af9f..acf89ab4e254 100644 --- a/drivers/vfio/vfio_iommu_type1.c +++ b/drivers/vfio/vfio_iommu_type1.c @@ -518,7 +518,7 @@ static void vfio_batch_fini(struct vfio_batch *batch) free_page((unsigned long)batch->pages); } -static int follow_fault_pfn(struct vm_area_struct *vma, struct mm_struct *mm, +static int follow_fault_pfn(struct mm_area *vma, struct mm_struct *mm, unsigned long vaddr, unsigned long *pfn, unsigned long *addr_mask, bool write_fault) { @@ -567,7 +567,7 @@ static long vaddr_get_pfns(struct mm_struct *mm, unsigned long vaddr, struct vfio_batch *batch) { unsigned long pin_pages = min_t(unsigned long, npages, batch->capacity); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned int flags = 0; long ret; diff --git a/drivers/vfio/vfio_main.c b/drivers/vfio/vfio_main.c index 1fd261efc582..24eca55e4635 100644 --- a/drivers/vfio/vfio_main.c +++ b/drivers/vfio/vfio_main.c @@ -1339,7 +1339,7 @@ static ssize_t vfio_device_fops_write(struct file *filep, return device->ops->write(device, buf, count, ppos); } -static int vfio_device_fops_mmap(struct file *filep, struct vm_area_struct *vma) +static int vfio_device_fops_mmap(struct file *filep, struct mm_area *vma) { struct vfio_device_file *df = filep->private_data; struct vfio_device *device = df->device; diff --git a/drivers/vhost/vdpa.c b/drivers/vhost/vdpa.c index 5a49b5a6d496..00dac20fc834 100644 --- a/drivers/vhost/vdpa.c +++ b/drivers/vhost/vdpa.c @@ -1048,7 +1048,7 @@ static int vhost_vdpa_va_map(struct vhost_vdpa *v, struct vhost_dev *dev = &v->vdev; u64 offset, map_size, map_iova = iova; struct vdpa_map_file *map_file; - struct vm_area_struct *vma; + struct mm_area *vma; int ret = 0; mmap_read_lock(dev->mm); @@ -1486,7 +1486,7 @@ static vm_fault_t vhost_vdpa_fault(struct vm_fault *vmf) struct vdpa_device *vdpa = v->vdpa; const struct vdpa_config_ops *ops = vdpa->config; struct vdpa_notification_area notify; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; u16 index = vma->vm_pgoff; notify = ops->get_vq_notification(vdpa, index); @@ -1498,7 +1498,7 @@ static const struct vm_operations_struct vhost_vdpa_vm_ops = { .fault = vhost_vdpa_fault, }; -static int vhost_vdpa_mmap(struct file *file, struct vm_area_struct *vma) +static int vhost_vdpa_mmap(struct file *file, struct mm_area *vma) { struct vhost_vdpa *v = vma->vm_file->private_data; struct vdpa_device *vdpa = v->vdpa; diff --git a/drivers/video/fbdev/68328fb.c b/drivers/video/fbdev/68328fb.c index c24156eb3d0f..8b63b4e1aab0 100644 --- a/drivers/video/fbdev/68328fb.c +++ b/drivers/video/fbdev/68328fb.c @@ -91,7 +91,7 @@ static int mc68x328fb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, u_int transp, struct fb_info *info); static int mc68x328fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); -static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int mc68x328fb_mmap(struct fb_info *info, struct mm_area *vma); static const struct fb_ops mc68x328fb_ops = { .owner = THIS_MODULE, @@ -386,7 +386,7 @@ static int mc68x328fb_pan_display(struct fb_var_screeninfo *var, * Most drivers don't need their own mmap function */ -static int mc68x328fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int mc68x328fb_mmap(struct fb_info *info, struct mm_area *vma) { #ifndef MMU /* this is uClinux (no MMU) specific code */ diff --git a/drivers/video/fbdev/atafb.c b/drivers/video/fbdev/atafb.c index b8ed1c537293..e6fbe997313f 100644 --- a/drivers/video/fbdev/atafb.c +++ b/drivers/video/fbdev/atafb.c @@ -291,7 +291,7 @@ static int *MV300_reg = MV300_reg_8bit; * unsigned long arg); * * * perform fb specific mmap * - * int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); + * int (*fb_mmap)(struct fb_info *info, struct mm_area *vma); * } ; */ diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c index 210fd3ac18a4..e9a48e71fbd4 100644 --- a/drivers/video/fbdev/aty/atyfb_base.c +++ b/drivers/video/fbdev/aty/atyfb_base.c @@ -253,7 +253,7 @@ static int atyfb_compat_ioctl(struct fb_info *info, u_int cmd, u_long arg) #endif #ifdef __sparc__ -static int atyfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int atyfb_mmap(struct fb_info *info, struct mm_area *vma); #endif static int atyfb_sync(struct fb_info *info); @@ -1932,7 +1932,7 @@ static int atyfb_sync(struct fb_info *info) } #ifdef __sparc__ -static int atyfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int atyfb_mmap(struct fb_info *info, struct mm_area *vma) { struct atyfb_par *par = (struct atyfb_par *) info->par; unsigned int size, page, map_size = 0; diff --git a/drivers/video/fbdev/au1100fb.c b/drivers/video/fbdev/au1100fb.c index 6251a6b07b3a..4ba693d12560 100644 --- a/drivers/video/fbdev/au1100fb.c +++ b/drivers/video/fbdev/au1100fb.c @@ -340,7 +340,7 @@ int au1100fb_fb_pan_display(struct fb_var_screeninfo *var, struct fb_info *fbi) * Map video memory in user space. We don't use the generic fb_mmap method mainly * to allow the use of the TLB streaming flag (CCA=6) */ -int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma) +int au1100fb_fb_mmap(struct fb_info *fbi, struct mm_area *vma) { struct au1100fb_device *fbdev = to_au1100fb_device(fbi); diff --git a/drivers/video/fbdev/au1200fb.c b/drivers/video/fbdev/au1200fb.c index ed770222660b..6f741b3ed47f 100644 --- a/drivers/video/fbdev/au1200fb.c +++ b/drivers/video/fbdev/au1200fb.c @@ -1232,7 +1232,7 @@ static int au1200fb_fb_blank(int blank_mode, struct fb_info *fbi) * Map video memory in user space. We don't use the generic fb_mmap * method mainly to allow the use of the TLB streaming flag (CCA=6) */ -static int au1200fb_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int au1200fb_fb_mmap(struct fb_info *info, struct mm_area *vma) { struct au1200fb_device *fbdev = info->par; diff --git a/drivers/video/fbdev/bw2.c b/drivers/video/fbdev/bw2.c index e757462af0a6..e56b43e62c57 100644 --- a/drivers/video/fbdev/bw2.c +++ b/drivers/video/fbdev/bw2.c @@ -31,7 +31,7 @@ static int bw2_blank(int, struct fb_info *); -static int bw2_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int bw2_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int bw2_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -154,7 +154,7 @@ static const struct sbus_mmap_map bw2_mmap_map[] = { { .size = 0 } }; -static int bw2_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int bw2_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct bw2_par *par = (struct bw2_par *)info->par; diff --git a/drivers/video/fbdev/cg14.c b/drivers/video/fbdev/cg14.c index 5389f8f07346..bc1619331049 100644 --- a/drivers/video/fbdev/cg14.c +++ b/drivers/video/fbdev/cg14.c @@ -33,7 +33,7 @@ static int cg14_setcolreg(unsigned, unsigned, unsigned, unsigned, unsigned, struct fb_info *); static int cg14_pan_display(struct fb_var_screeninfo *, struct fb_info *); -static int cg14_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int cg14_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int cg14_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -258,7 +258,7 @@ static int cg14_setcolreg(unsigned regno, return 0; } -static int cg14_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int cg14_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct cg14_par *par = (struct cg14_par *) info->par; diff --git a/drivers/video/fbdev/cg3.c b/drivers/video/fbdev/cg3.c index a58a483014e6..e53243deaf87 100644 --- a/drivers/video/fbdev/cg3.c +++ b/drivers/video/fbdev/cg3.c @@ -33,7 +33,7 @@ static int cg3_setcolreg(unsigned, unsigned, unsigned, unsigned, unsigned, struct fb_info *); static int cg3_blank(int, struct fb_info *); -static int cg3_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int cg3_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int cg3_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -218,7 +218,7 @@ static const struct sbus_mmap_map cg3_mmap_map[] = { { .size = 0 } }; -static int cg3_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int cg3_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct cg3_par *par = (struct cg3_par *)info->par; diff --git a/drivers/video/fbdev/cg6.c b/drivers/video/fbdev/cg6.c index 56d74468040a..826bace4fabd 100644 --- a/drivers/video/fbdev/cg6.c +++ b/drivers/video/fbdev/cg6.c @@ -39,7 +39,7 @@ static void cg6_copyarea(struct fb_info *info, const struct fb_copyarea *area); static int cg6_sync(struct fb_info *); static int cg6_pan_display(struct fb_var_screeninfo *, struct fb_info *); -static int cg6_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int cg6_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int cg6_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -589,7 +589,7 @@ static const struct sbus_mmap_map cg6_mmap_map[] = { { .size = 0 } }; -static int cg6_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int cg6_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct cg6_par *par = (struct cg6_par *)info->par; diff --git a/drivers/video/fbdev/controlfb.c b/drivers/video/fbdev/controlfb.c index 5c5284e8ae0e..0301ea641ba3 100644 --- a/drivers/video/fbdev/controlfb.c +++ b/drivers/video/fbdev/controlfb.c @@ -729,7 +729,7 @@ static int controlfb_blank(int blank_mode, struct fb_info *info) * Note there's no locking in here; it's done in fb_mmap() in fbmem.c. */ static int controlfb_mmap(struct fb_info *info, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned long mmio_pgoff; unsigned long start; diff --git a/drivers/video/fbdev/core/fb_chrdev.c b/drivers/video/fbdev/core/fb_chrdev.c index 4ebd16b7e3b8..50a46c896978 100644 --- a/drivers/video/fbdev/core/fb_chrdev.c +++ b/drivers/video/fbdev/core/fb_chrdev.c @@ -311,7 +311,7 @@ static long fb_compat_ioctl(struct file *file, unsigned int cmd, } #endif -static int fb_mmap(struct file *file, struct vm_area_struct *vma) +static int fb_mmap(struct file *file, struct mm_area *vma) { struct fb_info *info = file_fb_info(file); int res; diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c index 4fc93f253e06..01688f93cc91 100644 --- a/drivers/video/fbdev/core/fb_defio.c +++ b/drivers/video/fbdev/core/fb_defio.c @@ -243,7 +243,7 @@ static const struct address_space_operations fb_deferred_io_aops = { .dirty_folio = noop_dirty_folio, }; -int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma) +int fb_deferred_io_mmap(struct fb_info *info, struct mm_area *vma) { vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); diff --git a/drivers/video/fbdev/core/fb_io_fops.c b/drivers/video/fbdev/core/fb_io_fops.c index 3408ff1b2b7a..e00756595b77 100644 --- a/drivers/video/fbdev/core/fb_io_fops.c +++ b/drivers/video/fbdev/core/fb_io_fops.c @@ -138,7 +138,7 @@ ssize_t fb_io_write(struct fb_info *info, const char __user *buf, size_t count, } EXPORT_SYMBOL(fb_io_write); -int fb_io_mmap(struct fb_info *info, struct vm_area_struct *vma) +int fb_io_mmap(struct fb_info *info, struct mm_area *vma) { unsigned long start = info->fix.smem_start; u32 len = info->fix.smem_len; diff --git a/drivers/video/fbdev/ep93xx-fb.c b/drivers/video/fbdev/ep93xx-fb.c index 801ef427f1ba..cab3e18fb52e 100644 --- a/drivers/video/fbdev/ep93xx-fb.c +++ b/drivers/video/fbdev/ep93xx-fb.c @@ -307,7 +307,7 @@ static int ep93xxfb_check_var(struct fb_var_screeninfo *var, return 0; } -static int ep93xxfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int ep93xxfb_mmap(struct fb_info *info, struct mm_area *vma) { unsigned int offset = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/video/fbdev/ffb.c b/drivers/video/fbdev/ffb.c index 34b6abff9493..75c2aaf77b81 100644 --- a/drivers/video/fbdev/ffb.c +++ b/drivers/video/fbdev/ffb.c @@ -39,7 +39,7 @@ static void ffb_copyarea(struct fb_info *, const struct fb_copyarea *); static int ffb_sync(struct fb_info *); static int ffb_pan_display(struct fb_var_screeninfo *, struct fb_info *); -static int ffb_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int ffb_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int ffb_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -849,7 +849,7 @@ static const struct sbus_mmap_map ffb_mmap_map[] = { { .size = 0 } }; -static int ffb_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int ffb_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct ffb_par *par = (struct ffb_par *)info->par; diff --git a/drivers/video/fbdev/gbefb.c b/drivers/video/fbdev/gbefb.c index 4c36a3e409be..b3a423fbe0e9 100644 --- a/drivers/video/fbdev/gbefb.c +++ b/drivers/video/fbdev/gbefb.c @@ -992,7 +992,7 @@ static int gbefb_check_var(struct fb_var_screeninfo *var, struct fb_info *info) } static int gbefb_mmap(struct fb_info *info, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned long size = vma->vm_end - vma->vm_start; unsigned long offset = vma->vm_pgoff << PAGE_SHIFT; diff --git a/drivers/video/fbdev/leo.c b/drivers/video/fbdev/leo.c index b9fb059df2c7..76d44efee3c1 100644 --- a/drivers/video/fbdev/leo.c +++ b/drivers/video/fbdev/leo.c @@ -33,7 +33,7 @@ static int leo_setcolreg(unsigned, unsigned, unsigned, unsigned, static int leo_blank(int, struct fb_info *); static int leo_pan_display(struct fb_var_screeninfo *, struct fb_info *); -static int leo_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int leo_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int leo_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -407,7 +407,7 @@ static const struct sbus_mmap_map leo_mmap_map[] = { { .size = 0 } }; -static int leo_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int leo_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct leo_par *par = (struct leo_par *)info->par; diff --git a/drivers/video/fbdev/omap/omapfb.h b/drivers/video/fbdev/omap/omapfb.h index ab1cb6e7f5f8..cfd41ba0dac7 100644 --- a/drivers/video/fbdev/omap/omapfb.h +++ b/drivers/video/fbdev/omap/omapfb.h @@ -159,7 +159,7 @@ struct lcd_ctrl { int (*setup_mem) (int plane, size_t size, int mem_type, unsigned long *paddr); int (*mmap) (struct fb_info *info, - struct vm_area_struct *vma); + struct mm_area *vma); int (*set_scale) (int plane, int orig_width, int orig_height, int out_width, int out_height); diff --git a/drivers/video/fbdev/omap/omapfb_main.c b/drivers/video/fbdev/omap/omapfb_main.c index 2682b20d184a..f6781f51b2cc 100644 --- a/drivers/video/fbdev/omap/omapfb_main.c +++ b/drivers/video/fbdev/omap/omapfb_main.c @@ -1197,7 +1197,7 @@ static int omapfb_ioctl(struct fb_info *fbi, unsigned int cmd, return r; } -static int omapfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int omapfb_mmap(struct fb_info *info, struct mm_area *vma) { struct omapfb_plane_struct *plane = info->par; struct omapfb_device *fbdev = plane->fbdev; diff --git a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c index 211f23648686..081d6ea622bb 100644 --- a/drivers/video/fbdev/omap2/omapfb/omapfb-main.c +++ b/drivers/video/fbdev/omap2/omapfb/omapfb-main.c @@ -1063,7 +1063,7 @@ static int omapfb_pan_display(struct fb_var_screeninfo *var, return r; } -static void mmap_user_open(struct vm_area_struct *vma) +static void mmap_user_open(struct mm_area *vma) { struct omapfb2_mem_region *rg = vma->vm_private_data; @@ -1072,7 +1072,7 @@ static void mmap_user_open(struct vm_area_struct *vma) omapfb_put_mem_region(rg); } -static void mmap_user_close(struct vm_area_struct *vma) +static void mmap_user_close(struct mm_area *vma) { struct omapfb2_mem_region *rg = vma->vm_private_data; @@ -1086,7 +1086,7 @@ static const struct vm_operations_struct mmap_user_ops = { .close = mmap_user_close, }; -static int omapfb_mmap(struct fb_info *fbi, struct vm_area_struct *vma) +static int omapfb_mmap(struct fb_info *fbi, struct mm_area *vma) { struct omapfb_info *ofbi = FB2OFB(fbi); struct fb_fix_screeninfo *fix = &fbi->fix; diff --git a/drivers/video/fbdev/p9100.c b/drivers/video/fbdev/p9100.c index 0bc0f78fe4b9..62fdfe8c682d 100644 --- a/drivers/video/fbdev/p9100.c +++ b/drivers/video/fbdev/p9100.c @@ -31,7 +31,7 @@ static int p9100_setcolreg(unsigned, unsigned, unsigned, unsigned, unsigned, struct fb_info *); static int p9100_blank(int, struct fb_info *); -static int p9100_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int p9100_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int p9100_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -211,7 +211,7 @@ static const struct sbus_mmap_map p9100_mmap_map[] = { { 0, 0, 0 } }; -static int p9100_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int p9100_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct p9100_par *par = (struct p9100_par *)info->par; diff --git a/drivers/video/fbdev/ps3fb.c b/drivers/video/fbdev/ps3fb.c index dbcda307f6a6..55796e1765a7 100644 --- a/drivers/video/fbdev/ps3fb.c +++ b/drivers/video/fbdev/ps3fb.c @@ -704,7 +704,7 @@ static int ps3fb_pan_display(struct fb_var_screeninfo *var, * As we have a virtual frame buffer, we need our own mmap function */ -static int ps3fb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int ps3fb_mmap(struct fb_info *info, struct mm_area *vma) { int r; diff --git a/drivers/video/fbdev/pxa3xx-gcu.c b/drivers/video/fbdev/pxa3xx-gcu.c index 4a78b387b343..6a4ffc17299c 100644 --- a/drivers/video/fbdev/pxa3xx-gcu.c +++ b/drivers/video/fbdev/pxa3xx-gcu.c @@ -469,7 +469,7 @@ pxa3xx_gcu_ioctl(struct file *file, unsigned int cmd, unsigned long arg) } static int -pxa3xx_gcu_mmap(struct file *file, struct vm_area_struct *vma) +pxa3xx_gcu_mmap(struct file *file, struct mm_area *vma) { unsigned int size = vma->vm_end - vma->vm_start; struct pxa3xx_gcu_priv *priv = to_pxa3xx_gcu_priv(file); diff --git a/drivers/video/fbdev/sa1100fb.c b/drivers/video/fbdev/sa1100fb.c index 0d362d2bf0e3..d21ae655cca4 100644 --- a/drivers/video/fbdev/sa1100fb.c +++ b/drivers/video/fbdev/sa1100fb.c @@ -556,7 +556,7 @@ static int sa1100fb_blank(int blank, struct fb_info *info) } static int sa1100fb_mmap(struct fb_info *info, - struct vm_area_struct *vma) + struct mm_area *vma) { struct sa1100fb_info *fbi = container_of(info, struct sa1100fb_info, fb); diff --git a/drivers/video/fbdev/sbuslib.c b/drivers/video/fbdev/sbuslib.c index 4c79654bda30..8fced2f56b38 100644 --- a/drivers/video/fbdev/sbuslib.c +++ b/drivers/video/fbdev/sbuslib.c @@ -42,7 +42,7 @@ int sbusfb_mmap_helper(const struct sbus_mmap_map *map, unsigned long physbase, unsigned long fbsize, unsigned long iospace, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned int size, page, r, map_size; unsigned long map_offset = 0; diff --git a/drivers/video/fbdev/sbuslib.h b/drivers/video/fbdev/sbuslib.h index e9af2dc93f94..75e60f30957f 100644 --- a/drivers/video/fbdev/sbuslib.h +++ b/drivers/video/fbdev/sbuslib.h @@ -6,7 +6,7 @@ struct device_node; struct fb_info; struct fb_var_screeninfo; -struct vm_area_struct; +struct mm_area; struct sbus_mmap_map { unsigned long voff; @@ -22,7 +22,7 @@ extern void sbusfb_fill_var(struct fb_var_screeninfo *var, extern int sbusfb_mmap_helper(const struct sbus_mmap_map *map, unsigned long physbase, unsigned long fbsize, unsigned long iospace, - struct vm_area_struct *vma); + struct mm_area *vma); int sbusfb_ioctl_helper(unsigned long cmd, unsigned long arg, struct fb_info *info, int type, int fb_depth, unsigned long fb_size); diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c index dd950e4ab5ce..4b53eabd93fb 100644 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c @@ -1478,7 +1478,7 @@ static int sh_mobile_lcdc_overlay_blank(int blank, struct fb_info *info) } static int -sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct vm_area_struct *vma) +sh_mobile_lcdc_overlay_mmap(struct fb_info *info, struct mm_area *vma) { struct sh_mobile_lcdc_overlay *ovl = info->par; @@ -1947,7 +1947,7 @@ static int sh_mobile_lcdc_blank(int blank, struct fb_info *info) } static int -sh_mobile_lcdc_mmap(struct fb_info *info, struct vm_area_struct *vma) +sh_mobile_lcdc_mmap(struct fb_info *info, struct mm_area *vma) { struct sh_mobile_lcdc_chan *ch = info->par; diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c index 5f0dd01fd834..0cf731d1c04c 100644 --- a/drivers/video/fbdev/smscufx.c +++ b/drivers/video/fbdev/smscufx.c @@ -773,7 +773,7 @@ static int ufx_set_vid_mode(struct ufx_data *dev, struct fb_var_screeninfo *var) return 0; } -static int ufx_ops_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int ufx_ops_mmap(struct fb_info *info, struct mm_area *vma) { unsigned long start = vma->vm_start; unsigned long size = vma->vm_end - vma->vm_start; diff --git a/drivers/video/fbdev/tcx.c b/drivers/video/fbdev/tcx.c index f9a0085ad72b..fef8f2c55b15 100644 --- a/drivers/video/fbdev/tcx.c +++ b/drivers/video/fbdev/tcx.c @@ -34,7 +34,7 @@ static int tcx_setcolreg(unsigned, unsigned, unsigned, unsigned, static int tcx_blank(int, struct fb_info *); static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *); -static int tcx_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma); +static int tcx_sbusfb_mmap(struct fb_info *info, struct mm_area *vma); static int tcx_sbusfb_ioctl(struct fb_info *info, unsigned int cmd, unsigned long arg); /* @@ -292,7 +292,7 @@ static const struct sbus_mmap_map __tcx_mmap_map[TCX_MMAP_ENTRIES] = { { .size = 0 } }; -static int tcx_sbusfb_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int tcx_sbusfb_mmap(struct fb_info *info, struct mm_area *vma) { struct tcx_par *par = (struct tcx_par *)info->par; diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c index acadf0eb450c..bcffed2bac09 100644 --- a/drivers/video/fbdev/udlfb.c +++ b/drivers/video/fbdev/udlfb.c @@ -321,7 +321,7 @@ static int dlfb_set_video_mode(struct dlfb_data *dlfb, return retval; } -static int dlfb_ops_mmap(struct fb_info *info, struct vm_area_struct *vma) +static int dlfb_ops_mmap(struct fb_info *info, struct mm_area *vma) { unsigned long start = vma->vm_start; unsigned long size = vma->vm_end - vma->vm_start; diff --git a/drivers/video/fbdev/vfb.c b/drivers/video/fbdev/vfb.c index 5b7965f36c5e..5836aa107f86 100644 --- a/drivers/video/fbdev/vfb.c +++ b/drivers/video/fbdev/vfb.c @@ -76,7 +76,7 @@ static int vfb_setcolreg(u_int regno, u_int red, u_int green, u_int blue, static int vfb_pan_display(struct fb_var_screeninfo *var, struct fb_info *info); static int vfb_mmap(struct fb_info *info, - struct vm_area_struct *vma); + struct mm_area *vma); static const struct fb_ops vfb_ops = { .owner = THIS_MODULE, @@ -380,7 +380,7 @@ static int vfb_pan_display(struct fb_var_screeninfo *var, */ static int vfb_mmap(struct fb_info *info, - struct vm_area_struct *vma) + struct mm_area *vma) { vma->vm_page_prot = pgprot_decrypted(vma->vm_page_prot); diff --git a/drivers/virt/acrn/mm.c b/drivers/virt/acrn/mm.c index 4c2f28715b70..eeec17237749 100644 --- a/drivers/virt/acrn/mm.c +++ b/drivers/virt/acrn/mm.c @@ -163,7 +163,7 @@ int acrn_vm_ram_map(struct acrn_vm *vm, struct acrn_vm_memmap *memmap) void *remap_vaddr; int ret, pinned; u64 user_vm_pa; - struct vm_area_struct *vma; + struct mm_area *vma; if (!vm || !memmap) return -EINVAL; diff --git a/drivers/xen/gntalloc.c b/drivers/xen/gntalloc.c index f93f73ecefee..62dab536c2f6 100644 --- a/drivers/xen/gntalloc.c +++ b/drivers/xen/gntalloc.c @@ -445,7 +445,7 @@ static long gntalloc_ioctl(struct file *filp, unsigned int cmd, return 0; } -static void gntalloc_vma_open(struct vm_area_struct *vma) +static void gntalloc_vma_open(struct mm_area *vma) { struct gntalloc_vma_private_data *priv = vma->vm_private_data; @@ -457,7 +457,7 @@ static void gntalloc_vma_open(struct vm_area_struct *vma) mutex_unlock(&gref_mutex); } -static void gntalloc_vma_close(struct vm_area_struct *vma) +static void gntalloc_vma_close(struct mm_area *vma) { struct gntalloc_vma_private_data *priv = vma->vm_private_data; struct gntalloc_gref *gref, *next; @@ -488,7 +488,7 @@ static const struct vm_operations_struct gntalloc_vmops = { .close = gntalloc_vma_close, }; -static int gntalloc_mmap(struct file *filp, struct vm_area_struct *vma) +static int gntalloc_mmap(struct file *filp, struct mm_area *vma) { struct gntalloc_file_private_data *priv = filp->private_data; struct gntalloc_vma_private_data *vm_priv; diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c index 61faea1f0663..879c601543b8 100644 --- a/drivers/xen/gntdev.c +++ b/drivers/xen/gntdev.c @@ -496,7 +496,7 @@ static void unmap_grant_pages(struct gntdev_grant_map *map, int offset, /* ------------------------------------------------------------------ */ -static void gntdev_vma_open(struct vm_area_struct *vma) +static void gntdev_vma_open(struct mm_area *vma) { struct gntdev_grant_map *map = vma->vm_private_data; @@ -504,7 +504,7 @@ static void gntdev_vma_open(struct vm_area_struct *vma) refcount_inc(&map->users); } -static void gntdev_vma_close(struct vm_area_struct *vma) +static void gntdev_vma_close(struct mm_area *vma) { struct gntdev_grant_map *map = vma->vm_private_data; struct file *file = vma->vm_file; @@ -516,7 +516,7 @@ static void gntdev_vma_close(struct vm_area_struct *vma) gntdev_put_map(priv, map); } -static struct page *gntdev_vma_find_special_page(struct vm_area_struct *vma, +static struct page *gntdev_vma_find_special_page(struct mm_area *vma, unsigned long addr) { struct gntdev_grant_map *map = vma->vm_private_data; @@ -690,7 +690,7 @@ static long gntdev_ioctl_get_offset_for_vaddr(struct gntdev_priv *priv, struct ioctl_gntdev_get_offset_for_vaddr __user *u) { struct ioctl_gntdev_get_offset_for_vaddr op; - struct vm_area_struct *vma; + struct mm_area *vma; struct gntdev_grant_map *map; int rv = -EINVAL; @@ -1030,7 +1030,7 @@ static long gntdev_ioctl(struct file *flip, return 0; } -static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma) +static int gntdev_mmap(struct file *flip, struct mm_area *vma) { struct gntdev_priv *priv = flip->private_data; int index = vma->vm_pgoff; diff --git a/drivers/xen/privcmd-buf.c b/drivers/xen/privcmd-buf.c index 0f0dad427d7e..b0d391ea06a5 100644 --- a/drivers/xen/privcmd-buf.c +++ b/drivers/xen/privcmd-buf.c @@ -84,7 +84,7 @@ static int privcmd_buf_release(struct inode *ino, struct file *file) return 0; } -static void privcmd_buf_vma_open(struct vm_area_struct *vma) +static void privcmd_buf_vma_open(struct mm_area *vma) { struct privcmd_buf_vma_private *vma_priv = vma->vm_private_data; @@ -96,7 +96,7 @@ static void privcmd_buf_vma_open(struct vm_area_struct *vma) mutex_unlock(&vma_priv->file_priv->lock); } -static void privcmd_buf_vma_close(struct vm_area_struct *vma) +static void privcmd_buf_vma_close(struct mm_area *vma) { struct privcmd_buf_vma_private *vma_priv = vma->vm_private_data; struct privcmd_buf_private *file_priv; @@ -130,7 +130,7 @@ static const struct vm_operations_struct privcmd_buf_vm_ops = { .fault = privcmd_buf_vma_fault, }; -static int privcmd_buf_mmap(struct file *file, struct vm_area_struct *vma) +static int privcmd_buf_mmap(struct file *file, struct mm_area *vma) { struct privcmd_buf_private *file_priv = file->private_data; struct privcmd_buf_vma_private *vma_priv; diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c index 13a10f3294a8..6e064d04bab4 100644 --- a/drivers/xen/privcmd.c +++ b/drivers/xen/privcmd.c @@ -73,7 +73,7 @@ struct privcmd_data { }; static int privcmd_vma_range_is_mapped( - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long nr_pages); @@ -226,7 +226,7 @@ static int traverse_pages_block(unsigned nelem, size_t size, struct mmap_gfn_state { unsigned long va; - struct vm_area_struct *vma; + struct mm_area *vma; domid_t domain; }; @@ -234,7 +234,7 @@ static int mmap_gfn_range(void *data, void *state) { struct privcmd_mmap_entry *msg = data; struct mmap_gfn_state *st = state; - struct vm_area_struct *vma = st->vma; + struct mm_area *vma = st->vma; int rc; /* Do not allow range to wrap the address space. */ @@ -265,7 +265,7 @@ static long privcmd_ioctl_mmap(struct file *file, void __user *udata) struct privcmd_data *data = file->private_data; struct privcmd_mmap mmapcmd; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int rc; LIST_HEAD(pagelist); struct mmap_gfn_state state; @@ -324,7 +324,7 @@ static long privcmd_ioctl_mmap(struct file *file, void __user *udata) struct mmap_batch_state { domid_t domain; unsigned long va; - struct vm_area_struct *vma; + struct mm_area *vma; int index; /* A tristate: * 0 for no errors @@ -348,7 +348,7 @@ static int mmap_batch_fn(void *data, int nr, void *state) { xen_pfn_t *gfnp = data; struct mmap_batch_state *st = state; - struct vm_area_struct *vma = st->vma; + struct mm_area *vma = st->vma; struct page **pages = vma->vm_private_data; struct page **cur_pages = NULL; int ret; @@ -428,7 +428,7 @@ static int mmap_return_errors(void *data, int nr, void *state) * the vma with the page info to use later. * Returns: 0 if success, otherwise -errno */ -static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs) +static int alloc_empty_pages(struct mm_area *vma, int numpgs) { int rc; struct page **pages; @@ -459,7 +459,7 @@ static long privcmd_ioctl_mmap_batch( int ret; struct privcmd_mmapbatch_v2 m; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long nr_pages; LIST_HEAD(pagelist); struct mmap_batch_state state; @@ -736,7 +736,7 @@ static long privcmd_ioctl_mmap_resource(struct file *file, { struct privcmd_data *data = file->private_data; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct privcmd_mmap_resource kdata; xen_pfn_t *pfns = NULL; struct xen_mem_acquire_resource xdata = { }; @@ -1222,7 +1222,7 @@ struct privcmd_kernel_ioreq *alloc_ioreq(struct privcmd_ioeventfd *ioeventfd) { struct privcmd_kernel_ioreq *kioreq; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; struct page **pages; unsigned int *ports; int ret, size, i; @@ -1584,7 +1584,7 @@ static int privcmd_release(struct inode *ino, struct file *file) return 0; } -static void privcmd_close(struct vm_area_struct *vma) +static void privcmd_close(struct mm_area *vma) { struct page **pages = vma->vm_private_data; int numpgs = vma_pages(vma); @@ -1617,7 +1617,7 @@ static const struct vm_operations_struct privcmd_vm_ops = { .fault = privcmd_fault }; -static int privcmd_mmap(struct file *file, struct vm_area_struct *vma) +static int privcmd_mmap(struct file *file, struct mm_area *vma) { /* DONTCOPY is essential for Xen because copy_page_range doesn't know * how to recreate these mappings */ @@ -1640,7 +1640,7 @@ static int is_mapped_fn(pte_t *pte, unsigned long addr, void *data) } static int privcmd_vma_range_is_mapped( - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long nr_pages) { diff --git a/drivers/xen/xenbus/xenbus_dev_backend.c b/drivers/xen/xenbus/xenbus_dev_backend.c index edba5fecde4d..356bc765f133 100644 --- a/drivers/xen/xenbus/xenbus_dev_backend.c +++ b/drivers/xen/xenbus/xenbus_dev_backend.c @@ -89,7 +89,7 @@ static long xenbus_backend_ioctl(struct file *file, unsigned int cmd, } } -static int xenbus_backend_mmap(struct file *file, struct vm_area_struct *vma) +static int xenbus_backend_mmap(struct file *file, struct mm_area *vma) { size_t size = vma->vm_end - vma->vm_start; diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c index f59235f9f8a2..a4685a4f5bef 100644 --- a/drivers/xen/xenfs/xenstored.c +++ b/drivers/xen/xenfs/xenstored.c @@ -31,7 +31,7 @@ static int xsd_kva_open(struct inode *inode, struct file *file) return 0; } -static int xsd_kva_mmap(struct file *file, struct vm_area_struct *vma) +static int xsd_kva_mmap(struct file *file, struct mm_area *vma) { size_t size = vma->vm_end - vma->vm_start; diff --git a/drivers/xen/xlate_mmu.c b/drivers/xen/xlate_mmu.c index f17c4c03db30..a70ef3f8f617 100644 --- a/drivers/xen/xlate_mmu.c +++ b/drivers/xen/xlate_mmu.c @@ -66,7 +66,7 @@ struct remap_data { int nr_fgfn; /* Number of foreign gfn left to map */ pgprot_t prot; domid_t domid; - struct vm_area_struct *vma; + struct mm_area *vma; int index; struct page **pages; struct xen_remap_gfn_info *info; @@ -140,7 +140,7 @@ static int remap_pte_fn(pte_t *ptep, unsigned long addr, void *data) return 0; } -int xen_xlate_remap_gfn_array(struct vm_area_struct *vma, +int xen_xlate_remap_gfn_array(struct mm_area *vma, unsigned long addr, xen_pfn_t *gfn, int nr, int *err_ptr, pgprot_t prot, @@ -180,7 +180,7 @@ static void unmap_gfn(unsigned long gfn, void *data) (void)HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp); } -int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma, +int xen_xlate_unmap_gfn_range(struct mm_area *vma, int nr, struct page **pages) { xen_for_each_gfn(pages, nr, unmap_gfn, NULL); @@ -282,7 +282,7 @@ static int remap_pfn_fn(pte_t *ptep, unsigned long addr, void *data) } /* Used by the privcmd module, but has to be built-in on ARM */ -int xen_remap_vma_range(struct vm_area_struct *vma, unsigned long addr, unsigned long len) +int xen_remap_vma_range(struct mm_area *vma, unsigned long addr, unsigned long len) { struct remap_pfn r = { .mm = vma->vm_mm, diff --git a/fs/9p/vfs_file.c b/fs/9p/vfs_file.c index 348cc90bf9c5..b2a7d581805b 100644 --- a/fs/9p/vfs_file.c +++ b/fs/9p/vfs_file.c @@ -454,7 +454,7 @@ int v9fs_file_fsync_dotl(struct file *filp, loff_t start, loff_t end, } static int -v9fs_file_mmap(struct file *filp, struct vm_area_struct *vma) +v9fs_file_mmap(struct file *filp, struct mm_area *vma) { int retval; struct inode *inode = file_inode(filp); @@ -480,7 +480,7 @@ v9fs_vm_page_mkwrite(struct vm_fault *vmf) return netfs_page_mkwrite(vmf, NULL); } -static void v9fs_mmap_vm_close(struct vm_area_struct *vma) +static void v9fs_mmap_vm_close(struct mm_area *vma) { struct inode *inode; diff --git a/fs/afs/file.c b/fs/afs/file.c index fc15497608c6..1794c1138669 100644 --- a/fs/afs/file.c +++ b/fs/afs/file.c @@ -19,14 +19,14 @@ #include #include "internal.h" -static int afs_file_mmap(struct file *file, struct vm_area_struct *vma); +static int afs_file_mmap(struct file *file, struct mm_area *vma); static ssize_t afs_file_read_iter(struct kiocb *iocb, struct iov_iter *iter); static ssize_t afs_file_splice_read(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags); -static void afs_vm_open(struct vm_area_struct *area); -static void afs_vm_close(struct vm_area_struct *area); +static void afs_vm_open(struct mm_area *area); +static void afs_vm_close(struct mm_area *area); static vm_fault_t afs_vm_map_pages(struct vm_fault *vmf, pgoff_t start_pgoff, pgoff_t end_pgoff); const struct file_operations afs_file_operations = { @@ -492,7 +492,7 @@ static void afs_drop_open_mmap(struct afs_vnode *vnode) /* * Handle setting up a memory mapping on an AFS file. */ -static int afs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int afs_file_mmap(struct file *file, struct mm_area *vma) { struct afs_vnode *vnode = AFS_FS_I(file_inode(file)); int ret; @@ -507,12 +507,12 @@ static int afs_file_mmap(struct file *file, struct vm_area_struct *vma) return ret; } -static void afs_vm_open(struct vm_area_struct *vma) +static void afs_vm_open(struct mm_area *vma) { afs_add_open_mmap(AFS_FS_I(file_inode(vma->vm_file))); } -static void afs_vm_close(struct vm_area_struct *vma) +static void afs_vm_close(struct mm_area *vma) { afs_drop_open_mmap(AFS_FS_I(file_inode(vma->vm_file))); } diff --git a/fs/aio.c b/fs/aio.c index 7b976b564cfc..140b42dd11ad 100644 --- a/fs/aio.c +++ b/fs/aio.c @@ -351,7 +351,7 @@ static void aio_free_ring(struct kioctx *ctx) } } -static int aio_ring_mremap(struct vm_area_struct *vma) +static int aio_ring_mremap(struct mm_area *vma) { struct file *file = vma->vm_file; struct mm_struct *mm = vma->vm_mm; @@ -392,7 +392,7 @@ static const struct vm_operations_struct aio_ring_vm_ops = { #endif }; -static int aio_ring_mmap(struct file *file, struct vm_area_struct *vma) +static int aio_ring_mmap(struct file *file, struct mm_area *vma) { vm_flags_set(vma, VM_DONTEXPAND); vma->vm_ops = &aio_ring_vm_ops; diff --git a/fs/backing-file.c b/fs/backing-file.c index 763fbe9b72b2..95e6cea5fa7a 100644 --- a/fs/backing-file.c +++ b/fs/backing-file.c @@ -323,7 +323,7 @@ ssize_t backing_file_splice_write(struct pipe_inode_info *pipe, } EXPORT_SYMBOL_GPL(backing_file_splice_write); -int backing_file_mmap(struct file *file, struct vm_area_struct *vma, +int backing_file_mmap(struct file *file, struct mm_area *vma, struct backing_file_ctx *ctx) { const struct cred *old_cred; diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c index fc834bdf1f52..0cd13a91456c 100644 --- a/fs/bcachefs/fs.c +++ b/fs/bcachefs/fs.c @@ -1403,7 +1403,7 @@ static const struct vm_operations_struct bch_vm_ops = { .page_mkwrite = bch2_page_mkwrite, }; -static int bch2_mmap(struct file *file, struct vm_area_struct *vma) +static int bch2_mmap(struct file *file, struct mm_area *vma) { file_accessed(file); diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c index 584fa89bc877..b28c8bc74b45 100644 --- a/fs/binfmt_elf.c +++ b/fs/binfmt_elf.c @@ -173,7 +173,7 @@ create_elf_tables(struct linux_binprm *bprm, const struct elfhdr *exec, elf_addr_t flags = 0; int ei_index; const struct cred *cred = current_cred(); - struct vm_area_struct *vma; + struct mm_area *vma; /* * In some cases (e.g. Hyper-Threading), we want to avoid L1 diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 262a707d8990..99026a1bf443 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1928,7 +1928,7 @@ static const struct vm_operations_struct btrfs_file_vm_ops = { .page_mkwrite = btrfs_page_mkwrite, }; -static int btrfs_file_mmap(struct file *filp, struct vm_area_struct *vma) +static int btrfs_file_mmap(struct file *filp, struct mm_area *vma) { struct address_space *mapping = filp->f_mapping; diff --git a/fs/buffer.c b/fs/buffer.c index c7abb4a029dc..aafb15b65afa 100644 --- a/fs/buffer.c +++ b/fs/buffer.c @@ -2585,7 +2585,7 @@ EXPORT_SYMBOL(cont_write_begin); * Direct callers of this function should protect against filesystem freezing * using sb_start_pagefault() - sb_end_pagefault() functions. */ -int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, +int block_page_mkwrite(struct mm_area *vma, struct vm_fault *vmf, get_block_t get_block) { struct folio *folio = page_folio(vmf->page); diff --git a/fs/ceph/addr.c b/fs/ceph/addr.c index 29be367905a1..b6a99e66b1af 100644 --- a/fs/ceph/addr.c +++ b/fs/ceph/addr.c @@ -1940,7 +1940,7 @@ static void ceph_restore_sigs(sigset_t *oldset) */ static vm_fault_t ceph_filemap_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct inode *inode = file_inode(vma->vm_file); struct ceph_inode_info *ci = ceph_inode(inode); struct ceph_client *cl = ceph_inode_to_client(inode); @@ -2031,7 +2031,7 @@ static vm_fault_t ceph_filemap_fault(struct vm_fault *vmf) static vm_fault_t ceph_page_mkwrite(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct inode *inode = file_inode(vma->vm_file); struct ceph_client *cl = ceph_inode_to_client(inode); struct ceph_inode_info *ci = ceph_inode(inode); @@ -2319,7 +2319,7 @@ static const struct vm_operations_struct ceph_vmops = { .page_mkwrite = ceph_page_mkwrite, }; -int ceph_mmap(struct file *file, struct vm_area_struct *vma) +int ceph_mmap(struct file *file, struct mm_area *vma) { struct address_space *mapping = file->f_mapping; diff --git a/fs/ceph/super.h b/fs/ceph/super.h index bb0db0cc8003..bdb01ebd811b 100644 --- a/fs/ceph/super.h +++ b/fs/ceph/super.h @@ -1286,7 +1286,7 @@ extern void __ceph_touch_fmode(struct ceph_inode_info *ci, /* addr.c */ extern const struct address_space_operations ceph_aops; extern const struct netfs_request_ops ceph_netfs_ops; -extern int ceph_mmap(struct file *file, struct vm_area_struct *vma); +extern int ceph_mmap(struct file *file, struct mm_area *vma); extern int ceph_uninline_data(struct file *file); extern int ceph_pool_perm_check(struct inode *inode, int need); extern void ceph_pool_perm_destroy(struct ceph_mds_client* mdsc); diff --git a/fs/coda/file.c b/fs/coda/file.c index 148856a582a9..28d6240819a0 100644 --- a/fs/coda/file.c +++ b/fs/coda/file.c @@ -120,7 +120,7 @@ coda_file_splice_read(struct file *coda_file, loff_t *ppos, } static void -coda_vm_open(struct vm_area_struct *vma) +coda_vm_open(struct mm_area *vma) { struct coda_vm_ops *cvm_ops = container_of(vma->vm_ops, struct coda_vm_ops, vm_ops); @@ -132,7 +132,7 @@ coda_vm_open(struct vm_area_struct *vma) } static void -coda_vm_close(struct vm_area_struct *vma) +coda_vm_close(struct mm_area *vma) { struct coda_vm_ops *cvm_ops = container_of(vma->vm_ops, struct coda_vm_ops, vm_ops); @@ -148,7 +148,7 @@ coda_vm_close(struct vm_area_struct *vma) } static int -coda_file_mmap(struct file *coda_file, struct vm_area_struct *vma) +coda_file_mmap(struct file *coda_file, struct mm_area *vma) { struct inode *coda_inode = file_inode(coda_file); struct coda_file_info *cfi = coda_ftoc(coda_file); diff --git a/fs/coredump.c b/fs/coredump.c index c33c177a701b..f9987d48c5a6 100644 --- a/fs/coredump.c +++ b/fs/coredump.c @@ -1082,7 +1082,7 @@ fs_initcall(init_fs_coredump_sysctls); * meant. These special mappings include - vDSO, vsyscall, and other * architecture specific mappings */ -static bool always_dump_vma(struct vm_area_struct *vma) +static bool always_dump_vma(struct mm_area *vma) { /* Any vsyscall mappings? */ if (vma == get_gate_vma(vma->vm_mm)) @@ -1110,7 +1110,7 @@ static bool always_dump_vma(struct vm_area_struct *vma) /* * Decide how much of @vma's contents should be included in a core dump. */ -static unsigned long vma_dump_size(struct vm_area_struct *vma, +static unsigned long vma_dump_size(struct mm_area *vma, unsigned long mm_flags) { #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type)) @@ -1193,9 +1193,9 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma, * Helper function for iterating across a vma list. It ensures that the caller * will visit `gate_vma' prior to terminating the search. */ -static struct vm_area_struct *coredump_next_vma(struct vma_iterator *vmi, - struct vm_area_struct *vma, - struct vm_area_struct *gate_vma) +static struct mm_area *coredump_next_vma(struct vma_iterator *vmi, + struct mm_area *vma, + struct mm_area *gate_vma) { if (gate_vma && (vma == gate_vma)) return NULL; @@ -1238,7 +1238,7 @@ static int cmp_vma_size(const void *vma_meta_lhs_ptr, const void *vma_meta_rhs_p */ static bool dump_vma_snapshot(struct coredump_params *cprm) { - struct vm_area_struct *gate_vma, *vma = NULL; + struct mm_area *gate_vma, *vma = NULL; struct mm_struct *mm = current->mm; VMA_ITERATOR(vmi, mm, 0); int i = 0; diff --git a/fs/cramfs/inode.c b/fs/cramfs/inode.c index b84d1747a020..9147633db9eb 100644 --- a/fs/cramfs/inode.c +++ b/fs/cramfs/inode.c @@ -343,7 +343,7 @@ static bool cramfs_last_page_is_shared(struct inode *inode) return memchr_inv(tail_data, 0, PAGE_SIZE - partial) ? true : false; } -static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma) +static int cramfs_physmem_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); struct cramfs_sb_info *sbi = CRAMFS_SB(inode->i_sb); @@ -435,7 +435,7 @@ static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma) #else /* CONFIG_MMU */ -static int cramfs_physmem_mmap(struct file *file, struct vm_area_struct *vma) +static int cramfs_physmem_mmap(struct file *file, struct mm_area *vma) { return is_nommu_shared_mapping(vma->vm_flags) ? 0 : -ENOSYS; } diff --git a/fs/dax.c b/fs/dax.c index af5045b0f476..a9c552127d9f 100644 --- a/fs/dax.c +++ b/fs/dax.c @@ -439,7 +439,7 @@ static void dax_folio_init(void *entry) } static void dax_associate_entry(void *entry, struct address_space *mapping, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long address, bool shared) { unsigned long size = dax_entry_size(entry), index; @@ -1038,7 +1038,7 @@ static int copy_cow_page_dax(struct vm_fault *vmf, const struct iomap_iter *iter * flushed on write-faults (non-cow), but not read-faults. */ static bool dax_fault_is_synchronous(const struct iomap_iter *iter, - struct vm_area_struct *vma) + struct mm_area *vma) { return (iter->flags & IOMAP_WRITE) && (vma->vm_flags & VM_SYNC) && (iter->iomap.flags & IOMAP_F_DIRTY); @@ -1114,7 +1114,7 @@ static int dax_writeback_one(struct xa_state *xas, struct dax_device *dax_dev, { unsigned long pfn, index, count, end; long ret = 0; - struct vm_area_struct *vma; + struct mm_area *vma; /* * A page got tagged dirty in DAX mapping? Something is seriously @@ -1388,7 +1388,7 @@ static vm_fault_t dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf, { struct address_space *mapping = vmf->vma->vm_file->f_mapping; unsigned long pmd_addr = vmf->address & PMD_MASK; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct inode *inode = mapping->host; pgtable_t pgtable = NULL; struct folio *zero_folio; diff --git a/fs/ecryptfs/file.c b/fs/ecryptfs/file.c index ce0a3c5ed0ca..ed71003a5b20 100644 --- a/fs/ecryptfs/file.c +++ b/fs/ecryptfs/file.c @@ -185,7 +185,7 @@ static int read_or_initialize_metadata(struct dentry *dentry) return rc; } -static int ecryptfs_mmap(struct file *file, struct vm_area_struct *vma) +static int ecryptfs_mmap(struct file *file, struct mm_area *vma) { struct file *lower_file = ecryptfs_file_to_lower(file); /* diff --git a/fs/erofs/data.c b/fs/erofs/data.c index 2409d2ab0c28..05444e3d9326 100644 --- a/fs/erofs/data.c +++ b/fs/erofs/data.c @@ -408,7 +408,7 @@ static const struct vm_operations_struct erofs_dax_vm_ops = { .huge_fault = erofs_dax_huge_fault, }; -static int erofs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int erofs_file_mmap(struct file *file, struct mm_area *vma) { if (!IS_DAX(file_inode(file))) return generic_file_readonly_mmap(file, vma); diff --git a/fs/exec.c b/fs/exec.c index f511409b8cd5..c6c2cddb8cc7 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -198,7 +198,7 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos, int write) { struct page *page; - struct vm_area_struct *vma = bprm->vma; + struct mm_area *vma = bprm->vma; struct mm_struct *mm = bprm->mm; int ret; @@ -245,7 +245,7 @@ static void flush_arg_page(struct linux_binprm *bprm, unsigned long pos, static int __bprm_mm_init(struct linux_binprm *bprm) { int err; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct mm_struct *mm = bprm->mm; bprm->vma = vma = vm_area_alloc(mm); @@ -363,7 +363,7 @@ static bool valid_arg_len(struct linux_binprm *bprm, long len) /* * Create a new mm_struct and populate it with a temporary stack - * vm_area_struct. We don't have enough context at this point to set the stack + * mm_area. We don't have enough context at this point to set the stack * flags, permissions, and offset, so we use temporary values. We'll update * them later in setup_arg_pages(). */ @@ -702,7 +702,7 @@ static int copy_strings_kernel(int argc, const char *const *argv, #ifdef CONFIG_MMU /* - * Finalizes the stack vm_area_struct. The flags and permissions are updated, + * Finalizes the stack mm_area. The flags and permissions are updated, * the stack is optionally relocated, and some extra space is added. */ int setup_arg_pages(struct linux_binprm *bprm, @@ -712,8 +712,8 @@ int setup_arg_pages(struct linux_binprm *bprm, unsigned long ret; unsigned long stack_shift; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = bprm->vma; - struct vm_area_struct *prev = NULL; + struct mm_area *vma = bprm->vma; + struct mm_area *prev = NULL; unsigned long vm_flags; unsigned long stack_base; unsigned long stack_size; diff --git a/fs/exfat/file.c b/fs/exfat/file.c index 841a5b18e3df..ae38e3545f0e 100644 --- a/fs/exfat/file.c +++ b/fs/exfat/file.c @@ -651,7 +651,7 @@ static ssize_t exfat_file_read_iter(struct kiocb *iocb, struct iov_iter *iter) static vm_fault_t exfat_page_mkwrite(struct vm_fault *vmf) { int err; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct file *file = vma->vm_file; struct inode *inode = file_inode(file); struct exfat_inode_info *ei = EXFAT_I(inode); @@ -683,7 +683,7 @@ static const struct vm_operations_struct exfat_file_vm_ops = { .page_mkwrite = exfat_page_mkwrite, }; -static int exfat_file_mmap(struct file *file, struct vm_area_struct *vma) +static int exfat_file_mmap(struct file *file, struct mm_area *vma) { if (unlikely(exfat_forced_shutdown(file_inode(file)->i_sb))) return -EIO; diff --git a/fs/ext2/file.c b/fs/ext2/file.c index 10b061ac5bc0..cfa6459d23f8 100644 --- a/fs/ext2/file.c +++ b/fs/ext2/file.c @@ -122,7 +122,7 @@ static const struct vm_operations_struct ext2_dax_vm_ops = { .pfn_mkwrite = ext2_dax_fault, }; -static int ext2_file_mmap(struct file *file, struct vm_area_struct *vma) +static int ext2_file_mmap(struct file *file, struct mm_area *vma) { if (!IS_DAX(file_inode(file))) return generic_file_mmap(file, vma); diff --git a/fs/ext4/file.c b/fs/ext4/file.c index beb078ee4811..f2bf09c18e64 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -799,7 +799,7 @@ static const struct vm_operations_struct ext4_file_vm_ops = { .page_mkwrite = ext4_page_mkwrite, }; -static int ext4_file_mmap(struct file *file, struct vm_area_struct *vma) +static int ext4_file_mmap(struct file *file, struct mm_area *vma) { int ret; struct inode *inode = file->f_mapping->host; diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index 1dc09ed5d403..335fe55c24d2 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -6172,7 +6172,7 @@ static int ext4_bh_unmapped(handle_t *handle, struct inode *inode, vm_fault_t ext4_page_mkwrite(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio = page_folio(vmf->page); loff_t size; unsigned long len; diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index abbcbb5865a3..1423c6e7e488 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -532,7 +532,7 @@ static loff_t f2fs_llseek(struct file *file, loff_t offset, int whence) return -EINVAL; } -static int f2fs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int f2fs_file_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); diff --git a/fs/fuse/dax.c b/fs/fuse/dax.c index 0502bf3cdf6a..72cb7b6a361c 100644 --- a/fs/fuse/dax.c +++ b/fs/fuse/dax.c @@ -821,7 +821,7 @@ static const struct vm_operations_struct fuse_dax_vm_ops = { .pfn_mkwrite = fuse_dax_pfn_mkwrite, }; -int fuse_dax_mmap(struct file *file, struct vm_area_struct *vma) +int fuse_dax_mmap(struct file *file, struct mm_area *vma) { file_accessed(file); vma->vm_ops = &fuse_dax_vm_ops; diff --git a/fs/fuse/file.c b/fs/fuse/file.c index 754378dd9f71..f75907398e60 100644 --- a/fs/fuse/file.c +++ b/fs/fuse/file.c @@ -2576,7 +2576,7 @@ static int fuse_launder_folio(struct folio *folio) * Write back dirty data/metadata now (there may not be any suitable * open files later for data) */ -static void fuse_vma_close(struct vm_area_struct *vma) +static void fuse_vma_close(struct mm_area *vma) { int err; @@ -2622,7 +2622,7 @@ static const struct vm_operations_struct fuse_file_vm_ops = { .page_mkwrite = fuse_page_mkwrite, }; -static int fuse_file_mmap(struct file *file, struct vm_area_struct *vma) +static int fuse_file_mmap(struct file *file, struct mm_area *vma) { struct fuse_file *ff = file->private_data; struct fuse_conn *fc = ff->fm->fc; diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index d56d4fd956db..d86e9e62dbfc 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h @@ -1470,7 +1470,7 @@ void fuse_free_conn(struct fuse_conn *fc); ssize_t fuse_dax_read_iter(struct kiocb *iocb, struct iov_iter *to); ssize_t fuse_dax_write_iter(struct kiocb *iocb, struct iov_iter *from); -int fuse_dax_mmap(struct file *file, struct vm_area_struct *vma); +int fuse_dax_mmap(struct file *file, struct mm_area *vma); int fuse_dax_break_layouts(struct inode *inode, u64 dmap_start, u64 dmap_end); int fuse_dax_conn_alloc(struct fuse_conn *fc, enum fuse_dax_mode mode, struct dax_device *dax_dev); @@ -1567,7 +1567,7 @@ ssize_t fuse_passthrough_splice_read(struct file *in, loff_t *ppos, ssize_t fuse_passthrough_splice_write(struct pipe_inode_info *pipe, struct file *out, loff_t *ppos, size_t len, unsigned int flags); -ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma); +ssize_t fuse_passthrough_mmap(struct file *file, struct mm_area *vma); #ifdef CONFIG_SYSCTL extern int fuse_sysctl_register(void); diff --git a/fs/fuse/passthrough.c b/fs/fuse/passthrough.c index 607ef735ad4a..6245304c35f2 100644 --- a/fs/fuse/passthrough.c +++ b/fs/fuse/passthrough.c @@ -129,7 +129,7 @@ ssize_t fuse_passthrough_splice_write(struct pipe_inode_info *pipe, return ret; } -ssize_t fuse_passthrough_mmap(struct file *file, struct vm_area_struct *vma) +ssize_t fuse_passthrough_mmap(struct file *file, struct mm_area *vma) { struct fuse_file *ff = file->private_data; struct file *backing_file = fuse_file_passthrough(ff); diff --git a/fs/gfs2/file.c b/fs/gfs2/file.c index fd1147aa3891..21c6af00183e 100644 --- a/fs/gfs2/file.c +++ b/fs/gfs2/file.c @@ -588,7 +588,7 @@ static const struct vm_operations_struct gfs2_vm_ops = { * Returns: 0 */ -static int gfs2_mmap(struct file *file, struct vm_area_struct *vma) +static int gfs2_mmap(struct file *file, struct mm_area *vma) { struct gfs2_inode *ip = GFS2_I(file->f_mapping->host); diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c index e4de5425838d..33c1e3dd8b90 100644 --- a/fs/hugetlbfs/inode.c +++ b/fs/hugetlbfs/inode.c @@ -96,7 +96,7 @@ static const struct fs_parameter_spec hugetlb_fs_parameters[] = { #define PGOFF_LOFFT_MAX \ (((1UL << (PAGE_SHIFT + 1)) - 1) << (BITS_PER_LONG - (PAGE_SHIFT + 1))) -static int hugetlbfs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int hugetlbfs_file_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); loff_t len, vma_len; @@ -340,7 +340,7 @@ static void hugetlb_delete_from_page_cache(struct folio *folio) * mutex for the page in the mapping. So, we can not race with page being * faulted into the vma. */ -static bool hugetlb_vma_maps_pfn(struct vm_area_struct *vma, +static bool hugetlb_vma_maps_pfn(struct mm_area *vma, unsigned long addr, unsigned long pfn) { pte_t *ptep, pte; @@ -365,7 +365,7 @@ static bool hugetlb_vma_maps_pfn(struct vm_area_struct *vma, * which overlap the truncated area starting at pgoff, * and no vma on a 32-bit arch can span beyond the 4GB. */ -static unsigned long vma_offset_start(struct vm_area_struct *vma, pgoff_t start) +static unsigned long vma_offset_start(struct mm_area *vma, pgoff_t start) { unsigned long offset = 0; @@ -375,7 +375,7 @@ static unsigned long vma_offset_start(struct vm_area_struct *vma, pgoff_t start) return vma->vm_start + offset; } -static unsigned long vma_offset_end(struct vm_area_struct *vma, pgoff_t end) +static unsigned long vma_offset_end(struct mm_area *vma, pgoff_t end) { unsigned long t_end; @@ -399,7 +399,7 @@ static void hugetlb_unmap_file_folio(struct hstate *h, struct rb_root_cached *root = &mapping->i_mmap; struct hugetlb_vma_lock *vma_lock; unsigned long pfn = folio_pfn(folio); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long v_start; unsigned long v_end; pgoff_t start, end; @@ -479,7 +479,7 @@ static void hugetlb_vmdelete_list(struct rb_root_cached *root, pgoff_t start, pgoff_t end, zap_flags_t zap_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; /* * end == 0 indicates that the entire range after start should be @@ -730,7 +730,7 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset, struct hugetlbfs_inode_info *info = HUGETLBFS_I(inode); struct address_space *mapping = inode->i_mapping; struct hstate *h = hstate_inode(inode); - struct vm_area_struct pseudo_vma; + struct mm_area pseudo_vma; struct mm_struct *mm = current->mm; loff_t hpage_size = huge_page_size(h); unsigned long hpage_shift = huge_page_shift(h); diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c index 66fe8fe41f06..cd6ff826d3f5 100644 --- a/fs/kernfs/file.c +++ b/fs/kernfs/file.c @@ -349,7 +349,7 @@ static ssize_t kernfs_fop_write_iter(struct kiocb *iocb, struct iov_iter *iter) return len; } -static void kernfs_vma_open(struct vm_area_struct *vma) +static void kernfs_vma_open(struct mm_area *vma) { struct file *file = vma->vm_file; struct kernfs_open_file *of = kernfs_of(file); @@ -408,7 +408,7 @@ static vm_fault_t kernfs_vma_page_mkwrite(struct vm_fault *vmf) return ret; } -static int kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr, +static int kernfs_vma_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { struct file *file = vma->vm_file; @@ -436,7 +436,7 @@ static const struct vm_operations_struct kernfs_vm_ops = { .access = kernfs_vma_access, }; -static int kernfs_fop_mmap(struct file *file, struct vm_area_struct *vma) +static int kernfs_fop_mmap(struct file *file, struct mm_area *vma) { struct kernfs_open_file *of = kernfs_of(file); const struct kernfs_ops *ops; diff --git a/fs/nfs/file.c b/fs/nfs/file.c index 033feeab8c34..62e293a33325 100644 --- a/fs/nfs/file.c +++ b/fs/nfs/file.c @@ -207,7 +207,7 @@ nfs_file_splice_read(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe EXPORT_SYMBOL_GPL(nfs_file_splice_read); int -nfs_file_mmap(struct file *file, struct vm_area_struct *vma) +nfs_file_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); int status; diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h index ec8d32d0e2e9..007e50305767 100644 --- a/fs/nfs/internal.h +++ b/fs/nfs/internal.h @@ -432,7 +432,7 @@ loff_t nfs_file_llseek(struct file *, loff_t, int); ssize_t nfs_file_read(struct kiocb *, struct iov_iter *); ssize_t nfs_file_splice_read(struct file *in, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags); -int nfs_file_mmap(struct file *, struct vm_area_struct *); +int nfs_file_mmap(struct file *, struct mm_area *); ssize_t nfs_file_write(struct kiocb *, struct iov_iter *); int nfs_file_release(struct inode *, struct file *); int nfs_lock(struct file *, int, struct file_lock *); diff --git a/fs/nilfs2/file.c b/fs/nilfs2/file.c index 0e3fc5ba33c7..3e424224cb56 100644 --- a/fs/nilfs2/file.c +++ b/fs/nilfs2/file.c @@ -44,7 +44,7 @@ int nilfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync) static vm_fault_t nilfs_page_mkwrite(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio = page_folio(vmf->page); struct inode *inode = file_inode(vma->vm_file); struct nilfs_transaction_info ti; @@ -125,7 +125,7 @@ static const struct vm_operations_struct nilfs_file_vm_ops = { .page_mkwrite = nilfs_page_mkwrite, }; -static int nilfs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int nilfs_file_mmap(struct file *file, struct mm_area *vma) { file_accessed(file); vma->vm_ops = &nilfs_file_vm_ops; diff --git a/fs/ntfs3/file.c b/fs/ntfs3/file.c index 9b6a3f8d2e7c..72370c69d6dc 100644 --- a/fs/ntfs3/file.c +++ b/fs/ntfs3/file.c @@ -347,7 +347,7 @@ static int ntfs_zero_range(struct inode *inode, u64 vbo, u64 vbo_to) /* * ntfs_file_mmap - file_operations::mmap */ -static int ntfs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int ntfs_file_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); struct ntfs_inode *ni = ntfs_i(inode); diff --git a/fs/ocfs2/mmap.c b/fs/ocfs2/mmap.c index 6a314e9f2b49..9586d4d287e7 100644 --- a/fs/ocfs2/mmap.c +++ b/fs/ocfs2/mmap.c @@ -30,7 +30,7 @@ static vm_fault_t ocfs2_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; sigset_t oldset; vm_fault_t ret; @@ -159,7 +159,7 @@ static const struct vm_operations_struct ocfs2_file_vm_ops = { .page_mkwrite = ocfs2_page_mkwrite, }; -int ocfs2_mmap(struct file *file, struct vm_area_struct *vma) +int ocfs2_mmap(struct file *file, struct mm_area *vma) { int ret = 0, lock_level = 0; diff --git a/fs/ocfs2/mmap.h b/fs/ocfs2/mmap.h index 1051507cc684..8cf4bc586fb2 100644 --- a/fs/ocfs2/mmap.h +++ b/fs/ocfs2/mmap.h @@ -2,6 +2,6 @@ #ifndef OCFS2_MMAP_H #define OCFS2_MMAP_H -int ocfs2_mmap(struct file *file, struct vm_area_struct *vma); +int ocfs2_mmap(struct file *file, struct mm_area *vma); #endif /* OCFS2_MMAP_H */ diff --git a/fs/orangefs/file.c b/fs/orangefs/file.c index 90c49c0de243..290e33bad497 100644 --- a/fs/orangefs/file.c +++ b/fs/orangefs/file.c @@ -398,7 +398,7 @@ static const struct vm_operations_struct orangefs_file_vm_ops = { /* * Memory map a region of a file. */ -static int orangefs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int orangefs_file_mmap(struct file *file, struct mm_area *vma) { int ret; diff --git a/fs/overlayfs/file.c b/fs/overlayfs/file.c index 969b458100fe..400f63fc2408 100644 --- a/fs/overlayfs/file.c +++ b/fs/overlayfs/file.c @@ -476,7 +476,7 @@ static int ovl_fsync(struct file *file, loff_t start, loff_t end, int datasync) return ret; } -static int ovl_mmap(struct file *file, struct vm_area_struct *vma) +static int ovl_mmap(struct file *file, struct mm_area *vma) { struct ovl_file *of = file->private_data; struct backing_file_ctx ctx = { diff --git a/fs/proc/base.c b/fs/proc/base.c index b0d4e1908b22..4f23e14bee67 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2244,7 +2244,7 @@ static const struct dentry_operations tid_map_files_dentry_operations = { static int map_files_get_link(struct dentry *dentry, struct path *path) { unsigned long vm_start, vm_end; - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *task; struct mm_struct *mm; int rc; @@ -2341,7 +2341,7 @@ static struct dentry *proc_map_files_lookup(struct inode *dir, struct dentry *dentry, unsigned int flags) { unsigned long vm_start, vm_end; - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *task; struct dentry *result; struct mm_struct *mm; @@ -2395,7 +2395,7 @@ static const struct inode_operations proc_map_files_inode_operations = { static int proc_map_files_readdir(struct file *file, struct dir_context *ctx) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *task; struct mm_struct *mm; unsigned long nr_files, pos, i; diff --git a/fs/proc/inode.c b/fs/proc/inode.c index a3eb3b740f76..d5a6e680a0bd 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -412,7 +412,7 @@ static long proc_reg_compat_ioctl(struct file *file, unsigned int cmd, unsigned } #endif -static int pde_mmap(struct proc_dir_entry *pde, struct file *file, struct vm_area_struct *vma) +static int pde_mmap(struct proc_dir_entry *pde, struct file *file, struct mm_area *vma) { __auto_type mmap = pde->proc_ops->proc_mmap; if (mmap) @@ -420,7 +420,7 @@ static int pde_mmap(struct proc_dir_entry *pde, struct file *file, struct vm_are return -EIO; } -static int proc_reg_mmap(struct file *file, struct vm_area_struct *vma) +static int proc_reg_mmap(struct file *file, struct mm_area *vma) { struct proc_dir_entry *pde = PDE(file_inode(file)); int rv = -EIO; diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c index 994cde10e3f4..66a47c2a2b98 100644 --- a/fs/proc/task_mmu.c +++ b/fs/proc/task_mmu.c @@ -127,10 +127,10 @@ static void release_task_mempolicy(struct proc_maps_private *priv) } #endif -static struct vm_area_struct *proc_get_vma(struct proc_maps_private *priv, +static struct mm_area *proc_get_vma(struct proc_maps_private *priv, loff_t *ppos) { - struct vm_area_struct *vma = vma_next(&priv->iter); + struct mm_area *vma = vma_next(&priv->iter); if (vma) { *ppos = vma->vm_start; @@ -240,7 +240,7 @@ static int do_maps_open(struct inode *inode, struct file *file, sizeof(struct proc_maps_private)); } -static void get_vma_name(struct vm_area_struct *vma, +static void get_vma_name(struct mm_area *vma, const struct path **path, const char **name, const char **name_fmt) @@ -322,7 +322,7 @@ static void show_vma_header_prefix(struct seq_file *m, } static void -show_map_vma(struct seq_file *m, struct vm_area_struct *vma) +show_map_vma(struct seq_file *m, struct mm_area *vma) { const struct path *path; const char *name_fmt, *name; @@ -394,20 +394,20 @@ static int query_vma_setup(struct mm_struct *mm) return mmap_read_lock_killable(mm); } -static void query_vma_teardown(struct mm_struct *mm, struct vm_area_struct *vma) +static void query_vma_teardown(struct mm_struct *mm, struct mm_area *vma) { mmap_read_unlock(mm); } -static struct vm_area_struct *query_vma_find_by_addr(struct mm_struct *mm, unsigned long addr) +static struct mm_area *query_vma_find_by_addr(struct mm_struct *mm, unsigned long addr) { return find_vma(mm, addr); } -static struct vm_area_struct *query_matching_vma(struct mm_struct *mm, +static struct mm_area *query_matching_vma(struct mm_struct *mm, unsigned long addr, u32 flags) { - struct vm_area_struct *vma; + struct mm_area *vma; next_vma: vma = query_vma_find_by_addr(mm, addr); @@ -454,7 +454,7 @@ static struct vm_area_struct *query_matching_vma(struct mm_struct *mm, static int do_procmap_query(struct proc_maps_private *priv, void __user *uarg) { struct procmap_query karg; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; const char *name = NULL; char build_id_buf[BUILD_ID_SIZE_MAX], *name_buf = NULL; @@ -780,7 +780,7 @@ static int smaps_pte_hole(unsigned long addr, unsigned long end, __always_unused int depth, struct mm_walk *walk) { struct mem_size_stats *mss = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; mss->swap += shmem_partial_swap_usage(walk->vma->vm_file->f_mapping, linear_page_index(vma, addr), @@ -806,7 +806,7 @@ static void smaps_pte_entry(pte_t *pte, unsigned long addr, struct mm_walk *walk) { struct mem_size_stats *mss = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; bool locked = !!(vma->vm_flags & VM_LOCKED); struct page *page = NULL; bool present = false, young = false, dirty = false; @@ -854,7 +854,7 @@ static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, struct mm_walk *walk) { struct mem_size_stats *mss = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; bool locked = !!(vma->vm_flags & VM_LOCKED); struct page *page = NULL; bool present = false; @@ -894,7 +894,7 @@ static void smaps_pmd_entry(pmd_t *pmd, unsigned long addr, static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; pte_t *pte; spinlock_t *ptl; @@ -918,7 +918,7 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, return 0; } -static void show_smap_vma_flags(struct seq_file *m, struct vm_area_struct *vma) +static void show_smap_vma_flags(struct seq_file *m, struct mm_area *vma) { /* * Don't forget to update Documentation/ on changes. @@ -1019,7 +1019,7 @@ static int smaps_hugetlb_range(pte_t *pte, unsigned long hmask, struct mm_walk *walk) { struct mem_size_stats *mss = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; pte_t ptent = huge_ptep_get(walk->mm, addr, pte); struct folio *folio = NULL; bool present = false; @@ -1067,7 +1067,7 @@ static const struct mm_walk_ops smaps_shmem_walk_ops = { * * Use vm_start of @vma as the beginning address if @start is 0. */ -static void smap_gather_stats(struct vm_area_struct *vma, +static void smap_gather_stats(struct mm_area *vma, struct mem_size_stats *mss, unsigned long start) { const struct mm_walk_ops *ops = &smaps_walk_ops; @@ -1150,7 +1150,7 @@ static void __show_smap(struct seq_file *m, const struct mem_size_stats *mss, static int show_smap(struct seq_file *m, void *v) { - struct vm_area_struct *vma = v; + struct mm_area *vma = v; struct mem_size_stats mss = {}; smap_gather_stats(vma, &mss, 0); @@ -1180,7 +1180,7 @@ static int show_smaps_rollup(struct seq_file *m, void *v) struct proc_maps_private *priv = m->private; struct mem_size_stats mss = {}; struct mm_struct *mm = priv->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long vma_start = 0, last_vma_end = 0; int ret = 0; VMA_ITERATOR(vmi, mm, 0); @@ -1380,7 +1380,7 @@ struct clear_refs_private { #ifdef CONFIG_MEM_SOFT_DIRTY -static inline bool pte_is_pinned(struct vm_area_struct *vma, unsigned long addr, pte_t pte) +static inline bool pte_is_pinned(struct mm_area *vma, unsigned long addr, pte_t pte) { struct folio *folio; @@ -1396,7 +1396,7 @@ static inline bool pte_is_pinned(struct vm_area_struct *vma, unsigned long addr, return folio_maybe_dma_pinned(folio); } -static inline void clear_soft_dirty(struct vm_area_struct *vma, +static inline void clear_soft_dirty(struct mm_area *vma, unsigned long addr, pte_t *pte) { /* @@ -1422,14 +1422,14 @@ static inline void clear_soft_dirty(struct vm_area_struct *vma, } } #else -static inline void clear_soft_dirty(struct vm_area_struct *vma, +static inline void clear_soft_dirty(struct mm_area *vma, unsigned long addr, pte_t *pte) { } #endif #if defined(CONFIG_MEM_SOFT_DIRTY) && defined(CONFIG_TRANSPARENT_HUGEPAGE) -static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, +static inline void clear_soft_dirty_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { pmd_t old, pmd = *pmdp; @@ -1452,7 +1452,7 @@ static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, } } #else -static inline void clear_soft_dirty_pmd(struct vm_area_struct *vma, +static inline void clear_soft_dirty_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { } @@ -1462,7 +1462,7 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { struct clear_refs_private *cp = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; pte_t *pte, ptent; spinlock_t *ptl; struct folio *folio; @@ -1522,7 +1522,7 @@ static int clear_refs_test_walk(unsigned long start, unsigned long end, struct mm_walk *walk) { struct clear_refs_private *cp = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; if (vma->vm_flags & VM_PFNMAP) return 1; @@ -1552,7 +1552,7 @@ static ssize_t clear_refs_write(struct file *file, const char __user *buf, struct task_struct *task; char buffer[PROC_NUMBUF] = {}; struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; enum clear_refs_types type; int itype; int rv; @@ -1680,7 +1680,7 @@ static int pagemap_pte_hole(unsigned long start, unsigned long end, int err = 0; while (addr < end) { - struct vm_area_struct *vma = find_vma(walk->mm, addr); + struct mm_area *vma = find_vma(walk->mm, addr); pagemap_entry_t pme = make_pme(0, 0); /* End of address space hole, which we mark as non-present. */ unsigned long hole_end; @@ -1713,7 +1713,7 @@ static int pagemap_pte_hole(unsigned long start, unsigned long end, } static pagemap_entry_t pte_to_pagemap_entry(struct pagemapread *pm, - struct vm_area_struct *vma, unsigned long addr, pte_t pte) + struct mm_area *vma, unsigned long addr, pte_t pte) { u64 frame = 0, flags = 0; struct page *page = NULL; @@ -1774,7 +1774,7 @@ static pagemap_entry_t pte_to_pagemap_entry(struct pagemapread *pm, static int pagemap_pmd_range(pmd_t *pmdp, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; struct pagemapread *pm = walk->private; spinlock_t *ptl; pte_t *pte, *orig_pte; @@ -1887,7 +1887,7 @@ static int pagemap_hugetlb_range(pte_t *ptep, unsigned long hmask, struct mm_walk *walk) { struct pagemapread *pm = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; u64 flags = 0, frame = 0; int err = 0; pte_t pte; @@ -2099,7 +2099,7 @@ struct pagemap_scan_private { }; static unsigned long pagemap_page_category(struct pagemap_scan_private *p, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t pte) { unsigned long categories = 0; @@ -2141,7 +2141,7 @@ static unsigned long pagemap_page_category(struct pagemap_scan_private *p, return categories; } -static void make_uffd_wp_pte(struct vm_area_struct *vma, +static void make_uffd_wp_pte(struct mm_area *vma, unsigned long addr, pte_t *pte, pte_t ptent) { if (pte_present(ptent)) { @@ -2161,7 +2161,7 @@ static void make_uffd_wp_pte(struct vm_area_struct *vma, #ifdef CONFIG_TRANSPARENT_HUGEPAGE static unsigned long pagemap_thp_category(struct pagemap_scan_private *p, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pmd_t pmd) { unsigned long categories = PAGE_IS_HUGE; @@ -2203,7 +2203,7 @@ static unsigned long pagemap_thp_category(struct pagemap_scan_private *p, return categories; } -static void make_uffd_wp_pmd(struct vm_area_struct *vma, +static void make_uffd_wp_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmdp) { pmd_t old, pmd = *pmdp; @@ -2250,7 +2250,7 @@ static unsigned long pagemap_hugetlb_category(pte_t pte) return categories; } -static void make_uffd_wp_huge_pte(struct vm_area_struct *vma, +static void make_uffd_wp_huge_pte(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t ptent) { @@ -2316,7 +2316,7 @@ static int pagemap_scan_test_walk(unsigned long start, unsigned long end, struct mm_walk *walk) { struct pagemap_scan_private *p = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned long vma_category = 0; bool wp_allowed = userfaultfd_wp_async(vma) && userfaultfd_wp_use_markers(vma); @@ -2423,7 +2423,7 @@ static int pagemap_scan_thp_entry(pmd_t *pmd, unsigned long start, { #ifdef CONFIG_TRANSPARENT_HUGEPAGE struct pagemap_scan_private *p = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned long categories; spinlock_t *ptl; int ret = 0; @@ -2473,7 +2473,7 @@ static int pagemap_scan_pmd_entry(pmd_t *pmd, unsigned long start, unsigned long end, struct mm_walk *walk) { struct pagemap_scan_private *p = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned long addr, flush_end = 0; pte_t *pte, *start_pte; spinlock_t *ptl; @@ -2573,7 +2573,7 @@ static int pagemap_scan_hugetlb_entry(pte_t *ptep, unsigned long hmask, struct mm_walk *walk) { struct pagemap_scan_private *p = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned long categories; spinlock_t *ptl; int ret = 0; @@ -2632,7 +2632,7 @@ static int pagemap_scan_pte_hole(unsigned long addr, unsigned long end, int depth, struct mm_walk *walk) { struct pagemap_scan_private *p = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; int ret, err; if (!vma || !pagemap_scan_is_interesting_page(p->cur_vma_category, p)) @@ -2905,7 +2905,7 @@ static void gather_stats(struct page *page, struct numa_maps *md, int pte_dirty, md->node[folio_nid(folio)] += nr_pages; } -static struct page *can_gather_numa_stats(pte_t pte, struct vm_area_struct *vma, +static struct page *can_gather_numa_stats(pte_t pte, struct mm_area *vma, unsigned long addr) { struct page *page; @@ -2930,7 +2930,7 @@ static struct page *can_gather_numa_stats(pte_t pte, struct vm_area_struct *vma, #ifdef CONFIG_TRANSPARENT_HUGEPAGE static struct page *can_gather_numa_stats_pmd(pmd_t pmd, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr) { struct page *page; @@ -2958,7 +2958,7 @@ static int gather_pte_stats(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { struct numa_maps *md = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; spinlock_t *ptl; pte_t *orig_pte; pte_t *pte; @@ -3032,7 +3032,7 @@ static int show_numa_map(struct seq_file *m, void *v) { struct numa_maps_private *numa_priv = m->private; struct proc_maps_private *proc_priv = &numa_priv->proc_maps; - struct vm_area_struct *vma = v; + struct mm_area *vma = v; struct numa_maps *md = &numa_priv->md; struct file *file = vma->vm_file; struct mm_struct *mm = vma->vm_mm; diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c index bce674533000..e45f014b5c81 100644 --- a/fs/proc/task_nommu.c +++ b/fs/proc/task_nommu.c @@ -21,7 +21,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_region *region; unsigned long bytes = 0, sbytes = 0, slack = 0, size; @@ -81,7 +81,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm) unsigned long task_vsize(struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long vsize = 0; mmap_read_lock(mm); @@ -96,7 +96,7 @@ unsigned long task_statm(struct mm_struct *mm, unsigned long *data, unsigned long *resident) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_region *region; unsigned long size = kobjsize(mm); @@ -124,7 +124,7 @@ unsigned long task_statm(struct mm_struct *mm, /* * display a single VMA to a sequenced file */ -static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma) +static int nommu_vma_show(struct seq_file *m, struct mm_area *vma) { struct mm_struct *mm = vma->vm_mm; unsigned long ino = 0; @@ -175,10 +175,10 @@ static int show_map(struct seq_file *m, void *_p) return nommu_vma_show(m, _p); } -static struct vm_area_struct *proc_get_vma(struct proc_maps_private *priv, +static struct mm_area *proc_get_vma(struct proc_maps_private *priv, loff_t *ppos) { - struct vm_area_struct *vma = vma_next(&priv->iter); + struct mm_area *vma = vma_next(&priv->iter); if (vma) { *ppos = vma->vm_start; diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c index 10d01eb09c43..8e84ff70f57e 100644 --- a/fs/proc/vmcore.c +++ b/fs/proc/vmcore.c @@ -249,7 +249,7 @@ ssize_t __weak elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos) /* * Architectures may override this function to map oldmem */ -int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma, +int __weak remap_oldmem_pfn_range(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { @@ -295,7 +295,7 @@ static int vmcoredd_copy_dumps(struct iov_iter *iter, u64 start, size_t size) } #ifdef CONFIG_MMU -static int vmcoredd_mmap_dumps(struct vm_area_struct *vma, unsigned long dst, +static int vmcoredd_mmap_dumps(struct mm_area *vma, unsigned long dst, u64 start, size_t size) { struct vmcoredd_node *dump; @@ -511,7 +511,7 @@ static const struct vm_operations_struct vmcore_mmap_ops = { * remap_oldmem_pfn_checked - do remap_oldmem_pfn_range replacing all pages * reported as not being ram with the zero page. * - * @vma: vm_area_struct describing requested mapping + * @vma: mm_area describing requested mapping * @from: start remapping from * @pfn: page frame number to start remapping to * @size: remapping size @@ -519,7 +519,7 @@ static const struct vm_operations_struct vmcore_mmap_ops = { * * Returns zero on success, -EAGAIN on failure. */ -static int remap_oldmem_pfn_checked(struct vm_area_struct *vma, +static int remap_oldmem_pfn_checked(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { @@ -569,7 +569,7 @@ static int remap_oldmem_pfn_checked(struct vm_area_struct *vma, return -EAGAIN; } -static int vmcore_remap_oldmem_pfn(struct vm_area_struct *vma, +static int vmcore_remap_oldmem_pfn(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot) { @@ -588,7 +588,7 @@ static int vmcore_remap_oldmem_pfn(struct vm_area_struct *vma, return ret; } -static int mmap_vmcore(struct file *file, struct vm_area_struct *vma) +static int mmap_vmcore(struct file *file, struct mm_area *vma) { size_t size = vma->vm_end - vma->vm_start; u64 start, end, len, tsz; @@ -701,7 +701,7 @@ static int mmap_vmcore(struct file *file, struct vm_area_struct *vma) return -EAGAIN; } #else -static int mmap_vmcore(struct file *file, struct vm_area_struct *vma) +static int mmap_vmcore(struct file *file, struct mm_area *vma) { return -ENOSYS; } diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c index 7a6d980e614d..39698a0acbf8 100644 --- a/fs/ramfs/file-nommu.c +++ b/fs/ramfs/file-nommu.c @@ -28,7 +28,7 @@ static unsigned long ramfs_nommu_get_unmapped_area(struct file *file, unsigned long len, unsigned long pgoff, unsigned long flags); -static int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma); +static int ramfs_nommu_mmap(struct file *file, struct mm_area *vma); static unsigned ramfs_mmap_capabilities(struct file *file) { @@ -262,7 +262,7 @@ static unsigned long ramfs_nommu_get_unmapped_area(struct file *file, /* * set up a mapping for shared memory segments */ -static int ramfs_nommu_mmap(struct file *file, struct vm_area_struct *vma) +static int ramfs_nommu_mmap(struct file *file, struct mm_area *vma) { if (!is_nommu_shared_mapping(vma->vm_flags)) return -ENOSYS; diff --git a/fs/romfs/mmap-nommu.c b/fs/romfs/mmap-nommu.c index 4520ca413867..704bc650e9fd 100644 --- a/fs/romfs/mmap-nommu.c +++ b/fs/romfs/mmap-nommu.c @@ -61,7 +61,7 @@ static unsigned long romfs_get_unmapped_area(struct file *file, * permit a R/O mapping to be made directly through onto an MTD device if * possible */ -static int romfs_mmap(struct file *file, struct vm_area_struct *vma) +static int romfs_mmap(struct file *file, struct mm_area *vma) { return is_nommu_shared_mapping(vma->vm_flags) ? 0 : -ENOSYS; } diff --git a/fs/smb/client/cifsfs.h b/fs/smb/client/cifsfs.h index 8dea0cf3a8de..cadb123692c1 100644 --- a/fs/smb/client/cifsfs.h +++ b/fs/smb/client/cifsfs.h @@ -103,8 +103,8 @@ extern int cifs_lock(struct file *, int, struct file_lock *); extern int cifs_fsync(struct file *, loff_t, loff_t, int); extern int cifs_strict_fsync(struct file *, loff_t, loff_t, int); extern int cifs_flush(struct file *, fl_owner_t id); -extern int cifs_file_mmap(struct file *file, struct vm_area_struct *vma); -extern int cifs_file_strict_mmap(struct file *file, struct vm_area_struct *vma); +extern int cifs_file_mmap(struct file *file, struct mm_area *vma); +extern int cifs_file_strict_mmap(struct file *file, struct mm_area *vma); extern const struct file_operations cifs_dir_ops; extern int cifs_readdir(struct file *file, struct dir_context *ctx); diff --git a/fs/smb/client/file.c b/fs/smb/client/file.c index 8407fb108664..ab822c809070 100644 --- a/fs/smb/client/file.c +++ b/fs/smb/client/file.c @@ -2964,7 +2964,7 @@ static const struct vm_operations_struct cifs_file_vm_ops = { .page_mkwrite = cifs_page_mkwrite, }; -int cifs_file_strict_mmap(struct file *file, struct vm_area_struct *vma) +int cifs_file_strict_mmap(struct file *file, struct mm_area *vma) { int xid, rc = 0; struct inode *inode = file_inode(file); @@ -2982,7 +2982,7 @@ int cifs_file_strict_mmap(struct file *file, struct vm_area_struct *vma) return rc; } -int cifs_file_mmap(struct file *file, struct vm_area_struct *vma) +int cifs_file_mmap(struct file *file, struct mm_area *vma) { int rc, xid; diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c index c3d3b079aedd..ebddf13bd010 100644 --- a/fs/sysfs/file.c +++ b/fs/sysfs/file.c @@ -171,7 +171,7 @@ static ssize_t sysfs_kf_bin_write(struct kernfs_open_file *of, char *buf, } static int sysfs_kf_bin_mmap(struct kernfs_open_file *of, - struct vm_area_struct *vma) + struct mm_area *vma) { struct bin_attribute *battr = of->kn->priv; struct kobject *kobj = sysfs_file_kobj(of->kn); diff --git a/fs/ubifs/file.c b/fs/ubifs/file.c index bf311c38d9a8..0f0256b04a4a 100644 --- a/fs/ubifs/file.c +++ b/fs/ubifs/file.c @@ -1579,7 +1579,7 @@ static const struct vm_operations_struct ubifs_file_vm_ops = { .page_mkwrite = ubifs_vm_page_mkwrite, }; -static int ubifs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int ubifs_file_mmap(struct file *file, struct mm_area *vma) { int err; diff --git a/fs/udf/file.c b/fs/udf/file.c index 0d76c4f37b3e..6d5fa7de4cb6 100644 --- a/fs/udf/file.c +++ b/fs/udf/file.c @@ -36,7 +36,7 @@ static vm_fault_t udf_page_mkwrite(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct inode *inode = file_inode(vma->vm_file); struct address_space *mapping = inode->i_mapping; struct folio *folio = page_folio(vmf->page); @@ -189,7 +189,7 @@ static int udf_release_file(struct inode *inode, struct file *filp) return 0; } -static int udf_file_mmap(struct file *file, struct vm_area_struct *vma) +static int udf_file_mmap(struct file *file, struct mm_area *vma) { file_accessed(file); vma->vm_ops = &udf_file_vm_ops; diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c index d80f94346199..ade022a5af5f 100644 --- a/fs/userfaultfd.c +++ b/fs/userfaultfd.c @@ -94,7 +94,7 @@ static bool userfaultfd_wp_async_ctx(struct userfaultfd_ctx *ctx) * meaningful when userfaultfd_wp()==true on the vma and when it's * anonymous. */ -bool userfaultfd_wp_unpopulated(struct vm_area_struct *vma) +bool userfaultfd_wp_unpopulated(struct mm_area *vma) { struct userfaultfd_ctx *ctx = vma->vm_userfaultfd_ctx.ctx; @@ -231,7 +231,7 @@ static inline bool userfaultfd_huge_must_wait(struct userfaultfd_ctx *ctx, struct vm_fault *vmf, unsigned long reason) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pte_t *ptep, pte; bool ret = true; @@ -362,7 +362,7 @@ static inline unsigned int userfaultfd_get_blocking_state(unsigned int flags) */ vm_fault_t handle_userfault(struct vm_fault *vmf, unsigned long reason) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *mm = vma->vm_mm; struct userfaultfd_ctx *ctx; struct userfaultfd_wait_queue uwq; @@ -614,7 +614,7 @@ static void userfaultfd_event_complete(struct userfaultfd_ctx *ctx, __remove_wait_queue(&ctx->event_wqh, &ewq->wq); } -int dup_userfaultfd(struct vm_area_struct *vma, struct list_head *fcs) +int dup_userfaultfd(struct mm_area *vma, struct list_head *fcs) { struct userfaultfd_ctx *ctx = NULL, *octx; struct userfaultfd_fork_ctx *fctx; @@ -719,7 +719,7 @@ void dup_userfaultfd_fail(struct list_head *fcs) } } -void mremap_userfaultfd_prep(struct vm_area_struct *vma, +void mremap_userfaultfd_prep(struct mm_area *vma, struct vm_userfaultfd_ctx *vm_ctx) { struct userfaultfd_ctx *ctx; @@ -766,7 +766,7 @@ void mremap_userfaultfd_complete(struct vm_userfaultfd_ctx *vm_ctx, userfaultfd_event_wait_completion(ctx, &ewq); } -bool userfaultfd_remove(struct vm_area_struct *vma, +bool userfaultfd_remove(struct mm_area *vma, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -807,7 +807,7 @@ static bool has_unmap_ctx(struct userfaultfd_ctx *ctx, struct list_head *unmaps, return false; } -int userfaultfd_unmap_prep(struct vm_area_struct *vma, unsigned long start, +int userfaultfd_unmap_prep(struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *unmaps) { struct userfaultfd_unmap_ctx *unmap_ctx; @@ -1239,7 +1239,7 @@ static int userfaultfd_register(struct userfaultfd_ctx *ctx, unsigned long arg) { struct mm_struct *mm = ctx->mm; - struct vm_area_struct *vma, *cur; + struct mm_area *vma, *cur; int ret; struct uffdio_register uffdio_register; struct uffdio_register __user *user_uffdio_register; @@ -1413,7 +1413,7 @@ static int userfaultfd_unregister(struct userfaultfd_ctx *ctx, unsigned long arg) { struct mm_struct *mm = ctx->mm; - struct vm_area_struct *vma, *prev, *cur; + struct mm_area *vma, *prev, *cur; int ret; struct uffdio_range uffdio_unregister; bool found; @@ -1845,7 +1845,7 @@ static inline int userfaultfd_poison(struct userfaultfd_ctx *ctx, unsigned long return ret; } -bool userfaultfd_wp_async(struct vm_area_struct *vma) +bool userfaultfd_wp_async(struct mm_area *vma) { return userfaultfd_wp_async_ctx(vma->vm_userfaultfd_ctx.ctx); } diff --git a/fs/vboxsf/file.c b/fs/vboxsf/file.c index b780deb81b02..a59e5521669f 100644 --- a/fs/vboxsf/file.c +++ b/fs/vboxsf/file.c @@ -154,7 +154,7 @@ static int vboxsf_file_release(struct inode *inode, struct file *file) * Write back dirty pages now, because there may not be any suitable * open files later */ -static void vboxsf_vma_close(struct vm_area_struct *vma) +static void vboxsf_vma_close(struct mm_area *vma) { filemap_write_and_wait(vma->vm_file->f_mapping); } @@ -165,7 +165,7 @@ static const struct vm_operations_struct vboxsf_file_vm_ops = { .map_pages = filemap_map_pages, }; -static int vboxsf_file_mmap(struct file *file, struct vm_area_struct *vma) +static int vboxsf_file_mmap(struct file *file, struct mm_area *vma) { int err; diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 84f08c976ac4..afe9512ae66f 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -1846,7 +1846,7 @@ static const struct vm_operations_struct xfs_file_vm_ops = { STATIC int xfs_file_mmap( struct file *file, - struct vm_area_struct *vma) + struct mm_area *vma) { struct inode *inode = file_inode(file); struct xfs_buftarg *target = xfs_inode_buftarg(XFS_I(inode)); diff --git a/fs/zonefs/file.c b/fs/zonefs/file.c index 42e2c0065bb3..09a25e7ae36b 100644 --- a/fs/zonefs/file.c +++ b/fs/zonefs/file.c @@ -312,7 +312,7 @@ static const struct vm_operations_struct zonefs_file_vm_ops = { .page_mkwrite = zonefs_filemap_page_mkwrite, }; -static int zonefs_file_mmap(struct file *file, struct vm_area_struct *vma) +static int zonefs_file_mmap(struct file *file, struct mm_area *vma) { /* * Conventional zones accept random writes, so their files can support diff --git a/include/asm-generic/cacheflush.h b/include/asm-generic/cacheflush.h index 7ee8a179d103..968dcbb599df 100644 --- a/include/asm-generic/cacheflush.h +++ b/include/asm-generic/cacheflush.h @@ -5,7 +5,7 @@ #include struct mm_struct; -struct vm_area_struct; +struct mm_area; struct page; struct address_space; @@ -32,7 +32,7 @@ static inline void flush_cache_dup_mm(struct mm_struct *mm) #endif #ifndef flush_cache_range -static inline void flush_cache_range(struct vm_area_struct *vma, +static inline void flush_cache_range(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -40,7 +40,7 @@ static inline void flush_cache_range(struct vm_area_struct *vma, #endif #ifndef flush_cache_page -static inline void flush_cache_page(struct vm_area_struct *vma, +static inline void flush_cache_page(struct mm_area *vma, unsigned long vmaddr, unsigned long pfn) { @@ -78,7 +78,7 @@ static inline void flush_icache_range(unsigned long start, unsigned long end) #endif #ifndef flush_icache_user_page -static inline void flush_icache_user_page(struct vm_area_struct *vma, +static inline void flush_icache_user_page(struct mm_area *vma, struct page *page, unsigned long addr, int len) { diff --git a/include/asm-generic/hugetlb.h b/include/asm-generic/hugetlb.h index 2afc95bf1655..837360772416 100644 --- a/include/asm-generic/hugetlb.h +++ b/include/asm-generic/hugetlb.h @@ -97,7 +97,7 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm, #endif #ifndef __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { return ptep_clear_flush(vma, addr, ptep); @@ -136,7 +136,7 @@ static inline void huge_ptep_set_wrprotect(struct mm_struct *mm, #endif #ifndef __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS -static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma, +static inline int huge_ptep_set_access_flags(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte, int dirty) { diff --git a/include/asm-generic/mm_hooks.h b/include/asm-generic/mm_hooks.h index 6eea3b3c1e65..58db73bbd76f 100644 --- a/include/asm-generic/mm_hooks.h +++ b/include/asm-generic/mm_hooks.h @@ -17,7 +17,7 @@ static inline void arch_exit_mmap(struct mm_struct *mm) { } -static inline bool arch_vma_access_permitted(struct vm_area_struct *vma, +static inline bool arch_vma_access_permitted(struct mm_area *vma, bool write, bool execute, bool foreign) { /* by default, allow everything */ diff --git a/include/asm-generic/tlb.h b/include/asm-generic/tlb.h index 88a42973fa47..a86739bc57db 100644 --- a/include/asm-generic/tlb.h +++ b/include/asm-generic/tlb.h @@ -292,7 +292,7 @@ bool __tlb_remove_folio_pages(struct mmu_gather *tlb, struct page *page, * function, except we define it before the 'struct mmu_gather'. */ #define tlb_delay_rmap(tlb) (((tlb)->delayed_rmap = 1), true) -extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma); +extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct mm_area *vma); #endif #endif @@ -306,7 +306,7 @@ extern void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma); */ #ifndef tlb_delay_rmap #define tlb_delay_rmap(tlb) (false) -static inline void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) { } +static inline void tlb_flush_rmaps(struct mmu_gather *tlb, struct mm_area *vma) { } #endif /* @@ -435,7 +435,7 @@ static inline void tlb_flush(struct mmu_gather *tlb) if (tlb->fullmm || tlb->need_flush_all) { flush_tlb_mm(tlb->mm); } else if (tlb->end) { - struct vm_area_struct vma = { + struct mm_area vma = { .vm_mm = tlb->mm, .vm_flags = (tlb->vma_exec ? VM_EXEC : 0) | (tlb->vma_huge ? VM_HUGETLB : 0), @@ -449,7 +449,7 @@ static inline void tlb_flush(struct mmu_gather *tlb) #endif /* CONFIG_MMU_GATHER_NO_RANGE */ static inline void -tlb_update_vma_flags(struct mmu_gather *tlb, struct vm_area_struct *vma) +tlb_update_vma_flags(struct mmu_gather *tlb, struct mm_area *vma) { /* * flush_tlb_range() implementations that look at VM_HUGETLB (tile, @@ -535,7 +535,7 @@ static inline unsigned long tlb_get_unmap_size(struct mmu_gather *tlb) * case where we're doing a full MM flush. When we're doing a munmap, * the vmas are adjusted to only cover the region to be torn down. */ -static inline void tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) +static inline void tlb_start_vma(struct mmu_gather *tlb, struct mm_area *vma) { if (tlb->fullmm) return; @@ -546,7 +546,7 @@ static inline void tlb_start_vma(struct mmu_gather *tlb, struct vm_area_struct * #endif } -static inline void tlb_end_vma(struct mmu_gather *tlb, struct vm_area_struct *vma) +static inline void tlb_end_vma(struct mmu_gather *tlb, struct mm_area *vma) { if (tlb->fullmm) return; diff --git a/include/drm/drm_gem.h b/include/drm/drm_gem.h index 2bf893eabb4b..84a5e980adee 100644 --- a/include/drm/drm_gem.h +++ b/include/drm/drm_gem.h @@ -186,7 +186,7 @@ struct drm_gem_object_funcs { * drm_gem_prime_mmap(). When @mmap is present @vm_ops is not * used, the @mmap callback must set vma->vm_ops instead. */ - int (*mmap)(struct drm_gem_object *obj, struct vm_area_struct *vma); + int (*mmap)(struct drm_gem_object *obj, struct mm_area *vma); /** * @evict: @@ -482,11 +482,11 @@ int drm_gem_object_init_with_mnt(struct drm_device *dev, void drm_gem_private_object_init(struct drm_device *dev, struct drm_gem_object *obj, size_t size); void drm_gem_private_object_fini(struct drm_gem_object *obj); -void drm_gem_vm_open(struct vm_area_struct *vma); -void drm_gem_vm_close(struct vm_area_struct *vma); +void drm_gem_vm_open(struct mm_area *vma); +void drm_gem_vm_close(struct mm_area *vma); int drm_gem_mmap_obj(struct drm_gem_object *obj, unsigned long obj_size, - struct vm_area_struct *vma); -int drm_gem_mmap(struct file *filp, struct vm_area_struct *vma); + struct mm_area *vma); +int drm_gem_mmap(struct file *filp, struct mm_area *vma); /** * drm_gem_object_get - acquire a GEM buffer object reference diff --git a/include/drm/drm_gem_dma_helper.h b/include/drm/drm_gem_dma_helper.h index f2678e7ecb98..d097e0a46ceb 100644 --- a/include/drm/drm_gem_dma_helper.h +++ b/include/drm/drm_gem_dma_helper.h @@ -40,7 +40,7 @@ void drm_gem_dma_print_info(const struct drm_gem_dma_object *dma_obj, struct sg_table *drm_gem_dma_get_sg_table(struct drm_gem_dma_object *dma_obj); int drm_gem_dma_vmap(struct drm_gem_dma_object *dma_obj, struct iosys_map *map); -int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct vm_area_struct *vma); +int drm_gem_dma_mmap(struct drm_gem_dma_object *dma_obj, struct mm_area *vma); extern const struct vm_operations_struct drm_gem_dma_vm_ops; @@ -126,7 +126,7 @@ static inline int drm_gem_dma_object_vmap(struct drm_gem_object *obj, * Returns: * 0 on success or a negative error code on failure. */ -static inline int drm_gem_dma_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static inline int drm_gem_dma_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct drm_gem_dma_object *dma_obj = to_drm_gem_dma_obj(obj); diff --git a/include/drm/drm_gem_shmem_helper.h b/include/drm/drm_gem_shmem_helper.h index cef5a6b5a4d6..3126f47424b4 100644 --- a/include/drm/drm_gem_shmem_helper.h +++ b/include/drm/drm_gem_shmem_helper.h @@ -109,7 +109,7 @@ int drm_gem_shmem_vmap(struct drm_gem_shmem_object *shmem, struct iosys_map *map); void drm_gem_shmem_vunmap(struct drm_gem_shmem_object *shmem, struct iosys_map *map); -int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct vm_area_struct *vma); +int drm_gem_shmem_mmap(struct drm_gem_shmem_object *shmem, struct mm_area *vma); int drm_gem_shmem_pin_locked(struct drm_gem_shmem_object *shmem); void drm_gem_shmem_unpin_locked(struct drm_gem_shmem_object *shmem); @@ -259,7 +259,7 @@ static inline void drm_gem_shmem_object_vunmap(struct drm_gem_object *obj, * Returns: * 0 on success or a negative error code on failure. */ -static inline int drm_gem_shmem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma) +static inline int drm_gem_shmem_object_mmap(struct drm_gem_object *obj, struct mm_area *vma) { struct drm_gem_shmem_object *shmem = to_drm_gem_shmem_obj(obj); diff --git a/include/drm/drm_gem_ttm_helper.h b/include/drm/drm_gem_ttm_helper.h index 7b53d673ae7e..2147aea16d62 100644 --- a/include/drm/drm_gem_ttm_helper.h +++ b/include/drm/drm_gem_ttm_helper.h @@ -21,7 +21,7 @@ int drm_gem_ttm_vmap(struct drm_gem_object *gem, void drm_gem_ttm_vunmap(struct drm_gem_object *gem, struct iosys_map *map); int drm_gem_ttm_mmap(struct drm_gem_object *gem, - struct vm_area_struct *vma); + struct mm_area *vma); int drm_gem_ttm_dumb_map_offset(struct drm_file *file, struct drm_device *dev, uint32_t handle, uint64_t *offset); diff --git a/include/drm/drm_gem_vram_helper.h b/include/drm/drm_gem_vram_helper.h index 00830b49a3ff..395692607569 100644 --- a/include/drm/drm_gem_vram_helper.h +++ b/include/drm/drm_gem_vram_helper.h @@ -18,7 +18,7 @@ struct drm_mode_create_dumb; struct drm_plane; struct drm_plane_state; struct filp; -struct vm_area_struct; +struct mm_area; #define DRM_GEM_VRAM_PL_FLAG_SYSTEM (1 << 0) #define DRM_GEM_VRAM_PL_FLAG_VRAM (1 << 1) diff --git a/include/drm/drm_prime.h b/include/drm/drm_prime.h index fa085c44d4ca..feb9e2202049 100644 --- a/include/drm/drm_prime.h +++ b/include/drm/drm_prime.h @@ -89,8 +89,8 @@ void drm_gem_unmap_dma_buf(struct dma_buf_attachment *attach, int drm_gem_dmabuf_vmap(struct dma_buf *dma_buf, struct iosys_map *map); void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, struct iosys_map *map); -int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma); -int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma); +int drm_gem_prime_mmap(struct drm_gem_object *obj, struct mm_area *vma); +int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct mm_area *vma); struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev, struct page **pages, unsigned int nr_pages); diff --git a/include/drm/ttm/ttm_bo.h b/include/drm/ttm/ttm_bo.h index 903cd1030110..cbfc05424ea7 100644 --- a/include/drm/ttm/ttm_bo.h +++ b/include/drm/ttm/ttm_bo.h @@ -433,7 +433,7 @@ int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page, void ttm_bo_kunmap(struct ttm_bo_kmap_obj *map); int ttm_bo_vmap(struct ttm_buffer_object *bo, struct iosys_map *map); void ttm_bo_vunmap(struct ttm_buffer_object *bo, struct iosys_map *map); -int ttm_bo_mmap_obj(struct vm_area_struct *vma, struct ttm_buffer_object *bo); +int ttm_bo_mmap_obj(struct mm_area *vma, struct ttm_buffer_object *bo); s64 ttm_bo_swapout(struct ttm_device *bdev, struct ttm_operation_ctx *ctx, struct ttm_resource_manager *man, gfp_t gfp_flags, s64 target); @@ -450,9 +450,9 @@ vm_fault_t ttm_bo_vm_fault_reserved(struct vm_fault *vmf, pgprot_t prot, pgoff_t num_prefault); vm_fault_t ttm_bo_vm_fault(struct vm_fault *vmf); -void ttm_bo_vm_open(struct vm_area_struct *vma); -void ttm_bo_vm_close(struct vm_area_struct *vma); -int ttm_bo_vm_access(struct vm_area_struct *vma, unsigned long addr, +void ttm_bo_vm_open(struct mm_area *vma); +void ttm_bo_vm_close(struct mm_area *vma); +int ttm_bo_vm_access(struct mm_area *vma, unsigned long addr, void *buf, int len, int write); vm_fault_t ttm_bo_vm_dummy_page(struct vm_fault *vmf, pgprot_t prot); diff --git a/include/linux/backing-file.h b/include/linux/backing-file.h index 1476a6ed1bfd..ec845c283a65 100644 --- a/include/linux/backing-file.h +++ b/include/linux/backing-file.h @@ -38,7 +38,7 @@ ssize_t backing_file_splice_write(struct pipe_inode_info *pipe, struct file *out, struct kiocb *iocb, size_t len, unsigned int flags, struct backing_file_ctx *ctx); -int backing_file_mmap(struct file *file, struct vm_area_struct *vma, +int backing_file_mmap(struct file *file, struct mm_area *vma, struct backing_file_ctx *ctx); #endif /* _LINUX_BACKING_FILE_H */ diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h index 1625c8529e70..bf4593304fe5 100644 --- a/include/linux/binfmts.h +++ b/include/linux/binfmts.h @@ -17,7 +17,7 @@ struct coredump_params; */ struct linux_binprm { #ifdef CONFIG_MMU - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long vma_pages; unsigned long argmin; /* rlimit marker for copy_strings() */ #else diff --git a/include/linux/bpf.h b/include/linux/bpf.h index 3f0cc89c0622..1a62e5398dfd 100644 --- a/include/linux/bpf.h +++ b/include/linux/bpf.h @@ -138,7 +138,7 @@ struct bpf_map_ops { u64 *imm, u32 off); int (*map_direct_value_meta)(const struct bpf_map *map, u64 imm, u32 *off); - int (*map_mmap)(struct bpf_map *map, struct vm_area_struct *vma); + int (*map_mmap)(struct bpf_map *map, struct mm_area *vma); __poll_t (*map_poll)(struct bpf_map *map, struct file *filp, struct poll_table_struct *pts); unsigned long (*map_get_unmapped_area)(struct file *filep, unsigned long addr, diff --git a/include/linux/btf_ids.h b/include/linux/btf_ids.h index 139bdececdcf..3a040583a4b2 100644 --- a/include/linux/btf_ids.h +++ b/include/linux/btf_ids.h @@ -270,7 +270,7 @@ extern u32 btf_sock_ids[]; #define BTF_TRACING_TYPE_xxx \ BTF_TRACING_TYPE(BTF_TRACING_TYPE_TASK, task_struct) \ BTF_TRACING_TYPE(BTF_TRACING_TYPE_FILE, file) \ - BTF_TRACING_TYPE(BTF_TRACING_TYPE_VMA, vm_area_struct) + BTF_TRACING_TYPE(BTF_TRACING_TYPE_VMA, mm_area) enum { #define BTF_TRACING_TYPE(name, type) name, diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h index f0a4ad7839b6..3b16880622f2 100644 --- a/include/linux/buffer_head.h +++ b/include/linux/buffer_head.h @@ -271,7 +271,7 @@ int cont_write_begin(struct file *, struct address_space *, loff_t, get_block_t *, loff_t *); int generic_cont_expand_simple(struct inode *inode, loff_t size); void block_commit_write(struct folio *folio, size_t from, size_t to); -int block_page_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf, +int block_page_mkwrite(struct mm_area *vma, struct vm_fault *vmf, get_block_t get_block); sector_t generic_block_bmap(struct address_space *, sector_t, get_block_t *); int block_truncate_page(struct address_space *, loff_t, get_block_t *); diff --git a/include/linux/buildid.h b/include/linux/buildid.h index 014a88c41073..ccb20bbf6a32 100644 --- a/include/linux/buildid.h +++ b/include/linux/buildid.h @@ -6,9 +6,9 @@ #define BUILD_ID_SIZE_MAX 20 -struct vm_area_struct; -int build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); -int build_id_parse_nofault(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size); +struct mm_area; +int build_id_parse(struct mm_area *vma, unsigned char *build_id, __u32 *size); +int build_id_parse_nofault(struct mm_area *vma, unsigned char *build_id, __u32 *size); int build_id_parse_buf(const void *buf, unsigned char *build_id, u32 buf_size); #if IS_ENABLED(CONFIG_STACKTRACE_BUILD_ID) || IS_ENABLED(CONFIG_VMCORE_INFO) diff --git a/include/linux/cacheflush.h b/include/linux/cacheflush.h index 55f297b2c23f..81e334b23709 100644 --- a/include/linux/cacheflush.h +++ b/include/linux/cacheflush.h @@ -18,7 +18,7 @@ static inline void flush_dcache_folio(struct folio *folio) #endif /* ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE */ #ifndef flush_icache_pages -static inline void flush_icache_pages(struct vm_area_struct *vma, +static inline void flush_icache_pages(struct mm_area *vma, struct page *page, unsigned int nr) { } diff --git a/include/linux/configfs.h b/include/linux/configfs.h index c771e9d0d0b9..2fc8bc945f7c 100644 --- a/include/linux/configfs.h +++ b/include/linux/configfs.h @@ -146,7 +146,7 @@ static struct configfs_attribute _pfx##attr_##_name = { \ } struct file; -struct vm_area_struct; +struct mm_area; struct configfs_bin_attribute { struct configfs_attribute cb_attr; /* std. attribute */ diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h index 2f2555e6407c..28c31aa4abf3 100644 --- a/include/linux/crash_dump.h +++ b/include/linux/crash_dump.h @@ -22,7 +22,7 @@ extern ssize_t elfcorehdr_read(char *buf, size_t count, u64 *ppos); extern ssize_t elfcorehdr_read_notes(char *buf, size_t count, u64 *ppos); void elfcorehdr_fill_device_ram_ptload_elf64(Elf64_Phdr *phdr, unsigned long long paddr, unsigned long long size); -extern int remap_oldmem_pfn_range(struct vm_area_struct *vma, +extern int remap_oldmem_pfn_range(struct mm_area *vma, unsigned long from, unsigned long pfn, unsigned long size, pgprot_t prot); diff --git a/include/linux/dax.h b/include/linux/dax.h index dcc9fcdf14e4..92e61f46d8b2 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -65,7 +65,7 @@ size_t dax_recovery_write(struct dax_device *dax_dev, pgoff_t pgoff, /* * Check if given mapping is supported by the file / underlying device. */ -static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, +static inline bool daxdev_mapping_supported(struct mm_area *vma, struct dax_device *dax_dev) { if (!(vma->vm_flags & VM_SYNC)) @@ -110,7 +110,7 @@ static inline void set_dax_nomc(struct dax_device *dax_dev) static inline void set_dax_synchronous(struct dax_device *dax_dev) { } -static inline bool daxdev_mapping_supported(struct vm_area_struct *vma, +static inline bool daxdev_mapping_supported(struct mm_area *vma, struct dax_device *dax_dev) { return !(vma->vm_flags & VM_SYNC); diff --git a/include/linux/dma-buf.h b/include/linux/dma-buf.h index 36216d28d8bd..8aa15c4fd02f 100644 --- a/include/linux/dma-buf.h +++ b/include/linux/dma-buf.h @@ -281,7 +281,7 @@ struct dma_buf_ops { * * 0 on success or a negative error code on failure. */ - int (*mmap)(struct dma_buf *, struct vm_area_struct *vma); + int (*mmap)(struct dma_buf *, struct mm_area *vma); int (*vmap)(struct dma_buf *dmabuf, struct iosys_map *map); void (*vunmap)(struct dma_buf *dmabuf, struct iosys_map *map); @@ -630,7 +630,7 @@ void dma_buf_unmap_attachment_unlocked(struct dma_buf_attachment *attach, struct sg_table *sg_table, enum dma_data_direction direction); -int dma_buf_mmap(struct dma_buf *, struct vm_area_struct *, +int dma_buf_mmap(struct dma_buf *, struct mm_area *, unsigned long); int dma_buf_vmap(struct dma_buf *dmabuf, struct iosys_map *map); void dma_buf_vunmap(struct dma_buf *dmabuf, struct iosys_map *map); diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h index e172522cd936..c6bdde002279 100644 --- a/include/linux/dma-map-ops.h +++ b/include/linux/dma-map-ops.h @@ -24,7 +24,7 @@ struct dma_map_ops { gfp_t gfp); void (*free_pages)(struct device *dev, size_t size, struct page *vaddr, dma_addr_t dma_handle, enum dma_data_direction dir); - int (*mmap)(struct device *, struct vm_area_struct *, + int (*mmap)(struct device *, struct mm_area *, void *, dma_addr_t, size_t, unsigned long attrs); int (*get_sgtable)(struct device *dev, struct sg_table *sgt, @@ -162,7 +162,7 @@ void dma_release_coherent_memory(struct device *dev); int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size, dma_addr_t *dma_handle, void **ret); int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr); -int dma_mmap_from_dev_coherent(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_from_dev_coherent(struct device *dev, struct mm_area *vma, void *cpu_addr, size_t size, int *ret); #else static inline int dma_declare_coherent_memory(struct device *dev, @@ -181,7 +181,7 @@ static inline void dma_release_coherent_memory(struct device *dev) { } void *dma_alloc_from_global_coherent(struct device *dev, ssize_t size, dma_addr_t *dma_handle); int dma_release_from_global_coherent(int order, void *vaddr); -int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *cpu_addr, +int dma_mmap_from_global_coherent(struct mm_area *vma, void *cpu_addr, size_t size, int *ret); int dma_init_global_coherent(phys_addr_t phys_addr, size_t size); #else @@ -194,7 +194,7 @@ static inline int dma_release_from_global_coherent(int order, void *vaddr) { return 0; } -static inline int dma_mmap_from_global_coherent(struct vm_area_struct *vma, +static inline int dma_mmap_from_global_coherent(struct mm_area *vma, void *cpu_addr, size_t size, int *ret) { return 0; @@ -204,7 +204,7 @@ static inline int dma_mmap_from_global_coherent(struct vm_area_struct *vma, int dma_common_get_sgtable(struct device *dev, struct sg_table *sgt, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); -int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, +int dma_common_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); struct page *dma_common_alloc_pages(struct device *dev, size_t size, diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h index b79925b1c433..06e43bf6536d 100644 --- a/include/linux/dma-mapping.h +++ b/include/linux/dma-mapping.h @@ -124,7 +124,7 @@ void dmam_free_coherent(struct device *dev, size_t size, void *vaddr, int dma_get_sgtable_attrs(struct device *dev, struct sg_table *sgt, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); -int dma_mmap_attrs(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_attrs(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); bool dma_can_mmap(struct device *dev); @@ -143,7 +143,7 @@ void dma_free_noncontiguous(struct device *dev, size_t size, void *dma_vmap_noncontiguous(struct device *dev, size_t size, struct sg_table *sgt); void dma_vunmap_noncontiguous(struct device *dev, void *vaddr); -int dma_mmap_noncontiguous(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_noncontiguous(struct device *dev, struct mm_area *vma, size_t size, struct sg_table *sgt); #else /* CONFIG_HAS_DMA */ static inline dma_addr_t dma_map_page_attrs(struct device *dev, @@ -210,7 +210,7 @@ static inline int dma_get_sgtable_attrs(struct device *dev, { return -ENXIO; } -static inline int dma_mmap_attrs(struct device *dev, struct vm_area_struct *vma, +static inline int dma_mmap_attrs(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { @@ -271,7 +271,7 @@ static inline void dma_vunmap_noncontiguous(struct device *dev, void *vaddr) { } static inline int dma_mmap_noncontiguous(struct device *dev, - struct vm_area_struct *vma, size_t size, struct sg_table *sgt) + struct mm_area *vma, size_t size, struct sg_table *sgt) { return -EINVAL; } @@ -357,7 +357,7 @@ struct page *dma_alloc_pages(struct device *dev, size_t size, dma_addr_t *dma_handle, enum dma_data_direction dir, gfp_t gfp); void dma_free_pages(struct device *dev, size_t size, struct page *page, dma_addr_t dma_handle, enum dma_data_direction dir); -int dma_mmap_pages(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_pages(struct device *dev, struct mm_area *vma, size_t size, struct page *page); static inline void *dma_alloc_noncoherent(struct device *dev, size_t size, @@ -611,7 +611,7 @@ static inline void dma_free_wc(struct device *dev, size_t size, } static inline int dma_mmap_wc(struct device *dev, - struct vm_area_struct *vma, + struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size) { diff --git a/include/linux/fb.h b/include/linux/fb.h index cd653862ab99..f09a1e5e46a0 100644 --- a/include/linux/fb.h +++ b/include/linux/fb.h @@ -26,7 +26,7 @@ struct module; struct notifier_block; struct page; struct videomode; -struct vm_area_struct; +struct mm_area; /* Definitions below are used in the parsed monitor specs */ #define FB_DPMS_ACTIVE_OFF 1 @@ -302,7 +302,7 @@ struct fb_ops { unsigned long arg); /* perform fb specific mmap */ - int (*fb_mmap)(struct fb_info *info, struct vm_area_struct *vma); + int (*fb_mmap)(struct fb_info *info, struct mm_area *vma); /* get capability given var */ void (*fb_get_caps)(struct fb_info *info, struct fb_blit_caps *caps, @@ -555,7 +555,7 @@ extern ssize_t fb_io_read(struct fb_info *info, char __user *buf, size_t count, loff_t *ppos); extern ssize_t fb_io_write(struct fb_info *info, const char __user *buf, size_t count, loff_t *ppos); -int fb_io_mmap(struct fb_info *info, struct vm_area_struct *vma); +int fb_io_mmap(struct fb_info *info, struct mm_area *vma); #define __FB_DEFAULT_IOMEM_OPS_RDWR \ .fb_read = fb_io_read, \ @@ -648,7 +648,7 @@ static inline void __fb_pad_aligned_buffer(u8 *dst, u32 d_pitch, } /* fb_defio.c */ -int fb_deferred_io_mmap(struct fb_info *info, struct vm_area_struct *vma); +int fb_deferred_io_mmap(struct fb_info *info, struct mm_area *vma); extern int fb_deferred_io_init(struct fb_info *info); extern void fb_deferred_io_open(struct fb_info *info, struct inode *inode, diff --git a/include/linux/fs.h b/include/linux/fs.h index 016b0fe1536e..2be4d710cdad 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -65,7 +65,7 @@ struct kobject; struct pipe_inode_info; struct poll_table_struct; struct kstatfs; -struct vm_area_struct; +struct mm_area; struct vfsmount; struct cred; struct swap_info_struct; @@ -2140,7 +2140,7 @@ struct file_operations { __poll_t (*poll) (struct file *, struct poll_table_struct *); long (*unlocked_ioctl) (struct file *, unsigned int, unsigned long); long (*compat_ioctl) (struct file *, unsigned int, unsigned long); - int (*mmap) (struct file *, struct vm_area_struct *); + int (*mmap) (struct file *, struct mm_area *); int (*open) (struct inode *, struct file *); int (*flush) (struct file *, fl_owner_t id); int (*release) (struct inode *, struct file *); @@ -2238,7 +2238,7 @@ struct inode_operations { struct offset_ctx *(*get_offset_ctx)(struct inode *inode); } ____cacheline_aligned; -static inline int call_mmap(struct file *file, struct vm_area_struct *vma) +static inline int call_mmap(struct file *file, struct mm_area *vma) { return file->f_op->mmap(file, vma); } @@ -3341,8 +3341,8 @@ extern void inode_add_lru(struct inode *inode); extern int sb_set_blocksize(struct super_block *, int); extern int sb_min_blocksize(struct super_block *, int); -extern int generic_file_mmap(struct file *, struct vm_area_struct *); -extern int generic_file_readonly_mmap(struct file *, struct vm_area_struct *); +extern int generic_file_mmap(struct file *, struct mm_area *); +extern int generic_file_readonly_mmap(struct file *, struct mm_area *); extern ssize_t generic_write_checks(struct kiocb *, struct iov_iter *); int generic_write_checks_count(struct kiocb *iocb, loff_t *count); extern int generic_write_check_limits(struct file *file, loff_t pos, @@ -3666,12 +3666,12 @@ void setattr_copy(struct mnt_idmap *, struct inode *inode, extern int file_update_time(struct file *file); -static inline bool vma_is_dax(const struct vm_area_struct *vma) +static inline bool vma_is_dax(const struct mm_area *vma) { return vma->vm_file && IS_DAX(vma->vm_file->f_mapping->host); } -static inline bool vma_is_fsdax(struct vm_area_struct *vma) +static inline bool vma_is_fsdax(struct mm_area *vma) { struct inode *inode; diff --git a/include/linux/gfp.h b/include/linux/gfp.h index c9fa6309c903..1198056004c8 100644 --- a/include/linux/gfp.h +++ b/include/linux/gfp.h @@ -9,7 +9,7 @@ #include #include -struct vm_area_struct; +struct mm_area; struct mempolicy; /* Convert GFP flags to their corresponding migrate type */ @@ -318,7 +318,7 @@ struct page *alloc_pages_noprof(gfp_t gfp, unsigned int order); struct folio *folio_alloc_noprof(gfp_t gfp, unsigned int order); struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int order, struct mempolicy *mpol, pgoff_t ilx, int nid); -struct folio *vma_alloc_folio_noprof(gfp_t gfp, int order, struct vm_area_struct *vma, +struct folio *vma_alloc_folio_noprof(gfp_t gfp, int order, struct mm_area *vma, unsigned long addr); #else static inline struct page *alloc_pages_noprof(gfp_t gfp_mask, unsigned int order) @@ -346,7 +346,7 @@ static inline struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int orde #define alloc_page(gfp_mask) alloc_pages(gfp_mask, 0) static inline struct page *alloc_page_vma_noprof(gfp_t gfp, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { struct folio *folio = vma_alloc_folio_noprof(gfp, 0, vma, addr); @@ -420,7 +420,7 @@ static inline bool gfp_compaction_allowed(gfp_t gfp_mask) return IS_ENABLED(CONFIG_COMPACTION) && (gfp_mask & __GFP_IO); } -extern gfp_t vma_thp_gfp_mask(struct vm_area_struct *vma); +extern gfp_t vma_thp_gfp_mask(struct mm_area *vma); #ifdef CONFIG_CONTIG_ALLOC /* The below functions must be run on a range from a single zone. */ diff --git a/include/linux/highmem.h b/include/linux/highmem.h index 5c6bea81a90e..76601fc06fab 100644 --- a/include/linux/highmem.h +++ b/include/linux/highmem.h @@ -183,7 +183,7 @@ static inline unsigned long nr_free_highpages(void); static inline unsigned long totalhigh_pages(void); #ifndef ARCH_HAS_FLUSH_ANON_PAGE -static inline void flush_anon_page(struct vm_area_struct *vma, struct page *page, unsigned long vmaddr) +static inline void flush_anon_page(struct mm_area *vma, struct page *page, unsigned long vmaddr) { } #endif @@ -221,7 +221,7 @@ static inline void clear_user_highpage(struct page *page, unsigned long vaddr) * we are out of memory. */ static inline -struct folio *vma_alloc_zeroed_movable_folio(struct vm_area_struct *vma, +struct folio *vma_alloc_zeroed_movable_folio(struct mm_area *vma, unsigned long vaddr) { struct folio *folio; @@ -301,7 +301,7 @@ static inline void zero_user(struct page *page, #ifndef __HAVE_ARCH_COPY_USER_HIGHPAGE static inline void copy_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { char *vfrom, *vto; @@ -339,7 +339,7 @@ static inline void copy_highpage(struct page *to, struct page *from) * of bytes not copied if there was a #MC, otherwise 0 for success. */ static inline int copy_mc_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { unsigned long ret; char *vfrom, *vto; @@ -378,7 +378,7 @@ static inline int copy_mc_highpage(struct page *to, struct page *from) } #else static inline int copy_mc_user_highpage(struct page *to, struct page *from, - unsigned long vaddr, struct vm_area_struct *vma) + unsigned long vaddr, struct mm_area *vma) { copy_user_highpage(to, from, vaddr, vma); return 0; diff --git a/include/linux/huge_mm.h b/include/linux/huge_mm.h index e893d546a49f..b8c548e672b0 100644 --- a/include/linux/huge_mm.h +++ b/include/linux/huge_mm.h @@ -10,11 +10,11 @@ vm_fault_t do_huge_pmd_anonymous_page(struct vm_fault *vmf); int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, - struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma); + struct mm_area *dst_vma, struct mm_area *src_vma); void huge_pmd_set_accessed(struct vm_fault *vmf); int copy_huge_pud(struct mm_struct *dst_mm, struct mm_struct *src_mm, pud_t *dst_pud, pud_t *src_pud, unsigned long addr, - struct vm_area_struct *vma); + struct mm_area *vma); #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD void huge_pud_set_accessed(struct vm_fault *vmf, pud_t orig_pud); @@ -25,15 +25,15 @@ static inline void huge_pud_set_accessed(struct vm_fault *vmf, pud_t orig_pud) #endif vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf); -bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, +bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr, unsigned long next); -int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, pmd_t *pmd, +int zap_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr); -int zap_huge_pud(struct mmu_gather *tlb, struct vm_area_struct *vma, pud_t *pud, +int zap_huge_pud(struct mmu_gather *tlb, struct mm_area *vma, pud_t *pud, unsigned long addr); -bool move_huge_pmd(struct vm_area_struct *vma, unsigned long old_addr, +bool move_huge_pmd(struct mm_area *vma, unsigned long old_addr, unsigned long new_addr, pmd_t *old_pmd, pmd_t *new_pmd); -int change_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, +int change_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr, pgprot_t newprot, unsigned long cp_flags); @@ -212,7 +212,7 @@ static inline int next_order(unsigned long *orders, int prev) * - For all vmas, check if the haddr is in an aligned hugepage * area. */ -static inline bool thp_vma_suitable_order(struct vm_area_struct *vma, +static inline bool thp_vma_suitable_order(struct mm_area *vma, unsigned long addr, int order) { unsigned long hpage_size = PAGE_SIZE << order; @@ -237,7 +237,7 @@ static inline bool thp_vma_suitable_order(struct vm_area_struct *vma, * See thp_vma_suitable_order(). * All orders that pass the checks are returned as a bitfield. */ -static inline unsigned long thp_vma_suitable_orders(struct vm_area_struct *vma, +static inline unsigned long thp_vma_suitable_orders(struct mm_area *vma, unsigned long addr, unsigned long orders) { int order; @@ -260,7 +260,7 @@ static inline unsigned long thp_vma_suitable_orders(struct vm_area_struct *vma, return orders; } -unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, +unsigned long __thp_vma_allowable_orders(struct mm_area *vma, unsigned long vm_flags, unsigned long tva_flags, unsigned long orders); @@ -281,7 +281,7 @@ unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, * orders are allowed. */ static inline -unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, +unsigned long thp_vma_allowable_orders(struct mm_area *vma, unsigned long vm_flags, unsigned long tva_flags, unsigned long orders) @@ -316,7 +316,7 @@ struct thpsize { (transparent_hugepage_flags & \ (1<= HPAGE_PMD_ORDER; } -struct page *follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, +struct page *follow_devmap_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap); vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf); @@ -502,9 +502,9 @@ static inline bool thp_migration_supported(void) return IS_ENABLED(CONFIG_ARCH_ENABLE_THP_MIGRATION); } -void split_huge_pmd_locked(struct vm_area_struct *vma, unsigned long address, +void split_huge_pmd_locked(struct mm_area *vma, unsigned long address, pmd_t *pmd, bool freeze, struct folio *folio); -bool unmap_huge_pmd_locked(struct vm_area_struct *vma, unsigned long addr, +bool unmap_huge_pmd_locked(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, struct folio *folio); #else /* CONFIG_TRANSPARENT_HUGEPAGE */ @@ -514,19 +514,19 @@ static inline bool folio_test_pmd_mappable(struct folio *folio) return false; } -static inline bool thp_vma_suitable_order(struct vm_area_struct *vma, +static inline bool thp_vma_suitable_order(struct mm_area *vma, unsigned long addr, int order) { return false; } -static inline unsigned long thp_vma_suitable_orders(struct vm_area_struct *vma, +static inline unsigned long thp_vma_suitable_orders(struct mm_area *vma, unsigned long addr, unsigned long orders) { return 0; } -static inline unsigned long thp_vma_allowable_orders(struct vm_area_struct *vma, +static inline unsigned long thp_vma_allowable_orders(struct mm_area *vma, unsigned long vm_flags, unsigned long tva_flags, unsigned long orders) @@ -577,15 +577,15 @@ static inline void deferred_split_folio(struct folio *folio, bool partially_mapp #define split_huge_pmd(__vma, __pmd, __address) \ do { } while (0) -static inline void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, +static inline void __split_huge_pmd(struct mm_area *vma, pmd_t *pmd, unsigned long address, bool freeze, struct folio *folio) {} -static inline void split_huge_pmd_address(struct vm_area_struct *vma, +static inline void split_huge_pmd_address(struct mm_area *vma, unsigned long address, bool freeze, struct folio *folio) {} -static inline void split_huge_pmd_locked(struct vm_area_struct *vma, +static inline void split_huge_pmd_locked(struct mm_area *vma, unsigned long address, pmd_t *pmd, bool freeze, struct folio *folio) {} -static inline bool unmap_huge_pmd_locked(struct vm_area_struct *vma, +static inline bool unmap_huge_pmd_locked(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, struct folio *folio) { @@ -595,23 +595,23 @@ static inline bool unmap_huge_pmd_locked(struct vm_area_struct *vma, #define split_huge_pud(__vma, __pmd, __address) \ do { } while (0) -static inline int hugepage_madvise(struct vm_area_struct *vma, +static inline int hugepage_madvise(struct mm_area *vma, unsigned long *vm_flags, int advice) { return -EINVAL; } -static inline int madvise_collapse(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static inline int madvise_collapse(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end) { return -EINVAL; } -static inline void vma_adjust_trans_huge(struct vm_area_struct *vma, +static inline void vma_adjust_trans_huge(struct mm_area *vma, unsigned long start, unsigned long end, - struct vm_area_struct *next) + struct mm_area *next) { } static inline int is_swap_pmd(pmd_t pmd) @@ -619,12 +619,12 @@ static inline int is_swap_pmd(pmd_t pmd) return 0; } static inline spinlock_t *pmd_trans_huge_lock(pmd_t *pmd, - struct vm_area_struct *vma) + struct mm_area *vma) { return NULL; } static inline spinlock_t *pud_trans_huge_lock(pud_t *pud, - struct vm_area_struct *vma) + struct mm_area *vma) { return NULL; } @@ -649,7 +649,7 @@ static inline void mm_put_huge_zero_folio(struct mm_struct *mm) return; } -static inline struct page *follow_devmap_pmd(struct vm_area_struct *vma, +static inline struct page *follow_devmap_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) { return NULL; @@ -670,13 +670,13 @@ static inline int next_order(unsigned long *orders, int prev) return 0; } -static inline void __split_huge_pud(struct vm_area_struct *vma, pud_t *pud, +static inline void __split_huge_pud(struct mm_area *vma, pud_t *pud, unsigned long address) { } static inline int change_huge_pud(struct mmu_gather *tlb, - struct vm_area_struct *vma, pud_t *pudp, + struct mm_area *vma, pud_t *pudp, unsigned long addr, pgprot_t newprot, unsigned long cp_flags) { diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h index 8f3ac832ee7f..96d446761d94 100644 --- a/include/linux/hugetlb.h +++ b/include/linux/hugetlb.h @@ -104,7 +104,7 @@ struct file_region { struct hugetlb_vma_lock { struct kref refs; struct rw_semaphore rw_sema; - struct vm_area_struct *vma; + struct mm_area *vma; }; extern struct resv_map *resv_map_alloc(void); @@ -119,37 +119,37 @@ struct hugepage_subpool *hugepage_new_subpool(struct hstate *h, long max_hpages, long min_hpages); void hugepage_put_subpool(struct hugepage_subpool *spool); -void hugetlb_dup_vma_private(struct vm_area_struct *vma); -void clear_vma_resv_huge_pages(struct vm_area_struct *vma); -int move_hugetlb_page_tables(struct vm_area_struct *vma, - struct vm_area_struct *new_vma, +void hugetlb_dup_vma_private(struct mm_area *vma); +void clear_vma_resv_huge_pages(struct mm_area *vma); +int move_hugetlb_page_tables(struct mm_area *vma, + struct mm_area *new_vma, unsigned long old_addr, unsigned long new_addr, unsigned long len); int copy_hugetlb_page_range(struct mm_struct *, struct mm_struct *, - struct vm_area_struct *, struct vm_area_struct *); -void unmap_hugepage_range(struct vm_area_struct *, + struct mm_area *, struct mm_area *); +void unmap_hugepage_range(struct mm_area *, unsigned long, unsigned long, struct page *, zap_flags_t); void __unmap_hugepage_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long start, unsigned long end, struct page *ref_page, zap_flags_t zap_flags); void hugetlb_report_meminfo(struct seq_file *); int hugetlb_report_node_meminfo(char *buf, int len, int nid); void hugetlb_show_meminfo_node(int nid); unsigned long hugetlb_total_pages(void); -vm_fault_t hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +vm_fault_t hugetlb_fault(struct mm_struct *mm, struct mm_area *vma, unsigned long address, unsigned int flags); #ifdef CONFIG_USERFAULTFD int hugetlb_mfill_atomic_pte(pte_t *dst_pte, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, struct folio **foliop); #endif /* CONFIG_USERFAULTFD */ bool hugetlb_reserve_pages(struct inode *inode, long from, long to, - struct vm_area_struct *vma, + struct mm_area *vma, vm_flags_t vm_flags); long hugetlb_unreserve_pages(struct inode *inode, long start, long end, long freed); @@ -163,10 +163,10 @@ void hugetlb_fix_reserve_counts(struct inode *inode); extern struct mutex *hugetlb_fault_mutex_table; u32 hugetlb_fault_mutex_hash(struct address_space *mapping, pgoff_t idx); -pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pmd_share(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pud_t *pud); bool hugetlbfs_pagecache_present(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long address); struct address_space *hugetlb_folio_mapping_lock_write(struct folio *folio); @@ -196,7 +196,7 @@ static inline pte_t *pte_alloc_huge(struct mm_struct *mm, pmd_t *pmd, } #endif -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz); /* * huge_pte_offset(): Walk the hugetlb pgtable until the last level PTE. @@ -238,51 +238,51 @@ pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, pte_t *huge_pte_offset(struct mm_struct *mm, unsigned long addr, unsigned long sz); unsigned long hugetlb_mask_last_page(struct hstate *h); -int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma, +int huge_pmd_unshare(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t *ptep); -void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma, +void adjust_range_if_pmd_sharing_possible(struct mm_area *vma, unsigned long *start, unsigned long *end); -extern void __hugetlb_zap_begin(struct vm_area_struct *vma, +extern void __hugetlb_zap_begin(struct mm_area *vma, unsigned long *begin, unsigned long *end); -extern void __hugetlb_zap_end(struct vm_area_struct *vma, +extern void __hugetlb_zap_end(struct mm_area *vma, struct zap_details *details); -static inline void hugetlb_zap_begin(struct vm_area_struct *vma, +static inline void hugetlb_zap_begin(struct mm_area *vma, unsigned long *start, unsigned long *end) { if (is_vm_hugetlb_page(vma)) __hugetlb_zap_begin(vma, start, end); } -static inline void hugetlb_zap_end(struct vm_area_struct *vma, +static inline void hugetlb_zap_end(struct mm_area *vma, struct zap_details *details) { if (is_vm_hugetlb_page(vma)) __hugetlb_zap_end(vma, details); } -void hugetlb_vma_lock_read(struct vm_area_struct *vma); -void hugetlb_vma_unlock_read(struct vm_area_struct *vma); -void hugetlb_vma_lock_write(struct vm_area_struct *vma); -void hugetlb_vma_unlock_write(struct vm_area_struct *vma); -int hugetlb_vma_trylock_write(struct vm_area_struct *vma); -void hugetlb_vma_assert_locked(struct vm_area_struct *vma); +void hugetlb_vma_lock_read(struct mm_area *vma); +void hugetlb_vma_unlock_read(struct mm_area *vma); +void hugetlb_vma_lock_write(struct mm_area *vma); +void hugetlb_vma_unlock_write(struct mm_area *vma); +int hugetlb_vma_trylock_write(struct mm_area *vma); +void hugetlb_vma_assert_locked(struct mm_area *vma); void hugetlb_vma_lock_release(struct kref *kref); -long hugetlb_change_protection(struct vm_area_struct *vma, +long hugetlb_change_protection(struct mm_area *vma, unsigned long address, unsigned long end, pgprot_t newprot, unsigned long cp_flags); bool is_hugetlb_entry_migration(pte_t pte); bool is_hugetlb_entry_hwpoisoned(pte_t pte); -void hugetlb_unshare_all_pmds(struct vm_area_struct *vma); +void hugetlb_unshare_all_pmds(struct mm_area *vma); #else /* !CONFIG_HUGETLB_PAGE */ -static inline void hugetlb_dup_vma_private(struct vm_area_struct *vma) +static inline void hugetlb_dup_vma_private(struct mm_area *vma) { } -static inline void clear_vma_resv_huge_pages(struct vm_area_struct *vma) +static inline void clear_vma_resv_huge_pages(struct mm_area *vma) { } @@ -298,41 +298,41 @@ static inline struct address_space *hugetlb_folio_mapping_lock_write( } static inline int huge_pmd_unshare(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t *ptep) { return 0; } static inline void adjust_range_if_pmd_sharing_possible( - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long *start, unsigned long *end) { } static inline void hugetlb_zap_begin( - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long *start, unsigned long *end) { } static inline void hugetlb_zap_end( - struct vm_area_struct *vma, + struct mm_area *vma, struct zap_details *details) { } static inline int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) + struct mm_area *dst_vma, + struct mm_area *src_vma) { BUG(); return 0; } -static inline int move_hugetlb_page_tables(struct vm_area_struct *vma, - struct vm_area_struct *new_vma, +static inline int move_hugetlb_page_tables(struct mm_area *vma, + struct mm_area *new_vma, unsigned long old_addr, unsigned long new_addr, unsigned long len) @@ -360,28 +360,28 @@ static inline int prepare_hugepage_range(struct file *file, return -EINVAL; } -static inline void hugetlb_vma_lock_read(struct vm_area_struct *vma) +static inline void hugetlb_vma_lock_read(struct mm_area *vma) { } -static inline void hugetlb_vma_unlock_read(struct vm_area_struct *vma) +static inline void hugetlb_vma_unlock_read(struct mm_area *vma) { } -static inline void hugetlb_vma_lock_write(struct vm_area_struct *vma) +static inline void hugetlb_vma_lock_write(struct mm_area *vma) { } -static inline void hugetlb_vma_unlock_write(struct vm_area_struct *vma) +static inline void hugetlb_vma_unlock_write(struct mm_area *vma) { } -static inline int hugetlb_vma_trylock_write(struct vm_area_struct *vma) +static inline int hugetlb_vma_trylock_write(struct mm_area *vma) { return 1; } -static inline void hugetlb_vma_assert_locked(struct vm_area_struct *vma) +static inline void hugetlb_vma_assert_locked(struct mm_area *vma) { } @@ -400,7 +400,7 @@ static inline void hugetlb_free_pgd_range(struct mmu_gather *tlb, #ifdef CONFIG_USERFAULTFD static inline int hugetlb_mfill_atomic_pte(pte_t *dst_pte, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, @@ -443,7 +443,7 @@ static inline void move_hugetlb_state(struct folio *old_folio, } static inline long hugetlb_change_protection( - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { @@ -451,7 +451,7 @@ static inline long hugetlb_change_protection( } static inline void __unmap_hugepage_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, unsigned long start, + struct mm_area *vma, unsigned long start, unsigned long end, struct page *ref_page, zap_flags_t zap_flags) { @@ -459,14 +459,14 @@ static inline void __unmap_hugepage_range(struct mmu_gather *tlb, } static inline vm_fault_t hugetlb_fault(struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long address, + struct mm_area *vma, unsigned long address, unsigned int flags) { BUG(); return 0; } -static inline void hugetlb_unshare_all_pmds(struct vm_area_struct *vma) { } +static inline void hugetlb_unshare_all_pmds(struct mm_area *vma) { } #endif /* !CONFIG_HUGETLB_PAGE */ @@ -698,7 +698,7 @@ bool hugetlb_bootmem_page_zones_valid(int nid, struct huge_bootmem_page *m); int isolate_or_dissolve_huge_page(struct page *page, struct list_head *list); int replace_free_hugepage_folios(unsigned long start_pfn, unsigned long end_pfn); void wait_for_freed_hugetlb_folios(void); -struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, +struct folio *alloc_hugetlb_folio(struct mm_area *vma, unsigned long addr, bool cow_from_owner); struct folio *alloc_hugetlb_folio_nodemask(struct hstate *h, int preferred_nid, nodemask_t *nmask, gfp_t gfp_mask, @@ -708,7 +708,7 @@ struct folio *alloc_hugetlb_folio_reserve(struct hstate *h, int preferred_nid, int hugetlb_add_to_page_cache(struct folio *folio, struct address_space *mapping, pgoff_t idx); -void restore_reserve_on_error(struct hstate *h, struct vm_area_struct *vma, +void restore_reserve_on_error(struct hstate *h, struct mm_area *vma, unsigned long address, struct folio *folio); /* arch callback */ @@ -756,7 +756,7 @@ static inline struct hstate *hstate_sizelog(int page_size_log) return NULL; } -static inline struct hstate *hstate_vma(struct vm_area_struct *vma) +static inline struct hstate *hstate_vma(struct mm_area *vma) { return hstate_file(vma->vm_file); } @@ -766,9 +766,9 @@ static inline unsigned long huge_page_size(const struct hstate *h) return (unsigned long)PAGE_SIZE << h->order; } -extern unsigned long vma_kernel_pagesize(struct vm_area_struct *vma); +extern unsigned long vma_kernel_pagesize(struct mm_area *vma); -extern unsigned long vma_mmu_pagesize(struct vm_area_struct *vma); +extern unsigned long vma_mmu_pagesize(struct mm_area *vma); static inline unsigned long huge_page_mask(struct hstate *h) { @@ -1028,7 +1028,7 @@ static inline void hugetlb_count_sub(long l, struct mm_struct *mm) #ifndef huge_ptep_modify_prot_start #define huge_ptep_modify_prot_start huge_ptep_modify_prot_start -static inline pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, +static inline pte_t huge_ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long psize = huge_page_size(hstate_vma(vma)); @@ -1039,7 +1039,7 @@ static inline pte_t huge_ptep_modify_prot_start(struct vm_area_struct *vma, #ifndef huge_ptep_modify_prot_commit #define huge_ptep_modify_prot_commit huge_ptep_modify_prot_commit -static inline void huge_ptep_modify_prot_commit(struct vm_area_struct *vma, +static inline void huge_ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { @@ -1099,7 +1099,7 @@ static inline void wait_for_freed_hugetlb_folios(void) { } -static inline struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, +static inline struct folio *alloc_hugetlb_folio(struct mm_area *vma, unsigned long addr, bool cow_from_owner) { @@ -1136,7 +1136,7 @@ static inline struct hstate *hstate_sizelog(int page_size_log) return NULL; } -static inline struct hstate *hstate_vma(struct vm_area_struct *vma) +static inline struct hstate *hstate_vma(struct mm_area *vma) { return NULL; } @@ -1161,12 +1161,12 @@ static inline unsigned long huge_page_mask(struct hstate *h) return PAGE_MASK; } -static inline unsigned long vma_kernel_pagesize(struct vm_area_struct *vma) +static inline unsigned long vma_kernel_pagesize(struct mm_area *vma) { return PAGE_SIZE; } -static inline unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) +static inline unsigned long vma_mmu_pagesize(struct mm_area *vma) { return PAGE_SIZE; } @@ -1255,7 +1255,7 @@ static inline void hugetlb_count_sub(long l, struct mm_struct *mm) { } -static inline pte_t huge_ptep_clear_flush(struct vm_area_struct *vma, +static inline pte_t huge_ptep_clear_flush(struct mm_area *vma, unsigned long addr, pte_t *ptep) { #ifdef CONFIG_MMU @@ -1279,7 +1279,7 @@ static inline void hugetlb_unregister_node(struct node *node) } static inline bool hugetlbfs_pagecache_present( - struct hstate *h, struct vm_area_struct *vma, unsigned long address) + struct hstate *h, struct mm_area *vma, unsigned long address) { return false; } @@ -1324,7 +1324,7 @@ static inline bool hugetlb_pmd_shared(pte_t *pte) } #endif -bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr); +bool want_pmd_share(struct mm_area *vma, unsigned long addr); #ifndef __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE /* @@ -1334,19 +1334,19 @@ bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr); #define flush_hugetlb_tlb_range(vma, addr, end) flush_tlb_range(vma, addr, end) #endif -static inline bool __vma_shareable_lock(struct vm_area_struct *vma) +static inline bool __vma_shareable_lock(struct mm_area *vma) { return (vma->vm_flags & VM_MAYSHARE) && vma->vm_private_data; } -bool __vma_private_lock(struct vm_area_struct *vma); +bool __vma_private_lock(struct mm_area *vma); /* * Safe version of huge_pte_offset() to check the locks. See comments * above huge_pte_offset(). */ static inline pte_t * -hugetlb_walk(struct vm_area_struct *vma, unsigned long addr, unsigned long sz) +hugetlb_walk(struct mm_area *vma, unsigned long addr, unsigned long sz) { #if defined(CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING) && defined(CONFIG_LOCKDEP) struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; diff --git a/include/linux/hugetlb_inline.h b/include/linux/hugetlb_inline.h index 0660a03d37d9..d3d90fb50ebf 100644 --- a/include/linux/hugetlb_inline.h +++ b/include/linux/hugetlb_inline.h @@ -6,14 +6,14 @@ #include -static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma) +static inline bool is_vm_hugetlb_page(struct mm_area *vma) { return !!(vma->vm_flags & VM_HUGETLB); } #else -static inline bool is_vm_hugetlb_page(struct vm_area_struct *vma) +static inline bool is_vm_hugetlb_page(struct mm_area *vma) { return false; } diff --git a/include/linux/io-mapping.h b/include/linux/io-mapping.h index 7376c1df9c90..04d6dfd172da 100644 --- a/include/linux/io-mapping.h +++ b/include/linux/io-mapping.h @@ -225,7 +225,7 @@ io_mapping_free(struct io_mapping *iomap) kfree(iomap); } -int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, +int io_mapping_map_user(struct io_mapping *iomap, struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size); #endif /* _LINUX_IO_MAPPING_H */ diff --git a/include/linux/iomap.h b/include/linux/iomap.h index 02fe001feebb..2186061ce745 100644 --- a/include/linux/iomap.h +++ b/include/linux/iomap.h @@ -19,7 +19,7 @@ struct iomap_writepage_ctx; struct iov_iter; struct kiocb; struct page; -struct vm_area_struct; +struct mm_area; struct vm_fault; /* diff --git a/include/linux/iommu-dma.h b/include/linux/iommu-dma.h index 508beaa44c39..ff772553d76b 100644 --- a/include/linux/iommu-dma.h +++ b/include/linux/iommu-dma.h @@ -32,7 +32,7 @@ void iommu_dma_unmap_sg(struct device *dev, struct scatterlist *sg, int nents, enum dma_data_direction dir, unsigned long attrs); void *iommu_dma_alloc(struct device *dev, size_t size, dma_addr_t *handle, gfp_t gfp, unsigned long attrs); -int iommu_dma_mmap(struct device *dev, struct vm_area_struct *vma, +int iommu_dma_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); int iommu_dma_get_sgtable(struct device *dev, struct sg_table *sgt, @@ -55,7 +55,7 @@ void *iommu_dma_vmap_noncontiguous(struct device *dev, size_t size, struct sg_table *sgt); #define iommu_dma_vunmap_noncontiguous(dev, vaddr) \ vunmap(vaddr); -int iommu_dma_mmap_noncontiguous(struct device *dev, struct vm_area_struct *vma, +int iommu_dma_mmap_noncontiguous(struct device *dev, struct mm_area *vma, size_t size, struct sg_table *sgt); void iommu_dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle, size_t size, enum dma_data_direction dir); diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index b5a5f32fdfd1..087c03af27b8 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h @@ -24,7 +24,7 @@ struct file; struct dentry; struct iattr; struct seq_file; -struct vm_area_struct; +struct mm_area; struct vm_operations_struct; struct super_block; struct file_system_type; @@ -322,7 +322,7 @@ struct kernfs_ops { __poll_t (*poll)(struct kernfs_open_file *of, struct poll_table_struct *pt); - int (*mmap)(struct kernfs_open_file *of, struct vm_area_struct *vma); + int (*mmap)(struct kernfs_open_file *of, struct mm_area *vma); loff_t (*llseek)(struct kernfs_open_file *of, loff_t offset, int whence); }; diff --git a/include/linux/khugepaged.h b/include/linux/khugepaged.h index 1f46046080f5..df545b9908b0 100644 --- a/include/linux/khugepaged.h +++ b/include/linux/khugepaged.h @@ -11,7 +11,7 @@ extern void khugepaged_destroy(void); extern int start_stop_khugepaged(void); extern void __khugepaged_enter(struct mm_struct *mm); extern void __khugepaged_exit(struct mm_struct *mm); -extern void khugepaged_enter_vma(struct vm_area_struct *vma, +extern void khugepaged_enter_vma(struct mm_area *vma, unsigned long vm_flags); extern void khugepaged_min_free_kbytes_update(void); extern bool current_is_khugepaged(void); @@ -44,7 +44,7 @@ static inline void khugepaged_fork(struct mm_struct *mm, struct mm_struct *oldmm static inline void khugepaged_exit(struct mm_struct *mm) { } -static inline void khugepaged_enter_vma(struct vm_area_struct *vma, +static inline void khugepaged_enter_vma(struct mm_area *vma, unsigned long vm_flags) { } diff --git a/include/linux/ksm.h b/include/linux/ksm.h index d73095b5cd96..b215a192a192 100644 --- a/include/linux/ksm.h +++ b/include/linux/ksm.h @@ -15,10 +15,10 @@ #include #ifdef CONFIG_KSM -int ksm_madvise(struct vm_area_struct *vma, unsigned long start, +int ksm_madvise(struct mm_area *vma, unsigned long start, unsigned long end, int advice, unsigned long *vm_flags); -void ksm_add_vma(struct vm_area_struct *vma); +void ksm_add_vma(struct mm_area *vma); int ksm_enable_merge_any(struct mm_struct *mm); int ksm_disable_merge_any(struct mm_struct *mm); int ksm_disable(struct mm_struct *mm); @@ -86,7 +86,7 @@ static inline void ksm_exit(struct mm_struct *mm) * but what if the vma was unmerged while the page was swapped out? */ struct folio *ksm_might_need_to_copy(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr); + struct mm_area *vma, unsigned long addr); void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc); void folio_migrate_ksm(struct folio *newfolio, struct folio *folio); @@ -97,7 +97,7 @@ bool ksm_process_mergeable(struct mm_struct *mm); #else /* !CONFIG_KSM */ -static inline void ksm_add_vma(struct vm_area_struct *vma) +static inline void ksm_add_vma(struct mm_area *vma) { } @@ -130,14 +130,14 @@ static inline void collect_procs_ksm(const struct folio *folio, } #ifdef CONFIG_MMU -static inline int ksm_madvise(struct vm_area_struct *vma, unsigned long start, +static inline int ksm_madvise(struct mm_area *vma, unsigned long start, unsigned long end, int advice, unsigned long *vm_flags) { return 0; } static inline struct folio *ksm_might_need_to_copy(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return folio; } diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h index 5438a1b446a6..09b7d56cacdb 100644 --- a/include/linux/kvm_host.h +++ b/include/linux/kvm_host.h @@ -2340,7 +2340,7 @@ struct kvm_device_ops { int (*has_attr)(struct kvm_device *dev, struct kvm_device_attr *attr); long (*ioctl)(struct kvm_device *dev, unsigned int ioctl, unsigned long arg); - int (*mmap)(struct kvm_device *dev, struct vm_area_struct *vma); + int (*mmap)(struct kvm_device *dev, struct mm_area *vma); }; struct kvm_device *kvm_device_from_filp(struct file *filp); diff --git a/include/linux/lsm_hook_defs.h b/include/linux/lsm_hook_defs.h index bf3bbac4e02a..0401c8ceeaa0 100644 --- a/include/linux/lsm_hook_defs.h +++ b/include/linux/lsm_hook_defs.h @@ -196,7 +196,7 @@ LSM_HOOK(int, 0, file_ioctl_compat, struct file *file, unsigned int cmd, LSM_HOOK(int, 0, mmap_addr, unsigned long addr) LSM_HOOK(int, 0, mmap_file, struct file *file, unsigned long reqprot, unsigned long prot, unsigned long flags) -LSM_HOOK(int, 0, file_mprotect, struct vm_area_struct *vma, +LSM_HOOK(int, 0, file_mprotect, struct mm_area *vma, unsigned long reqprot, unsigned long prot) LSM_HOOK(int, 0, file_lock, struct file *file, unsigned int cmd) LSM_HOOK(int, 0, file_fcntl, struct file *file, unsigned int cmd, diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h index ce9885e0178a..8bf1d4d50ce8 100644 --- a/include/linux/mempolicy.h +++ b/include/linux/mempolicy.h @@ -118,27 +118,27 @@ struct sp_node { struct mempolicy *policy; }; -int vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst); +int vma_dup_policy(struct mm_area *src, struct mm_area *dst); void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol); int mpol_set_shared_policy(struct shared_policy *sp, - struct vm_area_struct *vma, struct mempolicy *mpol); + struct mm_area *vma, struct mempolicy *mpol); void mpol_free_shared_policy(struct shared_policy *sp); struct mempolicy *mpol_shared_policy_lookup(struct shared_policy *sp, pgoff_t idx); struct mempolicy *get_task_policy(struct task_struct *p); -struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, +struct mempolicy *__get_vma_policy(struct mm_area *vma, unsigned long addr, pgoff_t *ilx); -struct mempolicy *get_vma_policy(struct vm_area_struct *vma, +struct mempolicy *get_vma_policy(struct mm_area *vma, unsigned long addr, int order, pgoff_t *ilx); -bool vma_policy_mof(struct vm_area_struct *vma); +bool vma_policy_mof(struct mm_area *vma); extern void numa_default_policy(void); extern void numa_policy_init(void); extern void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new); extern void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new); -extern int huge_node(struct vm_area_struct *vma, +extern int huge_node(struct mm_area *vma, unsigned long addr, gfp_t gfp_flags, struct mempolicy **mpol, nodemask_t **nodemask); extern bool init_nodemask_of_mempolicy(nodemask_t *mask); @@ -165,7 +165,7 @@ extern int mpol_parse_str(char *str, struct mempolicy **mpol); extern void mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol); /* Check if a vma is migratable */ -extern bool vma_migratable(struct vm_area_struct *vma); +extern bool vma_migratable(struct mm_area *vma); int mpol_misplaced(struct folio *folio, struct vm_fault *vmf, unsigned long addr); @@ -221,7 +221,7 @@ mpol_shared_policy_lookup(struct shared_policy *sp, pgoff_t idx) return NULL; } -static inline struct mempolicy *get_vma_policy(struct vm_area_struct *vma, +static inline struct mempolicy *get_vma_policy(struct mm_area *vma, unsigned long addr, int order, pgoff_t *ilx) { *ilx = 0; @@ -229,7 +229,7 @@ static inline struct mempolicy *get_vma_policy(struct vm_area_struct *vma, } static inline int -vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst) +vma_dup_policy(struct mm_area *src, struct mm_area *dst) { return 0; } @@ -251,7 +251,7 @@ static inline void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) { } -static inline int huge_node(struct vm_area_struct *vma, +static inline int huge_node(struct mm_area *vma, unsigned long addr, gfp_t gfp_flags, struct mempolicy **mpol, nodemask_t **nodemask) { diff --git a/include/linux/migrate.h b/include/linux/migrate.h index aaa2114498d6..e64c14d9bd5a 100644 --- a/include/linux/migrate.h +++ b/include/linux/migrate.h @@ -143,11 +143,11 @@ const struct movable_operations *page_movable_ops(struct page *page) #ifdef CONFIG_NUMA_BALANCING int migrate_misplaced_folio_prepare(struct folio *folio, - struct vm_area_struct *vma, int node); + struct mm_area *vma, int node); int migrate_misplaced_folio(struct folio *folio, int node); #else static inline int migrate_misplaced_folio_prepare(struct folio *folio, - struct vm_area_struct *vma, int node) + struct mm_area *vma, int node) { return -EAGAIN; /* can't migrate now */ } @@ -188,7 +188,7 @@ enum migrate_vma_direction { }; struct migrate_vma { - struct vm_area_struct *vma; + struct mm_area *vma; /* * Both src and dst array must be big enough for * (end - start) >> PAGE_SHIFT entries. diff --git a/include/linux/mm.h b/include/linux/mm.h index b7f13f087954..193ef16cd441 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -230,9 +230,9 @@ void setup_initial_init_mm(void *start_code, void *end_code, * mmap() functions). */ -struct vm_area_struct *vm_area_alloc(struct mm_struct *); -struct vm_area_struct *vm_area_dup(struct vm_area_struct *); -void vm_area_free(struct vm_area_struct *); +struct mm_area *vm_area_alloc(struct mm_struct *); +struct mm_area *vm_area_dup(struct mm_area *); +void vm_area_free(struct mm_area *); #ifndef CONFIG_MMU extern struct rb_root nommu_region_tree; @@ -242,7 +242,7 @@ extern unsigned int kobjsize(const void *objp); #endif /* - * vm_flags in vm_area_struct, see mm_types.h. + * vm_flags in mm_area, see mm_types.h. * When changing, update also include/trace/events/mmflags.h */ #define VM_NONE 0x00000000 @@ -533,7 +533,7 @@ static inline bool fault_flag_allow_retry_first(enum fault_flag flags) */ struct vm_fault { const struct { - struct vm_area_struct *vma; /* Target VMA */ + struct mm_area *vma; /* Target VMA */ gfp_t gfp_mask; /* gfp mask to be used for allocations */ pgoff_t pgoff; /* Logical page offset based on vma */ unsigned long address; /* Faulting virtual address - masked */ @@ -583,27 +583,27 @@ struct vm_fault { * to the functions called when a no-page or a wp-page exception occurs. */ struct vm_operations_struct { - void (*open)(struct vm_area_struct * area); + void (*open)(struct mm_area * area); /** * @close: Called when the VMA is being removed from the MM. * Context: User context. May sleep. Caller holds mmap_lock. */ - void (*close)(struct vm_area_struct * area); + void (*close)(struct mm_area * area); /* Called any time before splitting to check if it's allowed */ - int (*may_split)(struct vm_area_struct *area, unsigned long addr); - int (*mremap)(struct vm_area_struct *area); + int (*may_split)(struct mm_area *area, unsigned long addr); + int (*mremap)(struct mm_area *area); /* * Called by mprotect() to make driver-specific permission * checks before mprotect() is finalised. The VMA must not * be modified. Returns 0 if mprotect() can proceed. */ - int (*mprotect)(struct vm_area_struct *vma, unsigned long start, + int (*mprotect)(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long newflags); vm_fault_t (*fault)(struct vm_fault *vmf); vm_fault_t (*huge_fault)(struct vm_fault *vmf, unsigned int order); vm_fault_t (*map_pages)(struct vm_fault *vmf, pgoff_t start_pgoff, pgoff_t end_pgoff); - unsigned long (*pagesize)(struct vm_area_struct * area); + unsigned long (*pagesize)(struct mm_area * area); /* notification that a previously read-only page is about to become * writable, if an error is returned it will cause a SIGBUS */ @@ -616,13 +616,13 @@ struct vm_operations_struct { * for use by special VMAs. See also generic_access_phys() for a generic * implementation useful for any iomem mapping. */ - int (*access)(struct vm_area_struct *vma, unsigned long addr, + int (*access)(struct mm_area *vma, unsigned long addr, void *buf, int len, int write); /* Called by the /proc/PID/maps code to ask the vma whether it * has a special name. Returning non-NULL will also cause this * vma to be dumped unconditionally. */ - const char *(*name)(struct vm_area_struct *vma); + const char *(*name)(struct mm_area *vma); #ifdef CONFIG_NUMA /* @@ -632,7 +632,7 @@ struct vm_operations_struct { * install a MPOL_DEFAULT policy, nor the task or system default * mempolicy. */ - int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new); + int (*set_policy)(struct mm_area *vma, struct mempolicy *new); /* * get_policy() op must add reference [mpol_get()] to any policy at @@ -644,7 +644,7 @@ struct vm_operations_struct { * must return NULL--i.e., do not "fallback" to task or system default * policy. */ - struct mempolicy *(*get_policy)(struct vm_area_struct *vma, + struct mempolicy *(*get_policy)(struct mm_area *vma, unsigned long addr, pgoff_t *ilx); #endif /* @@ -652,26 +652,26 @@ struct vm_operations_struct { * page for @addr. This is useful if the default behavior * (using pte_page()) would not find the correct page. */ - struct page *(*find_special_page)(struct vm_area_struct *vma, + struct page *(*find_special_page)(struct mm_area *vma, unsigned long addr); }; #ifdef CONFIG_NUMA_BALANCING -static inline void vma_numab_state_init(struct vm_area_struct *vma) +static inline void vma_numab_state_init(struct mm_area *vma) { vma->numab_state = NULL; } -static inline void vma_numab_state_free(struct vm_area_struct *vma) +static inline void vma_numab_state_free(struct mm_area *vma) { kfree(vma->numab_state); } #else -static inline void vma_numab_state_init(struct vm_area_struct *vma) {} -static inline void vma_numab_state_free(struct vm_area_struct *vma) {} +static inline void vma_numab_state_init(struct mm_area *vma) {} +static inline void vma_numab_state_free(struct mm_area *vma) {} #endif /* CONFIG_NUMA_BALANCING */ #ifdef CONFIG_PER_VMA_LOCK -static inline void vma_lock_init(struct vm_area_struct *vma, bool reset_refcnt) +static inline void vma_lock_init(struct mm_area *vma, bool reset_refcnt) { #ifdef CONFIG_DEBUG_LOCK_ALLOC static struct lock_class_key lockdep_key; @@ -694,7 +694,7 @@ static inline bool is_vma_writer_only(int refcnt) return refcnt & VMA_LOCK_OFFSET && refcnt <= VMA_LOCK_OFFSET + 1; } -static inline void vma_refcount_put(struct vm_area_struct *vma) +static inline void vma_refcount_put(struct mm_area *vma) { /* Use a copy of vm_mm in case vma is freed after we drop vm_refcnt */ struct mm_struct *mm = vma->vm_mm; @@ -717,8 +717,8 @@ static inline void vma_refcount_put(struct vm_area_struct *vma) * Returns the vma on success, NULL on failure to lock and EAGAIN if vma got * detached. */ -static inline struct vm_area_struct *vma_start_read(struct mm_struct *mm, - struct vm_area_struct *vma) +static inline struct mm_area *vma_start_read(struct mm_struct *mm, + struct mm_area *vma) { int oldcnt; @@ -770,7 +770,7 @@ static inline struct vm_area_struct *vma_start_read(struct mm_struct *mm, * not be used in such cases because it might fail due to mm_lock_seq overflow. * This functionality is used to obtain vma read lock and drop the mmap read lock. */ -static inline bool vma_start_read_locked_nested(struct vm_area_struct *vma, int subclass) +static inline bool vma_start_read_locked_nested(struct mm_area *vma, int subclass) { int oldcnt; @@ -789,18 +789,18 @@ static inline bool vma_start_read_locked_nested(struct vm_area_struct *vma, int * not be used in such cases because it might fail due to mm_lock_seq overflow. * This functionality is used to obtain vma read lock and drop the mmap read lock. */ -static inline bool vma_start_read_locked(struct vm_area_struct *vma) +static inline bool vma_start_read_locked(struct mm_area *vma) { return vma_start_read_locked_nested(vma, 0); } -static inline void vma_end_read(struct vm_area_struct *vma) +static inline void vma_end_read(struct mm_area *vma) { vma_refcount_put(vma); } /* WARNING! Can only be used if mmap_lock is expected to be write-locked */ -static bool __is_vma_write_locked(struct vm_area_struct *vma, unsigned int *mm_lock_seq) +static bool __is_vma_write_locked(struct mm_area *vma, unsigned int *mm_lock_seq) { mmap_assert_write_locked(vma->vm_mm); @@ -812,14 +812,14 @@ static bool __is_vma_write_locked(struct vm_area_struct *vma, unsigned int *mm_l return (vma->vm_lock_seq == *mm_lock_seq); } -void __vma_start_write(struct vm_area_struct *vma, unsigned int mm_lock_seq); +void __vma_start_write(struct mm_area *vma, unsigned int mm_lock_seq); /* * Begin writing to a VMA. * Exclude concurrent readers under the per-VMA lock until the currently * write-locked mmap_lock is dropped or downgraded. */ -static inline void vma_start_write(struct vm_area_struct *vma) +static inline void vma_start_write(struct mm_area *vma) { unsigned int mm_lock_seq; @@ -829,14 +829,14 @@ static inline void vma_start_write(struct vm_area_struct *vma) __vma_start_write(vma, mm_lock_seq); } -static inline void vma_assert_write_locked(struct vm_area_struct *vma) +static inline void vma_assert_write_locked(struct mm_area *vma) { unsigned int mm_lock_seq; VM_BUG_ON_VMA(!__is_vma_write_locked(vma, &mm_lock_seq), vma); } -static inline void vma_assert_locked(struct vm_area_struct *vma) +static inline void vma_assert_locked(struct mm_area *vma) { unsigned int mm_lock_seq; @@ -849,24 +849,24 @@ static inline void vma_assert_locked(struct vm_area_struct *vma) * assertions should be made either under mmap_write_lock or when the object * has been isolated under mmap_write_lock, ensuring no competing writers. */ -static inline void vma_assert_attached(struct vm_area_struct *vma) +static inline void vma_assert_attached(struct mm_area *vma) { WARN_ON_ONCE(!refcount_read(&vma->vm_refcnt)); } -static inline void vma_assert_detached(struct vm_area_struct *vma) +static inline void vma_assert_detached(struct mm_area *vma) { WARN_ON_ONCE(refcount_read(&vma->vm_refcnt)); } -static inline void vma_mark_attached(struct vm_area_struct *vma) +static inline void vma_mark_attached(struct mm_area *vma) { vma_assert_write_locked(vma); vma_assert_detached(vma); refcount_set_release(&vma->vm_refcnt, 1); } -void vma_mark_detached(struct vm_area_struct *vma); +void vma_mark_detached(struct mm_area *vma); static inline void release_fault_lock(struct vm_fault *vmf) { @@ -884,31 +884,31 @@ static inline void assert_fault_locked(struct vm_fault *vmf) mmap_assert_locked(vmf->vma->vm_mm); } -struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, +struct mm_area *lock_vma_under_rcu(struct mm_struct *mm, unsigned long address); #else /* CONFIG_PER_VMA_LOCK */ -static inline void vma_lock_init(struct vm_area_struct *vma, bool reset_refcnt) {} -static inline struct vm_area_struct *vma_start_read(struct mm_struct *mm, - struct vm_area_struct *vma) +static inline void vma_lock_init(struct mm_area *vma, bool reset_refcnt) {} +static inline struct mm_area *vma_start_read(struct mm_struct *mm, + struct mm_area *vma) { return NULL; } -static inline void vma_end_read(struct vm_area_struct *vma) {} -static inline void vma_start_write(struct vm_area_struct *vma) {} -static inline void vma_assert_write_locked(struct vm_area_struct *vma) +static inline void vma_end_read(struct mm_area *vma) {} +static inline void vma_start_write(struct mm_area *vma) {} +static inline void vma_assert_write_locked(struct mm_area *vma) { mmap_assert_write_locked(vma->vm_mm); } -static inline void vma_assert_attached(struct vm_area_struct *vma) {} -static inline void vma_assert_detached(struct vm_area_struct *vma) {} -static inline void vma_mark_attached(struct vm_area_struct *vma) {} -static inline void vma_mark_detached(struct vm_area_struct *vma) {} +static inline void vma_assert_attached(struct mm_area *vma) {} +static inline void vma_assert_detached(struct mm_area *vma) {} +static inline void vma_mark_attached(struct mm_area *vma) {} +static inline void vma_mark_detached(struct mm_area *vma) {} -static inline struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, +static inline struct mm_area *lock_vma_under_rcu(struct mm_struct *mm, unsigned long address) { return NULL; } -static inline void vma_assert_locked(struct vm_area_struct *vma) +static inline void vma_assert_locked(struct mm_area *vma) { mmap_assert_locked(vma->vm_mm); } @@ -927,7 +927,7 @@ static inline void assert_fault_locked(struct vm_fault *vmf) extern const struct vm_operations_struct vma_dummy_vm_ops; -static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm) +static inline void vma_init(struct mm_area *vma, struct mm_struct *mm) { memset(vma, 0, sizeof(*vma)); vma->vm_mm = mm; @@ -937,7 +937,7 @@ static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm) } /* Use when VMA is not part of the VMA tree and needs no locking */ -static inline void vm_flags_init(struct vm_area_struct *vma, +static inline void vm_flags_init(struct mm_area *vma, vm_flags_t flags) { ACCESS_PRIVATE(vma, __vm_flags) = flags; @@ -948,28 +948,28 @@ static inline void vm_flags_init(struct vm_area_struct *vma, * Note: vm_flags_reset and vm_flags_reset_once do not lock the vma and * it should be locked explicitly beforehand. */ -static inline void vm_flags_reset(struct vm_area_struct *vma, +static inline void vm_flags_reset(struct mm_area *vma, vm_flags_t flags) { vma_assert_write_locked(vma); vm_flags_init(vma, flags); } -static inline void vm_flags_reset_once(struct vm_area_struct *vma, +static inline void vm_flags_reset_once(struct mm_area *vma, vm_flags_t flags) { vma_assert_write_locked(vma); WRITE_ONCE(ACCESS_PRIVATE(vma, __vm_flags), flags); } -static inline void vm_flags_set(struct vm_area_struct *vma, +static inline void vm_flags_set(struct mm_area *vma, vm_flags_t flags) { vma_start_write(vma); ACCESS_PRIVATE(vma, __vm_flags) |= flags; } -static inline void vm_flags_clear(struct vm_area_struct *vma, +static inline void vm_flags_clear(struct mm_area *vma, vm_flags_t flags) { vma_start_write(vma); @@ -980,7 +980,7 @@ static inline void vm_flags_clear(struct vm_area_struct *vma, * Use only if VMA is not part of the VMA tree or has no other users and * therefore needs no locking. */ -static inline void __vm_flags_mod(struct vm_area_struct *vma, +static inline void __vm_flags_mod(struct mm_area *vma, vm_flags_t set, vm_flags_t clear) { vm_flags_init(vma, (vma->vm_flags | set) & ~clear); @@ -990,19 +990,19 @@ static inline void __vm_flags_mod(struct vm_area_struct *vma, * Use only when the order of set/clear operations is unimportant, otherwise * use vm_flags_{set|clear} explicitly. */ -static inline void vm_flags_mod(struct vm_area_struct *vma, +static inline void vm_flags_mod(struct mm_area *vma, vm_flags_t set, vm_flags_t clear) { vma_start_write(vma); __vm_flags_mod(vma, set, clear); } -static inline void vma_set_anonymous(struct vm_area_struct *vma) +static inline void vma_set_anonymous(struct mm_area *vma) { vma->vm_ops = NULL; } -static inline bool vma_is_anonymous(struct vm_area_struct *vma) +static inline bool vma_is_anonymous(struct mm_area *vma) { return !vma->vm_ops; } @@ -1011,7 +1011,7 @@ static inline bool vma_is_anonymous(struct vm_area_struct *vma) * Indicate if the VMA is a heap for the given task; for * /proc/PID/maps that is the heap of the main task. */ -static inline bool vma_is_initial_heap(const struct vm_area_struct *vma) +static inline bool vma_is_initial_heap(const struct mm_area *vma) { return vma->vm_start < vma->vm_mm->brk && vma->vm_end > vma->vm_mm->start_brk; @@ -1021,7 +1021,7 @@ static inline bool vma_is_initial_heap(const struct vm_area_struct *vma) * Indicate if the VMA is a stack for the given task; for * /proc/PID/maps that is the stack of the main task. */ -static inline bool vma_is_initial_stack(const struct vm_area_struct *vma) +static inline bool vma_is_initial_stack(const struct mm_area *vma) { /* * We make no effort to guess what a given thread considers to be @@ -1032,7 +1032,7 @@ static inline bool vma_is_initial_stack(const struct vm_area_struct *vma) vma->vm_end >= vma->vm_mm->start_stack; } -static inline bool vma_is_temporary_stack(struct vm_area_struct *vma) +static inline bool vma_is_temporary_stack(struct mm_area *vma) { int maybe_stack = vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP); @@ -1046,7 +1046,7 @@ static inline bool vma_is_temporary_stack(struct vm_area_struct *vma) return false; } -static inline bool vma_is_foreign(struct vm_area_struct *vma) +static inline bool vma_is_foreign(struct mm_area *vma) { if (!current->mm) return true; @@ -1057,7 +1057,7 @@ static inline bool vma_is_foreign(struct vm_area_struct *vma) return false; } -static inline bool vma_is_accessible(struct vm_area_struct *vma) +static inline bool vma_is_accessible(struct mm_area *vma) { return vma->vm_flags & VM_ACCESS_FLAGS; } @@ -1068,18 +1068,18 @@ static inline bool is_shared_maywrite(vm_flags_t vm_flags) (VM_SHARED | VM_MAYWRITE); } -static inline bool vma_is_shared_maywrite(struct vm_area_struct *vma) +static inline bool vma_is_shared_maywrite(struct mm_area *vma) { return is_shared_maywrite(vma->vm_flags); } static inline -struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long max) +struct mm_area *vma_find(struct vma_iterator *vmi, unsigned long max) { return mas_find(&vmi->mas, max - 1); } -static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) +static inline struct mm_area *vma_next(struct vma_iterator *vmi) { /* * Uses mas_find() to get the first VMA when the iterator starts. @@ -1089,13 +1089,13 @@ static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) } static inline -struct vm_area_struct *vma_iter_next_range(struct vma_iterator *vmi) +struct mm_area *vma_iter_next_range(struct vma_iterator *vmi) { return mas_next_range(&vmi->mas, ULONG_MAX); } -static inline struct vm_area_struct *vma_prev(struct vma_iterator *vmi) +static inline struct mm_area *vma_prev(struct vma_iterator *vmi) { return mas_prev(&vmi->mas, 0); } @@ -1118,7 +1118,7 @@ static inline void vma_iter_free(struct vma_iterator *vmi) } static inline int vma_iter_bulk_store(struct vma_iterator *vmi, - struct vm_area_struct *vma) + struct mm_area *vma) { vmi->mas.index = vma->vm_start; vmi->mas.last = vma->vm_end - 1; @@ -1152,14 +1152,14 @@ static inline void vma_iter_set(struct vma_iterator *vmi, unsigned long addr) * The vma_is_shmem is not inline because it is used only by slow * paths in userfault. */ -bool vma_is_shmem(struct vm_area_struct *vma); -bool vma_is_anon_shmem(struct vm_area_struct *vma); +bool vma_is_shmem(struct mm_area *vma); +bool vma_is_anon_shmem(struct mm_area *vma); #else -static inline bool vma_is_shmem(struct vm_area_struct *vma) { return false; } -static inline bool vma_is_anon_shmem(struct vm_area_struct *vma) { return false; } +static inline bool vma_is_shmem(struct mm_area *vma) { return false; } +static inline bool vma_is_anon_shmem(struct mm_area *vma) { return false; } #endif -int vma_is_stack_for_current(struct vm_area_struct *vma); +int vma_is_stack_for_current(struct mm_area *vma); /* flush_tlb_range() takes a vma, not a mm, and can care about flags */ #define TLB_FLUSH_VMA(mm,flags) { .vm_mm = (mm), .vm_flags = (flags) } @@ -1435,7 +1435,7 @@ static inline unsigned long thp_size(struct page *page) * pte_mkwrite. But get_user_pages can cause write faults for mappings * that do not have writing enabled, when used by access_process_vm. */ -static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) +static inline pte_t maybe_mkwrite(pte_t pte, struct mm_area *vma) { if (likely(vma->vm_flags & VM_WRITE)) pte = pte_mkwrite(pte, vma); @@ -1811,7 +1811,7 @@ static inline int folio_xchg_access_time(struct folio *folio, int time) return last_time << PAGE_ACCESS_TIME_BUCKETS; } -static inline void vma_set_access_pid_bit(struct vm_area_struct *vma) +static inline void vma_set_access_pid_bit(struct mm_area *vma) { unsigned int pid_bit; @@ -1872,7 +1872,7 @@ static inline bool cpupid_match_pid(struct task_struct *task, int cpupid) return false; } -static inline void vma_set_access_pid_bit(struct vm_area_struct *vma) +static inline void vma_set_access_pid_bit(struct mm_area *vma) { } static inline bool folio_use_access_time(struct folio *folio) @@ -2042,7 +2042,7 @@ static inline bool folio_maybe_dma_pinned(struct folio *folio) * * The caller has to hold the PT lock and the vma->vm_mm->->write_protect_seq. */ -static inline bool folio_needs_cow_for_dma(struct vm_area_struct *vma, +static inline bool folio_needs_cow_for_dma(struct mm_area *vma, struct folio *folio) { VM_BUG_ON(!(raw_read_seqcount(&vma->vm_mm->write_protect_seq) & 1)); @@ -2445,26 +2445,26 @@ static inline bool can_do_mlock(void) { return false; } extern int user_shm_lock(size_t, struct ucounts *); extern void user_shm_unlock(size_t, struct ucounts *); -struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr, +struct folio *vm_normal_folio(struct mm_area *vma, unsigned long addr, pte_t pte); -struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, +struct page *vm_normal_page(struct mm_area *vma, unsigned long addr, pte_t pte); -struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma, +struct folio *vm_normal_folio_pmd(struct mm_area *vma, unsigned long addr, pmd_t pmd); -struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, +struct page *vm_normal_page_pmd(struct mm_area *vma, unsigned long addr, pmd_t pmd); -void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, +void zap_vma_ptes(struct mm_area *vma, unsigned long address, unsigned long size); -void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, +void zap_page_range_single(struct mm_area *vma, unsigned long address, unsigned long size, struct zap_details *details); -static inline void zap_vma_pages(struct vm_area_struct *vma) +static inline void zap_vma_pages(struct mm_area *vma) { zap_page_range_single(vma, vma->vm_start, vma->vm_end - vma->vm_start, NULL); } void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *start_vma, unsigned long start, + struct mm_area *start_vma, unsigned long start, unsigned long end, unsigned long tree_end, bool mm_wr_locked); struct mmu_notifier_range; @@ -2472,17 +2472,17 @@ struct mmu_notifier_range; void free_pgd_range(struct mmu_gather *tlb, unsigned long addr, unsigned long end, unsigned long floor, unsigned long ceiling); int -copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma); -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, +copy_page_range(struct mm_area *dst_vma, struct mm_area *src_vma); +int generic_access_phys(struct mm_area *vma, unsigned long addr, void *buf, int len, int write); struct follow_pfnmap_args { /** * Inputs: - * @vma: Pointer to @vm_area_struct struct + * @vma: Pointer to @mm_area struct * @address: the virtual address to walk */ - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long address; /** * Internals: @@ -2516,11 +2516,11 @@ void truncate_pagecache_range(struct inode *inode, loff_t offset, loff_t end); int generic_error_remove_folio(struct address_space *mapping, struct folio *folio); -struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, +struct mm_area *lock_mm_and_find_vma(struct mm_struct *mm, unsigned long address, struct pt_regs *regs); #ifdef CONFIG_MMU -extern vm_fault_t handle_mm_fault(struct vm_area_struct *vma, +extern vm_fault_t handle_mm_fault(struct mm_area *vma, unsigned long address, unsigned int flags, struct pt_regs *regs); extern int fixup_user_fault(struct mm_struct *mm, @@ -2531,7 +2531,7 @@ void unmap_mapping_pages(struct address_space *mapping, void unmap_mapping_range(struct address_space *mapping, loff_t const holebegin, loff_t const holelen, int even_cows); #else -static inline vm_fault_t handle_mm_fault(struct vm_area_struct *vma, +static inline vm_fault_t handle_mm_fault(struct mm_area *vma, unsigned long address, unsigned int flags, struct pt_regs *regs) { @@ -2558,7 +2558,7 @@ static inline void unmap_shared_mapping_range(struct address_space *mapping, unmap_mapping_range(mapping, holebegin, holelen, 0); } -static inline struct vm_area_struct *vma_lookup(struct mm_struct *mm, +static inline struct mm_area *vma_lookup(struct mm_struct *mm, unsigned long addr); extern int access_process_vm(struct task_struct *tsk, unsigned long addr, @@ -2586,10 +2586,10 @@ long pin_user_pages_remote(struct mm_struct *mm, static inline struct page *get_user_page_vma_remote(struct mm_struct *mm, unsigned long addr, int gup_flags, - struct vm_area_struct **vmap) + struct mm_area **vmap) { struct page *page; - struct vm_area_struct *vma; + struct mm_area *vma; int got; if (WARN_ON_ONCE(unlikely(gup_flags & FOLL_NOWAIT))) @@ -2663,13 +2663,13 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen); #define MM_CP_UFFD_WP_ALL (MM_CP_UFFD_WP | \ MM_CP_UFFD_WP_RESOLVE) -bool can_change_pte_writable(struct vm_area_struct *vma, unsigned long addr, +bool can_change_pte_writable(struct mm_area *vma, unsigned long addr, pte_t pte); extern long change_protection(struct mmu_gather *tlb, - struct vm_area_struct *vma, unsigned long start, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long cp_flags); extern int mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, - struct vm_area_struct *vma, struct vm_area_struct **pprev, + struct mm_area *vma, struct mm_area **pprev, unsigned long start, unsigned long end, unsigned long newflags); /* @@ -3360,16 +3360,16 @@ extern atomic_long_t mmap_pages_allocated; extern int nommu_shrink_inode_mappings(struct inode *, size_t, size_t); /* interval_tree.c */ -void vma_interval_tree_insert(struct vm_area_struct *node, +void vma_interval_tree_insert(struct mm_area *node, struct rb_root_cached *root); -void vma_interval_tree_insert_after(struct vm_area_struct *node, - struct vm_area_struct *prev, +void vma_interval_tree_insert_after(struct mm_area *node, + struct mm_area *prev, struct rb_root_cached *root); -void vma_interval_tree_remove(struct vm_area_struct *node, +void vma_interval_tree_remove(struct mm_area *node, struct rb_root_cached *root); -struct vm_area_struct *vma_interval_tree_iter_first(struct rb_root_cached *root, +struct mm_area *vma_interval_tree_iter_first(struct rb_root_cached *root, unsigned long start, unsigned long last); -struct vm_area_struct *vma_interval_tree_iter_next(struct vm_area_struct *node, +struct mm_area *vma_interval_tree_iter_next(struct mm_area *node, unsigned long start, unsigned long last); #define vma_interval_tree_foreach(vma, root, start, last) \ @@ -3395,10 +3395,10 @@ void anon_vma_interval_tree_verify(struct anon_vma_chain *node); /* mmap.c */ extern int __vm_enough_memory(struct mm_struct *mm, long pages, int cap_sys_admin); -extern int insert_vm_struct(struct mm_struct *, struct vm_area_struct *); +extern int insert_vm_struct(struct mm_struct *, struct mm_area *); extern void exit_mmap(struct mm_struct *); -int relocate_vma_down(struct vm_area_struct *vma, unsigned long shift); -bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct vm_area_struct *vma, +int relocate_vma_down(struct mm_area *vma, unsigned long shift); +bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, bool write); static inline int check_data_rlimit(unsigned long rlim, @@ -3426,9 +3426,9 @@ extern struct file *get_task_exe_file(struct task_struct *task); extern bool may_expand_vm(struct mm_struct *, vm_flags_t, unsigned long npages); extern void vm_stat_account(struct mm_struct *, vm_flags_t, long npages); -extern bool vma_is_special_mapping(const struct vm_area_struct *vma, +extern bool vma_is_special_mapping(const struct mm_area *vma, const struct vm_special_mapping *sm); -extern struct vm_area_struct *_install_special_mapping(struct mm_struct *mm, +extern struct mm_area *_install_special_mapping(struct mm_struct *mm, unsigned long addr, unsigned long len, unsigned long flags, const struct vm_special_mapping *spec); @@ -3454,7 +3454,7 @@ extern unsigned long do_mmap(struct file *file, unsigned long addr, extern int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool unlock); -int do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, +int do_vmi_align_munmap(struct vma_iterator *vmi, struct mm_area *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock); extern int do_munmap(struct mm_struct *, unsigned long, size_t, @@ -3507,19 +3507,19 @@ extern vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf); extern unsigned long stack_guard_gap; /* Generic expand stack which grows the stack according to GROWS{UP,DOWN} */ -int expand_stack_locked(struct vm_area_struct *vma, unsigned long address); -struct vm_area_struct *expand_stack(struct mm_struct * mm, unsigned long addr); +int expand_stack_locked(struct mm_area *vma, unsigned long address); +struct mm_area *expand_stack(struct mm_struct * mm, unsigned long addr); /* Look up the first VMA which satisfies addr < vm_end, NULL if none. */ -extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long addr); -extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr, - struct vm_area_struct **pprev); +extern struct mm_area * find_vma(struct mm_struct * mm, unsigned long addr); +extern struct mm_area * find_vma_prev(struct mm_struct * mm, unsigned long addr, + struct mm_area **pprev); /* * Look up the first VMA which intersects the interval [start_addr, end_addr) * NULL if none. Assume start_addr < end_addr. */ -struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, +struct mm_area *find_vma_intersection(struct mm_struct *mm, unsigned long start_addr, unsigned long end_addr); /** @@ -3527,15 +3527,15 @@ struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, * @mm: The process address space. * @addr: The user address. * - * Return: The vm_area_struct at the given address, %NULL otherwise. + * Return: The mm_area at the given address, %NULL otherwise. */ static inline -struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) +struct mm_area *vma_lookup(struct mm_struct *mm, unsigned long addr) { return mtree_load(&mm->mm_mt, addr); } -static inline unsigned long stack_guard_start_gap(struct vm_area_struct *vma) +static inline unsigned long stack_guard_start_gap(struct mm_area *vma) { if (vma->vm_flags & VM_GROWSDOWN) return stack_guard_gap; @@ -3547,7 +3547,7 @@ static inline unsigned long stack_guard_start_gap(struct vm_area_struct *vma) return 0; } -static inline unsigned long vm_start_gap(struct vm_area_struct *vma) +static inline unsigned long vm_start_gap(struct mm_area *vma) { unsigned long gap = stack_guard_start_gap(vma); unsigned long vm_start = vma->vm_start; @@ -3558,7 +3558,7 @@ static inline unsigned long vm_start_gap(struct vm_area_struct *vma) return vm_start; } -static inline unsigned long vm_end_gap(struct vm_area_struct *vma) +static inline unsigned long vm_end_gap(struct mm_area *vma) { unsigned long vm_end = vma->vm_end; @@ -3570,16 +3570,16 @@ static inline unsigned long vm_end_gap(struct vm_area_struct *vma) return vm_end; } -static inline unsigned long vma_pages(struct vm_area_struct *vma) +static inline unsigned long vma_pages(struct mm_area *vma) { return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; } /* Look up the first VMA which exactly match the interval vm_start ... vm_end */ -static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, +static inline struct mm_area *find_exact_vma(struct mm_struct *mm, unsigned long vm_start, unsigned long vm_end) { - struct vm_area_struct *vma = vma_lookup(mm, vm_start); + struct mm_area *vma = vma_lookup(mm, vm_start); if (vma && (vma->vm_start != vm_start || vma->vm_end != vm_end)) vma = NULL; @@ -3587,7 +3587,7 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm, return vma; } -static inline bool range_in_vma(struct vm_area_struct *vma, +static inline bool range_in_vma(struct mm_area *vma, unsigned long start, unsigned long end) { return (vma && vma->vm_start <= start && end <= vma->vm_end); @@ -3595,51 +3595,51 @@ static inline bool range_in_vma(struct vm_area_struct *vma, #ifdef CONFIG_MMU pgprot_t vm_get_page_prot(unsigned long vm_flags); -void vma_set_page_prot(struct vm_area_struct *vma); +void vma_set_page_prot(struct mm_area *vma); #else static inline pgprot_t vm_get_page_prot(unsigned long vm_flags) { return __pgprot(0); } -static inline void vma_set_page_prot(struct vm_area_struct *vma) +static inline void vma_set_page_prot(struct mm_area *vma) { vma->vm_page_prot = vm_get_page_prot(vma->vm_flags); } #endif -void vma_set_file(struct vm_area_struct *vma, struct file *file); +void vma_set_file(struct mm_area *vma, struct file *file); #ifdef CONFIG_NUMA_BALANCING -unsigned long change_prot_numa(struct vm_area_struct *vma, +unsigned long change_prot_numa(struct mm_area *vma, unsigned long start, unsigned long end); #endif -struct vm_area_struct *find_extend_vma_locked(struct mm_struct *, +struct mm_area *find_extend_vma_locked(struct mm_struct *, unsigned long addr); -int remap_pfn_range(struct vm_area_struct *, unsigned long addr, +int remap_pfn_range(struct mm_area *, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t); -int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, +int remap_pfn_range_notrack(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot); -int vm_insert_page(struct vm_area_struct *, unsigned long addr, struct page *); -int vm_insert_pages(struct vm_area_struct *vma, unsigned long addr, +int vm_insert_page(struct mm_area *, unsigned long addr, struct page *); +int vm_insert_pages(struct mm_area *vma, unsigned long addr, struct page **pages, unsigned long *num); -int vm_map_pages(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages(struct mm_area *vma, struct page **pages, unsigned long num); -int vm_map_pages_zero(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages_zero(struct mm_area *vma, struct page **pages, unsigned long num); vm_fault_t vmf_insert_page_mkwrite(struct vm_fault *vmf, struct page *page, bool write); -vm_fault_t vmf_insert_pfn(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_pfn(struct mm_area *vma, unsigned long addr, unsigned long pfn); -vm_fault_t vmf_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_pfn_prot(struct mm_area *vma, unsigned long addr, unsigned long pfn, pgprot_t pgprot); -vm_fault_t vmf_insert_mixed(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_mixed(struct mm_area *vma, unsigned long addr, pfn_t pfn); -vm_fault_t vmf_insert_mixed_mkwrite(struct vm_area_struct *vma, +vm_fault_t vmf_insert_mixed_mkwrite(struct mm_area *vma, unsigned long addr, pfn_t pfn); -int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len); +int vm_iomap_memory(struct mm_area *vma, phys_addr_t start, unsigned long len); -static inline vm_fault_t vmf_insert_page(struct vm_area_struct *vma, +static inline vm_fault_t vmf_insert_page(struct mm_area *vma, unsigned long addr, struct page *page) { int err = vm_insert_page(vma, addr, page); @@ -3653,7 +3653,7 @@ static inline vm_fault_t vmf_insert_page(struct vm_area_struct *vma, } #ifndef io_remap_pfn_range -static inline int io_remap_pfn_range(struct vm_area_struct *vma, +static inline int io_remap_pfn_range(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { @@ -3703,7 +3703,7 @@ static inline int vm_fault_to_errno(vm_fault_t vm_fault, int foll_flags) * Indicates whether GUP can follow a PROT_NONE mapped page, or whether * a (NUMA hinting) fault is required. */ -static inline bool gup_can_follow_protnone(struct vm_area_struct *vma, +static inline bool gup_can_follow_protnone(struct mm_area *vma, unsigned int flags) { /* @@ -3872,11 +3872,11 @@ static inline void clear_page_guard(struct zone *zone, struct page *page, #endif /* CONFIG_DEBUG_PAGEALLOC */ #ifdef __HAVE_ARCH_GATE_AREA -extern struct vm_area_struct *get_gate_vma(struct mm_struct *mm); +extern struct mm_area *get_gate_vma(struct mm_struct *mm); extern int in_gate_area_no_mm(unsigned long addr); extern int in_gate_area(struct mm_struct *mm, unsigned long addr); #else -static inline struct vm_area_struct *get_gate_vma(struct mm_struct *mm) +static inline struct mm_area *get_gate_vma(struct mm_struct *mm) { return NULL; } @@ -3897,7 +3897,7 @@ void drop_slab(void); extern int randomize_va_space; #endif -const char * arch_vma_name(struct vm_area_struct *vma); +const char * arch_vma_name(struct mm_area *vma); #ifdef CONFIG_MMU void print_vma_addr(char *prefix, unsigned long rip); #else @@ -4117,14 +4117,14 @@ enum mf_action_page_type { void folio_zero_user(struct folio *folio, unsigned long addr_hint); int copy_user_large_folio(struct folio *dst, struct folio *src, unsigned long addr_hint, - struct vm_area_struct *vma); + struct mm_area *vma); long copy_folio_from_user(struct folio *dst_folio, const void __user *usr_src, bool allow_pagefault); /** * vma_is_special_huge - Are transhuge page-table entries considered special? - * @vma: Pointer to the struct vm_area_struct to consider + * @vma: Pointer to the struct mm_area to consider * * Whether transhuge page-table entries are considered "special" following * the definition in vm_normal_page(). @@ -4132,7 +4132,7 @@ long copy_folio_from_user(struct folio *dst_folio, * Return: true if transhuge page-table entries should be considered special, * false otherwise. */ -static inline bool vma_is_special_huge(const struct vm_area_struct *vma) +static inline bool vma_is_special_huge(const struct mm_area *vma) { return vma_is_dax(vma) || (vma->vm_file && (vma->vm_flags & (VM_PFNMAP | VM_MIXEDMAP))); @@ -4201,8 +4201,8 @@ static inline bool pfn_is_unaccepted_memory(unsigned long pfn) return range_contains_unaccepted_memory(pfn << PAGE_SHIFT, PAGE_SIZE); } -void vma_pgtable_walk_begin(struct vm_area_struct *vma); -void vma_pgtable_walk_end(struct vm_area_struct *vma); +void vma_pgtable_walk_begin(struct mm_area *vma); +void vma_pgtable_walk_end(struct mm_area *vma); int reserve_mem_find_by_name(const char *name, phys_addr_t *start, phys_addr_t *size); int reserve_mem_release_by_name(const char *name); diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index f9157a0c42a5..7b5bcca96464 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -404,8 +404,8 @@ struct anon_vma_name *anon_vma_name_reuse(struct anon_vma_name *anon_name) return anon_vma_name_alloc(anon_name->name); } -static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma, - struct vm_area_struct *new_vma) +static inline void dup_anon_vma_name(struct mm_area *orig_vma, + struct mm_area *new_vma) { struct anon_vma_name *anon_name = anon_vma_name(orig_vma); @@ -413,7 +413,7 @@ static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma, new_vma->anon_name = anon_vma_name_reuse(anon_name); } -static inline void free_anon_vma_name(struct vm_area_struct *vma) +static inline void free_anon_vma_name(struct mm_area *vma) { /* * Not using anon_vma_name because it generates a warning if mmap_lock @@ -435,9 +435,9 @@ static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1, #else /* CONFIG_ANON_VMA_NAME */ static inline void anon_vma_name_get(struct anon_vma_name *anon_name) {} static inline void anon_vma_name_put(struct anon_vma_name *anon_name) {} -static inline void dup_anon_vma_name(struct vm_area_struct *orig_vma, - struct vm_area_struct *new_vma) {} -static inline void free_anon_vma_name(struct vm_area_struct *vma) {} +static inline void dup_anon_vma_name(struct mm_area *orig_vma, + struct mm_area *new_vma) {} +static inline void free_anon_vma_name(struct mm_area *vma) {} static inline bool anon_vma_name_eq(struct anon_vma_name *anon_name1, struct anon_vma_name *anon_name2) @@ -538,7 +538,7 @@ static inline bool mm_tlb_flush_nested(struct mm_struct *mm) * The caller should insert a new pte created with make_pte_marker(). */ static inline pte_marker copy_pte_marker( - swp_entry_t entry, struct vm_area_struct *dst_vma) + swp_entry_t entry, struct mm_area *dst_vma) { pte_marker srcm = pte_marker_get(entry); /* Always copy error entries. */ @@ -565,7 +565,7 @@ static inline pte_marker copy_pte_marker( * Returns true if an uffd-wp pte was installed, false otherwise. */ static inline bool -pte_install_uffd_wp_if_needed(struct vm_area_struct *vma, unsigned long addr, +pte_install_uffd_wp_if_needed(struct mm_area *vma, unsigned long addr, pte_t *pte, pte_t pteval) { #ifdef CONFIG_PTE_MARKER_UFFD_WP @@ -603,7 +603,7 @@ pte_install_uffd_wp_if_needed(struct vm_area_struct *vma, unsigned long addr, return false; } -static inline bool vma_has_recency(struct vm_area_struct *vma) +static inline bool vma_has_recency(struct mm_area *vma) { if (vma->vm_flags & (VM_SEQ_READ | VM_RAND_READ)) return false; diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 56d07edd01f9..185fdf91bda1 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -710,11 +710,11 @@ struct anon_vma_name { * either keep holding the lock while using the returned pointer or it should * raise anon_vma_name refcount before releasing the lock. */ -struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma); +struct anon_vma_name *anon_vma_name(struct mm_area *vma); struct anon_vma_name *anon_vma_name_alloc(const char *name); void anon_vma_name_free(struct kref *kref); #else /* CONFIG_ANON_VMA_NAME */ -static inline struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma) +static inline struct anon_vma_name *anon_vma_name(struct mm_area *vma) { return NULL; } @@ -774,9 +774,9 @@ struct vma_numab_state { * getting a stable reference. * * WARNING: when adding new members, please update vm_area_init_from() to copy - * them during vm_area_struct content duplication. + * them during mm_area content duplication. */ -struct vm_area_struct { +struct mm_area { /* The first cache line has the info for VMA tree walking. */ union { @@ -1488,14 +1488,14 @@ struct vm_special_mapping { * on the special mapping. If used, .pages is not checked. */ vm_fault_t (*fault)(const struct vm_special_mapping *sm, - struct vm_area_struct *vma, + struct mm_area *vma, struct vm_fault *vmf); int (*mremap)(const struct vm_special_mapping *sm, - struct vm_area_struct *new_vma); + struct mm_area *new_vma); void (*close)(const struct vm_special_mapping *sm, - struct vm_area_struct *vma); + struct mm_area *vma); }; enum tlb_flush_reason { diff --git a/include/linux/mmdebug.h b/include/linux/mmdebug.h index a0a3894900ed..b713e4921bb8 100644 --- a/include/linux/mmdebug.h +++ b/include/linux/mmdebug.h @@ -6,13 +6,13 @@ #include struct page; -struct vm_area_struct; +struct mm_area; struct mm_struct; struct vma_iterator; struct vma_merge_struct; void dump_page(const struct page *page, const char *reason); -void dump_vma(const struct vm_area_struct *vma); +void dump_vma(const struct mm_area *vma); void dump_mm(const struct mm_struct *mm); void dump_vmg(const struct vma_merge_struct *vmg, const char *reason); void vma_iter_dump_tree(const struct vma_iterator *vmi); diff --git a/include/linux/mmu_notifier.h b/include/linux/mmu_notifier.h index bc2402a45741..1c83061bf690 100644 --- a/include/linux/mmu_notifier.h +++ b/include/linux/mmu_notifier.h @@ -518,7 +518,7 @@ static inline void mmu_notifier_range_init_owner( #define ptep_clear_flush_young_notify(__vma, __address, __ptep) \ ({ \ int __young; \ - struct vm_area_struct *___vma = __vma; \ + struct mm_area *___vma = __vma; \ unsigned long ___address = __address; \ __young = ptep_clear_flush_young(___vma, ___address, __ptep); \ __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \ @@ -531,7 +531,7 @@ static inline void mmu_notifier_range_init_owner( #define pmdp_clear_flush_young_notify(__vma, __address, __pmdp) \ ({ \ int __young; \ - struct vm_area_struct *___vma = __vma; \ + struct mm_area *___vma = __vma; \ unsigned long ___address = __address; \ __young = pmdp_clear_flush_young(___vma, ___address, __pmdp); \ __young |= mmu_notifier_clear_flush_young(___vma->vm_mm, \ @@ -544,7 +544,7 @@ static inline void mmu_notifier_range_init_owner( #define ptep_clear_young_notify(__vma, __address, __ptep) \ ({ \ int __young; \ - struct vm_area_struct *___vma = __vma; \ + struct mm_area *___vma = __vma; \ unsigned long ___address = __address; \ __young = ptep_test_and_clear_young(___vma, ___address, __ptep);\ __young |= mmu_notifier_clear_young(___vma->vm_mm, ___address, \ @@ -555,7 +555,7 @@ static inline void mmu_notifier_range_init_owner( #define pmdp_clear_young_notify(__vma, __address, __pmdp) \ ({ \ int __young; \ - struct vm_area_struct *___vma = __vma; \ + struct mm_area *___vma = __vma; \ unsigned long ___address = __address; \ __young = pmdp_test_and_clear_young(___vma, ___address, __pmdp);\ __young |= mmu_notifier_clear_young(___vma->vm_mm, ___address, \ diff --git a/include/linux/net.h b/include/linux/net.h index 0ff950eecc6b..501f966667be 100644 --- a/include/linux/net.h +++ b/include/linux/net.h @@ -147,7 +147,7 @@ typedef struct { int error; } read_descriptor_t; -struct vm_area_struct; +struct mm_area; struct page; struct sockaddr; struct msghdr; @@ -208,7 +208,7 @@ struct proto_ops { int (*recvmsg) (struct socket *sock, struct msghdr *m, size_t total_len, int flags); int (*mmap) (struct file *file, struct socket *sock, - struct vm_area_struct * vma); + struct mm_area * vma); ssize_t (*splice_read)(struct socket *sock, loff_t *ppos, struct pipe_inode_info *pipe, size_t len, unsigned int flags); void (*splice_eof)(struct socket *sock); diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h index 26baa78f1ca7..1848be69048a 100644 --- a/include/linux/pagemap.h +++ b/include/linux/pagemap.h @@ -1043,7 +1043,7 @@ static inline pgoff_t folio_pgoff(struct folio *folio) return folio->index; } -static inline pgoff_t linear_page_index(struct vm_area_struct *vma, +static inline pgoff_t linear_page_index(struct mm_area *vma, unsigned long address) { pgoff_t pgoff; diff --git a/include/linux/pagewalk.h b/include/linux/pagewalk.h index 9700a29f8afb..026bb21ede0e 100644 --- a/include/linux/pagewalk.h +++ b/include/linux/pagewalk.h @@ -120,7 +120,7 @@ struct mm_walk { const struct mm_walk_ops *ops; struct mm_struct *mm; pgd_t *pgd; - struct vm_area_struct *vma; + struct mm_area *vma; enum page_walk_action action; bool no_vma; void *private; @@ -133,10 +133,10 @@ int walk_page_range_novma(struct mm_struct *mm, unsigned long start, unsigned long end, const struct mm_walk_ops *ops, pgd_t *pgd, void *private); -int walk_page_range_vma(struct vm_area_struct *vma, unsigned long start, +int walk_page_range_vma(struct mm_area *vma, unsigned long start, unsigned long end, const struct mm_walk_ops *ops, void *private); -int walk_page_vma(struct vm_area_struct *vma, const struct mm_walk_ops *ops, +int walk_page_vma(struct mm_area *vma, const struct mm_walk_ops *ops, void *private); int walk_page_mapping(struct address_space *mapping, pgoff_t first_index, pgoff_t nr, const struct mm_walk_ops *ops, @@ -185,12 +185,12 @@ struct folio_walk { pmd_t pmd; }; /* private */ - struct vm_area_struct *vma; + struct mm_area *vma; spinlock_t *ptl; }; struct folio *folio_walk_start(struct folio_walk *fw, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, folio_walk_flags_t flags); #define folio_walk_end(__fw, __vma) do { \ diff --git a/include/linux/pci.h b/include/linux/pci.h index 0e8e3fd77e96..343fcd42b066 100644 --- a/include/linux/pci.h +++ b/include/linux/pci.h @@ -2103,7 +2103,7 @@ pci_alloc_irq_vectors(struct pci_dev *dev, unsigned int min_vecs, * */ int pci_mmap_resource_range(struct pci_dev *dev, int bar, - struct vm_area_struct *vma, + struct mm_area *vma, enum pci_mmap_state mmap_state, int write_combine); #ifndef arch_can_pci_mmap_wc @@ -2114,7 +2114,7 @@ int pci_mmap_resource_range(struct pci_dev *dev, int bar, #define arch_can_pci_mmap_io() 0 #define pci_iobar_pfn(pdev, bar, vma) (-EINVAL) #else -int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct vm_area_struct *vma); +int pci_iobar_pfn(struct pci_dev *pdev, int bar, struct mm_area *vma); #endif #ifndef pci_root_bus_fwnode diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 5a9bf15d4461..cb7f59821923 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h @@ -1596,7 +1596,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev, __perf_event_task_sched_out(prev, next); } -extern void perf_event_mmap(struct vm_area_struct *vma); +extern void perf_event_mmap(struct mm_area *vma); extern void perf_event_ksymbol(u16 ksym_type, u64 addr, u32 len, bool unregister, const char *sym); @@ -1889,7 +1889,7 @@ perf_sw_event(u32 event_id, u64 nr, struct pt_regs *regs, u64 addr) { } static inline void perf_bp_event(struct perf_event *event, void *data) { } -static inline void perf_event_mmap(struct vm_area_struct *vma) { } +static inline void perf_event_mmap(struct mm_area *vma) { } typedef int (perf_ksymbol_get_name_f)(char *name, int name_len, void *data); static inline void perf_event_ksymbol(u16 ksym_type, u64 addr, u32 len, diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index e2b705c14945..eb50af52018b 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -303,28 +303,28 @@ static inline void set_ptes(struct mm_struct *mm, unsigned long addr, #define set_pte_at(mm, addr, ptep, pte) set_ptes(mm, addr, ptep, pte, 1) #ifndef __HAVE_ARCH_PTEP_SET_ACCESS_FLAGS -extern int ptep_set_access_flags(struct vm_area_struct *vma, +extern int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty); #endif #ifndef __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS #ifdef CONFIG_TRANSPARENT_HUGEPAGE -extern int pmdp_set_access_flags(struct vm_area_struct *vma, +extern int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty); -extern int pudp_set_access_flags(struct vm_area_struct *vma, +extern int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty); #else -static inline int pmdp_set_access_flags(struct vm_area_struct *vma, +static inline int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { BUILD_BUG(); return 0; } -static inline int pudp_set_access_flags(struct vm_area_struct *vma, +static inline int pudp_set_access_flags(struct mm_area *vma, unsigned long address, pud_t *pudp, pud_t entry, int dirty) { @@ -370,7 +370,7 @@ static inline pgd_t pgdp_get(pgd_t *pgdp) #endif #ifndef __HAVE_ARCH_PTEP_TEST_AND_CLEAR_YOUNG -static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, +static inline int ptep_test_and_clear_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { @@ -386,7 +386,7 @@ static inline int ptep_test_and_clear_young(struct vm_area_struct *vma, #ifndef __HAVE_ARCH_PMDP_TEST_AND_CLEAR_YOUNG #if defined(CONFIG_TRANSPARENT_HUGEPAGE) || defined(CONFIG_ARCH_HAS_NONLEAF_PMD_YOUNG) -static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, +static inline int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { @@ -399,7 +399,7 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, return r; } #else -static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, +static inline int pmdp_test_and_clear_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { @@ -410,20 +410,20 @@ static inline int pmdp_test_and_clear_young(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -int ptep_clear_flush_young(struct vm_area_struct *vma, +int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep); #endif #ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH #ifdef CONFIG_TRANSPARENT_HUGEPAGE -extern int pmdp_clear_flush_young(struct vm_area_struct *vma, +extern int pmdp_clear_flush_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #else /* * Despite relevant to THP only, this API is called from generic rmap code * under PageTransHuge(), hence needs a dummy implementation for !THP */ -static inline int pmdp_clear_flush_young(struct vm_area_struct *vma, +static inline int pmdp_clear_flush_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { BUILD_BUG(); @@ -457,21 +457,21 @@ static inline bool arch_has_hw_pte_young(void) #endif #ifndef arch_check_zapped_pte -static inline void arch_check_zapped_pte(struct vm_area_struct *vma, +static inline void arch_check_zapped_pte(struct mm_area *vma, pte_t pte) { } #endif #ifndef arch_check_zapped_pmd -static inline void arch_check_zapped_pmd(struct vm_area_struct *vma, +static inline void arch_check_zapped_pmd(struct mm_area *vma, pmd_t pmd) { } #endif #ifndef arch_check_zapped_pud -static inline void arch_check_zapped_pud(struct vm_area_struct *vma, pud_t pud) +static inline void arch_check_zapped_pud(struct mm_area *vma, pud_t pud) { } #endif @@ -507,7 +507,7 @@ static inline pte_t ptep_get_and_clear(struct mm_struct *mm, * Context: The caller holds the page table lock. The PTEs map consecutive * pages that belong to the same folio. The PTEs are all in the same PMD. */ -static inline void clear_young_dirty_ptes(struct vm_area_struct *vma, +static inline void clear_young_dirty_ptes(struct mm_area *vma, unsigned long addr, pte_t *ptep, unsigned int nr, cydp_t flags) { @@ -659,7 +659,7 @@ static inline pud_t pudp_huge_get_and_clear(struct mm_struct *mm, #ifdef CONFIG_TRANSPARENT_HUGEPAGE #ifndef __HAVE_ARCH_PMDP_HUGE_GET_AND_CLEAR_FULL -static inline pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, +static inline pmd_t pmdp_huge_get_and_clear_full(struct mm_area *vma, unsigned long address, pmd_t *pmdp, int full) { @@ -668,7 +668,7 @@ static inline pmd_t pmdp_huge_get_and_clear_full(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PUDP_HUGE_GET_AND_CLEAR_FULL -static inline pud_t pudp_huge_get_and_clear_full(struct vm_area_struct *vma, +static inline pud_t pudp_huge_get_and_clear_full(struct mm_area *vma, unsigned long address, pud_t *pudp, int full) { @@ -766,13 +766,13 @@ static inline void clear_full_ptes(struct mm_struct *mm, unsigned long addr, * It is the difference with function update_mmu_cache. */ #ifndef update_mmu_tlb_range -static inline void update_mmu_tlb_range(struct vm_area_struct *vma, +static inline void update_mmu_tlb_range(struct mm_area *vma, unsigned long address, pte_t *ptep, unsigned int nr) { } #endif -static inline void update_mmu_tlb(struct vm_area_struct *vma, +static inline void update_mmu_tlb(struct mm_area *vma, unsigned long address, pte_t *ptep) { update_mmu_tlb_range(vma, address, ptep, 1); @@ -823,29 +823,29 @@ static inline void clear_not_present_full_ptes(struct mm_struct *mm, #endif #ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH -extern pte_t ptep_clear_flush(struct vm_area_struct *vma, +extern pte_t ptep_clear_flush(struct mm_area *vma, unsigned long address, pte_t *ptep); #endif #ifndef __HAVE_ARCH_PMDP_HUGE_CLEAR_FLUSH -extern pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, +extern pmd_t pmdp_huge_clear_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); -extern pud_t pudp_huge_clear_flush(struct vm_area_struct *vma, +extern pud_t pudp_huge_clear_flush(struct mm_area *vma, unsigned long address, pud_t *pudp); #endif #ifndef pte_mkwrite -static inline pte_t pte_mkwrite(pte_t pte, struct vm_area_struct *vma) +static inline pte_t pte_mkwrite(pte_t pte, struct mm_area *vma) { return pte_mkwrite_novma(pte); } #endif #if defined(CONFIG_ARCH_WANT_PMD_MKWRITE) && !defined(pmd_mkwrite) -static inline pmd_t pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) +static inline pmd_t pmd_mkwrite(pmd_t pmd, struct mm_area *vma) { return pmd_mkwrite_novma(pmd); } @@ -945,10 +945,10 @@ static inline void pudp_set_wrprotect(struct mm_struct *mm, #ifndef pmdp_collapse_flush #ifdef CONFIG_TRANSPARENT_HUGEPAGE -extern pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +extern pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #else -static inline pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, +static inline pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { @@ -978,7 +978,7 @@ extern pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp); * architecture that doesn't have hardware dirty/accessed bits. In this case we * can't race with CPU which sets these bits and non-atomic approach is fine. */ -static inline pmd_t generic_pmdp_establish(struct vm_area_struct *vma, +static inline pmd_t generic_pmdp_establish(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t pmd) { pmd_t old_pmd = *pmdp; @@ -988,7 +988,7 @@ static inline pmd_t generic_pmdp_establish(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PMDP_INVALIDATE -extern pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +extern pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #endif @@ -1008,7 +1008,7 @@ extern pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, * to batch these TLB flushing operations, so fewer TLB flush operations are * needed. */ -extern pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, +extern pmd_t pmdp_invalidate_ad(struct mm_area *vma, unsigned long address, pmd_t *pmdp); #endif @@ -1088,7 +1088,7 @@ static inline int pgd_same(pgd_t pgd_a, pgd_t pgd_b) #ifndef __HAVE_ARCH_DO_SWAP_PAGE static inline void arch_do_swap_page_nr(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t pte, pte_t oldpte, int nr) @@ -1105,7 +1105,7 @@ static inline void arch_do_swap_page_nr(struct mm_struct *mm, * metadata when a page is swapped back in. */ static inline void arch_do_swap_page_nr(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t pte, pte_t oldpte, int nr) @@ -1128,7 +1128,7 @@ static inline void arch_do_swap_page_nr(struct mm_struct *mm, * metadata on a swap-out of a page. */ static inline int arch_unmap_one(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, pte_t orig_pte) { @@ -1277,7 +1277,7 @@ static inline int pmd_none_or_clear_bad(pmd_t *pmd) return 0; } -static inline pte_t __ptep_modify_prot_start(struct vm_area_struct *vma, +static inline pte_t __ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { @@ -1289,7 +1289,7 @@ static inline pte_t __ptep_modify_prot_start(struct vm_area_struct *vma, return ptep_get_and_clear(vma->vm_mm, addr, ptep); } -static inline void __ptep_modify_prot_commit(struct vm_area_struct *vma, +static inline void __ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t pte) { @@ -1315,7 +1315,7 @@ static inline void __ptep_modify_prot_commit(struct vm_area_struct *vma, * queue the update to be done at some later time. The update must be * actually committed before the pte lock is released, however. */ -static inline pte_t ptep_modify_prot_start(struct vm_area_struct *vma, +static inline pte_t ptep_modify_prot_start(struct mm_area *vma, unsigned long addr, pte_t *ptep) { @@ -1326,7 +1326,7 @@ static inline pte_t ptep_modify_prot_start(struct vm_area_struct *vma, * Commit an update to a pte, leaving any hardware-controlled bits in * the PTE unmodified. */ -static inline void ptep_modify_prot_commit(struct vm_area_struct *vma, +static inline void ptep_modify_prot_commit(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t old_pte, pte_t pte) { @@ -1493,7 +1493,7 @@ static inline pmd_t pmd_swp_clear_soft_dirty(pmd_t pmd) * track_pfn_remap is called when a _new_ pfn mapping is being established * by remap_pfn_range() for physical range indicated by pfn and size. */ -static inline int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, +static inline int track_pfn_remap(struct mm_area *vma, pgprot_t *prot, unsigned long pfn, unsigned long addr, unsigned long size) { @@ -1504,7 +1504,7 @@ static inline int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, * track_pfn_insert is called when a _new_ single pfn is established * by vmf_insert_pfn(). */ -static inline void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, +static inline void track_pfn_insert(struct mm_area *vma, pgprot_t *prot, pfn_t pfn) { } @@ -1514,8 +1514,8 @@ static inline void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, * tables copied during copy_page_range(). On success, stores the pfn to be * passed to untrack_pfn_copy(). */ -static inline int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn) +static inline int track_pfn_copy(struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long *pfn) { return 0; } @@ -1524,7 +1524,7 @@ static inline int track_pfn_copy(struct vm_area_struct *dst_vma, * untrack_pfn_copy is called when a VM_PFNMAP VMA failed to copy during * copy_page_range(), but after track_pfn_copy() was already called. */ -static inline void untrack_pfn_copy(struct vm_area_struct *dst_vma, +static inline void untrack_pfn_copy(struct mm_area *dst_vma, unsigned long pfn) { } @@ -1534,7 +1534,7 @@ static inline void untrack_pfn_copy(struct vm_area_struct *dst_vma, * untrack can be called for a specific region indicated by pfn and size or * can be for the entire vma (in which case pfn, size are zero). */ -static inline void untrack_pfn(struct vm_area_struct *vma, +static inline void untrack_pfn(struct mm_area *vma, unsigned long pfn, unsigned long size, bool mm_wr_locked) { @@ -1546,22 +1546,22 @@ static inline void untrack_pfn(struct vm_area_struct *vma, * 1) During mremap() on the src VMA after the page tables were moved. * 2) During fork() on the dst VMA, immediately after duplicating the src VMA. */ -static inline void untrack_pfn_clear(struct vm_area_struct *vma) +static inline void untrack_pfn_clear(struct mm_area *vma) { } #else -extern int track_pfn_remap(struct vm_area_struct *vma, pgprot_t *prot, +extern int track_pfn_remap(struct mm_area *vma, pgprot_t *prot, unsigned long pfn, unsigned long addr, unsigned long size); -extern void track_pfn_insert(struct vm_area_struct *vma, pgprot_t *prot, +extern void track_pfn_insert(struct mm_area *vma, pgprot_t *prot, pfn_t pfn); -extern int track_pfn_copy(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long *pfn); -extern void untrack_pfn_copy(struct vm_area_struct *dst_vma, +extern int track_pfn_copy(struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long *pfn); +extern void untrack_pfn_copy(struct mm_area *dst_vma, unsigned long pfn); -extern void untrack_pfn(struct vm_area_struct *vma, unsigned long pfn, +extern void untrack_pfn(struct mm_area *vma, unsigned long pfn, unsigned long size, bool mm_wr_locked); -extern void untrack_pfn_clear(struct vm_area_struct *vma); +extern void untrack_pfn_clear(struct mm_area *vma); #endif #ifdef CONFIG_MMU diff --git a/include/linux/pkeys.h b/include/linux/pkeys.h index 86be8bf27b41..71db2f7ec326 100644 --- a/include/linux/pkeys.h +++ b/include/linux/pkeys.h @@ -15,7 +15,7 @@ #define PKEY_DEDICATED_EXECUTE_ONLY 0 #define ARCH_VM_PKEY_FLAGS 0 -static inline int vma_pkey(struct vm_area_struct *vma) +static inline int vma_pkey(struct mm_area *vma) { return 0; } diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h index ea62201c74c4..b123101b135e 100644 --- a/include/linux/proc_fs.h +++ b/include/linux/proc_fs.h @@ -43,7 +43,7 @@ struct proc_ops { #ifdef CONFIG_COMPAT long (*proc_compat_ioctl)(struct file *, unsigned int, unsigned long); #endif - int (*proc_mmap)(struct file *, struct vm_area_struct *); + int (*proc_mmap)(struct file *, struct mm_area *); unsigned long (*proc_get_unmapped_area)(struct file *, unsigned long, unsigned long, unsigned long, unsigned long); } __randomize_layout; diff --git a/include/linux/ring_buffer.h b/include/linux/ring_buffer.h index 56e27263acf8..d7bed10786f6 100644 --- a/include/linux/ring_buffer.h +++ b/include/linux/ring_buffer.h @@ -245,7 +245,7 @@ int trace_rb_cpu_prepare(unsigned int cpu, struct hlist_node *node); #endif int ring_buffer_map(struct trace_buffer *buffer, int cpu, - struct vm_area_struct *vma); + struct mm_area *vma); int ring_buffer_unmap(struct trace_buffer *buffer, int cpu); int ring_buffer_map_get_reader(struct trace_buffer *buffer, int cpu); #endif /* _LINUX_RING_BUFFER_H */ diff --git a/include/linux/rmap.h b/include/linux/rmap.h index 6b82b618846e..6e0a7da7a80a 100644 --- a/include/linux/rmap.h +++ b/include/linux/rmap.h @@ -81,7 +81,7 @@ struct anon_vma { * which link all the VMAs associated with this anon_vma. */ struct anon_vma_chain { - struct vm_area_struct *vma; + struct mm_area *vma; struct anon_vma *anon_vma; struct list_head same_vma; /* locked by mmap_lock & page_table_lock */ struct rb_node rb; /* locked by anon_vma->rwsem */ @@ -152,12 +152,12 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma) * anon_vma helper functions. */ void anon_vma_init(void); /* create anon_vma_cachep */ -int __anon_vma_prepare(struct vm_area_struct *); -void unlink_anon_vmas(struct vm_area_struct *); -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *); -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *); +int __anon_vma_prepare(struct mm_area *); +void unlink_anon_vmas(struct mm_area *); +int anon_vma_clone(struct mm_area *, struct mm_area *); +int anon_vma_fork(struct mm_area *, struct mm_area *); -static inline int anon_vma_prepare(struct vm_area_struct *vma) +static inline int anon_vma_prepare(struct mm_area *vma) { if (likely(vma->anon_vma)) return 0; @@ -165,8 +165,8 @@ static inline int anon_vma_prepare(struct vm_area_struct *vma) return __anon_vma_prepare(vma); } -static inline void anon_vma_merge(struct vm_area_struct *vma, - struct vm_area_struct *next) +static inline void anon_vma_merge(struct mm_area *vma, + struct mm_area *next) { VM_BUG_ON_VMA(vma->anon_vma != next->anon_vma, vma); unlink_anon_vmas(next); @@ -227,7 +227,7 @@ static inline void __folio_large_mapcount_sanity_checks(const struct folio *foli } static __always_inline void folio_set_large_mapcount(struct folio *folio, - int mapcount, struct vm_area_struct *vma) + int mapcount, struct mm_area *vma) { __folio_large_mapcount_sanity_checks(folio, mapcount, vma->vm_mm->mm_id); @@ -241,7 +241,7 @@ static __always_inline void folio_set_large_mapcount(struct folio *folio, } static __always_inline int folio_add_return_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { const mm_id_t mm_id = vma->vm_mm->mm_id; int new_mapcount_val; @@ -291,7 +291,7 @@ static __always_inline int folio_add_return_large_mapcount(struct folio *folio, #define folio_add_large_mapcount folio_add_return_large_mapcount static __always_inline int folio_sub_return_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { const mm_id_t mm_id = vma->vm_mm->mm_id; int new_mapcount_val; @@ -342,32 +342,32 @@ static __always_inline int folio_sub_return_large_mapcount(struct folio *folio, * CONFIG_TRANSPARENT_HUGEPAGE. We'll keep that working for now. */ static inline void folio_set_large_mapcount(struct folio *folio, int mapcount, - struct vm_area_struct *vma) + struct mm_area *vma) { /* Note: mapcounts start at -1. */ atomic_set(&folio->_large_mapcount, mapcount - 1); } static inline void folio_add_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { atomic_add(diff, &folio->_large_mapcount); } static inline int folio_add_return_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { BUILD_BUG(); } static inline void folio_sub_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { atomic_sub(diff, &folio->_large_mapcount); } static inline int folio_sub_return_large_mapcount(struct folio *folio, - int diff, struct vm_area_struct *vma) + int diff, struct mm_area *vma) { BUILD_BUG(); } @@ -454,40 +454,40 @@ static inline void __folio_rmap_sanity_checks(const struct folio *folio, /* * rmap interfaces called when adding or removing pte of page */ -void folio_move_anon_rmap(struct folio *, struct vm_area_struct *); +void folio_move_anon_rmap(struct folio *, struct mm_area *); void folio_add_anon_rmap_ptes(struct folio *, struct page *, int nr_pages, - struct vm_area_struct *, unsigned long address, rmap_t flags); + struct mm_area *, unsigned long address, rmap_t flags); #define folio_add_anon_rmap_pte(folio, page, vma, address, flags) \ folio_add_anon_rmap_ptes(folio, page, 1, vma, address, flags) void folio_add_anon_rmap_pmd(struct folio *, struct page *, - struct vm_area_struct *, unsigned long address, rmap_t flags); -void folio_add_new_anon_rmap(struct folio *, struct vm_area_struct *, + struct mm_area *, unsigned long address, rmap_t flags); +void folio_add_new_anon_rmap(struct folio *, struct mm_area *, unsigned long address, rmap_t flags); void folio_add_file_rmap_ptes(struct folio *, struct page *, int nr_pages, - struct vm_area_struct *); + struct mm_area *); #define folio_add_file_rmap_pte(folio, page, vma) \ folio_add_file_rmap_ptes(folio, page, 1, vma) void folio_add_file_rmap_pmd(struct folio *, struct page *, - struct vm_area_struct *); + struct mm_area *); void folio_add_file_rmap_pud(struct folio *, struct page *, - struct vm_area_struct *); + struct mm_area *); void folio_remove_rmap_ptes(struct folio *, struct page *, int nr_pages, - struct vm_area_struct *); + struct mm_area *); #define folio_remove_rmap_pte(folio, page, vma) \ folio_remove_rmap_ptes(folio, page, 1, vma) void folio_remove_rmap_pmd(struct folio *, struct page *, - struct vm_area_struct *); + struct mm_area *); void folio_remove_rmap_pud(struct folio *, struct page *, - struct vm_area_struct *); + struct mm_area *); -void hugetlb_add_anon_rmap(struct folio *, struct vm_area_struct *, +void hugetlb_add_anon_rmap(struct folio *, struct mm_area *, unsigned long address, rmap_t flags); -void hugetlb_add_new_anon_rmap(struct folio *, struct vm_area_struct *, +void hugetlb_add_new_anon_rmap(struct folio *, struct mm_area *, unsigned long address); /* See folio_try_dup_anon_rmap_*() */ static inline int hugetlb_try_dup_anon_rmap(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { VM_WARN_ON_FOLIO(!folio_test_hugetlb(folio), folio); VM_WARN_ON_FOLIO(!folio_test_anon(folio), folio); @@ -544,7 +544,7 @@ static inline void hugetlb_remove_rmap(struct folio *folio) } static __always_inline void __folio_dup_file_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *dst_vma, + struct page *page, int nr_pages, struct mm_area *dst_vma, enum rmap_level level) { const int orig_nr_pages = nr_pages; @@ -585,13 +585,13 @@ static __always_inline void __folio_dup_file_rmap(struct folio *folio, * The caller needs to hold the page table lock. */ static inline void folio_dup_file_rmap_ptes(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *dst_vma) + struct page *page, int nr_pages, struct mm_area *dst_vma) { __folio_dup_file_rmap(folio, page, nr_pages, dst_vma, RMAP_LEVEL_PTE); } static __always_inline void folio_dup_file_rmap_pte(struct folio *folio, - struct page *page, struct vm_area_struct *dst_vma) + struct page *page, struct mm_area *dst_vma) { __folio_dup_file_rmap(folio, page, 1, dst_vma, RMAP_LEVEL_PTE); } @@ -607,7 +607,7 @@ static __always_inline void folio_dup_file_rmap_pte(struct folio *folio, * The caller needs to hold the page table lock. */ static inline void folio_dup_file_rmap_pmd(struct folio *folio, - struct page *page, struct vm_area_struct *dst_vma) + struct page *page, struct mm_area *dst_vma) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE __folio_dup_file_rmap(folio, page, HPAGE_PMD_NR, dst_vma, RMAP_LEVEL_PTE); @@ -617,8 +617,8 @@ static inline void folio_dup_file_rmap_pmd(struct folio *folio, } static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, enum rmap_level level) + struct page *page, int nr_pages, struct mm_area *dst_vma, + struct mm_area *src_vma, enum rmap_level level) { const int orig_nr_pages = nr_pages; bool maybe_pinned; @@ -704,16 +704,16 @@ static __always_inline int __folio_try_dup_anon_rmap(struct folio *folio, * Returns 0 if duplicating the mappings succeeded. Returns -EBUSY otherwise. */ static inline int folio_try_dup_anon_rmap_ptes(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) + struct page *page, int nr_pages, struct mm_area *dst_vma, + struct mm_area *src_vma) { return __folio_try_dup_anon_rmap(folio, page, nr_pages, dst_vma, src_vma, RMAP_LEVEL_PTE); } static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio, - struct page *page, struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) + struct page *page, struct mm_area *dst_vma, + struct mm_area *src_vma) { return __folio_try_dup_anon_rmap(folio, page, 1, dst_vma, src_vma, RMAP_LEVEL_PTE); @@ -743,8 +743,8 @@ static __always_inline int folio_try_dup_anon_rmap_pte(struct folio *folio, * Returns 0 if duplicating the mapping succeeded. Returns -EBUSY otherwise. */ static inline int folio_try_dup_anon_rmap_pmd(struct folio *folio, - struct page *page, struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) + struct page *page, struct mm_area *dst_vma, + struct mm_area *src_vma) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE return __folio_try_dup_anon_rmap(folio, page, HPAGE_PMD_NR, dst_vma, @@ -910,7 +910,7 @@ struct page_vma_mapped_walk { unsigned long pfn; unsigned long nr_pages; pgoff_t pgoff; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long address; pmd_t *pmd; pte_t *pte; @@ -963,7 +963,7 @@ page_vma_mapped_walk_restart(struct page_vma_mapped_walk *pvmw) bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw); unsigned long page_address_in_vma(const struct folio *folio, - const struct page *, const struct vm_area_struct *); + const struct page *, const struct mm_area *); /* * Cleans the PTEs of shared mappings. @@ -977,7 +977,7 @@ int mapping_wrprotect_range(struct address_space *mapping, pgoff_t pgoff, unsigned long pfn, unsigned long nr_pages); int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff, - struct vm_area_struct *vma); + struct mm_area *vma); enum rmp_flags { RMP_LOCKED = 1 << 0, @@ -1005,12 +1005,12 @@ struct rmap_walk_control { * Return false if page table scanning in rmap_walk should be stopped. * Otherwise, return true. */ - bool (*rmap_one)(struct folio *folio, struct vm_area_struct *vma, + bool (*rmap_one)(struct folio *folio, struct mm_area *vma, unsigned long addr, void *arg); int (*done)(struct folio *folio); struct anon_vma *(*anon_lock)(const struct folio *folio, struct rmap_walk_control *rwc); - bool (*invalid_vma)(struct vm_area_struct *vma, void *arg); + bool (*invalid_vma)(struct mm_area *vma, void *arg); }; void rmap_walk(struct folio *folio, struct rmap_walk_control *rwc); diff --git a/include/linux/secretmem.h b/include/linux/secretmem.h index e918f96881f5..a38896f49499 100644 --- a/include/linux/secretmem.h +++ b/include/linux/secretmem.h @@ -11,12 +11,12 @@ static inline bool secretmem_mapping(struct address_space *mapping) return mapping->a_ops == &secretmem_aops; } -bool vma_is_secretmem(struct vm_area_struct *vma); +bool vma_is_secretmem(struct mm_area *vma); bool secretmem_active(void); #else -static inline bool vma_is_secretmem(struct vm_area_struct *vma) +static inline bool vma_is_secretmem(struct mm_area *vma) { return false; } diff --git a/include/linux/security.h b/include/linux/security.h index cc9b54d95d22..8478e56ee173 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -476,7 +476,7 @@ int security_file_ioctl_compat(struct file *file, unsigned int cmd, int security_mmap_file(struct file *file, unsigned long prot, unsigned long flags); int security_mmap_addr(unsigned long addr); -int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, +int security_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot); int security_file_lock(struct file *file, unsigned int cmd); int security_file_fcntl(struct file *file, unsigned int cmd, unsigned long arg); @@ -1151,7 +1151,7 @@ static inline int security_mmap_addr(unsigned long addr) return cap_mmap_addr(addr); } -static inline int security_file_mprotect(struct vm_area_struct *vma, +static inline int security_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot) { diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h index 0b273a7b9f01..e3913a29f10e 100644 --- a/include/linux/shmem_fs.h +++ b/include/linux/shmem_fs.h @@ -92,7 +92,7 @@ extern struct file *shmem_kernel_file_setup(const char *name, loff_t size, unsigned long flags); extern struct file *shmem_file_setup_with_mnt(struct vfsmount *mnt, const char *name, loff_t size, unsigned long flags); -extern int shmem_zero_setup(struct vm_area_struct *); +extern int shmem_zero_setup(struct mm_area *); extern unsigned long shmem_get_unmapped_area(struct file *, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); extern int shmem_lock(struct file *file, int lock, struct ucounts *ucounts); @@ -112,12 +112,12 @@ int shmem_unuse(unsigned int type); #ifdef CONFIG_TRANSPARENT_HUGEPAGE unsigned long shmem_allowable_huge_orders(struct inode *inode, - struct vm_area_struct *vma, pgoff_t index, + struct mm_area *vma, pgoff_t index, loff_t write_end, bool shmem_huge_force); bool shmem_hpage_pmd_enabled(void); #else static inline unsigned long shmem_allowable_huge_orders(struct inode *inode, - struct vm_area_struct *vma, pgoff_t index, + struct mm_area *vma, pgoff_t index, loff_t write_end, bool shmem_huge_force) { return 0; @@ -130,9 +130,9 @@ static inline bool shmem_hpage_pmd_enabled(void) #endif #ifdef CONFIG_SHMEM -extern unsigned long shmem_swap_usage(struct vm_area_struct *vma); +extern unsigned long shmem_swap_usage(struct mm_area *vma); #else -static inline unsigned long shmem_swap_usage(struct vm_area_struct *vma) +static inline unsigned long shmem_swap_usage(struct mm_area *vma) { return 0; } @@ -194,7 +194,7 @@ extern void shmem_uncharge(struct inode *inode, long pages); #ifdef CONFIG_USERFAULTFD #ifdef CONFIG_SHMEM extern int shmem_mfill_atomic_pte(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, diff --git a/include/linux/swap.h b/include/linux/swap.h index db46b25a65ae..1652caa8ceed 100644 --- a/include/linux/swap.h +++ b/include/linux/swap.h @@ -380,7 +380,7 @@ void lru_note_cost(struct lruvec *lruvec, bool file, unsigned int nr_io, unsigned int nr_rotated); void lru_note_cost_refault(struct folio *); void folio_add_lru(struct folio *); -void folio_add_lru_vma(struct folio *, struct vm_area_struct *); +void folio_add_lru_vma(struct folio *, struct mm_area *); void mark_page_accessed(struct page *); void folio_mark_accessed(struct folio *); diff --git a/include/linux/swapops.h b/include/linux/swapops.h index 64ea151a7ae3..697e5d60b776 100644 --- a/include/linux/swapops.h +++ b/include/linux/swapops.h @@ -315,7 +315,7 @@ static inline bool is_migration_entry_dirty(swp_entry_t entry) extern void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address); -extern void migration_entry_wait_huge(struct vm_area_struct *vma, unsigned long addr, pte_t *pte); +extern void migration_entry_wait_huge(struct mm_area *vma, unsigned long addr, pte_t *pte); #else /* CONFIG_MIGRATION */ static inline swp_entry_t make_readable_migration_entry(pgoff_t offset) { @@ -339,7 +339,7 @@ static inline int is_migration_entry(swp_entry_t swp) static inline void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, unsigned long address) { } -static inline void migration_entry_wait_huge(struct vm_area_struct *vma, +static inline void migration_entry_wait_huge(struct mm_area *vma, unsigned long addr, pte_t *pte) { } static inline int is_writable_migration_entry(swp_entry_t entry) { diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h index 18f7e1fd093c..4b1c38978498 100644 --- a/include/linux/sysfs.h +++ b/include/linux/sysfs.h @@ -298,7 +298,7 @@ static const struct attribute_group _name##_group = { \ __ATTRIBUTE_GROUPS(_name) struct file; -struct vm_area_struct; +struct mm_area; struct address_space; struct bin_attribute { @@ -317,7 +317,7 @@ struct bin_attribute { loff_t (*llseek)(struct file *, struct kobject *, const struct bin_attribute *, loff_t, int); int (*mmap)(struct file *, struct kobject *, const struct bin_attribute *attr, - struct vm_area_struct *vma); + struct mm_area *vma); }; /** diff --git a/include/linux/time_namespace.h b/include/linux/time_namespace.h index 0b8b32bf0655..12b3ecc86fe6 100644 --- a/include/linux/time_namespace.h +++ b/include/linux/time_namespace.h @@ -12,7 +12,7 @@ struct user_namespace; extern struct user_namespace init_user_ns; -struct vm_area_struct; +struct mm_area; struct timens_offsets { struct timespec64 monotonic; @@ -47,7 +47,7 @@ struct time_namespace *copy_time_ns(unsigned long flags, struct time_namespace *old_ns); void free_time_ns(struct time_namespace *ns); void timens_on_fork(struct nsproxy *nsproxy, struct task_struct *tsk); -struct page *find_timens_vvar_page(struct vm_area_struct *vma); +struct page *find_timens_vvar_page(struct mm_area *vma); static inline void put_time_ns(struct time_namespace *ns) { @@ -144,7 +144,7 @@ static inline void timens_on_fork(struct nsproxy *nsproxy, return; } -static inline struct page *find_timens_vvar_page(struct vm_area_struct *vma) +static inline struct page *find_timens_vvar_page(struct mm_area *vma) { return NULL; } diff --git a/include/linux/uacce.h b/include/linux/uacce.h index e290c0269944..dcb2b94de9f1 100644 --- a/include/linux/uacce.h +++ b/include/linux/uacce.h @@ -43,7 +43,7 @@ struct uacce_ops { int (*start_queue)(struct uacce_queue *q); void (*stop_queue)(struct uacce_queue *q); int (*is_q_updated)(struct uacce_queue *q); - int (*mmap)(struct uacce_queue *q, struct vm_area_struct *vma, + int (*mmap)(struct uacce_queue *q, struct mm_area *vma, struct uacce_qfile_region *qfr); long (*ioctl)(struct uacce_queue *q, unsigned int cmd, unsigned long arg); diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h index 18238dc8bfd3..69fdc49c1df4 100644 --- a/include/linux/uio_driver.h +++ b/include/linux/uio_driver.h @@ -112,7 +112,7 @@ struct uio_info { unsigned long irq_flags; void *priv; irqreturn_t (*handler)(int irq, struct uio_info *dev_info); - int (*mmap)(struct uio_info *info, struct vm_area_struct *vma); + int (*mmap)(struct uio_info *info, struct mm_area *vma); int (*open)(struct uio_info *info, struct inode *inode); int (*release)(struct uio_info *info, struct inode *inode); int (*irqcontrol)(struct uio_info *info, s32 irq_on); diff --git a/include/linux/uprobes.h b/include/linux/uprobes.h index 2e46b69ff0a6..f8af45f0c683 100644 --- a/include/linux/uprobes.h +++ b/include/linux/uprobes.h @@ -19,7 +19,7 @@ #include struct uprobe; -struct vm_area_struct; +struct mm_area; struct mm_struct; struct inode; struct notifier_block; @@ -199,8 +199,8 @@ extern struct uprobe *uprobe_register(struct inode *inode, loff_t offset, loff_t extern int uprobe_apply(struct uprobe *uprobe, struct uprobe_consumer *uc, bool); extern void uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc); extern void uprobe_unregister_sync(void); -extern int uprobe_mmap(struct vm_area_struct *vma); -extern void uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end); +extern int uprobe_mmap(struct mm_area *vma); +extern void uprobe_munmap(struct mm_area *vma, unsigned long start, unsigned long end); extern void uprobe_start_dup_mmap(void); extern void uprobe_end_dup_mmap(void); extern void uprobe_dup_mmap(struct mm_struct *oldmm, struct mm_struct *newmm); @@ -253,12 +253,12 @@ uprobe_unregister_nosync(struct uprobe *uprobe, struct uprobe_consumer *uc) static inline void uprobe_unregister_sync(void) { } -static inline int uprobe_mmap(struct vm_area_struct *vma) +static inline int uprobe_mmap(struct mm_area *vma) { return 0; } static inline void -uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end) +uprobe_munmap(struct mm_area *vma, unsigned long start, unsigned long end) { } static inline void uprobe_start_dup_mmap(void) diff --git a/include/linux/userfaultfd_k.h b/include/linux/userfaultfd_k.h index 75342022d144..6b45a807875d 100644 --- a/include/linux/userfaultfd_k.h +++ b/include/linux/userfaultfd_k.h @@ -116,7 +116,7 @@ static inline uffd_flags_t uffd_flags_set_mode(uffd_flags_t flags, enum mfill_at #define MFILL_ATOMIC_WP MFILL_ATOMIC_FLAG(0) extern int mfill_atomic_install_pte(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, struct page *page, bool newly_allocated, uffd_flags_t flags); @@ -132,7 +132,7 @@ extern ssize_t mfill_atomic_poison(struct userfaultfd_ctx *ctx, unsigned long st unsigned long len, uffd_flags_t flags); extern int mwriteprotect_range(struct userfaultfd_ctx *ctx, unsigned long start, unsigned long len, bool enable_wp); -extern long uffd_wp_range(struct vm_area_struct *vma, +extern long uffd_wp_range(struct mm_area *vma, unsigned long start, unsigned long len, bool enable_wp); /* move_pages */ @@ -141,12 +141,12 @@ void double_pt_unlock(spinlock_t *ptl1, spinlock_t *ptl2); ssize_t move_pages(struct userfaultfd_ctx *ctx, unsigned long dst_start, unsigned long src_start, unsigned long len, __u64 flags); int move_pages_huge_pmd(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, pmd_t dst_pmdval, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, + struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long dst_addr, unsigned long src_addr); /* mm helpers */ -static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, +static inline bool is_mergeable_vm_userfaultfd_ctx(struct mm_area *vma, struct vm_userfaultfd_ctx vm_ctx) { return vma->vm_userfaultfd_ctx.ctx == vm_ctx.ctx; @@ -163,7 +163,7 @@ static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, * with huge pmd sharing this would *also* setup the second UFFD-registered * mapping, and we'd not get minor faults.) */ -static inline bool uffd_disable_huge_pmd_share(struct vm_area_struct *vma) +static inline bool uffd_disable_huge_pmd_share(struct mm_area *vma) { return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR); } @@ -175,44 +175,44 @@ static inline bool uffd_disable_huge_pmd_share(struct vm_area_struct *vma) * as the fault around checks for pte_none() before the installation, however * to be super safe we just forbid it. */ -static inline bool uffd_disable_fault_around(struct vm_area_struct *vma) +static inline bool uffd_disable_fault_around(struct mm_area *vma) { return vma->vm_flags & (VM_UFFD_WP | VM_UFFD_MINOR); } -static inline bool userfaultfd_missing(struct vm_area_struct *vma) +static inline bool userfaultfd_missing(struct mm_area *vma) { return vma->vm_flags & VM_UFFD_MISSING; } -static inline bool userfaultfd_wp(struct vm_area_struct *vma) +static inline bool userfaultfd_wp(struct mm_area *vma) { return vma->vm_flags & VM_UFFD_WP; } -static inline bool userfaultfd_minor(struct vm_area_struct *vma) +static inline bool userfaultfd_minor(struct mm_area *vma) { return vma->vm_flags & VM_UFFD_MINOR; } -static inline bool userfaultfd_pte_wp(struct vm_area_struct *vma, +static inline bool userfaultfd_pte_wp(struct mm_area *vma, pte_t pte) { return userfaultfd_wp(vma) && pte_uffd_wp(pte); } -static inline bool userfaultfd_huge_pmd_wp(struct vm_area_struct *vma, +static inline bool userfaultfd_huge_pmd_wp(struct mm_area *vma, pmd_t pmd) { return userfaultfd_wp(vma) && pmd_uffd_wp(pmd); } -static inline bool userfaultfd_armed(struct vm_area_struct *vma) +static inline bool userfaultfd_armed(struct mm_area *vma) { return vma->vm_flags & __VM_UFFD_FLAGS; } -static inline bool vma_can_userfault(struct vm_area_struct *vma, +static inline bool vma_can_userfault(struct mm_area *vma, unsigned long vm_flags, bool wp_async) { @@ -247,44 +247,44 @@ static inline bool vma_can_userfault(struct vm_area_struct *vma, vma_is_shmem(vma); } -static inline bool vma_has_uffd_without_event_remap(struct vm_area_struct *vma) +static inline bool vma_has_uffd_without_event_remap(struct mm_area *vma) { struct userfaultfd_ctx *uffd_ctx = vma->vm_userfaultfd_ctx.ctx; return uffd_ctx && (uffd_ctx->features & UFFD_FEATURE_EVENT_REMAP) == 0; } -extern int dup_userfaultfd(struct vm_area_struct *, struct list_head *); +extern int dup_userfaultfd(struct mm_area *, struct list_head *); extern void dup_userfaultfd_complete(struct list_head *); void dup_userfaultfd_fail(struct list_head *); -extern void mremap_userfaultfd_prep(struct vm_area_struct *, +extern void mremap_userfaultfd_prep(struct mm_area *, struct vm_userfaultfd_ctx *); extern void mremap_userfaultfd_complete(struct vm_userfaultfd_ctx *, unsigned long from, unsigned long to, unsigned long len); -extern bool userfaultfd_remove(struct vm_area_struct *vma, +extern bool userfaultfd_remove(struct mm_area *vma, unsigned long start, unsigned long end); -extern int userfaultfd_unmap_prep(struct vm_area_struct *vma, +extern int userfaultfd_unmap_prep(struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *uf); extern void userfaultfd_unmap_complete(struct mm_struct *mm, struct list_head *uf); -extern bool userfaultfd_wp_unpopulated(struct vm_area_struct *vma); -extern bool userfaultfd_wp_async(struct vm_area_struct *vma); +extern bool userfaultfd_wp_unpopulated(struct mm_area *vma); +extern bool userfaultfd_wp_async(struct mm_area *vma); -void userfaultfd_reset_ctx(struct vm_area_struct *vma); +void userfaultfd_reset_ctx(struct mm_area *vma); -struct vm_area_struct *userfaultfd_clear_vma(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, +struct mm_area *userfaultfd_clear_vma(struct vma_iterator *vmi, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end); int userfaultfd_register_range(struct userfaultfd_ctx *ctx, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long vm_flags, unsigned long start, unsigned long end, bool wp_async); @@ -303,53 +303,53 @@ static inline vm_fault_t handle_userfault(struct vm_fault *vmf, return VM_FAULT_SIGBUS; } -static inline long uffd_wp_range(struct vm_area_struct *vma, +static inline long uffd_wp_range(struct mm_area *vma, unsigned long start, unsigned long len, bool enable_wp) { return false; } -static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, +static inline bool is_mergeable_vm_userfaultfd_ctx(struct mm_area *vma, struct vm_userfaultfd_ctx vm_ctx) { return true; } -static inline bool userfaultfd_missing(struct vm_area_struct *vma) +static inline bool userfaultfd_missing(struct mm_area *vma) { return false; } -static inline bool userfaultfd_wp(struct vm_area_struct *vma) +static inline bool userfaultfd_wp(struct mm_area *vma) { return false; } -static inline bool userfaultfd_minor(struct vm_area_struct *vma) +static inline bool userfaultfd_minor(struct mm_area *vma) { return false; } -static inline bool userfaultfd_pte_wp(struct vm_area_struct *vma, +static inline bool userfaultfd_pte_wp(struct mm_area *vma, pte_t pte) { return false; } -static inline bool userfaultfd_huge_pmd_wp(struct vm_area_struct *vma, +static inline bool userfaultfd_huge_pmd_wp(struct mm_area *vma, pmd_t pmd) { return false; } -static inline bool userfaultfd_armed(struct vm_area_struct *vma) +static inline bool userfaultfd_armed(struct mm_area *vma) { return false; } -static inline int dup_userfaultfd(struct vm_area_struct *vma, +static inline int dup_userfaultfd(struct mm_area *vma, struct list_head *l) { return 0; @@ -363,7 +363,7 @@ static inline void dup_userfaultfd_fail(struct list_head *l) { } -static inline void mremap_userfaultfd_prep(struct vm_area_struct *vma, +static inline void mremap_userfaultfd_prep(struct mm_area *vma, struct vm_userfaultfd_ctx *ctx) { } @@ -375,14 +375,14 @@ static inline void mremap_userfaultfd_complete(struct vm_userfaultfd_ctx *ctx, { } -static inline bool userfaultfd_remove(struct vm_area_struct *vma, +static inline bool userfaultfd_remove(struct mm_area *vma, unsigned long start, unsigned long end) { return true; } -static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma, +static inline int userfaultfd_unmap_prep(struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *uf) { @@ -394,29 +394,29 @@ static inline void userfaultfd_unmap_complete(struct mm_struct *mm, { } -static inline bool uffd_disable_fault_around(struct vm_area_struct *vma) +static inline bool uffd_disable_fault_around(struct mm_area *vma) { return false; } -static inline bool userfaultfd_wp_unpopulated(struct vm_area_struct *vma) +static inline bool userfaultfd_wp_unpopulated(struct mm_area *vma) { return false; } -static inline bool userfaultfd_wp_async(struct vm_area_struct *vma) +static inline bool userfaultfd_wp_async(struct mm_area *vma) { return false; } -static inline bool vma_has_uffd_without_event_remap(struct vm_area_struct *vma) +static inline bool vma_has_uffd_without_event_remap(struct mm_area *vma) { return false; } #endif /* CONFIG_USERFAULTFD */ -static inline bool userfaultfd_wp_use_markers(struct vm_area_struct *vma) +static inline bool userfaultfd_wp_use_markers(struct mm_area *vma) { /* Only wr-protect mode uses pte markers */ if (!userfaultfd_wp(vma)) diff --git a/include/linux/vdso_datastore.h b/include/linux/vdso_datastore.h index a91fa24b06e0..8523a57ba6c0 100644 --- a/include/linux/vdso_datastore.h +++ b/include/linux/vdso_datastore.h @@ -5,6 +5,6 @@ #include extern const struct vm_special_mapping vdso_vvar_mapping; -struct vm_area_struct *vdso_install_vvar_mapping(struct mm_struct *mm, unsigned long addr); +struct mm_area *vdso_install_vvar_mapping(struct mm_struct *mm, unsigned long addr); #endif /* _LINUX_VDSO_DATASTORE_H */ diff --git a/include/linux/vfio.h b/include/linux/vfio.h index 707b00772ce1..3830567b796e 100644 --- a/include/linux/vfio.h +++ b/include/linux/vfio.h @@ -129,7 +129,7 @@ struct vfio_device_ops { size_t count, loff_t *size); long (*ioctl)(struct vfio_device *vdev, unsigned int cmd, unsigned long arg); - int (*mmap)(struct vfio_device *vdev, struct vm_area_struct *vma); + int (*mmap)(struct vfio_device *vdev, struct mm_area *vma); void (*request)(struct vfio_device *vdev, unsigned int count); int (*match)(struct vfio_device *vdev, char *buf); void (*dma_unmap)(struct vfio_device *vdev, u64 iova, u64 length); diff --git a/include/linux/vfio_pci_core.h b/include/linux/vfio_pci_core.h index fbb472dd99b3..0dcef04e3e8c 100644 --- a/include/linux/vfio_pci_core.h +++ b/include/linux/vfio_pci_core.h @@ -34,7 +34,7 @@ struct vfio_pci_regops { struct vfio_pci_region *region); int (*mmap)(struct vfio_pci_core_device *vdev, struct vfio_pci_region *region, - struct vm_area_struct *vma); + struct mm_area *vma); int (*add_capability)(struct vfio_pci_core_device *vdev, struct vfio_pci_region *region, struct vfio_info_cap *caps); @@ -119,7 +119,7 @@ ssize_t vfio_pci_core_read(struct vfio_device *core_vdev, char __user *buf, size_t count, loff_t *ppos); ssize_t vfio_pci_core_write(struct vfio_device *core_vdev, const char __user *buf, size_t count, loff_t *ppos); -int vfio_pci_core_mmap(struct vfio_device *core_vdev, struct vm_area_struct *vma); +int vfio_pci_core_mmap(struct vfio_device *core_vdev, struct mm_area *vma); void vfio_pci_core_request(struct vfio_device *core_vdev, unsigned int count); int vfio_pci_core_match(struct vfio_device *core_vdev, char *buf); int vfio_pci_core_enable(struct vfio_pci_core_device *vdev); diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 31e9ffd936e3..3e555eb63f36 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h @@ -14,7 +14,7 @@ #include -struct vm_area_struct; /* vma defining user mapping in mm_types.h */ +struct mm_area; /* vma defining user mapping in mm_types.h */ struct notifier_block; /* in notifier.h */ struct iov_iter; /* in uio.h */ @@ -195,11 +195,11 @@ extern void *vmap(struct page **pages, unsigned int count, void *vmap_pfn(unsigned long *pfns, unsigned int count, pgprot_t prot); extern void vunmap(const void *addr); -extern int remap_vmalloc_range_partial(struct vm_area_struct *vma, +extern int remap_vmalloc_range_partial(struct mm_area *vma, unsigned long uaddr, void *kaddr, unsigned long pgoff, unsigned long size); -extern int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, +extern int remap_vmalloc_range(struct mm_area *vma, void *addr, unsigned long pgoff); int vmap_pages_range(unsigned long addr, unsigned long end, pgprot_t prot, diff --git a/include/media/dvb_vb2.h b/include/media/dvb_vb2.h index 8cb88452cd6c..42956944bba4 100644 --- a/include/media/dvb_vb2.h +++ b/include/media/dvb_vb2.h @@ -270,11 +270,11 @@ int dvb_vb2_dqbuf(struct dvb_vb2_ctx *ctx, struct dmx_buffer *b); * dvb_vb2_mmap() - Wrapper to vb2_mmap() for Digital TV buffer handling. * * @ctx: control struct for VB2 handler - * @vma: pointer to &struct vm_area_struct with the vma passed + * @vma: pointer to &struct mm_area with the vma passed * to the mmap file operation handler in the driver. * * map Digital TV video buffers into application address space. */ -int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct vm_area_struct *vma); +int dvb_vb2_mmap(struct dvb_vb2_ctx *ctx, struct mm_area *vma); #endif /* _DVB_VB2_H */ diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h index 1b6222fab24e..caef335b7731 100644 --- a/include/media/v4l2-dev.h +++ b/include/media/v4l2-dev.h @@ -209,7 +209,7 @@ struct v4l2_file_operations { #endif unsigned long (*get_unmapped_area) (struct file *, unsigned long, unsigned long, unsigned long, unsigned long); - int (*mmap) (struct file *, struct vm_area_struct *); + int (*mmap) (struct file *, struct mm_area *); int (*open) (struct file *); int (*release) (struct file *); }; diff --git a/include/media/v4l2-mem2mem.h b/include/media/v4l2-mem2mem.h index 0af330cf91c3..19ee65878a35 100644 --- a/include/media/v4l2-mem2mem.h +++ b/include/media/v4l2-mem2mem.h @@ -490,7 +490,7 @@ __poll_t v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, * * @file: pointer to struct &file * @m2m_ctx: m2m context assigned to the instance given by struct &v4l2_m2m_ctx - * @vma: pointer to struct &vm_area_struct + * @vma: pointer to struct &mm_area * * Call from driver's mmap() function. Will handle mmap() for both queues * seamlessly for the video buffer, which will receive normal per-queue offsets @@ -500,7 +500,7 @@ __poll_t v4l2_m2m_poll(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, * thus applications) receive modified offsets. */ int v4l2_m2m_mmap(struct file *file, struct v4l2_m2m_ctx *m2m_ctx, - struct vm_area_struct *vma); + struct mm_area *vma); #ifndef CONFIG_MMU unsigned long v4l2_m2m_get_unmapped_area(struct file *file, unsigned long addr, @@ -895,7 +895,7 @@ int v4l2_m2m_ioctl_stateless_try_decoder_cmd(struct file *file, void *fh, struct v4l2_decoder_cmd *dc); int v4l2_m2m_ioctl_stateless_decoder_cmd(struct file *file, void *priv, struct v4l2_decoder_cmd *dc); -int v4l2_m2m_fop_mmap(struct file *file, struct vm_area_struct *vma); +int v4l2_m2m_fop_mmap(struct file *file, struct mm_area *vma); __poll_t v4l2_m2m_fop_poll(struct file *file, poll_table *wait); #endif /* _MEDIA_V4L2_MEM2MEM_H */ diff --git a/include/media/videobuf2-core.h b/include/media/videobuf2-core.h index 9b02aeba4108..dbfb8876fbf9 100644 --- a/include/media/videobuf2-core.h +++ b/include/media/videobuf2-core.h @@ -146,7 +146,7 @@ struct vb2_mem_ops { unsigned int (*num_users)(void *buf_priv); - int (*mmap)(void *buf_priv, struct vm_area_struct *vma); + int (*mmap)(void *buf_priv, struct mm_area *vma); }; /** @@ -1033,7 +1033,7 @@ void vb2_queue_error(struct vb2_queue *q); /** * vb2_mmap() - map video buffers into application address space. * @q: pointer to &struct vb2_queue with videobuf2 queue. - * @vma: pointer to &struct vm_area_struct with the vma passed + * @vma: pointer to &struct mm_area with the vma passed * to the mmap file operation handler in the driver. * * Should be called from mmap file operation handler of a driver. @@ -1052,7 +1052,7 @@ void vb2_queue_error(struct vb2_queue *q); * The return values from this function are intended to be directly returned * from the mmap handler in driver. */ -int vb2_mmap(struct vb2_queue *q, struct vm_area_struct *vma); +int vb2_mmap(struct vb2_queue *q, struct mm_area *vma); #ifndef CONFIG_MMU /** diff --git a/include/media/videobuf2-v4l2.h b/include/media/videobuf2-v4l2.h index 77ce8238ab30..cd941372aab9 100644 --- a/include/media/videobuf2-v4l2.h +++ b/include/media/videobuf2-v4l2.h @@ -339,7 +339,7 @@ int vb2_ioctl_remove_bufs(struct file *file, void *priv, /* struct v4l2_file_operations helpers */ -int vb2_fop_mmap(struct file *file, struct vm_area_struct *vma); +int vb2_fop_mmap(struct file *file, struct mm_area *vma); int vb2_fop_release(struct file *file); int _vb2_fop_release(struct file *file, struct mutex *lock); ssize_t vb2_fop_write(struct file *file, const char __user *buf, diff --git a/include/net/sock.h b/include/net/sock.h index 8daf1b3b12c6..d75880bd2052 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1849,7 +1849,7 @@ int sock_no_sendmsg(struct socket *, struct msghdr *, size_t); int sock_no_sendmsg_locked(struct sock *sk, struct msghdr *msg, size_t len); int sock_no_recvmsg(struct socket *, struct msghdr *, size_t, int); int sock_no_mmap(struct file *file, struct socket *sock, - struct vm_area_struct *vma); + struct mm_area *vma); /* * Functions to fill in entries in struct proto_ops when a protocol diff --git a/include/net/tcp.h b/include/net/tcp.h index df04dc09c519..556704058c39 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -469,7 +469,7 @@ void tcp_recv_timestamp(struct msghdr *msg, const struct sock *sk, void tcp_data_ready(struct sock *sk); #ifdef CONFIG_MMU int tcp_mmap(struct file *file, struct socket *sock, - struct vm_area_struct *vma); + struct mm_area *vma); #endif void tcp_parse_options(const struct net *net, const struct sk_buff *skb, struct tcp_options_received *opt_rx, diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index d42eae69d9a8..8055f6f88816 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -2449,7 +2449,7 @@ struct ib_device_ops { int (*alloc_ucontext)(struct ib_ucontext *context, struct ib_udata *udata); void (*dealloc_ucontext)(struct ib_ucontext *context); - int (*mmap)(struct ib_ucontext *context, struct vm_area_struct *vma); + int (*mmap)(struct ib_ucontext *context, struct mm_area *vma); /** * This will be called once refcount of an entry in mmap_xa reaches * zero. The type of the memory that was mapped may differ between @@ -2976,7 +2976,7 @@ void ib_set_client_data(struct ib_device *device, struct ib_client *client, void ib_set_device_ops(struct ib_device *device, const struct ib_device_ops *ops); -int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct vm_area_struct *vma, +int rdma_user_mmap_io(struct ib_ucontext *ucontext, struct mm_area *vma, unsigned long pfn, unsigned long size, pgprot_t prot, struct rdma_user_mmap_entry *entry); int rdma_user_mmap_entry_insert(struct ib_ucontext *ucontext, @@ -3009,7 +3009,7 @@ rdma_user_mmap_entry_get_pgoff(struct ib_ucontext *ucontext, unsigned long pgoff); struct rdma_user_mmap_entry * rdma_user_mmap_entry_get(struct ib_ucontext *ucontext, - struct vm_area_struct *vma); + struct mm_area *vma); void rdma_user_mmap_entry_put(struct rdma_user_mmap_entry *entry); void rdma_user_mmap_entry_remove(struct rdma_user_mmap_entry *entry); diff --git a/include/rdma/rdma_vt.h b/include/rdma/rdma_vt.h index c429d6ddb129..7baff31ec232 100644 --- a/include/rdma/rdma_vt.h +++ b/include/rdma/rdma_vt.h @@ -167,7 +167,7 @@ struct rvt_ah { /* * This structure is used by rvt_mmap() to validate an offset - * when an mmap() request is made. The vm_area_struct then uses + * when an mmap() request is made. The mm_area then uses * this as its vm_private_data. */ struct rvt_mmap_info { diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h index b55c9eeb2b54..cbfb46ad05de 100644 --- a/include/sound/compress_driver.h +++ b/include/sound/compress_driver.h @@ -165,7 +165,7 @@ struct snd_compr_ops { int (*copy)(struct snd_compr_stream *stream, char __user *buf, size_t count); int (*mmap)(struct snd_compr_stream *stream, - struct vm_area_struct *vma); + struct mm_area *vma); int (*ack)(struct snd_compr_stream *stream, size_t bytes); int (*get_caps) (struct snd_compr_stream *stream, struct snd_compr_caps *caps); diff --git a/include/sound/hwdep.h b/include/sound/hwdep.h index b0da633184cd..1ba044d50614 100644 --- a/include/sound/hwdep.h +++ b/include/sound/hwdep.h @@ -29,7 +29,7 @@ struct snd_hwdep_ops { int (*ioctl_compat)(struct snd_hwdep *hw, struct file *file, unsigned int cmd, unsigned long arg); int (*mmap)(struct snd_hwdep *hw, struct file *file, - struct vm_area_struct *vma); + struct mm_area *vma); int (*dsp_status)(struct snd_hwdep *hw, struct snd_hwdep_dsp_status *status); int (*dsp_load)(struct snd_hwdep *hw, diff --git a/include/sound/info.h b/include/sound/info.h index adbc506860d6..369b6ba88869 100644 --- a/include/sound/info.h +++ b/include/sound/info.h @@ -54,7 +54,7 @@ struct snd_info_entry_ops { struct file *file, unsigned int cmd, unsigned long arg); int (*mmap)(struct snd_info_entry *entry, void *file_private_data, struct inode *inode, struct file *file, - struct vm_area_struct *vma); + struct mm_area *vma); }; struct snd_info_entry { diff --git a/include/sound/memalloc.h b/include/sound/memalloc.h index 9dd475cf4e8c..38a2885a39e3 100644 --- a/include/sound/memalloc.h +++ b/include/sound/memalloc.h @@ -13,7 +13,7 @@ #include struct device; -struct vm_area_struct; +struct mm_area; struct sg_table; /* @@ -83,7 +83,7 @@ int snd_dma_alloc_pages_fallback(int type, struct device *dev, size_t size, struct snd_dma_buffer *dmab); void snd_dma_free_pages(struct snd_dma_buffer *dmab); int snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area); + struct mm_area *area); enum snd_dma_sync_mode { SNDRV_DMA_SYNC_CPU, SNDRV_DMA_SYNC_DEVICE }; #ifdef CONFIG_HAS_DMA diff --git a/include/sound/pcm.h b/include/sound/pcm.h index 8becb4504887..10129d8837e3 100644 --- a/include/sound/pcm.h +++ b/include/sound/pcm.h @@ -74,7 +74,7 @@ struct snd_pcm_ops { unsigned long pos, struct iov_iter *iter, unsigned long bytes); struct page *(*page)(struct snd_pcm_substream *substream, unsigned long offset); - int (*mmap)(struct snd_pcm_substream *substream, struct vm_area_struct *vma); + int (*mmap)(struct snd_pcm_substream *substream, struct mm_area *vma); int (*ack)(struct snd_pcm_substream *substream); }; @@ -605,7 +605,7 @@ void snd_pcm_release_substream(struct snd_pcm_substream *substream); int snd_pcm_attach_substream(struct snd_pcm *pcm, int stream, struct file *file, struct snd_pcm_substream **rsubstream); void snd_pcm_detach_substream(struct snd_pcm_substream *substream); -int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, struct vm_area_struct *area); +int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, struct mm_area *area); #ifdef CONFIG_SND_DEBUG @@ -1394,11 +1394,11 @@ snd_pcm_sgbuf_get_chunk_size(struct snd_pcm_substream *substream, } int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream, - struct vm_area_struct *area); + struct mm_area *area); /* mmap for io-memory area */ #if defined(CONFIG_X86) || defined(CONFIG_PPC) || defined(CONFIG_ALPHA) #define SNDRV_PCM_INFO_MMAP_IOMEM SNDRV_PCM_INFO_MMAP -int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct vm_area_struct *area); +int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, struct mm_area *area); #else #define SNDRV_PCM_INFO_MMAP_IOMEM 0 #define snd_pcm_lib_mmap_iomem NULL diff --git a/include/sound/soc-component.h b/include/sound/soc-component.h index 61534ac0edd1..4c37806639b1 100644 --- a/include/sound/soc-component.h +++ b/include/sound/soc-component.h @@ -53,7 +53,7 @@ struct snd_compress_ops { size_t count); int (*mmap)(struct snd_soc_component *component, struct snd_compr_stream *stream, - struct vm_area_struct *vma); + struct mm_area *vma); int (*ack)(struct snd_soc_component *component, struct snd_compr_stream *stream, size_t bytes); int (*get_caps)(struct snd_soc_component *component, @@ -146,7 +146,7 @@ struct snd_soc_component_driver { unsigned long offset); int (*mmap)(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma); + struct mm_area *vma); int (*ack)(struct snd_soc_component *component, struct snd_pcm_substream *substream); snd_pcm_sframes_t (*delay)(struct snd_soc_component *component, @@ -517,7 +517,7 @@ int snd_soc_pcm_component_copy(struct snd_pcm_substream *substream, struct page *snd_soc_pcm_component_page(struct snd_pcm_substream *substream, unsigned long offset); int snd_soc_pcm_component_mmap(struct snd_pcm_substream *substream, - struct vm_area_struct *vma); + struct mm_area *vma); int snd_soc_pcm_component_new(struct snd_soc_pcm_runtime *rtd); void snd_soc_pcm_component_free(struct snd_soc_pcm_runtime *rtd); int snd_soc_pcm_component_prepare(struct snd_pcm_substream *substream); diff --git a/include/trace/events/mmap.h b/include/trace/events/mmap.h index f8d61485de16..516a46ff75a5 100644 --- a/include/trace/events/mmap.h +++ b/include/trace/events/mmap.h @@ -69,13 +69,13 @@ TRACE_EVENT(vma_mas_szero, ); TRACE_EVENT(vma_store, - TP_PROTO(struct maple_tree *mt, struct vm_area_struct *vma), + TP_PROTO(struct maple_tree *mt, struct mm_area *vma), TP_ARGS(mt, vma), TP_STRUCT__entry( __field(struct maple_tree *, mt) - __field(struct vm_area_struct *, vma) + __field(struct mm_area *, vma) __field(unsigned long, vm_start) __field(unsigned long, vm_end) ), diff --git a/include/trace/events/sched.h b/include/trace/events/sched.h index 8994e97d86c1..79ee1636a6ec 100644 --- a/include/trace/events/sched.h +++ b/include/trace/events/sched.h @@ -720,7 +720,7 @@ NUMAB_SKIP_REASON TRACE_EVENT(sched_skip_vma_numa, - TP_PROTO(struct mm_struct *mm, struct vm_area_struct *vma, + TP_PROTO(struct mm_struct *mm, struct mm_area *vma, enum numa_vmaskip_reason reason), TP_ARGS(mm, vma, reason), diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h index 28705ae67784..7894f9c2ae9b 100644 --- a/include/uapi/linux/bpf.h +++ b/include/uapi/linux/bpf.h @@ -5368,7 +5368,7 @@ union bpf_attr { * * The expected callback signature is * - * long (\*callback_fn)(struct task_struct \*task, struct vm_area_struct \*vma, void \*callback_ctx); + * long (\*callback_fn)(struct task_struct \*task, struct mm_area \*vma, void \*callback_ctx); * * Return * 0 on success. diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h index 47f11bec5e90..9c4c2e081be3 100644 --- a/include/xen/xen-ops.h +++ b/include/xen/xen-ops.h @@ -44,11 +44,11 @@ int xen_setup_shutdown_event(void); extern unsigned long *xen_contiguous_bitmap; #if defined(CONFIG_XEN_PV) -int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr, +int xen_remap_pfn(struct mm_area *vma, unsigned long addr, xen_pfn_t *pfn, int nr, int *err_ptr, pgprot_t prot, unsigned int domid, bool no_translate); #else -static inline int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr, +static inline int xen_remap_pfn(struct mm_area *vma, unsigned long addr, xen_pfn_t *pfn, int nr, int *err_ptr, pgprot_t prot, unsigned int domid, bool no_translate) @@ -58,23 +58,23 @@ static inline int xen_remap_pfn(struct vm_area_struct *vma, unsigned long addr, } #endif -struct vm_area_struct; +struct mm_area; #ifdef CONFIG_XEN_AUTO_XLATE -int xen_xlate_remap_gfn_array(struct vm_area_struct *vma, +int xen_xlate_remap_gfn_array(struct mm_area *vma, unsigned long addr, xen_pfn_t *gfn, int nr, int *err_ptr, pgprot_t prot, unsigned int domid, struct page **pages); -int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma, +int xen_xlate_unmap_gfn_range(struct mm_area *vma, int nr, struct page **pages); #else /* * These two functions are called from arch/x86/xen/mmu.c and so stubs * are needed for a configuration not specifying CONFIG_XEN_AUTO_XLATE. */ -static inline int xen_xlate_remap_gfn_array(struct vm_area_struct *vma, +static inline int xen_xlate_remap_gfn_array(struct mm_area *vma, unsigned long addr, xen_pfn_t *gfn, int nr, int *err_ptr, pgprot_t prot, @@ -84,14 +84,14 @@ static inline int xen_xlate_remap_gfn_array(struct vm_area_struct *vma, return -EOPNOTSUPP; } -static inline int xen_xlate_unmap_gfn_range(struct vm_area_struct *vma, +static inline int xen_xlate_unmap_gfn_range(struct mm_area *vma, int nr, struct page **pages) { return -EOPNOTSUPP; } #endif -int xen_remap_vma_range(struct vm_area_struct *vma, unsigned long addr, +int xen_remap_vma_range(struct mm_area *vma, unsigned long addr, unsigned long len); /* @@ -111,7 +111,7 @@ int xen_remap_vma_range(struct vm_area_struct *vma, unsigned long addr, * Returns the number of successfully mapped frames, or a -ve error * code. */ -static inline int xen_remap_domain_gfn_array(struct vm_area_struct *vma, +static inline int xen_remap_domain_gfn_array(struct mm_area *vma, unsigned long addr, xen_pfn_t *gfn, int nr, int *err_ptr, pgprot_t prot, @@ -147,7 +147,7 @@ static inline int xen_remap_domain_gfn_array(struct vm_area_struct *vma, * Returns the number of successfully mapped frames, or a -ve error * code. */ -static inline int xen_remap_domain_mfn_array(struct vm_area_struct *vma, +static inline int xen_remap_domain_mfn_array(struct mm_area *vma, unsigned long addr, xen_pfn_t *mfn, int nr, int *err_ptr, pgprot_t prot, unsigned int domid) @@ -171,7 +171,7 @@ static inline int xen_remap_domain_mfn_array(struct vm_area_struct *vma, * Returns the number of successfully mapped frames, or a -ve error * code. */ -static inline int xen_remap_domain_gfn_range(struct vm_area_struct *vma, +static inline int xen_remap_domain_gfn_range(struct mm_area *vma, unsigned long addr, xen_pfn_t gfn, int nr, pgprot_t prot, unsigned int domid, @@ -183,7 +183,7 @@ static inline int xen_remap_domain_gfn_range(struct vm_area_struct *vma, return xen_remap_pfn(vma, addr, &gfn, nr, NULL, prot, domid, false); } -int xen_unmap_domain_gfn_range(struct vm_area_struct *vma, +int xen_unmap_domain_gfn_range(struct mm_area *vma, int numpgs, struct page **pages); int xen_xlate_map_ballooned_pages(xen_pfn_t **pfns, void **vaddr, diff --git a/io_uring/memmap.c b/io_uring/memmap.c index 76fcc79656b0..d606163f0524 100644 --- a/io_uring/memmap.c +++ b/io_uring/memmap.c @@ -306,7 +306,7 @@ static void *io_uring_validate_mmap_request(struct file *file, loff_t pgoff, static int io_region_mmap(struct io_ring_ctx *ctx, struct io_mapped_region *mr, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned max_pages) { unsigned long nr_pages = min(mr->nr_pages, max_pages); @@ -315,7 +315,7 @@ static int io_region_mmap(struct io_ring_ctx *ctx, return vm_insert_pages(vma, vma->vm_start, mr->pages, &nr_pages); } -__cold int io_uring_mmap(struct file *file, struct vm_area_struct *vma) +__cold int io_uring_mmap(struct file *file, struct mm_area *vma) { struct io_ring_ctx *ctx = file->private_data; size_t sz = vma->vm_end - vma->vm_start; @@ -389,7 +389,7 @@ unsigned long io_uring_get_unmapped_area(struct file *filp, unsigned long addr, #else /* !CONFIG_MMU */ -int io_uring_mmap(struct file *file, struct vm_area_struct *vma) +int io_uring_mmap(struct file *file, struct mm_area *vma) { return is_nommu_shared_mapping(vma->vm_flags) ? 0 : -EINVAL; } diff --git a/io_uring/memmap.h b/io_uring/memmap.h index dad0aa5b1b45..67e0335cfe87 100644 --- a/io_uring/memmap.h +++ b/io_uring/memmap.h @@ -12,7 +12,7 @@ unsigned int io_uring_nommu_mmap_capabilities(struct file *file); unsigned long io_uring_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags); -int io_uring_mmap(struct file *file, struct vm_area_struct *vma); +int io_uring_mmap(struct file *file, struct mm_area *vma); void io_free_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr); int io_create_region(struct io_ring_ctx *ctx, struct io_mapped_region *mr, diff --git a/ipc/shm.c b/ipc/shm.c index 99564c870084..b1f32d82e02b 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -3,7 +3,7 @@ * linux/ipc/shm.c * Copyright (C) 1992, 1993 Krishna Balasubramanian * Many improvements/fixes by Bruno Haible. - * Replaced `struct shm_desc' by `struct vm_area_struct', July 1994. + * Replaced `struct shm_desc' by `struct mm_area', July 1994. * Fixed the shm swap deallocation (shm_unuse()), August 1998 Andrea Arcangeli. * * /proc/sysvipc/shm support (c) 1999 Dragos Acostachioaie @@ -99,8 +99,8 @@ static const struct vm_operations_struct shm_vm_ops; ipc_unlock(&(shp)->shm_perm) static int newseg(struct ipc_namespace *, struct ipc_params *); -static void shm_open(struct vm_area_struct *vma); -static void shm_close(struct vm_area_struct *vma); +static void shm_open(struct mm_area *vma); +static void shm_close(struct mm_area *vma); static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp); #ifdef CONFIG_PROC_FS static int sysvipc_shm_proc_show(struct seq_file *s, void *it); @@ -299,7 +299,7 @@ static int __shm_open(struct shm_file_data *sfd) } /* This is called by fork, once for every shm attach. */ -static void shm_open(struct vm_area_struct *vma) +static void shm_open(struct mm_area *vma) { struct file *file = vma->vm_file; struct shm_file_data *sfd = shm_file_data(file); @@ -393,7 +393,7 @@ static void __shm_close(struct shm_file_data *sfd) up_write(&shm_ids(ns).rwsem); } -static void shm_close(struct vm_area_struct *vma) +static void shm_close(struct mm_area *vma) { struct file *file = vma->vm_file; struct shm_file_data *sfd = shm_file_data(file); @@ -540,7 +540,7 @@ static vm_fault_t shm_fault(struct vm_fault *vmf) return sfd->vm_ops->fault(vmf); } -static int shm_may_split(struct vm_area_struct *vma, unsigned long addr) +static int shm_may_split(struct mm_area *vma, unsigned long addr) { struct file *file = vma->vm_file; struct shm_file_data *sfd = shm_file_data(file); @@ -551,7 +551,7 @@ static int shm_may_split(struct vm_area_struct *vma, unsigned long addr) return 0; } -static unsigned long shm_pagesize(struct vm_area_struct *vma) +static unsigned long shm_pagesize(struct mm_area *vma) { struct file *file = vma->vm_file; struct shm_file_data *sfd = shm_file_data(file); @@ -563,7 +563,7 @@ static unsigned long shm_pagesize(struct vm_area_struct *vma) } #ifdef CONFIG_NUMA -static int shm_set_policy(struct vm_area_struct *vma, struct mempolicy *mpol) +static int shm_set_policy(struct mm_area *vma, struct mempolicy *mpol) { struct shm_file_data *sfd = shm_file_data(vma->vm_file); int err = 0; @@ -573,7 +573,7 @@ static int shm_set_policy(struct vm_area_struct *vma, struct mempolicy *mpol) return err; } -static struct mempolicy *shm_get_policy(struct vm_area_struct *vma, +static struct mempolicy *shm_get_policy(struct mm_area *vma, unsigned long addr, pgoff_t *ilx) { struct shm_file_data *sfd = shm_file_data(vma->vm_file); @@ -585,7 +585,7 @@ static struct mempolicy *shm_get_policy(struct vm_area_struct *vma, } #endif -static int shm_mmap(struct file *file, struct vm_area_struct *vma) +static int shm_mmap(struct file *file, struct mm_area *vma) { struct shm_file_data *sfd = shm_file_data(file); int ret; @@ -1723,7 +1723,7 @@ COMPAT_SYSCALL_DEFINE3(shmat, int, shmid, compat_uptr_t, shmaddr, int, shmflg) long ksys_shmdt(char __user *shmaddr) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr = (unsigned long)shmaddr; int retval = -EINVAL; #ifdef CONFIG_MMU diff --git a/kernel/acct.c b/kernel/acct.c index 6520baa13669..8f1124fddaa9 100644 --- a/kernel/acct.c +++ b/kernel/acct.c @@ -592,7 +592,7 @@ void acct_collect(long exitcode, int group_dead) if (group_dead && current->mm) { struct mm_struct *mm = current->mm; VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(mm); for_each_vma(vmi, vma) diff --git a/kernel/bpf/arena.c b/kernel/bpf/arena.c index 0d56cea71602..bfefa32adb89 100644 --- a/kernel/bpf/arena.c +++ b/kernel/bpf/arena.c @@ -220,12 +220,12 @@ static u64 arena_map_mem_usage(const struct bpf_map *map) } struct vma_list { - struct vm_area_struct *vma; + struct mm_area *vma; struct list_head head; refcount_t mmap_count; }; -static int remember_vma(struct bpf_arena *arena, struct vm_area_struct *vma) +static int remember_vma(struct bpf_arena *arena, struct mm_area *vma) { struct vma_list *vml; @@ -239,14 +239,14 @@ static int remember_vma(struct bpf_arena *arena, struct vm_area_struct *vma) return 0; } -static void arena_vm_open(struct vm_area_struct *vma) +static void arena_vm_open(struct mm_area *vma) { struct vma_list *vml = vma->vm_private_data; refcount_inc(&vml->mmap_count); } -static void arena_vm_close(struct vm_area_struct *vma) +static void arena_vm_close(struct mm_area *vma) { struct bpf_map *map = vma->vm_file->private_data; struct bpf_arena *arena = container_of(map, struct bpf_arena, map); @@ -345,7 +345,7 @@ static unsigned long arena_get_unmapped_area(struct file *filp, unsigned long ad return round_up(ret, SZ_4G); } -static int arena_map_mmap(struct bpf_map *map, struct vm_area_struct *vma) +static int arena_map_mmap(struct bpf_map *map, struct mm_area *vma) { struct bpf_arena *arena = container_of(map, struct bpf_arena, map); diff --git a/kernel/bpf/arraymap.c b/kernel/bpf/arraymap.c index eb28c0f219ee..79dbdb433b55 100644 --- a/kernel/bpf/arraymap.c +++ b/kernel/bpf/arraymap.c @@ -557,7 +557,7 @@ static int array_map_check_btf(const struct bpf_map *map, return 0; } -static int array_map_mmap(struct bpf_map *map, struct vm_area_struct *vma) +static int array_map_mmap(struct bpf_map *map, struct mm_area *vma) { struct bpf_array *array = container_of(map, struct bpf_array, map); pgoff_t pgoff = PAGE_ALIGN(sizeof(*array)) >> PAGE_SHIFT; diff --git a/kernel/bpf/ringbuf.c b/kernel/bpf/ringbuf.c index 1499d8caa9a3..c59325124422 100644 --- a/kernel/bpf/ringbuf.c +++ b/kernel/bpf/ringbuf.c @@ -258,7 +258,7 @@ static int ringbuf_map_get_next_key(struct bpf_map *map, void *key, return -ENOTSUPP; } -static int ringbuf_map_mmap_kern(struct bpf_map *map, struct vm_area_struct *vma) +static int ringbuf_map_mmap_kern(struct bpf_map *map, struct mm_area *vma) { struct bpf_ringbuf_map *rb_map; @@ -274,7 +274,7 @@ static int ringbuf_map_mmap_kern(struct bpf_map *map, struct vm_area_struct *vma vma->vm_pgoff + RINGBUF_PGOFF); } -static int ringbuf_map_mmap_user(struct bpf_map *map, struct vm_area_struct *vma) +static int ringbuf_map_mmap_user(struct bpf_map *map, struct mm_area *vma) { struct bpf_ringbuf_map *rb_map; diff --git a/kernel/bpf/stackmap.c b/kernel/bpf/stackmap.c index 3615c06b7dfa..9870b4a64f23 100644 --- a/kernel/bpf/stackmap.c +++ b/kernel/bpf/stackmap.c @@ -124,7 +124,7 @@ static struct bpf_map *stack_map_alloc(union bpf_attr *attr) return ERR_PTR(err); } -static int fetch_build_id(struct vm_area_struct *vma, unsigned char *build_id, bool may_fault) +static int fetch_build_id(struct mm_area *vma, unsigned char *build_id, bool may_fault) { return may_fault ? build_id_parse(vma, build_id, NULL) : build_id_parse_nofault(vma, build_id, NULL); @@ -146,7 +146,7 @@ static void stack_map_get_build_id_offset(struct bpf_stack_build_id *id_offs, int i; struct mmap_unlock_irq_work *work = NULL; bool irq_work_busy = bpf_mmap_unlock_get_irq_work(&work); - struct vm_area_struct *vma, *prev_vma = NULL; + struct mm_area *vma, *prev_vma = NULL; const char *prev_build_id; /* If the irq_work is in use, fall back to report ips. Same diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c index 9794446bc8c6..e4bd08eba388 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -1030,7 +1030,7 @@ static ssize_t bpf_dummy_write(struct file *filp, const char __user *buf, } /* called for any extra memory-mapped regions (except initial) */ -static void bpf_map_mmap_open(struct vm_area_struct *vma) +static void bpf_map_mmap_open(struct mm_area *vma) { struct bpf_map *map = vma->vm_file->private_data; @@ -1039,7 +1039,7 @@ static void bpf_map_mmap_open(struct vm_area_struct *vma) } /* called for all unmapped memory region (including initial) */ -static void bpf_map_mmap_close(struct vm_area_struct *vma) +static void bpf_map_mmap_close(struct mm_area *vma) { struct bpf_map *map = vma->vm_file->private_data; @@ -1052,7 +1052,7 @@ static const struct vm_operations_struct bpf_map_default_vmops = { .close = bpf_map_mmap_close, }; -static int bpf_map_mmap(struct file *filp, struct vm_area_struct *vma) +static int bpf_map_mmap(struct file *filp, struct mm_area *vma) { struct bpf_map *map = filp->private_data; int err = 0; diff --git a/kernel/bpf/task_iter.c b/kernel/bpf/task_iter.c index 98d9b4c0daff..3f58b35ce94e 100644 --- a/kernel/bpf/task_iter.c +++ b/kernel/bpf/task_iter.c @@ -410,7 +410,7 @@ struct bpf_iter_seq_task_vma_info { struct bpf_iter_seq_task_common common; struct task_struct *task; struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; u32 tid; unsigned long prev_vm_start; unsigned long prev_vm_end; @@ -422,11 +422,11 @@ enum bpf_task_vma_iter_find_op { task_vma_iter_find_vma, /* use find_vma() to find next vma */ }; -static struct vm_area_struct * +static struct mm_area * task_vma_seq_get_next(struct bpf_iter_seq_task_vma_info *info) { enum bpf_task_vma_iter_find_op op; - struct vm_area_struct *curr_vma; + struct mm_area *curr_vma; struct task_struct *curr_task; struct mm_struct *curr_mm; u32 saved_tid = info->tid; @@ -577,7 +577,7 @@ task_vma_seq_get_next(struct bpf_iter_seq_task_vma_info *info) static void *task_vma_seq_start(struct seq_file *seq, loff_t *pos) { struct bpf_iter_seq_task_vma_info *info = seq->private; - struct vm_area_struct *vma; + struct mm_area *vma; vma = task_vma_seq_get_next(info); if (vma && *pos == 0) @@ -597,11 +597,11 @@ static void *task_vma_seq_next(struct seq_file *seq, void *v, loff_t *pos) struct bpf_iter__task_vma { __bpf_md_ptr(struct bpf_iter_meta *, meta); __bpf_md_ptr(struct task_struct *, task); - __bpf_md_ptr(struct vm_area_struct *, vma); + __bpf_md_ptr(struct mm_area *, vma); }; DEFINE_BPF_ITER_FUNC(task_vma, struct bpf_iter_meta *meta, - struct task_struct *task, struct vm_area_struct *vma) + struct task_struct *task, struct mm_area *vma) static int __task_vma_seq_show(struct seq_file *seq, bool in_stop) { @@ -752,7 +752,7 @@ BPF_CALL_5(bpf_find_vma, struct task_struct *, task, u64, start, bpf_callback_t, callback_fn, void *, callback_ctx, u64, flags) { struct mmap_unlock_irq_work *work = NULL; - struct vm_area_struct *vma; + struct mm_area *vma; bool irq_work_busy = false; struct mm_struct *mm; int ret = -ENOENT; @@ -859,7 +859,7 @@ __bpf_kfunc int bpf_iter_task_vma_new(struct bpf_iter_task_vma *it, return err; } -__bpf_kfunc struct vm_area_struct *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) +__bpf_kfunc struct mm_area *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) { struct bpf_iter_task_vma_kern *kit = (void *)it; diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c index 54c6953a8b84..efbe5060d0e9 100644 --- a/kernel/bpf/verifier.c +++ b/kernel/bpf/verifier.c @@ -10720,7 +10720,7 @@ static int set_find_vma_callback_state(struct bpf_verifier_env *env, /* bpf_find_vma(struct task_struct *task, u64 addr, * void *callback_fn, void *callback_ctx, u64 flags) * (callback_fn)(struct task_struct *task, - * struct vm_area_struct *vma, void *callback_ctx); + * struct mm_area *vma, void *callback_ctx); */ callee->regs[BPF_REG_1] = caller->regs[BPF_REG_1]; diff --git a/kernel/dma/coherent.c b/kernel/dma/coherent.c index 3b2bdca9f1d4..b92e5ddae43f 100644 --- a/kernel/dma/coherent.c +++ b/kernel/dma/coherent.c @@ -232,7 +232,7 @@ int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr) } static int __dma_mmap_from_coherent(struct dma_coherent_mem *mem, - struct vm_area_struct *vma, void *vaddr, size_t size, int *ret) + struct mm_area *vma, void *vaddr, size_t size, int *ret) { if (mem && vaddr >= mem->virt_base && vaddr + size <= (mem->virt_base + ((dma_addr_t)mem->size << PAGE_SHIFT))) { @@ -268,7 +268,7 @@ static int __dma_mmap_from_coherent(struct dma_coherent_mem *mem, * should return @ret, or 0 if they should proceed with mapping memory from * generic areas. */ -int dma_mmap_from_dev_coherent(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_from_dev_coherent(struct device *dev, struct mm_area *vma, void *vaddr, size_t size, int *ret) { struct dma_coherent_mem *mem = dev_get_coherent_memory(dev); @@ -298,7 +298,7 @@ int dma_release_from_global_coherent(int order, void *vaddr) vaddr); } -int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *vaddr, +int dma_mmap_from_global_coherent(struct mm_area *vma, void *vaddr, size_t size, int *ret) { if (!dma_coherent_default_memory) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index b8fe0b3d0ffb..0dba425ab6bf 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -537,7 +537,7 @@ bool dma_direct_can_mmap(struct device *dev) IS_ENABLED(CONFIG_DMA_NONCOHERENT_MMAP); } -int dma_direct_mmap(struct device *dev, struct vm_area_struct *vma, +int dma_direct_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { diff --git a/kernel/dma/direct.h b/kernel/dma/direct.h index d2c0b7e632fc..4ce4be1cad72 100644 --- a/kernel/dma/direct.h +++ b/kernel/dma/direct.h @@ -14,7 +14,7 @@ int dma_direct_get_sgtable(struct device *dev, struct sg_table *sgt, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); bool dma_direct_can_mmap(struct device *dev); -int dma_direct_mmap(struct device *dev, struct vm_area_struct *vma, +int dma_direct_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs); bool dma_direct_need_sync(struct device *dev, dma_addr_t dma_addr); diff --git a/kernel/dma/dummy.c b/kernel/dma/dummy.c index 92de80e5b057..eb7c1752b54e 100644 --- a/kernel/dma/dummy.c +++ b/kernel/dma/dummy.c @@ -4,7 +4,7 @@ */ #include -static int dma_dummy_mmap(struct device *dev, struct vm_area_struct *vma, +static int dma_dummy_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c index cda127027e48..37cfbcb1544c 100644 --- a/kernel/dma/mapping.c +++ b/kernel/dma/mapping.c @@ -536,7 +536,7 @@ EXPORT_SYMBOL_GPL(dma_can_mmap); /** * dma_mmap_attrs - map a coherent DMA allocation into user space * @dev: valid struct device pointer, or NULL for ISA and EISA-like devices - * @vma: vm_area_struct describing requested user mapping + * @vma: mm_area describing requested user mapping * @cpu_addr: kernel CPU-view address returned from dma_alloc_attrs * @dma_addr: device-view address returned from dma_alloc_attrs * @size: size of memory originally requested in dma_alloc_attrs @@ -546,7 +546,7 @@ EXPORT_SYMBOL_GPL(dma_can_mmap); * space. The coherent DMA buffer must not be freed by the driver until the * user space mapping has been released. */ -int dma_mmap_attrs(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_attrs(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { @@ -725,7 +725,7 @@ void dma_free_pages(struct device *dev, size_t size, struct page *page, } EXPORT_SYMBOL_GPL(dma_free_pages); -int dma_mmap_pages(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_pages(struct device *dev, struct mm_area *vma, size_t size, struct page *page) { unsigned long count = PAGE_ALIGN(size) >> PAGE_SHIFT; @@ -828,7 +828,7 @@ void dma_vunmap_noncontiguous(struct device *dev, void *vaddr) } EXPORT_SYMBOL_GPL(dma_vunmap_noncontiguous); -int dma_mmap_noncontiguous(struct device *dev, struct vm_area_struct *vma, +int dma_mmap_noncontiguous(struct device *dev, struct mm_area *vma, size_t size, struct sg_table *sgt) { if (use_dma_iommu(dev)) diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c index 9afd569eadb9..9f7c560c3349 100644 --- a/kernel/dma/ops_helpers.c +++ b/kernel/dma/ops_helpers.c @@ -32,7 +32,7 @@ int dma_common_get_sgtable(struct device *dev, struct sg_table *sgt, /* * Create userspace mapping for the DMA-coherent memory. */ -int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, +int dma_common_mmap(struct device *dev, struct mm_area *vma, void *cpu_addr, dma_addr_t dma_addr, size_t size, unsigned long attrs) { diff --git a/kernel/events/core.c b/kernel/events/core.c index 128db74e9eab..bf6c0c90f88c 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -6638,7 +6638,7 @@ void ring_buffer_put(struct perf_buffer *rb) call_rcu(&rb->rcu_head, rb_free_rcu); } -static void perf_mmap_open(struct vm_area_struct *vma) +static void perf_mmap_open(struct mm_area *vma) { struct perf_event *event = vma->vm_file->private_data; @@ -6662,7 +6662,7 @@ static void perf_pmu_output_stop(struct perf_event *event); * the buffer here, where we still have a VM context. This means we need * to detach all events redirecting to us. */ -static void perf_mmap_close(struct vm_area_struct *vma) +static void perf_mmap_close(struct mm_area *vma) { struct perf_event *event = vma->vm_file->private_data; struct perf_buffer *rb = ring_buffer_get(event); @@ -6784,7 +6784,7 @@ static const struct vm_operations_struct perf_mmap_vmops = { .pfn_mkwrite = perf_mmap_pfn_mkwrite, }; -static int map_range(struct perf_buffer *rb, struct vm_area_struct *vma) +static int map_range(struct perf_buffer *rb, struct mm_area *vma) { unsigned long nr_pages = vma_pages(vma); int err = 0; @@ -6853,7 +6853,7 @@ static int map_range(struct perf_buffer *rb, struct vm_area_struct *vma) return err; } -static int perf_mmap(struct file *file, struct vm_area_struct *vma) +static int perf_mmap(struct file *file, struct mm_area *vma) { struct perf_event *event = file->private_data; unsigned long user_locked, user_lock_limit; @@ -9155,7 +9155,7 @@ static void perf_event_cgroup(struct cgroup *cgrp) */ struct perf_mmap_event { - struct vm_area_struct *vma; + struct mm_area *vma; const char *file_name; int file_size; @@ -9181,7 +9181,7 @@ static int perf_event_mmap_match(struct perf_event *event, void *data) { struct perf_mmap_event *mmap_event = data; - struct vm_area_struct *vma = mmap_event->vma; + struct mm_area *vma = mmap_event->vma; int executable = vma->vm_flags & VM_EXEC; return (!executable && event->attr.mmap_data) || @@ -9257,7 +9257,7 @@ static void perf_event_mmap_output(struct perf_event *event, static void perf_event_mmap_event(struct perf_mmap_event *mmap_event) { - struct vm_area_struct *vma = mmap_event->vma; + struct mm_area *vma = mmap_event->vma; struct file *file = vma->vm_file; int maj = 0, min = 0; u64 ino = 0, gen = 0; @@ -9387,7 +9387,7 @@ static bool perf_addr_filter_match(struct perf_addr_filter *filter, } static bool perf_addr_filter_vma_adjust(struct perf_addr_filter *filter, - struct vm_area_struct *vma, + struct mm_area *vma, struct perf_addr_filter_range *fr) { unsigned long vma_size = vma->vm_end - vma->vm_start; @@ -9411,7 +9411,7 @@ static bool perf_addr_filter_vma_adjust(struct perf_addr_filter *filter, static void __perf_addr_filters_adjust(struct perf_event *event, void *data) { struct perf_addr_filters_head *ifh = perf_event_addr_filters(event); - struct vm_area_struct *vma = data; + struct mm_area *vma = data; struct perf_addr_filter *filter; unsigned int restart = 0, count = 0; unsigned long flags; @@ -9442,7 +9442,7 @@ static void __perf_addr_filters_adjust(struct perf_event *event, void *data) /* * Adjust all task's events' filters to the new vma */ -static void perf_addr_filters_adjust(struct vm_area_struct *vma) +static void perf_addr_filters_adjust(struct mm_area *vma) { struct perf_event_context *ctx; @@ -9460,7 +9460,7 @@ static void perf_addr_filters_adjust(struct vm_area_struct *vma) rcu_read_unlock(); } -void perf_event_mmap(struct vm_area_struct *vma) +void perf_event_mmap(struct mm_area *vma) { struct perf_mmap_event mmap_event; @@ -11255,7 +11255,7 @@ static void perf_addr_filter_apply(struct perf_addr_filter *filter, struct mm_struct *mm, struct perf_addr_filter_range *fr) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); for_each_vma(vmi, vma) { diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 615b4e6d22c7..0fb6581e88fd 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -131,7 +131,7 @@ static void uprobe_warn(struct task_struct *t, const char *msg) * - Return 1 if the specified virtual address is in an * executable vma. */ -static bool valid_vma(struct vm_area_struct *vma, bool is_register) +static bool valid_vma(struct mm_area *vma, bool is_register) { vm_flags_t flags = VM_HUGETLB | VM_MAYEXEC | VM_MAYSHARE; @@ -141,12 +141,12 @@ static bool valid_vma(struct vm_area_struct *vma, bool is_register) return vma->vm_file && (vma->vm_flags & flags) == VM_MAYEXEC; } -static unsigned long offset_to_vaddr(struct vm_area_struct *vma, loff_t offset) +static unsigned long offset_to_vaddr(struct mm_area *vma, loff_t offset) { return vma->vm_start + offset - ((loff_t)vma->vm_pgoff << PAGE_SHIFT); } -static loff_t vaddr_to_offset(struct vm_area_struct *vma, unsigned long vaddr) +static loff_t vaddr_to_offset(struct mm_area *vma, unsigned long vaddr) { return ((loff_t)vma->vm_pgoff << PAGE_SHIFT) + (vaddr - vma->vm_start); } @@ -164,7 +164,7 @@ static loff_t vaddr_to_offset(struct vm_area_struct *vma, unsigned long vaddr) * * Returns 0 on success, negative error code otherwise. */ -static int __replace_page(struct vm_area_struct *vma, unsigned long addr, +static int __replace_page(struct mm_area *vma, unsigned long addr, struct page *old_page, struct page *new_page) { struct folio *old_folio = page_folio(old_page); @@ -360,7 +360,7 @@ static void delayed_uprobe_remove(struct uprobe *uprobe, struct mm_struct *mm) } static bool valid_ref_ctr_vma(struct uprobe *uprobe, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned long vaddr = offset_to_vaddr(vma, uprobe->ref_ctr_offset); @@ -372,11 +372,11 @@ static bool valid_ref_ctr_vma(struct uprobe *uprobe, vma->vm_end > vaddr; } -static struct vm_area_struct * +static struct mm_area * find_ref_ctr_vma(struct uprobe *uprobe, struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *tmp; + struct mm_area *tmp; for_each_vma(vmi, tmp) if (valid_ref_ctr_vma(uprobe, tmp)) @@ -437,7 +437,7 @@ static void update_ref_ctr_warn(struct uprobe *uprobe, static int update_ref_ctr(struct uprobe *uprobe, struct mm_struct *mm, short d) { - struct vm_area_struct *rc_vma; + struct mm_area *rc_vma; unsigned long rc_vaddr; int ret = 0; @@ -486,7 +486,7 @@ int uprobe_write_opcode(struct arch_uprobe *auprobe, struct mm_struct *mm, { struct uprobe *uprobe; struct page *old_page, *new_page; - struct vm_area_struct *vma; + struct mm_area *vma; int ret, is_register, ref_ctr_updated = 0; bool orig_page_huge = false; unsigned int gup_flags = FOLL_FORCE; @@ -1136,7 +1136,7 @@ static bool filter_chain(struct uprobe *uprobe, struct mm_struct *mm) static int install_breakpoint(struct uprobe *uprobe, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long vaddr) + struct mm_area *vma, unsigned long vaddr) { bool first_uprobe; int ret; @@ -1186,7 +1186,7 @@ static struct map_info * build_map_info(struct address_space *mapping, loff_t offset, bool is_register) { unsigned long pgoff = offset >> PAGE_SHIFT; - struct vm_area_struct *vma; + struct mm_area *vma; struct map_info *curr = NULL; struct map_info *prev = NULL; struct map_info *info; @@ -1269,7 +1269,7 @@ register_for_each_vma(struct uprobe *uprobe, struct uprobe_consumer *new) while (info) { struct mm_struct *mm = info->mm; - struct vm_area_struct *vma; + struct mm_area *vma; if (err && is_register) goto free; @@ -1454,7 +1454,7 @@ int uprobe_apply(struct uprobe *uprobe, struct uprobe_consumer *uc, bool add) static int unapply_uprobe(struct uprobe *uprobe, struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; int err = 0; mmap_read_lock(mm); @@ -1508,7 +1508,7 @@ find_node_in_range(struct inode *inode, loff_t min, loff_t max) * For a given range in vma, build a list of probes that need to be inserted. */ static void build_probe_list(struct inode *inode, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *head) { @@ -1544,7 +1544,7 @@ static void build_probe_list(struct inode *inode, } /* @vma contains reference counter, not the probed instruction. */ -static int delayed_ref_ctr_inc(struct vm_area_struct *vma) +static int delayed_ref_ctr_inc(struct mm_area *vma) { struct list_head *pos, *q; struct delayed_uprobe *du; @@ -1578,7 +1578,7 @@ static int delayed_ref_ctr_inc(struct vm_area_struct *vma) * Currently we ignore all errors and always return 0, the callers * can't handle the failure anyway. */ -int uprobe_mmap(struct vm_area_struct *vma) +int uprobe_mmap(struct mm_area *vma) { struct list_head tmp_list; struct uprobe *uprobe, *u; @@ -1620,7 +1620,7 @@ int uprobe_mmap(struct vm_area_struct *vma) } static bool -vma_has_uprobes(struct vm_area_struct *vma, unsigned long start, unsigned long end) +vma_has_uprobes(struct mm_area *vma, unsigned long start, unsigned long end) { loff_t min, max; struct inode *inode; @@ -1641,7 +1641,7 @@ vma_has_uprobes(struct vm_area_struct *vma, unsigned long start, unsigned long e /* * Called in context of a munmap of a vma. */ -void uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned long end) +void uprobe_munmap(struct mm_area *vma, unsigned long start, unsigned long end) { if (no_uprobe_events() || !valid_vma(vma, false)) return; @@ -1658,7 +1658,7 @@ void uprobe_munmap(struct vm_area_struct *vma, unsigned long start, unsigned lon } static vm_fault_t xol_fault(const struct vm_special_mapping *sm, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { struct xol_area *area = vma->vm_mm->uprobes_state.xol_area; @@ -1667,7 +1667,7 @@ static vm_fault_t xol_fault(const struct vm_special_mapping *sm, return 0; } -static int xol_mremap(const struct vm_special_mapping *sm, struct vm_area_struct *new_vma) +static int xol_mremap(const struct vm_special_mapping *sm, struct mm_area *new_vma) { return -EPERM; } @@ -1681,7 +1681,7 @@ static const struct vm_special_mapping xol_mapping = { /* Slot allocation for XOL */ static int xol_add_vma(struct mm_struct *mm, struct xol_area *area) { - struct vm_area_struct *vma; + struct mm_area *vma; int ret; if (mmap_write_lock_killable(mm)) @@ -2338,7 +2338,7 @@ bool uprobe_deny_signal(void) static void mmf_recalc_uprobes(struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; for_each_vma(vmi, vma) { if (!valid_vma(vma, false)) @@ -2387,7 +2387,7 @@ static struct uprobe *find_active_uprobe_speculative(unsigned long bp_vaddr) { struct mm_struct *mm = current->mm; struct uprobe *uprobe = NULL; - struct vm_area_struct *vma; + struct mm_area *vma; struct file *vm_file; loff_t offset; unsigned int seq; @@ -2429,7 +2429,7 @@ static struct uprobe *find_active_uprobe_rcu(unsigned long bp_vaddr, int *is_swb { struct mm_struct *mm = current->mm; struct uprobe *uprobe = NULL; - struct vm_area_struct *vma; + struct mm_area *vma; uprobe = find_active_uprobe_speculative(bp_vaddr); if (uprobe) diff --git a/kernel/fork.c b/kernel/fork.c index c4b26cd8998b..005774cb7b07 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -428,15 +428,15 @@ struct kmem_cache *files_cachep; /* SLAB cache for fs_struct structures (tsk->fs) */ struct kmem_cache *fs_cachep; -/* SLAB cache for vm_area_struct structures */ +/* SLAB cache for mm_area structures */ static struct kmem_cache *vm_area_cachep; /* SLAB cache for mm_struct structures (tsk->mm) */ static struct kmem_cache *mm_cachep; -struct vm_area_struct *vm_area_alloc(struct mm_struct *mm) +struct mm_area *vm_area_alloc(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; vma = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); if (!vma) @@ -447,8 +447,8 @@ struct vm_area_struct *vm_area_alloc(struct mm_struct *mm) return vma; } -static void vm_area_init_from(const struct vm_area_struct *src, - struct vm_area_struct *dest) +static void vm_area_init_from(const struct mm_area *src, + struct mm_area *dest) { dest->vm_mm = src->vm_mm; dest->vm_ops = src->vm_ops; @@ -483,9 +483,9 @@ static void vm_area_init_from(const struct vm_area_struct *src, #endif } -struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) +struct mm_area *vm_area_dup(struct mm_area *orig) { - struct vm_area_struct *new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); + struct mm_area *new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL); if (!new) return NULL; @@ -505,7 +505,7 @@ struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) return new; } -void vm_area_free(struct vm_area_struct *vma) +void vm_area_free(struct mm_area *vma) { /* The vma should be detached while being destroyed. */ vma_assert_detached(vma); @@ -611,7 +611,7 @@ static void dup_mm_exe_file(struct mm_struct *mm, struct mm_struct *oldmm) static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) { - struct vm_area_struct *mpnt, *tmp; + struct mm_area *mpnt, *tmp; int retval; unsigned long charge = 0; LIST_HEAD(uf); @@ -1473,7 +1473,7 @@ int set_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file) */ int replace_mm_exe_file(struct mm_struct *mm, struct file *new_exe_file) { - struct vm_area_struct *vma; + struct mm_area *vma; struct file *old_exe_file; int ret = 0; @@ -3215,7 +3215,7 @@ void __init proc_caches_init(void) { struct kmem_cache_args args = { .use_freeptr_offset = true, - .freeptr_offset = offsetof(struct vm_area_struct, vm_freeptr), + .freeptr_offset = offsetof(struct mm_area, vm_freeptr), }; sighand_cachep = kmem_cache_create("sighand_cache", @@ -3234,8 +3234,8 @@ void __init proc_caches_init(void) sizeof(struct fs_struct), 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_ACCOUNT, NULL); - vm_area_cachep = kmem_cache_create("vm_area_struct", - sizeof(struct vm_area_struct), &args, + vm_area_cachep = kmem_cache_create("mm_area", + sizeof(struct mm_area), &args, SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_TYPESAFE_BY_RCU| SLAB_ACCOUNT); mmap_init(); diff --git a/kernel/kcov.c b/kernel/kcov.c index 187ba1b80bda..afd99afc9386 100644 --- a/kernel/kcov.c +++ b/kernel/kcov.c @@ -484,7 +484,7 @@ void kcov_task_exit(struct task_struct *t) kcov_put(kcov); } -static int kcov_mmap(struct file *filep, struct vm_area_struct *vma) +static int kcov_mmap(struct file *filep, struct mm_area *vma) { int res = 0; struct kcov *kcov = vma->vm_file->private_data; diff --git a/kernel/relay.c b/kernel/relay.c index 5ac7e711e4b6..ca1dea370f80 100644 --- a/kernel/relay.c +++ b/kernel/relay.c @@ -74,13 +74,13 @@ static void relay_free_page_array(struct page **array) /** * relay_mmap_buf: - mmap channel buffer to process address space * @buf: relay channel buffer - * @vma: vm_area_struct describing memory to be mapped + * @vma: mm_area describing memory to be mapped * * Returns 0 if ok, negative on error * * Caller should already have grabbed mmap_lock. */ -static int relay_mmap_buf(struct rchan_buf *buf, struct vm_area_struct *vma) +static int relay_mmap_buf(struct rchan_buf *buf, struct mm_area *vma) { unsigned long length = vma->vm_end - vma->vm_start; @@ -825,7 +825,7 @@ static int relay_file_open(struct inode *inode, struct file *filp) * * Calls upon relay_mmap_buf() to map the file into user space. */ -static int relay_file_mmap(struct file *filp, struct vm_area_struct *vma) +static int relay_file_mmap(struct file *filp, struct mm_area *vma) { struct rchan_buf *buf = filp->private_data; return relay_mmap_buf(buf, vma); diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index e43993a4e580..424c88801103 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -3258,7 +3258,7 @@ static void reset_ptenuma_scan(struct task_struct *p) p->mm->numa_scan_offset = 0; } -static bool vma_is_accessed(struct mm_struct *mm, struct vm_area_struct *vma) +static bool vma_is_accessed(struct mm_struct *mm, struct mm_area *vma) { unsigned long pids; /* @@ -3307,7 +3307,7 @@ static void task_numa_work(struct callback_head *work) struct task_struct *p = current; struct mm_struct *mm = p->mm; u64 runtime = p->se.sum_exec_runtime; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long start, end; unsigned long nr_pte_updates = 0; long pages, virtpages; diff --git a/kernel/signal.c b/kernel/signal.c index 614d78fe3451..39a1112b49e9 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -4892,7 +4892,7 @@ SYSCALL_DEFINE3(sigsuspend, int, unused1, int, unused2, old_sigset_t, mask) } #endif -__weak const char *arch_vma_name(struct vm_area_struct *vma) +__weak const char *arch_vma_name(struct mm_area *vma) { return NULL; } diff --git a/kernel/sys.c b/kernel/sys.c index c434968e9f5d..bfcdd00e92bf 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -2156,7 +2156,7 @@ static int prctl_set_mm(int opt, unsigned long addr, .auxv_size = 0, .exe_fd = -1, }; - struct vm_area_struct *vma; + struct mm_area *vma; int error; if (arg5 || (arg4 && (opt != PR_SET_MM_AUXV && diff --git a/kernel/time/namespace.c b/kernel/time/namespace.c index e3642278df43..8b5a1d6c90ad 100644 --- a/kernel/time/namespace.c +++ b/kernel/time/namespace.c @@ -192,7 +192,7 @@ static void timens_setup_vdso_clock_data(struct vdso_clock *vc, offset[CLOCK_BOOTTIME_ALARM] = boottime; } -struct page *find_timens_vvar_page(struct vm_area_struct *vma) +struct page *find_timens_vvar_page(struct mm_area *vma) { if (likely(vma->vm_mm == current->mm)) return current->nsproxy->time_ns->vvar_page; diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c index d8d7b28e2c2f..2178bd0d5590 100644 --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c @@ -7028,7 +7028,7 @@ static int __rb_inc_dec_mapped(struct ring_buffer_per_cpu *cpu_buffer, */ #ifdef CONFIG_MMU static int __rb_map_vma(struct ring_buffer_per_cpu *cpu_buffer, - struct vm_area_struct *vma) + struct mm_area *vma) { unsigned long nr_subbufs, nr_pages, nr_vma_pages, pgoff = vma->vm_pgoff; unsigned int subbuf_pages, subbuf_order; @@ -7125,14 +7125,14 @@ static int __rb_map_vma(struct ring_buffer_per_cpu *cpu_buffer, } #else static int __rb_map_vma(struct ring_buffer_per_cpu *cpu_buffer, - struct vm_area_struct *vma) + struct mm_area *vma) { return -EOPNOTSUPP; } #endif int ring_buffer_map(struct trace_buffer *buffer, int cpu, - struct vm_area_struct *vma) + struct mm_area *vma) { struct ring_buffer_per_cpu *cpu_buffer; unsigned long flags, *subbuf_ids; diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c index bc957a2507e2..58694c4b18b6 100644 --- a/kernel/trace/trace.c +++ b/kernel/trace/trace.c @@ -8481,7 +8481,7 @@ static inline int get_snapshot_map(struct trace_array *tr) { return 0; } static inline void put_snapshot_map(struct trace_array *tr) { } #endif -static void tracing_buffers_mmap_close(struct vm_area_struct *vma) +static void tracing_buffers_mmap_close(struct mm_area *vma) { struct ftrace_buffer_info *info = vma->vm_file->private_data; struct trace_iterator *iter = &info->iter; @@ -8494,7 +8494,7 @@ static const struct vm_operations_struct tracing_buffers_vmops = { .close = tracing_buffers_mmap_close, }; -static int tracing_buffers_mmap(struct file *filp, struct vm_area_struct *vma) +static int tracing_buffers_mmap(struct file *filp, struct mm_area *vma) { struct ftrace_buffer_info *info = filp->private_data; struct trace_iterator *iter = &info->iter; diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c index fee40ffbd490..f8172a64070a 100644 --- a/kernel/trace/trace_output.c +++ b/kernel/trace/trace_output.c @@ -404,7 +404,7 @@ static int seq_print_user_ip(struct trace_seq *s, struct mm_struct *mm, return 0; if (mm) { - const struct vm_area_struct *vma; + const struct mm_area *vma; mmap_read_lock(mm); vma = find_vma(mm, ip); diff --git a/lib/buildid.c b/lib/buildid.c index c4b0f376fb34..5acf0f755dd2 100644 --- a/lib/buildid.c +++ b/lib/buildid.c @@ -287,7 +287,7 @@ static int get_build_id_64(struct freader *r, unsigned char *build_id, __u32 *si /* enough for Elf64_Ehdr, Elf64_Phdr, and all the smaller requests */ #define MAX_FREADER_BUF_SZ 64 -static int __build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, +static int __build_id_parse(struct mm_area *vma, unsigned char *build_id, __u32 *size, bool may_fault) { const Elf32_Ehdr *ehdr; @@ -338,7 +338,7 @@ static int __build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, * * Return: 0 on success; negative error, otherwise */ -int build_id_parse_nofault(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size) +int build_id_parse_nofault(struct mm_area *vma, unsigned char *build_id, __u32 *size) { return __build_id_parse(vma, build_id, size, false /* !may_fault */); } @@ -354,7 +354,7 @@ int build_id_parse_nofault(struct vm_area_struct *vma, unsigned char *build_id, * * Return: 0 on success; negative error, otherwise */ -int build_id_parse(struct vm_area_struct *vma, unsigned char *build_id, __u32 *size) +int build_id_parse(struct mm_area *vma, unsigned char *build_id, __u32 *size) { return __build_id_parse(vma, build_id, size, true /* may_fault */); } diff --git a/lib/test_hmm.c b/lib/test_hmm.c index 5b144bc5c4ec..d08270e1c826 100644 --- a/lib/test_hmm.c +++ b/lib/test_hmm.c @@ -878,7 +878,7 @@ static int dmirror_migrate_to_system(struct dmirror *dmirror, unsigned long start, end, addr; unsigned long size = cmd->npages << PAGE_SHIFT; struct mm_struct *mm = dmirror->notifier.mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long src_pfns[64] = { 0 }; unsigned long dst_pfns[64] = { 0 }; struct migrate_vma args = { 0 }; @@ -938,7 +938,7 @@ static int dmirror_migrate_to_device(struct dmirror *dmirror, unsigned long start, end, addr; unsigned long size = cmd->npages << PAGE_SHIFT; struct mm_struct *mm = dmirror->notifier.mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long src_pfns[64] = { 0 }; unsigned long dst_pfns[64] = { 0 }; struct dmirror_bounce bounce; @@ -1342,7 +1342,7 @@ static long dmirror_fops_unlocked_ioctl(struct file *filp, return 0; } -static int dmirror_fops_mmap(struct file *file, struct vm_area_struct *vma) +static int dmirror_fops_mmap(struct file *file, struct mm_area *vma) { unsigned long addr; diff --git a/lib/vdso/datastore.c b/lib/vdso/datastore.c index 3693c6caf2c4..6079a11964e1 100644 --- a/lib/vdso/datastore.c +++ b/lib/vdso/datastore.c @@ -38,7 +38,7 @@ struct vdso_arch_data *vdso_k_arch_data = &vdso_arch_data_store.data; #endif /* CONFIG_ARCH_HAS_VDSO_ARCH_DATA */ static vm_fault_t vvar_fault(const struct vm_special_mapping *sm, - struct vm_area_struct *vma, struct vm_fault *vmf) + struct mm_area *vma, struct vm_fault *vmf) { struct page *timens_page = find_timens_vvar_page(vma); unsigned long addr, pfn; @@ -96,7 +96,7 @@ const struct vm_special_mapping vdso_vvar_mapping = { .fault = vvar_fault, }; -struct vm_area_struct *vdso_install_vvar_mapping(struct mm_struct *mm, unsigned long addr) +struct mm_area *vdso_install_vvar_mapping(struct mm_struct *mm, unsigned long addr) { return _install_special_mapping(mm, addr, VDSO_NR_PAGES * PAGE_SIZE, VM_READ | VM_MAYREAD | VM_IO | VM_DONTDUMP | @@ -115,7 +115,7 @@ struct vm_area_struct *vdso_install_vvar_mapping(struct mm_struct *mm, unsigned int vdso_join_timens(struct task_struct *task, struct time_namespace *ns) { struct mm_struct *mm = task->mm; - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); mmap_read_lock(mm); diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c index 0db1fc70c84d..db48cc64657f 100644 --- a/mm/damon/ops-common.c +++ b/mm/damon/ops-common.c @@ -39,7 +39,7 @@ struct folio *damon_get_folio(unsigned long pfn) return folio; } -void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr) +void damon_ptep_mkold(pte_t *pte, struct mm_area *vma, unsigned long addr) { pte_t pteval = ptep_get(pte); struct folio *folio; @@ -70,7 +70,7 @@ void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr folio_put(folio); } -void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr) +void damon_pmdp_mkold(pmd_t *pmd, struct mm_area *vma, unsigned long addr) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE struct folio *folio = damon_get_folio(pmd_pfn(pmdp_get(pmd))); diff --git a/mm/damon/ops-common.h b/mm/damon/ops-common.h index 18d837d11bce..81857e66d09b 100644 --- a/mm/damon/ops-common.h +++ b/mm/damon/ops-common.h @@ -9,8 +9,8 @@ struct folio *damon_get_folio(unsigned long pfn); -void damon_ptep_mkold(pte_t *pte, struct vm_area_struct *vma, unsigned long addr); -void damon_pmdp_mkold(pmd_t *pmd, struct vm_area_struct *vma, unsigned long addr); +void damon_ptep_mkold(pte_t *pte, struct mm_area *vma, unsigned long addr); +void damon_pmdp_mkold(pmd_t *pmd, struct mm_area *vma, unsigned long addr); int damon_cold_score(struct damon_ctx *c, struct damon_region *r, struct damos *s); diff --git a/mm/damon/paddr.c b/mm/damon/paddr.c index 1b70d3f36046..5154132467eb 100644 --- a/mm/damon/paddr.c +++ b/mm/damon/paddr.c @@ -20,7 +20,7 @@ #include "ops-common.h" static bool damon_folio_mkold_one(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr, void *arg) + struct mm_area *vma, unsigned long addr, void *arg) { DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); @@ -88,7 +88,7 @@ static void damon_pa_prepare_access_checks(struct damon_ctx *ctx) } static bool damon_folio_young_one(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr, void *arg) + struct mm_area *vma, unsigned long addr, void *arg) { bool *accessed = arg; DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); diff --git a/mm/damon/tests/vaddr-kunit.h b/mm/damon/tests/vaddr-kunit.h index 7cd944266a92..5d07633be7fb 100644 --- a/mm/damon/tests/vaddr-kunit.h +++ b/mm/damon/tests/vaddr-kunit.h @@ -14,7 +14,7 @@ #include -static int __link_vmas(struct maple_tree *mt, struct vm_area_struct *vmas, +static int __link_vmas(struct maple_tree *mt, struct mm_area *vmas, ssize_t nr_vmas) { int i, ret = -ENOMEM; @@ -68,13 +68,13 @@ static void damon_test_three_regions_in_vmas(struct kunit *test) static struct mm_struct mm; struct damon_addr_range regions[3] = {0}; /* 10-20-25, 200-210-220, 300-305, 307-330 */ - static struct vm_area_struct vmas[] = { - (struct vm_area_struct) {.vm_start = 10, .vm_end = 20}, - (struct vm_area_struct) {.vm_start = 20, .vm_end = 25}, - (struct vm_area_struct) {.vm_start = 200, .vm_end = 210}, - (struct vm_area_struct) {.vm_start = 210, .vm_end = 220}, - (struct vm_area_struct) {.vm_start = 300, .vm_end = 305}, - (struct vm_area_struct) {.vm_start = 307, .vm_end = 330}, + static struct mm_area vmas[] = { + (struct mm_area) {.vm_start = 10, .vm_end = 20}, + (struct mm_area) {.vm_start = 20, .vm_end = 25}, + (struct mm_area) {.vm_start = 200, .vm_end = 210}, + (struct mm_area) {.vm_start = 210, .vm_end = 220}, + (struct mm_area) {.vm_start = 300, .vm_end = 305}, + (struct mm_area) {.vm_start = 307, .vm_end = 330}, }; mt_init_flags(&mm.mm_mt, MT_FLAGS_ALLOC_RANGE | MT_FLAGS_USE_RCU); diff --git a/mm/damon/vaddr.c b/mm/damon/vaddr.c index e6d99106a7f9..ddd28b187cbb 100644 --- a/mm/damon/vaddr.c +++ b/mm/damon/vaddr.c @@ -121,7 +121,7 @@ static int __damon_va_three_regions(struct mm_struct *mm, { struct damon_addr_range first_gap = {0}, second_gap = {0}; VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma, *prev = NULL; + struct mm_area *vma, *prev = NULL; unsigned long start; /* @@ -341,7 +341,7 @@ static int damon_mkold_pmd_entry(pmd_t *pmd, unsigned long addr, #ifdef CONFIG_HUGETLB_PAGE static void damon_hugetlb_mkold(pte_t *pte, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { bool referenced = false; pte_t entry = huge_ptep_get(mm, addr, pte); diff --git a/mm/debug.c b/mm/debug.c index db83e381a8ae..ea36f9732a2a 100644 --- a/mm/debug.c +++ b/mm/debug.c @@ -184,7 +184,7 @@ EXPORT_SYMBOL(dump_page); #ifdef CONFIG_DEBUG_VM -void dump_vma(const struct vm_area_struct *vma) +void dump_vma(const struct mm_area *vma) { pr_emerg("vma %px start %px end %px mm %px\n" "prot %lx anon_vma %px vm_ops %px\n" diff --git a/mm/debug_vm_pgtable.c b/mm/debug_vm_pgtable.c index bc748f700a9e..ba1ca4c6a44f 100644 --- a/mm/debug_vm_pgtable.c +++ b/mm/debug_vm_pgtable.c @@ -45,7 +45,7 @@ struct pgtable_debug_args { struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; pgd_t *pgdp; p4d_t *p4dp; diff --git a/mm/filemap.c b/mm/filemap.c index b5e784f34d98..2a8150e9ac7b 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -3293,7 +3293,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, static vm_fault_t filemap_fault_recheck_pte_none(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret = 0; pte_t *ptep; @@ -3689,7 +3689,7 @@ static vm_fault_t filemap_map_order0_folio(struct vm_fault *vmf, vm_fault_t filemap_map_pages(struct vm_fault *vmf, pgoff_t start_pgoff, pgoff_t end_pgoff) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct file *file = vma->vm_file; struct address_space *mapping = file->f_mapping; pgoff_t file_end, last_pgoff = start_pgoff; @@ -3793,7 +3793,7 @@ const struct vm_operations_struct generic_file_vm_ops = { /* This is used for a general mmap of a disk file */ -int generic_file_mmap(struct file *file, struct vm_area_struct *vma) +int generic_file_mmap(struct file *file, struct mm_area *vma) { struct address_space *mapping = file->f_mapping; @@ -3807,7 +3807,7 @@ int generic_file_mmap(struct file *file, struct vm_area_struct *vma) /* * This is for filesystems which do not implement ->writepage. */ -int generic_file_readonly_mmap(struct file *file, struct vm_area_struct *vma) +int generic_file_readonly_mmap(struct file *file, struct mm_area *vma) { if (vma_is_shared_maywrite(vma)) return -EINVAL; @@ -3818,11 +3818,11 @@ vm_fault_t filemap_page_mkwrite(struct vm_fault *vmf) { return VM_FAULT_SIGBUS; } -int generic_file_mmap(struct file *file, struct vm_area_struct *vma) +int generic_file_mmap(struct file *file, struct mm_area *vma) { return -ENOSYS; } -int generic_file_readonly_mmap(struct file *file, struct vm_area_struct *vma) +int generic_file_readonly_mmap(struct file *file, struct mm_area *vma) { return -ENOSYS; } diff --git a/mm/gup.c b/mm/gup.c index 92351e2fa876..88928bea023f 100644 --- a/mm/gup.c +++ b/mm/gup.c @@ -595,7 +595,7 @@ static struct folio *try_grab_folio_fast(struct page *page, int refs, /* Common code for can_follow_write_* */ static inline bool can_follow_write_common(struct page *page, - struct vm_area_struct *vma, unsigned int flags) + struct mm_area *vma, unsigned int flags) { /* Maybe FOLL_FORCE is set to override it? */ if (!(flags & FOLL_FORCE)) @@ -620,7 +620,7 @@ static inline bool can_follow_write_common(struct page *page, return page && PageAnon(page) && PageAnonExclusive(page); } -static struct page *no_page_table(struct vm_area_struct *vma, +static struct page *no_page_table(struct mm_area *vma, unsigned int flags, unsigned long address) { if (!(flags & FOLL_DUMP)) @@ -648,7 +648,7 @@ static struct page *no_page_table(struct vm_area_struct *vma, #ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES /* FOLL_FORCE can write to even unwritable PUDs in COW mappings. */ static inline bool can_follow_write_pud(pud_t pud, struct page *page, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned int flags) { /* If the pud is writable, we can write to the page. */ @@ -658,7 +658,7 @@ static inline bool can_follow_write_pud(pud_t pud, struct page *page, return can_follow_write_common(page, vma, flags); } -static struct page *follow_huge_pud(struct vm_area_struct *vma, +static struct page *follow_huge_pud(struct mm_area *vma, unsigned long addr, pud_t *pudp, int flags, struct follow_page_context *ctx) { @@ -716,7 +716,7 @@ static struct page *follow_huge_pud(struct vm_area_struct *vma, /* FOLL_FORCE can write to even unwritable PMDs in COW mappings. */ static inline bool can_follow_write_pmd(pmd_t pmd, struct page *page, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned int flags) { /* If the pmd is writable, we can write to the page. */ @@ -732,7 +732,7 @@ static inline bool can_follow_write_pmd(pmd_t pmd, struct page *page, return !userfaultfd_huge_pmd_wp(vma, pmd); } -static struct page *follow_huge_pmd(struct vm_area_struct *vma, +static struct page *follow_huge_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, unsigned int flags, struct follow_page_context *ctx) @@ -778,14 +778,14 @@ static struct page *follow_huge_pmd(struct vm_area_struct *vma, } #else /* CONFIG_PGTABLE_HAS_HUGE_LEAVES */ -static struct page *follow_huge_pud(struct vm_area_struct *vma, +static struct page *follow_huge_pud(struct mm_area *vma, unsigned long addr, pud_t *pudp, int flags, struct follow_page_context *ctx) { return NULL; } -static struct page *follow_huge_pmd(struct vm_area_struct *vma, +static struct page *follow_huge_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, unsigned int flags, struct follow_page_context *ctx) @@ -794,7 +794,7 @@ static struct page *follow_huge_pmd(struct vm_area_struct *vma, } #endif /* CONFIG_PGTABLE_HAS_HUGE_LEAVES */ -static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address, +static int follow_pfn_pte(struct mm_area *vma, unsigned long address, pte_t *pte, unsigned int flags) { if (flags & FOLL_TOUCH) { @@ -817,7 +817,7 @@ static int follow_pfn_pte(struct vm_area_struct *vma, unsigned long address, /* FOLL_FORCE can write to even unwritable PTEs in COW mappings. */ static inline bool can_follow_write_pte(pte_t pte, struct page *page, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned int flags) { /* If the pte is writable, we can write to the page. */ @@ -833,7 +833,7 @@ static inline bool can_follow_write_pte(pte_t pte, struct page *page, return !userfaultfd_pte_wp(vma, pte); } -static struct page *follow_page_pte(struct vm_area_struct *vma, +static struct page *follow_page_pte(struct mm_area *vma, unsigned long address, pmd_t *pmd, unsigned int flags, struct dev_pagemap **pgmap) { @@ -947,7 +947,7 @@ static struct page *follow_page_pte(struct vm_area_struct *vma, return no_page_table(vma, flags, address); } -static struct page *follow_pmd_mask(struct vm_area_struct *vma, +static struct page *follow_pmd_mask(struct mm_area *vma, unsigned long address, pud_t *pudp, unsigned int flags, struct follow_page_context *ctx) @@ -999,7 +999,7 @@ static struct page *follow_pmd_mask(struct vm_area_struct *vma, return page; } -static struct page *follow_pud_mask(struct vm_area_struct *vma, +static struct page *follow_pud_mask(struct mm_area *vma, unsigned long address, p4d_t *p4dp, unsigned int flags, struct follow_page_context *ctx) @@ -1027,7 +1027,7 @@ static struct page *follow_pud_mask(struct vm_area_struct *vma, return follow_pmd_mask(vma, address, pudp, flags, ctx); } -static struct page *follow_p4d_mask(struct vm_area_struct *vma, +static struct page *follow_p4d_mask(struct mm_area *vma, unsigned long address, pgd_t *pgdp, unsigned int flags, struct follow_page_context *ctx) @@ -1046,7 +1046,7 @@ static struct page *follow_p4d_mask(struct vm_area_struct *vma, /** * follow_page_mask - look up a page descriptor from a user-virtual address - * @vma: vm_area_struct mapping @address + * @vma: mm_area mapping @address * @address: virtual address to look up * @flags: flags modifying lookup behaviour * @ctx: contains dev_pagemap for %ZONE_DEVICE memory pinning and a @@ -1068,7 +1068,7 @@ static struct page *follow_p4d_mask(struct vm_area_struct *vma, * an error pointer if there is a mapping to something not represented * by a page descriptor (see also vm_normal_page()). */ -static struct page *follow_page_mask(struct vm_area_struct *vma, +static struct page *follow_page_mask(struct mm_area *vma, unsigned long address, unsigned int flags, struct follow_page_context *ctx) { @@ -1092,7 +1092,7 @@ static struct page *follow_page_mask(struct vm_area_struct *vma, } static int get_gate_page(struct mm_struct *mm, unsigned long address, - unsigned int gup_flags, struct vm_area_struct **vma, + unsigned int gup_flags, struct mm_area **vma, struct page **page) { pgd_t *pgd; @@ -1151,7 +1151,7 @@ static int get_gate_page(struct mm_struct *mm, unsigned long address, * FOLL_NOWAIT, the mmap_lock may be released. If it is, *@locked will be set * to 0 and -EBUSY returned. */ -static int faultin_page(struct vm_area_struct *vma, +static int faultin_page(struct mm_area *vma, unsigned long address, unsigned int flags, bool unshare, int *locked) { @@ -1246,7 +1246,7 @@ static int faultin_page(struct vm_area_struct *vma, * This results in both data being written to a folio without writenotify, and * the folio being dirtied unexpectedly (if the caller decides to do so). */ -static bool writable_file_mapping_allowed(struct vm_area_struct *vma, +static bool writable_file_mapping_allowed(struct mm_area *vma, unsigned long gup_flags) { /* @@ -1264,7 +1264,7 @@ static bool writable_file_mapping_allowed(struct vm_area_struct *vma, return !vma_needs_dirty_tracking(vma); } -static int check_vma_flags(struct vm_area_struct *vma, unsigned long gup_flags) +static int check_vma_flags(struct mm_area *vma, unsigned long gup_flags) { vm_flags_t vm_flags = vma->vm_flags; int write = (gup_flags & FOLL_WRITE); @@ -1329,14 +1329,14 @@ static int check_vma_flags(struct vm_area_struct *vma, unsigned long gup_flags) * This is "vma_lookup()", but with a warning if we would have * historically expanded the stack in the GUP code. */ -static struct vm_area_struct *gup_vma_lookup(struct mm_struct *mm, +static struct mm_area *gup_vma_lookup(struct mm_struct *mm, unsigned long addr) { #ifdef CONFIG_STACK_GROWSUP return vma_lookup(mm, addr); #else static volatile unsigned long next_warn; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long now, next; vma = find_vma(mm, addr); @@ -1424,7 +1424,7 @@ static long __get_user_pages(struct mm_struct *mm, int *locked) { long ret = 0, i = 0; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct follow_page_context ctx = { NULL }; if (!nr_pages) @@ -1574,7 +1574,7 @@ static long __get_user_pages(struct mm_struct *mm, return i ? i : ret; } -static bool vma_permits_fault(struct vm_area_struct *vma, +static bool vma_permits_fault(struct mm_area *vma, unsigned int fault_flags) { bool write = !!(fault_flags & FAULT_FLAG_WRITE); @@ -1630,7 +1630,7 @@ int fixup_user_fault(struct mm_struct *mm, unsigned long address, unsigned int fault_flags, bool *unlocked) { - struct vm_area_struct *vma; + struct mm_area *vma; vm_fault_t ret; address = untagged_addr_remote(mm, address); @@ -1879,7 +1879,7 @@ static __always_inline long __get_user_pages_locked(struct mm_struct *mm, * If @locked is non-NULL, it must held for read only and may be * released. If it's released, *@locked will be set to 0. */ -long populate_vma_page_range(struct vm_area_struct *vma, +long populate_vma_page_range(struct mm_area *vma, unsigned long start, unsigned long end, int *locked) { struct mm_struct *mm = vma->vm_mm; @@ -1995,7 +1995,7 @@ int __mm_populate(unsigned long start, unsigned long len, int ignore_errors) { struct mm_struct *mm = current->mm; unsigned long end, nstart, nend; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; int locked = 0; long ret = 0; @@ -2049,7 +2049,7 @@ static long __get_user_pages_locked(struct mm_struct *mm, unsigned long start, unsigned long nr_pages, struct page **pages, int *locked, unsigned int foll_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; bool must_unlock = false; unsigned long vm_flags; long i; diff --git a/mm/hmm.c b/mm/hmm.c index 082f7b7c0b9e..b3fdbe6d2e2a 100644 --- a/mm/hmm.c +++ b/mm/hmm.c @@ -64,7 +64,7 @@ static int hmm_vma_fault(unsigned long addr, unsigned long end, unsigned int required_fault, struct mm_walk *walk) { struct hmm_vma_walk *hmm_vma_walk = walk->private; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned int fault_flags = FAULT_FLAG_REMOTE; WARN_ON_ONCE(!required_fault); @@ -472,7 +472,7 @@ static int hmm_vma_walk_hugetlb_entry(pte_t *pte, unsigned long hmask, unsigned long addr = start, i, pfn; struct hmm_vma_walk *hmm_vma_walk = walk->private; struct hmm_range *range = hmm_vma_walk->range; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; unsigned int required_fault; unsigned long pfn_req_flags; unsigned long cpu_flags; @@ -522,7 +522,7 @@ static int hmm_vma_walk_test(unsigned long start, unsigned long end, { struct hmm_vma_walk *hmm_vma_walk = walk->private; struct hmm_range *range = hmm_vma_walk->range; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; if (!(vma->vm_flags & (VM_IO | VM_PFNMAP)) && vma->vm_flags & VM_READ) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 2a47682d1ab7..30d01dbe55af 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -83,7 +83,7 @@ unsigned long huge_anon_orders_madvise __read_mostly; unsigned long huge_anon_orders_inherit __read_mostly; static bool anon_orders_configured __initdata; -static inline bool file_thp_enabled(struct vm_area_struct *vma) +static inline bool file_thp_enabled(struct mm_area *vma) { struct inode *inode; @@ -98,7 +98,7 @@ static inline bool file_thp_enabled(struct vm_area_struct *vma) return !inode_is_open_for_write(inode) && S_ISREG(inode->i_mode); } -unsigned long __thp_vma_allowable_orders(struct vm_area_struct *vma, +unsigned long __thp_vma_allowable_orders(struct mm_area *vma, unsigned long vm_flags, unsigned long tva_flags, unsigned long orders) @@ -1050,7 +1050,7 @@ static int __init setup_thp_anon(char *str) } __setup("thp_anon=", setup_thp_anon); -pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma) +pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct mm_area *vma) { if (likely(vma->vm_flags & VM_WRITE)) pmd = pmd_mkwrite(pmd, vma); @@ -1155,7 +1155,7 @@ unsigned long thp_get_unmapped_area(struct file *filp, unsigned long addr, } EXPORT_SYMBOL_GPL(thp_get_unmapped_area); -static struct folio *vma_alloc_anon_folio_pmd(struct vm_area_struct *vma, +static struct folio *vma_alloc_anon_folio_pmd(struct mm_area *vma, unsigned long addr) { gfp_t gfp = vma_thp_gfp_mask(vma); @@ -1199,7 +1199,7 @@ static struct folio *vma_alloc_anon_folio_pmd(struct vm_area_struct *vma, } static void map_anon_folio_pmd(struct folio *folio, pmd_t *pmd, - struct vm_area_struct *vma, unsigned long haddr) + struct mm_area *vma, unsigned long haddr) { pmd_t entry; @@ -1218,7 +1218,7 @@ static void map_anon_folio_pmd(struct folio *folio, pmd_t *pmd, static vm_fault_t __do_huge_pmd_anonymous_page(struct vm_fault *vmf) { unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; pgtable_t pgtable; vm_fault_t ret = 0; @@ -1277,7 +1277,7 @@ static vm_fault_t __do_huge_pmd_anonymous_page(struct vm_fault *vmf) * available * never: never stall for any thp allocation */ -gfp_t vma_thp_gfp_mask(struct vm_area_struct *vma) +gfp_t vma_thp_gfp_mask(struct mm_area *vma) { const bool vma_madvised = vma && (vma->vm_flags & VM_HUGEPAGE); @@ -1305,7 +1305,7 @@ gfp_t vma_thp_gfp_mask(struct vm_area_struct *vma) /* Caller must hold page table lock. */ static void set_huge_zero_folio(pgtable_t pgtable, struct mm_struct *mm, - struct vm_area_struct *vma, unsigned long haddr, pmd_t *pmd, + struct mm_area *vma, unsigned long haddr, pmd_t *pmd, struct folio *zero_folio) { pmd_t entry; @@ -1318,7 +1318,7 @@ static void set_huge_zero_folio(pgtable_t pgtable, struct mm_struct *mm, vm_fault_t do_huge_pmd_anonymous_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; vm_fault_t ret; @@ -1373,7 +1373,7 @@ vm_fault_t do_huge_pmd_anonymous_page(struct vm_fault *vmf) return __do_huge_pmd_anonymous_page(vmf); } -static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr, +static int insert_pfn_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, pfn_t pfn, pgprot_t prot, bool write, pgtable_t pgtable) { @@ -1430,7 +1430,7 @@ static int insert_pfn_pmd(struct vm_area_struct *vma, unsigned long addr, vm_fault_t vmf_insert_pfn_pmd(struct vm_fault *vmf, pfn_t pfn, bool write) { unsigned long addr = vmf->address & PMD_MASK; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pgprot_t pgprot = vma->vm_page_prot; pgtable_t pgtable = NULL; spinlock_t *ptl; @@ -1471,7 +1471,7 @@ EXPORT_SYMBOL_GPL(vmf_insert_pfn_pmd); vm_fault_t vmf_insert_folio_pmd(struct vm_fault *vmf, struct folio *folio, bool write) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long addr = vmf->address & PMD_MASK; struct mm_struct *mm = vma->vm_mm; spinlock_t *ptl; @@ -1508,14 +1508,14 @@ vm_fault_t vmf_insert_folio_pmd(struct vm_fault *vmf, struct folio *folio, EXPORT_SYMBOL_GPL(vmf_insert_folio_pmd); #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -static pud_t maybe_pud_mkwrite(pud_t pud, struct vm_area_struct *vma) +static pud_t maybe_pud_mkwrite(pud_t pud, struct mm_area *vma) { if (likely(vma->vm_flags & VM_WRITE)) pud = pud_mkwrite(pud); return pud; } -static void insert_pfn_pud(struct vm_area_struct *vma, unsigned long addr, +static void insert_pfn_pud(struct mm_area *vma, unsigned long addr, pud_t *pud, pfn_t pfn, bool write) { struct mm_struct *mm = vma->vm_mm; @@ -1560,7 +1560,7 @@ static void insert_pfn_pud(struct vm_area_struct *vma, unsigned long addr, vm_fault_t vmf_insert_pfn_pud(struct vm_fault *vmf, pfn_t pfn, bool write) { unsigned long addr = vmf->address & PUD_MASK; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pgprot_t pgprot = vma->vm_page_prot; spinlock_t *ptl; @@ -1599,7 +1599,7 @@ EXPORT_SYMBOL_GPL(vmf_insert_pfn_pud); vm_fault_t vmf_insert_folio_pud(struct vm_fault *vmf, struct folio *folio, bool write) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long addr = vmf->address & PUD_MASK; pud_t *pud = vmf->pud; struct mm_struct *mm = vma->vm_mm; @@ -1633,7 +1633,7 @@ vm_fault_t vmf_insert_folio_pud(struct vm_fault *vmf, struct folio *folio, EXPORT_SYMBOL_GPL(vmf_insert_folio_pud); #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ -void touch_pmd(struct vm_area_struct *vma, unsigned long addr, +void touch_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, bool write) { pmd_t _pmd; @@ -1646,7 +1646,7 @@ void touch_pmd(struct vm_area_struct *vma, unsigned long addr, update_mmu_cache_pmd(vma, addr, pmd); } -struct page *follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, +struct page *follow_devmap_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, int flags, struct dev_pagemap **pgmap) { unsigned long pfn = pmd_pfn(*pmd); @@ -1688,7 +1688,7 @@ struct page *follow_devmap_pmd(struct vm_area_struct *vma, unsigned long addr, int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, - struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) + struct mm_area *dst_vma, struct mm_area *src_vma) { spinlock_t *dst_ptl, *src_ptl; struct page *src_page; @@ -1810,7 +1810,7 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm, } #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -void touch_pud(struct vm_area_struct *vma, unsigned long addr, +void touch_pud(struct mm_area *vma, unsigned long addr, pud_t *pud, bool write) { pud_t _pud; @@ -1825,7 +1825,7 @@ void touch_pud(struct vm_area_struct *vma, unsigned long addr, int copy_huge_pud(struct mm_struct *dst_mm, struct mm_struct *src_mm, pud_t *dst_pud, pud_t *src_pud, unsigned long addr, - struct vm_area_struct *vma) + struct mm_area *vma) { spinlock_t *dst_ptl, *src_ptl; pud_t pud; @@ -1889,7 +1889,7 @@ void huge_pmd_set_accessed(struct vm_fault *vmf) static vm_fault_t do_huge_zero_wp_pmd(struct vm_fault *vmf) { unsigned long haddr = vmf->address & HPAGE_PMD_MASK; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mmu_notifier_range range; struct folio *folio; vm_fault_t ret = 0; @@ -1921,7 +1921,7 @@ static vm_fault_t do_huge_zero_wp_pmd(struct vm_fault *vmf) vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf) { const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; struct page *page; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; @@ -2012,7 +2012,7 @@ vm_fault_t do_huge_pmd_wp_page(struct vm_fault *vmf) return VM_FAULT_FALLBACK; } -static inline bool can_change_pmd_writable(struct vm_area_struct *vma, +static inline bool can_change_pmd_writable(struct mm_area *vma, unsigned long addr, pmd_t pmd) { struct page *page; @@ -2045,7 +2045,7 @@ static inline bool can_change_pmd_writable(struct vm_area_struct *vma, /* NUMA hinting page fault entry point for trans huge pmds */ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; int nid = NUMA_NO_NODE; @@ -2123,7 +2123,7 @@ vm_fault_t do_huge_pmd_numa_page(struct vm_fault *vmf) * Return true if we do MADV_FREE successfully on entire pmd page. * Otherwise, return false. */ -bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, +bool madvise_free_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr, unsigned long next) { spinlock_t *ptl; @@ -2202,7 +2202,7 @@ static inline void zap_deposited_table(struct mm_struct *mm, pmd_t *pmd) mm_dec_nr_ptes(mm); } -int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, +int zap_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr) { pmd_t orig_pmd; @@ -2272,7 +2272,7 @@ int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, #ifndef pmd_move_must_withdraw static inline int pmd_move_must_withdraw(spinlock_t *new_pmd_ptl, spinlock_t *old_pmd_ptl, - struct vm_area_struct *vma) + struct mm_area *vma) { /* * With split pmd lock we also need to move preallocated @@ -2305,7 +2305,7 @@ static pmd_t clear_uffd_wp_pmd(pmd_t pmd) return pmd; } -bool move_huge_pmd(struct vm_area_struct *vma, unsigned long old_addr, +bool move_huge_pmd(struct mm_area *vma, unsigned long old_addr, unsigned long new_addr, pmd_t *old_pmd, pmd_t *new_pmd) { spinlock_t *old_ptl, *new_ptl; @@ -2363,7 +2363,7 @@ bool move_huge_pmd(struct vm_area_struct *vma, unsigned long old_addr, * or if prot_numa but THP migration is not supported * - HPAGE_PMD_NR if protections changed and TLB flush necessary */ -int change_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, +int change_huge_pmd(struct mmu_gather *tlb, struct mm_area *vma, pmd_t *pmd, unsigned long addr, pgprot_t newprot, unsigned long cp_flags) { @@ -2502,7 +2502,7 @@ int change_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma, * - HPAGE_PUD_NR: if pud was successfully processed */ #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -int change_huge_pud(struct mmu_gather *tlb, struct vm_area_struct *vma, +int change_huge_pud(struct mmu_gather *tlb, struct mm_area *vma, pud_t *pudp, unsigned long addr, pgprot_t newprot, unsigned long cp_flags) { @@ -2550,7 +2550,7 @@ int change_huge_pud(struct mmu_gather *tlb, struct vm_area_struct *vma, * repeated by the caller, or other errors in case of failure. */ int move_pages_huge_pmd(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, pmd_t dst_pmdval, - struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, + struct mm_area *dst_vma, struct mm_area *src_vma, unsigned long dst_addr, unsigned long src_addr) { pmd_t _dst_pmd, src_pmdval; @@ -2687,7 +2687,7 @@ int move_pages_huge_pmd(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, pm * Note that if it returns page table lock pointer, this routine returns without * unlocking page table lock. So callers must unlock it. */ -spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma) +spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct mm_area *vma) { spinlock_t *ptl; ptl = pmd_lock(vma->vm_mm, pmd); @@ -2704,7 +2704,7 @@ spinlock_t *__pmd_trans_huge_lock(pmd_t *pmd, struct vm_area_struct *vma) * Note that if it returns page table lock pointer, this routine returns without * unlocking page table lock. So callers must unlock it. */ -spinlock_t *__pud_trans_huge_lock(pud_t *pud, struct vm_area_struct *vma) +spinlock_t *__pud_trans_huge_lock(pud_t *pud, struct mm_area *vma) { spinlock_t *ptl; @@ -2716,7 +2716,7 @@ spinlock_t *__pud_trans_huge_lock(pud_t *pud, struct vm_area_struct *vma) } #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -int zap_huge_pud(struct mmu_gather *tlb, struct vm_area_struct *vma, +int zap_huge_pud(struct mmu_gather *tlb, struct mm_area *vma, pud_t *pud, unsigned long addr) { spinlock_t *ptl; @@ -2751,7 +2751,7 @@ int zap_huge_pud(struct mmu_gather *tlb, struct vm_area_struct *vma, return 1; } -static void __split_huge_pud_locked(struct vm_area_struct *vma, pud_t *pud, +static void __split_huge_pud_locked(struct mm_area *vma, pud_t *pud, unsigned long haddr) { struct folio *folio; @@ -2783,7 +2783,7 @@ static void __split_huge_pud_locked(struct vm_area_struct *vma, pud_t *pud, -HPAGE_PUD_NR); } -void __split_huge_pud(struct vm_area_struct *vma, pud_t *pud, +void __split_huge_pud(struct mm_area *vma, pud_t *pud, unsigned long address) { spinlock_t *ptl; @@ -2803,13 +2803,13 @@ void __split_huge_pud(struct vm_area_struct *vma, pud_t *pud, mmu_notifier_invalidate_range_end(&range); } #else -void __split_huge_pud(struct vm_area_struct *vma, pud_t *pud, +void __split_huge_pud(struct mm_area *vma, pud_t *pud, unsigned long address) { } #endif /* CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD */ -static void __split_huge_zero_page_pmd(struct vm_area_struct *vma, +static void __split_huge_zero_page_pmd(struct mm_area *vma, unsigned long haddr, pmd_t *pmd) { struct mm_struct *mm = vma->vm_mm; @@ -2850,7 +2850,7 @@ static void __split_huge_zero_page_pmd(struct vm_area_struct *vma, pmd_populate(mm, pmd, pgtable); } -static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd, +static void __split_huge_pmd_locked(struct mm_area *vma, pmd_t *pmd, unsigned long haddr, bool freeze) { struct mm_struct *mm = vma->vm_mm; @@ -3072,7 +3072,7 @@ static void __split_huge_pmd_locked(struct vm_area_struct *vma, pmd_t *pmd, pmd_populate(mm, pmd, pgtable); } -void split_huge_pmd_locked(struct vm_area_struct *vma, unsigned long address, +void split_huge_pmd_locked(struct mm_area *vma, unsigned long address, pmd_t *pmd, bool freeze, struct folio *folio) { VM_WARN_ON_ONCE(folio && !folio_test_pmd_mappable(folio)); @@ -3093,7 +3093,7 @@ void split_huge_pmd_locked(struct vm_area_struct *vma, unsigned long address, } } -void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, +void __split_huge_pmd(struct mm_area *vma, pmd_t *pmd, unsigned long address, bool freeze, struct folio *folio) { spinlock_t *ptl; @@ -3109,7 +3109,7 @@ void __split_huge_pmd(struct vm_area_struct *vma, pmd_t *pmd, mmu_notifier_invalidate_range_end(&range); } -void split_huge_pmd_address(struct vm_area_struct *vma, unsigned long address, +void split_huge_pmd_address(struct mm_area *vma, unsigned long address, bool freeze, struct folio *folio) { pmd_t *pmd = mm_find_pmd(vma->vm_mm, address); @@ -3120,7 +3120,7 @@ void split_huge_pmd_address(struct vm_area_struct *vma, unsigned long address, __split_huge_pmd(vma, pmd, address, freeze, folio); } -static inline void split_huge_pmd_if_needed(struct vm_area_struct *vma, unsigned long address) +static inline void split_huge_pmd_if_needed(struct mm_area *vma, unsigned long address) { /* * If the new address isn't hpage aligned and it could previously @@ -3132,10 +3132,10 @@ static inline void split_huge_pmd_if_needed(struct vm_area_struct *vma, unsigned split_huge_pmd_address(vma, address, false, NULL); } -void vma_adjust_trans_huge(struct vm_area_struct *vma, +void vma_adjust_trans_huge(struct mm_area *vma, unsigned long start, unsigned long end, - struct vm_area_struct *next) + struct mm_area *next) { /* Check if we need to split start first. */ split_huge_pmd_if_needed(vma, start); @@ -3171,7 +3171,7 @@ static void unmap_folio(struct folio *folio) try_to_unmap_flush(); } -static bool __discard_anon_folio_pmd_locked(struct vm_area_struct *vma, +static bool __discard_anon_folio_pmd_locked(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, struct folio *folio) { @@ -3234,7 +3234,7 @@ static bool __discard_anon_folio_pmd_locked(struct vm_area_struct *vma, return true; } -bool unmap_huge_pmd_locked(struct vm_area_struct *vma, unsigned long addr, +bool unmap_huge_pmd_locked(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, struct folio *folio) { VM_WARN_ON_FOLIO(!folio_test_pmd_mappable(folio), folio); @@ -4316,7 +4316,7 @@ static void split_huge_pages_all(void) pr_debug("%lu of %lu THP split\n", split, total); } -static inline bool vma_not_suitable_for_thp_split(struct vm_area_struct *vma) +static inline bool vma_not_suitable_for_thp_split(struct mm_area *vma) { return vma_is_special_huge(vma) || (vma->vm_flags & VM_IO) || is_vm_hugetlb_page(vma); @@ -4359,7 +4359,7 @@ static int split_huge_pages_pid(int pid, unsigned long vaddr_start, * table filled with PTE-mapped THPs, each of which is distinct. */ for (addr = vaddr_start; addr < vaddr_end; addr += PAGE_SIZE) { - struct vm_area_struct *vma = vma_lookup(mm, addr); + struct mm_area *vma = vma_lookup(mm, addr); struct folio_walk fw; struct folio *folio; struct address_space *mapping; @@ -4614,7 +4614,7 @@ int set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw, struct page *page) { struct folio *folio = page_folio(page); - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; struct mm_struct *mm = vma->vm_mm; unsigned long address = pvmw->address; bool anon_exclusive; @@ -4663,7 +4663,7 @@ int set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw, void remove_migration_pmd(struct page_vma_mapped_walk *pvmw, struct page *new) { struct folio *folio = page_folio(new); - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; struct mm_struct *mm = vma->vm_mm; unsigned long address = pvmw->address; unsigned long haddr = address & HPAGE_PMD_MASK; diff --git a/mm/hugetlb.c b/mm/hugetlb.c index 39f92aad7bd1..96a0b225c1e8 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -116,12 +116,12 @@ struct mutex *hugetlb_fault_mutex_table __ro_after_init; /* Forward declaration */ static int hugetlb_acct_memory(struct hstate *h, long delta); -static void hugetlb_vma_lock_free(struct vm_area_struct *vma); -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma); -static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma); -static void hugetlb_unshare_pmds(struct vm_area_struct *vma, +static void hugetlb_vma_lock_free(struct mm_area *vma); +static void hugetlb_vma_lock_alloc(struct mm_area *vma); +static void __hugetlb_vma_unlock_write_free(struct mm_area *vma); +static void hugetlb_unshare_pmds(struct mm_area *vma, unsigned long start, unsigned long end); -static struct resv_map *vma_resv_map(struct vm_area_struct *vma); +static struct resv_map *vma_resv_map(struct mm_area *vma); static void hugetlb_free_folio(struct folio *folio) { @@ -288,7 +288,7 @@ static inline struct hugepage_subpool *subpool_inode(struct inode *inode) return HUGETLBFS_SB(inode->i_sb)->spool; } -static inline struct hugepage_subpool *subpool_vma(struct vm_area_struct *vma) +static inline struct hugepage_subpool *subpool_vma(struct mm_area *vma) { return subpool_inode(file_inode(vma->vm_file)); } @@ -296,7 +296,7 @@ static inline struct hugepage_subpool *subpool_vma(struct vm_area_struct *vma) /* * hugetlb vma_lock helper routines */ -void hugetlb_vma_lock_read(struct vm_area_struct *vma) +void hugetlb_vma_lock_read(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -309,7 +309,7 @@ void hugetlb_vma_lock_read(struct vm_area_struct *vma) } } -void hugetlb_vma_unlock_read(struct vm_area_struct *vma) +void hugetlb_vma_unlock_read(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -322,7 +322,7 @@ void hugetlb_vma_unlock_read(struct vm_area_struct *vma) } } -void hugetlb_vma_lock_write(struct vm_area_struct *vma) +void hugetlb_vma_lock_write(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -335,7 +335,7 @@ void hugetlb_vma_lock_write(struct vm_area_struct *vma) } } -void hugetlb_vma_unlock_write(struct vm_area_struct *vma) +void hugetlb_vma_unlock_write(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -348,7 +348,7 @@ void hugetlb_vma_unlock_write(struct vm_area_struct *vma) } } -int hugetlb_vma_trylock_write(struct vm_area_struct *vma) +int hugetlb_vma_trylock_write(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { @@ -364,7 +364,7 @@ int hugetlb_vma_trylock_write(struct vm_area_struct *vma) return 1; } -void hugetlb_vma_assert_locked(struct vm_area_struct *vma) +void hugetlb_vma_assert_locked(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -387,7 +387,7 @@ void hugetlb_vma_lock_release(struct kref *kref) static void __hugetlb_vma_unlock_write_put(struct hugetlb_vma_lock *vma_lock) { - struct vm_area_struct *vma = vma_lock->vma; + struct mm_area *vma = vma_lock->vma; /* * vma_lock structure may or not be released as a result of put, @@ -400,7 +400,7 @@ static void __hugetlb_vma_unlock_write_put(struct hugetlb_vma_lock *vma_lock) kref_put(&vma_lock->refs, hugetlb_vma_lock_release); } -static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma) +static void __hugetlb_vma_unlock_write_free(struct mm_area *vma) { if (__vma_shareable_lock(vma)) { struct hugetlb_vma_lock *vma_lock = vma->vm_private_data; @@ -414,7 +414,7 @@ static void __hugetlb_vma_unlock_write_free(struct vm_area_struct *vma) } } -static void hugetlb_vma_lock_free(struct vm_area_struct *vma) +static void hugetlb_vma_lock_free(struct mm_area *vma) { /* * Only present in sharable vmas. @@ -430,7 +430,7 @@ static void hugetlb_vma_lock_free(struct vm_area_struct *vma) } } -static void hugetlb_vma_lock_alloc(struct vm_area_struct *vma) +static void hugetlb_vma_lock_alloc(struct mm_area *vma) { struct hugetlb_vma_lock *vma_lock; @@ -1021,7 +1021,7 @@ static long region_count(struct resv_map *resv, long f, long t) * the mapping, huge page units here. */ static pgoff_t vma_hugecache_offset(struct hstate *h, - struct vm_area_struct *vma, unsigned long address) + struct mm_area *vma, unsigned long address) { return ((address - vma->vm_start) >> huge_page_shift(h)) + (vma->vm_pgoff >> huge_page_order(h)); @@ -1036,7 +1036,7 @@ static pgoff_t vma_hugecache_offset(struct hstate *h, * * Return: The default size of the folios allocated when backing a VMA. */ -unsigned long vma_kernel_pagesize(struct vm_area_struct *vma) +unsigned long vma_kernel_pagesize(struct mm_area *vma) { if (vma->vm_ops && vma->vm_ops->pagesize) return vma->vm_ops->pagesize(vma); @@ -1050,7 +1050,7 @@ EXPORT_SYMBOL_GPL(vma_kernel_pagesize); * architectures where it differs, an architecture-specific 'strong' * version of this symbol is required. */ -__weak unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) +__weak unsigned long vma_mmu_pagesize(struct mm_area *vma) { return vma_kernel_pagesize(vma); } @@ -1083,12 +1083,12 @@ __weak unsigned long vma_mmu_pagesize(struct vm_area_struct *vma) * reference it, this region map represents those offsets which have consumed * reservation ie. where pages have been instantiated. */ -static unsigned long get_vma_private_data(struct vm_area_struct *vma) +static unsigned long get_vma_private_data(struct mm_area *vma) { return (unsigned long)vma->vm_private_data; } -static void set_vma_private_data(struct vm_area_struct *vma, +static void set_vma_private_data(struct mm_area *vma, unsigned long value) { vma->vm_private_data = (void *)value; @@ -1178,7 +1178,7 @@ static inline struct resv_map *inode_resv_map(struct inode *inode) return (struct resv_map *)(&inode->i_data)->i_private_data; } -static struct resv_map *vma_resv_map(struct vm_area_struct *vma) +static struct resv_map *vma_resv_map(struct mm_area *vma) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); if (vma->vm_flags & VM_MAYSHARE) { @@ -1193,7 +1193,7 @@ static struct resv_map *vma_resv_map(struct vm_area_struct *vma) } } -static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map) +static void set_vma_resv_map(struct mm_area *vma, struct resv_map *map) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); VM_BUG_ON_VMA(vma->vm_flags & VM_MAYSHARE, vma); @@ -1201,7 +1201,7 @@ static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map) set_vma_private_data(vma, (unsigned long)map); } -static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long flags) +static void set_vma_resv_flags(struct mm_area *vma, unsigned long flags) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); VM_BUG_ON_VMA(vma->vm_flags & VM_MAYSHARE, vma); @@ -1209,21 +1209,21 @@ static void set_vma_resv_flags(struct vm_area_struct *vma, unsigned long flags) set_vma_private_data(vma, get_vma_private_data(vma) | flags); } -static int is_vma_resv_set(struct vm_area_struct *vma, unsigned long flag) +static int is_vma_resv_set(struct mm_area *vma, unsigned long flag) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); return (get_vma_private_data(vma) & flag) != 0; } -bool __vma_private_lock(struct vm_area_struct *vma) +bool __vma_private_lock(struct mm_area *vma) { return !(vma->vm_flags & VM_MAYSHARE) && get_vma_private_data(vma) & ~HPAGE_RESV_MASK && is_vma_resv_set(vma, HPAGE_RESV_OWNER); } -void hugetlb_dup_vma_private(struct vm_area_struct *vma) +void hugetlb_dup_vma_private(struct mm_area *vma) { VM_BUG_ON_VMA(!is_vm_hugetlb_page(vma), vma); /* @@ -1254,7 +1254,7 @@ void hugetlb_dup_vma_private(struct vm_area_struct *vma) * same sized vma. It should never come here with last ref on the * reservation. */ -void clear_vma_resv_huge_pages(struct vm_area_struct *vma) +void clear_vma_resv_huge_pages(struct mm_area *vma) { /* * Clear the old hugetlb private page reservation. @@ -1365,7 +1365,7 @@ static unsigned long available_huge_pages(struct hstate *h) } static struct folio *dequeue_hugetlb_folio_vma(struct hstate *h, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long address, long gbl_chg) { struct folio *folio = NULL; @@ -2324,7 +2324,7 @@ static struct folio *alloc_migrate_hugetlb_folio(struct hstate *h, gfp_t gfp_mas */ static struct folio *alloc_buddy_hugetlb_folio_with_mpol(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { struct folio *folio = NULL; struct mempolicy *mpol; @@ -2606,7 +2606,7 @@ enum vma_resv_mode { VMA_DEL_RESV, }; static long __vma_reservation_common(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, enum vma_resv_mode mode) { struct resv_map *resv; @@ -2686,31 +2686,31 @@ static long __vma_reservation_common(struct hstate *h, } static long vma_needs_reservation(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return __vma_reservation_common(h, vma, addr, VMA_NEEDS_RESV); } static long vma_commit_reservation(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return __vma_reservation_common(h, vma, addr, VMA_COMMIT_RESV); } static void vma_end_reservation(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { (void)__vma_reservation_common(h, vma, addr, VMA_END_RESV); } static long vma_add_reservation(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return __vma_reservation_common(h, vma, addr, VMA_ADD_RESV); } static long vma_del_reservation(struct hstate *h, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return __vma_reservation_common(h, vma, addr, VMA_DEL_RESV); } @@ -2735,7 +2735,7 @@ static long vma_del_reservation(struct hstate *h, * * In case 2, simply undo reserve map modifications done by alloc_hugetlb_folio. */ -void restore_reserve_on_error(struct hstate *h, struct vm_area_struct *vma, +void restore_reserve_on_error(struct hstate *h, struct mm_area *vma, unsigned long address, struct folio *folio) { long rc = vma_needs_reservation(h, vma, address); @@ -3004,7 +3004,7 @@ typedef enum { * allocation). New call sites should (probably) never set it to true!! * When it's set, the allocation will bypass all vma level reservations. */ -struct folio *alloc_hugetlb_folio(struct vm_area_struct *vma, +struct folio *alloc_hugetlb_folio(struct mm_area *vma, unsigned long addr, bool cow_from_owner) { struct hugepage_subpool *spool = subpool_vma(vma); @@ -5314,7 +5314,7 @@ static int hugetlb_acct_memory(struct hstate *h, long delta) return ret; } -static void hugetlb_vm_op_open(struct vm_area_struct *vma) +static void hugetlb_vm_op_open(struct mm_area *vma) { struct resv_map *resv = vma_resv_map(vma); @@ -5352,7 +5352,7 @@ static void hugetlb_vm_op_open(struct vm_area_struct *vma) } } -static void hugetlb_vm_op_close(struct vm_area_struct *vma) +static void hugetlb_vm_op_close(struct mm_area *vma) { struct hstate *h = hstate_vma(vma); struct resv_map *resv; @@ -5383,7 +5383,7 @@ static void hugetlb_vm_op_close(struct vm_area_struct *vma) kref_put(&resv->refs, resv_map_release); } -static int hugetlb_vm_op_split(struct vm_area_struct *vma, unsigned long addr) +static int hugetlb_vm_op_split(struct mm_area *vma, unsigned long addr) { if (addr & ~(huge_page_mask(hstate_vma(vma)))) return -EINVAL; @@ -5409,7 +5409,7 @@ static int hugetlb_vm_op_split(struct vm_area_struct *vma, unsigned long addr) return 0; } -static unsigned long hugetlb_vm_op_pagesize(struct vm_area_struct *vma) +static unsigned long hugetlb_vm_op_pagesize(struct mm_area *vma) { return huge_page_size(hstate_vma(vma)); } @@ -5441,7 +5441,7 @@ const struct vm_operations_struct hugetlb_vm_ops = { .pagesize = hugetlb_vm_op_pagesize, }; -static pte_t make_huge_pte(struct vm_area_struct *vma, struct page *page, +static pte_t make_huge_pte(struct mm_area *vma, struct page *page, bool try_mkwrite) { pte_t entry; @@ -5460,7 +5460,7 @@ static pte_t make_huge_pte(struct vm_area_struct *vma, struct page *page, return entry; } -static void set_huge_ptep_writable(struct vm_area_struct *vma, +static void set_huge_ptep_writable(struct mm_area *vma, unsigned long address, pte_t *ptep) { pte_t entry; @@ -5470,7 +5470,7 @@ static void set_huge_ptep_writable(struct vm_area_struct *vma, update_mmu_cache(vma, address, ptep); } -static void set_huge_ptep_maybe_writable(struct vm_area_struct *vma, +static void set_huge_ptep_maybe_writable(struct mm_area *vma, unsigned long address, pte_t *ptep) { if (vma->vm_flags & VM_WRITE) @@ -5504,7 +5504,7 @@ bool is_hugetlb_entry_hwpoisoned(pte_t pte) } static void -hugetlb_install_folio(struct vm_area_struct *vma, pte_t *ptep, unsigned long addr, +hugetlb_install_folio(struct mm_area *vma, pte_t *ptep, unsigned long addr, struct folio *new_folio, pte_t old, unsigned long sz) { pte_t newpte = make_huge_pte(vma, &new_folio->page, true); @@ -5519,8 +5519,8 @@ hugetlb_install_folio(struct vm_area_struct *vma, pte_t *ptep, unsigned long add } int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) + struct mm_area *dst_vma, + struct mm_area *src_vma) { pte_t *src_pte, *dst_pte, entry; struct folio *pte_folio; @@ -5706,7 +5706,7 @@ int copy_hugetlb_page_range(struct mm_struct *dst, struct mm_struct *src, return ret; } -static void move_huge_pte(struct vm_area_struct *vma, unsigned long old_addr, +static void move_huge_pte(struct mm_area *vma, unsigned long old_addr, unsigned long new_addr, pte_t *src_pte, pte_t *dst_pte, unsigned long sz) { @@ -5745,8 +5745,8 @@ static void move_huge_pte(struct vm_area_struct *vma, unsigned long old_addr, spin_unlock(dst_ptl); } -int move_hugetlb_page_tables(struct vm_area_struct *vma, - struct vm_area_struct *new_vma, +int move_hugetlb_page_tables(struct mm_area *vma, + struct mm_area *new_vma, unsigned long old_addr, unsigned long new_addr, unsigned long len) { @@ -5809,7 +5809,7 @@ int move_hugetlb_page_tables(struct vm_area_struct *vma, return len + old_addr - old_end; } -void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, +void __unmap_hugepage_range(struct mmu_gather *tlb, struct mm_area *vma, unsigned long start, unsigned long end, struct page *ref_page, zap_flags_t zap_flags) { @@ -5977,7 +5977,7 @@ void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, tlb_flush_mmu_tlbonly(tlb); } -void __hugetlb_zap_begin(struct vm_area_struct *vma, +void __hugetlb_zap_begin(struct mm_area *vma, unsigned long *start, unsigned long *end) { if (!vma->vm_file) /* hugetlbfs_file_mmap error */ @@ -5989,7 +5989,7 @@ void __hugetlb_zap_begin(struct vm_area_struct *vma, i_mmap_lock_write(vma->vm_file->f_mapping); } -void __hugetlb_zap_end(struct vm_area_struct *vma, +void __hugetlb_zap_end(struct mm_area *vma, struct zap_details *details) { zap_flags_t zap_flags = details ? details->zap_flags : 0; @@ -6016,7 +6016,7 @@ void __hugetlb_zap_end(struct vm_area_struct *vma, i_mmap_unlock_write(vma->vm_file->f_mapping); } -void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, +void unmap_hugepage_range(struct mm_area *vma, unsigned long start, unsigned long end, struct page *ref_page, zap_flags_t zap_flags) { @@ -6041,11 +6041,11 @@ void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, * from other VMAs and let the children be SIGKILLed if they are faulting the * same region. */ -static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, +static void unmap_ref_private(struct mm_struct *mm, struct mm_area *vma, struct page *page, unsigned long address) { struct hstate *h = hstate_vma(vma); - struct vm_area_struct *iter_vma; + struct mm_area *iter_vma; struct address_space *mapping; pgoff_t pgoff; @@ -6100,7 +6100,7 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma, static vm_fault_t hugetlb_wp(struct folio *pagecache_folio, struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *mm = vma->vm_mm; const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; pte_t pte = huge_ptep_get(mm, vmf->address, vmf->pte); @@ -6294,7 +6294,7 @@ static vm_fault_t hugetlb_wp(struct folio *pagecache_folio, * Return whether there is a pagecache page to back given address within VMA. */ bool hugetlbfs_pagecache_present(struct hstate *h, - struct vm_area_struct *vma, unsigned long address) + struct mm_area *vma, unsigned long address) { struct address_space *mapping = vma->vm_file->f_mapping; pgoff_t idx = linear_page_index(vma, address); @@ -6373,7 +6373,7 @@ static bool hugetlb_pte_stable(struct hstate *h, struct mm_struct *mm, unsigned static vm_fault_t hugetlb_no_page(struct address_space *mapping, struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *mm = vma->vm_mm; struct hstate *h = hstate_vma(vma); vm_fault_t ret = VM_FAULT_SIGBUS; @@ -6611,7 +6611,7 @@ u32 hugetlb_fault_mutex_hash(struct address_space *mapping, pgoff_t idx) } #endif -vm_fault_t hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, +vm_fault_t hugetlb_fault(struct mm_struct *mm, struct mm_area *vma, unsigned long address, unsigned int flags) { vm_fault_t ret; @@ -6824,7 +6824,7 @@ vm_fault_t hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma, * Can probably be eliminated, but still used by hugetlb_mfill_atomic_pte(). */ static struct folio *alloc_hugetlb_folio_vma(struct hstate *h, - struct vm_area_struct *vma, unsigned long address) + struct mm_area *vma, unsigned long address) { struct mempolicy *mpol; nodemask_t *nodemask; @@ -6851,7 +6851,7 @@ static struct folio *alloc_hugetlb_folio_vma(struct hstate *h, * with modifications for hugetlb pages. */ int hugetlb_mfill_atomic_pte(pte_t *dst_pte, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, @@ -7063,7 +7063,7 @@ int hugetlb_mfill_atomic_pte(pte_t *dst_pte, } #endif /* CONFIG_USERFAULTFD */ -long hugetlb_change_protection(struct vm_area_struct *vma, +long hugetlb_change_protection(struct mm_area *vma, unsigned long address, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { @@ -7213,7 +7213,7 @@ long hugetlb_change_protection(struct vm_area_struct *vma, /* Return true if reservation was successful, false otherwise. */ bool hugetlb_reserve_pages(struct inode *inode, long from, long to, - struct vm_area_struct *vma, + struct mm_area *vma, vm_flags_t vm_flags) { long chg = -1, add = -1; @@ -7413,8 +7413,8 @@ long hugetlb_unreserve_pages(struct inode *inode, long start, long end, } #ifdef CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING -static unsigned long page_table_shareable(struct vm_area_struct *svma, - struct vm_area_struct *vma, +static unsigned long page_table_shareable(struct mm_area *svma, + struct mm_area *vma, unsigned long addr, pgoff_t idx) { unsigned long saddr = ((idx - svma->vm_pgoff) << PAGE_SHIFT) + @@ -7441,7 +7441,7 @@ static unsigned long page_table_shareable(struct vm_area_struct *svma, return saddr; } -bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr) +bool want_pmd_share(struct mm_area *vma, unsigned long addr) { unsigned long start = addr & PUD_MASK; unsigned long end = start + PUD_SIZE; @@ -7467,7 +7467,7 @@ bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr) * If yes, adjust start and end to cover range associated with possible * shared pmd mappings. */ -void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma, +void adjust_range_if_pmd_sharing_possible(struct mm_area *vma, unsigned long *start, unsigned long *end) { unsigned long v_start = ALIGN(vma->vm_start, PUD_SIZE), @@ -7498,13 +7498,13 @@ void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma, * racing tasks could either miss the sharing (see huge_pte_offset) or select a * bad pmd for sharing. */ -pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pmd_share(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pud_t *pud) { struct address_space *mapping = vma->vm_file->f_mapping; pgoff_t idx = ((addr - vma->vm_start) >> PAGE_SHIFT) + vma->vm_pgoff; - struct vm_area_struct *svma; + struct mm_area *svma; unsigned long saddr; pte_t *spte = NULL; pte_t *pte; @@ -7551,7 +7551,7 @@ pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, * returns: 1 successfully unmapped a shared pte page * 0 the underlying pte page is not shared, or it is the last user */ -int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma, +int huge_pmd_unshare(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t *ptep) { unsigned long sz = huge_page_size(hstate_vma(vma)); @@ -7574,31 +7574,31 @@ int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma, #else /* !CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */ -pte_t *huge_pmd_share(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pmd_share(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pud_t *pud) { return NULL; } -int huge_pmd_unshare(struct mm_struct *mm, struct vm_area_struct *vma, +int huge_pmd_unshare(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, pte_t *ptep) { return 0; } -void adjust_range_if_pmd_sharing_possible(struct vm_area_struct *vma, +void adjust_range_if_pmd_sharing_possible(struct mm_area *vma, unsigned long *start, unsigned long *end) { } -bool want_pmd_share(struct vm_area_struct *vma, unsigned long addr) +bool want_pmd_share(struct mm_area *vma, unsigned long addr) { return false; } #endif /* CONFIG_HUGETLB_PMD_PAGE_TABLE_SHARING */ #ifdef CONFIG_ARCH_WANT_GENERAL_HUGETLB -pte_t *huge_pte_alloc(struct mm_struct *mm, struct vm_area_struct *vma, +pte_t *huge_pte_alloc(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, unsigned long sz) { pgd_t *pgd; @@ -7837,7 +7837,7 @@ void move_hugetlb_state(struct folio *old_folio, struct folio *new_folio, int re spin_unlock_irq(&hugetlb_lock); } -static void hugetlb_unshare_pmds(struct vm_area_struct *vma, +static void hugetlb_unshare_pmds(struct mm_area *vma, unsigned long start, unsigned long end) { @@ -7887,7 +7887,7 @@ static void hugetlb_unshare_pmds(struct vm_area_struct *vma, * This function will unconditionally remove all the shared pmd pgtable entries * within the specific vma for a hugetlbfs memory range. */ -void hugetlb_unshare_all_pmds(struct vm_area_struct *vma) +void hugetlb_unshare_all_pmds(struct mm_area *vma) { hugetlb_unshare_pmds(vma, ALIGN(vma->vm_start, PUD_SIZE), ALIGN_DOWN(vma->vm_end, PUD_SIZE)); diff --git a/mm/internal.h b/mm/internal.h index 50c2f590b2d0..b2d2c52dfbd9 100644 --- a/mm/internal.h +++ b/mm/internal.h @@ -44,8 +44,8 @@ struct folio_batch; * represents the length of the range being copied as specified by the user. */ struct pagetable_move_control { - struct vm_area_struct *old; /* Source VMA. */ - struct vm_area_struct *new; /* Destination VMA. */ + struct mm_area *old; /* Source VMA. */ + struct mm_area *new; /* Destination VMA. */ unsigned long old_addr; /* Address from which the move begins. */ unsigned long old_end; /* Exclusive address at which old range ends. */ unsigned long new_addr; /* Address to move page tables to. */ @@ -162,7 +162,7 @@ static inline void *folio_raw_mapping(const struct folio *folio) * * Returns: 0 if success, error otherwise. */ -static inline int mmap_file(struct file *file, struct vm_area_struct *vma) +static inline int mmap_file(struct file *file, struct mm_area *vma) { int err = call_mmap(file, vma); @@ -184,7 +184,7 @@ static inline int mmap_file(struct file *file, struct vm_area_struct *vma) * it in an inconsistent state which makes the use of any hooks suspect, clear * them down by installing dummy empty hooks. */ -static inline void vma_close(struct vm_area_struct *vma) +static inline void vma_close(struct mm_area *vma) { if (vma->vm_ops && vma->vm_ops->close) { vma->vm_ops->close(vma); @@ -426,13 +426,13 @@ void deactivate_file_folio(struct folio *folio); void folio_activate(struct folio *folio); void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *start_vma, unsigned long floor, + struct mm_area *start_vma, unsigned long floor, unsigned long ceiling, bool mm_wr_locked); void pmd_install(struct mm_struct *mm, pmd_t *pmd, pgtable_t *pte); struct zap_details; void unmap_page_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long end, struct zap_details *details); int folio_unmap_invalidate(struct address_space *mapping, struct folio *folio, @@ -927,7 +927,7 @@ struct anon_vma *folio_anon_vma(const struct folio *folio); #ifdef CONFIG_MMU void unmap_mapping_folio(struct folio *folio); -extern long populate_vma_page_range(struct vm_area_struct *vma, +extern long populate_vma_page_range(struct mm_area *vma, unsigned long start, unsigned long end, int *locked); extern long faultin_page_range(struct mm_struct *mm, unsigned long start, unsigned long end, bool write, int *locked); @@ -950,7 +950,7 @@ extern bool mlock_future_ok(struct mm_struct *mm, unsigned long flags, * the page table to know whether the folio is fully mapped to the range. */ static inline bool -folio_within_range(struct folio *folio, struct vm_area_struct *vma, +folio_within_range(struct folio *folio, struct mm_area *vma, unsigned long start, unsigned long end) { pgoff_t pgoff, addr; @@ -978,7 +978,7 @@ folio_within_range(struct folio *folio, struct vm_area_struct *vma, } static inline bool -folio_within_vma(struct folio *folio, struct vm_area_struct *vma) +folio_within_vma(struct folio *folio, struct mm_area *vma) { return folio_within_range(folio, vma, vma->vm_start, vma->vm_end); } @@ -994,7 +994,7 @@ folio_within_vma(struct folio *folio, struct vm_area_struct *vma) */ void mlock_folio(struct folio *folio); static inline void mlock_vma_folio(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { /* * The VM_SPECIAL check here serves two purposes. @@ -1010,7 +1010,7 @@ static inline void mlock_vma_folio(struct folio *folio, void munlock_folio(struct folio *folio); static inline void munlock_vma_folio(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { /* * munlock if the function is called. Ideally, we should only @@ -1030,7 +1030,7 @@ bool need_mlock_drain(int cpu); void mlock_drain_local(void); void mlock_drain_remote(int cpu); -extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma); +extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct mm_area *vma); /** * vma_address - Find the virtual address a page range is mapped at @@ -1041,7 +1041,7 @@ extern pmd_t maybe_pmd_mkwrite(pmd_t pmd, struct vm_area_struct *vma); * If any page in this range is mapped by this VMA, return the first address * where any of these pages appear. Otherwise, return -EFAULT. */ -static inline unsigned long vma_address(const struct vm_area_struct *vma, +static inline unsigned long vma_address(const struct mm_area *vma, pgoff_t pgoff, unsigned long nr_pages) { unsigned long address; @@ -1067,7 +1067,7 @@ static inline unsigned long vma_address(const struct vm_area_struct *vma, */ static inline unsigned long vma_address_end(struct page_vma_mapped_walk *pvmw) { - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; pgoff_t pgoff; unsigned long address; @@ -1210,10 +1210,10 @@ bool take_page_off_buddy(struct page *page); bool put_page_back_buddy(struct page *page); struct task_struct *task_early_kill(struct task_struct *tsk, int force_early); void add_to_kill_ksm(struct task_struct *tsk, const struct page *p, - struct vm_area_struct *vma, struct list_head *to_kill, + struct mm_area *vma, struct list_head *to_kill, unsigned long ksm_addr); unsigned long page_mapped_in_vma(const struct page *page, - struct vm_area_struct *vma); + struct mm_area *vma); #else static inline int unmap_poisoned_folio(struct folio *folio, unsigned long pfn, bool must_kill) @@ -1373,9 +1373,9 @@ int __must_check try_grab_folio(struct folio *folio, int refs, /* * mm/huge_memory.c */ -void touch_pud(struct vm_area_struct *vma, unsigned long addr, +void touch_pud(struct mm_area *vma, unsigned long addr, pud_t *pud, bool write); -void touch_pmd(struct vm_area_struct *vma, unsigned long addr, +void touch_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmd, bool write); /* @@ -1441,7 +1441,7 @@ enum { * If the vma is NULL, we're coming from the GUP-fast path and might have * to fallback to the slow path just to lookup the vma. */ -static inline bool gup_must_unshare(struct vm_area_struct *vma, +static inline bool gup_must_unshare(struct mm_area *vma, unsigned int flags, struct page *page) { /* @@ -1490,7 +1490,7 @@ extern bool mirrored_kernelcore; bool memblock_has_mirror(void); void memblock_free_all(void); -static __always_inline void vma_set_range(struct vm_area_struct *vma, +static __always_inline void vma_set_range(struct mm_area *vma, unsigned long start, unsigned long end, pgoff_t pgoff) { @@ -1499,7 +1499,7 @@ static __always_inline void vma_set_range(struct vm_area_struct *vma, vma->vm_pgoff = pgoff; } -static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma) +static inline bool vma_soft_dirty_enabled(struct mm_area *vma) { /* * NOTE: we must check this before VM_SOFTDIRTY on soft-dirty @@ -1517,12 +1517,12 @@ static inline bool vma_soft_dirty_enabled(struct vm_area_struct *vma) return !(vma->vm_flags & VM_SOFTDIRTY); } -static inline bool pmd_needs_soft_dirty_wp(struct vm_area_struct *vma, pmd_t pmd) +static inline bool pmd_needs_soft_dirty_wp(struct mm_area *vma, pmd_t pmd) { return vma_soft_dirty_enabled(vma) && !pmd_soft_dirty(pmd); } -static inline bool pte_needs_soft_dirty_wp(struct vm_area_struct *vma, pte_t pte) +static inline bool pte_needs_soft_dirty_wp(struct mm_area *vma, pte_t pte) { return vma_soft_dirty_enabled(vma) && !pte_soft_dirty(pte); } diff --git a/mm/interval_tree.c b/mm/interval_tree.c index 32e390c42c53..864e9d3c733a 100644 --- a/mm/interval_tree.c +++ b/mm/interval_tree.c @@ -10,27 +10,27 @@ #include #include -static inline unsigned long vma_start_pgoff(struct vm_area_struct *v) +static inline unsigned long vma_start_pgoff(struct mm_area *v) { return v->vm_pgoff; } -static inline unsigned long vma_last_pgoff(struct vm_area_struct *v) +static inline unsigned long vma_last_pgoff(struct mm_area *v) { return v->vm_pgoff + vma_pages(v) - 1; } -INTERVAL_TREE_DEFINE(struct vm_area_struct, shared.rb, +INTERVAL_TREE_DEFINE(struct mm_area, shared.rb, unsigned long, shared.rb_subtree_last, vma_start_pgoff, vma_last_pgoff, /* empty */, vma_interval_tree) /* Insert node immediately after prev in the interval tree */ -void vma_interval_tree_insert_after(struct vm_area_struct *node, - struct vm_area_struct *prev, +void vma_interval_tree_insert_after(struct mm_area *node, + struct mm_area *prev, struct rb_root_cached *root) { struct rb_node **link; - struct vm_area_struct *parent; + struct mm_area *parent; unsigned long last = vma_last_pgoff(node); VM_BUG_ON_VMA(vma_start_pgoff(node) != vma_start_pgoff(prev), node); @@ -40,12 +40,12 @@ void vma_interval_tree_insert_after(struct vm_area_struct *node, link = &prev->shared.rb.rb_right; } else { parent = rb_entry(prev->shared.rb.rb_right, - struct vm_area_struct, shared.rb); + struct mm_area, shared.rb); if (parent->shared.rb_subtree_last < last) parent->shared.rb_subtree_last = last; while (parent->shared.rb.rb_left) { parent = rb_entry(parent->shared.rb.rb_left, - struct vm_area_struct, shared.rb); + struct mm_area, shared.rb); if (parent->shared.rb_subtree_last < last) parent->shared.rb_subtree_last = last; } diff --git a/mm/io-mapping.c b/mm/io-mapping.c index 01b362799930..588ecb8ea446 100644 --- a/mm/io-mapping.c +++ b/mm/io-mapping.c @@ -13,7 +13,7 @@ * * Note: this is only safe if the mm semaphore is held when called. */ -int io_mapping_map_user(struct io_mapping *iomap, struct vm_area_struct *vma, +int io_mapping_map_user(struct io_mapping *iomap, struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size) { vm_flags_t expected_flags = VM_PFNMAP | VM_DONTEXPAND | VM_DONTDUMP; diff --git a/mm/khugepaged.c b/mm/khugepaged.c index cc945c6ab3bd..e135208612f1 100644 --- a/mm/khugepaged.c +++ b/mm/khugepaged.c @@ -346,7 +346,7 @@ struct attribute_group khugepaged_attr_group = { }; #endif /* CONFIG_SYSFS */ -int hugepage_madvise(struct vm_area_struct *vma, +int hugepage_madvise(struct mm_area *vma, unsigned long *vm_flags, int advice) { switch (advice) { @@ -469,7 +469,7 @@ void __khugepaged_enter(struct mm_struct *mm) wake_up_interruptible(&khugepaged_wait); } -void khugepaged_enter_vma(struct vm_area_struct *vma, +void khugepaged_enter_vma(struct mm_area *vma, unsigned long vm_flags) { if (!test_bit(MMF_VM_HUGEPAGE, &vma->vm_mm->flags) && @@ -561,7 +561,7 @@ static bool is_refcount_suitable(struct folio *folio) return folio_ref_count(folio) == expected_refcount; } -static int __collapse_huge_page_isolate(struct vm_area_struct *vma, +static int __collapse_huge_page_isolate(struct mm_area *vma, unsigned long address, pte_t *pte, struct collapse_control *cc, @@ -708,7 +708,7 @@ static int __collapse_huge_page_isolate(struct vm_area_struct *vma, } static void __collapse_huge_page_copy_succeeded(pte_t *pte, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long address, spinlock_t *ptl, struct list_head *compound_pagelist) @@ -763,7 +763,7 @@ static void __collapse_huge_page_copy_succeeded(pte_t *pte, static void __collapse_huge_page_copy_failed(pte_t *pte, pmd_t *pmd, pmd_t orig_pmd, - struct vm_area_struct *vma, + struct mm_area *vma, struct list_head *compound_pagelist) { spinlock_t *pmd_ptl; @@ -800,7 +800,7 @@ static void __collapse_huge_page_copy_failed(pte_t *pte, * @compound_pagelist: list that stores compound pages */ static int __collapse_huge_page_copy(pte_t *pte, struct folio *folio, - pmd_t *pmd, pmd_t orig_pmd, struct vm_area_struct *vma, + pmd_t *pmd, pmd_t orig_pmd, struct mm_area *vma, unsigned long address, spinlock_t *ptl, struct list_head *compound_pagelist) { @@ -919,10 +919,10 @@ static int hpage_collapse_find_target_node(struct collapse_control *cc) static int hugepage_vma_revalidate(struct mm_struct *mm, unsigned long address, bool expect_anon, - struct vm_area_struct **vmap, + struct mm_area **vmap, struct collapse_control *cc) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long tva_flags = cc->is_khugepaged ? TVA_ENFORCE_SYSFS : 0; if (unlikely(hpage_collapse_test_exit_or_disable(mm))) @@ -998,7 +998,7 @@ static int check_pmd_still_valid(struct mm_struct *mm, * Returns result: if not SCAN_SUCCEED, mmap_lock has been released. */ static int __collapse_huge_page_swapin(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long haddr, pmd_t *pmd, int referenced) { @@ -1112,7 +1112,7 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, struct folio *folio; spinlock_t *pmd_ptl, *pte_ptl; int result = SCAN_FAIL; - struct vm_area_struct *vma; + struct mm_area *vma; struct mmu_notifier_range range; VM_BUG_ON(address & ~HPAGE_PMD_MASK); @@ -1265,7 +1265,7 @@ static int collapse_huge_page(struct mm_struct *mm, unsigned long address, } static int hpage_collapse_scan_pmd(struct mm_struct *mm, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long address, bool *mmap_locked, struct collapse_control *cc) { @@ -1466,7 +1466,7 @@ static void collect_mm_slot(struct khugepaged_mm_slot *mm_slot) #ifdef CONFIG_SHMEM /* hpage must be locked, and mmap_lock must be held */ -static int set_huge_pmd(struct vm_area_struct *vma, unsigned long addr, +static int set_huge_pmd(struct mm_area *vma, unsigned long addr, pmd_t *pmdp, struct page *hpage) { struct vm_fault vmf = { @@ -1504,7 +1504,7 @@ int collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr, struct mmu_notifier_range range; bool notified = false; unsigned long haddr = addr & HPAGE_PMD_MASK; - struct vm_area_struct *vma = vma_lookup(mm, haddr); + struct mm_area *vma = vma_lookup(mm, haddr); struct folio *folio; pte_t *start_pte, *pte; pmd_t *pmd, pgt_pmd; @@ -1713,7 +1713,7 @@ int collapse_pte_mapped_thp(struct mm_struct *mm, unsigned long addr, static void retract_page_tables(struct address_space *mapping, pgoff_t pgoff) { - struct vm_area_struct *vma; + struct mm_area *vma; i_mmap_lock_read(mapping); vma_interval_tree_foreach(vma, &mapping->i_mmap, pgoff, pgoff) { @@ -2114,7 +2114,7 @@ static int collapse_file(struct mm_struct *mm, unsigned long addr, } if (nr_none) { - struct vm_area_struct *vma; + struct mm_area *vma; int nr_none_check = 0; i_mmap_lock_read(mapping); @@ -2372,7 +2372,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages, int *result, struct khugepaged_mm_slot *mm_slot; struct mm_slot *slot; struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; int progress = 0; VM_BUG_ON(!pages); @@ -2736,7 +2736,7 @@ static int madvise_collapse_errno(enum scan_result r) } } -int madvise_collapse(struct vm_area_struct *vma, struct vm_area_struct **prev, +int madvise_collapse(struct mm_area *vma, struct mm_area **prev, unsigned long start, unsigned long end) { struct collapse_control *cc; diff --git a/mm/ksm.c b/mm/ksm.c index 8583fb91ef13..0370e8d4ab02 100644 --- a/mm/ksm.c +++ b/mm/ksm.c @@ -620,7 +620,7 @@ static inline bool ksm_test_exit(struct mm_struct *mm) * of the process that owns 'vma'. We also do not want to enforce * protection keys here anyway. */ -static int break_ksm(struct vm_area_struct *vma, unsigned long addr, bool lock_vma) +static int break_ksm(struct mm_area *vma, unsigned long addr, bool lock_vma) { vm_fault_t ret = 0; @@ -677,7 +677,7 @@ static int break_ksm(struct vm_area_struct *vma, unsigned long addr, bool lock_v return (ret & VM_FAULT_OOM) ? -ENOMEM : 0; } -static bool vma_ksm_compatible(struct vm_area_struct *vma) +static bool vma_ksm_compatible(struct mm_area *vma) { if (vma->vm_flags & (VM_SHARED | VM_MAYSHARE | VM_PFNMAP | VM_IO | VM_DONTEXPAND | VM_HUGETLB | @@ -699,10 +699,10 @@ static bool vma_ksm_compatible(struct vm_area_struct *vma) return true; } -static struct vm_area_struct *find_mergeable_vma(struct mm_struct *mm, +static struct mm_area *find_mergeable_vma(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; + struct mm_area *vma; if (ksm_test_exit(mm)) return NULL; vma = vma_lookup(mm, addr); @@ -715,7 +715,7 @@ static void break_cow(struct ksm_rmap_item *rmap_item) { struct mm_struct *mm = rmap_item->mm; unsigned long addr = rmap_item->address; - struct vm_area_struct *vma; + struct mm_area *vma; /* * It is not an accident that whenever we want to break COW @@ -734,7 +734,7 @@ static struct page *get_mergeable_page(struct ksm_rmap_item *rmap_item) { struct mm_struct *mm = rmap_item->mm; unsigned long addr = rmap_item->address; - struct vm_area_struct *vma; + struct mm_area *vma; struct page *page = NULL; struct folio_walk fw; struct folio *folio; @@ -1034,7 +1034,7 @@ static void remove_trailing_rmap_items(struct ksm_rmap_item **rmap_list) * to the next pass of ksmd - consider, for example, how ksmd might be * in cmp_and_merge_page on one of the rmap_items we would be removing. */ -static int unmerge_ksm_pages(struct vm_area_struct *vma, +static int unmerge_ksm_pages(struct mm_area *vma, unsigned long start, unsigned long end, bool lock_vma) { unsigned long addr; @@ -1167,7 +1167,7 @@ static int unmerge_and_remove_all_rmap_items(void) struct ksm_mm_slot *mm_slot; struct mm_slot *slot; struct mm_struct *mm; - struct vm_area_struct *vma; + struct mm_area *vma; int err = 0; spin_lock(&ksm_mmlist_lock); @@ -1243,7 +1243,7 @@ static u32 calc_checksum(struct page *page) return checksum; } -static int write_protect_page(struct vm_area_struct *vma, struct folio *folio, +static int write_protect_page(struct mm_area *vma, struct folio *folio, pte_t *orig_pte) { struct mm_struct *mm = vma->vm_mm; @@ -1343,7 +1343,7 @@ static int write_protect_page(struct vm_area_struct *vma, struct folio *folio, * * Returns 0 on success, -EFAULT on failure. */ -static int replace_page(struct vm_area_struct *vma, struct page *page, +static int replace_page(struct mm_area *vma, struct page *page, struct page *kpage, pte_t orig_pte) { struct folio *kfolio = page_folio(kpage); @@ -1446,7 +1446,7 @@ static int replace_page(struct vm_area_struct *vma, struct page *page, * * This function returns 0 if the pages were merged, -EFAULT otherwise. */ -static int try_to_merge_one_page(struct vm_area_struct *vma, +static int try_to_merge_one_page(struct mm_area *vma, struct page *page, struct page *kpage) { struct folio *folio = page_folio(page); @@ -1521,7 +1521,7 @@ static int try_to_merge_with_zero_page(struct ksm_rmap_item *rmap_item, * appropriate zero page if the user enabled this via sysfs. */ if (ksm_use_zero_pages && (rmap_item->oldchecksum == zero_checksum)) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(mm); vma = find_mergeable_vma(mm, rmap_item->address); @@ -1554,7 +1554,7 @@ static int try_to_merge_with_ksm_page(struct ksm_rmap_item *rmap_item, struct page *page, struct page *kpage) { struct mm_struct *mm = rmap_item->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int err = -EFAULT; mmap_read_lock(mm); @@ -2459,7 +2459,7 @@ static struct ksm_rmap_item *scan_get_next_rmap_item(struct page **page) struct mm_struct *mm; struct ksm_mm_slot *mm_slot; struct mm_slot *slot; - struct vm_area_struct *vma; + struct mm_area *vma; struct ksm_rmap_item *rmap_item; struct vma_iterator vmi; int nid; @@ -2696,7 +2696,7 @@ static int ksm_scan_thread(void *nothing) return 0; } -static void __ksm_add_vma(struct vm_area_struct *vma) +static void __ksm_add_vma(struct mm_area *vma) { unsigned long vm_flags = vma->vm_flags; @@ -2707,7 +2707,7 @@ static void __ksm_add_vma(struct vm_area_struct *vma) vm_flags_set(vma, VM_MERGEABLE); } -static int __ksm_del_vma(struct vm_area_struct *vma) +static int __ksm_del_vma(struct mm_area *vma) { int err; @@ -2728,7 +2728,7 @@ static int __ksm_del_vma(struct vm_area_struct *vma) * * @vma: Pointer to vma */ -void ksm_add_vma(struct vm_area_struct *vma) +void ksm_add_vma(struct mm_area *vma) { struct mm_struct *mm = vma->vm_mm; @@ -2738,7 +2738,7 @@ void ksm_add_vma(struct vm_area_struct *vma) static void ksm_add_vmas(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); for_each_vma(vmi, vma) @@ -2747,7 +2747,7 @@ static void ksm_add_vmas(struct mm_struct *mm) static int ksm_del_vmas(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; int err; VMA_ITERATOR(vmi, mm, 0); @@ -2826,7 +2826,7 @@ int ksm_disable(struct mm_struct *mm) return ksm_del_vmas(mm); } -int ksm_madvise(struct vm_area_struct *vma, unsigned long start, +int ksm_madvise(struct mm_area *vma, unsigned long start, unsigned long end, int advice, unsigned long *vm_flags) { struct mm_struct *mm = vma->vm_mm; @@ -2953,7 +2953,7 @@ void __ksm_exit(struct mm_struct *mm) } struct folio *ksm_might_need_to_copy(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { struct page *page = folio_page(folio, 0); struct anon_vma *anon_vma = folio_anon_vma(folio); @@ -3021,7 +3021,7 @@ void rmap_walk_ksm(struct folio *folio, struct rmap_walk_control *rwc) hlist_for_each_entry(rmap_item, &stable_node->hlist, hlist) { struct anon_vma *anon_vma = rmap_item->anon_vma; struct anon_vma_chain *vmac; - struct vm_area_struct *vma; + struct mm_area *vma; cond_resched(); if (!anon_vma_trylock_read(anon_vma)) { @@ -3079,7 +3079,7 @@ void collect_procs_ksm(const struct folio *folio, const struct page *page, { struct ksm_stable_node *stable_node; struct ksm_rmap_item *rmap_item; - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk; stable_node = folio_stable_node(folio); @@ -3277,7 +3277,7 @@ static void wait_while_offlining(void) */ bool ksm_process_mergeable(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_assert_locked(mm); VMA_ITERATOR(vmi, mm, 0); diff --git a/mm/madvise.c b/mm/madvise.c index b17f684322ad..8e401df400b1 100644 --- a/mm/madvise.c +++ b/mm/madvise.c @@ -99,7 +99,7 @@ void anon_vma_name_free(struct kref *kref) kfree(anon_name); } -struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma) +struct anon_vma_name *anon_vma_name(struct mm_area *vma) { mmap_assert_locked(vma->vm_mm); @@ -107,7 +107,7 @@ struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma) } /* mmap_lock should be write-locked */ -static int replace_anon_vma_name(struct vm_area_struct *vma, +static int replace_anon_vma_name(struct mm_area *vma, struct anon_vma_name *anon_name) { struct anon_vma_name *orig_name = anon_vma_name(vma); @@ -127,7 +127,7 @@ static int replace_anon_vma_name(struct vm_area_struct *vma, return 0; } #else /* CONFIG_ANON_VMA_NAME */ -static int replace_anon_vma_name(struct vm_area_struct *vma, +static int replace_anon_vma_name(struct mm_area *vma, struct anon_vma_name *anon_name) { if (anon_name) @@ -142,8 +142,8 @@ static int replace_anon_vma_name(struct vm_area_struct *vma, * Caller should ensure anon_name stability by raising its refcount even when * anon_name belongs to a valid vma because this function might free that vma. */ -static int madvise_update_vma(struct vm_area_struct *vma, - struct vm_area_struct **prev, unsigned long start, +static int madvise_update_vma(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, unsigned long new_flags, struct anon_vma_name *anon_name) { @@ -179,7 +179,7 @@ static int madvise_update_vma(struct vm_area_struct *vma, static int swapin_walk_pmd_entry(pmd_t *pmd, unsigned long start, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->private; + struct mm_area *vma = walk->private; struct swap_iocb *splug = NULL; pte_t *ptep = NULL; spinlock_t *ptl; @@ -225,7 +225,7 @@ static const struct mm_walk_ops swapin_walk_ops = { .walk_lock = PGWALK_RDLOCK, }; -static void shmem_swapin_range(struct vm_area_struct *vma, +static void shmem_swapin_range(struct mm_area *vma, unsigned long start, unsigned long end, struct address_space *mapping) { @@ -266,8 +266,8 @@ static void shmem_swapin_range(struct vm_area_struct *vma, /* * Schedule all required I/O operations. Do not wait for completion. */ -static long madvise_willneed(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_willneed(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end) { struct mm_struct *mm = vma->vm_mm; @@ -314,7 +314,7 @@ static long madvise_willneed(struct vm_area_struct *vma, return 0; } -static inline bool can_do_file_pageout(struct vm_area_struct *vma) +static inline bool can_do_file_pageout(struct mm_area *vma) { if (!vma->vm_file) return false; @@ -349,7 +349,7 @@ static int madvise_cold_or_pageout_pte_range(pmd_t *pmd, struct mmu_gather *tlb = private->tlb; bool pageout = private->pageout; struct mm_struct *mm = tlb->mm; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; pte_t *start_pte, *pte, ptent; spinlock_t *ptl; struct folio *folio = NULL; @@ -567,7 +567,7 @@ static const struct mm_walk_ops cold_walk_ops = { }; static void madvise_cold_page_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long end) { struct madvise_walk_private walk_private = { @@ -580,13 +580,13 @@ static void madvise_cold_page_range(struct mmu_gather *tlb, tlb_end_vma(tlb, vma); } -static inline bool can_madv_lru_vma(struct vm_area_struct *vma) +static inline bool can_madv_lru_vma(struct mm_area *vma) { return !(vma->vm_flags & (VM_LOCKED|VM_PFNMAP|VM_HUGETLB)); } -static long madvise_cold(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_cold(struct mm_area *vma, + struct mm_area **prev, unsigned long start_addr, unsigned long end_addr) { struct mm_struct *mm = vma->vm_mm; @@ -605,7 +605,7 @@ static long madvise_cold(struct vm_area_struct *vma, } static void madvise_pageout_page_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long end) { struct madvise_walk_private walk_private = { @@ -618,8 +618,8 @@ static void madvise_pageout_page_range(struct mmu_gather *tlb, tlb_end_vma(tlb, vma); } -static long madvise_pageout(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_pageout(struct mm_area *vma, + struct mm_area **prev, unsigned long start_addr, unsigned long end_addr) { struct mm_struct *mm = vma->vm_mm; @@ -654,7 +654,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr, const cydp_t cydp_flags = CYDP_CLEAR_YOUNG | CYDP_CLEAR_DIRTY; struct mmu_gather *tlb = walk->private; struct mm_struct *mm = tlb->mm; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; spinlock_t *ptl; pte_t *start_pte, *pte, ptent; struct folio *folio; @@ -794,7 +794,7 @@ static const struct mm_walk_ops madvise_free_walk_ops = { .walk_lock = PGWALK_RDLOCK, }; -static int madvise_free_single_vma(struct vm_area_struct *vma, +static int madvise_free_single_vma(struct mm_area *vma, unsigned long start_addr, unsigned long end_addr) { struct mm_struct *mm = vma->vm_mm; @@ -848,7 +848,7 @@ static int madvise_free_single_vma(struct vm_area_struct *vma, * An interface that causes the system to free clean pages and flush * dirty pages is already available as msync(MS_INVALIDATE). */ -static long madvise_dontneed_single_vma(struct vm_area_struct *vma, +static long madvise_dontneed_single_vma(struct mm_area *vma, unsigned long start, unsigned long end) { struct zap_details details = { @@ -860,7 +860,7 @@ static long madvise_dontneed_single_vma(struct vm_area_struct *vma, return 0; } -static bool madvise_dontneed_free_valid_vma(struct vm_area_struct *vma, +static bool madvise_dontneed_free_valid_vma(struct mm_area *vma, unsigned long start, unsigned long *end, int behavior) @@ -890,8 +890,8 @@ static bool madvise_dontneed_free_valid_vma(struct vm_area_struct *vma, return true; } -static long madvise_dontneed_free(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_dontneed_free(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, int behavior) { @@ -994,8 +994,8 @@ static long madvise_populate(struct mm_struct *mm, unsigned long start, * Application wants to free up the pages and associated backing store. * This is effectively punching a hole into the middle of a file. */ -static long madvise_remove(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_remove(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end) { loff_t offset; @@ -1039,7 +1039,7 @@ static long madvise_remove(struct vm_area_struct *vma, return error; } -static bool is_valid_guard_vma(struct vm_area_struct *vma, bool allow_locked) +static bool is_valid_guard_vma(struct mm_area *vma, bool allow_locked) { vm_flags_t disallowed = VM_SPECIAL | VM_HUGETLB; @@ -1115,8 +1115,8 @@ static const struct mm_walk_ops guard_install_walk_ops = { .walk_lock = PGWALK_RDLOCK, }; -static long madvise_guard_install(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_guard_install(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end) { long err; @@ -1225,8 +1225,8 @@ static const struct mm_walk_ops guard_remove_walk_ops = { .walk_lock = PGWALK_RDLOCK, }; -static long madvise_guard_remove(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static long madvise_guard_remove(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end) { *prev = vma; @@ -1246,8 +1246,8 @@ static long madvise_guard_remove(struct vm_area_struct *vma, * will handle splitting a vm area into separate areas, each area with its own * behavior. */ -static int madvise_vma_behavior(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static int madvise_vma_behavior(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, unsigned long behavior) { @@ -1488,12 +1488,12 @@ static bool process_madvise_remote_valid(int behavior) static int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long arg, - int (*visit)(struct vm_area_struct *vma, - struct vm_area_struct **prev, unsigned long start, + int (*visit)(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, unsigned long arg)) { - struct vm_area_struct *vma; - struct vm_area_struct *prev; + struct mm_area *vma; + struct mm_area *prev; unsigned long tmp; int unmapped_error = 0; @@ -1545,8 +1545,8 @@ int madvise_walk_vmas(struct mm_struct *mm, unsigned long start, } #ifdef CONFIG_ANON_VMA_NAME -static int madvise_vma_anon_name(struct vm_area_struct *vma, - struct vm_area_struct **prev, +static int madvise_vma_anon_name(struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, unsigned long anon_name) { diff --git a/mm/memory-failure.c b/mm/memory-failure.c index b91a33fb6c69..8a194e377443 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -398,7 +398,7 @@ static void shake_page(struct page *page) shake_folio(page_folio(page)); } -static unsigned long dev_pagemap_mapping_shift(struct vm_area_struct *vma, +static unsigned long dev_pagemap_mapping_shift(struct mm_area *vma, unsigned long address) { unsigned long ret = 0; @@ -446,7 +446,7 @@ static unsigned long dev_pagemap_mapping_shift(struct vm_area_struct *vma, * Uses GFP_ATOMIC allocations to avoid potential recursions in the VM. */ static void __add_to_kill(struct task_struct *tsk, const struct page *p, - struct vm_area_struct *vma, struct list_head *to_kill, + struct mm_area *vma, struct list_head *to_kill, unsigned long addr) { struct to_kill *tk; @@ -487,7 +487,7 @@ static void __add_to_kill(struct task_struct *tsk, const struct page *p, } static void add_to_kill_anon_file(struct task_struct *tsk, const struct page *p, - struct vm_area_struct *vma, struct list_head *to_kill, + struct mm_area *vma, struct list_head *to_kill, unsigned long addr) { if (addr == -EFAULT) @@ -510,7 +510,7 @@ static bool task_in_to_kill_list(struct list_head *to_kill, } void add_to_kill_ksm(struct task_struct *tsk, const struct page *p, - struct vm_area_struct *vma, struct list_head *to_kill, + struct mm_area *vma, struct list_head *to_kill, unsigned long addr) { if (!task_in_to_kill_list(to_kill, tsk)) @@ -621,7 +621,7 @@ static void collect_procs_anon(const struct folio *folio, pgoff = page_pgoff(folio, page); rcu_read_lock(); for_each_process(tsk) { - struct vm_area_struct *vma; + struct mm_area *vma; struct anon_vma_chain *vmac; struct task_struct *t = task_early_kill(tsk, force_early); unsigned long addr; @@ -648,7 +648,7 @@ static void collect_procs_file(const struct folio *folio, const struct page *page, struct list_head *to_kill, int force_early) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk; struct address_space *mapping = folio->mapping; pgoff_t pgoff; @@ -683,7 +683,7 @@ static void collect_procs_file(const struct folio *folio, #ifdef CONFIG_FS_DAX static void add_to_kill_fsdax(struct task_struct *tsk, const struct page *p, - struct vm_area_struct *vma, + struct mm_area *vma, struct list_head *to_kill, pgoff_t pgoff) { unsigned long addr = vma_address(vma, pgoff, 1); @@ -697,7 +697,7 @@ static void collect_procs_fsdax(const struct page *page, struct address_space *mapping, pgoff_t pgoff, struct list_head *to_kill, bool pre_remove) { - struct vm_area_struct *vma; + struct mm_area *vma; struct task_struct *tsk; i_mmap_lock_read(mapping); diff --git a/mm/memory.c b/mm/memory.c index 9d0ba6fe73c1..854615d98d2b 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -344,14 +344,14 @@ void free_pgd_range(struct mmu_gather *tlb, } void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long floor, + struct mm_area *vma, unsigned long floor, unsigned long ceiling, bool mm_wr_locked) { struct unlink_vma_file_batch vb; do { unsigned long addr = vma->vm_start; - struct vm_area_struct *next; + struct mm_area *next; /* * Note: USER_PGTABLES_CEILING may be passed as ceiling and may @@ -476,7 +476,7 @@ static inline void add_mm_rss_vec(struct mm_struct *mm, int *rss) * * The calling function must still handle the error. */ -static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, +static void print_bad_pte(struct mm_area *vma, unsigned long addr, pte_t pte, struct page *page) { pgd_t *pgd = pgd_offset(vma->vm_mm, addr); @@ -572,7 +572,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr, * order to support COWable mappings. * */ -struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, +struct page *vm_normal_page(struct mm_area *vma, unsigned long addr, pte_t pte) { unsigned long pfn = pte_pfn(pte); @@ -638,7 +638,7 @@ struct page *vm_normal_page(struct vm_area_struct *vma, unsigned long addr, return pfn_to_page(pfn); } -struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr, +struct folio *vm_normal_folio(struct mm_area *vma, unsigned long addr, pte_t pte) { struct page *page = vm_normal_page(vma, addr, pte); @@ -649,7 +649,7 @@ struct folio *vm_normal_folio(struct vm_area_struct *vma, unsigned long addr, } #ifdef CONFIG_PGTABLE_HAS_HUGE_LEAVES -struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, +struct page *vm_normal_page_pmd(struct mm_area *vma, unsigned long addr, pmd_t pmd) { unsigned long pfn = pmd_pfn(pmd); @@ -688,7 +688,7 @@ struct page *vm_normal_page_pmd(struct vm_area_struct *vma, unsigned long addr, return pfn_to_page(pfn); } -struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma, +struct folio *vm_normal_folio_pmd(struct mm_area *vma, unsigned long addr, pmd_t pmd) { struct page *page = vm_normal_page_pmd(vma, addr, pmd); @@ -725,7 +725,7 @@ struct folio *vm_normal_folio_pmd(struct vm_area_struct *vma, * page table modifications (e.g., MADV_DONTNEED, mprotect), so device drivers * must use MMU notifiers to sync against any concurrent changes. */ -static void restore_exclusive_pte(struct vm_area_struct *vma, +static void restore_exclusive_pte(struct mm_area *vma, struct folio *folio, struct page *page, unsigned long address, pte_t *ptep, pte_t orig_pte) { @@ -759,7 +759,7 @@ static void restore_exclusive_pte(struct vm_area_struct *vma, * Tries to restore an exclusive pte if the page lock can be acquired without * sleeping. */ -static int try_restore_exclusive_pte(struct vm_area_struct *vma, +static int try_restore_exclusive_pte(struct mm_area *vma, unsigned long addr, pte_t *ptep, pte_t orig_pte) { struct page *page = pfn_swap_entry_to_page(pte_to_swp_entry(orig_pte)); @@ -782,8 +782,8 @@ static int try_restore_exclusive_pte(struct vm_area_struct *vma, static unsigned long copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, - pte_t *dst_pte, pte_t *src_pte, struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, unsigned long addr, int *rss) + pte_t *dst_pte, pte_t *src_pte, struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long addr, int *rss) { unsigned long vm_flags = dst_vma->vm_flags; pte_t orig_pte = ptep_get(src_pte); @@ -903,7 +903,7 @@ copy_nonpresent_pte(struct mm_struct *dst_mm, struct mm_struct *src_mm, * lock. */ static inline int -copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_present_page(struct mm_area *dst_vma, struct mm_area *src_vma, pte_t *dst_pte, pte_t *src_pte, unsigned long addr, int *rss, struct folio **prealloc, struct page *page) { @@ -938,8 +938,8 @@ copy_present_page(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma return 0; } -static __always_inline void __copy_present_ptes(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, pte_t *dst_pte, pte_t *src_pte, +static __always_inline void __copy_present_ptes(struct mm_area *dst_vma, + struct mm_area *src_vma, pte_t *dst_pte, pte_t *src_pte, pte_t pte, unsigned long addr, int nr) { struct mm_struct *src_mm = src_vma->vm_mm; @@ -969,7 +969,7 @@ static __always_inline void __copy_present_ptes(struct vm_area_struct *dst_vma, * Otherwise, returns the number of copied PTEs (at least 1). */ static inline int -copy_present_ptes(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_present_ptes(struct mm_area *dst_vma, struct mm_area *src_vma, pte_t *dst_pte, pte_t *src_pte, pte_t pte, unsigned long addr, int max_nr, int *rss, struct folio **prealloc) { @@ -1046,7 +1046,7 @@ copy_present_ptes(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma } static inline struct folio *folio_prealloc(struct mm_struct *src_mm, - struct vm_area_struct *vma, unsigned long addr, bool need_zero) + struct mm_area *vma, unsigned long addr, bool need_zero) { struct folio *new_folio; @@ -1068,7 +1068,7 @@ static inline struct folio *folio_prealloc(struct mm_struct *src_mm, } static int -copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_pte_range(struct mm_area *dst_vma, struct mm_area *src_vma, pmd_t *dst_pmd, pmd_t *src_pmd, unsigned long addr, unsigned long end) { @@ -1223,7 +1223,7 @@ copy_pte_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, } static inline int -copy_pmd_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_pmd_range(struct mm_area *dst_vma, struct mm_area *src_vma, pud_t *dst_pud, pud_t *src_pud, unsigned long addr, unsigned long end) { @@ -1260,7 +1260,7 @@ copy_pmd_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, } static inline int -copy_pud_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_pud_range(struct mm_area *dst_vma, struct mm_area *src_vma, p4d_t *dst_p4d, p4d_t *src_p4d, unsigned long addr, unsigned long end) { @@ -1297,7 +1297,7 @@ copy_pud_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, } static inline int -copy_p4d_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, +copy_p4d_range(struct mm_area *dst_vma, struct mm_area *src_vma, pgd_t *dst_pgd, pgd_t *src_pgd, unsigned long addr, unsigned long end) { @@ -1326,7 +1326,7 @@ copy_p4d_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma, * when the child accesses the memory range. */ static bool -vma_needs_copy(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) +vma_needs_copy(struct mm_area *dst_vma, struct mm_area *src_vma) { /* * Always copy pgtables when dst_vma has uffd-wp enabled even if it's @@ -1353,7 +1353,7 @@ vma_needs_copy(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) } int -copy_page_range(struct vm_area_struct *dst_vma, struct vm_area_struct *src_vma) +copy_page_range(struct mm_area *dst_vma, struct mm_area *src_vma) { pgd_t *src_pgd, *dst_pgd; unsigned long addr = src_vma->vm_start; @@ -1461,7 +1461,7 @@ static inline bool zap_drop_markers(struct zap_details *details) * Returns true if uffd-wp ptes was installed, false otherwise. */ static inline bool -zap_install_uffd_wp_if_needed(struct vm_area_struct *vma, +zap_install_uffd_wp_if_needed(struct mm_area *vma, unsigned long addr, pte_t *pte, int nr, struct zap_details *details, pte_t pteval) { @@ -1489,7 +1489,7 @@ zap_install_uffd_wp_if_needed(struct vm_area_struct *vma, } static __always_inline void zap_present_folio_ptes(struct mmu_gather *tlb, - struct vm_area_struct *vma, struct folio *folio, + struct mm_area *vma, struct folio *folio, struct page *page, pte_t *pte, pte_t ptent, unsigned int nr, unsigned long addr, struct zap_details *details, int *rss, bool *force_flush, bool *force_break, bool *any_skipped) @@ -1540,7 +1540,7 @@ static __always_inline void zap_present_folio_ptes(struct mmu_gather *tlb, * Returns the number of processed (skipped or zapped) PTEs (at least 1). */ static inline int zap_present_ptes(struct mmu_gather *tlb, - struct vm_area_struct *vma, pte_t *pte, pte_t ptent, + struct mm_area *vma, pte_t *pte, pte_t ptent, unsigned int max_nr, unsigned long addr, struct zap_details *details, int *rss, bool *force_flush, bool *force_break, bool *any_skipped) @@ -1589,7 +1589,7 @@ static inline int zap_present_ptes(struct mmu_gather *tlb, } static inline int zap_nonpresent_ptes(struct mmu_gather *tlb, - struct vm_area_struct *vma, pte_t *pte, pte_t ptent, + struct mm_area *vma, pte_t *pte, pte_t ptent, unsigned int max_nr, unsigned long addr, struct zap_details *details, int *rss, bool *any_skipped) { @@ -1659,7 +1659,7 @@ static inline int zap_nonpresent_ptes(struct mmu_gather *tlb, } static inline int do_zap_pte_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pte_t *pte, + struct mm_area *vma, pte_t *pte, unsigned long addr, unsigned long end, struct zap_details *details, int *rss, bool *force_flush, bool *force_break, @@ -1695,7 +1695,7 @@ static inline int do_zap_pte_range(struct mmu_gather *tlb, } static unsigned long zap_pte_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pmd_t *pmd, + struct mm_area *vma, pmd_t *pmd, unsigned long addr, unsigned long end, struct zap_details *details) { @@ -1787,7 +1787,7 @@ static unsigned long zap_pte_range(struct mmu_gather *tlb, } static inline unsigned long zap_pmd_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pud_t *pud, + struct mm_area *vma, pud_t *pud, unsigned long addr, unsigned long end, struct zap_details *details) { @@ -1829,7 +1829,7 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb, } static inline unsigned long zap_pud_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, p4d_t *p4d, + struct mm_area *vma, p4d_t *p4d, unsigned long addr, unsigned long end, struct zap_details *details) { @@ -1858,7 +1858,7 @@ static inline unsigned long zap_pud_range(struct mmu_gather *tlb, } static inline unsigned long zap_p4d_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pgd_t *pgd, + struct mm_area *vma, pgd_t *pgd, unsigned long addr, unsigned long end, struct zap_details *details) { @@ -1877,7 +1877,7 @@ static inline unsigned long zap_p4d_range(struct mmu_gather *tlb, } void unmap_page_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, unsigned long end, struct zap_details *details) { @@ -1898,7 +1898,7 @@ void unmap_page_range(struct mmu_gather *tlb, static void unmap_single_vma(struct mmu_gather *tlb, - struct vm_area_struct *vma, unsigned long start_addr, + struct mm_area *vma, unsigned long start_addr, unsigned long end_addr, struct zap_details *details, bool mm_wr_locked) { @@ -1963,7 +1963,7 @@ static void unmap_single_vma(struct mmu_gather *tlb, * drops the lock and schedules. */ void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long start_addr, + struct mm_area *vma, unsigned long start_addr, unsigned long end_addr, unsigned long tree_end, bool mm_wr_locked) { @@ -1991,14 +1991,14 @@ void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, /** * zap_page_range_single - remove user pages in a given range - * @vma: vm_area_struct holding the applicable pages + * @vma: mm_area holding the applicable pages * @address: starting address of pages to zap * @size: number of bytes to zap * @details: details of shared cache invalidation * * The range must fit into one VMA. */ -void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, +void zap_page_range_single(struct mm_area *vma, unsigned long address, unsigned long size, struct zap_details *details) { const unsigned long end = address + size; @@ -2023,7 +2023,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, /** * zap_vma_ptes - remove ptes mapping the vma - * @vma: vm_area_struct holding ptes to be zapped + * @vma: mm_area holding ptes to be zapped * @address: starting address of pages to zap * @size: number of bytes to zap * @@ -2032,7 +2032,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address, * The entire address range must be fully contained within the vma. * */ -void zap_vma_ptes(struct vm_area_struct *vma, unsigned long address, +void zap_vma_ptes(struct mm_area *vma, unsigned long address, unsigned long size) { if (!range_in_vma(vma, address, address + size) || @@ -2075,7 +2075,7 @@ pte_t *__get_locked_pte(struct mm_struct *mm, unsigned long addr, return pte_alloc_map_lock(mm, pmd, addr, ptl); } -static bool vm_mixed_zeropage_allowed(struct vm_area_struct *vma) +static bool vm_mixed_zeropage_allowed(struct mm_area *vma) { VM_WARN_ON_ONCE(vma->vm_flags & VM_PFNMAP); /* @@ -2105,7 +2105,7 @@ static bool vm_mixed_zeropage_allowed(struct vm_area_struct *vma) (vma_is_fsdax(vma) || vma->vm_flags & VM_IO); } -static int validate_page_before_insert(struct vm_area_struct *vma, +static int validate_page_before_insert(struct mm_area *vma, struct page *page) { struct folio *folio = page_folio(page); @@ -2124,7 +2124,7 @@ static int validate_page_before_insert(struct vm_area_struct *vma, return 0; } -static int insert_page_into_pte_locked(struct vm_area_struct *vma, pte_t *pte, +static int insert_page_into_pte_locked(struct mm_area *vma, pte_t *pte, unsigned long addr, struct page *page, pgprot_t prot, bool mkwrite) { @@ -2165,7 +2165,7 @@ static int insert_page_into_pte_locked(struct vm_area_struct *vma, pte_t *pte, return 0; } -static int insert_page(struct vm_area_struct *vma, unsigned long addr, +static int insert_page(struct mm_area *vma, unsigned long addr, struct page *page, pgprot_t prot, bool mkwrite) { int retval; @@ -2186,7 +2186,7 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr, return retval; } -static int insert_page_in_batch_locked(struct vm_area_struct *vma, pte_t *pte, +static int insert_page_in_batch_locked(struct mm_area *vma, pte_t *pte, unsigned long addr, struct page *page, pgprot_t prot) { int err; @@ -2200,7 +2200,7 @@ static int insert_page_in_batch_locked(struct vm_area_struct *vma, pte_t *pte, /* insert_pages() amortizes the cost of spinlock operations * when inserting pages in a loop. */ -static int insert_pages(struct vm_area_struct *vma, unsigned long addr, +static int insert_pages(struct mm_area *vma, unsigned long addr, struct page **pages, unsigned long *num, pgprot_t prot) { pmd_t *pmd = NULL; @@ -2273,7 +2273,7 @@ static int insert_pages(struct vm_area_struct *vma, unsigned long addr, * * The same restrictions apply as in vm_insert_page(). */ -int vm_insert_pages(struct vm_area_struct *vma, unsigned long addr, +int vm_insert_pages(struct mm_area *vma, unsigned long addr, struct page **pages, unsigned long *num) { const unsigned long end_addr = addr + (*num * PAGE_SIZE) - 1; @@ -2320,7 +2320,7 @@ EXPORT_SYMBOL(vm_insert_pages); * * Return: %0 on success, negative error code otherwise. */ -int vm_insert_page(struct vm_area_struct *vma, unsigned long addr, +int vm_insert_page(struct mm_area *vma, unsigned long addr, struct page *page) { if (addr < vma->vm_start || addr >= vma->vm_end) @@ -2347,7 +2347,7 @@ EXPORT_SYMBOL(vm_insert_page); * * Return: 0 on success and error code otherwise. */ -static int __vm_map_pages(struct vm_area_struct *vma, struct page **pages, +static int __vm_map_pages(struct mm_area *vma, struct page **pages, unsigned long num, unsigned long offset) { unsigned long count = vma_pages(vma); @@ -2390,7 +2390,7 @@ static int __vm_map_pages(struct vm_area_struct *vma, struct page **pages, * Context: Process context. Called by mmap handlers. * Return: 0 on success and error code otherwise. */ -int vm_map_pages(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages(struct mm_area *vma, struct page **pages, unsigned long num) { return __vm_map_pages(vma, pages, num, vma->vm_pgoff); @@ -2410,14 +2410,14 @@ EXPORT_SYMBOL(vm_map_pages); * Context: Process context. Called by mmap handlers. * Return: 0 on success and error code otherwise. */ -int vm_map_pages_zero(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages_zero(struct mm_area *vma, struct page **pages, unsigned long num) { return __vm_map_pages(vma, pages, num, 0); } EXPORT_SYMBOL(vm_map_pages_zero); -static vm_fault_t insert_pfn(struct vm_area_struct *vma, unsigned long addr, +static vm_fault_t insert_pfn(struct mm_area *vma, unsigned long addr, pfn_t pfn, pgprot_t prot, bool mkwrite) { struct mm_struct *mm = vma->vm_mm; @@ -2504,7 +2504,7 @@ static vm_fault_t insert_pfn(struct vm_area_struct *vma, unsigned long addr, * Context: Process context. May allocate using %GFP_KERNEL. * Return: vm_fault_t value. */ -vm_fault_t vmf_insert_pfn_prot(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_pfn_prot(struct mm_area *vma, unsigned long addr, unsigned long pfn, pgprot_t pgprot) { /* @@ -2552,14 +2552,14 @@ EXPORT_SYMBOL(vmf_insert_pfn_prot); * Context: Process context. May allocate using %GFP_KERNEL. * Return: vm_fault_t value. */ -vm_fault_t vmf_insert_pfn(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_pfn(struct mm_area *vma, unsigned long addr, unsigned long pfn) { return vmf_insert_pfn_prot(vma, addr, pfn, vma->vm_page_prot); } EXPORT_SYMBOL(vmf_insert_pfn); -static bool vm_mixed_ok(struct vm_area_struct *vma, pfn_t pfn, bool mkwrite) +static bool vm_mixed_ok(struct mm_area *vma, pfn_t pfn, bool mkwrite) { if (unlikely(is_zero_pfn(pfn_t_to_pfn(pfn))) && (mkwrite || !vm_mixed_zeropage_allowed(vma))) @@ -2576,7 +2576,7 @@ static bool vm_mixed_ok(struct vm_area_struct *vma, pfn_t pfn, bool mkwrite) return false; } -static vm_fault_t __vm_insert_mixed(struct vm_area_struct *vma, +static vm_fault_t __vm_insert_mixed(struct mm_area *vma, unsigned long addr, pfn_t pfn, bool mkwrite) { pgprot_t pgprot = vma->vm_page_prot; @@ -2643,7 +2643,7 @@ vm_fault_t vmf_insert_page_mkwrite(struct vm_fault *vmf, struct page *page, } EXPORT_SYMBOL_GPL(vmf_insert_page_mkwrite); -vm_fault_t vmf_insert_mixed(struct vm_area_struct *vma, unsigned long addr, +vm_fault_t vmf_insert_mixed(struct mm_area *vma, unsigned long addr, pfn_t pfn) { return __vm_insert_mixed(vma, addr, pfn, false); @@ -2655,7 +2655,7 @@ EXPORT_SYMBOL(vmf_insert_mixed); * different entry in the mean time, we treat that as success as we assume * the same entry was actually inserted. */ -vm_fault_t vmf_insert_mixed_mkwrite(struct vm_area_struct *vma, +vm_fault_t vmf_insert_mixed_mkwrite(struct mm_area *vma, unsigned long addr, pfn_t pfn) { return __vm_insert_mixed(vma, addr, pfn, true); @@ -2759,7 +2759,7 @@ static inline int remap_p4d_range(struct mm_struct *mm, pgd_t *pgd, return 0; } -static int remap_pfn_range_internal(struct vm_area_struct *vma, unsigned long addr, +static int remap_pfn_range_internal(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { pgd_t *pgd; @@ -2816,7 +2816,7 @@ static int remap_pfn_range_internal(struct vm_area_struct *vma, unsigned long ad * Variant of remap_pfn_range that does not call track_pfn_remap. The caller * must have pre-validated the caching bits of the pgprot_t. */ -int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, +int remap_pfn_range_notrack(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { int error = remap_pfn_range_internal(vma, addr, pfn, size, prot); @@ -2845,7 +2845,7 @@ int remap_pfn_range_notrack(struct vm_area_struct *vma, unsigned long addr, * * Return: %0 on success, negative error code otherwise. */ -int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, +int remap_pfn_range(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { int err; @@ -2876,7 +2876,7 @@ EXPORT_SYMBOL(remap_pfn_range); * * Return: %0 on success, negative error code otherwise. */ -int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len) +int vm_iomap_memory(struct mm_area *vma, phys_addr_t start, unsigned long len) { unsigned long vm_len, pfn, pages; @@ -3161,7 +3161,7 @@ static inline int __wp_page_copy_user(struct page *dst, struct page *src, int ret; void *kaddr; void __user *uaddr; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *mm = vma->vm_mm; unsigned long addr = vmf->address; @@ -3253,7 +3253,7 @@ static inline int __wp_page_copy_user(struct page *dst, struct page *src, return ret; } -static gfp_t __get_fault_gfp_mask(struct vm_area_struct *vma) +static gfp_t __get_fault_gfp_mask(struct mm_area *vma) { struct file *vm_file = vma->vm_file; @@ -3308,7 +3308,7 @@ static vm_fault_t do_page_mkwrite(struct vm_fault *vmf, struct folio *folio) */ static vm_fault_t fault_dirty_shared_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct address_space *mapping; struct folio *folio = page_folio(vmf->page); bool dirtied; @@ -3362,7 +3362,7 @@ static vm_fault_t fault_dirty_shared_page(struct vm_fault *vmf) static inline void wp_page_reuse(struct vm_fault *vmf, struct folio *folio) __releases(vmf->ptl) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pte_t entry; VM_BUG_ON(!(vmf->flags & FAULT_FLAG_WRITE)); @@ -3395,7 +3395,7 @@ static inline void wp_page_reuse(struct vm_fault *vmf, struct folio *folio) */ static inline vm_fault_t vmf_can_call_fault(const struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; if (vma->vm_ops->map_pages || !(vmf->flags & FAULT_FLAG_VMA_LOCK)) return 0; @@ -3420,7 +3420,7 @@ static inline vm_fault_t vmf_can_call_fault(const struct vm_fault *vmf) */ vm_fault_t __vmf_anon_prepare(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret = 0; if (likely(vma->anon_vma)) @@ -3456,7 +3456,7 @@ vm_fault_t __vmf_anon_prepare(struct vm_fault *vmf) static vm_fault_t wp_page_copy(struct vm_fault *vmf) { const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *mm = vma->vm_mm; struct folio *old_folio = NULL; struct folio *new_folio = NULL; @@ -3647,7 +3647,7 @@ static vm_fault_t finish_mkwrite_fault(struct vm_fault *vmf, struct folio *folio */ static vm_fault_t wp_pfn_shared(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; if (vma->vm_ops && vma->vm_ops->pfn_mkwrite) { vm_fault_t ret; @@ -3670,7 +3670,7 @@ static vm_fault_t wp_pfn_shared(struct vm_fault *vmf) static vm_fault_t wp_page_shared(struct vm_fault *vmf, struct folio *folio) __releases(vmf->ptl) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret = 0; folio_get(folio); @@ -3709,7 +3709,7 @@ static vm_fault_t wp_page_shared(struct vm_fault *vmf, struct folio *folio) #ifdef CONFIG_TRANSPARENT_HUGEPAGE static bool __wp_can_reuse_large_anon_folio(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { bool exclusive = false; @@ -3775,14 +3775,14 @@ static bool __wp_can_reuse_large_anon_folio(struct folio *folio, } #else /* !CONFIG_TRANSPARENT_HUGEPAGE */ static bool __wp_can_reuse_large_anon_folio(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { BUILD_BUG(); } #endif /* CONFIG_TRANSPARENT_HUGEPAGE */ static bool wp_can_reuse_anon_folio(struct folio *folio, - struct vm_area_struct *vma) + struct mm_area *vma) { if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE) && folio_test_large(folio)) return __wp_can_reuse_large_anon_folio(folio, vma); @@ -3848,7 +3848,7 @@ static vm_fault_t do_wp_page(struct vm_fault *vmf) __releases(vmf->ptl) { const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio = NULL; pte_t pte; @@ -3939,7 +3939,7 @@ static vm_fault_t do_wp_page(struct vm_fault *vmf) return wp_page_copy(vmf); } -static void unmap_mapping_range_vma(struct vm_area_struct *vma, +static void unmap_mapping_range_vma(struct mm_area *vma, unsigned long start_addr, unsigned long end_addr, struct zap_details *details) { @@ -3951,7 +3951,7 @@ static inline void unmap_mapping_range_tree(struct rb_root_cached *root, pgoff_t last_index, struct zap_details *details) { - struct vm_area_struct *vma; + struct mm_area *vma; pgoff_t vba, vea, zba, zea; vma_interval_tree_foreach(vma, root, first_index, last_index) { @@ -4073,7 +4073,7 @@ EXPORT_SYMBOL(unmap_mapping_range); static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) { struct folio *folio = page_folio(vmf->page); - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mmu_notifier_range range; vm_fault_t ret; @@ -4114,7 +4114,7 @@ static vm_fault_t remove_device_exclusive_entry(struct vm_fault *vmf) } static inline bool should_try_to_free_swap(struct folio *folio, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned int fault_flags) { if (!folio_test_swapcache(folio)) @@ -4205,7 +4205,7 @@ static vm_fault_t handle_pte_marker(struct vm_fault *vmf) static struct folio *__alloc_swap_folio(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; swp_entry_t entry; @@ -4303,7 +4303,7 @@ static inline unsigned long thp_swap_suitable_orders(pgoff_t swp_offset, static struct folio *alloc_swap_folio(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long orders; struct folio *folio; unsigned long addr; @@ -4399,7 +4399,7 @@ static DECLARE_WAIT_QUEUE_HEAD(swapcache_wq); */ vm_fault_t do_swap_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *swapcache, *folio = NULL; DECLARE_WAITQUEUE(wait, current); struct page *page; @@ -4859,7 +4859,7 @@ static bool pte_range_none(pte_t *pte, int nr_pages) static struct folio *alloc_anon_folio(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; #ifdef CONFIG_TRANSPARENT_HUGEPAGE unsigned long orders; struct folio *folio; @@ -4949,7 +4949,7 @@ static struct folio *alloc_anon_folio(struct vm_fault *vmf) */ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long addr = vmf->address; struct folio *folio; vm_fault_t ret = 0; @@ -5069,7 +5069,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) */ static vm_fault_t __do_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; vm_fault_t ret; @@ -5126,7 +5126,7 @@ static vm_fault_t __do_fault(struct vm_fault *vmf) #ifdef CONFIG_TRANSPARENT_HUGEPAGE static void deposit_prealloc_pte(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pgtable_trans_huge_deposit(vma->vm_mm, vmf->pmd, vmf->prealloc_pte); /* @@ -5140,7 +5140,7 @@ static void deposit_prealloc_pte(struct vm_fault *vmf) vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) { struct folio *folio = page_folio(page); - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; bool write = vmf->flags & FAULT_FLAG_WRITE; unsigned long haddr = vmf->address & HPAGE_PMD_MASK; pmd_t entry; @@ -5229,7 +5229,7 @@ vm_fault_t do_set_pmd(struct vm_fault *vmf, struct page *page) void set_pte_range(struct vm_fault *vmf, struct folio *folio, struct page *page, unsigned int nr, unsigned long addr) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; bool write = vmf->flags & FAULT_FLAG_WRITE; bool prefault = !in_range(vmf->address, addr, nr * PAGE_SIZE); pte_t entry; @@ -5285,7 +5285,7 @@ static bool vmf_pte_changed(struct vm_fault *vmf) */ vm_fault_t finish_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct page *page; struct folio *folio; vm_fault_t ret; @@ -5528,7 +5528,7 @@ static vm_fault_t do_read_fault(struct vm_fault *vmf) static vm_fault_t do_cow_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio; vm_fault_t ret; @@ -5570,7 +5570,7 @@ static vm_fault_t do_cow_fault(struct vm_fault *vmf) static vm_fault_t do_shared_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret, tmp; struct folio *folio; @@ -5620,7 +5620,7 @@ static vm_fault_t do_shared_fault(struct vm_fault *vmf) */ static vm_fault_t do_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mm_struct *vm_mm = vma->vm_mm; vm_fault_t ret; @@ -5666,7 +5666,7 @@ int numa_migrate_check(struct folio *folio, struct vm_fault *vmf, unsigned long addr, int *flags, bool writable, int *last_cpupid) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; /* * Avoid grouping on RO pages in general. RO pages shouldn't hurt as @@ -5709,7 +5709,7 @@ int numa_migrate_check(struct folio *folio, struct vm_fault *vmf, return mpol_misplaced(folio, vmf, addr); } -static void numa_rebuild_single_mapping(struct vm_fault *vmf, struct vm_area_struct *vma, +static void numa_rebuild_single_mapping(struct vm_fault *vmf, struct mm_area *vma, unsigned long fault_addr, pte_t *fault_pte, bool writable) { @@ -5724,7 +5724,7 @@ static void numa_rebuild_single_mapping(struct vm_fault *vmf, struct vm_area_str update_mmu_cache_range(vmf, vma, fault_addr, fault_pte, 1); } -static void numa_rebuild_large_mapping(struct vm_fault *vmf, struct vm_area_struct *vma, +static void numa_rebuild_large_mapping(struct vm_fault *vmf, struct mm_area *vma, struct folio *folio, pte_t fault_pte, bool ignore_writable, bool pte_write_upgrade) { @@ -5765,7 +5765,7 @@ static void numa_rebuild_large_mapping(struct vm_fault *vmf, struct vm_area_stru static vm_fault_t do_numa_page(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct folio *folio = NULL; int nid = NUMA_NO_NODE; bool writable = false, ignore_writable = false; @@ -5856,7 +5856,7 @@ static vm_fault_t do_numa_page(struct vm_fault *vmf) static inline vm_fault_t create_huge_pmd(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; if (vma_is_anonymous(vma)) return do_huge_pmd_anonymous_page(vmf); if (vma->vm_ops->huge_fault) @@ -5867,7 +5867,7 @@ static inline vm_fault_t create_huge_pmd(struct vm_fault *vmf) /* `inline' is required to avoid gcc 4.1.2 build error */ static inline vm_fault_t wp_huge_pmd(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; const bool unshare = vmf->flags & FAULT_FLAG_UNSHARE; vm_fault_t ret; @@ -5900,7 +5900,7 @@ static vm_fault_t create_huge_pud(struct vm_fault *vmf) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; /* No support for anonymous transparent PUD pages yet */ if (vma_is_anonymous(vma)) return VM_FAULT_FALLBACK; @@ -5914,7 +5914,7 @@ static vm_fault_t wp_huge_pud(struct vm_fault *vmf, pud_t orig_pud) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; vm_fault_t ret; /* No support for anonymous transparent PUD pages yet */ @@ -6043,7 +6043,7 @@ static vm_fault_t handle_pte_fault(struct vm_fault *vmf) * the result, the mmap_lock is not held on exit. See filemap_fault() * and __folio_lock_or_retry(). */ -static vm_fault_t __handle_mm_fault(struct vm_area_struct *vma, +static vm_fault_t __handle_mm_fault(struct mm_area *vma, unsigned long address, unsigned int flags) { struct vm_fault vmf = { @@ -6208,7 +6208,7 @@ static inline void mm_account_fault(struct mm_struct *mm, struct pt_regs *regs, } #ifdef CONFIG_LRU_GEN -static void lru_gen_enter_fault(struct vm_area_struct *vma) +static void lru_gen_enter_fault(struct mm_area *vma) { /* the LRU algorithm only applies to accesses with recency */ current->in_lru_fault = vma_has_recency(vma); @@ -6219,7 +6219,7 @@ static void lru_gen_exit_fault(void) current->in_lru_fault = false; } #else -static void lru_gen_enter_fault(struct vm_area_struct *vma) +static void lru_gen_enter_fault(struct mm_area *vma) { } @@ -6228,7 +6228,7 @@ static void lru_gen_exit_fault(void) } #endif /* CONFIG_LRU_GEN */ -static vm_fault_t sanitize_fault_flags(struct vm_area_struct *vma, +static vm_fault_t sanitize_fault_flags(struct mm_area *vma, unsigned int *flags) { if (unlikely(*flags & FAULT_FLAG_UNSHARE)) { @@ -6270,7 +6270,7 @@ static vm_fault_t sanitize_fault_flags(struct vm_area_struct *vma, * The mmap_lock may have been released depending on flags and our * return value. See filemap_fault() and __folio_lock_or_retry(). */ -vm_fault_t handle_mm_fault(struct vm_area_struct *vma, unsigned long address, +vm_fault_t handle_mm_fault(struct mm_area *vma, unsigned long address, unsigned int flags, struct pt_regs *regs) { /* If the fault handler drops the mmap_lock, vma may be freed */ @@ -6397,10 +6397,10 @@ static inline bool upgrade_mmap_lock_carefully(struct mm_struct *mm, struct pt_r * We can also actually take the mm lock for writing if we * need to extend the vma, which helps the VM layer a lot. */ -struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, +struct mm_area *lock_mm_and_find_vma(struct mm_struct *mm, unsigned long addr, struct pt_regs *regs) { - struct vm_area_struct *vma; + struct mm_area *vma; if (!get_mmap_lock_carefully(mm, regs)) return NULL; @@ -6454,7 +6454,7 @@ struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, #endif #ifdef CONFIG_PER_VMA_LOCK -static inline bool __vma_enter_locked(struct vm_area_struct *vma, bool detaching) +static inline bool __vma_enter_locked(struct mm_area *vma, bool detaching) { unsigned int tgt_refcnt = VMA_LOCK_OFFSET; @@ -6478,13 +6478,13 @@ static inline bool __vma_enter_locked(struct vm_area_struct *vma, bool detaching return true; } -static inline void __vma_exit_locked(struct vm_area_struct *vma, bool *detached) +static inline void __vma_exit_locked(struct mm_area *vma, bool *detached) { *detached = refcount_sub_and_test(VMA_LOCK_OFFSET, &vma->vm_refcnt); rwsem_release(&vma->vmlock_dep_map, _RET_IP_); } -void __vma_start_write(struct vm_area_struct *vma, unsigned int mm_lock_seq) +void __vma_start_write(struct mm_area *vma, unsigned int mm_lock_seq) { bool locked; @@ -6512,7 +6512,7 @@ void __vma_start_write(struct vm_area_struct *vma, unsigned int mm_lock_seq) } EXPORT_SYMBOL_GPL(__vma_start_write); -void vma_mark_detached(struct vm_area_struct *vma) +void vma_mark_detached(struct mm_area *vma) { vma_assert_write_locked(vma); vma_assert_attached(vma); @@ -6541,11 +6541,11 @@ void vma_mark_detached(struct vm_area_struct *vma) * stable and not isolated. If the VMA is not found or is being modified the * function returns NULL. */ -struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm, +struct mm_area *lock_vma_under_rcu(struct mm_struct *mm, unsigned long address) { MA_STATE(mas, &mm->mm_mt, address, address); - struct vm_area_struct *vma; + struct mm_area *vma; rcu_read_lock(); retry: @@ -6675,7 +6675,7 @@ static inline void pfnmap_args_setup(struct follow_pfnmap_args *args, args->special = special; } -static inline void pfnmap_lockdep_assert(struct vm_area_struct *vma) +static inline void pfnmap_lockdep_assert(struct mm_area *vma) { #ifdef CONFIG_LOCKDEP struct file *file = vma->vm_file; @@ -6722,7 +6722,7 @@ static inline void pfnmap_lockdep_assert(struct vm_area_struct *vma) */ int follow_pfnmap_start(struct follow_pfnmap_args *args) { - struct vm_area_struct *vma = args->vma; + struct mm_area *vma = args->vma; unsigned long address = args->address; struct mm_struct *mm = vma->vm_mm; spinlock_t *lock; @@ -6825,7 +6825,7 @@ EXPORT_SYMBOL_GPL(follow_pfnmap_end); * iomem mapping. This callback is used by access_process_vm() when the @vma is * not page based. */ -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr, +int generic_access_phys(struct mm_area *vma, unsigned long addr, void *buf, int len, int write) { resource_size_t phys_addr; @@ -6899,7 +6899,7 @@ static int __access_remote_vm(struct mm_struct *mm, unsigned long addr, while (len) { int bytes, offset; void *maddr; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct page *page = get_user_page_vma_remote(mm, addr, gup_flags, &vma); @@ -7024,7 +7024,7 @@ static int __copy_remote_vm_str(struct mm_struct *mm, unsigned long addr, int bytes, offset, retval; void *maddr; struct page *page; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; page = get_user_page_vma_remote(mm, addr, gup_flags, &vma); if (IS_ERR(page)) { @@ -7120,7 +7120,7 @@ EXPORT_SYMBOL_GPL(copy_remote_vm_str); void print_vma_addr(char *prefix, unsigned long ip) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; /* * we might be running from an atomic context so we cannot sleep @@ -7251,7 +7251,7 @@ void folio_zero_user(struct folio *folio, unsigned long addr_hint) static int copy_user_gigantic_page(struct folio *dst, struct folio *src, unsigned long addr_hint, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned int nr_pages) { unsigned long addr = ALIGN_DOWN(addr_hint, folio_size(dst)); @@ -7274,7 +7274,7 @@ static int copy_user_gigantic_page(struct folio *dst, struct folio *src, struct copy_subpage_arg { struct folio *dst; struct folio *src; - struct vm_area_struct *vma; + struct mm_area *vma; }; static int copy_subpage(unsigned long addr, int idx, void *arg) @@ -7289,7 +7289,7 @@ static int copy_subpage(unsigned long addr, int idx, void *arg) } int copy_user_large_folio(struct folio *dst, struct folio *src, - unsigned long addr_hint, struct vm_area_struct *vma) + unsigned long addr_hint, struct mm_area *vma) { unsigned int nr_pages = folio_nr_pages(dst); struct copy_subpage_arg arg = { @@ -7364,13 +7364,13 @@ void ptlock_free(struct ptdesc *ptdesc) } #endif -void vma_pgtable_walk_begin(struct vm_area_struct *vma) +void vma_pgtable_walk_begin(struct mm_area *vma) { if (is_vm_hugetlb_page(vma)) hugetlb_vma_lock_read(vma); } -void vma_pgtable_walk_end(struct vm_area_struct *vma) +void vma_pgtable_walk_end(struct mm_area *vma) { if (is_vm_hugetlb_page(vma)) hugetlb_vma_unlock_read(vma); diff --git a/mm/mempolicy.c b/mm/mempolicy.c index b28a1e6ae096..3403a4805d17 100644 --- a/mm/mempolicy.c +++ b/mm/mempolicy.c @@ -445,7 +445,7 @@ void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new) */ void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); mmap_write_lock(mm); @@ -511,7 +511,7 @@ struct queue_pages { nodemask_t *nmask; unsigned long start; unsigned long end; - struct vm_area_struct *first; + struct mm_area *first; struct folio *large; /* note last large folio encountered */ long nr_failed; /* could not be isolated at this time */ }; @@ -566,7 +566,7 @@ static void queue_folios_pmd(pmd_t *pmd, struct mm_walk *walk) static int queue_folios_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; struct folio *folio; struct queue_pages *qp = walk->private; unsigned long flags = qp->flags; @@ -698,7 +698,7 @@ static int queue_folios_hugetlb(pte_t *pte, unsigned long hmask, * an architecture makes a different choice, it will need further * changes to the core. */ -unsigned long change_prot_numa(struct vm_area_struct *vma, +unsigned long change_prot_numa(struct mm_area *vma, unsigned long addr, unsigned long end) { struct mmu_gather tlb; @@ -721,7 +721,7 @@ unsigned long change_prot_numa(struct vm_area_struct *vma, static int queue_pages_test_walk(unsigned long start, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *next, *vma = walk->vma; + struct mm_area *next, *vma = walk->vma; struct queue_pages *qp = walk->private; unsigned long flags = qp->flags; @@ -817,7 +817,7 @@ queue_pages_range(struct mm_struct *mm, unsigned long start, unsigned long end, * Apply policy to a single VMA * This must be called with the mmap_lock held for writing. */ -static int vma_replace_policy(struct vm_area_struct *vma, +static int vma_replace_policy(struct mm_area *vma, struct mempolicy *pol) { int err; @@ -847,8 +847,8 @@ static int vma_replace_policy(struct vm_area_struct *vma, } /* Split or merge the VMA (if required) and apply the new policy */ -static int mbind_range(struct vma_iterator *vmi, struct vm_area_struct *vma, - struct vm_area_struct **prev, unsigned long start, +static int mbind_range(struct vma_iterator *vmi, struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, struct mempolicy *new_pol) { unsigned long vmstart, vmend; @@ -960,7 +960,7 @@ static long do_get_mempolicy(int *policy, nodemask_t *nmask, { int err; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; struct mempolicy *pol = current->mempolicy, *pol_refcount = NULL; if (flags & @@ -1094,7 +1094,7 @@ static long migrate_to_node(struct mm_struct *mm, int source, int dest, int flags) { nodemask_t nmask; - struct vm_area_struct *vma; + struct mm_area *vma; LIST_HEAD(pagelist); long nr_failed; long err = 0; @@ -1299,7 +1299,7 @@ static long do_mbind(unsigned long start, unsigned long len, nodemask_t *nmask, unsigned long flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; struct vma_iterator vmi; struct migration_mpol mmpol; struct mempolicy *new; @@ -1572,7 +1572,7 @@ SYSCALL_DEFINE4(set_mempolicy_home_node, unsigned long, start, unsigned long, le unsigned long, home_node, unsigned long, flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; struct mempolicy *new, *old; unsigned long end; int err = -ENOENT; @@ -1799,7 +1799,7 @@ SYSCALL_DEFINE5(get_mempolicy, int __user *, policy, return kernel_get_mempolicy(policy, nmask, maxnode, addr, flags); } -bool vma_migratable(struct vm_area_struct *vma) +bool vma_migratable(struct mm_area *vma) { if (vma->vm_flags & (VM_IO | VM_PFNMAP)) return false; @@ -1827,7 +1827,7 @@ bool vma_migratable(struct vm_area_struct *vma) return true; } -struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, +struct mempolicy *__get_vma_policy(struct mm_area *vma, unsigned long addr, pgoff_t *ilx) { *ilx = 0; @@ -1850,7 +1850,7 @@ struct mempolicy *__get_vma_policy(struct vm_area_struct *vma, * freeing by another task. It is the caller's responsibility to free the * extra reference for shared policies. */ -struct mempolicy *get_vma_policy(struct vm_area_struct *vma, +struct mempolicy *get_vma_policy(struct mm_area *vma, unsigned long addr, int order, pgoff_t *ilx) { struct mempolicy *pol; @@ -1866,7 +1866,7 @@ struct mempolicy *get_vma_policy(struct vm_area_struct *vma, return pol; } -bool vma_policy_mof(struct vm_area_struct *vma) +bool vma_policy_mof(struct mm_area *vma) { struct mempolicy *pol; @@ -2135,7 +2135,7 @@ static nodemask_t *policy_nodemask(gfp_t gfp, struct mempolicy *pol, * If the effective policy is 'bind' or 'prefer-many', returns a pointer * to the mempolicy's @nodemask for filtering the zonelist. */ -int huge_node(struct vm_area_struct *vma, unsigned long addr, gfp_t gfp_flags, +int huge_node(struct mm_area *vma, unsigned long addr, gfp_t gfp_flags, struct mempolicy **mpol, nodemask_t **nodemask) { pgoff_t ilx; @@ -2341,7 +2341,7 @@ struct folio *folio_alloc_mpol_noprof(gfp_t gfp, unsigned int order, * * Return: The folio on success or NULL if allocation fails. */ -struct folio *vma_alloc_folio_noprof(gfp_t gfp, int order, struct vm_area_struct *vma, +struct folio *vma_alloc_folio_noprof(gfp_t gfp, int order, struct mm_area *vma, unsigned long addr) { struct mempolicy *pol; @@ -2607,7 +2607,7 @@ unsigned long alloc_pages_bulk_mempolicy_noprof(gfp_t gfp, nr_pages, page_array); } -int vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst) +int vma_dup_policy(struct mm_area *src, struct mm_area *dst) { struct mempolicy *pol = mpol_dup(src->vm_policy); @@ -2795,7 +2795,7 @@ int mpol_misplaced(struct folio *folio, struct vm_fault *vmf, pgoff_t ilx; struct zoneref *z; int curnid = folio_nid(folio); - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; int thiscpu = raw_smp_processor_id(); int thisnid = numa_node_id(); int polnid = NUMA_NO_NODE; @@ -3054,7 +3054,7 @@ void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol) } int mpol_set_shared_policy(struct shared_policy *sp, - struct vm_area_struct *vma, struct mempolicy *pol) + struct mm_area *vma, struct mempolicy *pol) { int err; struct sp_node *new = NULL; diff --git a/mm/migrate.c b/mm/migrate.c index f3ee6d8d5e2e..7909e4ae797c 100644 --- a/mm/migrate.c +++ b/mm/migrate.c @@ -237,7 +237,7 @@ struct rmap_walk_arg { * Restore a potential migration pte to a working pte entry */ static bool remove_migration_pte(struct folio *folio, - struct vm_area_struct *vma, unsigned long addr, void *arg) + struct mm_area *vma, unsigned long addr, void *arg) { struct rmap_walk_arg *rmap_walk_arg = arg; DEFINE_FOLIO_VMA_WALK(pvmw, rmap_walk_arg->folio, vma, addr, PVMW_SYNC | PVMW_MIGRATION); @@ -405,7 +405,7 @@ void migration_entry_wait(struct mm_struct *mm, pmd_t *pmd, * * This function will release the vma lock before returning. */ -void migration_entry_wait_huge(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep) +void migration_entry_wait_huge(struct mm_area *vma, unsigned long addr, pte_t *ptep) { spinlock_t *ptl = huge_pte_lockptr(hstate_vma(vma), vma->vm_mm, ptep); pte_t pte; @@ -2254,7 +2254,7 @@ static int __add_folio_for_migration(struct folio *folio, int node, static int add_folio_for_migration(struct mm_struct *mm, const void __user *p, int node, struct list_head *pagelist, bool migrate_all) { - struct vm_area_struct *vma; + struct mm_area *vma; struct folio_walk fw; struct folio *folio; unsigned long addr; @@ -2423,7 +2423,7 @@ static void do_pages_stat_array(struct mm_struct *mm, unsigned long nr_pages, for (i = 0; i < nr_pages; i++) { unsigned long addr = (unsigned long)(*pages); - struct vm_area_struct *vma; + struct mm_area *vma; struct folio_walk fw; struct folio *folio; int err = -EFAULT; @@ -2640,7 +2640,7 @@ static struct folio *alloc_misplaced_dst_folio(struct folio *src, * permitted. Must be called with the PTL still held. */ int migrate_misplaced_folio_prepare(struct folio *folio, - struct vm_area_struct *vma, int node) + struct mm_area *vma, int node) { int nr_pages = folio_nr_pages(folio); pg_data_t *pgdat = NODE_DATA(node); diff --git a/mm/migrate_device.c b/mm/migrate_device.c index 3158afe7eb23..96786d64edd6 100644 --- a/mm/migrate_device.c +++ b/mm/migrate_device.c @@ -62,7 +62,7 @@ static int migrate_vma_collect_pmd(pmd_t *pmdp, struct migrate_vma *migrate = walk->private; struct folio *fault_folio = migrate->fault_page ? page_folio(migrate->fault_page) : NULL; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; struct mm_struct *mm = vma->vm_mm; unsigned long addr = start, unmapped = 0; spinlock_t *ptl; @@ -589,7 +589,7 @@ static void migrate_vma_insert_page(struct migrate_vma *migrate, unsigned long *src) { struct folio *folio = page_folio(page); - struct vm_area_struct *vma = migrate->vma; + struct mm_area *vma = migrate->vma; struct mm_struct *mm = vma->vm_mm; bool flush = false; spinlock_t *ptl; diff --git a/mm/mincore.c b/mm/mincore.c index 832f29f46767..6b53d9361ec7 100644 --- a/mm/mincore.c +++ b/mm/mincore.c @@ -70,7 +70,7 @@ static unsigned char mincore_page(struct address_space *mapping, pgoff_t index) } static int __mincore_unmapped_range(unsigned long addr, unsigned long end, - struct vm_area_struct *vma, unsigned char *vec) + struct mm_area *vma, unsigned char *vec) { unsigned long nr = (end - addr) >> PAGE_SHIFT; int i; @@ -101,7 +101,7 @@ static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { spinlock_t *ptl; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; pte_t *ptep; unsigned char *vec = walk->private; int nr = (end - addr) >> PAGE_SHIFT; @@ -155,7 +155,7 @@ static int mincore_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, return 0; } -static inline bool can_do_mincore(struct vm_area_struct *vma) +static inline bool can_do_mincore(struct mm_area *vma) { if (vma_is_anonymous(vma)) return true; @@ -186,7 +186,7 @@ static const struct mm_walk_ops mincore_walk_ops = { */ static long do_mincore(unsigned long addr, unsigned long pages, unsigned char *vec) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long end; int err; diff --git a/mm/mlock.c b/mm/mlock.c index 3cb72b579ffd..8c13cce0d0cb 100644 --- a/mm/mlock.c +++ b/mm/mlock.c @@ -319,7 +319,7 @@ static inline unsigned int folio_mlock_step(struct folio *folio, } static inline bool allow_mlock_munlock(struct folio *folio, - struct vm_area_struct *vma, unsigned long start, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned int step) { /* @@ -353,7 +353,7 @@ static int mlock_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; spinlock_t *ptl; pte_t *start_pte, *pte; pte_t ptent; @@ -422,7 +422,7 @@ static int mlock_pte_range(pmd_t *pmd, unsigned long addr, * Called for mlock(), mlock2() and mlockall(), to set @vma VM_LOCKED; * called for munlock() and munlockall(), to clear VM_LOCKED from @vma. */ -static void mlock_vma_pages_range(struct vm_area_struct *vma, +static void mlock_vma_pages_range(struct mm_area *vma, unsigned long start, unsigned long end, vm_flags_t newflags) { static const struct mm_walk_ops mlock_walk_ops = { @@ -465,8 +465,8 @@ static void mlock_vma_pages_range(struct vm_area_struct *vma, * * For vmas that pass the filters, merge/split as appropriate. */ -static int mlock_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma, - struct vm_area_struct **prev, unsigned long start, +static int mlock_fixup(struct vma_iterator *vmi, struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, vm_flags_t newflags) { struct mm_struct *mm = vma->vm_mm; @@ -517,7 +517,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, vm_flags_t flags) { unsigned long nstart, end, tmp; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; VMA_ITERATOR(vmi, current->mm, start); VM_BUG_ON(offset_in_page(start)); @@ -573,7 +573,7 @@ static int apply_vma_lock_flags(unsigned long start, size_t len, static unsigned long count_mm_mlocked_page_nr(struct mm_struct *mm, unsigned long start, size_t len) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long count = 0; unsigned long end; VMA_ITERATOR(vmi, mm, start); @@ -706,7 +706,7 @@ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len) static int apply_mlockall_flags(int flags) { VMA_ITERATOR(vmi, current->mm, 0); - struct vm_area_struct *vma, *prev = NULL; + struct mm_area *vma, *prev = NULL; vm_flags_t to_add = 0; current->mm->def_flags &= ~VM_LOCKED_MASK; diff --git a/mm/mmap.c b/mm/mmap.c index bd210aaf7ebd..d7d95a6f343d 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -78,7 +78,7 @@ static bool ignore_rlimit_data; core_param(ignore_rlimit_data, ignore_rlimit_data, bool, 0644); /* Update vma->vm_page_prot to reflect vma->vm_flags. */ -void vma_set_page_prot(struct vm_area_struct *vma) +void vma_set_page_prot(struct mm_area *vma) { unsigned long vm_flags = vma->vm_flags; pgprot_t vm_page_prot; @@ -116,7 +116,7 @@ SYSCALL_DEFINE1(brk, unsigned long, brk) { unsigned long newbrk, oldbrk, origbrk; struct mm_struct *mm = current->mm; - struct vm_area_struct *brkvma, *next = NULL; + struct mm_area *brkvma, *next = NULL; unsigned long min_brk; bool populate = false; LIST_HEAD(uf); @@ -693,7 +693,7 @@ generic_get_unmapped_area(struct file *filp, unsigned long addr, unsigned long flags, vm_flags_t vm_flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; struct vm_unmapped_area_info info = {}; const unsigned long mmap_end = arch_get_mmap_end(addr, len, flags); @@ -741,7 +741,7 @@ generic_get_unmapped_area_topdown(struct file *filp, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags, vm_flags_t vm_flags) { - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; struct mm_struct *mm = current->mm; struct vm_unmapped_area_info info = {}; const unsigned long mmap_end = arch_get_mmap_end(addr, len, flags); @@ -886,7 +886,7 @@ EXPORT_SYMBOL(mm_get_unmapped_area); * Returns: The first VMA within the provided range, %NULL otherwise. Assumes * start_addr < end_addr. */ -struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, +struct mm_area *find_vma_intersection(struct mm_struct *mm, unsigned long start_addr, unsigned long end_addr) { @@ -905,7 +905,7 @@ EXPORT_SYMBOL(find_vma_intersection); * Returns: The VMA associated with addr, or the next VMA. * May return %NULL in the case of no VMA at addr or above. */ -struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) +struct mm_area *find_vma(struct mm_struct *mm, unsigned long addr) { unsigned long index = addr; @@ -927,11 +927,11 @@ EXPORT_SYMBOL(find_vma); * Returns: The VMA associated with @addr, or the next vma. * May return %NULL in the case of no vma at addr or above. */ -struct vm_area_struct * +struct mm_area * find_vma_prev(struct mm_struct *mm, unsigned long addr, - struct vm_area_struct **pprev) + struct mm_area **pprev) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, addr); vma = vma_iter_load(&vmi); @@ -958,14 +958,14 @@ static int __init cmdline_parse_stack_guard_gap(char *p) __setup("stack_guard_gap=", cmdline_parse_stack_guard_gap); #ifdef CONFIG_STACK_GROWSUP -int expand_stack_locked(struct vm_area_struct *vma, unsigned long address) +int expand_stack_locked(struct mm_area *vma, unsigned long address) { return expand_upwards(vma, address); } -struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) +struct mm_area *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; addr &= PAGE_MASK; vma = find_vma_prev(mm, addr, &prev); @@ -980,14 +980,14 @@ struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned lon return prev; } #else -int expand_stack_locked(struct vm_area_struct *vma, unsigned long address) +int expand_stack_locked(struct mm_area *vma, unsigned long address) { return expand_downwards(vma, address); } -struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) +struct mm_area *find_extend_vma_locked(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long start; addr &= PAGE_MASK; @@ -1028,9 +1028,9 @@ struct vm_area_struct *find_extend_vma_locked(struct mm_struct *mm, unsigned lon * If no vma is found or it can't be expanded, it returns NULL and has * dropped the lock. */ -struct vm_area_struct *expand_stack(struct mm_struct *mm, unsigned long addr) +struct mm_area *expand_stack(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; mmap_read_unlock(mm); if (mmap_write_lock_killable(mm)) @@ -1093,7 +1093,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long populate = 0; unsigned long ret = -EINVAL; struct file *file; @@ -1172,7 +1172,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, if (start + size > vma->vm_end) { VMA_ITERATOR(vmi, mm, vma->vm_end); - struct vm_area_struct *next, *prev = vma; + struct mm_area *next, *prev = vma; for_each_vma_range(vmi, next, start + size) { /* hole between vmas ? */ @@ -1210,7 +1210,7 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size, int vm_brk_flags(unsigned long addr, unsigned long request, unsigned long flags) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; unsigned long len; int ret; bool populate; @@ -1258,7 +1258,7 @@ EXPORT_SYMBOL(vm_brk_flags); void exit_mmap(struct mm_struct *mm) { struct mmu_gather tlb; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long nr_accounted = 0; VMA_ITERATOR(vmi, mm, 0); int count = 0; @@ -1325,7 +1325,7 @@ void exit_mmap(struct mm_struct *mm) * and into the inode's i_mmap tree. If vm_file is non-NULL * then i_mmap_rwsem is taken here. */ -int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma) +int insert_vm_struct(struct mm_struct *mm, struct mm_area *vma) { unsigned long charged = vma_pages(vma); @@ -1411,7 +1411,7 @@ static vm_fault_t special_mapping_fault(struct vm_fault *vmf); * * Having a close hook prevents vma merging regardless of flags. */ -static void special_mapping_close(struct vm_area_struct *vma) +static void special_mapping_close(struct mm_area *vma) { const struct vm_special_mapping *sm = vma->vm_private_data; @@ -1419,12 +1419,12 @@ static void special_mapping_close(struct vm_area_struct *vma) sm->close(sm, vma); } -static const char *special_mapping_name(struct vm_area_struct *vma) +static const char *special_mapping_name(struct mm_area *vma) { return ((struct vm_special_mapping *)vma->vm_private_data)->name; } -static int special_mapping_mremap(struct vm_area_struct *new_vma) +static int special_mapping_mremap(struct mm_area *new_vma) { struct vm_special_mapping *sm = new_vma->vm_private_data; @@ -1437,7 +1437,7 @@ static int special_mapping_mremap(struct vm_area_struct *new_vma) return 0; } -static int special_mapping_split(struct vm_area_struct *vma, unsigned long addr) +static int special_mapping_split(struct mm_area *vma, unsigned long addr) { /* * Forbid splitting special mappings - kernel has expectations over @@ -1460,7 +1460,7 @@ static const struct vm_operations_struct special_mapping_vmops = { static vm_fault_t special_mapping_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; pgoff_t pgoff; struct page **pages; struct vm_special_mapping *sm = vma->vm_private_data; @@ -1483,14 +1483,14 @@ static vm_fault_t special_mapping_fault(struct vm_fault *vmf) return VM_FAULT_SIGBUS; } -static struct vm_area_struct *__install_special_mapping( +static struct mm_area *__install_special_mapping( struct mm_struct *mm, unsigned long addr, unsigned long len, unsigned long vm_flags, void *priv, const struct vm_operations_struct *ops) { int ret; - struct vm_area_struct *vma; + struct mm_area *vma; vma = vm_area_alloc(mm); if (unlikely(vma == NULL)) @@ -1519,7 +1519,7 @@ static struct vm_area_struct *__install_special_mapping( return ERR_PTR(ret); } -bool vma_is_special_mapping(const struct vm_area_struct *vma, +bool vma_is_special_mapping(const struct mm_area *vma, const struct vm_special_mapping *sm) { return vma->vm_private_data == sm && @@ -1535,7 +1535,7 @@ bool vma_is_special_mapping(const struct vm_area_struct *vma, * The array pointer and the pages it points to are assumed to stay alive * for as long as this mapping might exist. */ -struct vm_area_struct *_install_special_mapping( +struct mm_area *_install_special_mapping( struct mm_struct *mm, unsigned long addr, unsigned long len, unsigned long vm_flags, const struct vm_special_mapping *spec) @@ -1725,7 +1725,7 @@ subsys_initcall(init_reserve_notifier); * This function is almost certainly NOT what you want for anything other than * early executable temporary stack relocation. */ -int relocate_vma_down(struct vm_area_struct *vma, unsigned long shift) +int relocate_vma_down(struct mm_area *vma, unsigned long shift) { /* * The process proceeds as follows: @@ -1746,7 +1746,7 @@ int relocate_vma_down(struct vm_area_struct *vma, unsigned long shift) unsigned long new_end = old_end - shift; VMA_ITERATOR(vmi, mm, new_start); VMG_STATE(vmg, mm, &vmi, new_start, old_end, 0, vma->vm_pgoff); - struct vm_area_struct *next; + struct mm_area *next; struct mmu_gather tlb; PAGETABLE_MOVE(pmc, vma, vma, old_start, new_start, length); @@ -1824,7 +1824,7 @@ int relocate_vma_down(struct vm_area_struct *vma, unsigned long shift) * before downgrading it. */ bool mmap_read_lock_maybe_expand(struct mm_struct *mm, - struct vm_area_struct *new_vma, + struct mm_area *new_vma, unsigned long addr, bool write) { if (!write || addr >= new_vma->vm_start) { @@ -1845,7 +1845,7 @@ bool mmap_read_lock_maybe_expand(struct mm_struct *mm, return true; } #else -bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct vm_area_struct *vma, +bool mmap_read_lock_maybe_expand(struct mm_struct *mm, struct mm_area *vma, unsigned long addr, bool write) { return false; diff --git a/mm/mmu_gather.c b/mm/mmu_gather.c index db7ba4a725d6..c94257a65e5b 100644 --- a/mm/mmu_gather.c +++ b/mm/mmu_gather.c @@ -48,7 +48,7 @@ static bool tlb_next_batch(struct mmu_gather *tlb) } #ifdef CONFIG_SMP -static void tlb_flush_rmap_batch(struct mmu_gather_batch *batch, struct vm_area_struct *vma) +static void tlb_flush_rmap_batch(struct mmu_gather_batch *batch, struct mm_area *vma) { struct encoded_page **pages = batch->encoded_pages; @@ -79,7 +79,7 @@ static void tlb_flush_rmap_batch(struct mmu_gather_batch *batch, struct vm_area_ * we only need to walk through the current active batch and the * original local one. */ -void tlb_flush_rmaps(struct mmu_gather *tlb, struct vm_area_struct *vma) +void tlb_flush_rmaps(struct mmu_gather *tlb, struct mm_area *vma) { if (!tlb->delayed_rmap) return; diff --git a/mm/mprotect.c b/mm/mprotect.c index 62c1f7945741..2f1f44d80639 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -40,7 +40,7 @@ #include "internal.h" -bool can_change_pte_writable(struct vm_area_struct *vma, unsigned long addr, +bool can_change_pte_writable(struct mm_area *vma, unsigned long addr, pte_t pte) { struct page *page; @@ -84,7 +84,7 @@ bool can_change_pte_writable(struct vm_area_struct *vma, unsigned long addr, } static long change_pte_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pmd_t *pmd, unsigned long addr, + struct mm_area *vma, pmd_t *pmd, unsigned long addr, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { pte_t *pte, oldpte; @@ -292,7 +292,7 @@ static long change_pte_range(struct mmu_gather *tlb, * protection procedure, false otherwise. */ static inline bool -pgtable_split_needed(struct vm_area_struct *vma, unsigned long cp_flags) +pgtable_split_needed(struct mm_area *vma, unsigned long cp_flags) { /* * pte markers only resides in pte level, if we need pte markers, @@ -308,7 +308,7 @@ pgtable_split_needed(struct vm_area_struct *vma, unsigned long cp_flags) * procedure, false otherwise */ static inline bool -pgtable_populate_needed(struct vm_area_struct *vma, unsigned long cp_flags) +pgtable_populate_needed(struct mm_area *vma, unsigned long cp_flags) { /* If not within ioctl(UFFDIO_WRITEPROTECT), then don't bother */ if (!(cp_flags & MM_CP_UFFD_WP)) @@ -351,7 +351,7 @@ pgtable_populate_needed(struct vm_area_struct *vma, unsigned long cp_flags) }) static inline long change_pmd_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pud_t *pud, unsigned long addr, + struct mm_area *vma, pud_t *pud, unsigned long addr, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { pmd_t *pmd; @@ -421,7 +421,7 @@ static inline long change_pmd_range(struct mmu_gather *tlb, } static inline long change_pud_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, p4d_t *p4d, unsigned long addr, + struct mm_area *vma, p4d_t *p4d, unsigned long addr, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { struct mmu_notifier_range range; @@ -480,7 +480,7 @@ static inline long change_pud_range(struct mmu_gather *tlb, } static inline long change_p4d_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, pgd_t *pgd, unsigned long addr, + struct mm_area *vma, pgd_t *pgd, unsigned long addr, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { p4d_t *p4d; @@ -503,7 +503,7 @@ static inline long change_p4d_range(struct mmu_gather *tlb, } static long change_protection_range(struct mmu_gather *tlb, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, unsigned long end, pgprot_t newprot, unsigned long cp_flags) { struct mm_struct *mm = vma->vm_mm; @@ -533,7 +533,7 @@ static long change_protection_range(struct mmu_gather *tlb, } long change_protection(struct mmu_gather *tlb, - struct vm_area_struct *vma, unsigned long start, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long cp_flags) { pgprot_t newprot = vma->vm_page_prot; @@ -595,7 +595,7 @@ static const struct mm_walk_ops prot_none_walk_ops = { int mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, - struct vm_area_struct *vma, struct vm_area_struct **pprev, + struct mm_area *vma, struct mm_area **pprev, unsigned long start, unsigned long end, unsigned long newflags) { struct mm_struct *mm = vma->vm_mm; @@ -704,7 +704,7 @@ static int do_mprotect_pkey(unsigned long start, size_t len, unsigned long prot, int pkey) { unsigned long nstart, end, tmp, reqprot; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; int error; const int grows = prot & (PROT_GROWSDOWN|PROT_GROWSUP); const bool rier = (current->personality & READ_IMPLIES_EXEC) && diff --git a/mm/mremap.c b/mm/mremap.c index 0865387531ed..2634b9f85423 100644 --- a/mm/mremap.c +++ b/mm/mremap.c @@ -61,7 +61,7 @@ struct vma_remap_struct { struct list_head *uf_unmap; /* VMA state, determined in do_mremap(). */ - struct vm_area_struct *vma; + struct mm_area *vma; /* Internal state, determined in do_mremap(). */ unsigned long delta; /* Absolute delta of old_len,new_len. */ @@ -139,7 +139,7 @@ static pmd_t *alloc_new_pmd(struct mm_struct *mm, unsigned long addr) return pmd; } -static void take_rmap_locks(struct vm_area_struct *vma) +static void take_rmap_locks(struct mm_area *vma) { if (vma->vm_file) i_mmap_lock_write(vma->vm_file->f_mapping); @@ -147,7 +147,7 @@ static void take_rmap_locks(struct vm_area_struct *vma) anon_vma_lock_write(vma->anon_vma); } -static void drop_rmap_locks(struct vm_area_struct *vma) +static void drop_rmap_locks(struct mm_area *vma) { if (vma->anon_vma) anon_vma_unlock_write(vma->anon_vma); @@ -173,7 +173,7 @@ static pte_t move_soft_dirty_pte(pte_t pte) static int move_ptes(struct pagetable_move_control *pmc, unsigned long extent, pmd_t *old_pmd, pmd_t *new_pmd) { - struct vm_area_struct *vma = pmc->old; + struct mm_area *vma = pmc->old; bool need_clear_uffd_wp = vma_has_uffd_without_event_remap(vma); struct mm_struct *mm = vma->vm_mm; pte_t *old_pte, *new_pte, pte; @@ -297,7 +297,7 @@ static bool move_normal_pmd(struct pagetable_move_control *pmc, pmd_t *old_pmd, pmd_t *new_pmd) { spinlock_t *old_ptl, *new_ptl; - struct vm_area_struct *vma = pmc->old; + struct mm_area *vma = pmc->old; struct mm_struct *mm = vma->vm_mm; bool res = false; pmd_t pmd; @@ -381,7 +381,7 @@ static bool move_normal_pud(struct pagetable_move_control *pmc, pud_t *old_pud, pud_t *new_pud) { spinlock_t *old_ptl, *new_ptl; - struct vm_area_struct *vma = pmc->old; + struct mm_area *vma = pmc->old; struct mm_struct *mm = vma->vm_mm; pud_t pud; @@ -439,7 +439,7 @@ static bool move_huge_pud(struct pagetable_move_control *pmc, pud_t *old_pud, pud_t *new_pud) { spinlock_t *old_ptl, *new_ptl; - struct vm_area_struct *vma = pmc->old; + struct mm_area *vma = pmc->old; struct mm_struct *mm = vma->vm_mm; pud_t pud; @@ -598,7 +598,7 @@ static bool move_pgt_entry(struct pagetable_move_control *pmc, * so we make an exception for it. */ static bool can_align_down(struct pagetable_move_control *pmc, - struct vm_area_struct *vma, unsigned long addr_to_align, + struct mm_area *vma, unsigned long addr_to_align, unsigned long mask) { unsigned long addr_masked = addr_to_align & mask; @@ -902,7 +902,7 @@ static bool vrm_implies_new_addr(struct vma_remap_struct *vrm) */ static unsigned long vrm_set_new_addr(struct vma_remap_struct *vrm) { - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; unsigned long map_flags = 0; /* Page Offset _into_ the VMA. */ pgoff_t internal_pgoff = (vrm->addr - vma->vm_start) >> PAGE_SHIFT; @@ -978,7 +978,7 @@ static void vrm_stat_account(struct vma_remap_struct *vrm, { unsigned long pages = bytes >> PAGE_SHIFT; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; vm_stat_account(mm, vma->vm_flags, pages); if (vma->vm_flags & VM_LOCKED) { @@ -994,7 +994,7 @@ static void vrm_stat_account(struct vma_remap_struct *vrm, static unsigned long prep_move_vma(struct vma_remap_struct *vrm) { unsigned long err = 0; - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; unsigned long old_addr = vrm->addr; unsigned long old_len = vrm->old_len; unsigned long dummy = vma->vm_flags; @@ -1043,7 +1043,7 @@ static void unmap_source_vma(struct vma_remap_struct *vrm) struct mm_struct *mm = current->mm; unsigned long addr = vrm->addr; unsigned long len = vrm->old_len; - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; VMA_ITERATOR(vmi, mm, addr); int err; unsigned long vm_start; @@ -1119,13 +1119,13 @@ static void unmap_source_vma(struct vma_remap_struct *vrm) unsigned long end = addr + len; if (vm_start < addr) { - struct vm_area_struct *prev = vma_prev(&vmi); + struct mm_area *prev = vma_prev(&vmi); vm_flags_set(prev, VM_ACCOUNT); /* Acquires VMA lock. */ } if (vm_end > end) { - struct vm_area_struct *next = vma_next(&vmi); + struct mm_area *next = vma_next(&vmi); vm_flags_set(next, VM_ACCOUNT); /* Acquires VMA lock. */ } @@ -1141,14 +1141,14 @@ static void unmap_source_vma(struct vma_remap_struct *vrm) * error code. */ static int copy_vma_and_data(struct vma_remap_struct *vrm, - struct vm_area_struct **new_vma_ptr) + struct mm_area **new_vma_ptr) { unsigned long internal_offset = vrm->addr - vrm->vma->vm_start; unsigned long internal_pgoff = internal_offset >> PAGE_SHIFT; unsigned long new_pgoff = vrm->vma->vm_pgoff + internal_pgoff; unsigned long moved_len; - struct vm_area_struct *vma = vrm->vma; - struct vm_area_struct *new_vma; + struct mm_area *vma = vrm->vma; + struct mm_area *new_vma; int err = 0; PAGETABLE_MOVE(pmc, NULL, NULL, vrm->addr, vrm->new_addr, vrm->old_len); @@ -1206,7 +1206,7 @@ static int copy_vma_and_data(struct vma_remap_struct *vrm, * links from it (if the entire VMA was copied over). */ static void dontunmap_complete(struct vma_remap_struct *vrm, - struct vm_area_struct *new_vma) + struct mm_area *new_vma) { unsigned long start = vrm->addr; unsigned long end = vrm->addr + vrm->old_len; @@ -1232,7 +1232,7 @@ static void dontunmap_complete(struct vma_remap_struct *vrm, static unsigned long move_vma(struct vma_remap_struct *vrm) { struct mm_struct *mm = current->mm; - struct vm_area_struct *new_vma; + struct mm_area *new_vma; unsigned long hiwater_vm; int err; @@ -1288,7 +1288,7 @@ static unsigned long move_vma(struct vma_remap_struct *vrm) static int resize_is_valid(struct vma_remap_struct *vrm) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; unsigned long addr = vrm->addr; unsigned long old_len = vrm->old_len; unsigned long new_len = vrm->new_len; @@ -1444,7 +1444,7 @@ static unsigned long mremap_to(struct vma_remap_struct *vrm) return move_vma(vrm); } -static int vma_expandable(struct vm_area_struct *vma, unsigned long delta) +static int vma_expandable(struct mm_area *vma, unsigned long delta) { unsigned long end = vma->vm_end + delta; @@ -1546,7 +1546,7 @@ static unsigned long check_mremap_params(struct vma_remap_struct *vrm) static unsigned long expand_vma_in_place(struct vma_remap_struct *vrm) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = vrm->vma; + struct mm_area *vma = vrm->vma; VMA_ITERATOR(vmi, mm, vma->vm_end); if (!vrm_charge(vrm)) @@ -1688,7 +1688,7 @@ static unsigned long mremap_at(struct vma_remap_struct *vrm) static unsigned long do_mremap(struct vma_remap_struct *vrm) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long ret; ret = check_mremap_params(vrm); diff --git a/mm/mseal.c b/mm/mseal.c index c27197ac04e8..791ea7bc053a 100644 --- a/mm/mseal.c +++ b/mm/mseal.c @@ -16,7 +16,7 @@ #include #include "internal.h" -static inline void set_vma_sealed(struct vm_area_struct *vma) +static inline void set_vma_sealed(struct mm_area *vma) { vm_flags_set(vma, VM_SEALED); } @@ -37,7 +37,7 @@ static bool is_madv_discard(int behavior) return false; } -static bool is_ro_anon(struct vm_area_struct *vma) +static bool is_ro_anon(struct mm_area *vma) { /* check anonymous mapping. */ if (vma->vm_file || vma->vm_flags & VM_SHARED) @@ -57,7 +57,7 @@ static bool is_ro_anon(struct vm_area_struct *vma) /* * Check if a vma is allowed to be modified by madvise. */ -bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) +bool can_modify_vma_madv(struct mm_area *vma, int behavior) { if (!is_madv_discard(behavior)) return true; @@ -69,8 +69,8 @@ bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) return true; } -static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma, - struct vm_area_struct **prev, unsigned long start, +static int mseal_fixup(struct vma_iterator *vmi, struct mm_area *vma, + struct mm_area **prev, unsigned long start, unsigned long end, vm_flags_t newflags) { int ret = 0; @@ -100,7 +100,7 @@ static int mseal_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma, */ static int check_mm_seal(unsigned long start, unsigned long end) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long nstart = start; VMA_ITERATOR(vmi, current->mm, start); @@ -126,7 +126,7 @@ static int check_mm_seal(unsigned long start, unsigned long end) static int apply_mm_seal(unsigned long start, unsigned long end) { unsigned long nstart; - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; VMA_ITERATOR(vmi, current->mm, start); diff --git a/mm/msync.c b/mm/msync.c index ac4c9bfea2e7..c46feec8295a 100644 --- a/mm/msync.c +++ b/mm/msync.c @@ -33,7 +33,7 @@ SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags) { unsigned long end; struct mm_struct *mm = current->mm; - struct vm_area_struct *vma; + struct mm_area *vma; int unmapped_error = 0; int error = -EINVAL; diff --git a/mm/nommu.c b/mm/nommu.c index 617e7ba8022f..af225d5af3bb 100644 --- a/mm/nommu.c +++ b/mm/nommu.c @@ -89,7 +89,7 @@ unsigned int kobjsize(const void *objp) * PAGE_SIZE for 0-order pages. */ if (!PageCompound(page)) { - struct vm_area_struct *vma; + struct mm_area *vma; vma = find_vma(current->mm, (unsigned long)objp); if (vma) @@ -144,7 +144,7 @@ static void *__vmalloc_user_flags(unsigned long size, gfp_t flags) ret = __vmalloc(size, flags); if (ret) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_write_lock(current->mm); vma = find_vma(current->mm, (unsigned long)ret); @@ -325,28 +325,28 @@ void free_vm_area(struct vm_struct *area) } EXPORT_SYMBOL_GPL(free_vm_area); -int vm_insert_page(struct vm_area_struct *vma, unsigned long addr, +int vm_insert_page(struct mm_area *vma, unsigned long addr, struct page *page) { return -EINVAL; } EXPORT_SYMBOL(vm_insert_page); -int vm_insert_pages(struct vm_area_struct *vma, unsigned long addr, +int vm_insert_pages(struct mm_area *vma, unsigned long addr, struct page **pages, unsigned long *num) { return -EINVAL; } EXPORT_SYMBOL(vm_insert_pages); -int vm_map_pages(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages(struct mm_area *vma, struct page **pages, unsigned long num) { return -EINVAL; } EXPORT_SYMBOL(vm_map_pages); -int vm_map_pages_zero(struct vm_area_struct *vma, struct page **pages, +int vm_map_pages_zero(struct mm_area *vma, struct page **pages, unsigned long num) { return -EINVAL; @@ -540,7 +540,7 @@ static void put_nommu_region(struct vm_region *region) __put_nommu_region(region); } -static void setup_vma_to_mm(struct vm_area_struct *vma, struct mm_struct *mm) +static void setup_vma_to_mm(struct mm_area *vma, struct mm_struct *mm) { vma->vm_mm = mm; @@ -556,7 +556,7 @@ static void setup_vma_to_mm(struct vm_area_struct *vma, struct mm_struct *mm) } } -static void cleanup_vma_from_mm(struct vm_area_struct *vma) +static void cleanup_vma_from_mm(struct mm_area *vma) { vma->vm_mm->map_count--; /* remove the VMA from the mapping */ @@ -575,7 +575,7 @@ static void cleanup_vma_from_mm(struct vm_area_struct *vma) /* * delete a VMA from its owning mm_struct and address space */ -static int delete_vma_from_mm(struct vm_area_struct *vma) +static int delete_vma_from_mm(struct mm_area *vma) { VMA_ITERATOR(vmi, vma->vm_mm, vma->vm_start); @@ -594,7 +594,7 @@ static int delete_vma_from_mm(struct vm_area_struct *vma) /* * destroy a VMA record */ -static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) +static void delete_vma(struct mm_struct *mm, struct mm_area *vma) { vma_close(vma); if (vma->vm_file) @@ -603,7 +603,7 @@ static void delete_vma(struct mm_struct *mm, struct vm_area_struct *vma) vm_area_free(vma); } -struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, +struct mm_area *find_vma_intersection(struct mm_struct *mm, unsigned long start_addr, unsigned long end_addr) { @@ -618,7 +618,7 @@ EXPORT_SYMBOL(find_vma_intersection); * look up the first VMA in which addr resides, NULL if none * - should be called with mm->mmap_lock at least held readlocked */ -struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr) +struct mm_area *find_vma(struct mm_struct *mm, unsigned long addr) { VMA_ITERATOR(vmi, mm, addr); @@ -630,10 +630,10 @@ EXPORT_SYMBOL(find_vma); * At least xtensa ends up having protection faults even with no * MMU.. No stack expansion, at least. */ -struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, +struct mm_area *lock_mm_and_find_vma(struct mm_struct *mm, unsigned long addr, struct pt_regs *regs) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_read_lock(mm); vma = vma_lookup(mm, addr); @@ -646,12 +646,12 @@ struct vm_area_struct *lock_mm_and_find_vma(struct mm_struct *mm, * expand a stack to a given address * - not supported under NOMMU conditions */ -int expand_stack_locked(struct vm_area_struct *vma, unsigned long addr) +int expand_stack_locked(struct mm_area *vma, unsigned long addr) { return -ENOMEM; } -struct vm_area_struct *expand_stack(struct mm_struct *mm, unsigned long addr) +struct mm_area *expand_stack(struct mm_struct *mm, unsigned long addr) { mmap_read_unlock(mm); return NULL; @@ -661,11 +661,11 @@ struct vm_area_struct *expand_stack(struct mm_struct *mm, unsigned long addr) * look up the first VMA exactly that exactly matches addr * - should be called with mm->mmap_lock at least held readlocked */ -static struct vm_area_struct *find_vma_exact(struct mm_struct *mm, +static struct mm_area *find_vma_exact(struct mm_struct *mm, unsigned long addr, unsigned long len) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long end = addr + len; VMA_ITERATOR(vmi, mm, addr); @@ -887,7 +887,7 @@ static unsigned long determine_vm_flags(struct file *file, * set up a shared mapping on a file (the driver or filesystem provides and * pins the storage) */ -static int do_mmap_shared_file(struct vm_area_struct *vma) +static int do_mmap_shared_file(struct mm_area *vma) { int ret; @@ -908,7 +908,7 @@ static int do_mmap_shared_file(struct vm_area_struct *vma) /* * set up a private mapping or an anonymous shared mapping */ -static int do_mmap_private(struct vm_area_struct *vma, +static int do_mmap_private(struct mm_area *vma, struct vm_region *region, unsigned long len, unsigned long capabilities) @@ -1016,7 +1016,7 @@ unsigned long do_mmap(struct file *file, unsigned long *populate, struct list_head *uf) { - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_region *region; struct rb_node *rb; unsigned long capabilities, result; @@ -1300,10 +1300,10 @@ SYSCALL_DEFINE1(old_mmap, struct mmap_arg_struct __user *, arg) * split a vma into two pieces at address 'addr', a new vma is allocated either * for the first part or the tail. */ -static int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, +static int split_vma(struct vma_iterator *vmi, struct mm_area *vma, unsigned long addr, int new_below) { - struct vm_area_struct *new; + struct mm_area *new; struct vm_region *region; unsigned long npages; struct mm_struct *mm; @@ -1379,7 +1379,7 @@ static int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, * the end */ static int vmi_shrink_vma(struct vma_iterator *vmi, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long from, unsigned long to) { struct vm_region *region; @@ -1423,7 +1423,7 @@ static int vmi_shrink_vma(struct vma_iterator *vmi, int do_munmap(struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf) { VMA_ITERATOR(vmi, mm, start); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long end; int ret = 0; @@ -1505,7 +1505,7 @@ SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len) void exit_mmap(struct mm_struct *mm) { VMA_ITERATOR(vmi, mm, 0); - struct vm_area_struct *vma; + struct mm_area *vma; if (!mm) return; @@ -1540,7 +1540,7 @@ static unsigned long do_mremap(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr) { - struct vm_area_struct *vma; + struct mm_area *vma; /* insanity checks first */ old_len = PAGE_ALIGN(old_len); @@ -1584,7 +1584,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, return ret; } -int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, +int remap_pfn_range(struct mm_area *vma, unsigned long addr, unsigned long pfn, unsigned long size, pgprot_t prot) { if (addr != (pfn << PAGE_SHIFT)) @@ -1595,7 +1595,7 @@ int remap_pfn_range(struct vm_area_struct *vma, unsigned long addr, } EXPORT_SYMBOL(remap_pfn_range); -int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long len) +int vm_iomap_memory(struct mm_area *vma, phys_addr_t start, unsigned long len) { unsigned long pfn = start >> PAGE_SHIFT; unsigned long vm_len = vma->vm_end - vma->vm_start; @@ -1605,7 +1605,7 @@ int vm_iomap_memory(struct vm_area_struct *vma, phys_addr_t start, unsigned long } EXPORT_SYMBOL(vm_iomap_memory); -int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, +int remap_vmalloc_range(struct mm_area *vma, void *addr, unsigned long pgoff) { unsigned int size = vma->vm_end - vma->vm_start; @@ -1638,7 +1638,7 @@ EXPORT_SYMBOL(filemap_map_pages); static int __access_remote_vm(struct mm_struct *mm, unsigned long addr, void *buf, int len, unsigned int gup_flags) { - struct vm_area_struct *vma; + struct mm_area *vma; int write = gup_flags & FOLL_WRITE; if (mmap_read_lock_killable(mm)) @@ -1717,7 +1717,7 @@ static int __copy_remote_vm_str(struct mm_struct *mm, unsigned long addr, void *buf, int len) { unsigned long addr_end; - struct vm_area_struct *vma; + struct mm_area *vma; int ret = -EFAULT; *(char *)buf = '\0'; @@ -1801,7 +1801,7 @@ EXPORT_SYMBOL_GPL(copy_remote_vm_str); int nommu_shrink_inode_mappings(struct inode *inode, size_t size, size_t newsize) { - struct vm_area_struct *vma; + struct mm_area *vma; struct vm_region *region; pgoff_t low, high; size_t r_size, r_top; diff --git a/mm/oom_kill.c b/mm/oom_kill.c index 25923cfec9c6..55bd5da45232 100644 --- a/mm/oom_kill.c +++ b/mm/oom_kill.c @@ -514,7 +514,7 @@ static DEFINE_SPINLOCK(oom_reaper_lock); static bool __oom_reap_task_mm(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; bool ret = true; VMA_ITERATOR(vmi, mm, 0); diff --git a/mm/page_idle.c b/mm/page_idle.c index 408aaf29a3ea..655e4c716d0d 100644 --- a/mm/page_idle.c +++ b/mm/page_idle.c @@ -50,7 +50,7 @@ static struct folio *page_idle_get_folio(unsigned long pfn) } static bool page_idle_clear_pte_refs_one(struct folio *folio, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long addr, void *arg) { DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, addr, 0); diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c index e463c3be934a..13f7bd3e99c9 100644 --- a/mm/page_vma_mapped.c +++ b/mm/page_vma_mapped.c @@ -183,7 +183,7 @@ static void step_forward(struct page_vma_mapped_walk *pvmw, unsigned long size) */ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw) { - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; struct mm_struct *mm = vma->vm_mm; unsigned long end; spinlock_t *ptl; @@ -342,7 +342,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw) * Only valid for normal file or anonymous VMAs. */ unsigned long page_mapped_in_vma(const struct page *page, - struct vm_area_struct *vma) + struct mm_area *vma) { const struct folio *folio = page_folio(page); struct page_vma_mapped_walk pvmw = { diff --git a/mm/pagewalk.c b/mm/pagewalk.c index e478777c86e1..2266b191ae3e 100644 --- a/mm/pagewalk.c +++ b/mm/pagewalk.c @@ -321,7 +321,7 @@ static unsigned long hugetlb_entry_end(struct hstate *h, unsigned long addr, static int walk_hugetlb_range(unsigned long addr, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; struct hstate *h = hstate_vma(vma); unsigned long next; unsigned long hmask = huge_page_mask(h); @@ -364,7 +364,7 @@ static int walk_hugetlb_range(unsigned long addr, unsigned long end, static int walk_page_test(unsigned long start, unsigned long end, struct mm_walk *walk) { - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; const struct mm_walk_ops *ops = walk->ops; if (ops->test_walk) @@ -391,7 +391,7 @@ static int __walk_page_range(unsigned long start, unsigned long end, struct mm_walk *walk) { int err = 0; - struct vm_area_struct *vma = walk->vma; + struct mm_area *vma = walk->vma; const struct mm_walk_ops *ops = walk->ops; bool is_hugetlb = is_vm_hugetlb_page(vma); @@ -426,7 +426,7 @@ static inline void process_mm_walk_lock(struct mm_struct *mm, mmap_assert_write_locked(mm); } -static inline void process_vma_walk_lock(struct vm_area_struct *vma, +static inline void process_vma_walk_lock(struct mm_area *vma, enum page_walk_lock walk_lock) { #ifdef CONFIG_PER_VMA_LOCK @@ -457,7 +457,7 @@ int walk_page_range_mm(struct mm_struct *mm, unsigned long start, { int err = 0; unsigned long next; - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_walk walk = { .ops = ops, .mm = mm, @@ -648,7 +648,7 @@ int walk_page_range_novma(struct mm_struct *mm, unsigned long start, return walk_pgd_range(start, end, &walk); } -int walk_page_range_vma(struct vm_area_struct *vma, unsigned long start, +int walk_page_range_vma(struct mm_area *vma, unsigned long start, unsigned long end, const struct mm_walk_ops *ops, void *private) { @@ -671,7 +671,7 @@ int walk_page_range_vma(struct vm_area_struct *vma, unsigned long start, return __walk_page_range(start, end, &walk); } -int walk_page_vma(struct vm_area_struct *vma, const struct mm_walk_ops *ops, +int walk_page_vma(struct mm_area *vma, const struct mm_walk_ops *ops, void *private) { struct mm_walk walk = { @@ -714,7 +714,7 @@ int walk_page_vma(struct vm_area_struct *vma, const struct mm_walk_ops *ops, * struct mm_struct::mmap_lock is not needed. * * Also this means that a caller can't rely on the struct - * vm_area_struct::vm_flags to be constant across a call, + * mm_area::vm_flags to be constant across a call, * except for immutable flags. Callers requiring this shouldn't use * this function. * @@ -729,7 +729,7 @@ int walk_page_mapping(struct address_space *mapping, pgoff_t first_index, .ops = ops, .private = private, }; - struct vm_area_struct *vma; + struct mm_area *vma; pgoff_t vba, vea, cba, cea; unsigned long start_addr, end_addr; int err = 0; @@ -827,7 +827,7 @@ int walk_page_mapping(struct address_space *mapping, pgoff_t first_index, * Return: folio pointer on success, otherwise NULL. */ struct folio *folio_walk_start(struct folio_walk *fw, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, folio_walk_flags_t flags) { unsigned long entry_size; diff --git a/mm/pgtable-generic.c b/mm/pgtable-generic.c index 5a882f2b10f9..b6e5dc860ec0 100644 --- a/mm/pgtable-generic.c +++ b/mm/pgtable-generic.c @@ -65,7 +65,7 @@ void pmd_clear_bad(pmd_t *pmd) * used to be done in the caller, but sparc needs minor faults to * force that call on sun4c so we changed this macro slightly */ -int ptep_set_access_flags(struct vm_area_struct *vma, +int ptep_set_access_flags(struct mm_area *vma, unsigned long address, pte_t *ptep, pte_t entry, int dirty) { @@ -79,7 +79,7 @@ int ptep_set_access_flags(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PTEP_CLEAR_YOUNG_FLUSH -int ptep_clear_flush_young(struct vm_area_struct *vma, +int ptep_clear_flush_young(struct mm_area *vma, unsigned long address, pte_t *ptep) { int young; @@ -91,7 +91,7 @@ int ptep_clear_flush_young(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PTEP_CLEAR_FLUSH -pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address, +pte_t ptep_clear_flush(struct mm_area *vma, unsigned long address, pte_t *ptep) { struct mm_struct *mm = (vma)->vm_mm; @@ -106,7 +106,7 @@ pte_t ptep_clear_flush(struct vm_area_struct *vma, unsigned long address, #ifdef CONFIG_TRANSPARENT_HUGEPAGE #ifndef __HAVE_ARCH_PMDP_SET_ACCESS_FLAGS -int pmdp_set_access_flags(struct vm_area_struct *vma, +int pmdp_set_access_flags(struct mm_area *vma, unsigned long address, pmd_t *pmdp, pmd_t entry, int dirty) { @@ -121,7 +121,7 @@ int pmdp_set_access_flags(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PMDP_CLEAR_YOUNG_FLUSH -int pmdp_clear_flush_young(struct vm_area_struct *vma, +int pmdp_clear_flush_young(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { int young; @@ -134,7 +134,7 @@ int pmdp_clear_flush_young(struct vm_area_struct *vma, #endif #ifndef __HAVE_ARCH_PMDP_HUGE_CLEAR_FLUSH -pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_huge_clear_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { pmd_t pmd; @@ -147,7 +147,7 @@ pmd_t pmdp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address, } #ifdef CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD -pud_t pudp_huge_clear_flush(struct vm_area_struct *vma, unsigned long address, +pud_t pudp_huge_clear_flush(struct mm_area *vma, unsigned long address, pud_t *pudp) { pud_t pud; @@ -195,7 +195,7 @@ pgtable_t pgtable_trans_huge_withdraw(struct mm_struct *mm, pmd_t *pmdp) #endif #ifndef __HAVE_ARCH_PMDP_INVALIDATE -pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_invalidate(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { VM_WARN_ON_ONCE(!pmd_present(*pmdp)); @@ -206,7 +206,7 @@ pmd_t pmdp_invalidate(struct vm_area_struct *vma, unsigned long address, #endif #ifndef __HAVE_ARCH_PMDP_INVALIDATE_AD -pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_invalidate_ad(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { VM_WARN_ON_ONCE(!pmd_present(*pmdp)); @@ -215,7 +215,7 @@ pmd_t pmdp_invalidate_ad(struct vm_area_struct *vma, unsigned long address, #endif #ifndef pmdp_collapse_flush -pmd_t pmdp_collapse_flush(struct vm_area_struct *vma, unsigned long address, +pmd_t pmdp_collapse_flush(struct mm_area *vma, unsigned long address, pmd_t *pmdp) { /* diff --git a/mm/rmap.c b/mm/rmap.c index 67bb273dfb80..6c00e97fec67 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -147,7 +147,7 @@ static void anon_vma_chain_free(struct anon_vma_chain *anon_vma_chain) kmem_cache_free(anon_vma_chain_cachep, anon_vma_chain); } -static void anon_vma_chain_link(struct vm_area_struct *vma, +static void anon_vma_chain_link(struct mm_area *vma, struct anon_vma_chain *avc, struct anon_vma *anon_vma) { @@ -183,7 +183,7 @@ static void anon_vma_chain_link(struct vm_area_struct *vma, * to do any locking for the common case of already having * an anon_vma. */ -int __anon_vma_prepare(struct vm_area_struct *vma) +int __anon_vma_prepare(struct mm_area *vma) { struct mm_struct *mm = vma->vm_mm; struct anon_vma *anon_vma, *allocated; @@ -277,7 +277,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root) * walker has a good chance of avoiding scanning the whole hierarchy when it * searches where page is mapped. */ -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) +int anon_vma_clone(struct mm_area *dst, struct mm_area *src) { struct anon_vma_chain *avc, *pavc; struct anon_vma *root = NULL; @@ -331,7 +331,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) * the corresponding VMA in the parent process is attached to. * Returns 0 on success, non-zero on failure. */ -int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma) +int anon_vma_fork(struct mm_area *vma, struct mm_area *pvma) { struct anon_vma_chain *avc; struct anon_vma *anon_vma; @@ -393,7 +393,7 @@ int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma) return -ENOMEM; } -void unlink_anon_vmas(struct vm_area_struct *vma) +void unlink_anon_vmas(struct mm_area *vma) { struct anon_vma_chain *avc, *next; struct anon_vma *root = NULL; @@ -786,7 +786,7 @@ static bool should_defer_flush(struct mm_struct *mm, enum ttu_flags flags) * Return: The virtual address corresponding to this page in the VMA. */ unsigned long page_address_in_vma(const struct folio *folio, - const struct page *page, const struct vm_area_struct *vma) + const struct page *page, const struct mm_area *vma) { if (folio_test_anon(folio)) { struct anon_vma *page__anon_vma = folio_anon_vma(folio); @@ -847,7 +847,7 @@ struct folio_referenced_arg { * arg: folio_referenced_arg will be passed */ static bool folio_referenced_one(struct folio *folio, - struct vm_area_struct *vma, unsigned long address, void *arg) + struct mm_area *vma, unsigned long address, void *arg) { struct folio_referenced_arg *pra = arg; DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, address, 0); @@ -947,7 +947,7 @@ static bool folio_referenced_one(struct folio *folio, return true; } -static bool invalid_folio_referenced_vma(struct vm_area_struct *vma, void *arg) +static bool invalid_folio_referenced_vma(struct mm_area *vma, void *arg) { struct folio_referenced_arg *pra = arg; struct mem_cgroup *memcg = pra->memcg; @@ -1024,7 +1024,7 @@ int folio_referenced(struct folio *folio, int is_locked, static int page_vma_mkclean_one(struct page_vma_mapped_walk *pvmw) { int cleaned = 0; - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; struct mmu_notifier_range range; unsigned long address = pvmw->address; @@ -1091,7 +1091,7 @@ static int page_vma_mkclean_one(struct page_vma_mapped_walk *pvmw) return cleaned; } -static bool page_mkclean_one(struct folio *folio, struct vm_area_struct *vma, +static bool page_mkclean_one(struct folio *folio, struct mm_area *vma, unsigned long address, void *arg) { DEFINE_FOLIO_VMA_WALK(pvmw, folio, vma, address, PVMW_SYNC); @@ -1102,7 +1102,7 @@ static bool page_mkclean_one(struct folio *folio, struct vm_area_struct *vma, return true; } -static bool invalid_mkclean_vma(struct vm_area_struct *vma, void *arg) +static bool invalid_mkclean_vma(struct mm_area *vma, void *arg) { if (vma->vm_flags & VM_SHARED) return false; @@ -1143,7 +1143,7 @@ struct wrprotect_file_state { }; static bool mapping_wrprotect_range_one(struct folio *folio, - struct vm_area_struct *vma, unsigned long address, void *arg) + struct mm_area *vma, unsigned long address, void *arg) { struct wrprotect_file_state *state = (struct wrprotect_file_state *)arg; struct page_vma_mapped_walk pvmw = { @@ -1222,7 +1222,7 @@ EXPORT_SYMBOL_GPL(mapping_wrprotect_range); * Returns the number of cleaned PTEs (including PMDs). */ int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff, - struct vm_area_struct *vma) + struct mm_area *vma) { struct page_vma_mapped_walk pvmw = { .pfn = pfn, @@ -1242,7 +1242,7 @@ int pfn_mkclean_range(unsigned long pfn, unsigned long nr_pages, pgoff_t pgoff, } static __always_inline unsigned int __folio_add_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *vma, + struct page *page, int nr_pages, struct mm_area *vma, enum rmap_level level, int *nr_pmdmapped) { atomic_t *mapped = &folio->_nr_pages_mapped; @@ -1327,7 +1327,7 @@ static __always_inline unsigned int __folio_add_rmap(struct folio *folio, * that folio can be moved into the anon_vma that belongs to just that * process, so the rmap code will not search the parent or sibling processes. */ -void folio_move_anon_rmap(struct folio *folio, struct vm_area_struct *vma) +void folio_move_anon_rmap(struct folio *folio, struct mm_area *vma) { void *anon_vma = vma->anon_vma; @@ -1350,7 +1350,7 @@ void folio_move_anon_rmap(struct folio *folio, struct vm_area_struct *vma) * @address: User virtual address of the mapping * @exclusive: Whether the folio is exclusive to the process. */ -static void __folio_set_anon(struct folio *folio, struct vm_area_struct *vma, +static void __folio_set_anon(struct folio *folio, struct mm_area *vma, unsigned long address, bool exclusive) { struct anon_vma *anon_vma = vma->anon_vma; @@ -1383,7 +1383,7 @@ static void __folio_set_anon(struct folio *folio, struct vm_area_struct *vma, * @address: the user virtual address mapped */ static void __page_check_anon_rmap(const struct folio *folio, - const struct page *page, struct vm_area_struct *vma, + const struct page *page, struct mm_area *vma, unsigned long address) { /* @@ -1426,7 +1426,7 @@ static void __folio_mod_stat(struct folio *folio, int nr, int nr_pmdmapped) } static __always_inline void __folio_add_anon_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *vma, + struct page *page, int nr_pages, struct mm_area *vma, unsigned long address, rmap_t flags, enum rmap_level level) { int i, nr, nr_pmdmapped = 0; @@ -1505,7 +1505,7 @@ static __always_inline void __folio_add_anon_rmap(struct folio *folio, * (but KSM folios are never downgraded). */ void folio_add_anon_rmap_ptes(struct folio *folio, struct page *page, - int nr_pages, struct vm_area_struct *vma, unsigned long address, + int nr_pages, struct mm_area *vma, unsigned long address, rmap_t flags) { __folio_add_anon_rmap(folio, page, nr_pages, vma, address, flags, @@ -1526,7 +1526,7 @@ void folio_add_anon_rmap_ptes(struct folio *folio, struct page *page, * the anon_vma case: to serialize mapping,index checking after setting. */ void folio_add_anon_rmap_pmd(struct folio *folio, struct page *page, - struct vm_area_struct *vma, unsigned long address, rmap_t flags) + struct mm_area *vma, unsigned long address, rmap_t flags) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE __folio_add_anon_rmap(folio, page, HPAGE_PMD_NR, vma, address, flags, @@ -1551,7 +1551,7 @@ void folio_add_anon_rmap_pmd(struct folio *folio, struct page *page, * * If the folio is pmd-mappable, it is accounted as a THP. */ -void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, +void folio_add_new_anon_rmap(struct folio *folio, struct mm_area *vma, unsigned long address, rmap_t flags) { const bool exclusive = flags & RMAP_EXCLUSIVE; @@ -1610,7 +1610,7 @@ void folio_add_new_anon_rmap(struct folio *folio, struct vm_area_struct *vma, } static __always_inline void __folio_add_file_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *vma, + struct page *page, int nr_pages, struct mm_area *vma, enum rmap_level level) { int nr, nr_pmdmapped = 0; @@ -1637,7 +1637,7 @@ static __always_inline void __folio_add_file_rmap(struct folio *folio, * The caller needs to hold the page table lock. */ void folio_add_file_rmap_ptes(struct folio *folio, struct page *page, - int nr_pages, struct vm_area_struct *vma) + int nr_pages, struct mm_area *vma) { __folio_add_file_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE); } @@ -1653,7 +1653,7 @@ void folio_add_file_rmap_ptes(struct folio *folio, struct page *page, * The caller needs to hold the page table lock. */ void folio_add_file_rmap_pmd(struct folio *folio, struct page *page, - struct vm_area_struct *vma) + struct mm_area *vma) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE __folio_add_file_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD); @@ -1673,7 +1673,7 @@ void folio_add_file_rmap_pmd(struct folio *folio, struct page *page, * The caller needs to hold the page table lock. */ void folio_add_file_rmap_pud(struct folio *folio, struct page *page, - struct vm_area_struct *vma) + struct mm_area *vma) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) @@ -1684,7 +1684,7 @@ void folio_add_file_rmap_pud(struct folio *folio, struct page *page, } static __always_inline void __folio_remove_rmap(struct folio *folio, - struct page *page, int nr_pages, struct vm_area_struct *vma, + struct page *page, int nr_pages, struct mm_area *vma, enum rmap_level level) { atomic_t *mapped = &folio->_nr_pages_mapped; @@ -1799,7 +1799,7 @@ static __always_inline void __folio_remove_rmap(struct folio *folio, * The caller needs to hold the page table lock. */ void folio_remove_rmap_ptes(struct folio *folio, struct page *page, - int nr_pages, struct vm_area_struct *vma) + int nr_pages, struct mm_area *vma) { __folio_remove_rmap(folio, page, nr_pages, vma, RMAP_LEVEL_PTE); } @@ -1815,7 +1815,7 @@ void folio_remove_rmap_ptes(struct folio *folio, struct page *page, * The caller needs to hold the page table lock. */ void folio_remove_rmap_pmd(struct folio *folio, struct page *page, - struct vm_area_struct *vma) + struct mm_area *vma) { #ifdef CONFIG_TRANSPARENT_HUGEPAGE __folio_remove_rmap(folio, page, HPAGE_PMD_NR, vma, RMAP_LEVEL_PMD); @@ -1835,7 +1835,7 @@ void folio_remove_rmap_pmd(struct folio *folio, struct page *page, * The caller needs to hold the page table lock. */ void folio_remove_rmap_pud(struct folio *folio, struct page *page, - struct vm_area_struct *vma) + struct mm_area *vma) { #if defined(CONFIG_TRANSPARENT_HUGEPAGE) && \ defined(CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD) @@ -1867,7 +1867,7 @@ static inline bool can_batch_unmap_folio_ptes(unsigned long addr, /* * @arg: enum ttu_flags will be passed to this argument */ -static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, +static bool try_to_unmap_one(struct folio *folio, struct mm_area *vma, unsigned long address, void *arg) { struct mm_struct *mm = vma->vm_mm; @@ -2227,7 +2227,7 @@ static bool try_to_unmap_one(struct folio *folio, struct vm_area_struct *vma, return ret; } -static bool invalid_migration_vma(struct vm_area_struct *vma, void *arg) +static bool invalid_migration_vma(struct mm_area *vma, void *arg) { return vma_is_temporary_stack(vma); } @@ -2269,7 +2269,7 @@ void try_to_unmap(struct folio *folio, enum ttu_flags flags) * If TTU_SPLIT_HUGE_PMD is specified any PMD mappings will be split into PTEs * containing migration entries. */ -static bool try_to_migrate_one(struct folio *folio, struct vm_area_struct *vma, +static bool try_to_migrate_one(struct folio *folio, struct mm_area *vma, unsigned long address, void *arg) { struct mm_struct *mm = vma->vm_mm; @@ -2657,7 +2657,7 @@ struct page *make_device_exclusive(struct mm_struct *mm, unsigned long addr, { struct mmu_notifier_range range; struct folio *folio, *fw_folio; - struct vm_area_struct *vma; + struct mm_area *vma; struct folio_walk fw; struct page *page; swp_entry_t entry; @@ -2821,7 +2821,7 @@ static void rmap_walk_anon(struct folio *folio, pgoff_end = pgoff_start + folio_nr_pages(folio) - 1; anon_vma_interval_tree_foreach(avc, &anon_vma->rb_root, pgoff_start, pgoff_end) { - struct vm_area_struct *vma = avc->vma; + struct mm_area *vma = avc->vma; unsigned long address = vma_address(vma, pgoff_start, folio_nr_pages(folio)); @@ -2866,7 +2866,7 @@ static void __rmap_walk_file(struct folio *folio, struct address_space *mapping, struct rmap_walk_control *rwc, bool locked) { pgoff_t pgoff_end = pgoff_start + nr_pages - 1; - struct vm_area_struct *vma; + struct mm_area *vma; VM_WARN_ON_FOLIO(folio && mapping != folio_mapping(folio), folio); VM_WARN_ON_FOLIO(folio && pgoff_start != folio_pgoff(folio), folio); @@ -2958,7 +2958,7 @@ void rmap_walk_locked(struct folio *folio, struct rmap_walk_control *rwc) * Unlike common anonymous pages, anonymous hugepages have no accounting code * and no lru code, because we handle hugepages differently from common pages. */ -void hugetlb_add_anon_rmap(struct folio *folio, struct vm_area_struct *vma, +void hugetlb_add_anon_rmap(struct folio *folio, struct mm_area *vma, unsigned long address, rmap_t flags) { VM_WARN_ON_FOLIO(!folio_test_hugetlb(folio), folio); @@ -2973,7 +2973,7 @@ void hugetlb_add_anon_rmap(struct folio *folio, struct vm_area_struct *vma, } void hugetlb_add_new_anon_rmap(struct folio *folio, - struct vm_area_struct *vma, unsigned long address) + struct mm_area *vma, unsigned long address) { VM_WARN_ON_FOLIO(!folio_test_hugetlb(folio), folio); diff --git a/mm/secretmem.c b/mm/secretmem.c index 1b0a214ee558..6fc28aeec966 100644 --- a/mm/secretmem.c +++ b/mm/secretmem.c @@ -120,7 +120,7 @@ static int secretmem_release(struct inode *inode, struct file *file) return 0; } -static int secretmem_mmap(struct file *file, struct vm_area_struct *vma) +static int secretmem_mmap(struct file *file, struct mm_area *vma) { unsigned long len = vma->vm_end - vma->vm_start; @@ -136,7 +136,7 @@ static int secretmem_mmap(struct file *file, struct vm_area_struct *vma) return 0; } -bool vma_is_secretmem(struct vm_area_struct *vma) +bool vma_is_secretmem(struct mm_area *vma) { return vma->vm_ops == &secretmem_vm_ops; } diff --git a/mm/shmem.c b/mm/shmem.c index 99327c30507c..c7535853a324 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -160,7 +160,7 @@ static unsigned long shmem_default_max_inodes(void) static int shmem_swapin_folio(struct inode *inode, pgoff_t index, struct folio **foliop, enum sgp_type sgp, gfp_t gfp, - struct vm_area_struct *vma, vm_fault_t *fault_type); + struct mm_area *vma, vm_fault_t *fault_type); static inline struct shmem_sb_info *SHMEM_SB(struct super_block *sb) { @@ -281,12 +281,12 @@ bool shmem_mapping(struct address_space *mapping) } EXPORT_SYMBOL_GPL(shmem_mapping); -bool vma_is_anon_shmem(struct vm_area_struct *vma) +bool vma_is_anon_shmem(struct mm_area *vma) { return vma->vm_ops == &shmem_anon_vm_ops; } -bool vma_is_shmem(struct vm_area_struct *vma) +bool vma_is_shmem(struct mm_area *vma) { return vma_is_anon_shmem(vma) || vma->vm_ops == &shmem_vm_ops; } @@ -614,7 +614,7 @@ static unsigned int shmem_get_orders_within_size(struct inode *inode, static unsigned int shmem_huge_global_enabled(struct inode *inode, pgoff_t index, loff_t write_end, bool shmem_huge_force, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long vm_flags) { unsigned int maybe_pmd_order = HPAGE_PMD_ORDER > MAX_PAGECACHE_ORDER ? @@ -861,7 +861,7 @@ static unsigned long shmem_unused_huge_shrink(struct shmem_sb_info *sbinfo, static unsigned int shmem_huge_global_enabled(struct inode *inode, pgoff_t index, loff_t write_end, bool shmem_huge_force, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long vm_flags) { return 0; @@ -1003,7 +1003,7 @@ unsigned long shmem_partial_swap_usage(struct address_space *mapping, * This is safe to call without i_rwsem or the i_pages lock thanks to RCU, * as long as the inode doesn't go away and racy results are not a problem. */ -unsigned long shmem_swap_usage(struct vm_area_struct *vma) +unsigned long shmem_swap_usage(struct mm_area *vma) { struct inode *inode = file_inode(vma->vm_file); struct shmem_inode_info *info = SHMEM_I(inode); @@ -1755,7 +1755,7 @@ bool shmem_hpage_pmd_enabled(void) } unsigned long shmem_allowable_huge_orders(struct inode *inode, - struct vm_area_struct *vma, pgoff_t index, + struct mm_area *vma, pgoff_t index, loff_t write_end, bool shmem_huge_force) { unsigned long mask = READ_ONCE(huge_shmem_orders_always); @@ -1802,7 +1802,7 @@ static unsigned long shmem_suitable_orders(struct inode *inode, struct vm_fault struct address_space *mapping, pgoff_t index, unsigned long orders) { - struct vm_area_struct *vma = vmf ? vmf->vma : NULL; + struct mm_area *vma = vmf ? vmf->vma : NULL; pgoff_t aligned_index; unsigned long pages; int order; @@ -1959,7 +1959,7 @@ static struct folio *shmem_alloc_and_add_folio(struct vm_fault *vmf, } static struct folio *shmem_swap_alloc_folio(struct inode *inode, - struct vm_area_struct *vma, pgoff_t index, + struct mm_area *vma, pgoff_t index, swp_entry_t entry, int order, gfp_t gfp) { struct shmem_inode_info *info = SHMEM_I(inode); @@ -2036,7 +2036,7 @@ static bool shmem_should_replace_folio(struct folio *folio, gfp_t gfp) static int shmem_replace_folio(struct folio **foliop, gfp_t gfp, struct shmem_inode_info *info, pgoff_t index, - struct vm_area_struct *vma) + struct mm_area *vma) { struct folio *new, *old = *foliop; swp_entry_t entry = old->swap; @@ -2231,7 +2231,7 @@ static int shmem_split_large_entry(struct inode *inode, pgoff_t index, */ static int shmem_swapin_folio(struct inode *inode, pgoff_t index, struct folio **foliop, enum sgp_type sgp, - gfp_t gfp, struct vm_area_struct *vma, + gfp_t gfp, struct mm_area *vma, vm_fault_t *fault_type) { struct address_space *mapping = inode->i_mapping; @@ -2434,7 +2434,7 @@ static int shmem_get_folio_gfp(struct inode *inode, pgoff_t index, loff_t write_end, struct folio **foliop, enum sgp_type sgp, gfp_t gfp, struct vm_fault *vmf, vm_fault_t *fault_type) { - struct vm_area_struct *vma = vmf ? vmf->vma : NULL; + struct mm_area *vma = vmf ? vmf->vma : NULL; struct mm_struct *fault_mm; struct folio *folio; int error; @@ -2853,13 +2853,13 @@ unsigned long shmem_get_unmapped_area(struct file *file, } #ifdef CONFIG_NUMA -static int shmem_set_policy(struct vm_area_struct *vma, struct mempolicy *mpol) +static int shmem_set_policy(struct mm_area *vma, struct mempolicy *mpol) { struct inode *inode = file_inode(vma->vm_file); return mpol_set_shared_policy(&SHMEM_I(inode)->policy, vma, mpol); } -static struct mempolicy *shmem_get_policy(struct vm_area_struct *vma, +static struct mempolicy *shmem_get_policy(struct mm_area *vma, unsigned long addr, pgoff_t *ilx) { struct inode *inode = file_inode(vma->vm_file); @@ -2924,7 +2924,7 @@ int shmem_lock(struct file *file, int lock, struct ucounts *ucounts) return retval; } -static int shmem_mmap(struct file *file, struct vm_area_struct *vma) +static int shmem_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); @@ -3148,7 +3148,7 @@ static inline struct inode *shmem_get_inode(struct mnt_idmap *idmap, #ifdef CONFIG_USERFAULTFD int shmem_mfill_atomic_pte(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, @@ -5880,7 +5880,7 @@ EXPORT_SYMBOL_GPL(shmem_file_setup_with_mnt); * shmem_zero_setup - setup a shared anonymous mapping * @vma: the vma to be mmapped is prepared by do_mmap */ -int shmem_zero_setup(struct vm_area_struct *vma) +int shmem_zero_setup(struct mm_area *vma) { struct file *file; loff_t size = vma->vm_end - vma->vm_start; diff --git a/mm/swap.c b/mm/swap.c index 77b2d5997873..e86133c365cc 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -514,7 +514,7 @@ EXPORT_SYMBOL(folio_add_lru); * If the VMA is mlocked, @folio is added to the unevictable list. * Otherwise, it is treated the same way as folio_add_lru(). */ -void folio_add_lru_vma(struct folio *folio, struct vm_area_struct *vma) +void folio_add_lru_vma(struct folio *folio, struct mm_area *vma) { VM_BUG_ON_FOLIO(folio_test_lru(folio), folio); diff --git a/mm/swap.h b/mm/swap.h index 6f4a3f927edb..a2122e9848f5 100644 --- a/mm/swap.h +++ b/mm/swap.h @@ -61,12 +61,12 @@ void clear_shadow_from_swap_cache(int type, unsigned long begin, unsigned long end); void swapcache_clear(struct swap_info_struct *si, swp_entry_t entry, int nr); struct folio *swap_cache_get_folio(swp_entry_t entry, - struct vm_area_struct *vma, unsigned long addr); + struct mm_area *vma, unsigned long addr); struct folio *filemap_get_incore_folio(struct address_space *mapping, pgoff_t index); struct folio *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, struct swap_iocb **plug); struct folio *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_flags, struct mempolicy *mpol, pgoff_t ilx, bool *new_page_allocated, @@ -151,7 +151,7 @@ static inline void swapcache_clear(struct swap_info_struct *si, swp_entry_t entr } static inline struct folio *swap_cache_get_folio(swp_entry_t entry, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { return NULL; } diff --git a/mm/swap_state.c b/mm/swap_state.c index 68fd981b514f..60a1d4571fc8 100644 --- a/mm/swap_state.c +++ b/mm/swap_state.c @@ -284,7 +284,7 @@ static inline bool swap_use_vma_readahead(void) * Caller must lock the swap device or hold a reference to keep it valid. */ struct folio *swap_cache_get_folio(swp_entry_t entry, - struct vm_area_struct *vma, unsigned long addr) + struct mm_area *vma, unsigned long addr) { struct folio *folio; @@ -481,7 +481,7 @@ struct folio *__read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, * swap cache folio lock. */ struct folio *read_swap_cache_async(swp_entry_t entry, gfp_t gfp_mask, - struct vm_area_struct *vma, unsigned long addr, + struct mm_area *vma, unsigned long addr, struct swap_iocb **plug) { struct swap_info_struct *si; @@ -677,7 +677,7 @@ void exit_swap_address_space(unsigned int type) static int swap_vma_ra_win(struct vm_fault *vmf, unsigned long *start, unsigned long *end) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; unsigned long ra_val; unsigned long faddr, prev_faddr, left, right; unsigned int max_win, hits, prev_win, win; diff --git a/mm/swapfile.c b/mm/swapfile.c index 2eff8b51a945..fb46d0ea6aec 100644 --- a/mm/swapfile.c +++ b/mm/swapfile.c @@ -1971,7 +1971,7 @@ static inline int pte_same_as_swp(pte_t pte, pte_t swp_pte) * just let do_wp_page work it out if a write is requested later - to * force COW, vm_page_prot omits write permission from any private vma. */ -static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, +static int unuse_pte(struct mm_area *vma, pmd_t *pmd, unsigned long addr, swp_entry_t entry, struct folio *folio) { struct page *page; @@ -2072,7 +2072,7 @@ static int unuse_pte(struct vm_area_struct *vma, pmd_t *pmd, return ret; } -static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd, +static int unuse_pte_range(struct mm_area *vma, pmd_t *pmd, unsigned long addr, unsigned long end, unsigned int type) { @@ -2145,7 +2145,7 @@ static int unuse_pte_range(struct vm_area_struct *vma, pmd_t *pmd, return 0; } -static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud, +static inline int unuse_pmd_range(struct mm_area *vma, pud_t *pud, unsigned long addr, unsigned long end, unsigned int type) { @@ -2164,7 +2164,7 @@ static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud, return 0; } -static inline int unuse_pud_range(struct vm_area_struct *vma, p4d_t *p4d, +static inline int unuse_pud_range(struct mm_area *vma, p4d_t *p4d, unsigned long addr, unsigned long end, unsigned int type) { @@ -2184,7 +2184,7 @@ static inline int unuse_pud_range(struct vm_area_struct *vma, p4d_t *p4d, return 0; } -static inline int unuse_p4d_range(struct vm_area_struct *vma, pgd_t *pgd, +static inline int unuse_p4d_range(struct mm_area *vma, pgd_t *pgd, unsigned long addr, unsigned long end, unsigned int type) { @@ -2204,7 +2204,7 @@ static inline int unuse_p4d_range(struct vm_area_struct *vma, pgd_t *pgd, return 0; } -static int unuse_vma(struct vm_area_struct *vma, unsigned int type) +static int unuse_vma(struct mm_area *vma, unsigned int type) { pgd_t *pgd; unsigned long addr, end, next; @@ -2227,7 +2227,7 @@ static int unuse_vma(struct vm_area_struct *vma, unsigned int type) static int unuse_mm(struct mm_struct *mm, unsigned int type) { - struct vm_area_struct *vma; + struct mm_area *vma; int ret = 0; VMA_ITERATOR(vmi, mm, 0); diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index fbf2cf62ab9f..ed1f47504327 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -21,7 +21,7 @@ #include "swap.h" static __always_inline -bool validate_dst_vma(struct vm_area_struct *dst_vma, unsigned long dst_end) +bool validate_dst_vma(struct mm_area *dst_vma, unsigned long dst_end) { /* Make sure that the dst range is fully within dst_vma. */ if (dst_end > dst_vma->vm_end) @@ -39,10 +39,10 @@ bool validate_dst_vma(struct vm_area_struct *dst_vma, unsigned long dst_end) } static __always_inline -struct vm_area_struct *find_vma_and_prepare_anon(struct mm_struct *mm, +struct mm_area *find_vma_and_prepare_anon(struct mm_struct *mm, unsigned long addr) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_assert_locked(mm); vma = vma_lookup(mm, addr); @@ -66,10 +66,10 @@ struct vm_area_struct *find_vma_and_prepare_anon(struct mm_struct *mm, * Return: A locked vma containing @address, -ENOENT if no vma is found, or * -ENOMEM if anon_vma couldn't be allocated. */ -static struct vm_area_struct *uffd_lock_vma(struct mm_struct *mm, +static struct mm_area *uffd_lock_vma(struct mm_struct *mm, unsigned long address) { - struct vm_area_struct *vma; + struct mm_area *vma; vma = lock_vma_under_rcu(mm, address); if (vma) { @@ -96,11 +96,11 @@ static struct vm_area_struct *uffd_lock_vma(struct mm_struct *mm, return vma; } -static struct vm_area_struct *uffd_mfill_lock(struct mm_struct *dst_mm, +static struct mm_area *uffd_mfill_lock(struct mm_struct *dst_mm, unsigned long dst_start, unsigned long len) { - struct vm_area_struct *dst_vma; + struct mm_area *dst_vma; dst_vma = uffd_lock_vma(dst_mm, dst_start); if (IS_ERR(dst_vma) || validate_dst_vma(dst_vma, dst_start + len)) @@ -110,18 +110,18 @@ static struct vm_area_struct *uffd_mfill_lock(struct mm_struct *dst_mm, return ERR_PTR(-ENOENT); } -static void uffd_mfill_unlock(struct vm_area_struct *vma) +static void uffd_mfill_unlock(struct mm_area *vma) { vma_end_read(vma); } #else -static struct vm_area_struct *uffd_mfill_lock(struct mm_struct *dst_mm, +static struct mm_area *uffd_mfill_lock(struct mm_struct *dst_mm, unsigned long dst_start, unsigned long len) { - struct vm_area_struct *dst_vma; + struct mm_area *dst_vma; mmap_read_lock(dst_mm); dst_vma = find_vma_and_prepare_anon(dst_mm, dst_start); @@ -137,14 +137,14 @@ static struct vm_area_struct *uffd_mfill_lock(struct mm_struct *dst_mm, return dst_vma; } -static void uffd_mfill_unlock(struct vm_area_struct *vma) +static void uffd_mfill_unlock(struct mm_area *vma) { mmap_read_unlock(vma->vm_mm); } #endif /* Check if dst_addr is outside of file's size. Must be called with ptl held. */ -static bool mfill_file_over_size(struct vm_area_struct *dst_vma, +static bool mfill_file_over_size(struct mm_area *dst_vma, unsigned long dst_addr) { struct inode *inode; @@ -166,7 +166,7 @@ static bool mfill_file_over_size(struct vm_area_struct *dst_vma, * and anon, and for both shared and private VMAs. */ int mfill_atomic_install_pte(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, struct page *page, bool newly_allocated, uffd_flags_t flags) { @@ -235,7 +235,7 @@ int mfill_atomic_install_pte(pmd_t *dst_pmd, } static int mfill_atomic_pte_copy(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, @@ -311,7 +311,7 @@ static int mfill_atomic_pte_copy(pmd_t *dst_pmd, } static int mfill_atomic_pte_zeroed_folio(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr) { struct folio *folio; @@ -343,7 +343,7 @@ static int mfill_atomic_pte_zeroed_folio(pmd_t *dst_pmd, } static int mfill_atomic_pte_zeropage(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr) { pte_t _dst_pte, *dst_pte; @@ -378,7 +378,7 @@ static int mfill_atomic_pte_zeropage(pmd_t *dst_pmd, /* Handles UFFDIO_CONTINUE for all shmem VMAs (shared or private). */ static int mfill_atomic_pte_continue(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, uffd_flags_t flags) { @@ -422,7 +422,7 @@ static int mfill_atomic_pte_continue(pmd_t *dst_pmd, /* Handles UFFDIO_POISON for all non-hugetlb VMAs. */ static int mfill_atomic_pte_poison(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, uffd_flags_t flags) { @@ -487,7 +487,7 @@ static pmd_t *mm_alloc_pmd(struct mm_struct *mm, unsigned long address) */ static __always_inline ssize_t mfill_atomic_hugetlb( struct userfaultfd_ctx *ctx, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_start, unsigned long src_start, unsigned long len, @@ -643,7 +643,7 @@ static __always_inline ssize_t mfill_atomic_hugetlb( #else /* !CONFIG_HUGETLB_PAGE */ /* fail at build time if gcc attempts to use this */ extern ssize_t mfill_atomic_hugetlb(struct userfaultfd_ctx *ctx, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_start, unsigned long src_start, unsigned long len, @@ -651,7 +651,7 @@ extern ssize_t mfill_atomic_hugetlb(struct userfaultfd_ctx *ctx, #endif /* CONFIG_HUGETLB_PAGE */ static __always_inline ssize_t mfill_atomic_pte(pmd_t *dst_pmd, - struct vm_area_struct *dst_vma, + struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, uffd_flags_t flags, @@ -701,7 +701,7 @@ static __always_inline ssize_t mfill_atomic(struct userfaultfd_ctx *ctx, uffd_flags_t flags) { struct mm_struct *dst_mm = ctx->mm; - struct vm_area_struct *dst_vma; + struct mm_area *dst_vma; ssize_t err; pmd_t *dst_pmd; unsigned long src_addr, dst_addr; @@ -897,7 +897,7 @@ ssize_t mfill_atomic_poison(struct userfaultfd_ctx *ctx, unsigned long start, uffd_flags_set_mode(flags, MFILL_ATOMIC_POISON)); } -long uffd_wp_range(struct vm_area_struct *dst_vma, +long uffd_wp_range(struct mm_area *dst_vma, unsigned long start, unsigned long len, bool enable_wp) { unsigned int mm_cp_flags; @@ -932,7 +932,7 @@ int mwriteprotect_range(struct userfaultfd_ctx *ctx, unsigned long start, struct mm_struct *dst_mm = ctx->mm; unsigned long end = start + len; unsigned long _start, _end; - struct vm_area_struct *dst_vma; + struct mm_area *dst_vma; unsigned long page_mask; long err; VMA_ITERATOR(vmi, dst_mm, start); @@ -1027,8 +1027,8 @@ static inline bool is_pte_pages_stable(pte_t *dst_pte, pte_t *src_pte, } static int move_present_pte(struct mm_struct *mm, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, + struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long dst_addr, unsigned long src_addr, pte_t *dst_pte, pte_t *src_pte, pte_t orig_dst_pte, pte_t orig_src_pte, @@ -1073,7 +1073,7 @@ static int move_present_pte(struct mm_struct *mm, return err; } -static int move_swap_pte(struct mm_struct *mm, struct vm_area_struct *dst_vma, +static int move_swap_pte(struct mm_struct *mm, struct mm_area *dst_vma, unsigned long dst_addr, unsigned long src_addr, pte_t *dst_pte, pte_t *src_pte, pte_t orig_dst_pte, pte_t orig_src_pte, @@ -1107,8 +1107,8 @@ static int move_swap_pte(struct mm_struct *mm, struct vm_area_struct *dst_vma, } static int move_zeropage_pte(struct mm_struct *mm, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, + struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long dst_addr, unsigned long src_addr, pte_t *dst_pte, pte_t *src_pte, pte_t orig_dst_pte, pte_t orig_src_pte, @@ -1140,8 +1140,8 @@ static int move_zeropage_pte(struct mm_struct *mm, * in moving the page. */ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd, - struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma, + struct mm_area *dst_vma, + struct mm_area *src_vma, unsigned long dst_addr, unsigned long src_addr, __u64 mode) { @@ -1445,15 +1445,15 @@ static inline bool move_splits_huge_pmd(unsigned long dst_addr, } #endif -static inline bool vma_move_compatible(struct vm_area_struct *vma) +static inline bool vma_move_compatible(struct mm_area *vma) { return !(vma->vm_flags & (VM_PFNMAP | VM_IO | VM_HUGETLB | VM_MIXEDMAP | VM_SHADOW_STACK)); } static int validate_move_areas(struct userfaultfd_ctx *ctx, - struct vm_area_struct *src_vma, - struct vm_area_struct *dst_vma) + struct mm_area *src_vma, + struct mm_area *dst_vma) { /* Only allow moving if both have the same access and protection */ if ((src_vma->vm_flags & VM_ACCESS_FLAGS) != (dst_vma->vm_flags & VM_ACCESS_FLAGS) || @@ -1491,10 +1491,10 @@ static __always_inline int find_vmas_mm_locked(struct mm_struct *mm, unsigned long dst_start, unsigned long src_start, - struct vm_area_struct **dst_vmap, - struct vm_area_struct **src_vmap) + struct mm_area **dst_vmap, + struct mm_area **src_vmap) { - struct vm_area_struct *vma; + struct mm_area *vma; mmap_assert_locked(mm); vma = find_vma_and_prepare_anon(mm, dst_start); @@ -1518,10 +1518,10 @@ int find_vmas_mm_locked(struct mm_struct *mm, static int uffd_move_lock(struct mm_struct *mm, unsigned long dst_start, unsigned long src_start, - struct vm_area_struct **dst_vmap, - struct vm_area_struct **src_vmap) + struct mm_area **dst_vmap, + struct mm_area **src_vmap) { - struct vm_area_struct *vma; + struct mm_area *vma; int err; vma = uffd_lock_vma(mm, dst_start); @@ -1581,8 +1581,8 @@ static int uffd_move_lock(struct mm_struct *mm, return err; } -static void uffd_move_unlock(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) +static void uffd_move_unlock(struct mm_area *dst_vma, + struct mm_area *src_vma) { vma_end_read(src_vma); if (src_vma != dst_vma) @@ -1594,8 +1594,8 @@ static void uffd_move_unlock(struct vm_area_struct *dst_vma, static int uffd_move_lock(struct mm_struct *mm, unsigned long dst_start, unsigned long src_start, - struct vm_area_struct **dst_vmap, - struct vm_area_struct **src_vmap) + struct mm_area **dst_vmap, + struct mm_area **src_vmap) { int err; @@ -1606,8 +1606,8 @@ static int uffd_move_lock(struct mm_struct *mm, return err; } -static void uffd_move_unlock(struct vm_area_struct *dst_vma, - struct vm_area_struct *src_vma) +static void uffd_move_unlock(struct mm_area *dst_vma, + struct mm_area *src_vma) { mmap_assert_locked(src_vma->vm_mm); mmap_read_unlock(dst_vma->vm_mm); @@ -1694,7 +1694,7 @@ ssize_t move_pages(struct userfaultfd_ctx *ctx, unsigned long dst_start, unsigned long src_start, unsigned long len, __u64 mode) { struct mm_struct *mm = ctx->mm; - struct vm_area_struct *src_vma, *dst_vma; + struct mm_area *src_vma, *dst_vma; unsigned long src_addr, dst_addr; pmd_t *src_pmd, *dst_pmd; long err = -EINVAL; @@ -1865,7 +1865,7 @@ ssize_t move_pages(struct userfaultfd_ctx *ctx, unsigned long dst_start, return moved ? moved : err; } -static void userfaultfd_set_vm_flags(struct vm_area_struct *vma, +static void userfaultfd_set_vm_flags(struct mm_area *vma, vm_flags_t flags) { const bool uffd_wp_changed = (vma->vm_flags ^ flags) & VM_UFFD_WP; @@ -1880,7 +1880,7 @@ static void userfaultfd_set_vm_flags(struct vm_area_struct *vma, vma_set_page_prot(vma); } -static void userfaultfd_set_ctx(struct vm_area_struct *vma, +static void userfaultfd_set_ctx(struct mm_area *vma, struct userfaultfd_ctx *ctx, unsigned long flags) { @@ -1890,18 +1890,18 @@ static void userfaultfd_set_ctx(struct vm_area_struct *vma, (vma->vm_flags & ~__VM_UFFD_FLAGS) | flags); } -void userfaultfd_reset_ctx(struct vm_area_struct *vma) +void userfaultfd_reset_ctx(struct mm_area *vma) { userfaultfd_set_ctx(vma, NULL, 0); } -struct vm_area_struct *userfaultfd_clear_vma(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, +struct mm_area *userfaultfd_clear_vma(struct vma_iterator *vmi, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end) { - struct vm_area_struct *ret; + struct mm_area *ret; /* Reset ptes for the whole vma range if wr-protected */ if (userfaultfd_wp(vma)) @@ -1924,13 +1924,13 @@ struct vm_area_struct *userfaultfd_clear_vma(struct vma_iterator *vmi, /* Assumes mmap write lock taken, and mm_struct pinned. */ int userfaultfd_register_range(struct userfaultfd_ctx *ctx, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long vm_flags, unsigned long start, unsigned long end, bool wp_async) { VMA_ITERATOR(vmi, ctx->mm, start); - struct vm_area_struct *prev = vma_prev(&vmi); + struct mm_area *prev = vma_prev(&vmi); unsigned long vma_end; unsigned long new_flags; @@ -1985,7 +1985,7 @@ int userfaultfd_register_range(struct userfaultfd_ctx *ctx, void userfaultfd_release_new(struct userfaultfd_ctx *ctx) { struct mm_struct *mm = ctx->mm; - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); /* the various vma->vm_userfaultfd_ctx still points to it */ @@ -2000,7 +2000,7 @@ void userfaultfd_release_new(struct userfaultfd_ctx *ctx) void userfaultfd_release_all(struct mm_struct *mm, struct userfaultfd_ctx *ctx) { - struct vm_area_struct *vma, *prev; + struct mm_area *vma, *prev; VMA_ITERATOR(vmi, mm, 0); if (!mmget_not_zero(mm)) diff --git a/mm/util.c b/mm/util.c index 448117da071f..e0ed4f7d00d4 100644 --- a/mm/util.c +++ b/mm/util.c @@ -314,7 +314,7 @@ void *memdup_user_nul(const void __user *src, size_t len) EXPORT_SYMBOL(memdup_user_nul); /* Check if the vma is being used as a stack by this task */ -int vma_is_stack_for_current(struct vm_area_struct *vma) +int vma_is_stack_for_current(struct mm_area *vma) { struct task_struct * __maybe_unused t = current; @@ -324,7 +324,7 @@ int vma_is_stack_for_current(struct vm_area_struct *vma) /* * Change backing file, only valid to use during initial VMA setup. */ -void vma_set_file(struct vm_area_struct *vma, struct file *file) +void vma_set_file(struct mm_area *vma, struct file *file) { /* Changing an anonymous vma with this is illegal */ get_file(file); diff --git a/mm/vma.c b/mm/vma.c index 5cdc5612bfc1..06e6e9c02ab8 100644 --- a/mm/vma.c +++ b/mm/vma.c @@ -21,8 +21,8 @@ struct mmap_state { unsigned long charged; bool retry_merge; - struct vm_area_struct *prev; - struct vm_area_struct *next; + struct mm_area *prev; + struct mm_area *next; /* Unmapping state. */ struct vma_munmap_struct vms; @@ -59,7 +59,7 @@ struct mmap_state { static inline bool is_mergeable_vma(struct vma_merge_struct *vmg, bool merge_next) { - struct vm_area_struct *vma = merge_next ? vmg->next : vmg->prev; + struct mm_area *vma = merge_next ? vmg->next : vmg->prev; if (!mpol_equal(vmg->policy, vma_policy(vma))) return false; @@ -83,7 +83,7 @@ static inline bool is_mergeable_vma(struct vma_merge_struct *vmg, bool merge_nex } static inline bool is_mergeable_anon_vma(struct anon_vma *anon_vma1, - struct anon_vma *anon_vma2, struct vm_area_struct *vma) + struct anon_vma *anon_vma2, struct mm_area *vma) { /* * The list_is_singular() test is to avoid merging VMA cloned from @@ -96,8 +96,8 @@ static inline bool is_mergeable_anon_vma(struct anon_vma *anon_vma1, } /* Are the anon_vma's belonging to each VMA compatible with one another? */ -static inline bool are_anon_vmas_compatible(struct vm_area_struct *vma1, - struct vm_area_struct *vma2) +static inline bool are_anon_vmas_compatible(struct mm_area *vma1, + struct mm_area *vma2) { return is_mergeable_anon_vma(vma1->anon_vma, vma2->anon_vma, NULL); } @@ -110,11 +110,11 @@ static inline bool are_anon_vmas_compatible(struct vm_area_struct *vma1, * removal. */ static void init_multi_vma_prep(struct vma_prepare *vp, - struct vm_area_struct *vma, + struct mm_area *vma, struct vma_merge_struct *vmg) { - struct vm_area_struct *adjust; - struct vm_area_struct **remove = &vp->remove; + struct mm_area *adjust; + struct mm_area **remove = &vp->remove; memset(vp, 0, sizeof(struct vma_prepare)); vp->vma = vma; @@ -191,7 +191,7 @@ static bool can_vma_merge_after(struct vma_merge_struct *vmg) return false; } -static void __vma_link_file(struct vm_area_struct *vma, +static void __vma_link_file(struct mm_area *vma, struct address_space *mapping) { if (vma_is_shared_maywrite(vma)) @@ -205,7 +205,7 @@ static void __vma_link_file(struct vm_area_struct *vma, /* * Requires inode->i_mapping->i_mmap_rwsem */ -static void __remove_shared_vm_struct(struct vm_area_struct *vma, +static void __remove_shared_vm_struct(struct mm_area *vma, struct address_space *mapping) { if (vma_is_shared_maywrite(vma)) @@ -231,7 +231,7 @@ static void __remove_shared_vm_struct(struct vm_area_struct *vma, * the root anon_vma's mutex. */ static void -anon_vma_interval_tree_pre_update_vma(struct vm_area_struct *vma) +anon_vma_interval_tree_pre_update_vma(struct mm_area *vma) { struct anon_vma_chain *avc; @@ -240,7 +240,7 @@ anon_vma_interval_tree_pre_update_vma(struct vm_area_struct *vma) } static void -anon_vma_interval_tree_post_update_vma(struct vm_area_struct *vma) +anon_vma_interval_tree_post_update_vma(struct mm_area *vma) { struct anon_vma_chain *avc; @@ -374,7 +374,7 @@ static void vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi, * @vp: The vma_prepare struct * @vma: The vma that will be altered once locked */ -static void init_vma_prep(struct vma_prepare *vp, struct vm_area_struct *vma) +static void init_vma_prep(struct vma_prepare *vp, struct mm_area *vma) { init_multi_vma_prep(vp, vma, NULL); } @@ -420,7 +420,7 @@ static bool can_vma_merge_right(struct vma_merge_struct *vmg, /* * Close a vm structure and free it. */ -void remove_vma(struct vm_area_struct *vma) +void remove_vma(struct mm_area *vma) { might_sleep(); vma_close(vma); @@ -435,8 +435,8 @@ void remove_vma(struct vm_area_struct *vma) * * Called with the mm semaphore held. */ -void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, - struct vm_area_struct *prev, struct vm_area_struct *next) +void unmap_region(struct ma_state *mas, struct mm_area *vma, + struct mm_area *prev, struct mm_area *next) { struct mm_struct *mm = vma->vm_mm; struct mmu_gather tlb; @@ -458,11 +458,11 @@ void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, * VMA Iterator will point to the original VMA. */ static __must_check int -__split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, +__split_vma(struct vma_iterator *vmi, struct mm_area *vma, unsigned long addr, int new_below) { struct vma_prepare vp; - struct vm_area_struct *new; + struct mm_area *new; int err; WARN_ON(vma->vm_start >= addr); @@ -544,7 +544,7 @@ __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, * Split a vma into two pieces at address 'addr', a new vma is allocated * either for the first part or the tail. */ -static int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, +static int split_vma(struct vma_iterator *vmi, struct mm_area *vma, unsigned long addr, int new_below) { if (vma->vm_mm->map_count >= sysctl_max_map_count) @@ -561,8 +561,8 @@ static int split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, * * Returns: 0 on success. */ -static int dup_anon_vma(struct vm_area_struct *dst, - struct vm_area_struct *src, struct vm_area_struct **dup) +static int dup_anon_vma(struct mm_area *dst, + struct mm_area *src, struct mm_area **dup) { /* * Easily overlooked: when mprotect shifts the boundary, make sure the @@ -589,7 +589,7 @@ void validate_mm(struct mm_struct *mm) { int bug = 0; int i = 0; - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, 0); mt_validate(&mm->mm_mt); @@ -647,7 +647,7 @@ void validate_mm(struct mm_struct *mm) */ static void vmg_adjust_set_range(struct vma_merge_struct *vmg) { - struct vm_area_struct *adjust; + struct mm_area *adjust; pgoff_t pgoff; if (vmg->__adjust_middle_start) { @@ -670,7 +670,7 @@ static void vmg_adjust_set_range(struct vma_merge_struct *vmg) */ static int commit_merge(struct vma_merge_struct *vmg) { - struct vm_area_struct *vma; + struct mm_area *vma; struct vma_prepare vp; if (vmg->__adjust_next_start) { @@ -705,7 +705,7 @@ static int commit_merge(struct vma_merge_struct *vmg) } /* We can only remove VMAs when merging if they do not have a close hook. */ -static bool can_merge_remove_vma(struct vm_area_struct *vma) +static bool can_merge_remove_vma(struct mm_area *vma) { return !vma->vm_ops || !vma->vm_ops->close; } @@ -739,13 +739,13 @@ static bool can_merge_remove_vma(struct vm_area_struct *vma) * - The caller must hold a WRITE lock on the mm_struct->mmap_lock. * - vmi must be positioned within [@vmg->middle->vm_start, @vmg->middle->vm_end). */ -static __must_check struct vm_area_struct *vma_merge_existing_range( +static __must_check struct mm_area *vma_merge_existing_range( struct vma_merge_struct *vmg) { - struct vm_area_struct *middle = vmg->middle; - struct vm_area_struct *prev = vmg->prev; - struct vm_area_struct *next; - struct vm_area_struct *anon_dup = NULL; + struct mm_area *middle = vmg->middle; + struct mm_area *prev = vmg->prev; + struct mm_area *next; + struct mm_area *anon_dup = NULL; unsigned long start = vmg->start; unsigned long end = vmg->end; bool left_side = middle && start == middle->vm_start; @@ -974,10 +974,10 @@ static __must_check struct vm_area_struct *vma_merge_existing_range( * - The caller must have specified the next vma in @vmg->next. * - The caller must have positioned the vmi at or before the gap. */ -struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg) +struct mm_area *vma_merge_new_range(struct vma_merge_struct *vmg) { - struct vm_area_struct *prev = vmg->prev; - struct vm_area_struct *next = vmg->next; + struct mm_area *prev = vmg->prev; + struct mm_area *next = vmg->next; unsigned long end = vmg->end; bool can_merge_left, can_merge_right; @@ -1053,10 +1053,10 @@ struct vm_area_struct *vma_merge_new_range(struct vma_merge_struct *vmg) */ int vma_expand(struct vma_merge_struct *vmg) { - struct vm_area_struct *anon_dup = NULL; + struct mm_area *anon_dup = NULL; bool remove_next = false; - struct vm_area_struct *middle = vmg->middle; - struct vm_area_struct *next = vmg->next; + struct mm_area *middle = vmg->middle; + struct mm_area *next = vmg->next; mmap_assert_write_locked(vmg->mm); @@ -1105,7 +1105,7 @@ int vma_expand(struct vma_merge_struct *vmg) * * Returns: 0 on success, -ENOMEM otherwise */ -int vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, +int vma_shrink(struct vma_iterator *vmi, struct mm_area *vma, unsigned long start, unsigned long end, pgoff_t pgoff) { struct vma_prepare vp; @@ -1162,7 +1162,7 @@ static inline void vms_clear_ptes(struct vma_munmap_struct *vms, static void vms_clean_up_area(struct vma_munmap_struct *vms, struct ma_state *mas_detach) { - struct vm_area_struct *vma; + struct mm_area *vma; if (!vms->nr_pages) return; @@ -1185,7 +1185,7 @@ static void vms_clean_up_area(struct vma_munmap_struct *vms, static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, struct ma_state *mas_detach) { - struct vm_area_struct *vma; + struct mm_area *vma; struct mm_struct *mm; mm = current->mm; @@ -1231,7 +1231,7 @@ static void vms_complete_munmap_vmas(struct vma_munmap_struct *vms, */ static void reattach_vmas(struct ma_state *mas_detach) { - struct vm_area_struct *vma; + struct mm_area *vma; mas_set(mas_detach, 0); mas_for_each(mas_detach, vma, ULONG_MAX) @@ -1253,7 +1253,7 @@ static void reattach_vmas(struct ma_state *mas_detach) static int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, struct ma_state *mas_detach) { - struct vm_area_struct *next = NULL; + struct mm_area *next = NULL; int error; /* @@ -1356,7 +1356,7 @@ static int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, /* Make sure no VMAs are about to be lost. */ { MA_STATE(test, mas_detach->tree, 0, 0); - struct vm_area_struct *vma_mas, *vma_test; + struct mm_area *vma_mas, *vma_test; int test_count = 0; vma_iter_set(vms->vmi, vms->start); @@ -1392,14 +1392,14 @@ static int vms_gather_munmap_vmas(struct vma_munmap_struct *vms, * init_vma_munmap() - Initializer wrapper for vma_munmap_struct * @vms: The vma munmap struct * @vmi: The vma iterator - * @vma: The first vm_area_struct to munmap + * @vma: The first mm_area to munmap * @start: The aligned start address to munmap * @end: The aligned end address to munmap * @uf: The userfaultfd list_head * @unlock: Unlock after the operation. Only unlocked on success */ static void init_vma_munmap(struct vma_munmap_struct *vms, - struct vma_iterator *vmi, struct vm_area_struct *vma, + struct vma_iterator *vmi, struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) { @@ -1424,7 +1424,7 @@ static void init_vma_munmap(struct vma_munmap_struct *vms, /* * do_vmi_align_munmap() - munmap the aligned region from @start to @end. * @vmi: The vma iterator - * @vma: The starting vm_area_struct + * @vma: The starting mm_area * @mm: The mm_struct * @start: The aligned start address to munmap. * @end: The aligned end address to munmap. @@ -1435,7 +1435,7 @@ static void init_vma_munmap(struct vma_munmap_struct *vms, * Return: 0 on success and drops the lock if so directed, error and leaves the * lock held otherwise. */ -int do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, +int do_vmi_align_munmap(struct vma_iterator *vmi, struct mm_area *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) { @@ -1487,7 +1487,7 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, bool unlock) { unsigned long end; - struct vm_area_struct *vma; + struct mm_area *vma; if ((offset_in_page(start)) || start > TASK_SIZE || len > TASK_SIZE-start) return -EINVAL; @@ -1520,12 +1520,12 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, * The function returns either the merged VMA, the original VMA if a split was * required instead, or an error if the split failed. */ -static struct vm_area_struct *vma_modify(struct vma_merge_struct *vmg) +static struct mm_area *vma_modify(struct vma_merge_struct *vmg) { - struct vm_area_struct *vma = vmg->middle; + struct mm_area *vma = vmg->middle; unsigned long start = vmg->start; unsigned long end = vmg->end; - struct vm_area_struct *merged; + struct mm_area *merged; /* First, try to merge. */ merged = vma_merge_existing_range(vmg); @@ -1553,9 +1553,9 @@ static struct vm_area_struct *vma_modify(struct vma_merge_struct *vmg) return vma; } -struct vm_area_struct *vma_modify_flags( - struct vma_iterator *vmi, struct vm_area_struct *prev, - struct vm_area_struct *vma, unsigned long start, unsigned long end, +struct mm_area *vma_modify_flags( + struct vma_iterator *vmi, struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags) { VMG_VMA_STATE(vmg, vmi, prev, vma, start, end); @@ -1565,10 +1565,10 @@ struct vm_area_struct *vma_modify_flags( return vma_modify(&vmg); } -struct vm_area_struct +struct mm_area *vma_modify_flags_name(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags, @@ -1582,10 +1582,10 @@ struct vm_area_struct return vma_modify(&vmg); } -struct vm_area_struct +struct mm_area *vma_modify_policy(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, struct mempolicy *new_pol) { @@ -1596,10 +1596,10 @@ struct vm_area_struct return vma_modify(&vmg); } -struct vm_area_struct +struct mm_area *vma_modify_flags_uffd(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags, struct vm_userfaultfd_ctx new_ctx) @@ -1616,8 +1616,8 @@ struct vm_area_struct * Expand vma by delta bytes, potentially merging with an immediately adjacent * VMA with identical properties. */ -struct vm_area_struct *vma_merge_extend(struct vma_iterator *vmi, - struct vm_area_struct *vma, +struct mm_area *vma_merge_extend(struct vma_iterator *vmi, + struct mm_area *vma, unsigned long delta) { VMG_VMA_STATE(vmg, vmi, vma, vma, vma->vm_end, vma->vm_end + delta); @@ -1650,7 +1650,7 @@ static void unlink_file_vma_batch_process(struct unlink_vma_file_batch *vb) } void unlink_file_vma_batch_add(struct unlink_vma_file_batch *vb, - struct vm_area_struct *vma) + struct mm_area *vma) { if (vma->vm_file == NULL) return; @@ -1673,7 +1673,7 @@ void unlink_file_vma_batch_final(struct unlink_vma_file_batch *vb) * Unlink a file-based vm structure from its interval tree, to hide * vma from rmap and vmtruncate before freeing its page tables. */ -void unlink_file_vma(struct vm_area_struct *vma) +void unlink_file_vma(struct mm_area *vma) { struct file *file = vma->vm_file; @@ -1686,7 +1686,7 @@ void unlink_file_vma(struct vm_area_struct *vma) } } -void vma_link_file(struct vm_area_struct *vma) +void vma_link_file(struct mm_area *vma) { struct file *file = vma->vm_file; struct address_space *mapping; @@ -1699,7 +1699,7 @@ void vma_link_file(struct vm_area_struct *vma) } } -int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) +int vma_link(struct mm_struct *mm, struct mm_area *vma) { VMA_ITERATOR(vmi, mm, 0); @@ -1719,14 +1719,14 @@ int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) * Copy the vma structure to a new location in the same mm, * prior to moving page table entries, to effect an mremap move. */ -struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, +struct mm_area *copy_vma(struct mm_area **vmap, unsigned long addr, unsigned long len, pgoff_t pgoff, bool *need_rmap_locks) { - struct vm_area_struct *vma = *vmap; + struct mm_area *vma = *vmap; unsigned long vma_start = vma->vm_start; struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct *new_vma; + struct mm_area *new_vma; bool faulted_in_anon_vma = true; VMA_ITERATOR(vmi, mm, addr); VMG_VMA_STATE(vmg, &vmi, NULL, vma, addr, addr + len); @@ -1818,7 +1818,7 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, * driver is doing some kind of reference counting. But that doesn't * really matter for the anon_vma sharing case. */ -static int anon_vma_compatible(struct vm_area_struct *a, struct vm_area_struct *b) +static int anon_vma_compatible(struct mm_area *a, struct mm_area *b) { return a->vm_end == b->vm_start && mpol_equal(vma_policy(a), vma_policy(b)) && @@ -1849,9 +1849,9 @@ static int anon_vma_compatible(struct vm_area_struct *a, struct vm_area_struct * * and with the same memory policies). That's all stable, even with just * a read lock on the mmap_lock. */ -static struct anon_vma *reusable_anon_vma(struct vm_area_struct *old, - struct vm_area_struct *a, - struct vm_area_struct *b) +static struct anon_vma *reusable_anon_vma(struct mm_area *old, + struct mm_area *a, + struct mm_area *b) { if (anon_vma_compatible(a, b)) { struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); @@ -1870,10 +1870,10 @@ static struct anon_vma *reusable_anon_vma(struct vm_area_struct *old, * anon_vmas being allocated, preventing vma merge in subsequent * mprotect. */ -struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma) +struct anon_vma *find_mergeable_anon_vma(struct mm_area *vma) { struct anon_vma *anon_vma = NULL; - struct vm_area_struct *prev, *next; + struct mm_area *prev, *next; VMA_ITERATOR(vmi, vma->vm_mm, vma->vm_end); /* Try next first. */ @@ -1909,13 +1909,13 @@ static bool vm_ops_needs_writenotify(const struct vm_operations_struct *vm_ops) return vm_ops && (vm_ops->page_mkwrite || vm_ops->pfn_mkwrite); } -static bool vma_is_shared_writable(struct vm_area_struct *vma) +static bool vma_is_shared_writable(struct mm_area *vma) { return (vma->vm_flags & (VM_WRITE | VM_SHARED)) == (VM_WRITE | VM_SHARED); } -static bool vma_fs_can_writeback(struct vm_area_struct *vma) +static bool vma_fs_can_writeback(struct mm_area *vma) { /* No managed pages to writeback. */ if (vma->vm_flags & VM_PFNMAP) @@ -1929,7 +1929,7 @@ static bool vma_fs_can_writeback(struct vm_area_struct *vma) * Does this VMA require the underlying folios to have their dirty state * tracked? */ -bool vma_needs_dirty_tracking(struct vm_area_struct *vma) +bool vma_needs_dirty_tracking(struct mm_area *vma) { /* Only shared, writable VMAs require dirty tracking. */ if (!vma_is_shared_writable(vma)) @@ -1952,7 +1952,7 @@ bool vma_needs_dirty_tracking(struct vm_area_struct *vma) * to the private version (using protection_map[] without the * VM_SHARED bit). */ -bool vma_wants_writenotify(struct vm_area_struct *vma, pgprot_t vm_page_prot) +bool vma_wants_writenotify(struct mm_area *vma, pgprot_t vm_page_prot) { /* If it was private or non-writable, the write bit is already clear */ if (!vma_is_shared_writable(vma)) @@ -2066,7 +2066,7 @@ static void vm_lock_mapping(struct mm_struct *mm, struct address_space *mapping) */ int mm_take_all_locks(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; struct anon_vma_chain *avc; VMA_ITERATOR(vmi, mm, 0); @@ -2162,7 +2162,7 @@ static void vm_unlock_mapping(struct address_space *mapping) */ void mm_drop_all_locks(struct mm_struct *mm) { - struct vm_area_struct *vma; + struct mm_area *vma; struct anon_vma_chain *avc; VMA_ITERATOR(vmi, mm, 0); @@ -2301,7 +2301,7 @@ static int __mmap_prepare(struct mmap_state *map, struct list_head *uf) static int __mmap_new_file_vma(struct mmap_state *map, - struct vm_area_struct *vma) + struct mm_area *vma) { struct vma_iterator *vmi = map->vmi; int error; @@ -2345,11 +2345,11 @@ static int __mmap_new_file_vma(struct mmap_state *map, * * Returns: Zero on success, or an error. */ -static int __mmap_new_vma(struct mmap_state *map, struct vm_area_struct **vmap) +static int __mmap_new_vma(struct mmap_state *map, struct mm_area **vmap) { struct vma_iterator *vmi = map->vmi; int error = 0; - struct vm_area_struct *vma; + struct mm_area *vma; /* * Determine the object being mapped and call the appropriate @@ -2415,7 +2415,7 @@ static int __mmap_new_vma(struct mmap_state *map, struct vm_area_struct **vmap) * @map: Mapping state. * @vma: Merged or newly allocated VMA for the mmap()'d region. */ -static void __mmap_complete(struct mmap_state *map, struct vm_area_struct *vma) +static void __mmap_complete(struct mmap_state *map, struct mm_area *vma) { struct mm_struct *mm = map->mm; unsigned long vm_flags = vma->vm_flags; @@ -2455,7 +2455,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr, struct list_head *uf) { struct mm_struct *mm = current->mm; - struct vm_area_struct *vma = NULL; + struct mm_area *vma = NULL; int error; VMA_ITERATOR(vmi, mm, addr); MMAP_STATE(map, mm, &vmi, addr, len, pgoff, vm_flags, file); @@ -2480,7 +2480,7 @@ static unsigned long __mmap_region(struct file *file, unsigned long addr, /* If flags changed, we might be able to merge, so try again. */ if (map.retry_merge) { - struct vm_area_struct *merged; + struct mm_area *merged; VMG_MMAP_STATE(vmg, &map, vma); vma_iter_config(map.vmi, map.addr, map.end); @@ -2573,7 +2573,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr, * do not match then create a new anonymous VMA. Eventually we may be able to * do some brk-specific accounting here. */ -int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma, +int do_brk_flags(struct vma_iterator *vmi, struct mm_area *vma, unsigned long addr, unsigned long len, unsigned long flags) { struct mm_struct *mm = current->mm; @@ -2657,7 +2657,7 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info) { unsigned long length, gap; unsigned long low_limit, high_limit; - struct vm_area_struct *tmp; + struct mm_area *tmp; VMA_ITERATOR(vmi, current->mm, 0); /* Adjust search length to account for worst case alignment overhead */ @@ -2714,7 +2714,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) { unsigned long length, gap, gap_end; unsigned long low_limit, high_limit; - struct vm_area_struct *tmp; + struct mm_area *tmp; VMA_ITERATOR(vmi, current->mm, 0); /* Adjust search length to account for worst case alignment overhead */ @@ -2757,7 +2757,7 @@ unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info) * update accounting. This is shared with both the * grow-up and grow-down cases. */ -static int acct_stack_growth(struct vm_area_struct *vma, +static int acct_stack_growth(struct mm_area *vma, unsigned long size, unsigned long grow) { struct mm_struct *mm = vma->vm_mm; @@ -2796,10 +2796,10 @@ static int acct_stack_growth(struct vm_area_struct *vma, * PA-RISC uses this for its stack. * vma is the last one with address > vma->vm_end. Have to extend vma. */ -int expand_upwards(struct vm_area_struct *vma, unsigned long address) +int expand_upwards(struct mm_area *vma, unsigned long address) { struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct *next; + struct mm_area *next; unsigned long gap_addr; int error = 0; VMA_ITERATOR(vmi, mm, vma->vm_start); @@ -2882,10 +2882,10 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address) * vma is the first one with address < vma->vm_start. Have to extend vma. * mmap_lock held for writing. */ -int expand_downwards(struct vm_area_struct *vma, unsigned long address) +int expand_downwards(struct mm_area *vma, unsigned long address) { struct mm_struct *mm = vma->vm_mm; - struct vm_area_struct *prev; + struct mm_area *prev; int error = 0; VMA_ITERATOR(vmi, mm, vma->vm_start); diff --git a/mm/vma.h b/mm/vma.h index 7356ca5a22d3..b488a473fa97 100644 --- a/mm/vma.h +++ b/mm/vma.h @@ -11,19 +11,19 @@ * VMA lock generalization */ struct vma_prepare { - struct vm_area_struct *vma; - struct vm_area_struct *adj_next; + struct mm_area *vma; + struct mm_area *adj_next; struct file *file; struct address_space *mapping; struct anon_vma *anon_vma; - struct vm_area_struct *insert; - struct vm_area_struct *remove; - struct vm_area_struct *remove2; + struct mm_area *insert; + struct mm_area *remove; + struct mm_area *remove2; }; struct unlink_vma_file_batch { int count; - struct vm_area_struct *vmas[8]; + struct mm_area *vmas[8]; }; /* @@ -31,9 +31,9 @@ struct unlink_vma_file_batch { */ struct vma_munmap_struct { struct vma_iterator *vmi; - struct vm_area_struct *vma; /* The first vma to munmap */ - struct vm_area_struct *prev; /* vma before the munmap area */ - struct vm_area_struct *next; /* vma after the munmap area */ + struct mm_area *vma; /* The first vma to munmap */ + struct mm_area *prev; /* vma before the munmap area */ + struct mm_area *next; /* vma after the munmap area */ struct list_head *uf; /* Userfaultfd list_head */ unsigned long start; /* Aligned start addr (inclusive) */ unsigned long end; /* Aligned end addr (exclusive) */ @@ -79,11 +79,11 @@ struct vma_merge_struct { * * next may be assigned by the caller. */ - struct vm_area_struct *prev; - struct vm_area_struct *middle; - struct vm_area_struct *next; + struct mm_area *prev; + struct mm_area *middle; + struct mm_area *next; /* This is the VMA we ultimately target to become the merged VMA. */ - struct vm_area_struct *target; + struct mm_area *target; /* * Initially, the start, end, pgoff fields are provided by the caller * and describe the proposed new VMA range, whether modifying an @@ -145,7 +145,7 @@ static inline bool vmg_nomem(struct vma_merge_struct *vmg) } /* Assumes addr >= vma->vm_start. */ -static inline pgoff_t vma_pgoff_offset(struct vm_area_struct *vma, +static inline pgoff_t vma_pgoff_offset(struct mm_area *vma, unsigned long addr) { return vma->vm_pgoff + PHYS_PFN(addr - vma->vm_start); @@ -189,11 +189,11 @@ void validate_mm(struct mm_struct *mm); __must_check int vma_expand(struct vma_merge_struct *vmg); __must_check int vma_shrink(struct vma_iterator *vmi, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long start, unsigned long end, pgoff_t pgoff); static inline int vma_iter_store_gfp(struct vma_iterator *vmi, - struct vm_area_struct *vma, gfp_t gfp) + struct mm_area *vma, gfp_t gfp) { if (vmi->mas.status != ma_start && @@ -210,7 +210,7 @@ static inline int vma_iter_store_gfp(struct vma_iterator *vmi, } int -do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, +do_vmi_align_munmap(struct vma_iterator *vmi, struct mm_area *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock); @@ -218,51 +218,51 @@ int do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool unlock); -void remove_vma(struct vm_area_struct *vma); +void remove_vma(struct mm_area *vma); -void unmap_region(struct ma_state *mas, struct vm_area_struct *vma, - struct vm_area_struct *prev, struct vm_area_struct *next); +void unmap_region(struct ma_state *mas, struct mm_area *vma, + struct mm_area *prev, struct mm_area *next); /* We are about to modify the VMA's flags. */ -__must_check struct vm_area_struct +__must_check struct mm_area *vma_modify_flags(struct vma_iterator *vmi, - struct vm_area_struct *prev, struct vm_area_struct *vma, + struct mm_area *prev, struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags); /* We are about to modify the VMA's flags and/or anon_name. */ -__must_check struct vm_area_struct +__must_check struct mm_area *vma_modify_flags_name(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags, struct anon_vma_name *new_name); /* We are about to modify the VMA's memory policy. */ -__must_check struct vm_area_struct +__must_check struct mm_area *vma_modify_policy(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, struct mempolicy *new_pol); /* We are about to modify the VMA's flags and/or uffd context. */ -__must_check struct vm_area_struct +__must_check struct mm_area *vma_modify_flags_uffd(struct vma_iterator *vmi, - struct vm_area_struct *prev, - struct vm_area_struct *vma, + struct mm_area *prev, + struct mm_area *vma, unsigned long start, unsigned long end, unsigned long new_flags, struct vm_userfaultfd_ctx new_ctx); -__must_check struct vm_area_struct +__must_check struct mm_area *vma_merge_new_range(struct vma_merge_struct *vmg); -__must_check struct vm_area_struct +__must_check struct mm_area *vma_merge_extend(struct vma_iterator *vmi, - struct vm_area_struct *vma, + struct mm_area *vma, unsigned long delta); void unlink_file_vma_batch_init(struct unlink_vma_file_batch *vb); @@ -270,22 +270,22 @@ void unlink_file_vma_batch_init(struct unlink_vma_file_batch *vb); void unlink_file_vma_batch_final(struct unlink_vma_file_batch *vb); void unlink_file_vma_batch_add(struct unlink_vma_file_batch *vb, - struct vm_area_struct *vma); + struct mm_area *vma); -void unlink_file_vma(struct vm_area_struct *vma); +void unlink_file_vma(struct mm_area *vma); -void vma_link_file(struct vm_area_struct *vma); +void vma_link_file(struct mm_area *vma); -int vma_link(struct mm_struct *mm, struct vm_area_struct *vma); +int vma_link(struct mm_struct *mm, struct mm_area *vma); -struct vm_area_struct *copy_vma(struct vm_area_struct **vmap, +struct mm_area *copy_vma(struct mm_area **vmap, unsigned long addr, unsigned long len, pgoff_t pgoff, bool *need_rmap_locks); -struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma); +struct anon_vma *find_mergeable_anon_vma(struct mm_area *vma); -bool vma_needs_dirty_tracking(struct vm_area_struct *vma); -bool vma_wants_writenotify(struct vm_area_struct *vma, pgprot_t vm_page_prot); +bool vma_needs_dirty_tracking(struct mm_area *vma); +bool vma_wants_writenotify(struct mm_area *vma, pgprot_t vm_page_prot); int mm_take_all_locks(struct mm_struct *mm); void mm_drop_all_locks(struct mm_struct *mm); @@ -294,13 +294,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr, unsigned long len, vm_flags_t vm_flags, unsigned long pgoff, struct list_head *uf); -int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *brkvma, +int do_brk_flags(struct vma_iterator *vmi, struct mm_area *brkvma, unsigned long addr, unsigned long request, unsigned long flags); unsigned long unmapped_area(struct vm_unmapped_area_info *info); unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info); -static inline bool vma_wants_manual_pte_write_upgrade(struct vm_area_struct *vma) +static inline bool vma_wants_manual_pte_write_upgrade(struct mm_area *vma) { /* * We want to check manually if we can change individual PTEs writable @@ -320,7 +320,7 @@ static inline pgprot_t vm_pgprot_modify(pgprot_t oldprot, unsigned long vm_flags } #endif -static inline struct vm_area_struct *vma_prev_limit(struct vma_iterator *vmi, +static inline struct mm_area *vma_prev_limit(struct vma_iterator *vmi, unsigned long min) { return mas_prev(&vmi->mas, min); @@ -370,13 +370,13 @@ static inline void vma_iter_reset(struct vma_iterator *vmi) } static inline -struct vm_area_struct *vma_iter_prev_range_limit(struct vma_iterator *vmi, unsigned long min) +struct mm_area *vma_iter_prev_range_limit(struct vma_iterator *vmi, unsigned long min) { return mas_prev_range(&vmi->mas, min); } static inline -struct vm_area_struct *vma_iter_next_range_limit(struct vma_iterator *vmi, unsigned long max) +struct mm_area *vma_iter_next_range_limit(struct vma_iterator *vmi, unsigned long max) { return mas_next_range(&vmi->mas, max); } @@ -397,7 +397,7 @@ static inline int vma_iter_area_highest(struct vma_iterator *vmi, unsigned long * VMA Iterator functions shared between nommu and mmap */ static inline int vma_iter_prealloc(struct vma_iterator *vmi, - struct vm_area_struct *vma) + struct mm_area *vma) { return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); } @@ -407,14 +407,14 @@ static inline void vma_iter_clear(struct vma_iterator *vmi) mas_store_prealloc(&vmi->mas, NULL); } -static inline struct vm_area_struct *vma_iter_load(struct vma_iterator *vmi) +static inline struct mm_area *vma_iter_load(struct vma_iterator *vmi) { return mas_walk(&vmi->mas); } /* Store a VMA with preallocated memory */ static inline void vma_iter_store_overwrite(struct vma_iterator *vmi, - struct vm_area_struct *vma) + struct mm_area *vma) { vma_assert_attached(vma); @@ -442,7 +442,7 @@ static inline void vma_iter_store_overwrite(struct vma_iterator *vmi, } static inline void vma_iter_store_new(struct vma_iterator *vmi, - struct vm_area_struct *vma) + struct mm_area *vma) { vma_mark_attached(vma); vma_iter_store_overwrite(vmi, vma); @@ -465,7 +465,7 @@ static inline int vma_iter_bulk_alloc(struct vma_iterator *vmi, } static inline -struct vm_area_struct *vma_iter_prev_range(struct vma_iterator *vmi) +struct mm_area *vma_iter_prev_range(struct vma_iterator *vmi) { return mas_prev_range(&vmi->mas, 0); } @@ -475,11 +475,11 @@ struct vm_area_struct *vma_iter_prev_range(struct vma_iterator *vmi) * if no previous VMA, to index 0. */ static inline -struct vm_area_struct *vma_iter_next_rewind(struct vma_iterator *vmi, - struct vm_area_struct **pprev) +struct mm_area *vma_iter_next_rewind(struct vma_iterator *vmi, + struct mm_area **pprev) { - struct vm_area_struct *next = vma_next(vmi); - struct vm_area_struct *prev = vma_prev(vmi); + struct mm_area *next = vma_next(vmi); + struct mm_area *prev = vma_prev(vmi); /* * Consider the case where no previous VMA exists. We advance to the @@ -500,7 +500,7 @@ struct vm_area_struct *vma_iter_next_rewind(struct vma_iterator *vmi, #ifdef CONFIG_64BIT -static inline bool vma_is_sealed(struct vm_area_struct *vma) +static inline bool vma_is_sealed(struct mm_area *vma) { return (vma->vm_flags & VM_SEALED); } @@ -509,7 +509,7 @@ static inline bool vma_is_sealed(struct vm_area_struct *vma) * check if a vma is sealed for modification. * return true, if modification is allowed. */ -static inline bool can_modify_vma(struct vm_area_struct *vma) +static inline bool can_modify_vma(struct mm_area *vma) { if (unlikely(vma_is_sealed(vma))) return false; @@ -517,16 +517,16 @@ static inline bool can_modify_vma(struct vm_area_struct *vma) return true; } -bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior); +bool can_modify_vma_madv(struct mm_area *vma, int behavior); #else -static inline bool can_modify_vma(struct vm_area_struct *vma) +static inline bool can_modify_vma(struct mm_area *vma) { return true; } -static inline bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) +static inline bool can_modify_vma_madv(struct mm_area *vma, int behavior) { return true; } @@ -534,10 +534,10 @@ static inline bool can_modify_vma_madv(struct vm_area_struct *vma, int behavior) #endif #if defined(CONFIG_STACK_GROWSUP) -int expand_upwards(struct vm_area_struct *vma, unsigned long address); +int expand_upwards(struct mm_area *vma, unsigned long address); #endif -int expand_downwards(struct vm_area_struct *vma, unsigned long address); +int expand_downwards(struct mm_area *vma, unsigned long address); int __vm_munmap(unsigned long start, size_t len, bool unlock); diff --git a/mm/vmalloc.c b/mm/vmalloc.c index 3ed720a787ec..c3ad2c82c0f9 100644 --- a/mm/vmalloc.c +++ b/mm/vmalloc.c @@ -4450,7 +4450,7 @@ long vread_iter(struct iov_iter *iter, const char *addr, size_t count) * * Similar to remap_pfn_range() (see mm/memory.c) */ -int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr, +int remap_vmalloc_range_partial(struct mm_area *vma, unsigned long uaddr, void *kaddr, unsigned long pgoff, unsigned long size) { @@ -4510,7 +4510,7 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr, * * Similar to remap_pfn_range() (see mm/memory.c) */ -int remap_vmalloc_range(struct vm_area_struct *vma, void *addr, +int remap_vmalloc_range(struct mm_area *vma, void *addr, unsigned long pgoff) { return remap_vmalloc_range_partial(vma, vma->vm_start, diff --git a/mm/vmscan.c b/mm/vmscan.c index b620d74b0f66..9e629fea2e9a 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -3322,7 +3322,7 @@ static void reset_batch_size(struct lru_gen_mm_walk *walk) static int should_skip_vma(unsigned long start, unsigned long end, struct mm_walk *args) { struct address_space *mapping; - struct vm_area_struct *vma = args->vma; + struct mm_area *vma = args->vma; struct lru_gen_mm_walk *walk = args->private; if (!vma_is_accessible(vma)) @@ -3391,7 +3391,7 @@ static bool get_next_vma(unsigned long mask, unsigned long size, struct mm_walk return false; } -static unsigned long get_pte_pfn(pte_t pte, struct vm_area_struct *vma, unsigned long addr, +static unsigned long get_pte_pfn(pte_t pte, struct mm_area *vma, unsigned long addr, struct pglist_data *pgdat) { unsigned long pfn = pte_pfn(pte); @@ -3416,7 +3416,7 @@ static unsigned long get_pte_pfn(pte_t pte, struct vm_area_struct *vma, unsigned return pfn; } -static unsigned long get_pmd_pfn(pmd_t pmd, struct vm_area_struct *vma, unsigned long addr, +static unsigned long get_pmd_pfn(pmd_t pmd, struct mm_area *vma, unsigned long addr, struct pglist_data *pgdat) { unsigned long pfn = pmd_pfn(pmd); @@ -3569,7 +3569,7 @@ static bool walk_pte_range(pmd_t *pmd, unsigned long start, unsigned long end, return suitable_to_scan(total, young); } -static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct vm_area_struct *vma, +static void walk_pmd_range_locked(pud_t *pud, unsigned long addr, struct mm_area *vma, struct mm_walk *args, unsigned long *bitmap, unsigned long *first) { int i; @@ -3664,7 +3664,7 @@ static void walk_pmd_range(pud_t *pud, unsigned long start, unsigned long end, pmd_t *pmd; unsigned long next; unsigned long addr; - struct vm_area_struct *vma; + struct mm_area *vma; DECLARE_BITMAP(bitmap, MIN_LRU_BATCH); unsigned long first = -1; struct lru_gen_mm_walk *walk = args->private; @@ -4193,7 +4193,7 @@ bool lru_gen_look_around(struct page_vma_mapped_walk *pvmw) int young = 1; pte_t *pte = pvmw->pte; unsigned long addr = pvmw->address; - struct vm_area_struct *vma = pvmw->vma; + struct mm_area *vma = pvmw->vma; struct folio *folio = pfn_folio(pvmw->pfn); struct mem_cgroup *memcg = folio_memcg(folio); struct pglist_data *pgdat = folio_pgdat(folio); diff --git a/net/core/sock.c b/net/core/sock.c index 323892066def..7d9b9ea0014d 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3467,7 +3467,7 @@ int sock_no_recvmsg(struct socket *sock, struct msghdr *m, size_t len, } EXPORT_SYMBOL(sock_no_recvmsg); -int sock_no_mmap(struct file *file, struct socket *sock, struct vm_area_struct *vma) +int sock_no_mmap(struct file *file, struct socket *sock, struct mm_area *vma) { /* Mirror missing mmap method error code */ return -ENODEV; diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c index ea8de00f669d..f51b18d0fac2 100644 --- a/net/ipv4/tcp.c +++ b/net/ipv4/tcp.c @@ -1801,7 +1801,7 @@ static const struct vm_operations_struct tcp_vm_ops = { }; int tcp_mmap(struct file *file, struct socket *sock, - struct vm_area_struct *vma) + struct mm_area *vma) { if (vma->vm_flags & (VM_WRITE | VM_EXEC)) return -EPERM; @@ -1997,7 +1997,7 @@ static int tcp_zc_handle_leftover(struct tcp_zerocopy_receive *zc, return zc->copybuf_len < 0 ? 0 : copylen; } -static int tcp_zerocopy_vm_insert_batch_error(struct vm_area_struct *vma, +static int tcp_zerocopy_vm_insert_batch_error(struct mm_area *vma, struct page **pending_pages, unsigned long pages_remaining, unsigned long *address, @@ -2045,7 +2045,7 @@ static int tcp_zerocopy_vm_insert_batch_error(struct vm_area_struct *vma, return err; } -static int tcp_zerocopy_vm_insert_batch(struct vm_area_struct *vma, +static int tcp_zerocopy_vm_insert_batch(struct mm_area *vma, struct page **pages, unsigned int pages_to_map, unsigned long *address, @@ -2104,11 +2104,11 @@ static void tcp_zc_finalize_rx_tstamp(struct sock *sk, } } -static struct vm_area_struct *find_tcp_vma(struct mm_struct *mm, +static struct mm_area *find_tcp_vma(struct mm_struct *mm, unsigned long address, bool *mmap_locked) { - struct vm_area_struct *vma = lock_vma_under_rcu(mm, address); + struct mm_area *vma = lock_vma_under_rcu(mm, address); if (vma) { if (vma->vm_ops != &tcp_vm_ops) { @@ -2141,7 +2141,7 @@ static int tcp_zerocopy_receive(struct sock *sk, struct tcp_sock *tp = tcp_sk(sk); const skb_frag_t *frags = NULL; unsigned int pages_to_map = 0; - struct vm_area_struct *vma; + struct mm_area *vma; struct sk_buff *skb = NULL; u32 seq = tp->copied_seq; u32 total_bytes_to_map; diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c index 3e9ddf72cd03..c1ac0ed67f71 100644 --- a/net/packet/af_packet.c +++ b/net/packet/af_packet.c @@ -4358,7 +4358,7 @@ static __poll_t packet_poll(struct file *file, struct socket *sock, * for user mmaps. */ -static void packet_mm_open(struct vm_area_struct *vma) +static void packet_mm_open(struct mm_area *vma) { struct file *file = vma->vm_file; struct socket *sock = file->private_data; @@ -4368,7 +4368,7 @@ static void packet_mm_open(struct vm_area_struct *vma) atomic_long_inc(&pkt_sk(sk)->mapped); } -static void packet_mm_close(struct vm_area_struct *vma) +static void packet_mm_close(struct mm_area *vma) { struct file *file = vma->vm_file; struct socket *sock = file->private_data; @@ -4619,7 +4619,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u, } static int packet_mmap(struct file *file, struct socket *sock, - struct vm_area_struct *vma) + struct mm_area *vma) { struct sock *sk = sock->sk; struct packet_sock *po = pkt_sk(sk); diff --git a/net/socket.c b/net/socket.c index 9a0e720f0859..796d8811c0cc 100644 --- a/net/socket.c +++ b/net/socket.c @@ -119,7 +119,7 @@ unsigned int sysctl_net_busy_poll __read_mostly; static ssize_t sock_read_iter(struct kiocb *iocb, struct iov_iter *to); static ssize_t sock_write_iter(struct kiocb *iocb, struct iov_iter *from); -static int sock_mmap(struct file *file, struct vm_area_struct *vma); +static int sock_mmap(struct file *file, struct mm_area *vma); static int sock_close(struct inode *inode, struct file *file); static __poll_t sock_poll(struct file *file, @@ -1379,7 +1379,7 @@ static __poll_t sock_poll(struct file *file, poll_table *wait) return ops->poll(file, sock, wait) | flag; } -static int sock_mmap(struct file *file, struct vm_area_struct *vma) +static int sock_mmap(struct file *file, struct mm_area *vma) { struct socket *sock = file->private_data; diff --git a/net/xdp/xsk.c b/net/xdp/xsk.c index 5696af45bcf7..13d7febb2286 100644 --- a/net/xdp/xsk.c +++ b/net/xdp/xsk.c @@ -1595,7 +1595,7 @@ static int xsk_getsockopt(struct socket *sock, int level, int optname, } static int xsk_mmap(struct file *file, struct socket *sock, - struct vm_area_struct *vma) + struct mm_area *vma) { loff_t offset = (loff_t)vma->vm_pgoff << PAGE_SHIFT; unsigned long size = vma->vm_end - vma->vm_start; diff --git a/samples/ftrace/ftrace-direct-too.c b/samples/ftrace/ftrace-direct-too.c index 3d0fa260332d..6c77296cf30b 100644 --- a/samples/ftrace/ftrace-direct-too.c +++ b/samples/ftrace/ftrace-direct-too.c @@ -7,10 +7,10 @@ #include #endif -extern void my_direct_func(struct vm_area_struct *vma, unsigned long address, +extern void my_direct_func(struct mm_area *vma, unsigned long address, unsigned int flags, struct pt_regs *regs); -void my_direct_func(struct vm_area_struct *vma, unsigned long address, +void my_direct_func(struct mm_area *vma, unsigned long address, unsigned int flags, struct pt_regs *regs) { trace_printk("handle mm fault vma=%p address=%lx flags=%x regs=%p\n", diff --git a/samples/vfio-mdev/mbochs.c b/samples/vfio-mdev/mbochs.c index 18623ba666e3..4b6121f12c27 100644 --- a/samples/vfio-mdev/mbochs.c +++ b/samples/vfio-mdev/mbochs.c @@ -777,7 +777,7 @@ static void mbochs_put_pages(struct mdev_state *mdev_state) static vm_fault_t mbochs_region_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mdev_state *mdev_state = vma->vm_private_data; pgoff_t page_offset = (vmf->address - vma->vm_start) >> PAGE_SHIFT; @@ -795,7 +795,7 @@ static const struct vm_operations_struct mbochs_region_vm_ops = { .fault = mbochs_region_vm_fault, }; -static int mbochs_mmap(struct vfio_device *vdev, struct vm_area_struct *vma) +static int mbochs_mmap(struct vfio_device *vdev, struct mm_area *vma) { struct mdev_state *mdev_state = container_of(vdev, struct mdev_state, vdev); @@ -816,7 +816,7 @@ static int mbochs_mmap(struct vfio_device *vdev, struct vm_area_struct *vma) static vm_fault_t mbochs_dmabuf_vm_fault(struct vm_fault *vmf) { - struct vm_area_struct *vma = vmf->vma; + struct mm_area *vma = vmf->vma; struct mbochs_dmabuf *dmabuf = vma->vm_private_data; if (WARN_ON(vmf->pgoff >= dmabuf->pagecount)) @@ -831,7 +831,7 @@ static const struct vm_operations_struct mbochs_dmabuf_vm_ops = { .fault = mbochs_dmabuf_vm_fault, }; -static int mbochs_mmap_dmabuf(struct dma_buf *buf, struct vm_area_struct *vma) +static int mbochs_mmap_dmabuf(struct dma_buf *buf, struct mm_area *vma) { struct mbochs_dmabuf *dmabuf = buf->priv; struct device *dev = mdev_dev(dmabuf->mdev_state->mdev); diff --git a/samples/vfio-mdev/mdpy.c b/samples/vfio-mdev/mdpy.c index 8104831ae125..8f939e826acf 100644 --- a/samples/vfio-mdev/mdpy.c +++ b/samples/vfio-mdev/mdpy.c @@ -418,7 +418,7 @@ static ssize_t mdpy_write(struct vfio_device *vdev, const char __user *buf, return -EFAULT; } -static int mdpy_mmap(struct vfio_device *vdev, struct vm_area_struct *vma) +static int mdpy_mmap(struct vfio_device *vdev, struct mm_area *vma) { struct mdev_state *mdev_state = container_of(vdev, struct mdev_state, vdev); diff --git a/scripts/coccinelle/api/vma_pages.cocci b/scripts/coccinelle/api/vma_pages.cocci index 10511b9bf35e..96c7790dff71 100644 --- a/scripts/coccinelle/api/vma_pages.cocci +++ b/scripts/coccinelle/api/vma_pages.cocci @@ -16,7 +16,7 @@ virtual report //---------------------------------------------------------- @r_context depends on context && !patch && !org && !report@ -struct vm_area_struct *vma; +struct mm_area *vma; @@ * (vma->vm_end - vma->vm_start) >> PAGE_SHIFT @@ -26,7 +26,7 @@ struct vm_area_struct *vma; //---------------------------------------------------------- @r_patch depends on !context && patch && !org && !report@ -struct vm_area_struct *vma; +struct mm_area *vma; @@ - ((vma->vm_end - vma->vm_start) >> PAGE_SHIFT) @@ -37,7 +37,7 @@ struct vm_area_struct *vma; //---------------------------------------------------------- @r_org depends on !context && !patch && (org || report)@ -struct vm_area_struct *vma; +struct mm_area *vma; position p; @@ diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c index 7952e8cab353..cadd2fdbf01d 100644 --- a/security/apparmor/lsm.c +++ b/security/apparmor/lsm.c @@ -585,7 +585,7 @@ static int apparmor_mmap_file(struct file *file, unsigned long reqprot, return common_mmap(OP_FMMAP, file, prot, flags, GFP_ATOMIC); } -static int apparmor_file_mprotect(struct vm_area_struct *vma, +static int apparmor_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot) { return common_mmap(OP_FMPROT, vma->vm_file, prot, diff --git a/security/integrity/ima/ima_main.c b/security/integrity/ima/ima_main.c index f3e7ac513db3..a6e25bb8dc0b 100644 --- a/security/integrity/ima/ima_main.c +++ b/security/integrity/ima/ima_main.c @@ -478,7 +478,7 @@ static int ima_file_mmap(struct file *file, unsigned long reqprot, /** * ima_file_mprotect - based on policy, limit mprotect change - * @vma: vm_area_struct protection is set to + * @vma: mm_area protection is set to * @reqprot: protection requested by the application * @prot: protection that will be applied by the kernel * @@ -490,7 +490,7 @@ static int ima_file_mmap(struct file *file, unsigned long reqprot, * * On mprotect change success, return 0. On failure, return -EACESS. */ -static int ima_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, +static int ima_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot) { struct ima_template_desc *template = NULL; diff --git a/security/ipe/hooks.c b/security/ipe/hooks.c index d0323b81cd8f..5882e26563be 100644 --- a/security/ipe/hooks.c +++ b/security/ipe/hooks.c @@ -77,7 +77,7 @@ int ipe_mmap_file(struct file *f, unsigned long reqprot __always_unused, * * %0 - Success * * %-EACCES - Did not pass IPE policy */ -int ipe_file_mprotect(struct vm_area_struct *vma, +int ipe_file_mprotect(struct mm_area *vma, unsigned long reqprot __always_unused, unsigned long prot) { diff --git a/security/ipe/hooks.h b/security/ipe/hooks.h index 38d4a387d039..3b4b2f502809 100644 --- a/security/ipe/hooks.h +++ b/security/ipe/hooks.h @@ -27,7 +27,7 @@ int ipe_bprm_check_security(struct linux_binprm *bprm); int ipe_mmap_file(struct file *f, unsigned long reqprot, unsigned long prot, unsigned long flags); -int ipe_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, +int ipe_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot); int ipe_kernel_read_file(struct file *file, enum kernel_read_file_id id, diff --git a/security/security.c b/security/security.c index fb57e8fddd91..1026b02ee7cf 100644 --- a/security/security.c +++ b/security/security.c @@ -3006,7 +3006,7 @@ int security_mmap_addr(unsigned long addr) * * Return: Returns 0 if permission is granted. */ -int security_file_mprotect(struct vm_area_struct *vma, unsigned long reqprot, +int security_file_mprotect(struct mm_area *vma, unsigned long reqprot, unsigned long prot) { return call_int_hook(file_mprotect, vma, reqprot, prot); diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index e7a7dcab81db..28b458a22af8 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -3848,7 +3848,7 @@ static int selinux_mmap_file(struct file *file, (flags & MAP_TYPE) == MAP_SHARED); } -static int selinux_file_mprotect(struct vm_area_struct *vma, +static int selinux_file_mprotect(struct mm_area *vma, unsigned long reqprot __always_unused, unsigned long prot) { diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c index 47480eb2189b..84ed683ce903 100644 --- a/security/selinux/selinuxfs.c +++ b/security/selinux/selinuxfs.c @@ -240,7 +240,7 @@ static ssize_t sel_read_handle_status(struct file *filp, char __user *buf, } static int sel_mmap_handle_status(struct file *filp, - struct vm_area_struct *vma) + struct mm_area *vma) { struct page *status = filp->private_data; unsigned long size = vma->vm_end - vma->vm_start; @@ -465,7 +465,7 @@ static const struct vm_operations_struct sel_mmap_policy_ops = { .page_mkwrite = sel_mmap_policy_fault, }; -static int sel_mmap_policy(struct file *filp, struct vm_area_struct *vma) +static int sel_mmap_policy(struct file *filp, struct mm_area *vma) { if (vma->vm_flags & VM_SHARED) { /* do not allow mprotect to make mapping writable */ diff --git a/sound/core/compress_offload.c b/sound/core/compress_offload.c index 840bb9cfe789..84e86bd99ead 100644 --- a/sound/core/compress_offload.c +++ b/sound/core/compress_offload.c @@ -389,7 +389,7 @@ static ssize_t snd_compr_read(struct file *f, char __user *buf, return retval; } -static int snd_compr_mmap(struct file *f, struct vm_area_struct *vma) +static int snd_compr_mmap(struct file *f, struct mm_area *vma) { return -ENXIO; } diff --git a/sound/core/hwdep.c b/sound/core/hwdep.c index 09200df2932c..ac5cf0c98ec4 100644 --- a/sound/core/hwdep.c +++ b/sound/core/hwdep.c @@ -253,7 +253,7 @@ static long snd_hwdep_ioctl(struct file * file, unsigned int cmd, return -ENOTTY; } -static int snd_hwdep_mmap(struct file * file, struct vm_area_struct * vma) +static int snd_hwdep_mmap(struct file * file, struct mm_area * vma) { struct snd_hwdep *hw = file->private_data; if (hw->ops.mmap) diff --git a/sound/core/info.c b/sound/core/info.c index 1f5b8a3d9e3b..2d80eb13ab7e 100644 --- a/sound/core/info.c +++ b/sound/core/info.c @@ -211,7 +211,7 @@ static long snd_info_entry_ioctl(struct file *file, unsigned int cmd, file, cmd, arg); } -static int snd_info_entry_mmap(struct file *file, struct vm_area_struct *vma) +static int snd_info_entry_mmap(struct file *file, struct mm_area *vma) { struct inode *inode = file_inode(file); struct snd_info_private_data *data; diff --git a/sound/core/init.c b/sound/core/init.c index 114fb87de990..6c357c892dc4 100644 --- a/sound/core/init.c +++ b/sound/core/init.c @@ -451,7 +451,7 @@ static long snd_disconnect_ioctl(struct file *file, return -ENODEV; } -static int snd_disconnect_mmap(struct file *file, struct vm_area_struct *vma) +static int snd_disconnect_mmap(struct file *file, struct mm_area *vma) { return -ENODEV; } diff --git a/sound/core/memalloc.c b/sound/core/memalloc.c index b3853583d2ae..2c5f64a1c8fe 100644 --- a/sound/core/memalloc.c +++ b/sound/core/memalloc.c @@ -25,7 +25,7 @@ struct snd_malloc_ops { struct page *(*get_page)(struct snd_dma_buffer *dmab, size_t offset); unsigned int (*get_chunk_size)(struct snd_dma_buffer *dmab, unsigned int ofs, unsigned int size); - int (*mmap)(struct snd_dma_buffer *dmab, struct vm_area_struct *area); + int (*mmap)(struct snd_dma_buffer *dmab, struct mm_area *area); void (*sync)(struct snd_dma_buffer *dmab, enum snd_dma_sync_mode mode); }; @@ -189,7 +189,7 @@ EXPORT_SYMBOL_GPL(snd_devm_alloc_dir_pages); * Return: zero if successful, or a negative error code */ int snd_dma_buffer_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { const struct snd_malloc_ops *ops; @@ -334,7 +334,7 @@ static void snd_dma_continuous_free(struct snd_dma_buffer *dmab) } static int snd_dma_continuous_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { return remap_pfn_range(area, area->vm_start, dmab->addr >> PAGE_SHIFT, @@ -362,7 +362,7 @@ static void snd_dma_vmalloc_free(struct snd_dma_buffer *dmab) } static int snd_dma_vmalloc_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { return remap_vmalloc_range(area, dmab->area, 0); } @@ -451,7 +451,7 @@ static void snd_dma_iram_free(struct snd_dma_buffer *dmab) } static int snd_dma_iram_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); return remap_pfn_range(area, area->vm_start, @@ -481,7 +481,7 @@ static void snd_dma_dev_free(struct snd_dma_buffer *dmab) } static int snd_dma_dev_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { return dma_mmap_coherent(dmab->dev.dev, area, dmab->area, dmab->addr, dmab->bytes); @@ -520,7 +520,7 @@ static void snd_dma_wc_free(struct snd_dma_buffer *dmab) } static int snd_dma_wc_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); return dma_mmap_coherent(dmab->dev.dev, area, @@ -538,7 +538,7 @@ static void snd_dma_wc_free(struct snd_dma_buffer *dmab) } static int snd_dma_wc_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { return dma_mmap_wc(dmab->dev.dev, area, dmab->area, dmab->addr, dmab->bytes); @@ -585,7 +585,7 @@ static void snd_dma_noncontig_free(struct snd_dma_buffer *dmab) } static int snd_dma_noncontig_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { return dma_mmap_noncontiguous(dmab->dev.dev, area, dmab->bytes, dmab->private_data); @@ -789,7 +789,7 @@ static void snd_dma_sg_fallback_free(struct snd_dma_buffer *dmab) } static int snd_dma_sg_fallback_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { struct snd_dma_sg_fallback *sgbuf = dmab->private_data; @@ -849,7 +849,7 @@ static void snd_dma_noncoherent_free(struct snd_dma_buffer *dmab) } static int snd_dma_noncoherent_mmap(struct snd_dma_buffer *dmab, - struct vm_area_struct *area) + struct mm_area *area) { area->vm_page_prot = vm_get_page_prot(area->vm_flags); return dma_mmap_pages(dmab->dev.dev, area, diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c index 4683b9139c56..884e96ea9cca 100644 --- a/sound/core/oss/pcm_oss.c +++ b/sound/core/oss/pcm_oss.c @@ -2867,7 +2867,7 @@ static __poll_t snd_pcm_oss_poll(struct file *file, poll_table * wait) return mask; } -static int snd_pcm_oss_mmap(struct file *file, struct vm_area_struct *area) +static int snd_pcm_oss_mmap(struct file *file, struct mm_area *area) { struct snd_pcm_oss_file *pcm_oss_file; struct snd_pcm_substream *substream = NULL; diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c index 6c2b6a62d9d2..415c3dec027f 100644 --- a/sound/core/pcm_native.c +++ b/sound/core/pcm_native.c @@ -3668,7 +3668,7 @@ static const struct vm_operations_struct snd_pcm_vm_ops_status = }; static int snd_pcm_mmap_status(struct snd_pcm_substream *substream, struct file *file, - struct vm_area_struct *area) + struct mm_area *area) { long size; if (!(area->vm_flags & VM_READ)) @@ -3706,7 +3706,7 @@ static const struct vm_operations_struct snd_pcm_vm_ops_control = }; static int snd_pcm_mmap_control(struct snd_pcm_substream *substream, struct file *file, - struct vm_area_struct *area) + struct mm_area *area) { long size; if (!(area->vm_flags & VM_READ)) @@ -3762,12 +3762,12 @@ static bool pcm_control_mmap_allowed(struct snd_pcm_file *pcm_file) #define pcm_control_mmap_allowed(pcm_file) false static int snd_pcm_mmap_status(struct snd_pcm_substream *substream, struct file *file, - struct vm_area_struct *area) + struct mm_area *area) { return -ENXIO; } static int snd_pcm_mmap_control(struct snd_pcm_substream *substream, struct file *file, - struct vm_area_struct *area) + struct mm_area *area) { return -ENXIO; } @@ -3776,7 +3776,7 @@ static int snd_pcm_mmap_control(struct snd_pcm_substream *substream, struct file /* * snd_pcm_mmap_data_open - increase the mmap counter */ -static void snd_pcm_mmap_data_open(struct vm_area_struct *area) +static void snd_pcm_mmap_data_open(struct mm_area *area) { struct snd_pcm_substream *substream = area->vm_private_data; @@ -3786,7 +3786,7 @@ static void snd_pcm_mmap_data_open(struct vm_area_struct *area) /* * snd_pcm_mmap_data_close - decrease the mmap counter */ -static void snd_pcm_mmap_data_close(struct vm_area_struct *area) +static void snd_pcm_mmap_data_close(struct mm_area *area) { struct snd_pcm_substream *substream = area->vm_private_data; @@ -3852,7 +3852,7 @@ static const struct vm_operations_struct snd_pcm_vm_ops_data_fault = { * Return: zero if successful, or a negative error code */ int snd_pcm_lib_default_mmap(struct snd_pcm_substream *substream, - struct vm_area_struct *area) + struct mm_area *area) { vm_flags_set(area, VM_DONTEXPAND | VM_DONTDUMP); if (!substream->ops->page && @@ -3880,7 +3880,7 @@ EXPORT_SYMBOL_GPL(snd_pcm_lib_default_mmap); * Return: zero if successful, or a negative error code */ int snd_pcm_lib_mmap_iomem(struct snd_pcm_substream *substream, - struct vm_area_struct *area) + struct mm_area *area) { struct snd_pcm_runtime *runtime = substream->runtime; @@ -3894,7 +3894,7 @@ EXPORT_SYMBOL(snd_pcm_lib_mmap_iomem); * mmap DMA buffer */ int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, - struct vm_area_struct *area) + struct mm_area *area) { struct snd_pcm_runtime *runtime; long size; @@ -3937,7 +3937,7 @@ int snd_pcm_mmap_data(struct snd_pcm_substream *substream, struct file *file, } EXPORT_SYMBOL(snd_pcm_mmap_data); -static int snd_pcm_mmap(struct file *file, struct vm_area_struct *area) +static int snd_pcm_mmap(struct file *file, struct mm_area *area) { struct snd_pcm_file * pcm_file; struct snd_pcm_substream *substream; diff --git a/sound/soc/fsl/fsl_asrc_m2m.c b/sound/soc/fsl/fsl_asrc_m2m.c index f46881f71e43..32356e92f2ae 100644 --- a/sound/soc/fsl/fsl_asrc_m2m.c +++ b/sound/soc/fsl/fsl_asrc_m2m.c @@ -401,7 +401,7 @@ static int fsl_asrc_m2m_comp_set_params(struct snd_compr_stream *stream, return 0; } -static int fsl_asrc_m2m_mmap(struct dma_buf *dmabuf, struct vm_area_struct *vma) +static int fsl_asrc_m2m_mmap(struct dma_buf *dmabuf, struct mm_area *vma) { struct snd_dma_buffer *dmab = dmabuf->priv; diff --git a/sound/soc/intel/avs/pcm.c b/sound/soc/intel/avs/pcm.c index dac463390da1..d595f2ef22a8 100644 --- a/sound/soc/intel/avs/pcm.c +++ b/sound/soc/intel/avs/pcm.c @@ -1240,7 +1240,7 @@ avs_component_pointer(struct snd_soc_component *component, struct snd_pcm_substr static int avs_component_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { return snd_pcm_lib_default_mmap(substream, vma); } diff --git a/sound/soc/loongson/loongson_dma.c b/sound/soc/loongson/loongson_dma.c index 20e4a0641340..2e05bc1683bd 100644 --- a/sound/soc/loongson/loongson_dma.c +++ b/sound/soc/loongson/loongson_dma.c @@ -295,7 +295,7 @@ static int loongson_pcm_close(struct snd_soc_component *component, static int loongson_pcm_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { return remap_pfn_range(vma, vma->vm_start, substream->dma_buffer.addr >> PAGE_SHIFT, diff --git a/sound/soc/pxa/mmp-sspa.c b/sound/soc/pxa/mmp-sspa.c index 73f36c9dd35c..bbb0f3a15c39 100644 --- a/sound/soc/pxa/mmp-sspa.c +++ b/sound/soc/pxa/mmp-sspa.c @@ -402,7 +402,7 @@ static const struct snd_dmaengine_pcm_config mmp_pcm_config = { static int mmp_pcm_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { vm_flags_set(vma, VM_DONTEXPAND | VM_DONTDUMP); vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); diff --git a/sound/soc/qcom/lpass-platform.c b/sound/soc/qcom/lpass-platform.c index 9946f12254b3..bf8cd80fcf5a 100644 --- a/sound/soc/qcom/lpass-platform.c +++ b/sound/soc/qcom/lpass-platform.c @@ -894,7 +894,7 @@ static snd_pcm_uframes_t lpass_platform_pcmops_pointer( } static int lpass_platform_cdc_dma_mmap(struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_pcm_runtime *runtime = substream->runtime; unsigned long size, offset; @@ -910,7 +910,7 @@ static int lpass_platform_cdc_dma_mmap(struct snd_pcm_substream *substream, static int lpass_platform_pcmops_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_soc_pcm_runtime *soc_runtime = snd_soc_substream_to_rtd(substream); struct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(soc_runtime, 0); diff --git a/sound/soc/qcom/qdsp6/q6apm-dai.c b/sound/soc/qcom/qdsp6/q6apm-dai.c index 2cd522108221..6a9ef02b5ab6 100644 --- a/sound/soc/qcom/qdsp6/q6apm-dai.c +++ b/sound/soc/qcom/qdsp6/q6apm-dai.c @@ -739,7 +739,7 @@ static int q6apm_dai_compr_set_metadata(struct snd_soc_component *component, static int q6apm_dai_compr_mmap(struct snd_soc_component *component, struct snd_compr_stream *stream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_compr_runtime *runtime = stream->runtime; struct q6apm_dai_rtd *prtd = runtime->private_data; diff --git a/sound/soc/qcom/qdsp6/q6asm-dai.c b/sound/soc/qcom/qdsp6/q6asm-dai.c index a400c9a31fea..7d382c459845 100644 --- a/sound/soc/qcom/qdsp6/q6asm-dai.c +++ b/sound/soc/qcom/qdsp6/q6asm-dai.c @@ -1114,7 +1114,7 @@ static int q6asm_compr_copy(struct snd_soc_component *component, static int q6asm_dai_compr_mmap(struct snd_soc_component *component, struct snd_compr_stream *stream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_compr_runtime *runtime = stream->runtime; struct q6asm_dai_rtd *prtd = runtime->private_data; diff --git a/sound/soc/samsung/idma.c b/sound/soc/samsung/idma.c index 402ccadad46c..618cc682b223 100644 --- a/sound/soc/samsung/idma.c +++ b/sound/soc/samsung/idma.c @@ -240,7 +240,7 @@ idma_pointer(struct snd_soc_component *component, static int idma_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_pcm_runtime *runtime = substream->runtime; unsigned long size, offset; diff --git a/sound/soc/soc-component.c b/sound/soc/soc-component.c index 25f5e543ae8d..019eabf1f618 100644 --- a/sound/soc/soc-component.c +++ b/sound/soc/soc-component.c @@ -1095,7 +1095,7 @@ struct page *snd_soc_pcm_component_page(struct snd_pcm_substream *substream, } int snd_soc_pcm_component_mmap(struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { struct snd_soc_pcm_runtime *rtd = snd_soc_substream_to_rtd(substream); struct snd_soc_component *component; diff --git a/sound/soc/uniphier/aio-dma.c b/sound/soc/uniphier/aio-dma.c index 265d61723e99..e930c48f3ac2 100644 --- a/sound/soc/uniphier/aio-dma.c +++ b/sound/soc/uniphier/aio-dma.c @@ -193,7 +193,7 @@ static snd_pcm_uframes_t uniphier_aiodma_pointer( static int uniphier_aiodma_mmap(struct snd_soc_component *component, struct snd_pcm_substream *substream, - struct vm_area_struct *vma) + struct mm_area *vma) { vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot); diff --git a/sound/usb/usx2y/us122l.c b/sound/usb/usx2y/us122l.c index 6bcf8b859ebb..818228d5e3a2 100644 --- a/sound/usb/usx2y/us122l.c +++ b/sound/usb/usx2y/us122l.c @@ -173,7 +173,7 @@ static int usb_stream_hwdep_release(struct snd_hwdep *hw, struct file *file) } static int usb_stream_hwdep_mmap(struct snd_hwdep *hw, - struct file *filp, struct vm_area_struct *area) + struct file *filp, struct mm_area *area) { unsigned long size = area->vm_end - area->vm_start; struct us122l *us122l = hw->private_data; diff --git a/sound/usb/usx2y/usX2Yhwdep.c b/sound/usb/usx2y/usX2Yhwdep.c index 9fd6a86cc08e..f53ab11ba825 100644 --- a/sound/usb/usx2y/usX2Yhwdep.c +++ b/sound/usb/usx2y/usX2Yhwdep.c @@ -37,7 +37,7 @@ static const struct vm_operations_struct us428ctls_vm_ops = { .fault = snd_us428ctls_vm_fault, }; -static int snd_us428ctls_mmap(struct snd_hwdep *hw, struct file *filp, struct vm_area_struct *area) +static int snd_us428ctls_mmap(struct snd_hwdep *hw, struct file *filp, struct mm_area *area) { unsigned long size = (unsigned long)(area->vm_end - area->vm_start); struct usx2ydev *us428 = hw->private_data; diff --git a/sound/usb/usx2y/usx2yhwdeppcm.c b/sound/usb/usx2y/usx2yhwdeppcm.c index 1b1496adb47e..acf7d36dc4e9 100644 --- a/sound/usb/usx2y/usx2yhwdeppcm.c +++ b/sound/usb/usx2y/usx2yhwdeppcm.c @@ -667,11 +667,11 @@ static int snd_usx2y_hwdep_pcm_release(struct snd_hwdep *hw, struct file *file) return err; } -static void snd_usx2y_hwdep_pcm_vm_open(struct vm_area_struct *area) +static void snd_usx2y_hwdep_pcm_vm_open(struct mm_area *area) { } -static void snd_usx2y_hwdep_pcm_vm_close(struct vm_area_struct *area) +static void snd_usx2y_hwdep_pcm_vm_close(struct mm_area *area) { } @@ -693,7 +693,7 @@ static const struct vm_operations_struct snd_usx2y_hwdep_pcm_vm_ops = { .fault = snd_usx2y_hwdep_pcm_vm_fault, }; -static int snd_usx2y_hwdep_pcm_mmap(struct snd_hwdep *hw, struct file *filp, struct vm_area_struct *area) +static int snd_usx2y_hwdep_pcm_mmap(struct snd_hwdep *hw, struct file *filp, struct mm_area *area) { unsigned long size = (unsigned long)(area->vm_end - area->vm_start); struct usx2ydev *usx2y = hw->private_data; diff --git a/tools/include/linux/btf_ids.h b/tools/include/linux/btf_ids.h index 72ea363d434d..3c3285b1bb05 100644 --- a/tools/include/linux/btf_ids.h +++ b/tools/include/linux/btf_ids.h @@ -205,7 +205,7 @@ extern u32 btf_sock_ids[]; #define BTF_TRACING_TYPE_xxx \ BTF_TRACING_TYPE(BTF_TRACING_TYPE_TASK, task_struct) \ BTF_TRACING_TYPE(BTF_TRACING_TYPE_FILE, file) \ - BTF_TRACING_TYPE(BTF_TRACING_TYPE_VMA, vm_area_struct) + BTF_TRACING_TYPE(BTF_TRACING_TYPE_VMA, mm_area) enum { #define BTF_TRACING_TYPE(name, type) name, diff --git a/tools/include/uapi/linux/bpf.h b/tools/include/uapi/linux/bpf.h index 28705ae67784..7894f9c2ae9b 100644 --- a/tools/include/uapi/linux/bpf.h +++ b/tools/include/uapi/linux/bpf.h @@ -5368,7 +5368,7 @@ union bpf_attr { * * The expected callback signature is * - * long (\*callback_fn)(struct task_struct \*task, struct vm_area_struct \*vma, void \*callback_ctx); + * long (\*callback_fn)(struct task_struct \*task, struct mm_area \*vma, void \*callback_ctx); * * Return * 0 on success. diff --git a/tools/testing/selftests/bpf/bpf_experimental.h b/tools/testing/selftests/bpf/bpf_experimental.h index 6535c8ae3c46..08d8c40b8546 100644 --- a/tools/testing/selftests/bpf/bpf_experimental.h +++ b/tools/testing/selftests/bpf/bpf_experimental.h @@ -164,7 +164,7 @@ struct bpf_iter_task_vma; extern int bpf_iter_task_vma_new(struct bpf_iter_task_vma *it, struct task_struct *task, __u64 addr) __ksym; -extern struct vm_area_struct *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) __ksym; +extern struct mm_area *bpf_iter_task_vma_next(struct bpf_iter_task_vma *it) __ksym; extern void bpf_iter_task_vma_destroy(struct bpf_iter_task_vma *it) __ksym; /* Convenience macro to wrap over bpf_obj_drop_impl */ diff --git a/tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.c b/tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.c index d64ba7ddaed5..899e6b03c070 100644 --- a/tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.c +++ b/tools/testing/selftests/bpf/progs/bpf_iter_task_vmas.c @@ -25,7 +25,7 @@ __u32 one_task_error = 0; SEC("iter/task_vma") int proc_maps(struct bpf_iter__task_vma *ctx) { - struct vm_area_struct *vma = ctx->vma; + struct mm_area *vma = ctx->vma; struct seq_file *seq = ctx->meta->seq; struct task_struct *task = ctx->task; struct file *file; diff --git a/tools/testing/selftests/bpf/progs/bpf_iter_vma_offset.c b/tools/testing/selftests/bpf/progs/bpf_iter_vma_offset.c index 174298e122d3..6a27844ef324 100644 --- a/tools/testing/selftests/bpf/progs/bpf_iter_vma_offset.c +++ b/tools/testing/selftests/bpf/progs/bpf_iter_vma_offset.c @@ -15,7 +15,7 @@ __u32 page_shift = 0; SEC("iter/task_vma") int get_vma_offset(struct bpf_iter__task_vma *ctx) { - struct vm_area_struct *vma = ctx->vma; + struct mm_area *vma = ctx->vma; struct seq_file *seq = ctx->meta->seq; struct task_struct *task = ctx->task; diff --git a/tools/testing/selftests/bpf/progs/find_vma.c b/tools/testing/selftests/bpf/progs/find_vma.c index 02b82774469c..75f90cb21179 100644 --- a/tools/testing/selftests/bpf/progs/find_vma.c +++ b/tools/testing/selftests/bpf/progs/find_vma.c @@ -20,7 +20,7 @@ __u64 addr = 0; int find_zero_ret = -1; int find_addr_ret = -1; -static long check_vma(struct task_struct *task, struct vm_area_struct *vma, +static long check_vma(struct task_struct *task, struct mm_area *vma, struct callback_ctx *data) { if (vma->vm_file) diff --git a/tools/testing/selftests/bpf/progs/find_vma_fail1.c b/tools/testing/selftests/bpf/progs/find_vma_fail1.c index 7ba9a428f228..4a5a41997169 100644 --- a/tools/testing/selftests/bpf/progs/find_vma_fail1.c +++ b/tools/testing/selftests/bpf/progs/find_vma_fail1.c @@ -10,7 +10,7 @@ struct callback_ctx { int dummy; }; -static long write_vma(struct task_struct *task, struct vm_area_struct *vma, +static long write_vma(struct task_struct *task, struct mm_area *vma, struct callback_ctx *data) { /* writing to vma, which is illegal */ diff --git a/tools/testing/selftests/bpf/progs/find_vma_fail2.c b/tools/testing/selftests/bpf/progs/find_vma_fail2.c index 9bcf3203e26b..1117fc0475f2 100644 --- a/tools/testing/selftests/bpf/progs/find_vma_fail2.c +++ b/tools/testing/selftests/bpf/progs/find_vma_fail2.c @@ -9,7 +9,7 @@ struct callback_ctx { int dummy; }; -static long write_task(struct task_struct *task, struct vm_area_struct *vma, +static long write_task(struct task_struct *task, struct mm_area *vma, struct callback_ctx *data) { /* writing to task, which is illegal */ diff --git a/tools/testing/selftests/bpf/progs/iters_css_task.c b/tools/testing/selftests/bpf/progs/iters_css_task.c index 9ac758649cb8..bc48b47d1793 100644 --- a/tools/testing/selftests/bpf/progs/iters_css_task.c +++ b/tools/testing/selftests/bpf/progs/iters_css_task.c @@ -19,7 +19,7 @@ int css_task_cnt; u64 cg_id; SEC("lsm/file_mprotect") -int BPF_PROG(iter_css_task_for_each, struct vm_area_struct *vma, +int BPF_PROG(iter_css_task_for_each, struct mm_area *vma, unsigned long reqprot, unsigned long prot, int ret) { struct task_struct *cur_task = bpf_get_current_task_btf(); diff --git a/tools/testing/selftests/bpf/progs/iters_task_vma.c b/tools/testing/selftests/bpf/progs/iters_task_vma.c index dc0c3691dcc2..6334a2d0518d 100644 --- a/tools/testing/selftests/bpf/progs/iters_task_vma.c +++ b/tools/testing/selftests/bpf/progs/iters_task_vma.c @@ -18,7 +18,7 @@ SEC("raw_tp/sys_enter") int iter_task_vma_for_each(const void *ctx) { struct task_struct *task = bpf_get_current_task_btf(); - struct vm_area_struct *vma; + struct mm_area *vma; unsigned int seen = 0; if (task->pid != target_pid) diff --git a/tools/testing/selftests/bpf/progs/iters_testmod.c b/tools/testing/selftests/bpf/progs/iters_testmod.c index 9e4b45201e69..d5303fb6d618 100644 --- a/tools/testing/selftests/bpf/progs/iters_testmod.c +++ b/tools/testing/selftests/bpf/progs/iters_testmod.c @@ -14,7 +14,7 @@ int iter_next_trusted(const void *ctx) { struct task_struct *cur_task = bpf_get_current_task_btf(); struct bpf_iter_task_vma vma_it; - struct vm_area_struct *vma_ptr; + struct mm_area *vma_ptr; bpf_iter_task_vma_new(&vma_it, cur_task, 0); @@ -34,7 +34,7 @@ int iter_next_trusted_or_null(const void *ctx) { struct task_struct *cur_task = bpf_get_current_task_btf(); struct bpf_iter_task_vma vma_it; - struct vm_area_struct *vma_ptr; + struct mm_area *vma_ptr; bpf_iter_task_vma_new(&vma_it, cur_task, 0); diff --git a/tools/testing/selftests/bpf/progs/lsm.c b/tools/testing/selftests/bpf/progs/lsm.c index 0c13b7409947..7218621a833a 100644 --- a/tools/testing/selftests/bpf/progs/lsm.c +++ b/tools/testing/selftests/bpf/progs/lsm.c @@ -86,7 +86,7 @@ int mprotect_count = 0; int bprm_count = 0; SEC("lsm/file_mprotect") -int BPF_PROG(test_int_hook, struct vm_area_struct *vma, +int BPF_PROG(test_int_hook, struct mm_area *vma, unsigned long reqprot, unsigned long prot, int ret) { if (ret != 0) diff --git a/tools/testing/selftests/bpf/progs/test_bpf_cookie.c b/tools/testing/selftests/bpf/progs/test_bpf_cookie.c index c83142b55f47..8f803369ad2d 100644 --- a/tools/testing/selftests/bpf/progs/test_bpf_cookie.c +++ b/tools/testing/selftests/bpf/progs/test_bpf_cookie.c @@ -125,7 +125,7 @@ int BPF_PROG(fmod_ret_test, int _a, int *_b, int _ret) } SEC("lsm/file_mprotect") -int BPF_PROG(test_int_hook, struct vm_area_struct *vma, +int BPF_PROG(test_int_hook, struct mm_area *vma, unsigned long reqprot, unsigned long prot, int ret) { if (my_tid != (u32)bpf_get_current_pid_tgid()) diff --git a/tools/testing/selftests/bpf/progs/verifier_iterating_callbacks.c b/tools/testing/selftests/bpf/progs/verifier_iterating_callbacks.c index 75dd922e4e9f..aa00a677636b 100644 --- a/tools/testing/selftests/bpf/progs/verifier_iterating_callbacks.c +++ b/tools/testing/selftests/bpf/progs/verifier_iterating_callbacks.c @@ -14,7 +14,7 @@ struct { __uint(max_entries, 8); } ringbuf SEC(".maps"); -struct vm_area_struct; +struct mm_area; struct bpf_map; struct buf_context { @@ -146,7 +146,7 @@ int unsafe_ringbuf_drain(void *unused) return choice_arr[loop_ctx.i]; } -static __u64 find_vma_cb(struct task_struct *task, struct vm_area_struct *vma, void *data) +static __u64 find_vma_cb(struct task_struct *task, struct mm_area *vma, void *data) { return oob_state_machine(data); } diff --git a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c b/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c index 3220f1d28697..b58ebc8ab3b1 100644 --- a/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c +++ b/tools/testing/selftests/bpf/test_kmods/bpf_testmod.c @@ -198,7 +198,7 @@ __bpf_kfunc void bpf_kfunc_nested_release_test(struct sk_buff *ptr) { } -__bpf_kfunc void bpf_kfunc_trusted_vma_test(struct vm_area_struct *ptr) +__bpf_kfunc void bpf_kfunc_trusted_vma_test(struct mm_area *ptr) { } diff --git a/tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.h b/tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.h index b58817938deb..b28cf00b119b 100644 --- a/tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.h +++ b/tools/testing/selftests/bpf/test_kmods/bpf_testmod_kfunc.h @@ -154,7 +154,7 @@ int bpf_kfunc_st_ops_test_epilogue(struct st_ops_args *args) __ksym; int bpf_kfunc_st_ops_test_pro_epilogue(struct st_ops_args *args) __ksym; int bpf_kfunc_st_ops_inc10(struct st_ops_args *args) __ksym; -void bpf_kfunc_trusted_vma_test(struct vm_area_struct *ptr) __ksym; +void bpf_kfunc_trusted_vma_test(struct mm_area *ptr) __ksym; void bpf_kfunc_trusted_task_test(struct task_struct *ptr) __ksym; void bpf_kfunc_trusted_num_test(int *ptr) __ksym; void bpf_kfunc_rcu_task_test(struct task_struct *ptr) __ksym; diff --git a/tools/testing/vma/vma.c b/tools/testing/vma/vma.c index 11f761769b5b..57d129d16596 100644 --- a/tools/testing/vma/vma.c +++ b/tools/testing/vma/vma.c @@ -59,13 +59,13 @@ unsigned long rlimit(unsigned int limit) } /* Helper function to simply allocate a VMA. */ -static struct vm_area_struct *alloc_vma(struct mm_struct *mm, +static struct mm_area *alloc_vma(struct mm_struct *mm, unsigned long start, unsigned long end, pgoff_t pgoff, vm_flags_t flags) { - struct vm_area_struct *ret = vm_area_alloc(mm); + struct mm_area *ret = vm_area_alloc(mm); if (ret == NULL) return NULL; @@ -80,7 +80,7 @@ static struct vm_area_struct *alloc_vma(struct mm_struct *mm, } /* Helper function to allocate a VMA and link it to the tree. */ -static int attach_vma(struct mm_struct *mm, struct vm_area_struct *vma) +static int attach_vma(struct mm_struct *mm, struct mm_area *vma) { int res; @@ -91,13 +91,13 @@ static int attach_vma(struct mm_struct *mm, struct vm_area_struct *vma) } /* Helper function to allocate a VMA and link it to the tree. */ -static struct vm_area_struct *alloc_and_link_vma(struct mm_struct *mm, +static struct mm_area *alloc_and_link_vma(struct mm_struct *mm, unsigned long start, unsigned long end, pgoff_t pgoff, vm_flags_t flags) { - struct vm_area_struct *vma = alloc_vma(mm, start, end, pgoff, flags); + struct mm_area *vma = alloc_vma(mm, start, end, pgoff, flags); if (vma == NULL) return NULL; @@ -118,9 +118,9 @@ static struct vm_area_struct *alloc_and_link_vma(struct mm_struct *mm, } /* Helper function which provides a wrapper around a merge new VMA operation. */ -static struct vm_area_struct *merge_new(struct vma_merge_struct *vmg) +static struct mm_area *merge_new(struct vma_merge_struct *vmg) { - struct vm_area_struct *vma; + struct mm_area *vma; /* * For convenience, get prev and next VMAs. Which the new VMA operation * requires. @@ -140,9 +140,9 @@ static struct vm_area_struct *merge_new(struct vma_merge_struct *vmg) * Helper function which provides a wrapper around a merge existing VMA * operation. */ -static struct vm_area_struct *merge_existing(struct vma_merge_struct *vmg) +static struct mm_area *merge_existing(struct vma_merge_struct *vmg) { - struct vm_area_struct *vma; + struct mm_area *vma; vma = vma_merge_existing_range(vmg); if (vma) @@ -191,13 +191,13 @@ static void vmg_set_range(struct vma_merge_struct *vmg, unsigned long start, * Update vmg and the iterator for it and try to merge, otherwise allocate a new * VMA, link it to the maple tree and return it. */ -static struct vm_area_struct *try_merge_new_vma(struct mm_struct *mm, +static struct mm_area *try_merge_new_vma(struct mm_struct *mm, struct vma_merge_struct *vmg, unsigned long start, unsigned long end, pgoff_t pgoff, vm_flags_t flags, bool *was_merged) { - struct vm_area_struct *merged; + struct mm_area *merged; vmg_set_range(vmg, start, end, pgoff, flags); @@ -231,7 +231,7 @@ static void reset_dummy_anon_vma(void) */ static int cleanup_mm(struct mm_struct *mm, struct vma_iterator *vmi) { - struct vm_area_struct *vma; + struct mm_area *vma; int count = 0; fail_prealloc = false; @@ -249,7 +249,7 @@ static int cleanup_mm(struct mm_struct *mm, struct vma_iterator *vmi) } /* Helper function to determine if VMA has had vma_start_write() performed. */ -static bool vma_write_started(struct vm_area_struct *vma) +static bool vma_write_started(struct mm_area *vma) { int seq = vma->vm_lock_seq; @@ -261,17 +261,17 @@ static bool vma_write_started(struct vm_area_struct *vma) } /* Helper function providing a dummy vm_ops->close() method.*/ -static void dummy_close(struct vm_area_struct *) +static void dummy_close(struct mm_area *) { } static bool test_simple_merge(void) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; - struct vm_area_struct *vma_left = alloc_vma(&mm, 0, 0x1000, 0, flags); - struct vm_area_struct *vma_right = alloc_vma(&mm, 0x2000, 0x3000, 2, flags); + struct mm_area *vma_left = alloc_vma(&mm, 0, 0x1000, 0, flags); + struct mm_area *vma_right = alloc_vma(&mm, 0x2000, 0x3000, 2, flags); VMA_ITERATOR(vmi, &mm, 0x1000); struct vma_merge_struct vmg = { .mm = &mm, @@ -301,10 +301,10 @@ static bool test_simple_merge(void) static bool test_simple_modify(void) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; - struct vm_area_struct *init_vma = alloc_vma(&mm, 0, 0x3000, 0, flags); + struct mm_area *init_vma = alloc_vma(&mm, 0, 0x3000, 0, flags); VMA_ITERATOR(vmi, &mm, 0x1000); ASSERT_FALSE(attach_vma(&mm, init_vma)); @@ -363,7 +363,7 @@ static bool test_simple_expand(void) { unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; - struct vm_area_struct *vma = alloc_vma(&mm, 0, 0x1000, 0, flags); + struct mm_area *vma = alloc_vma(&mm, 0, 0x1000, 0, flags); VMA_ITERATOR(vmi, &mm, 0); struct vma_merge_struct vmg = { .vmi = &vmi, @@ -391,7 +391,7 @@ static bool test_simple_shrink(void) { unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; - struct vm_area_struct *vma = alloc_vma(&mm, 0, 0x3000, 0, flags); + struct mm_area *vma = alloc_vma(&mm, 0, 0x3000, 0, flags); VMA_ITERATOR(vmi, &mm, 0); ASSERT_FALSE(attach_vma(&mm, vma)); @@ -433,7 +433,7 @@ static bool test_merge_new(void) .close = dummy_close, }; int count; - struct vm_area_struct *vma, *vma_a, *vma_b, *vma_c, *vma_d; + struct mm_area *vma, *vma_a, *vma_b, *vma_c, *vma_d; bool merged; /* @@ -616,7 +616,7 @@ static bool test_vma_merge_special_flags(void) vm_flags_t special_flags[] = { VM_IO, VM_DONTEXPAND, VM_PFNMAP, VM_MIXEDMAP }; vm_flags_t all_special_flags = 0; int i; - struct vm_area_struct *vma_left, *vma; + struct mm_area *vma_left, *vma; /* Make sure there aren't new VM_SPECIAL flags. */ for (i = 0; i < ARRAY_SIZE(special_flags); i++) { @@ -688,7 +688,7 @@ static bool test_vma_merge_with_close(void) const struct vm_operations_struct vm_ops = { .close = dummy_close, }; - struct vm_area_struct *vma_prev, *vma_next, *vma; + struct mm_area *vma_prev, *vma_next, *vma; /* * When merging VMAs we are not permitted to remove any VMA that has a @@ -894,12 +894,12 @@ static bool test_vma_merge_new_with_close(void) .mm = &mm, .vmi = &vmi, }; - struct vm_area_struct *vma_prev = alloc_and_link_vma(&mm, 0, 0x2000, 0, flags); - struct vm_area_struct *vma_next = alloc_and_link_vma(&mm, 0x5000, 0x7000, 5, flags); + struct mm_area *vma_prev = alloc_and_link_vma(&mm, 0, 0x2000, 0, flags); + struct mm_area *vma_next = alloc_and_link_vma(&mm, 0x5000, 0x7000, 5, flags); const struct vm_operations_struct vm_ops = { .close = dummy_close, }; - struct vm_area_struct *vma; + struct mm_area *vma; /* * We should allow the partial merge of a proposed new VMA if the @@ -945,7 +945,7 @@ static bool test_merge_existing(void) unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; VMA_ITERATOR(vmi, &mm, 0); - struct vm_area_struct *vma, *vma_prev, *vma_next; + struct mm_area *vma, *vma_prev, *vma_next; struct vma_merge_struct vmg = { .mm = &mm, .vmi = &vmi, @@ -1175,7 +1175,7 @@ static bool test_anon_vma_non_mergeable(void) unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; VMA_ITERATOR(vmi, &mm, 0); - struct vm_area_struct *vma, *vma_prev, *vma_next; + struct mm_area *vma, *vma_prev, *vma_next; struct vma_merge_struct vmg = { .mm = &mm, .vmi = &vmi, @@ -1290,7 +1290,7 @@ static bool test_dup_anon_vma(void) struct anon_vma_chain dummy_anon_vma_chain = { .anon_vma = &dummy_anon_vma, }; - struct vm_area_struct *vma_prev, *vma_next, *vma; + struct mm_area *vma_prev, *vma_next, *vma; reset_dummy_anon_vma(); @@ -1447,7 +1447,7 @@ static bool test_vmi_prealloc_fail(void) .mm = &mm, .vmi = &vmi, }; - struct vm_area_struct *vma_prev, *vma; + struct mm_area *vma_prev, *vma; /* * We are merging vma into prev, with vma possessing an anon_vma, which @@ -1507,7 +1507,7 @@ static bool test_merge_extend(void) unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; VMA_ITERATOR(vmi, &mm, 0x1000); - struct vm_area_struct *vma; + struct mm_area *vma; vma = alloc_and_link_vma(&mm, 0, 0x1000, 0, flags); alloc_and_link_vma(&mm, 0x3000, 0x4000, 3, flags); @@ -1538,7 +1538,7 @@ static bool test_copy_vma(void) struct mm_struct mm = {}; bool need_locks = false; VMA_ITERATOR(vmi, &mm, 0); - struct vm_area_struct *vma, *vma_new, *vma_next; + struct mm_area *vma, *vma_new, *vma_next; /* Move backwards and do not merge. */ @@ -1570,7 +1570,7 @@ static bool test_expand_only_mode(void) unsigned long flags = VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE; struct mm_struct mm = {}; VMA_ITERATOR(vmi, &mm, 0); - struct vm_area_struct *vma_prev, *vma; + struct mm_area *vma_prev, *vma; VMG_STATE(vmg, &mm, &vmi, 0x5000, 0x9000, flags, 5); /* @@ -1609,7 +1609,7 @@ static bool test_mmap_region_basic(void) { struct mm_struct mm = {}; unsigned long addr; - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, &mm, 0); current->mm = &mm; diff --git a/tools/testing/vma/vma_internal.h b/tools/testing/vma/vma_internal.h index 572ab2cea763..acb90a6ff98a 100644 --- a/tools/testing/vma/vma_internal.h +++ b/tools/testing/vma/vma_internal.h @@ -235,7 +235,7 @@ struct file { #define VMA_LOCK_OFFSET 0x40000000 -struct vm_area_struct { +struct mm_area { /* The first cache line has the info for VMA tree walking. */ union { @@ -337,27 +337,27 @@ struct vm_area_struct { struct vm_fault {}; struct vm_operations_struct { - void (*open)(struct vm_area_struct * area); + void (*open)(struct mm_area * area); /** * @close: Called when the VMA is being removed from the MM. * Context: User context. May sleep. Caller holds mmap_lock. */ - void (*close)(struct vm_area_struct * area); + void (*close)(struct mm_area * area); /* Called any time before splitting to check if it's allowed */ - int (*may_split)(struct vm_area_struct *area, unsigned long addr); - int (*mremap)(struct vm_area_struct *area); + int (*may_split)(struct mm_area *area, unsigned long addr); + int (*mremap)(struct mm_area *area); /* * Called by mprotect() to make driver-specific permission * checks before mprotect() is finalised. The VMA must not * be modified. Returns 0 if mprotect() can proceed. */ - int (*mprotect)(struct vm_area_struct *vma, unsigned long start, + int (*mprotect)(struct mm_area *vma, unsigned long start, unsigned long end, unsigned long newflags); vm_fault_t (*fault)(struct vm_fault *vmf); vm_fault_t (*huge_fault)(struct vm_fault *vmf, unsigned int order); vm_fault_t (*map_pages)(struct vm_fault *vmf, pgoff_t start_pgoff, pgoff_t end_pgoff); - unsigned long (*pagesize)(struct vm_area_struct * area); + unsigned long (*pagesize)(struct mm_area * area); /* notification that a previously read-only page is about to become * writable, if an error is returned it will cause a SIGBUS */ @@ -370,13 +370,13 @@ struct vm_operations_struct { * for use by special VMAs. See also generic_access_phys() for a generic * implementation useful for any iomem mapping. */ - int (*access)(struct vm_area_struct *vma, unsigned long addr, + int (*access)(struct mm_area *vma, unsigned long addr, void *buf, int len, int write); /* Called by the /proc/PID/maps code to ask the vma whether it * has a special name. Returning non-NULL will also cause this * vma to be dumped unconditionally. */ - const char *(*name)(struct vm_area_struct *vma); + const char *(*name)(struct mm_area *vma); #ifdef CONFIG_NUMA /* @@ -386,7 +386,7 @@ struct vm_operations_struct { * install a MPOL_DEFAULT policy, nor the task or system default * mempolicy. */ - int (*set_policy)(struct vm_area_struct *vma, struct mempolicy *new); + int (*set_policy)(struct mm_area *vma, struct mempolicy *new); /* * get_policy() op must add reference [mpol_get()] to any policy at @@ -398,7 +398,7 @@ struct vm_operations_struct { * must return NULL--i.e., do not "fallback" to task or system default * policy. */ - struct mempolicy *(*get_policy)(struct vm_area_struct *vma, + struct mempolicy *(*get_policy)(struct mm_area *vma, unsigned long addr, pgoff_t *ilx); #endif /* @@ -406,7 +406,7 @@ struct vm_operations_struct { * page for @addr. This is useful if the default behavior * (using pte_page()) would not find the correct page. */ - struct page *(*find_special_page)(struct vm_area_struct *vma, + struct page *(*find_special_page)(struct mm_area *vma, unsigned long addr); }; @@ -442,12 +442,12 @@ static inline bool is_shared_maywrite(vm_flags_t vm_flags) (VM_SHARED | VM_MAYWRITE); } -static inline bool vma_is_shared_maywrite(struct vm_area_struct *vma) +static inline bool vma_is_shared_maywrite(struct mm_area *vma) { return is_shared_maywrite(vma->vm_flags); } -static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) +static inline struct mm_area *vma_next(struct vma_iterator *vmi) { /* * Uses mas_find() to get the first VMA when the iterator starts. @@ -461,25 +461,25 @@ static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) * assertions should be made either under mmap_write_lock or when the object * has been isolated under mmap_write_lock, ensuring no competing writers. */ -static inline void vma_assert_attached(struct vm_area_struct *vma) +static inline void vma_assert_attached(struct mm_area *vma) { WARN_ON_ONCE(!refcount_read(&vma->vm_refcnt)); } -static inline void vma_assert_detached(struct vm_area_struct *vma) +static inline void vma_assert_detached(struct mm_area *vma) { WARN_ON_ONCE(refcount_read(&vma->vm_refcnt)); } -static inline void vma_assert_write_locked(struct vm_area_struct *); -static inline void vma_mark_attached(struct vm_area_struct *vma) +static inline void vma_assert_write_locked(struct mm_area *); +static inline void vma_mark_attached(struct mm_area *vma) { vma_assert_write_locked(vma); vma_assert_detached(vma); refcount_set_release(&vma->vm_refcnt, 1); } -static inline void vma_mark_detached(struct vm_area_struct *vma) +static inline void vma_mark_detached(struct mm_area *vma) { vma_assert_write_locked(vma); vma_assert_attached(vma); @@ -496,7 +496,7 @@ extern const struct vm_operations_struct vma_dummy_vm_ops; extern unsigned long rlimit(unsigned int limit); -static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm) +static inline void vma_init(struct mm_area *vma, struct mm_struct *mm) { memset(vma, 0, sizeof(*vma)); vma->vm_mm = mm; @@ -505,9 +505,9 @@ static inline void vma_init(struct vm_area_struct *vma, struct mm_struct *mm) vma->vm_lock_seq = UINT_MAX; } -static inline struct vm_area_struct *vm_area_alloc(struct mm_struct *mm) +static inline struct mm_area *vm_area_alloc(struct mm_struct *mm) { - struct vm_area_struct *vma = calloc(1, sizeof(struct vm_area_struct)); + struct mm_area *vma = calloc(1, sizeof(struct mm_area)); if (!vma) return NULL; @@ -517,9 +517,9 @@ static inline struct vm_area_struct *vm_area_alloc(struct mm_struct *mm) return vma; } -static inline struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) +static inline struct mm_area *vm_area_dup(struct mm_area *orig) { - struct vm_area_struct *new = calloc(1, sizeof(struct vm_area_struct)); + struct mm_area *new = calloc(1, sizeof(struct mm_area)); if (!new) return NULL; @@ -576,7 +576,7 @@ static inline void mapping_allow_writable(struct address_space *mapping) atomic_inc(&mapping->i_mmap_writable); } -static inline void vma_set_range(struct vm_area_struct *vma, +static inline void vma_set_range(struct mm_area *vma, unsigned long start, unsigned long end, pgoff_t pgoff) { @@ -586,7 +586,7 @@ static inline void vma_set_range(struct vm_area_struct *vma, } static inline -struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long max) +struct mm_area *vma_find(struct vma_iterator *vmi, unsigned long max) { return mas_find(&vmi->mas, max - 1); } @@ -603,7 +603,7 @@ static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, } static inline void mmap_assert_locked(struct mm_struct *); -static inline struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, +static inline struct mm_area *find_vma_intersection(struct mm_struct *mm, unsigned long start_addr, unsigned long end_addr) { @@ -614,12 +614,12 @@ static inline struct vm_area_struct *find_vma_intersection(struct mm_struct *mm, } static inline -struct vm_area_struct *vma_lookup(struct mm_struct *mm, unsigned long addr) +struct mm_area *vma_lookup(struct mm_struct *mm, unsigned long addr) { return mtree_load(&mm->mm_mt, addr); } -static inline struct vm_area_struct *vma_prev(struct vma_iterator *vmi) +static inline struct mm_area *vma_prev(struct vma_iterator *vmi) { return mas_prev(&vmi->mas, 0); } @@ -629,7 +629,7 @@ static inline void vma_iter_set(struct vma_iterator *vmi, unsigned long addr) mas_set(&vmi->mas, addr); } -static inline bool vma_is_anonymous(struct vm_area_struct *vma) +static inline bool vma_is_anonymous(struct mm_area *vma) { return !vma->vm_ops; } @@ -638,11 +638,11 @@ static inline bool vma_is_anonymous(struct vm_area_struct *vma) #define vma_iter_load(vmi) \ mas_walk(&(vmi)->mas) -static inline struct vm_area_struct * +static inline struct mm_area * find_vma_prev(struct mm_struct *mm, unsigned long addr, - struct vm_area_struct **pprev) + struct mm_area **pprev) { - struct vm_area_struct *vma; + struct mm_area *vma; VMA_ITERATOR(vmi, mm, addr); vma = vma_iter_load(&vmi); @@ -662,12 +662,12 @@ static inline void vma_iter_init(struct vma_iterator *vmi, /* Stubbed functions. */ -static inline struct anon_vma_name *anon_vma_name(struct vm_area_struct *vma) +static inline struct anon_vma_name *anon_vma_name(struct mm_area *vma) { return NULL; } -static inline bool is_mergeable_vm_userfaultfd_ctx(struct vm_area_struct *vma, +static inline bool is_mergeable_vm_userfaultfd_ctx(struct mm_area *vma, struct vm_userfaultfd_ctx vm_ctx) { return true; @@ -683,7 +683,7 @@ static inline void might_sleep(void) { } -static inline unsigned long vma_pages(struct vm_area_struct *vma) +static inline unsigned long vma_pages(struct mm_area *vma) { return (vma->vm_end - vma->vm_start) >> PAGE_SHIFT; } @@ -696,7 +696,7 @@ static inline void mpol_put(struct mempolicy *) { } -static inline void vm_area_free(struct vm_area_struct *vma) +static inline void vm_area_free(struct mm_area *vma) { free(vma); } @@ -718,7 +718,7 @@ static inline void update_hiwater_vm(struct mm_struct *) } static inline void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long start_addr, + struct mm_area *vma, unsigned long start_addr, unsigned long end_addr, unsigned long tree_end, bool mm_wr_locked) { @@ -732,7 +732,7 @@ static inline void unmap_vmas(struct mmu_gather *tlb, struct ma_state *mas, } static inline void free_pgtables(struct mmu_gather *tlb, struct ma_state *mas, - struct vm_area_struct *vma, unsigned long floor, + struct mm_area *vma, unsigned long floor, unsigned long ceiling, bool mm_wr_locked) { (void)tlb; @@ -760,12 +760,12 @@ static inline struct file *get_file(struct file *f) return f; } -static inline int vma_dup_policy(struct vm_area_struct *, struct vm_area_struct *) +static inline int vma_dup_policy(struct mm_area *, struct mm_area *) { return 0; } -static inline int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src) +static inline int anon_vma_clone(struct mm_area *dst, struct mm_area *src) { /* For testing purposes. We indicate that an anon_vma has been cloned. */ if (src->anon_vma != NULL) { @@ -776,16 +776,16 @@ static inline int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_stru return 0; } -static inline void vma_start_write(struct vm_area_struct *vma) +static inline void vma_start_write(struct mm_area *vma) { /* Used to indicate to tests that a write operation has begun. */ vma->vm_lock_seq++; } -static inline void vma_adjust_trans_huge(struct vm_area_struct *vma, +static inline void vma_adjust_trans_huge(struct mm_area *vma, unsigned long start, unsigned long end, - struct vm_area_struct *next) + struct mm_area *next) { (void)vma; (void)start; @@ -799,7 +799,7 @@ static inline void vma_iter_free(struct vma_iterator *vmi) } static inline -struct vm_area_struct *vma_iter_next_range(struct vma_iterator *vmi) +struct mm_area *vma_iter_next_range(struct vma_iterator *vmi) { return mas_next_range(&vmi->mas, ULONG_MAX); } @@ -808,12 +808,12 @@ static inline void vm_acct_memory(long pages) { } -static inline void vma_interval_tree_insert(struct vm_area_struct *, +static inline void vma_interval_tree_insert(struct mm_area *, struct rb_root_cached *) { } -static inline void vma_interval_tree_remove(struct vm_area_struct *, +static inline void vma_interval_tree_remove(struct mm_area *, struct rb_root_cached *) { } @@ -832,11 +832,11 @@ static inline void anon_vma_interval_tree_remove(struct anon_vma_chain*, { } -static inline void uprobe_mmap(struct vm_area_struct *) +static inline void uprobe_mmap(struct mm_area *) { } -static inline void uprobe_munmap(struct vm_area_struct *vma, +static inline void uprobe_munmap(struct mm_area *vma, unsigned long start, unsigned long end) { (void)vma; @@ -852,11 +852,11 @@ static inline void anon_vma_lock_write(struct anon_vma *) { } -static inline void vma_assert_write_locked(struct vm_area_struct *) +static inline void vma_assert_write_locked(struct mm_area *) { } -static inline void unlink_anon_vmas(struct vm_area_struct *vma) +static inline void unlink_anon_vmas(struct mm_area *vma) { /* For testing purposes, indicate that the anon_vma was unlinked. */ vma->anon_vma->was_unlinked = true; @@ -870,12 +870,12 @@ static inline void i_mmap_unlock_write(struct address_space *) { } -static inline void anon_vma_merge(struct vm_area_struct *, - struct vm_area_struct *) +static inline void anon_vma_merge(struct mm_area *, + struct mm_area *) { } -static inline int userfaultfd_unmap_prep(struct vm_area_struct *vma, +static inline int userfaultfd_unmap_prep(struct mm_area *vma, unsigned long start, unsigned long end, struct list_head *unmaps) @@ -934,7 +934,7 @@ static inline bool mpol_equal(struct mempolicy *, struct mempolicy *) return true; } -static inline void khugepaged_enter_vma(struct vm_area_struct *vma, +static inline void khugepaged_enter_vma(struct mm_area *vma, unsigned long vm_flags) { (void)vma; @@ -946,17 +946,17 @@ static inline bool mapping_can_writeback(struct address_space *) return true; } -static inline bool is_vm_hugetlb_page(struct vm_area_struct *) +static inline bool is_vm_hugetlb_page(struct mm_area *) { return false; } -static inline bool vma_soft_dirty_enabled(struct vm_area_struct *) +static inline bool vma_soft_dirty_enabled(struct mm_area *) { return false; } -static inline bool userfaultfd_wp(struct vm_area_struct *) +static inline bool userfaultfd_wp(struct mm_area *) { return false; } @@ -998,63 +998,63 @@ static inline bool may_expand_vm(struct mm_struct *, vm_flags_t, unsigned long) return true; } -static inline void vm_flags_init(struct vm_area_struct *vma, +static inline void vm_flags_init(struct mm_area *vma, vm_flags_t flags) { vma->__vm_flags = flags; } -static inline void vm_flags_set(struct vm_area_struct *vma, +static inline void vm_flags_set(struct mm_area *vma, vm_flags_t flags) { vma_start_write(vma); vma->__vm_flags |= flags; } -static inline void vm_flags_clear(struct vm_area_struct *vma, +static inline void vm_flags_clear(struct mm_area *vma, vm_flags_t flags) { vma_start_write(vma); vma->__vm_flags &= ~flags; } -static inline int call_mmap(struct file *, struct vm_area_struct *) +static inline int call_mmap(struct file *, struct mm_area *) { return 0; } -static inline int shmem_zero_setup(struct vm_area_struct *) +static inline int shmem_zero_setup(struct mm_area *) { return 0; } -static inline void vma_set_anonymous(struct vm_area_struct *vma) +static inline void vma_set_anonymous(struct mm_area *vma) { vma->vm_ops = NULL; } -static inline void ksm_add_vma(struct vm_area_struct *) +static inline void ksm_add_vma(struct mm_area *) { } -static inline void perf_event_mmap(struct vm_area_struct *) +static inline void perf_event_mmap(struct mm_area *) { } -static inline bool vma_is_dax(struct vm_area_struct *) +static inline bool vma_is_dax(struct mm_area *) { return false; } -static inline struct vm_area_struct *get_gate_vma(struct mm_struct *) +static inline struct mm_area *get_gate_vma(struct mm_struct *) { return NULL; } -bool vma_wants_writenotify(struct vm_area_struct *vma, pgprot_t vm_page_prot); +bool vma_wants_writenotify(struct mm_area *vma, pgprot_t vm_page_prot); /* Update vma->vm_page_prot to reflect vma->vm_flags. */ -static inline void vma_set_page_prot(struct vm_area_struct *vma) +static inline void vma_set_page_prot(struct mm_area *vma) { unsigned long vm_flags = vma->vm_flags; pgprot_t vm_page_prot; @@ -1076,16 +1076,16 @@ static inline bool arch_validate_flags(unsigned long) return true; } -static inline void vma_close(struct vm_area_struct *) +static inline void vma_close(struct mm_area *) { } -static inline int mmap_file(struct file *, struct vm_area_struct *) +static inline int mmap_file(struct file *, struct mm_area *) { return 0; } -static inline unsigned long stack_guard_start_gap(struct vm_area_struct *vma) +static inline unsigned long stack_guard_start_gap(struct mm_area *vma) { if (vma->vm_flags & VM_GROWSDOWN) return stack_guard_gap; @@ -1097,7 +1097,7 @@ static inline unsigned long stack_guard_start_gap(struct vm_area_struct *vma) return 0; } -static inline unsigned long vm_start_gap(struct vm_area_struct *vma) +static inline unsigned long vm_start_gap(struct mm_area *vma) { unsigned long gap = stack_guard_start_gap(vma); unsigned long vm_start = vma->vm_start; @@ -1108,7 +1108,7 @@ static inline unsigned long vm_start_gap(struct vm_area_struct *vma) return vm_start; } -static inline unsigned long vm_end_gap(struct vm_area_struct *vma) +static inline unsigned long vm_end_gap(struct mm_area *vma) { unsigned long vm_end = vma->vm_end; @@ -1126,7 +1126,7 @@ static inline int is_hugepage_only_range(struct mm_struct *mm, return 0; } -static inline bool vma_is_accessible(struct vm_area_struct *vma) +static inline bool vma_is_accessible(struct mm_area *vma) { return vma->vm_flags & VM_ACCESS_FLAGS; } @@ -1153,7 +1153,7 @@ static inline bool mlock_future_ok(struct mm_struct *mm, unsigned long flags, return locked_pages <= limit_pages; } -static inline int __anon_vma_prepare(struct vm_area_struct *vma) +static inline int __anon_vma_prepare(struct mm_area *vma) { struct anon_vma *anon_vma = calloc(1, sizeof(struct anon_vma)); @@ -1166,7 +1166,7 @@ static inline int __anon_vma_prepare(struct vm_area_struct *vma) return 0; } -static inline int anon_vma_prepare(struct vm_area_struct *vma) +static inline int anon_vma_prepare(struct mm_area *vma) { if (likely(vma->anon_vma)) return 0; diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index e85b33a92624..419e641a79a8 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -2618,7 +2618,7 @@ EXPORT_SYMBOL_GPL(kvm_vcpu_is_visible_gfn); unsigned long kvm_host_page_size(struct kvm_vcpu *vcpu, gfn_t gfn) { - struct vm_area_struct *vma; + struct mm_area *vma; unsigned long addr, size; size = PAGE_SIZE; @@ -2860,7 +2860,7 @@ static int hva_to_pfn_slow(struct kvm_follow_pfn *kfp, kvm_pfn_t *pfn) return npages; } -static bool vma_is_valid(struct vm_area_struct *vma, bool write_fault) +static bool vma_is_valid(struct mm_area *vma, bool write_fault) { if (unlikely(!(vma->vm_flags & VM_READ))) return false; @@ -2871,7 +2871,7 @@ static bool vma_is_valid(struct vm_area_struct *vma, bool write_fault) return true; } -static int hva_to_pfn_remapped(struct vm_area_struct *vma, +static int hva_to_pfn_remapped(struct mm_area *vma, struct kvm_follow_pfn *kfp, kvm_pfn_t *p_pfn) { struct follow_pfnmap_args args = { .vma = vma, .address = kfp->hva }; @@ -2919,7 +2919,7 @@ static int hva_to_pfn_remapped(struct vm_area_struct *vma, kvm_pfn_t hva_to_pfn(struct kvm_follow_pfn *kfp) { - struct vm_area_struct *vma; + struct mm_area *vma; kvm_pfn_t pfn; int npages, r; @@ -3997,7 +3997,7 @@ static const struct vm_operations_struct kvm_vcpu_vm_ops = { .fault = kvm_vcpu_fault, }; -static int kvm_vcpu_mmap(struct file *file, struct vm_area_struct *vma) +static int kvm_vcpu_mmap(struct file *file, struct mm_area *vma) { struct kvm_vcpu *vcpu = file->private_data; unsigned long pages = vma_pages(vma); @@ -4613,7 +4613,7 @@ static long kvm_vcpu_compat_ioctl(struct file *filp, } #endif -static int kvm_device_mmap(struct file *filp, struct vm_area_struct *vma) +static int kvm_device_mmap(struct file *filp, struct mm_area *vma) { struct kvm_device *dev = filp->private_data; -- 2.47.2