[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250519043847.1806-1-21cnbao@gmail.com>
Date: Mon, 19 May 2025 16:38:47 +1200
From: Barry Song <21cnbao@...il.com>
To: ryncsn@...il.com
Cc: akpm@...ux-foundation.org,
baohua@...nel.org,
baolin.wang@...ux.alibaba.com,
bhe@...hat.com,
chrisl@...nel.org,
david@...hat.com,
hannes@...xchg.org,
hughd@...gle.com,
kaleshsingh@...gle.com,
kasong@...cent.com,
linux-kernel@...r.kernel.org,
linux-mm@...ck.org,
nphamcs@...il.com,
ryan.roberts@....com,
shikemeng@...weicloud.com,
tim.c.chen@...ux.intel.com,
willy@...radead.org,
ying.huang@...ux.alibaba.com,
yosryahmed@...gle.com
Subject: [PATCH 05/28] mm, swap: sanitize swap cache lookup convention
> From: Kairui Song <kasong@...cent.com>
> diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c
> index e5a0db7f3331..5b4f01aecf35 100644
> --- a/mm/userfaultfd.c
> +++ b/mm/userfaultfd.c
> @@ -1409,6 +1409,10 @@ static int move_pages_pte(struct mm_struct *mm, pmd_t *dst_pmd, pmd_t *src_pmd,
> goto retry;
> }
> }
> + if (!folio_swap_contains(src_folio, entry)) {
> + err = -EBUSY;
> + goto out;
> + }
It seems we don't need this. In move_swap_pte(), we have been checking pte pages
are stable:
if (!is_pte_pages_stable(dst_pte, src_pte, orig_dst_pte, orig_src_pte,
dst_pmd, dst_pmdval)) {
double_pt_unlock(dst_ptl, src_ptl);
return -EAGAIN;
}
Also, -EBUSY is somehow incorrect error code.
> err = move_swap_pte(mm, dst_vma, dst_addr, src_addr, dst_pte, src_pte,
> orig_dst_pte, orig_src_pte, dst_pmd, dst_pmdval,
> dst_ptl, src_ptl, src_folio);
>
Thanks
Barry
Powered by blists - more mailing lists