From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 433CAC3DA4B for ; Tue, 16 Jul 2024 02:30:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9ED006B0088; Mon, 15 Jul 2024 22:30:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 99C8F6B0092; Mon, 15 Jul 2024 22:30:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8646B6B0093; Mon, 15 Jul 2024 22:30:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 6C5E76B0088 for ; Mon, 15 Jul 2024 22:30:25 -0400 (EDT) Received: from smtpin22.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 2B1221C26E1 for ; Tue, 16 Jul 2024 02:30:25 +0000 (UTC) X-FDA: 82344036810.22.4F3C590 Received: from out-185.mta1.migadu.com (out-185.mta1.migadu.com [95.215.58.185]) by imf06.hostedemail.com (Postfix) with ESMTP id 070B3180008 for ; Tue, 16 Jul 2024 02:30:22 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JVxlcvEb; spf=pass (imf06.hostedemail.com: domain of kent.overstreet@linux.dev designates 95.215.58.185 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1721097004; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=XGTN2sCQn73K01w4hUdt3Y9IcXyDXjcOsX2Dq1gljaI=; b=Gibm69jqkB39B3xAlz8rgMOslDMg5edd5OrBKcZfKVKnG9HjjrmvvuzU5PAj8EANbfW4Rs 4djrax3m5yKUASDpaKAPlNeZq2d+Z37nLYZRoV3jV8Radlkc6ZAGgw7AlwlzaAelwrpy/4 ueRMPRQ3NjIZVawx0qSHM5ebNd2YfVI= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=JVxlcvEb; spf=pass (imf06.hostedemail.com: domain of kent.overstreet@linux.dev designates 95.215.58.185 as permitted sender) smtp.mailfrom=kent.overstreet@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1721097004; a=rsa-sha256; cv=none; b=3B9udo9jgxTCEVYZvQFpZIcCRdMLLZeoMQsywZa58fb8cENQQkfHupDqkpGCdaSPnv8Vmv PPuUhvaIzj2mZAEhO/cVhRNNpx989qGkChTDboc5yu1VaWLHsr+yT0Ca0B2Rd7xsZMZFhI 1eJwyAqRGM97rbh5A91sZSPvlhlhHHw= X-Envelope-To: youling.tang@linux.dev DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1721097020; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=XGTN2sCQn73K01w4hUdt3Y9IcXyDXjcOsX2Dq1gljaI=; b=JVxlcvEbAjKLI+7wNQ2Iye/d9GDTLefows3iJrtxddoUdbOvUW0U57cXeYq4NGO4ZNKoNz kee5u+IGSjtI+zBB2xrZOoNMCEM4FkTAqhA6vScdM23u0DILiWZqlgWnr43alxvM22hPOc LNakSEeHa+PRPt8YTvxh9En8EP022Bk= X-Envelope-To: akpm@linux-foundation.org X-Envelope-To: linux-mm@kvack.org X-Envelope-To: linux-kernel@vger.kernel.org X-Envelope-To: tangyouling@kylinos.cn X-Envelope-To: zhengqi.arch@bytedance.com Date: Mon, 15 Jul 2024 22:30:17 -0400 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kent Overstreet To: Youling Tang Cc: Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Youling Tang , Qi Zheng Subject: Re: [PATCH] mm: list_lru: Fix NULL pointer dereference in list_lru_add() Message-ID: References: <20240712032554.444823-1-youling.tang@linux.dev> <8ce42a2e-783f-4244-8e75-21dcd578adf5@linux.dev> <7db60e36-9c96-4938-a28d-a9745e287386@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <7db60e36-9c96-4938-a28d-a9745e287386@linux.dev> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam03 X-Rspam-User: X-Rspamd-Queue-Id: 070B3180008 X-Stat-Signature: dhxpd56hw4314psiapii3zk65z1dyzjk X-HE-Tag: 1721097022-119843 X-HE-Meta: U2FsdGVkX1/DTc/YesWwj3Q4aDizqq6V5OtB9nVz9gebsy62BtjlwSNR7yDM3j9vfpquDV7eMeGRXvfH1AKcTm9ODWQtJqlF1fjiqug5jacMvDvXT7ly6PWGr/kDnYzIYAzOEF8wfeIMjjBQ+u7HvdUAO+6KYenzbtbsQtuwxNPUONsa4dEV0EJFSynT1zAeROrY/V49SfZC4To3AHvWZSmfbT/zLEwPEv3if4VV10d4sUWwSfbQ8A30+5ZQb+JUe+EWQqM6odPcvkrhccQo75wob8I8KqD8/ibq1i8LxtaT4dcsYSRZOgLtVVt7Boqa+GTAV34vy6Ib1gZuSgXJu3AzuJ4qoWd3tsOKRlAGzpimFD1z1vZX+s2hMpeol5uYtiLc+FWJFd1fPPStbCBW6faRYH4hn3y/5kAxn1vaqTvqqxFo+CwiaiPSwocFBWJaaYLF7CY94gLlvP/YI4aDnP5mF0lAH9knMUd7XmiKF6M16Fay5XsaB5jS7D+ScKXxtfs3OIeJcAF5dSJ8SyPf2RnG+BNUOaDczqaptkHB3ZTv1dA6BkSBRJb1UtjJ33Q1dlPS6yXl+EteRPxXsSJf1oFIYOcDSm2LoUar71AericHAqZ6irUnWLEP8I/qxiUebCsyH7BWoNyr7W40zq2sJzr222YcbL6qdEN8GLF30e/DSK8SeiC28zd6rtRDSRubD8y3yvugUv4fYNrImW9KwA9ivSuURH1U5FpclJbwyYlWOWSsMagYHeUcZAMpoEdVKiSIrf9IoNja87tsficWoOkUshGM77OIxm2NU1AGlOabjopo8d14/0HtsEXnw9watd8F6sTwFNcxjgDtRmYkRbfrwstCQp82votVSvNlhJVHP/957SYF2+kgZ6CScbnVd7O4+00QMD5wsweq0JkElrFEezpq3Psa+CdThdbbkvdSGz3HI5vX88pEh7IFiLtUujfOVtowgqr/ilw0A4q JuSzqTYD g3+j2xlNBerIRPk67mMlV48IbGcskhXHmE94UJC81ZkstAKF2YbElIbT/Rv65TpDCFWxQ7QqS4CQjoHaz+jSOhSFKt9kjTnZCD0xzIKzYeF+pakpQs8BnGTkYiWrfK7SLVq4RRe6PFzPV+wooVQmaRxqHdXI1oupKjBMoo8ddTcxCoMWtFnd4J4uSc+aHZkGlP4XtGw/JhzWcoQLJYexjdBukkK37PwT4pFrtcQRb894hO0kjZ+VGomaZ2wF/9cvOnBdgJqGUvjYpxpluy0TcXsd2HgO1MUKJIEEvtiBwbghap+oNfIj0kTz5nm0xCctqRZI3ARqPGSTUE7VrhUsyyegUhB3haKni++LT99knSLYs1vIwyh4cV59IHQ== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Jul 16, 2024 at 10:28:33AM GMT, Youling Tang wrote: > Hi, Kent > > On 12/07/2024 23:49, Kent Overstreet wrote: > > On Fri, Jul 12, 2024 at 12:28:57PM GMT, Youling Tang wrote: > > > Hi, Kent > > > > > > On 12/07/2024 12:07, Kent Overstreet wrote: > > > > On Fri, Jul 12, 2024 at 11:25:54AM GMT, Youling Tang wrote: > > > > > From: Youling Tang > > > > > > > > > > Note that list_lru_from_memcg_idx() may return NULL, so it is necessary > > > > > to error handle the return value to avoid triggering NULL pointer > > > > > dereference BUG. > > > > > > > > > > The issue was triggered for discussion [1], > > > > > Link [1]: https://lore.kernel.org/linux-bcachefs/84de6cb1-57bd-42f7-8029-4203820ef0b4@linux.dev/T/#m901bb26cdb1d9d4bacebf0d034f0a5a712cc93a6 > > > > I see no explanation for why this is the correct fix, and I doubt it is. > > > > What's the real reason for the NULL lru_list_one, and why doesn't this > > > > come up on other filesystems? > > > We can break it down into two questions (independent of each other): > > > 1) Error handling is necessary when l (lru_list_one) is NULL here. > > No, you're just hiding the actual bug - since I wasn't clear, I'm naking > > this patch. > We should use kmem_cache_alloc_lru() instead of kmem_cache_alloc(), > similar to the [1] modification. > > Apply the following patch to fix the problem: Thanks, send it as a proper patch and I'll apply it > > diff --git a/fs/bcachefs/fs.c b/fs/bcachefs/fs.c > index f9c9a95d7d4c..79a580dfb5e1 100644 > --- a/fs/bcachefs/fs.c > +++ b/fs/bcachefs/fs.c > @@ -227,7 +227,8 @@ static struct inode *bch2_alloc_inode(struct super_block > *sb) > >  static struct bch_inode_info *__bch2_new_inode(struct bch_fs *c) >  { > -       struct bch_inode_info *inode = kmem_cache_alloc(bch2_inode_cache, > GFP_NOFS); > +       struct bch_inode_info *inode = alloc_inode_sb(c->vfs_sb, > bch2_inode_cache, GFP_NOFS); >         if (!inode) >                 return NULL; > > Link [1]: https://lwn.net/ml/linux-kernel/20220228122126.37293-5-songmuchun@bytedance.com/ > > Thanks, > Youling.