android_kernel_samsung_sm8650/arch/sparc/mm
Linus Torvalds 188ce9572f BACKPORT: mm: always expand the stack with the mmap write lock held
commit 8d7071af890768438c14db6172cc8f9f4d04e184 upstream

This finishes the job of always holding the mmap write lock when
extending the user stack vma, and removes the 'write_locked' argument
from the vm helper functions again.

For some cases, we just avoid expanding the stack at all: drivers and
page pinning really shouldn't be extending any stacks.  Let's see if any
strange users really wanted that.

It's worth noting that architectures that weren't converted to the new
lock_mm_and_find_vma() helper function are left using the legacy
"expand_stack()" function, but it has been changed to drop the mmap_lock
and take it for writing while expanding the vma.  This makes it fairly
straightforward to convert the remaining architectures.

As a result of dropping and re-taking the lock, the calling conventions
for this function have also changed, since the old vma may no longer be
valid.  So it will now return the new vma if successful, and NULL - and
the lock dropped - if the area could not be extended.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[6.1: Patch drivers/iommu/io-pgfault.c instead]
Signed-off-by: Samuel Mendoza-Jonas <samjonas@amazon.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
[surenb: change in io-pgfault.c was done in iommu-sva.c]
Change-Id: Icdcdded08d7ad4eda8fae1120a3c8b3d957516c1
(cherry picked from commit 8d7071af890768438c14db6172cc8f9f4d04e184)
Signed-off-by: Suren Baghdasaryan <surenb@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2023-07-27 11:47:21 +00:00
..
fault_32.c UPSTREAM: mm/fault: convert remaining simple cases to lock_mm_and_find_vma() 2023-07-27 05:04:57 +00:00
fault_64.c BACKPORT: mm: always expand the stack with the mmap write lock held 2023-07-27 11:47:21 +00:00
hugetlbpage.c mm: merge pte_mkhuge() call into arch_make_huge_pte() 2022-03-22 15:57:04 -07:00
hypersparc.S sparc32: mm: Restructure sparc32 MMU page-table layout 2020-05-13 15:32:00 -07:00
init_32.c sparc/mm: move protection_map[] inside the platform 2022-07-17 17:14:37 -07:00
init_64.c sparc/mm: move protection_map[] inside the platform 2022-07-17 17:14:37 -07:00
init_64.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
io-unit.c dma-mapping: split <linux/dma-mapping.h> 2020-10-06 07:07:03 +02:00
iommu.c sparc/iommu: return error codes from .map_sg() ops 2021-08-09 17:13:06 +02:00
leon_mm.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
Makefile sparc32: switch to generic extables 2021-01-03 20:05:18 -05:00
mm_32.h sparc32: kill lookup_fault() 2021-01-03 20:05:14 -05:00
srmmu_access.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
srmmu.c sparc: Unbreak the build 2022-09-29 19:21:10 -07:00
swift.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
tlb.c mm: move page_mapping_file to pagemap.h 2021-04-30 11:20:37 -07:00
tsb.c signal/sparc: In setup_tsb_params convert open coded BUG into BUG 2021-10-25 15:56:29 -05:00
tsunami.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
ultra.S mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
viking.S sparc32: mm: Restructure sparc32 MMU page-table layout 2020-05-13 15:32:00 -07:00