On Thu, Jul 07, 2022 at 09:44:03AM +0300, Dan Carpenter wrote: > tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master > head: 088b9c375534d905a4d337c78db3b3bfbb52c4a0 > commit: fdd1b94629bb5592abf40d0c7a572b58e4c0cadc [7884/8197] mm/page_alloc: protect PCP lists with a spinlock > config: i386-randconfig-m021 > compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 > > If you fix the issue, kindly add following tag where applicable > Reported-by: kernel test robot <lkp@xxxxxxxxx> > Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > Thanks Dan, I see Andrew has already merged a fix for this. --8<-- mm-page_alloc-protect-pcp-lists-with-a-spinlock-fix add missing local_unlock_irqrestore() on contention path Reported-by: kernel test robot <lkp@xxxxxxxxx> Reported-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> Cc: Hugh Dickins <hughd@xxxxxxxxxx> Cc: Marcelo Tosatti <mtosatti@xxxxxxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Minchan Kim <minchan@xxxxxxxxxx> Cc: Nicolas Saenz Julienne <nsaenzju@xxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Yu Zhao <yuzhao@xxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- mm/page_alloc.c | 1 + 1 file changed, 1 insertion(+) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 3b819c2720f8..66b902fef364 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3788,6 +3788,7 @@ static struct page *rmqueue_pcplist(struct zone *preferred_zone, pcp_trylock_prepare(UP_flags); if (!spin_trylock(&pcp->lock)) { pcp_trylock_finish(UP_flags); + local_unlock_irqrestore(&pagesets.lock, flags); return NULL; }