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 58E4DC61DA4 for ; Wed, 15 Mar 2023 08:08:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E1E846B0072; Wed, 15 Mar 2023 04:08:25 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DA77B6B0074; Wed, 15 Mar 2023 04:08:25 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C20C96B0075; Wed, 15 Mar 2023 04:08:25 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id ADBA26B0072 for ; Wed, 15 Mar 2023 04:08:25 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 72DAD1405D0 for ; Wed, 15 Mar 2023 08:08:25 +0000 (UTC) X-FDA: 80570405370.18.06E3853 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) by imf09.hostedemail.com (Postfix) with ESMTP id BDCB8140013 for ; Wed, 15 Mar 2023 08:08:22 +0000 (UTC) Authentication-Results: imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=K0QKzfSs; spf=pass (imf09.hostedemail.com: domain of elver@google.com designates 209.85.166.52 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678867702; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=LT6Ia3vKrU2zpUQTyPaL1FAau/PMFoHjbq3HdkvqDrE=; b=ePGxdQvsRJh+yHRGLajMAQ+kGDGtftEZWhXVnXRrXMQ+Tg/tfZBR33gcywRtCJdyQ9TKBi sRQl3ysuLga+1UvBCphI2O1NkeiuUnbVuc7IZKjOPS2/whwWHVgV/VDiibgIVtBjzcFT8x g3uZspRmq8QXKaW10iSUlRj0w4LN8TU= ARC-Authentication-Results: i=1; imf09.hostedemail.com; dkim=pass header.d=google.com header.s=20210112 header.b=K0QKzfSs; spf=pass (imf09.hostedemail.com: domain of elver@google.com designates 209.85.166.52 as permitted sender) smtp.mailfrom=elver@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678867702; a=rsa-sha256; cv=none; b=vdlbi3VuQczDq2w05D/SiCYltzhtqPfhKAbGvRmKRYopokxNAGCwO9hJ5JfVJUNRSsKZlr MFpgcuZ6EHTE+RvSLePX0Wzp4qlHRLS3SWXNGQlwrOGq4zbFyl5HPHPPrk6Km87KiVBq+B 0hZseH/8sKzb/EgxpsOxFV9adT4lj3I= Received: by mail-io1-f52.google.com with SMTP id s4so329021ioj.11 for ; Wed, 15 Mar 2023 01:08:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; t=1678867702; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=LT6Ia3vKrU2zpUQTyPaL1FAau/PMFoHjbq3HdkvqDrE=; b=K0QKzfSsUasx51OPzdvhrTCXOOSEw8cM0ekR2+W9mJXPhKFEjFD77h1gulBGNguYpI l0mnOSUakFgLepYHwLyIMPNFZrG4EDnTp1GrEhvOlbQrRlDZZP6upWC5FodYfhC3S7HO QGrGozZea6ofdvV/OA4RSZLwJs8XhXDNg0avOtkb3W17mCJwCn2bZbu7YgvIs8xK1GWg zhaK1BJbhD3eMQrPAmX+euybgH8fEnv+uU4H/amXXUYbAeOJfq5byfVyGpyKYscy4ItW 2HVepeWSWq/HcZ4WSpRCQAjm1iMmaxGYmqfRYROLO2RS8ol8vyRlO6g6f0246foykH8a xAsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678867702; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=LT6Ia3vKrU2zpUQTyPaL1FAau/PMFoHjbq3HdkvqDrE=; b=ekYNKY9qZ3jBMszfdXms3Y49gX9TVMKU7Uk24uhnVJl3RnfbrGvUO/RaxfKyQYqfSZ t3Q7xdRX1ogYo3AMi9Su3IlHpfQPERJpwDALBEPH5G+XI3WtGEDwSEJFIL4l7jl9fcZW zyvF3H7l//mHASrCNTdhX93nL3GGCvonIMNQ57QmGL0C/2ck5p9zBz6f+B7Awe2x4xGn 1+d+cKyQfZG+xIPGOjuypkXuSmSngjbEBq1jmwAa1Pfnsjh97dG4p6gtj/KQ4DioOJUT L7dnSM79iCXTBDQ5g0YyJ10S71FvILl1af3XwWAxpbhqYNShIvnXZRs0oLwhMdpBLSLi pEkA== X-Gm-Message-State: AO0yUKXcq9Ffp8KeAD/peUMFhxaTzjYeK+mxjMcxBL8BukySF8xfudTZ nFrUi3DjDv6+7JKXDM1F32lnpGUcCiIJBIT1BcAjpA== X-Google-Smtp-Source: AK7set+2ERjNr/4s9bDE/AXPsf/E/3VBNBKN1x3c8nrK5xEHr+GHeuWZM0XnWyyGwX6AO5laeBNcEtuNMc2+AMs/d6s= X-Received: by 2002:a6b:fc05:0:b0:744:d7fc:7a4f with SMTP id r5-20020a6bfc05000000b00744d7fc7a4fmr18528284ioh.1.1678867701817; Wed, 15 Mar 2023 01:08:21 -0700 (PDT) MIME-Version: 1.0 References: <20230315034441.44321-1-songmuchun@bytedance.com> In-Reply-To: <20230315034441.44321-1-songmuchun@bytedance.com> From: Marco Elver Date: Wed, 15 Mar 2023 09:07:40 +0100 Message-ID: Subject: Re: [PATCH] mm: kfence: fix using kfence_metadata without initialization in show_object() To: Muchun Song Cc: glider@google.com, dvyukov@google.com, akpm@linux-foundation.org, jannh@google.com, sjpark@amazon.de, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, muchun.song@linux.dev Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: BDCB8140013 X-Stat-Signature: mcrrugj1jsfzumd8ixbh394si3bw4zg3 X-HE-Tag: 1678867702-782286 X-HE-Meta: U2FsdGVkX18IB5XAobGZ74I/OlIj0Ywp1vITTokNsdH+Rhs/OG6adoW4HlREsLQQmQTxQ7/nHXnxjqmkUDJjHJB70S5+MaWFaNIuN5MStnSyMRDvCWIdyhTwtiwSfaXVtuXXyaKVVYhPxqua7kCYi450J2sMp6+7Ip/ISsVhW9tY4a3t1FJ5Y+eKermWYaYKpU1ORsPo37HRy7NChj7zqGqSKNtyI5fj2+aB2kCYdWNHefc/frZchpbLgGQzeCw+mF5t8+TSE3iZt9BK9HAqSD882TFe6VBNmcRb+GtPLwxqOBFg6Kwzdg0JrvAsBEqjTfueVmw1ix4q9NAa/18rIBZRjVjSX8RcbaNKh9fW3l6i/TdeTfu11xNyhDsNGWLbAQZXm71w3sM80f5dPlEuB8dnqB8jNnlv7x0wFFYFMFSamsyoHMxtxnouuPbgin1eED313mcMA9POl68aU/uKVeNiD/KQVxzPh+skeUD6Iyto1vExW+ftEPLJyl3U8G8Bc4xSfF4zBCTZjK6y/KGzAQD637uwS25K/bPQE6nA/zvqD560UxlPCO05Tv9I/j49mtxRsgj2Qnmta3IebChuRavDm/HKq/Nhu2D05viSkrS+u85tANNhdkdANnikgFp14+THrIcjV5vwvEbRK1yyR68HFpSSXMoLlSVH7gvNeejQoYbLJQWa+Fp1PIU4LAYDObUQ6M2pCTZKXTLcudb564BBbjO02zYvzir/BFavNx2YnPhnrfx+nxQtECw81S4cZPNxc/YtTOOLZ6YP7RHoE8qmMsIF0ihTNmsFlZ+l1Vn8PCHpvgWOsOvOq8t0QemID+EoTtp1EFiDhIxm1rhf8uGGIJbvQ66YUchxbtRZy0qPH+C5v/VlLToiRi30dLBqPtkGPLYnVRdT26fIeSW6z8hp1A8jvd+8wBbPupDi+iVdTw4jk5DQZUPWFLKDtGbnDrrGhmkkts71jHkcZ90 vjfmjDiQ +lse72Hl6/OfKjNpV8MzNE8HMIogxM55df7MNbUtBXtRN3gDLvFfos+cAJYGL5Dnj+WyGsuiUMl+eT/QATI/XGuB0c1VIbtw2b3wLJiUwqApSta9K6EBe7+AUk5VS+m+Lw88UXwP1yMbh7RsNRx+IObyC8tdq7pbiKdfMdhZyJCxfe019KoPd7ugxe8tfn9KvxkiJvvwEK0EduE/dbYyiE3LXb7abCrLqleqnwDRh8X2/0ll/dBJWHpqAMApgI/Dh06zSBG8wRIcHbrCXcbTUwbpeSvWOv8f4pY7gW+bcgx0RrlH+kb/CvZnPOQ3spMwPlsuL72H4CKXFGfyieDo+fF1bTjtwpxCFv/9VGFjv755ePjpUdEeyAU3+OA== 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: On Wed, 15 Mar 2023 at 04:45, Muchun Song wrote: > > The variable kfence_metadata is initialized in kfence_init_pool(), then, it is > not initialized if kfence is disabled after booting. In this case, kfence_metadata > will be used (e.g. ->lock and ->state fields) without initialization when reading > /sys/kernel/debug/kfence/objects. There will be a warning if you enable > CONFIG_DEBUG_SPINLOCK. Fix it by creating debugfs files when necessary. > > Fixes: 0ce20dd84089 ("mm: add Kernel Electric-Fence infrastructure") > Signed-off-by: Muchun Song Tested-by: Marco Elver Reviewed-by: Marco Elver Good catch! > --- > mm/kfence/core.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/mm/kfence/core.c b/mm/kfence/core.c > index 5349c37a5dac..79c94ee55f97 100644 > --- a/mm/kfence/core.c > +++ b/mm/kfence/core.c > @@ -726,10 +726,14 @@ static const struct seq_operations objects_sops = { > }; > DEFINE_SEQ_ATTRIBUTE(objects); > > -static int __init kfence_debugfs_init(void) > +static int kfence_debugfs_init(void) > { > - struct dentry *kfence_dir = debugfs_create_dir("kfence", NULL); > + struct dentry *kfence_dir; > > + if (!READ_ONCE(kfence_enabled)) > + return 0; > + > + kfence_dir = debugfs_create_dir("kfence", NULL); > debugfs_create_file("stats", 0444, kfence_dir, NULL, &stats_fops); > debugfs_create_file("objects", 0400, kfence_dir, NULL, &objects_fops); > return 0; > @@ -883,6 +887,8 @@ static int kfence_init_late(void) > } > > kfence_init_enable(); > + kfence_debugfs_init(); > + > return 0; > } > > -- > 2.11.0 >