Received: by 2002:a05:6a10:f3d0:0:0:0:0 with SMTP id a16csp4302874pxv; Mon, 5 Jul 2021 20:09:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwJouermeHFmNHdOf6evMAxOnA4rEaIPE/gvdlP+ztLRVRPDG4mebP38+4xZaFsfsFBukuK X-Received: by 2002:a05:6402:90a:: with SMTP id g10mr19807826edz.365.1625540950845; Mon, 05 Jul 2021 20:09:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1625540950; cv=none; d=google.com; s=arc-20160816; b=gOaHZLY7lf0j7IZpTewKuj2aj4CfziRDAJzm9IBe4ChyBy4QjXDBAAz/vi7GL1euoC YZc///DkBC7X+oLBwJ+zp3OoxFIsbrlV0yDhWiDMTCpSdDdlxy1wmjjj9+bwgkgCpjRr yRL3I/ssvRE0v6nJ+7aZtWtIyrKsn9PNo+CFEbCJPyxO2KE1L1X2PiLkSMGVbBP7iq5N FxEvRSLWqgpWyZ5YOopExsOtGR/OqwEI53ORjdKxXRZxkP4EW/3brv/QxuJXmbcW74Kf MeGON/xkZuDDP1bSo+B5xFoMrcgk4scdbA64kPRyePAi8Sr6WHguPH/jIaKeOyBcSUKA 4w6A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=rpUK1zI8UPtbL2LMVzlMcPFji8pVRHI1RGFSCzgONU8=; b=IaLyyfbz3z3kYxtxXnZnjPrflk/BvNSc1FMNi1WYUS2osIsE5uLvuqkdnqDhF/hO/G cUPHVNW2mWgsEBKuzoGGjHkn3IhmtBchV9ndvwtE6PbJuT46kQKDQOKaBmEvLVaI07qf VPczkbXtDqHUP5afy8pYvhVtMA5Maeuv7nqvDvMJwgW3xU+Zz0ynMcfZbKjYtIX/ji5j 2tBPSK9yCmWV1gg2f+dLc+bK66wmuwQjiyRohMlXboQtXEnuVm2XQxGa/xKD3+ThZPM1 51qP6aSsSUJC/zCyz6ISCppW4iMqeFnvPwoPUIhPSQwp/t+DjL8U8b5Qi5RDB4WtKGqL 1ODA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance-com.20150623.gappssmtp.com header.s=20150623 header.b=DSHKoKfn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id m26si388599edp.551.2021.07.05.20.08.48; Mon, 05 Jul 2021 20:09:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance-com.20150623.gappssmtp.com header.s=20150623 header.b=DSHKoKfn; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230000AbhGFDI2 (ORCPT + 99 others); Mon, 5 Jul 2021 23:08:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48382 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229998AbhGFDI1 (ORCPT ); Mon, 5 Jul 2021 23:08:27 -0400 Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 15CFCC061574 for ; Mon, 5 Jul 2021 20:05:49 -0700 (PDT) Received: by mail-pl1-x635.google.com with SMTP id a6so292246plh.11 for ; Mon, 05 Jul 2021 20:05:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=rpUK1zI8UPtbL2LMVzlMcPFji8pVRHI1RGFSCzgONU8=; b=DSHKoKfnm93GVE8ZuctQLNVdcgeu75jZ/9RQPyHmmM8+BPtVIVOY02Q1hZst/N26PE mG2VbBif93O0lmkH8xUDtGXevKPItODW1rOeaIrHwq3W1R2Ea8/Sl43y2/MoA7OUD6ey fwSvZdk0GnX1VdVh+/RJQxq2dgctYl35UtFwJIHfskVC1u2JmEFgjYZ/yoldz/0iHVob PWiOZePHh2Vj+bz1Ve4ob/XOfstOlqMau7JFUwFJB2AwWZSOIp1XLJphEW12yO5Ykelp kuXFTaoAL81epwvcrXTpIGQAuPiQ7BdgeZbTGHEmxBw7rbeimgb9bs2OOlAJDpdOb/xC 58kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=rpUK1zI8UPtbL2LMVzlMcPFji8pVRHI1RGFSCzgONU8=; b=CMb6Zk8SO/HYUBLJpk8WSMdtSWBuy1xbYbbBNIW8SUxR48eSYBDk1QNMH/oKBFWqvf 4LKkg9+/r7Z4kseDJ3ulbSDO4DUcHcqCZbPNSHvUkxgi7FjulObullfzTJp44Agj5uGZ TjbLJO2ywgMhH7TVzHZsSUA5xvOv7z4fPM7147YMQcOQaRHUp7N8vTYcjQkpaS/PYriD PSaMi9wxjjclOJUagv2dqMCkh/26l0UEyNFhzKo+VluYaUPcYZSp9ID6GpHUWxLbYnAY zBdkq7NiTHYYJBIVP2r0U7k7nbk+iY60V+QwNnPlWW+Hdg7CcscOXsXZgVTatCw4u7u4 KfIQ== X-Gm-Message-State: AOAM530Z9y+P4LPns3VyEaTwu5lvno6HPBohjN9GxQAmdU3Kg8BeV+2N 1M0C4J4Evk6DN29Qpit4r5WuHM+4k/40vwT80yUkhg== X-Received: by 2002:a17:902:e2d3:b029:129:70aa:990 with SMTP id l19-20020a170902e2d3b029012970aa0990mr11886309plc.34.1625540748048; Mon, 05 Jul 2021 20:05:48 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Muchun Song Date: Tue, 6 Jul 2021 11:05:11 +0800 Message-ID: Subject: Re: Re: [Phishing Risk] [External] [PATCH] mm: add GFP_ATOMIC flag after local_lock_irqsave To: =?UTF-8?B?546L5pOO?= Cc: Andrew Morton , Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 6, 2021 at 10:41 AM =E7=8E=8B=E6=93=8E wrot= e: > > > >On Mon, Jul 5, 2021 at 9:57 PM Wang Qing wrote: > >> > >> Use GFP_ATOMIC when local_lock_irqsave in __alloc_pages_bulk > >> > >> Reported-by: syzbot+e45919db2eab5e837646@syzkaller.appspotmail.com > >> Signed-off-by: Wang Qing > >> --- > >> mm/page_alloc.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/mm/page_alloc.c b/mm/page_alloc.c > >> index d6e94cc..3016ba5 > >> --- a/mm/page_alloc.c > >> +++ b/mm/page_alloc.c > >> @@ -5309,7 +5309,7 @@ unsigned long __alloc_pages_bulk(gfp_t gfp, int = preferred_nid, > >> } > >> nr_account++; > >> > >> - prep_new_page(page, 0, gfp, 0); > >> + prep_new_page(page, 0, gfp | GFP_ATOMIC, 0); > > > >Hi Wang Qing, > > > >I didn't get the point here. IIUC, prep_new_page() will not allocate > >memory. So why do we need GFP_ATOMIC? What I missed here? > > > >Thanks. > > prep_new_page() will allocate memory in some scenarios. For details, > you can check the bugs detected by syzkaller: > https://syzkaller.appspot.com/bug?id=3D91c2030241ada0e5d21877f8f2f44c98cf= fc04bb > > Call Trace: > __dump_stack lib/dump_stack.c:79 [inline] > dump_stack_lvl+0xcd/0x134 lib/dump_stack.c:96 > ___might_sleep.cold+0x1f1/0x237 kernel/sched/core.c:9153 > prepare_alloc_pages+0x3da/0x580 mm/page_alloc.c:5179 > __alloc_pages+0x12f/0x500 mm/page_alloc.c:5375 > alloc_pages+0x18c/0x2a0 mm/mempolicy.c:2272 > stack_depot_save+0x39d/0x4e0 lib/stackdepot.c:303 > save_stack+0x15e/0x1e0 mm/page_owner.c:120 > __set_page_owner+0x50/0x290 mm/page_owner.c:181 > prep_new_page mm/page_alloc.c:2445 [inline] > __alloc_pages_bulk+0x8b9/0x1870 mm/page_alloc.c:5313 Got it. But I don't think the fix you mentioned above was appropriate. What if GFP_KERNEL | GFP_ATOMIC? Thanks. > > Thanks. > > Qing > > > > >> if (page_list) > >> list_add(&page->lru, page_list); > >> else > >> -- > >> 2.7.4 > >> > >