Re: [syzbot] [io-uring?] [mm?] general protection fault in lock_vma_under_rcu
From: Edward Adam Davis
Date: Tue Feb 25 2025 - 03:44:01 EST
#syz test
diff --git a/mm/memory.c b/mm/memory.c
index d5c4f932b399..f67670cb2e22 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -6484,7 +6484,7 @@ struct vm_area_struct *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 vm_area_struct *vma, *vma2;
rcu_read_lock();
retry:
@@ -6492,10 +6492,10 @@ struct vm_area_struct *lock_vma_under_rcu(struct mm_struct *mm,
if (!vma)
goto inval;
- vma = vma_start_read(mm, vma);
- if (IS_ERR_OR_NULL(vma)) {
+ vma2 = vma_start_read(mm, vma);
+ if (IS_ERR_OR_NULL(vma2)) {
/* Check if the VMA got isolated after we found it */
- if (PTR_ERR(vma) == -EAGAIN) {
+ if (PTR_ERR(vma2) == -EAGAIN) {
count_vm_vma_lock_event(VMA_LOCK_MISS);
/* The area was replaced with another one */
goto retry;