Re: [PATCH mm-hotfixes-unstable] shmem: fix smaps BUG sleeping while atomic

From: Peter Xu
Date: Wed Aug 23 2023 - 12:42:00 EST


On Tue, Aug 22, 2023 at 10:14:47PM -0700, Hugh Dickins wrote:
> smaps_pte_hole_lookup() is calling shmem_partial_swap_usage() with page
> table lock held: but shmem_partial_swap_usage() does cond_resched_rcu()
> if need_resched(): "BUG: sleeping function called from invalid context".
>
> Since shmem_partial_swap_usage() is designed to count across a range, but
> smaps_pte_hole_lookup() only calls it for a single page slot, just break
> out of the loop on the last or only page, before checking need_resched().
>
> Fixes: 230100321518 ("mm/smaps: simplify shmem handling of pte holes")
> Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx>
> Cc: stable@xxxxxxxxxxxxxxx # 5.16+

Oops.. thanks Hugh.

Acked-by: Peter Xu <peterx@xxxxxxxxxx>

--
Peter Xu