Re: [PATCH] mm: mmap_lock: fix disabling preemption directly
From: Pankaj Gupta
Date: Tue Jul 20 2021 - 17:55:54 EST
> The commit 832b50725373 ("mm: mmap_lock: use local locks instead of
> disabling preemption") fix a bug by using local locks. But commit
> d01079f3d0c0 ("mm/mmap_lock: remove dead code for !CONFIG_TRACING
> configurations") changes those lines to original version. I guess
> it is introduced by the conflicts fixing on merging.
>
> Fixes: d01079f3d0c0 ("mm/mmap_lock: remove dead code for !CONFIG_TRACING configurations")
> Signed-off-by: Muchun Song <songmuchun@xxxxxxxxxxxxx>
> ---
> mm/mmap_lock.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/mm/mmap_lock.c b/mm/mmap_lock.c
> index f5852a058ce0..1854850b4b89 100644
> --- a/mm/mmap_lock.c
> +++ b/mm/mmap_lock.c
> @@ -156,14 +156,14 @@ static inline void put_memcg_path_buf(void)
> #define TRACE_MMAP_LOCK_EVENT(type, mm, ...) \
> do { \
> const char *memcg_path; \
> - preempt_disable(); \
> + local_lock(&memcg_paths.lock); \
> memcg_path = get_mm_memcg_path(mm); \
> trace_mmap_lock_##type(mm, \
> memcg_path != NULL ? memcg_path : "", \
> ##__VA_ARGS__); \
> if (likely(memcg_path != NULL)) \
> put_memcg_path_buf(); \
> - preempt_enable(); \
> + local_unlock(&memcg_paths.lock); \
> } while (0)
>
> #else /* !CONFIG_MEMCG */
Reviewed-by: Pankaj Gupta <pankaj.gupta@xxxxxxxxx>