Skip to content

Commit

Permalink
sparc32: fix lock_mm_and_find_vma() conversion
Browse files Browse the repository at this point in the history
commit 0b26ead upstream.

The sparc32 conversion to lock_mm_and_find_vma() in commit a050ba1
("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
missed the fact that we didn't actually have a 'regs' pointer available
in the 'force_user_fault()' case.

It's there in the regular page fault path ("do_sparc_fault()"), but not
the window underflow/overflow paths.

Which is all fine - we can just pass in a NULL pointer.  The register
state is only used to avoid deadlock with kernel faults, which is not
the case for any of these register window faults.

Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
Fixes: a050ba1 ("mm/fault: convert remaining simple cases to lock_mm_and_find_vma()")
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Naresh Kamboju <naresh.kamboju@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
torvalds authored and gregkh committed Jul 1, 2023
1 parent 7a11f6e commit 23d1e96
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion arch/sparc/mm/fault_32.c
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ static void force_user_fault(unsigned long address, int write)

code = SEGV_MAPERR;

vma = lock_mm_and_find_vma(mm, address, regs);
vma = lock_mm_and_find_vma(mm, address, NULL);
if (!vma)
goto bad_area_nosemaphore;
code = SEGV_ACCERR;
Expand Down

0 comments on commit 23d1e96

Please sign in to comment.