From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931246; cv=none; d=zohomail.com; s=zohoarc; b=WDzy7JtvayKNGE1VNBTF5QfeNOPCxhT7yNYWs+Q9pdlKTvW9krmu0vnlI1rjao6G6Zd+5HULBEaYDNoDZ/MVeMFaMtuewZmYCiTHzLWA+IGzR5vxD6fHg4eO/DJ7ljGic9jJslG6Pt/JX4pQVvqXEaN7K6F0XLRr6lQeFGLIXU4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931246; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zS2ZTWNtYHltA9QytinDsw+p3+JtthDKSkNq3q9AYXg=; b=RZDKMLvw+RqWyK1HpEsjqLsfD2JKwADfUvDXbalpnk0u+PnDILdnY2dTa0mgwnpeL+A8xXy670vidhDvYc2W+00RL6BRSKaWNgVPGCpc9YSLpnbiUMXlG6atv21OshxJF3pwtW0+qyzQMbrm8a0ykBOgtLGLxqgSL11LzN3LBdo= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931246980734.3460103768294; Tue, 13 Oct 2026 15:40:46 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448329.1664338 (Exim 4.92) (envelope-from ) id 1xGlAR-0006hV-CD; Tue, 13 Oct 2026 22:40:19 +0000 Received: by outflank-mailman (output) from mailman id 1448329.1664338; Tue, 13 Oct 2026 22:40:19 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAR-0006hM-8n; Tue, 13 Oct 2026 22:40:19 +0000 Received: by outflank-mailman (input) for mailman id 1448329; Tue, 13 Oct 2026 22:40:18 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3TrPOagcKCU0x63vt67v33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--irogers.bounces.google.com>) id 1xGlAQ-0006Uz-7S for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:18 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAP-00Eh2E-Ka for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:17 +0200 Received: from [10.42.69.10] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3TrPOagcKCU0x63vt67v33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--irogers.bounces.google.com>) id 6aceb32a-e002-0a2a0a5209dd-0a2a450aad78-28 for ; Wed, 14 Oct 2026 00:40:17 +0200 Received: from [74.125.82.72] (helo=mail-dl1-f72.google.com) by tlsNG-4011c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3TrPOagcKCU0x63vt67v33v0t.r31Ct2-stAt00x787.Ct2463ytr8.36v@flex--irogers.bounces.google.com>) id 6aceb350-f2d2-0a2a450a0019-4a7d5248c5d5-3 for ; Wed, 14 Oct 2026 00:40:17 +0200 Received: by mail-dl1-f72.google.com with SMTP id a92af1059eb24-149e8e8ad71so3594487c88.1 for ; Tue, 13 Oct 2026 15:40:17 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931215; x=1792536015; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=zS2ZTWNtYHltA9QytinDsw+p3+JtthDKSkNq3q9AYXg=; b=SfPMoWpAKToL5KgIcxm2RTKYwGmMW0vvpqEas6+GdoYFynDMW93aakJnFPrnroA6lR 3E+fQc0SJuX69NrNuTjUoIjKy2maySYE5uDzBTXkn/LOsd872FsSd1i8+a8cG1KY5JoF tYRrm42wPSPnRGqyL+6vyQkZ/ASlMG2RFX4/m/wA91Abqsm8FZMoKm3bB8rA3lxd9XTj Njg9V/sukCQZUh8d4lD11Q00d+xihuG4G4zLaU41TxLNEGzvuTGY4fKFJEbpgoqY++pE lqZOToNhYqS+EgRz0ftf+4cbGV8V++dFMjPFzcU4L8g82mgJluDzsgjynGv7y5dw3bOh v5rg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931215; x=1792536015; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zS2ZTWNtYHltA9QytinDsw+p3+JtthDKSkNq3q9AYXg=; b=i8MsDqL9nH20jlGJnwSR4qOFXXW9zUPHEnmGfgD4plLeJW1ltC7Kl0y+xKFKtUUohK 0QwttXDIB4Fx2MlICXag/2fgpzw2sDUJtbHtvaai1nFVriNNwA+E5RbeMoB4FUgTSLG5 pEexI2huT5hpDQRsg5YD6ygzahI0bDT3XOwfLAEa/nLUCRKHE9OIWkB7BcqXNYElD+WB Ay0ldmi3zpZ7W3uKLJ9TTY+TWwAI6d+9oUH/d6M8v5MDIgfRaKXLa7ZbXiIfQ9T96SNG ZutvbObK6ENQEIlSyVuE8qmIi8PYnUnJzNUs4w28WO5fIadouS183DayDQ4lcEhGk2eP 3bSA== X-Forwarded-Encrypted: i=1; AKwUvBwGZCgKNC0kp+b8S1nkxGffhWNbEzyYd42AvqQ0FZmRz7SiHTaCA+s1AS89n0ovEvH3d49IA8UhAqU=@lists.xenproject.org X-Gm-Message-State: AFq9FYJTLDI14SXx6wMXesQJtLAsb2rR5SPby/0NZ2NJEbYctAZR7nRJ cDzPU8NsYu/gXGuB2kxQo1fjkMC7nx5shkkmWQwM7qThih6Q8DPpL21bnl4K58AuihAHoPei8ig wb/BiTqEebw== X-Received: from dlbvs3.prod.google.com ([2002:a05:7022:3f03:b0:16a:e18b:92ba]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:701b:4553:20b0:166:9e0d:3b56 with SMTP id a92af1059eb24-16a6384d0c8mr17137930c88.38.1791931214565; Tue, 13 Oct 2026 15:40:14 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:36 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-2-irogers@google.com> Subject: [PATCH 01/11] Compiler Attributes: Add __require_explicit_initialization macro From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-4011c0/1791931217-518C5CFC-AA7675FC/0/0 X-purgate-type: clean X-purgate-size: 3637 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931249035158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Clang supports the 'require_explicit_initialization' attribute on struct fields to indicate that a field must be initialized explicitly by the user when the object is constructed. When an aggregate initializer or uninitialized variable omits an annotated field, Clang emits a -Wuninitialized-explicit-init warning (enabled by default). Add the __require_explicit_initialization macro to include/linux/compiler_attributes.h (which is included by include/linux/compiler_types.h and include/linux/compiler.h) so kernel structs with error-prone initialization (such as mandatory callbacks or cleanup handlers) can enforce explicit initialization at compile time, as discussed at the Linux Plumbers Conference. Also teach Sphinx (Documentation/conf.py), kernel-doc (tools/lib/python/kdoc/xforms_lists.py), and checkpatch.pl about the new attribute macro. Link: https://lpc.events/event/20/contributions/2392/ Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers Acked-by: Miguel Ojeda Reviewed-by: Nick Desaulniers --- Documentation/conf.py | 1 + include/linux/compiler_attributes.h | 11 +++++++++++ scripts/checkpatch.pl | 1 + tools/lib/python/kdoc/xforms_lists.py | 1 + 4 files changed, 14 insertions(+) diff --git a/Documentation/conf.py b/Documentation/conf.py index 5ab26ce89daf..3e5cb9ca0970 100644 --- a/Documentation/conf.py +++ b/Documentation/conf.py @@ -203,6 +203,7 @@ c_id_attributes =3D [ "__noreturn", "__packed", "__pure", + "__require_explicit_initialization", "__section", "__always_unused", "__maybe_unused", diff --git a/include/linux/compiler_attributes.h b/include/linux/compiler_a= ttributes.h index 476c4c560d17..60522ab80c5a 100644 --- a/include/linux/compiler_attributes.h +++ b/include/linux/compiler_attributes.h @@ -322,6 +322,17 @@ */ #define __pure __attribute__((__pure__)) =20 +/* + * Optional: not supported by gcc + * + * clang: https://clang.llvm.org/docs/AttributeReference.html#require-expl= icit-initialization + */ +#if __has_attribute(__require_explicit_initialization__) +# define __require_explicit_initialization __attribute__((__require_explic= it_initialization__)) +#else +# define __require_explicit_initialization +#endif + /* * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.ht= ml#index-section-function-attribute * gcc: https://gcc.gnu.org/onlinedocs/gcc/Common-Variable-Attributes.ht= ml#index-section-variable-attribute diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 8a7787d228a6..4a3ae6b0100a 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -6871,6 +6871,7 @@ sub process { "noreturn" =3D> "__noreturn", "packed" =3D> "__packed", "pure" =3D> "__pure", + "require_explicit_initialization" =3D> "__require_explicit_initializat= ion", "section" =3D> "__section", "used" =3D> "__used", "weak" =3D> "__weak" diff --git a/tools/lib/python/kdoc/xforms_lists.py b/tools/lib/python/kdoc/= xforms_lists.py index e3dda2fe8a53..32066fbbe763 100644 --- a/tools/lib/python/kdoc/xforms_lists.py +++ b/tools/lib/python/kdoc/xforms_lists.py @@ -36,6 +36,7 @@ class CTransforms: (CMatch("CRYPTO_MINALIGN_ATTR"), ""), (CMatch("__private"), ""), (CMatch("__rcu"), ""), + (CMatch("__require_explicit_initialization"), ""), (CMatch("____cacheline_aligned_in_smp"), ""), (CMatch("____cacheline_aligned"), ""), (CMatch("__cacheline_group_(?:begin|end)"), ""), --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931244; cv=none; d=zohomail.com; s=zohoarc; b=NzvWP4HKeXTjAECYalwtTiFEfvbZubdhbSOhgwyhSgDXySujBuaiRI5M2hMFWeM9o6vA5wc9tiwVoZ/LwsQqkoq09O4zVi9hCcKgvunisXnjcJWxC3Htsu2GsiFR1a+1aczEGZSoJWtoagb+tpeybtHYRdcuoWmlcO7RVCkLJu8= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931244; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qdtOvNbLAOJ9idJnmqNXkxs2lXj3bNW1pL8KRmE6mUU=; b=ZE8hDulNvdglR4pNZKlLx0F/uOUx/+lZORCuTldTJNKnidsYXZLHUNrppRpM37KB8OOo9FZGp2O1dTSam0MXA+rv5lLhVmYm9bx3Haa44PdLCvqRVa36v3btOfm+VRfSA4pZ3aMw5Dd8JEqnMwx2U/GB8gjxITEf+ERpfuocvrY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17919312448651004.1011507296764; Tue, 13 Oct 2026 15:40:44 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448330.1664346 (Exim 4.92) (envelope-from ) id 1xGlAT-0006uV-Nn; Tue, 13 Oct 2026 22:40:21 +0000 Received: by outflank-mailman (output) from mailman id 1448330.1664346; Tue, 13 Oct 2026 22:40:21 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAT-0006uN-Je; Tue, 13 Oct 2026 22:40:21 +0000 Received: by outflank-mailman (input) for mailman id 1448330; Tue, 13 Oct 2026 22:40:20 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3ULPOagcKCU8z85xv89x55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--irogers.bounces.google.com>) id 1xGlAS-0006ok-1k for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:20 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAR-00Eh2E-F4 for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:19 +0200 Received: from [10.42.69.4] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3ULPOagcKCU8z85xv89x55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--irogers.bounces.google.com>) id 6aceb34b-e002-0a2a0a5209dd-0a2a4504ec56-10 for ; Wed, 14 Oct 2026 00:40:19 +0200 Received: from [74.125.82.198] (helo=mail-dy1-f198.google.com) by tlsNG-ebf023.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3ULPOagcKCU8z85xv89x55x2v.t53Ev4-uvCv22z9A9.Ev46850vtA.58x@flex--irogers.bounces.google.com>) id 6aceb351-b57f-0a2a45040019-4a7d52c6ad83-3 for ; Wed, 14 Oct 2026 00:40:19 +0200 Received: by mail-dy1-f198.google.com with SMTP id 5a478bee46e88-3552883bd19so4648261eec.1 for ; Tue, 13 Oct 2026 15:40:18 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931217; x=1792536017; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=qdtOvNbLAOJ9idJnmqNXkxs2lXj3bNW1pL8KRmE6mUU=; b=Wz7acxh6o+z2wyEmHNrLoz1mE/INm8whAF5mARrCcpSvDitm7A7TieK924Ma7cMQ13 BIY+hAorqX28OlYgJRIz7Os40GccznSYbtPOFQTLW0HJagD5OQn4taaM/kiN43kCx+oS VWv8yge+Fzt0fk2BKeg6z/tq2okunylh1pOOUWN6NcjBsAu1yxiurSUL+pgviWmITXtQ LbInEW4s9pSLjFVIrA6qrB1eRrcMQWAeDCWk1V1jFuaIEPeZQbD62vhqYj57tPZxA2u/ bF0lo5ZoEEWUz4QD05gASUo9xkr7gPc0MO+CpaVbKkLmnjFzMmKC4LsGdc++lAbsNdZH eVuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931217; x=1792536017; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=qdtOvNbLAOJ9idJnmqNXkxs2lXj3bNW1pL8KRmE6mUU=; b=M4zO9ayC0adcdQUH32AseCsdHLvbwMQjDEA3bsVnF5FwGKIewGdp3aOQ4TKPMc3S1m 94wn8H0YisQEg6AwuGUkOQ8eexLDWuHBPitpLFgGOGcaMQAgg8D0Vc1jxdd8xHJZSb3X d0Sz8upIMpvmnh5rtWEH6bFr0P9slH8JCjFcfmuFqxwBDozDXMJImiu5+05H3Pev5DJU KjnlqXmVSoNtIu5flfL5pCd/fBvm/F9fXmYYcsLjQDj25y+8PVbFTnCiMdkPZBV1GY/b /ZiBCcfqZiJn2Kp38lp95hLObYaNxUdO/90GBOcNTpHYIBcxUw0HhbKzpf2SvaAVLxxK ZO/A== X-Forwarded-Encrypted: i=1; AKwUvBzIbaBBe5ChsCkaLEom4BXs57CQGGT2bQudqsrtLNyfHmOFKmRrFf/N8zH9r5D4QYYEYscXCS9R47I=@lists.xenproject.org X-Gm-Message-State: AFq9FYJXAI6wOOAmVTcrkvwfJZpIY5PL3P3ntX6C12falr0H3dC8ujxh AYoXoE20Ll7Z3pEhn1KR7DWKg3yPDyGJxSTJeHM3KHQB7eRnP58NTZvPLU1/r/NIu+lU5u9w/D/ eJhJ0EsHm7g== X-Received: from dycrm16.prod.google.com ([2002:a05:693c:2a10:b0:358:f250:485f]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:693c:4141:20b0:35c:8d1f:5634 with SMTP id 5a478bee46e88-35c8d1f58e8mr4713972eec.12.1791931216820; Tue, 13 Oct 2026 15:40:16 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:37 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-3-irogers@google.com> Subject: [PATCH 02/11] powerpc/secvar: Add missing kobject release callback to secvar_ktype From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-ebf023/1791931219-C10DDB50-FCBCE6D1/0/0 X-purgate-type: clean X-purgate-size: 1324 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931247031158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In add_var(), a struct kobject is dynamically allocated with kzalloc_obj() and initialized with secvar_ktype. If kobject_add() or sysfs_create_file() fails, kobject_put(kobj) is called to clean up. However, secvar_ktype does not define a .release callback, which results in a memory leak of kobj (and a pr_debug warning in kobject_cleanup() when CONFIG_DEBUG_KOBJECT_RELEASE is enabled). Provide a secvar_release() callback that calls kfree(kobj). Fixes: bd5d9c743d38 ("powerpc: expose secure variables to userspace via sys= fs") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- arch/powerpc/kernel/secvar-sysfs.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/powerpc/kernel/secvar-sysfs.c b/arch/powerpc/kernel/secva= r-sysfs.c index 395399bbab2c..f3f6ac25ea78 100644 --- a/arch/powerpc/kernel/secvar-sysfs.c +++ b/arch/powerpc/kernel/secvar-sysfs.c @@ -126,7 +126,13 @@ static const struct attribute_group secvar_attr_group = =3D { }; __ATTRIBUTE_GROUPS(secvar_attr); =20 +static void secvar_release(struct kobject *kobj) +{ + kfree(kobj); +} + static const struct kobj_type secvar_ktype =3D { + .release =3D secvar_release, .sysfs_ops =3D &kobj_sysfs_ops, .default_groups =3D secvar_attr_groups, }; --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931241; cv=none; d=zohomail.com; s=zohoarc; b=SOq5Thi/x5K+bD/LvethExk1aK+wzEXnLN9UNB3XEMx9EYtOHynC7VYZb3RJ3Gk4TQXxhuiZBGiiArtbOmOMbsWUsYUwgUsT5vklxKQQr9mDCeGs69LBKpiWwag9l0X9clF01PdEuQTLQuvH53gOgwVFeEg+zurUBv7OeSkuB4g= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931241; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=4r3hXDLd6Bqk9XmcFR/JS5uHIdkPs2TN+2FSnsngXIE=; b=PYB88Vjj4JMm1jDe2jkVqg/Jj04CtoIA6bBcT50b3qZM5eY3feFmH59wZhnKX4WAlfPobt/10Z73BabFG1a9b1mRAaBx05odxmmmRd4aMoqrDsyqWMFJR0Smb5+neFI1ToWfz9riB98bGTeIcMFUALf4Nu2pdFq0aiPQ9BPrYfI= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931241085938.8282469489877; Tue, 13 Oct 2026 15:40:41 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448331.1664354 (Exim 4.92) (envelope-from ) id 1xGlAV-000789-TO; Tue, 13 Oct 2026 22:40:23 +0000 Received: by outflank-mailman (output) from mailman id 1448331.1664354; Tue, 13 Oct 2026 22:40:23 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAV-000781-QX; Tue, 13 Oct 2026 22:40:23 +0000 Received: by outflank-mailman (input) for mailman id 1448331; Tue, 13 Oct 2026 22:40:22 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3U7POagcKCVI2B80yBC08805y.w86Hy7-xyFy552CDC.Hy79B83ywD.8B0@flex--irogers.bounces.google.com>) id 1xGlAU-00075Q-NB for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:22 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAU-00Egyf-47 for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:22 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3U7POagcKCVI2B80yBC08805y.w86Hy7-xyFy552CDC.Hy79B83ywD.8B0@flex--irogers.bounces.google.com>) id 6aceb34f-2eae-0a2a0a5409dd-0a2a4508863a-6 for ; Wed, 14 Oct 2026 00:40:22 +0200 Received: from [74.125.82.197] (helo=mail-dy1-f197.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3U7POagcKCVI2B80yBC08805y.w86Hy7-xyFy552CDC.Hy79B83ywD.8B0@flex--irogers.bounces.google.com>) id 6aceb354-f659-0a2a45080019-4a7d52c5e4ef-3 for ; Wed, 14 Oct 2026 00:40:21 +0200 Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-35c5aef2a74so1454375eec.0 for ; Tue, 13 Oct 2026 15:40:21 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931220; x=1792536020; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=4r3hXDLd6Bqk9XmcFR/JS5uHIdkPs2TN+2FSnsngXIE=; b=v2BCIsZXqZkc3e2l1NKlbMzOHnzFe1G88P7l7HKXL3KDTEeQftWRY3qe63dnfQMD97 Jg3LFGXvaDFAmSWf1GI/+JIA/c9/cm7ozOwD137EUqVCOvTvISFU0CoBaJP1GLe8YVSo 7r3ZMCuJ3GHfoP1CNONqSU8CZCjxoNUfm5wyajEs6W2ZnCQgSWYb0vDKUY7pIvzfNxRw i1NvxKVKSaitlMKY7MjO1ZJoSDLInDEFXMOFzHLOUBbFcw0prtUL3OCcRHvOrzVlvsva +fXeYwQ9DVfg0q+tr5yiv2dHwbcryE5KlZq5LjXaEbIgJR7TDvzXsrihvPKE6jzFInLo 1kkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931220; x=1792536020; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=4r3hXDLd6Bqk9XmcFR/JS5uHIdkPs2TN+2FSnsngXIE=; b=Y/i6o1SrLfOpWWHkGOgoQgOCwXjHm7bcTd2QRYlniTdiQHsj9/xLnWTg3+5wIAZNbg PLhVaG4rEBA4HqPmlxAniIMdni7Kx3ygUyGZyeuKdYR7KhS3yIAJzbr1C+U3aA5zjyaJ kT6g5RaPOeu9O6MZLM2IRVH1EV9UnSOCw4kTUc4i/zjRQGpECmRGB0wTc2ju168BUV4D dkGKIAgvByI8KHj+qdopKlWr2bVhmanG5Yg1shtHm8D+JKl2JUNxJWm6a5PAzYWesgc1 0BRT+A0kfzjq55dtmM1+1SlYbX/cFZvoHinSqacRTguhIbtUM0XIC0lPRjkNMKhAwtie QPHw== X-Forwarded-Encrypted: i=1; AKwUvBxeIS9i68ku7ymrzMmrGuBp+CKUI5HzMlJZA304zgQDwvsaP0k85VzLWcDkPbZb4X+rjCuX8rd7DtQ=@lists.xenproject.org X-Gm-Message-State: AFq9FYIt5EMTF94E8MI/MsGyk0oWzWv+Y+06mufzFn0cmtFYuClrJBUs 8urQt1TeR/hZ9scQZ7nA/4305DXQpVTswe6gyR3+GPTSAnKbYCmiNK25LdNhQ1Xj5UsoGZa0sb8 63gcFxsgs1g== X-Received: from dyu6.prod.google.com ([2002:a05:693c:8106:b0:352:94e:a8c9]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:71a8:b0:358:f717:ff61 with SMTP id 5a478bee46e88-358f717ff90mr13337962eec.6.1791931219210; Tue, 13 Oct 2026 15:40:19 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:38 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-4-irogers@google.com> Subject: [PATCH 03/11] sh: sq: Add missing kobject release callback to ktype_percpu_entry From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-c1860d/1791931221-D6D4087B-A52753D5/0/0 X-purgate-type: clean X-purgate-size: 1096 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931243085158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" In sq_dev_add(), sq_kobject[cpu] is dynamically allocated with kzalloc_obj() and initialized with ktype_percpu_entry. When sq_dev_remove() calls kobject_put(kobj), the kobject is never freed because ktype_percpu_entry lacks a .release callback. Provide a sq_kobj_release() callback that calls kfree(kobj). Fixes: d7c30c682a27 ("sh: Store Queue API rework.") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- arch/sh/kernel/cpu/sh4/sq.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/sh/kernel/cpu/sh4/sq.c b/arch/sh/kernel/cpu/sh4/sq.c index 908a8e09113b..f33864958487 100644 --- a/arch/sh/kernel/cpu/sh4/sq.c +++ b/arch/sh/kernel/cpu/sh4/sq.c @@ -331,7 +331,13 @@ static const struct sysfs_ops sq_sysfs_ops =3D { .store =3D sq_sysfs_store, }; =20 +static void sq_kobj_release(struct kobject *kobj) +{ + kfree(kobj); +} + static struct kobj_type ktype_percpu_entry =3D { + .release =3D sq_kobj_release, .sysfs_ops =3D &sq_sysfs_ops, .default_groups =3D sq_sysfs_groups, }; --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931357; cv=none; d=zohomail.com; s=zohoarc; b=PTIfhsjpC7MF1LAR/N019nC0qx246PuOMMM1qq5HymSOlDw+NTTVZuPxX/YSXHXx5fmGOp70HnSECwXsPz+P/Dg4FAm24qHNr3Q03bRLqT6ZOL9Zm3S4p+luavfSFBY2+5PMApxKyxvqtyGb8d9RyWZcCajEqoIQQvlv8Rv5qC4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931357; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=qCnJ2cyf9mW8BNAz5Pcwsubr4iCDZba2S/P+mHJ/PnA=; b=ns9n+dpfOYsu7eNhwPY9RpxEH1+P+cDHv4wsC52o03YWoJUmRSVmoXEC2mfHr+75d8xOicc7wq8H/bi6QG/fL7mSlIzb1oJQHr7Ctqrwu7BKfIDOhgZafES8AtiaVq5e2Aq2FGPLxUaDiiurNLgQOvDmvrvTRR0uTV8ZSgsZlGQ= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 17919313576231016.1218818852549; Tue, 13 Oct 2026 15:42:37 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448360.1664391 (Exim 4.92) (envelope-from ) id 1xGlCU-0001Lk-61; Tue, 13 Oct 2026 22:42:26 +0000 Received: by outflank-mailman (output) from mailman id 1448360.1664391; Tue, 13 Oct 2026 22:42:26 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlCU-0001Ld-3B; Tue, 13 Oct 2026 22:42:26 +0000 Received: by outflank-mailman (input) for mailman id 1448360; Tue, 13 Oct 2026 22:42:25 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3VbPOagcKCVQ4DA20DE2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--irogers.bounces.google.com>) id 1xGlCT-0001LU-6n for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:42:25 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlCS-00GmGX-GR for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:42:24 +0200 Received: from [10.42.69.2] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3VbPOagcKCVQ4DA20DE2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--irogers.bounces.google.com>) id 6aceb3a0-bab6-0a2a0a5309dd-0a2a450294c8-28 for ; Wed, 14 Oct 2026 00:42:24 +0200 Received: from [74.125.82.200] (helo=mail-dy1-f200.google.com) by tlsNG-720697.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3VbPOagcKCVQ4DA20DE2AA270.yA8J09-z0H0774EFE.J09BDA50yF.AD2@flex--irogers.bounces.google.com>) id 6aceb356-6ca4-0a2a45020019-4a7d52c8cd33-3 for ; Wed, 14 Oct 2026 00:40:24 +0200 Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-35d4538fd74so1600997eec.1 for ; Tue, 13 Oct 2026 15:40:23 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931222; x=1792536022; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=qCnJ2cyf9mW8BNAz5Pcwsubr4iCDZba2S/P+mHJ/PnA=; b=vxc8wDk2AAiRnpHb/BA4v1H9q1W7PT0vplt5rDBjmuY7tGPDW6WVbAwQE8O8iIXDZ6 ac7UqD7gSxswO0jMit0Exz+17VJTOp5Q8/BeNFdQX3WaMVL6C7VFBaUtZ3AhvjIfGebN 7+gWylfY3EGkvK7Ry2E1ZS6eOrOb/5kpuhoOwO09LXxQc4SAK0HNuh4UNpf3aRLEHdoK IBtVAFiaWmTQgSaOUfMh5Ir/Syl+GdWCH2njz3hmQe9zgiAUoiwE7seepFiXL22f9d0J U5YeYqGjOlijXrT5m4dsX+VlWPgkRSsBPPtFlE6568DAULT/N2EJG17FEWpheEJeaX5P OiNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931222; x=1792536022; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=qCnJ2cyf9mW8BNAz5Pcwsubr4iCDZba2S/P+mHJ/PnA=; b=wLlXk2ZiKwJ4JOEA+/8AG5f4HKZnMv4MMtBwUlvruQAJpaBPlvzEel6Wuu14lQFBnw P02RfKWwKGx9k0ALHe6ydPgEM41o1nYWDwLsj3zAfugjjpUP4cgNqXia768p6UolReGX +7NkZxLEEbGftoihMz5TbRKwsOWJJyKtaWj066OluTKty6tntB7rd/ZxuLv5bCwrMeMf ztAHsf6KHUF8WDGGTzDunQLeHk5msGp8DnOfYrUBAwoglzYcvrs0JwELpE0OAM1T/ych Kr/IZFpGylE5W9kAbEz5VXALeOjdWKPMT4Lf0g36xmrLwF85KEALS3xnXgk/pei3Il7g sp/Q== X-Forwarded-Encrypted: i=1; AKwUvBzKQQxv9YmxTbn5EhZImF4lkYW4BeXBcNoDP6yekz6acLzpasj43PSu7/VZBS7IY0UfomawVRTq620=@lists.xenproject.org X-Gm-Message-State: AFq9FYKxZwAwdA88r8qUWYvzFYcbTjreWpELu3GOXpSs3pKisy1uxeHv mtohlmQEpXFtbSn5YZLoK15wuDoa8wOFsQXWs2Nz87T+dCgjWzWsFZ05VashzgrxB2zOjnLzpsG pzQDQmv6RjA== X-Received: from dybsc14.prod.google.com ([2002:a05:7301:4b0e:b0:351:7270:d79a]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:f60a:b0:359:2edc:e1d8 with SMTP id 5a478bee46e88-3592edcf44bmr18703370eec.5.1791931221247; Tue, 13 Oct 2026 15:40:21 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:39 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-5-irogers@google.com> Subject: [PATCH 04/11] cpufreq: Initialize kobj_type release callback in ondemand and conservative governors From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-720697/1791931224-F32B12AC-4502ED77/0/0 X-purgate-type: clean X-purgate-size: 3423 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931359370158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Export cpufreq_dbs_data_release() and set .kobj_type.release in the ondemand and conservative governors so their gov_attr_set kobjects have a valid release callback, matching cpufreq_ governor_dbs. This prepares for annotating struct kobj_type::release with __require_explicit_initialization. Fixes: c4435630361d ("cpufreq: governor: New sysfs show/store callbacks for= governor tunables") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- drivers/cpufreq/cpufreq_conservative.c | 5 ++++- drivers/cpufreq/cpufreq_governor.c | 3 ++- drivers/cpufreq/cpufreq_governor.h | 1 + drivers/cpufreq/cpufreq_ondemand.c | 5 ++++- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/drivers/cpufreq/cpufreq_conservative.c b/drivers/cpufreq/cpufr= eq_conservative.c index 0b32ae28ec85..38c3bd5bf75a 100644 --- a/drivers/cpufreq/cpufreq_conservative.c +++ b/drivers/cpufreq/cpufreq_conservative.c @@ -316,7 +316,10 @@ static void cs_limits(struct cpufreq_policy *policy) =20 static struct dbs_governor cs_governor =3D { .gov =3D CPUFREQ_DBS_GOVERNOR_INITIALIZER("conservative"), - .kobj_type =3D { .default_groups =3D cs_groups }, + .kobj_type =3D { + .release =3D cpufreq_dbs_data_release, + .default_groups =3D cs_groups, + }, .gov_dbs_update =3D cs_dbs_update, .alloc =3D cs_alloc, .free =3D cs_free, diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_g= overnor.c index 710d93ec89b5..97b64985927d 100644 --- a/drivers/cpufreq/cpufreq_governor.c +++ b/drivers/cpufreq/cpufreq_governor.c @@ -404,7 +404,7 @@ static void free_policy_dbs_info(struct policy_dbs_info= *policy_dbs, gov->free(policy_dbs); } =20 -static void cpufreq_dbs_data_release(struct kobject *kobj) +void cpufreq_dbs_data_release(struct kobject *kobj) { struct dbs_data *dbs_data =3D to_dbs_data(to_gov_attr_set(kobj)); struct dbs_governor *gov =3D dbs_data->gov; @@ -412,6 +412,7 @@ static void cpufreq_dbs_data_release(struct kobject *ko= bj) gov->exit(dbs_data); kfree(dbs_data); } +EXPORT_SYMBOL_GPL(cpufreq_dbs_data_release); =20 int cpufreq_dbs_governor_init(struct cpufreq_policy *policy) { diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_g= overnor.h index 73b8ed7cfaae..c03d067f42eb 100644 --- a/drivers/cpufreq/cpufreq_governor.h +++ b/drivers/cpufreq/cpufreq_governor.h @@ -148,6 +148,7 @@ static inline struct dbs_governor *dbs_governor_of(stru= ct cpufreq_policy *policy } =20 /* Governor callback routines */ +void cpufreq_dbs_data_release(struct kobject *kobj); int cpufreq_dbs_governor_init(struct cpufreq_policy *policy); void cpufreq_dbs_governor_exit(struct cpufreq_policy *policy); int cpufreq_dbs_governor_start(struct cpufreq_policy *policy); diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_o= ndemand.c index 9942dbb38dae..7386d043c665 100644 --- a/drivers/cpufreq/cpufreq_ondemand.c +++ b/drivers/cpufreq/cpufreq_ondemand.c @@ -374,7 +374,10 @@ static struct od_ops od_ops =3D { =20 static struct dbs_governor od_dbs_gov =3D { .gov =3D CPUFREQ_DBS_GOVERNOR_INITIALIZER("ondemand"), - .kobj_type =3D { .default_groups =3D od_groups }, + .kobj_type =3D { + .release =3D cpufreq_dbs_data_release, + .default_groups =3D od_groups, + }, .gov_dbs_update =3D od_dbs_update, .alloc =3D od_alloc, .free =3D od_free, --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931545; cv=none; d=zohomail.com; s=zohoarc; b=GUtmYlBp1wX9CnWJlVMgMFpzo5KLxgTsRooGn+uKaEJfFBqFtQ7DwU5Dwhf1S44dZLXuX/dMhcgMW0VjhXf/3H9GlqYBpLAm27HkHzY+IM6mJlqjIqNLG3+JsoRNqiHHJXwYSRYJQdICDiEVfR+mX7nKbGFSP2Sxo8CSGVZrE80= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931545; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=wbjJdHqZPRkvVZnH2yPkFa6V1wQ6/MdT39yYoogCQX4=; b=KZnGUvtUkPxqLNgCXdQZJP9F3pQmCVp3NKyqsC3NAhAwSZwa7NBUb6mSUmTsLpz66NCgAsR9SiQJ7KqL5cZyqsMMFX0symQkeLyEQzJqBESjBQ5KE2NpGoBFfMEpHFmz8YLLLseRjemf9AmhRzpBn+eAFYlnUfoPT/3qyxpvwpE= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931545438845.9151457796086; Tue, 13 Oct 2026 15:45:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448380.1664417 (Exim 4.92) (envelope-from ) id 1xGlFS-0002zK-2n; Tue, 13 Oct 2026 22:45:30 +0000 Received: by outflank-mailman (output) from mailman id 1448380.1664417; Tue, 13 Oct 2026 22:45:30 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlFR-0002zD-W3; Tue, 13 Oct 2026 22:45:29 +0000 Received: by outflank-mailman (input) for mailman id 1448380; Tue, 13 Oct 2026 22:45:28 +0000 Received: from mx.expurgate.net ([195.190.135.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3V7POagcKCVY6FC42FG4CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--irogers.bounces.google.com>) id 1xGlFQ-0002yv-H0 for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:45:28 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlFP-00EJzO-JP for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:45:27 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3V7POagcKCVY6FC42FG4CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--irogers.bounces.google.com>) id 6aceb42c-2eae-0a2a0a5409dd-0a2a450c859e-48 for ; Wed, 14 Oct 2026 00:45:27 +0200 Received: from [74.125.82.200] (helo=mail-dy1-f200.google.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3V7POagcKCVY6FC42FG4CC492.0CAL2B-12J2996GHG.L2BDFC720H.CF4@flex--irogers.bounces.google.com>) id 6aceb359-f479-0a2a450c0019-4a7d52c8bc93-3 for ; Wed, 14 Oct 2026 00:40:26 +0200 Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-30bcb065bfdso6716197eec.0 for ; Tue, 13 Oct 2026 15:40:26 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931225; x=1792536025; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=wbjJdHqZPRkvVZnH2yPkFa6V1wQ6/MdT39yYoogCQX4=; b=SmS32V5OWk4jGARU3BEnixrfw5uMJpcDHtjupdonA4HcAja2tq7SNQm3E9w1Sn27Yi gORg7K3yP+UOGbCopymG/cIJzSmAD0EuN53Zp71TrhOf0zj1c0C9pb8hA3izi0sP7URm l8OTrGmT+RGGwji9AnbnIkWw0hIaN8xHobamGJJNt2D3ysr95ma5YddyjxbNOTwCZMm2 wWgFHqtNqj+e1QnlWv7eZZ50zfzflDyM4JIbL/XI/fWngHf2qhbhgto3CvYh3TiEqJPa 6Tuc7JA8T7DdCym4u81jjAcM0Ukxb7kCWan69sNHg1XMrcqZiDNBcEbZfC/r5EXaszl7 6kEA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931225; x=1792536025; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=wbjJdHqZPRkvVZnH2yPkFa6V1wQ6/MdT39yYoogCQX4=; b=Be8NFsdX3h7uWapkrBR/bSzurIqeY2XaIruahMCPxA5N9hbEXdAXlwUx1p5DaJDFXB RPSmLU4zndbW3mNEgCMEWs1t1wHuKAsyKk20DjORGckfBlNzczBUEWqwi6Hths/nvK9P /8AxgFImaDhzdnjBbactY8G/rvaNvbv7a4TB29NTaO1E6yzw3Ni2dfJw/lpK2E/cg/Mo pAGNIkVe/0NDH0a+HfBmqEx8/xPV4DBA6rLSqTa8XHBmRwtbkibvIoR1qO/TdWPMQ1Ov X0p+sRseRXzig9CrRpgDtX5um6y540ijPtbnOn2jsiek+0z8emDJMSFD4TGeCseELnzB cXUg== X-Forwarded-Encrypted: i=1; AKwUvBxPJp45cYCm9qSMKBQog5g/ucSv6ANqUCKlwgVi2iNYRGvQUge4K7tA4xy90IA3UhtYD+hA2blGtwM=@lists.xenproject.org X-Gm-Message-State: AFq9FYJiDCSyVsURYDr2P4DT+yr6O1rVA7fuPTSdEjSeWhqwxoXfo6pm OqhFTjDVvHmiGwa8FP3i0fhrFJJhQ4FGyj4DjugYUJfKjmJpDVNnt1eeAphPesSa79KNb5+4C1/ FuN+IVcViYg== X-Received: from dyr27.prod.google.com ([2002:a05:693c:401b:b0:359:e5f1:14fb]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:470e:b0:35c:73ca:a1e0 with SMTP id 5a478bee46e88-35c73caae65mr4317399eec.15.1791931223446; Tue, 13 Oct 2026 15:40:23 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:40 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-6-irogers@google.com> Subject: [PATCH 05/11] ACPI: CPPC: Free cpc_desc in kobject release callback From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-d25034/1791931227-772D8A5B-4B46A7DF/13/0 X-purgate-type: clean X-purgate-size: 3453 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931546777158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" cpc_desc_ptr embeds a struct kobject that is registered in sysfs via kobject_init_and_add(), but cppc_ktype lacked a .release callback and acpi_cppc_processor_exit() freed cpc_ptr immediately after kobject_put(). With CONFIG_DEBUG_KOBJECT_RELEASE=3Dy, this causes a use-after-free when kobject_delayed_cleanup() runs on freed memory. Move the sys_mem_vaddr unmapping and kfree(cpc_ptr) into a new cppc_release() callback on cppc_ktype, and initialize the kobject on allocation so kobject_put() handles cleanup in all paths. Fixes: 158c998ea44b ("ACPI / CPPC: add sysfs support to compute delivered p= erformance") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- drivers/acpi/cppc_acpi.c | 39 ++++++++++++++++++--------------------- 1 file changed, 18 insertions(+), 21 deletions(-) diff --git a/drivers/acpi/cppc_acpi.c b/drivers/acpi/cppc_acpi.c index fef54fcd00b7..2a80404f85d3 100644 --- a/drivers/acpi/cppc_acpi.c +++ b/drivers/acpi/cppc_acpi.c @@ -297,7 +297,22 @@ static struct attribute *cppc_attrs[] =3D { }; ATTRIBUTE_GROUPS(cppc); =20 +static void cppc_release(struct kobject *kobj) +{ + struct cpc_desc *cpc_ptr =3D to_cpc_desc(kobj); + unsigned int i; + + for (i =3D 2; i < cpc_ptr->num_entries; i++) { + void __iomem *addr =3D cpc_ptr->cpc_regs[i - 2].sys_mem_vaddr; + + if (addr) + iounmap(addr); + } + kfree(cpc_ptr); +} + static const struct kobj_type cppc_ktype =3D { + .release =3D cppc_release, .sysfs_ops =3D &kobj_sysfs_ops, .default_groups =3D cppc_groups, }; @@ -799,6 +814,7 @@ int acpi_cppc_processor_probe(struct acpi_processor *pr) ret =3D -ENOMEM; goto out_buf_free; } + kobject_init(&cpc_ptr->kobj, &cppc_ktype); =20 /* First entry is NumEntries. */ cpc_obj =3D &out_obj->package.elements[0]; @@ -1001,11 +1017,9 @@ int acpi_cppc_processor_probe(struct acpi_processor = *pr) /* Plug PSD data into this CPU's CPC descriptor. */ per_cpu(cpc_desc_ptr, pr->id) =3D cpc_ptr; =20 - ret =3D kobject_init_and_add(&cpc_ptr->kobj, &cppc_ktype, &cpu_dev->kobj, - "acpi_cppc"); + ret =3D kobject_add(&cpc_ptr->kobj, &cpu_dev->kobj, "acpi_cppc"); if (ret) { per_cpu(cpc_desc_ptr, pr->id) =3D NULL; - kobject_put(&cpc_ptr->kobj); goto out_free; } =20 @@ -1013,14 +1027,7 @@ int acpi_cppc_processor_probe(struct acpi_processor = *pr) return 0; =20 out_free: - /* Free all the mapped sys mem areas for this CPU */ - for (i =3D 2; i < cpc_ptr->num_entries; i++) { - void __iomem *addr =3D cpc_ptr->cpc_regs[i-2].sys_mem_vaddr; - - if (addr) - iounmap(addr); - } - kfree(cpc_ptr); + kobject_put(&cpc_ptr->kobj); =20 out_buf_free: kfree(output.pointer); @@ -1037,8 +1044,6 @@ EXPORT_SYMBOL_GPL(acpi_cppc_processor_probe); void acpi_cppc_processor_exit(struct acpi_processor *pr) { struct cpc_desc *cpc_ptr; - unsigned int i; - void __iomem *addr; int pcc_ss_id =3D per_cpu(cpu_pcc_subspace_idx, pr->id); =20 if (pcc_ss_id >=3D 0 && pcc_data[pcc_ss_id]) { @@ -1056,15 +1061,7 @@ void acpi_cppc_processor_exit(struct acpi_processor = *pr) if (!cpc_ptr) return; =20 - /* Free all the mapped sys mem areas for this CPU */ - for (i =3D 2; i < cpc_ptr->num_entries; i++) { - addr =3D cpc_ptr->cpc_regs[i-2].sys_mem_vaddr; - if (addr) - iounmap(addr); - } - kobject_put(&cpc_ptr->kobj); - kfree(cpc_ptr); } EXPORT_SYMBOL_GPL(acpi_cppc_processor_exit); =20 --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931485; cv=none; d=zohomail.com; s=zohoarc; b=SeFX3NPak95DnKi30szeEK0RMsYtzMCvAnEAlwo4GjTgIus9i+29TTwM+uNeW4huy7sAiQ09A9d1EE625LQOB5cMw1J7EpkeS7oufIQttqSby30dJiK5z8MgFfpsy4jVu8aJa0r4USIvyotXl2YcMZKU4kiR2Z0MEkON5BOT+uQ= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931485; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=zqg4bcg4yTM1CSL1NV7gzxaOXxYgsDcagY96onRKZWw=; b=cf26cLHKHpYIXxEdET2Iq0DPBzpnIZT0FRjD/tUoSFCjSZ/Cj9TDN31lob0PHzOjbA1DG2ydAngGp8wG2h8fzQHt/pziQIig3rc8EiWye/i/NbDgdrN8Digg9W1BQxhUG+CPYvQ/1sVaLYY9jcKfUPu3HhUp1cNJaZPO5btpfJs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931485312567.5086753282036; Tue, 13 Oct 2026 15:44:45 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448371.1664401 (Exim 4.92) (envelope-from ) id 1xGlEV-00020R-IF; Tue, 13 Oct 2026 22:44:31 +0000 Received: by outflank-mailman (output) from mailman id 1448371.1664401; Tue, 13 Oct 2026 22:44:31 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlEV-00020K-E9; Tue, 13 Oct 2026 22:44:31 +0000 Received: by outflank-mailman (input) for mailman id 1448371; Tue, 13 Oct 2026 22:44:30 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3WrPOagcKCVk9IF75IJ7FF7C5.3FDO5E-45M5CC9JKJ.O5EGIFA53K.FI7@flex--irogers.bounces.google.com>) id 1xGlEU-00020D-Jz for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:44:30 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlEU-00A5rG-0n for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:44:30 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3WrPOagcKCVk9IF75IJ7FF7C5.3FDO5E-45M5CC9JKJ.O5EGIFA53K.FI7@flex--irogers.bounces.google.com>) id 6aceb441-e002-0a2a0a5209dd-0a2a45088676-14 for ; Wed, 14 Oct 2026 00:44:30 +0200 Received: from [74.125.82.70] (helo=mail-dl1-f70.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3WrPOagcKCVk9IF75IJ7FF7C5.3FDO5E-45M5CC9JKJ.O5EGIFA53K.FI7@flex--irogers.bounces.google.com>) id 6aceb35b-f659-0a2a45080019-4a7d5246b457-3 for ; Wed, 14 Oct 2026 00:40:29 +0200 Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1665200f4c2so4837740c88.0 for ; Tue, 13 Oct 2026 15:40:28 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931227; x=1792536027; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=zqg4bcg4yTM1CSL1NV7gzxaOXxYgsDcagY96onRKZWw=; b=ms5bfVUokn/E9shSpIVEquBlyHDO3H6U557K4fDoPMX/Y41ASH4zgjhqt2MXom7goS UpQoOXtIEz9Kv/BMVzxIBBJ9bgwRSTSn+bge2L4i5zLWSSm1SE7L6zb64/iGchM1f8cV OwmaMM/aKfz5P48uHEw5TWgpCEU4GhOCCHJ2AxH2Ro+3owFGIBNjCOooiwdZ9mCQ9O+i bN8XFf+V6VwslGZ7AYaWJzjRRSch3osrdCHgZQw58Lc/0SqwBdiXd7XaFDWKjFEghqfx barHaAIrpMSPn3jUMBmfNk3ve1zvZtNgYEHza1Xx1FWqkhSAkOQRNNgse5rKjKJjAXBI s0FA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931227; x=1792536027; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=zqg4bcg4yTM1CSL1NV7gzxaOXxYgsDcagY96onRKZWw=; b=tQ/AHJ+X1JmodoU3R3CU9RN3qEt7SpBy5M33D4hX8JNQ813cq8cYstkD2Z+n6FEzA8 ghzwsaOy7HhIi+AytAfpFOCIfnmdbow4IG19c+1DnFL43wQ53Zg+3LD7dapJzoOikFQM h9RAH7y3ECMPiNoz+CPGb4bl3dEJp7GKIMnaJ4A6MxwWd35A2IOaWd8EhOMY5poNYVZf 6YqKUBa5An8Wo0WrhO+BhLwWRCRFGdfVJAu8MImIVX+t9AekAHlf4/ffNRXzFaMOkZuH WRHFSLQUeIsKTA50AmS7V+BUwFLNyODa0F8LIerbtA7tJjwI1l5N0JTf8wnECo0PRr0/ smaA== X-Forwarded-Encrypted: i=1; AKwUvByxGH8I8rjXLOwXPH5kLPJIOY68jSM34PLtQ1pZxPDyuEuIaOeBMYKf5xNcHx7lhmTO5E8CGK6nQKE=@lists.xenproject.org X-Gm-Message-State: AFq9FYJX5zMTNLYyt3SukTQkWm8MqWWVFEiakeDuWH3At2p8uQEBo6+R yTyJlRkkVeN0k1NYUb+k7ZV6e4pTSaH6zvD4SPVxXvyaxIgfk3Y7VPYsqmjHA8Sys5zIC/3iZzS VjG73zdynTg== X-Received: from dldyq19-n1.prod.google.com ([2002:a05:701b:4553:10b0:164:47f8:a96a]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:701b:4286:10b0:144:c128:4c4b with SMTP id a92af1059eb24-16a5e49c474mr18578865c88.36.1791931226644; Tue, 13 Oct 2026 15:40:26 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:41 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-7-irogers@google.com> Subject: [PATCH 06/11] dlm: Free dlm_ls in kobject release callback From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-c1860d/1791931229-D437587B-6D81C9D5/0/0 X-purgate-type: clean X-purgate-size: 2861 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931485586158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" struct dlm_ls embeds a struct kobject (ls_kobj), but dlm_ktype lacked a .release callback and dlm freed the lockspace structure directly via kfree(ls). With CONFIG_DEBUG_KOBJECT_RELEASE=3Dy, freeing ls before the kobject release runs causes a use-after-free. Add dlm_ls_release() to free struct dlm_ls when the last reference to ls_kobj is dropped, use kobject_del() in release_lockspace(), and drop the final kobject reference in free_lockspace(). Fixes: 3514faca19a6 ("kobject: remove struct kobj_type from struct kset") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- fs/dlm/lockspace.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/fs/dlm/lockspace.c b/fs/dlm/lockspace.c index a9c98b4f378f..1d226b27d8e6 100644 --- a/fs/dlm/lockspace.c +++ b/fs/dlm/lockspace.c @@ -179,7 +179,15 @@ static const struct sysfs_ops dlm_attr_ops =3D { .store =3D dlm_attr_store, }; =20 +static void dlm_ls_release(struct kobject *kobj) +{ + struct dlm_ls *ls =3D container_of(kobj, struct dlm_ls, ls_kobj); + + kfree(ls); +} + static struct kobj_type dlm_ktype =3D { + .release =3D dlm_ls_release, .default_groups =3D dlm_groups, .sysfs_ops =3D &dlm_attr_ops, }; @@ -355,7 +363,7 @@ static void free_lockspace(struct work_struct *work) */ rhashtable_free_and_destroy(&ls->ls_rsbtbl, rhash_free_rsb, NULL); =20 - kfree(ls); + kobject_put(&ls->ls_kobj); } =20 static int new_lockspace(const char *name, const char *cluster, @@ -436,6 +444,8 @@ static int new_lockspace(const char *name, const char *= cluster, atomic_set(&ls->ls_count, 0); init_waitqueue_head(&ls->ls_count_wait); ls->ls_flags =3D 0; + ls->ls_kobj.kset =3D dlm_kset; + kobject_init(&ls->ls_kobj, &dlm_ktype); =20 if (ops && dlm_config.ci_recover_callbacks) { ls->ls_ops =3D ops; @@ -567,9 +577,7 @@ static int new_lockspace(const char *name, const char *= cluster, wait_event(ls->ls_recover_lock_wait, test_bit(LSFL_RECOVER_LOCK, &ls->ls_flags)); =20 - ls->ls_kobj.kset =3D dlm_kset; - error =3D kobject_init_and_add(&ls->ls_kobj, &dlm_ktype, NULL, - "%s", ls->ls_name); + error =3D kobject_add(&ls->ls_kobj, NULL, "%s", ls->ls_name); if (error) goto out_recoverd; kobject_uevent(&ls->ls_kobj, KOBJ_ADD); @@ -615,7 +623,6 @@ static int new_lockspace(const char *name, const char *= cluster, rhashtable_destroy(&ls->ls_rsbtbl); out_lsfree: kobject_put(&ls->ls_kobj); - kfree(ls); out: module_put(THIS_MODULE); return error; @@ -759,7 +766,7 @@ static int release_lockspace(struct dlm_ls *ls, unsigne= d int release_option) =20 dlm_delete_debug_file(ls); =20 - kobject_put(&ls->ls_kobj); + kobject_del(&ls->ls_kobj); =20 xa_destroy(&ls->ls_recover_xa); kfree(ls->ls_recover_buf); --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931546; cv=none; d=zohomail.com; s=zohoarc; b=fpaVGsOtlF3vg8FR65E/XjIBWlLknbuynSfdCmTspOn6CEQ6vsdp2CoQ7SYNp3Dkiz765R5uGKBUZem/z9x4raQfkgtzEflYShFQt1xT9IV4Ux7wcCvO4UxScpkpuiMJhbCBo0qFkGM9tp5Uu0xiZnQQUBDIpjq+pQivoYGlIkA= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931546; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=SzuEQJa4uF6wSn0s7ZpxNvjcEHFt9KB4NkbiARikmlQ=; b=flLTrvPZva3nv7B8BytB/pbQR6r4tSpo+lCgk8a3dWqveFY3rlxm8KVxjpzGFZz5Gx9EWXFknU+GYvANoePvjmw+8V0/cBR/U0aamp9cb9tIFix+ZCneu/X1Eiz0dpxNVOUmPNK3T6R6qZ1C4oiQfYMdXA1kHqpuZsZBtfPlcw0= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931546428361.69209216945717; Tue, 13 Oct 2026 15:45:46 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448381.1664428 (Exim 4.92) (envelope-from ) id 1xGlFW-0003DZ-Bi; Tue, 13 Oct 2026 22:45:34 +0000 Received: by outflank-mailman (output) from mailman id 1448381.1664428; Tue, 13 Oct 2026 22:45:34 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlFW-0003DS-73; Tue, 13 Oct 2026 22:45:34 +0000 Received: by outflank-mailman (input) for mailman id 1448381; Tue, 13 Oct 2026 22:45:32 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3XLPOagcKCVsBKH97KL9HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--irogers.bounces.google.com>) id 1xGlFU-0003CO-QL for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:45:32 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlFU-00Gmem-5K for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:45:32 +0200 Received: from [10.42.69.12] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3XLPOagcKCVsBKH97KL9HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--irogers.bounces.google.com>) id 6aceb48c-bab6-0a2a0a5309dd-0a2a450cdc52-0 for ; Wed, 14 Oct 2026 00:45:32 +0200 Received: from [74.125.82.197] (helo=mail-dy1-f197.google.com) by tlsNG-d25034.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3XLPOagcKCVsBKH97KL9HH9E7.5HFQ7G-67O7EEBLML.Q7GIKHC75M.HK9@flex--irogers.bounces.google.com>) id 6aceb35e-f479-0a2a450c0019-4a7d52c5ccc8-3 for ; Wed, 14 Oct 2026 00:40:31 +0200 Received: by mail-dy1-f197.google.com with SMTP id 5a478bee46e88-3580c07911eso9020099eec.0 for ; Tue, 13 Oct 2026 15:40:31 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931229; x=1792536029; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=SzuEQJa4uF6wSn0s7ZpxNvjcEHFt9KB4NkbiARikmlQ=; b=FzkhHr/FJ1gI/lJccZ4WlqGOBNhVB+JzECBpvhgYLDSw8O1fErtS0a7gULcVQAjmA/ kc56ThccM6WrMMyViXcXz/teDGtJfBK4Q5FuTePJrYnmsxOR1jVlEuxMDVl30a6UnhlS o3zYa92V3c4ZaHp/xdY+9vwk82TrcHQj7uZ9IvISPL5hL9rfCsBkLIAWFyQl9yPXSAKZ 35ur5vd7x0FX8Z7RYFqcEMbMdU83ssyv+70JwFyV2yWnKvvzziA/wRGHyEmqSMTJPDUr k6AhFdEHSMbKC9pwKKImM6RgWzjC6V2MkuOczq9bkOVhs5R0RaucjOC/Vn7hMoqNtv94 E84w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931229; x=1792536029; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=SzuEQJa4uF6wSn0s7ZpxNvjcEHFt9KB4NkbiARikmlQ=; b=VncM2+dxgcYmPzP5QVJK/uN/VnJNjD2fSBX6awWsBjLeiFvSbKYD/6N312s9fI0b+R z68pMw38bOnqLiBc4LQwB2x9ou/cTeINuYoni/HFkZc4+RJqpXH/64XfLbpl0060uvEy rPZsofzWCqz5+rmmRzYVHqwEVfv32hxJSrm2ka/3U9efH+fAJuk/KOGAQ2TsedZvW0ZB UZcF2yoohIG3GLhbXsQkIwfovY6iZ+NXq8mtZCdJJEkoaUu7ZVP+aAAssAeFa1Se6IWD se4mtKdcKz1xBvSIZGKNPvR5niuOF/LrR5xSAXQc5cD6MHKlZjj6/v1d7KcjdUfzbKEq EDkg== X-Forwarded-Encrypted: i=1; AKwUvBzVMDJx3uWxp04n5ov8R5oFkEaZtSacHaCaHzvww9ANcNG+5m2hLRLJ3PK/hySGIbP2xLCTmp19GTg=@lists.xenproject.org X-Gm-Message-State: AFq9FYKfuXQtr2GgHXHbUV6myCbq5TfvMpFIOKDLgOhWxFwWIA/Xj41E fiVxAt6HIiThuGs/jKTzudC+UsgmOa7Krcu1SXQo5HwjxwzM/1bALN06dpJHHSQ5thcR6p5Fi+k oF1YTESEHlg== X-Received: from dybmf44.prod.google.com ([2002:a05:7301:92c:b0:358:41fa:f46f]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7300:c8c2:b0:35a:8dad:6724 with SMTP id 5a478bee46e88-35a8dad7ec8mr9213311eec.22.1791931228757; Tue, 13 Oct 2026 15:40:28 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:42 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-8-irogers@google.com> Subject: [PATCH 07/11] xen/sys-hypervisor: Add release callback to hyp_sysfs_kobj_type From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-d25034/1791931231-022C0A5B-ABF9157D/13/0 X-purgate-type: clean X-purgate-size: 1197 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931546756158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" hypervisor_init() in drivers/base/hypervisor.c creates hypervisor_kobj with kobject_create_and_add() (which allocates a dynamic kobject using dynamic_kobj_ktype), and hypervisor_subsys_init() in drivers/xen/sys-hypervisor.c then overwrites hypervisor_kobj->ktype with &hyp_sysfs_kobj_type, which had no .release callback. Add hyp_sysfs_release() calling kfree(kobj) to preserve the dynamic kobject release behavior. Fixes: cff7e81b3dd7 ("xen: add /sys/hypervisor support") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- drivers/xen/sys-hypervisor.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/xen/sys-hypervisor.c b/drivers/xen/sys-hypervisor.c index 91923242a5ae..0e8a2cd69fd6 100644 --- a/drivers/xen/sys-hypervisor.c +++ b/drivers/xen/sys-hypervisor.c @@ -659,7 +659,13 @@ static const struct sysfs_ops hyp_sysfs_ops =3D { .store =3D hyp_sysfs_store, }; =20 +static void hyp_sysfs_release(struct kobject *kobj) +{ + kfree(kobj); +} + static const struct kobj_type hyp_sysfs_kobj_type =3D { + .release =3D hyp_sysfs_release, .sysfs_ops =3D &hyp_sysfs_ops, }; =20 --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931254; cv=none; d=zohomail.com; s=zohoarc; b=fpAc5V4awK9mAvBxTTUnG1BynXJlEARydpHpWm+KOCi6oUIKkuBocdk6IvvbB2Js4Cvwb2n0Hpmn4929kjfec/UxV/2Dbju+iTZLWRytfxs1CONgltKuGulgVgEsnFRNVrOI83XWwwsSyG+qyuiumfr9XVkD/3uFC05t6a1oOmk= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931254; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=E3db36lwsPWQArDIHzP6eqDHTacNJpd6D0FMiQjZlVc=; b=UTrxFMtYUwoz8MLXfbdbwhiXnK2V1Vi26jMh36j+YnmOmkvDe0/x9csawHnLLzhHqdcH9AyVo/lFC2GVbwWCiiDmU5GXg0tFlbf6agUaZYyEJjCCPh0YKohl8IV+CgrEyiGkVHTUvp2HaPXOdrnMvVdaNRkGPcKkLsc2gof8OYU= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931254727506.4925034736176; Tue, 13 Oct 2026 15:40:54 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448336.1664364 (Exim 4.92) (envelope-from ) id 1xGlAh-0007Xm-4K; Tue, 13 Oct 2026 22:40:35 +0000 Received: by outflank-mailman (output) from mailman id 1448336.1664364; Tue, 13 Oct 2026 22:40:35 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAh-0007Xb-19; Tue, 13 Oct 2026 22:40:35 +0000 Received: by outflank-mailman (input) for mailman id 1448336; Tue, 13 Oct 2026 22:40:34 +0000 Received: from mx.expurgate.net ([194.145.224.20]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3XrPOagcKCV0DMJB9MNBJJBG9.7JHS9I-89Q9GGDNON.S9IKMJE97O.JMB@flex--irogers.bounces.google.com>) id 1xGlAg-0007WY-71 for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:34 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAf-00Eh2E-KD for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:33 +0200 Received: from [10.42.69.11] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3XrPOagcKCV0DMJB9MNBJJBG9.7JHS9I-89Q9GGDNON.S9IKMJE97O.JMB@flex--irogers.bounces.google.com>) id 6aceb35a-e002-0a2a0a5209dd-0a2a450bd1da-10 for ; Wed, 14 Oct 2026 00:40:33 +0200 Received: from [74.125.82.200] (helo=mail-dy1-f200.google.com) by tlsNG-42698a.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3XrPOagcKCV0DMJB9MNBJJBG9.7JHS9I-89Q9GGDNON.S9IKMJE97O.JMB@flex--irogers.bounces.google.com>) id 6aceb360-b7e8-0a2a450b0019-4a7d52c8bdd3-3 for ; Wed, 14 Oct 2026 00:40:33 +0200 Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-33c35f5ca6cso7840779eec.1 for ; Tue, 13 Oct 2026 15:40:33 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931231; x=1792536031; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=E3db36lwsPWQArDIHzP6eqDHTacNJpd6D0FMiQjZlVc=; b=kB3ric9bZZKCJLDWJEBGQf40QadbfDOVFWIFp5iKE4kkW8ly1Aq0nfu+FYraj8H/La hpUjkR+UutJ0CXsCHpY9nEgBbrWpcSZZPlb3pNwzebf4I7bwQLMVR+WPbNj1J2nCFF2M GmiSC/y88xDFEZjWXcgbXzaguAWe1kbBGUxWKnlTnUzNk0plOr8WnUYFN1+52ei7lMrD 39RXacg4MorsGHWO1eV4eX9HrXeK2CUxl69goX44xTSmBHJRRj8UFTWLLAH/agaPAxFf 6RKOfCUakn169RZQb5KYm+SsioJIcgHepjDdviDWTuAUiFpZ4jNc3Xlm6Jrf0bMjYAop lGfg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931231; x=1792536031; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=E3db36lwsPWQArDIHzP6eqDHTacNJpd6D0FMiQjZlVc=; b=Vg7ORvOB6aIzR2UrqO3uEfYmfn5a2KHgQCdO+uVWC5aALdF1x9Eev9dTHAFEBMyi3o wZdryshXnPEAiT4mRePM5d3eFNeG8kPYgPrEgniGJLS2GA5W37MUKe9ojRgnwcLtSigW T8t869MwEJmtZQ1Ca2Tn9viH42f8hlpRqU+bjBiMgN1a7D4erLIZ+GbLO2RNPxLlN5AV cHPt8+9jwApjWKRR0eeNzstbjIu4ftvbHBq31TmJVgbjZDewBD+ewltxj26ooZOuBCCT TpXbvQcw3XBkLT682hFjgPuED/S/KE/tJ3XZrdQnBOX4w4HN7cYZ6jCZrWkJq95T9qNR BbxQ== X-Forwarded-Encrypted: i=1; AKwUvBzHEAt94h9uMqtwHL4Dj/KMS+6aPr9DgeSP6GsA7r837xKiYj53inVktvqtskIk2QyunBNBGz+v7uc=@lists.xenproject.org X-Gm-Message-State: AFq9FYJELABkKD8wGLbXDqi2rdSt7s0I+xOP8W4sW3zGJK0cCPGG/ip8 JQ6Ja533injx+3UUVNpzIee50B4tRHAuNNXSSQXiUulY1i5CFTRhYuRbyY3HMjrs0eUZ9tq4lfQ 7z8JUnvl25w== X-Received: from dybmd37.prod.google.com ([2002:a05:7301:1825:b0:351:1da6:c2e7]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7301:78cb:b0:351:515b:4e85 with SMTP id 5a478bee46e88-3537e088bd7mr19706222eec.16.1791931230851; Tue, 13 Oct 2026 15:40:30 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:43 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-9-irogers@google.com> Subject: [PATCH 08/11] s390/sclp_mem: Allocate struct sclp_mem dynamically and add kobject release From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-42698a/1791931233-184CB9EA-E98CBEF7/0/0 X-purgate-type: clean X-purgate-size: 5639 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931255097158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" sclp_init_mem() allocated a single array of struct sclp_mem with kzalloc_objs() and registered each embedded kobject using a kobj_type without a .release callback. Allocate each struct sclp_mem individually with kzalloc_obj() instead and add sclp_mem_release() to free it. Fixes: ff18dcb19aab ("s390/sclp: Add support for dynamic (de)configuration = of memory") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- drivers/s390/char/sclp_mem.c | 73 +++++++++++++++++------------------- 1 file changed, 34 insertions(+), 39 deletions(-) diff --git a/drivers/s390/char/sclp_mem.c b/drivers/s390/char/sclp_mem.c index 6df1926d4c62..f7c161e0d836 100644 --- a/drivers/s390/char/sclp_mem.c +++ b/drivers/s390/char/sclp_mem.c @@ -49,11 +49,6 @@ struct sclp_mem { #endif }; =20 -struct sclp_mem_arg { - struct sclp_mem *sclp_mems; - struct kset *kset; -}; - struct assign_storage_sccb { struct sccb_header header; u16 rn; @@ -304,7 +299,15 @@ static ssize_t sclp_memmap_on_memory_store(struct kobj= ect *kobj, struct kobj_att return rc ? rc : count; } =20 +static void sclp_mem_release(struct kobject *kobj) +{ + struct sclp_mem *sclp_mem =3D container_of(kobj, struct sclp_mem, kobj); + + kfree(sclp_mem); +} + static const struct kobj_type ktype =3D { + .release =3D sclp_mem_release, .sysfs_ops =3D &kobj_sysfs_ops, }; =20 @@ -321,36 +324,40 @@ static struct attribute_group sclp_mem_attr_group =3D= { .attrs =3D sclp_mem_attrs, }; =20 -static int sclp_create_mem(struct sclp_mem *sclp_mem, struct kset *kset, - unsigned int id, bool config, bool memmap_on_memory) +static int sclp_create_mem(struct kset *kset, unsigned int id, bool config, + bool memmap_on_memory) { + struct sclp_mem *sclp_mem; int rc; =20 + sclp_mem =3D kzalloc_obj(*sclp_mem); + if (!sclp_mem) + return -ENOMEM; sclp_mem->memmap_on_memory =3D memmap_on_memory; sclp_mem->config =3D config; #ifdef CONFIG_KASAN sclp_mem->early_shadow_mapped =3D config; #endif sclp_mem->id =3D id; - kobject_init(&sclp_mem->kobj, &ktype); - rc =3D kobject_add(&sclp_mem->kobj, &kset->kobj, "memory%d", id); - if (rc) + rc =3D kobject_init_and_add(&sclp_mem->kobj, &ktype, &kset->kobj, + "memory%d", id); + if (rc) { + kobject_put(&sclp_mem->kobj); return rc; - return sysfs_create_group(&sclp_mem->kobj, &sclp_mem_attr_group); + } + rc =3D sysfs_create_group(&sclp_mem->kobj, &sclp_mem_attr_group); + if (rc) { + kobject_put(&sclp_mem->kobj); + return rc; + } + return 0; } =20 static int sclp_create_configured_mem(struct memory_block *mem, void *argu= ment) { - struct sclp_mem *sclp_mems; - struct sclp_mem_arg *arg; - struct kset *kset; - unsigned int id; + struct kset *kset =3D argument; =20 - id =3D mem->dev.id; - arg =3D (struct sclp_mem_arg *)argument; - sclp_mems =3D arg->sclp_mems; - kset =3D arg->kset; - return sclp_create_mem(&sclp_mems[id], kset, id, true, false); + return sclp_create_mem(kset, mem->dev.id, true, false); } =20 static void __init align_to_block_size(unsigned long *start, @@ -368,8 +375,7 @@ static void __init align_to_block_size(unsigned long *s= tart, *size =3D size_align; } =20 -static int __init sclp_create_standby_mems_merged(struct sclp_mem *sclp_me= ms, - struct kset *kset, u16 rn) +static int __init sclp_create_standby_mems_merged(struct kset *kset, u16 r= n) { unsigned long start, size, addr, block_size; static u16 first_rn, num; @@ -394,7 +400,7 @@ static int __init sclp_create_standby_mems_merged(struc= t sclp_mem *sclp_mems, goto skip_add; for (addr =3D start; addr < start + size; addr +=3D block_size) { id =3D addr / block_size; - rc =3D sclp_create_mem(&sclp_mems[id], kset, id, false, + rc =3D sclp_create_mem(kset, id, false, mhp_supports_memmap_on_memory()); if (rc) break; @@ -405,45 +411,34 @@ static int __init sclp_create_standby_mems_merged(str= uct sclp_mem *sclp_mems, return rc; } =20 -static int __init sclp_create_standby_mems(struct sclp_mem *sclp_mems, str= uct kset *kset) +static int __init sclp_create_standby_mems(struct kset *kset) { struct memory_increment *incr; int rc =3D 0; =20 list_for_each_entry(incr, &sclp_mem_list, list) { if (incr->standby) - rc =3D sclp_create_standby_mems_merged(sclp_mems, kset, incr->rn); + rc =3D sclp_create_standby_mems_merged(kset, incr->rn); if (rc) return rc; } - return sclp_create_standby_mems_merged(sclp_mems, kset, 0); + return sclp_create_standby_mems_merged(kset, 0); } =20 static int __init sclp_init_mem(void) { - const unsigned long block_size =3D memory_block_size_bytes(); - unsigned int max_sclp_mems; - struct sclp_mem *sclp_mems; - struct sclp_mem_arg arg; struct kset *kset; int rc; =20 - max_sclp_mems =3D roundup(sclp.rnmax * sclp.rzm, block_size) / block_size; - /* Allocate memory for all blocks ahead of time. */ - sclp_mems =3D kzalloc_objs(struct sclp_mem, max_sclp_mems); - if (!sclp_mems) - return -ENOMEM; kset =3D kset_create_and_add("memory", NULL, firmware_kobj); if (!kset) return -ENOMEM; /* Initial memory is in the "configured" state already. */ - arg.sclp_mems =3D sclp_mems; - arg.kset =3D kset; - rc =3D for_each_memory_block(&arg, sclp_create_configured_mem); + rc =3D for_each_memory_block(kset, sclp_create_configured_mem); if (rc) return rc; /* Standby memory is "deconfigured". */ - return sclp_create_standby_mems(sclp_mems, kset); + return sclp_create_standby_mems(kset); } =20 static void __init insert_increment(u16 rn, int standby, int assigned) --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931488; cv=none; d=zohomail.com; s=zohoarc; b=hx2MLbtFBK3hvRLOlxEJxES59m77XD7R915ockvxkfj1sERpJYOReviOKYo4i5MxqD39x6fy2jvH9YFgVyL6vn+c5ubjQpLexeAKiSHEST3UJLglLuIj3/KTe0qQOuoi+YquB4ps6QS3+Mkc0NKItrUhRPC3IOUTYep4JsQ+rBs= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931488; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=gurzTkqqRagMZrBgJFBCVz7i93uSa3r8+lp0iuHqO9A=; b=BH50/pwZq8Nbk7sj762QPQrAEV357566UmKDjy16xO/R4jvedggj+DLXH5EnqlDyD4WUERf/Q7IeguqOjqPfcfaG5EAE3YzAvV9RimTxQyaZJpIPrjM8NvR/baP9CJwC3Wh3Tc+kp4FG6e6Cw8nFwefkh3DQqHAbcx1IaUjl50Y= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931488502314.7177633222112; Tue, 13 Oct 2026 15:44:48 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448372.1664408 (Exim 4.92) (envelope-from ) id 1xGlEd-0002Gg-Qq; Tue, 13 Oct 2026 22:44:39 +0000 Received: by outflank-mailman (output) from mailman id 1448372.1664408; Tue, 13 Oct 2026 22:44:39 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlEd-0002GZ-Nq; Tue, 13 Oct 2026 22:44:39 +0000 Received: by outflank-mailman (input) for mailman id 1448372; Tue, 13 Oct 2026 22:44:38 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3YLPOagcKCV8FOLDBOPDLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--irogers.bounces.google.com>) id 1xGlEc-0002Fs-K6 for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:44:38 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlEc-00A5xn-17 for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:44:38 +0200 Received: from [10.42.69.8] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3YLPOagcKCV8FOLDBOPDLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--irogers.bounces.google.com>) id 6aceb441-e002-0a2a0a5209dd-0a2a45088676-20 for ; Wed, 14 Oct 2026 00:44:38 +0200 Received: from [74.125.82.71] (helo=mail-dl1-f71.google.com) by tlsNG-c1860d.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3YLPOagcKCV8FOLDBOPDLLDIB.9LJUBK-ABSBIIFPQP.UBKMOLGB9Q.LOD@flex--irogers.bounces.google.com>) id 6aceb364-f659-0a2a45080019-4a7d5247b464-3 for ; Wed, 14 Oct 2026 00:40:37 +0200 Received: by mail-dl1-f71.google.com with SMTP id a92af1059eb24-1665200f4c2so4837985c88.0 for ; Tue, 13 Oct 2026 15:40:37 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931235; x=1792536035; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=gurzTkqqRagMZrBgJFBCVz7i93uSa3r8+lp0iuHqO9A=; b=BWmFxJzxUz7vC/efRk6VrtLsD1knKxkdFUm98UWWO2X9S6/2hE6fPjgmbxczbbMEd3 7mYQG2/huk1DrZMOchPbMN5147owBZ0irLigfn6JJsQbbtsS/OmjZuOxTYkM9Ch+R9PA 6SFB99UDSykCWXLmaD+1CRwvjasfHSityTg3WrlWtSGsBPo7ZAJryacqyJ3Td1Jajxb0 nIG7uul4U8URZduDqlhRwOmlmR1jNkUz4nl9C/TmZW+5w1/41aL/kd2S8MIbip+ZafNg NwzGjLvywEO/WnsPCCFxk8VJFLtnoynIlA0lLRoMEoEUE8uz6RUZyu+xjAb/w7ojrHP7 b8mA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931235; x=1792536035; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=gurzTkqqRagMZrBgJFBCVz7i93uSa3r8+lp0iuHqO9A=; b=vEgaGaRBOGmvR/6FNsVfpIy6oC3LbhiPid5+D7CbMDz2p/Tym6J11AXFT4kWUIlf9q 4rfh7uIt8z/jaH/S75Mcb/l1yAHsr1yXtRyW1mCCc5JX1viOU62DQAk3FJ5l/oE0AN8q F8V3Dao6x8sR8hfANt6ESKrSOR7styqgTUJPua1rFX5ZEu0Dep7HXIzpIBmtbFiIqJ1q Py26U0xs0TNYkAkDu8OhpXlJgNXp8Wc+DzvlVqRZoOA6FDwRHBjjOoBXwzGPBY6Yb2Uq oB/g03MET3dW5YyqXTob6GflJ82a2lrCJim4H+fZN9gGaVMv/ya+h1aZLvw68A/iUvUc 8tuw== X-Forwarded-Encrypted: i=1; AKwUvByFU4nCELaGfp3bqznzeBZ205oWcXC7dgE0kmtQeGG/ElMvrtIcFlEfBmXH7x/5DQ0IUTgF+5BTqXs=@lists.xenproject.org X-Gm-Message-State: AFq9FYIfh1L1jzA3czagOnww7LBFnDG3SQ+Q7XqEES/xjGfMsH6e/PNE 8rr5NKHC+0q4gzSujW8PoaO4tD4PDGSg2jwYLoIK4zoc9mzEeKO/DWHIVBnnuBjJDJGtL0EXW9F +B1kcg3NUig== X-Received: from dleg6-n1.prod.google.com ([2002:a05:701b:4306:10b0:160:bb23:390d]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:701b:4586:20b0:169:b1b1:1445 with SMTP id a92af1059eb24-16a5dbfe73dmr17947821c88.31.1791931232672; Tue, 13 Oct 2026 15:40:32 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:44 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-10-irogers@google.com> Subject: [PATCH 09/11] ubifs: sysfs: Use kset_create_and_add() for ubifs_kset From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-c1860d/1791931237-CDD4887B-2C610901/0/0 X-purgate-type: clean X-purgate-size: 1991 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931489736158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" ubifs_kset was a static struct kset using a custom ubifs_ktype that had no default_groups and no .release callback. With CONFIG_DEBUG_KOBJECT_RELEASE=3Dy, unloading the ubifs module while delayed kobject release is pending causes a use-after-free on the static kset. Replace the static ubifs_kset and empty ubifs_ktype with a dynamically allocated kset via kset_create_and_add(). Fixes: 203a55f04f66 ("ubifs: Fix memory leak in ubifs_sysfs_init()") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers Reviewed-by: Zhihao Cheng Tested-by: Zhihao Cheng --- fs/ubifs/sysfs.c | 24 +++++++----------------- 1 file changed, 7 insertions(+), 17 deletions(-) diff --git a/fs/ubifs/sysfs.c b/fs/ubifs/sysfs.c index dbf967dcf26e..e20931e3a62f 100644 --- a/fs/ubifs/sysfs.c +++ b/fs/ubifs/sysfs.c @@ -80,13 +80,7 @@ static const struct kobj_type ubifs_sb_ktype =3D { .release =3D ubifs_sb_release, }; =20 -static const struct kobj_type ubifs_ktype =3D { - .sysfs_ops =3D &ubifs_attr_ops, -}; - -static struct kset ubifs_kset =3D { - .kobj =3D {.ktype =3D &ubifs_ktype}, -}; +static struct kset *ubifs_kset; =20 int ubifs_sysfs_register(struct ubifs_info *c) { @@ -107,7 +101,7 @@ int ubifs_sysfs_register(struct ubifs_info *c) goto out_free; } =20 - c->kobj.kset =3D &ubifs_kset; + c->kobj.kset =3D ubifs_kset; init_completion(&c->kobj_unregister); =20 ret =3D kobject_init_and_add(&c->kobj, &ubifs_sb_ktype, NULL, @@ -139,18 +133,14 @@ void ubifs_sysfs_unregister(struct ubifs_info *c) =20 int __init ubifs_sysfs_init(void) { - int ret; + ubifs_kset =3D kset_create_and_add("ubifs", NULL, fs_kobj); + if (!ubifs_kset) + return -ENOMEM; =20 - kobject_set_name(&ubifs_kset.kobj, "ubifs"); - ubifs_kset.kobj.parent =3D fs_kobj; - ret =3D kset_register(&ubifs_kset); - if (ret) - kset_put(&ubifs_kset); - - return ret; + return 0; } =20 void ubifs_sysfs_exit(void) { - kset_unregister(&ubifs_kset); + kset_unregister(ubifs_kset); } --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931253; cv=none; d=zohomail.com; s=zohoarc; b=DDaVmQxvA0rnAuTgrlgKWy71q2w3OBLb4JDgatw8qLxu1x2+4CVaoyAWYHQNH6UiPNfsIzSXpYIcdQV4ScddxT57MllbKtuoDuWpWn/HAE9Fp1zxQ1BzGN7gME/+2b5/bkR1Jhhtoho1PCPaUE3WwZgY/bplEIca7sY2LZgQ1Ug= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931253; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=5eLIAAx2L+9DvCRKYW0jDBbtdiyv3jUNIhafttj/B0g=; b=kG4H2B4Jt2OS+pHDcs6uROySpxfV7NAZ1Mhn1Gb7WpLPlN62CytSHV+D2a/QG3israNgHR/xq78hN8YgHxb59Ec05Lj9gI2nNb7MgpCBPvgKH2OtY0a5INegQPAHVHEBP2o0tInpb0qRiSyXdtebD7fP4t7JlSE76PRCL6MrCHs= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931253433558.5605040651953; Tue, 13 Oct 2026 15:40:53 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448337.1664372 (Exim 4.92) (envelope-from ) id 1xGlAm-0007tN-AS; Tue, 13 Oct 2026 22:40:40 +0000 Received: by outflank-mailman (output) from mailman id 1448337.1664372; Tue, 13 Oct 2026 22:40:40 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAm-0007tG-7i; Tue, 13 Oct 2026 22:40:40 +0000 Received: by outflank-mailman (input) for mailman id 1448337; Tue, 13 Oct 2026 22:40:39 +0000 Received: from mx.expurgate.net ([195.190.135.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3Y7POagcKCWIIROGERSGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--irogers.bounces.google.com>) id 1xGlAk-0007pR-SP for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:38 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAk-009GuA-2U for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:38 +0200 Received: from [10.42.69.9] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3Y7POagcKCWIIROGERSGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--irogers.bounces.google.com>) id 6aceb34e-8faa-0a2a0a5109dd-0a2a4509c84a-12 for ; Wed, 14 Oct 2026 00:40:38 +0200 Received: from [74.125.82.70] (helo=mail-dl1-f70.google.com) by tlsNG-bad1c0.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3Y7POagcKCWIIROGERSGOOGLE.COMXEN-DEVELLISTS.XENPROJECT.ORG@flex--irogers.bounces.google.com>) id 6aceb364-be1a-0a2a45090019-4a7d5246c420-3 for ; Wed, 14 Oct 2026 00:40:37 +0200 Received: by mail-dl1-f70.google.com with SMTP id a92af1059eb24-1663fb7e005so4564876c88.0 for ; Tue, 13 Oct 2026 15:40:37 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931236; x=1792536036; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=5eLIAAx2L+9DvCRKYW0jDBbtdiyv3jUNIhafttj/B0g=; b=WVfjU86RK8GWjB2A/gzsaiso4A+6/lpvBTmjDqf9xL/Jo1Yf3xtV1qdwwC16D9v95N 3WBf9pGGAKr1f15dS/OGqx2D6FAVDTUepiAW3o+S8VLIobLDnQ3YOK8GOPBCQokSnGEM aKkvHoiznv9cioAXQAhNyZMMevlFPSH9wctxnJCq4LCeM5nSPHLYd5K6CZVDxwk59NeR eXxNhJ8t2VnN8DehSJhxapF96YxV7BbinPz5FTdjOYgkoyERRlRMqzKNEV/r7M7YdakE /eSq73Ay9yFv5AogZDZlETMDncH1cr/dcloTNwfK0B5LDHDrLsg5wGgmaG5vGbaxtVdx T04Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931236; x=1792536036; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=5eLIAAx2L+9DvCRKYW0jDBbtdiyv3jUNIhafttj/B0g=; b=s2OpxmNm6VhYRfulJ3RFitgOojvkNhopJxisotRipOx3cfxxPM6b9e5QhsLGnAm63B aZcEPD1WIjdFGi9E58X68PKzvPTiZ5t2Q8mbMxdDJ7v4UQ90Rq5jmFMVB5YAvwJaz2vJ +59ucrm0O6os8SLVUX51drP6feRUsn1UwrFNRXpgoe93xrNS1sc0GzpHN25r5XG1GaIb hlh4mknT7Y5ND8TCG6KPrHdhaLSRkCwfMYVc55atJIe1OkGkJItXchRsBWPwHP9p1dlq bMTHp1jVjJNH4Iv5vBT12tIbqhwznns1WDyRAzd4S19H9Rsl5ysYIk7mzOupMwIK9sXh Y2uQ== X-Forwarded-Encrypted: i=1; AKwUvBw32FTv72yeIZ/4UJkJRzZ35A6JXZbGjr+n/fKzym+0+cjt825gqv8oR85tBp4r1MLLadcB31yCa/8=@lists.xenproject.org X-Gm-Message-State: AFq9FYLPhwBiEsPv7VOFVB2pZw6U7yvM5bl4HHGgf75Q/2IEtl1LKLGr QAU4MeVLhE6V+RMOLSrfR0+1Rj9mBqFN4vYKBuxXItO6y+4Zhx5cn9FFNQgnGEP2Og8HpBopV4O btHKNxpaXyQ== X-Received: from dlbuu9.prod.google.com ([2002:a05:7022:7e89:b0:16c:bd18:1ee2]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:701b:231b:b0:165:55e2:2d69 with SMTP id a92af1059eb24-16a640fcc35mr21018967c88.46.1791931235508; Tue, 13 Oct 2026 15:40:35 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:45 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-11-irogers@google.com> Subject: [PATCH 10/11] drm/amdkfd: Free queue in procfs_queue_type kobject release callback From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-bad1c0/1791931238-BDEC6034-B6F97FF2/0/0 X-purgate-type: clean X-purgate-size: 2469 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931255127158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" struct queue embeds a struct kobject (q->kobj) for procfs entries, but procfs_queue_type had no .release callback and uninit_queue() freed q immediately after kfd_procfs_del_queue() called kobject_put(&q->kobj). With CONFIG_DEBUG_KOBJECT_RELEASE=3Dy, this causes a use-after-free. Add kfd_procfs_queue_release() to free struct queue from the kobject release callback, change kfd_procfs_del_queue() to only remove the kobject from sysfs via kobject_del(), and drop the final reference in uninit_queue() via kobject_put(). Fixes: 6d220a7e7971 ("drm/amdkfd: Add queue information to sysfs") Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- drivers/gpu/drm/amd/amdkfd/kfd_process.c | 10 ++++++++-- drivers/gpu/drm/amd/amdkfd/kfd_queue.c | 5 ++++- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process.c b/drivers/gpu/drm/amd= /amdkfd/kfd_process.c index 0a7c1900da95..6099cb893573 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process.c @@ -510,7 +510,15 @@ static const struct sysfs_ops procfs_queue_ops =3D { .show =3D kfd_procfs_queue_show, }; =20 +static void kfd_procfs_queue_release(struct kobject *kobj) +{ + struct queue *q =3D container_of(kobj, struct queue, kobj); + + kfree(q); +} + static const struct kobj_type procfs_queue_type =3D { + .release =3D kfd_procfs_queue_release, .sysfs_ops =3D &procfs_queue_ops, .default_groups =3D procfs_queue_groups, }; @@ -550,7 +558,6 @@ int kfd_procfs_add_queue(struct queue *q) if (ret < 0) { pr_warn("Creating proc//queues/%u failed", q->properties.queue_id); - kobject_put(&q->kobj); return ret; } =20 @@ -699,7 +706,6 @@ void kfd_procfs_del_queue(struct queue *q) return; =20 kobject_del(&q->kobj); - kobject_put(&q->kobj); } =20 int kfd_process_create_wq(void) diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c b/drivers/gpu/drm/amd/a= mdkfd/kfd_queue.c index 15eeaaebbbcd..8d1afc5b47e2 100644 --- a/drivers/gpu/drm/amd/amdkfd/kfd_queue.c +++ b/drivers/gpu/drm/amd/amdkfd/kfd_queue.c @@ -83,7 +83,10 @@ int init_queue(struct queue **q, const struct queue_prop= erties *properties) =20 void uninit_queue(struct queue *q) { - kfree(q); + if (q && q->kobj.state_initialized) + kobject_put(&q->kobj); + else + kfree(q); } =20 #if IS_ENABLED(CONFIG_HSA_AMD_SVM) --=20 2.56.0.385.gd3acb90ef8-goog From nobody Sat Oct 24 13:20:04 2026 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) client-ip=192.237.175.120; envelope-from=xen-devel-bounces@lists.xenproject.org; helo=lists.xenproject.org; Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass(p=reject dis=none) header.from=google.com ARC-Seal: i=1; a=rsa-sha256; t=1791931263; cv=none; d=zohomail.com; s=zohoarc; b=j3/eA7gdXfbVbeC3s3dmJvlYZJRFqTv/6ZX5u8GP56pDJ2uBcjAgcOJsf5oUTF2m8tFpM3QUEbZQ2hF7PTfWMBoJjeGjrz1+HR1AgadErU5uw0lI10134h0CEQHP//RsVAF9Afq8I0DEk784YfNb/Kc4A0mmqGNGDzIPzwujHLo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1791931263; h=Content-Type:Cc:Cc:Date:Date:From:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:Subject:To:To:Message-Id:Reply-To; bh=KZW0TlkuVx1/ay444vuidlpbLOf1N6NgoBIEapd0snM=; b=Jxd5usBCFz9i0WNBxfrFsVYkoTdSKIBC4/YjCp7Zf4n4Y0SEimZLUNBBypVobV9tq9jvZ1Up8duKdz+KimRBidXVfS9jIdpZAVqBvePhqSyphJJGu+d0h6Ia2afbDM8D5D8p7M9+wrEo7q6NorixGhZDc++VABel98cK0qK9sdY= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of lists.xenproject.org designates 192.237.175.120 as permitted sender) smtp.mailfrom=xen-devel-bounces@lists.xenproject.org; dmarc=pass header.from= (p=reject dis=none) Return-Path: Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) by mx.zohomail.com with SMTPS id 1791931263830643.3978125559854; Tue, 13 Oct 2026 15:41:03 -0700 (PDT) Received: from list by lists.xenproject.org with outflank-mailman.1448341.1664383 (Exim 4.92) (envelope-from ) id 1xGlAo-0008Dp-Oz; Tue, 13 Oct 2026 22:40:42 +0000 Received: by outflank-mailman (output) from mailman id 1448341.1664383; Tue, 13 Oct 2026 22:40:42 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1xGlAo-0008Dh-KP; Tue, 13 Oct 2026 22:40:42 +0000 Received: by outflank-mailman (input) for mailman id 1448341; Tue, 13 Oct 2026 22:40:41 +0000 Received: from mx.expurgate.net ([194.145.224.10]) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from <3ZbPOagcKCWQKTQIGTUIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--irogers.bounces.google.com>) id 1xGlAn-00081Z-5T for xen-devel@lists.xenproject.org; Tue, 13 Oct 2026 22:40:41 +0000 Received: from mx.expurgate.net (helo=localhost) by mx.expurgate.net with esmtp id 1xGlAm-00B3QV-Aq for xen-devel@lists.xenproject.org; Wed, 14 Oct 2026 00:40:40 +0200 Received: from [10.42.69.7] (helo=localhost) by localhost with ESMTP (eXpurgate MTA 0.9.1) (envelope-from <3ZbPOagcKCWQKTQIGTUIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--irogers.bounces.google.com>) id 6aceb354-bab6-0a2a0a5309dd-0a2a45079202-4 for ; Wed, 14 Oct 2026 00:40:40 +0200 Received: from [74.125.82.200] (helo=mail-dy1-f200.google.com) by tlsNG-ef75cf.mxtls.expurgate.net with ESMTPS (eXpurgate 4.57.1) (envelope-from <3ZbPOagcKCWQKTQIGTUIQQING.EQOZGP-FGXGNNKUVU.ZGPRTQLGEV.QTI@flex--irogers.bounces.google.com>) id 6aceb366-b4ea-0a2a45070019-4a7d52c8e5bc-3 for ; Wed, 14 Oct 2026 00:40:40 +0200 Received: by mail-dy1-f200.google.com with SMTP id 5a478bee46e88-35a4d2e39acso1187992eec.1 for ; Tue, 13 Oct 2026 15:40:39 -0700 (PDT) X-Outflank-Mailman: Message body and most headers restored to incoming version X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" Authentication-Results: eu.smtp.expurgate.cloud; dkim=pass header.s=20251104 header.d=google.com header.i="@google.com" header.h="Content-Type:Cc:To:From:Subject:Message-ID:References:Mime-Version:In-Reply-To:Date" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20251104; t=1791931238; x=1792536038; darn=lists.xenproject.org; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:from:to:cc:subject:date:message-id:reply-to :content-type; bh=KZW0TlkuVx1/ay444vuidlpbLOf1N6NgoBIEapd0snM=; b=FdWe65DHrRV7jMip3Af0+/uOE3PGOX1fD6nmURiP/oZq4XfADqTxl36S15/11/d8e2 d7BqlSz8tuGHGD9Sy74aX4qNj3NF96tFZ4bQCXZ7nn5mSN+4gHsbEZZEAsbPLJ5XYYbB clQTdafouVBnnMJ5qDXSseHtYA7HRnJKJkmjW+jyCIEfH2qACPpBkD93HW50A3nJh2tX PbqUIGGj9dzbMOnCBEtRKgBhRXxDhHlDAwcTQ+MguTwcYKq8a8f3WD/o10kUqOXHzNTJ y+1TX0XoCq4TrMwflNfblh4jxlTapW+wHBRQiMMP2EpY4by/Y20EcEbJLfTXbnFCxYVD WIUQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1791931238; x=1792536038; h=content-type:cc:to:from:subject:message-id:references:mime-version :in-reply-to:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=KZW0TlkuVx1/ay444vuidlpbLOf1N6NgoBIEapd0snM=; b=TbpTXTU5Mpi2X2SsihbAX7LQLmr+4yQHAXpx/oows/GFNa3yAxo0A8fAEg98euI7sp XYz+OV6aw4h0hQcuK2uyZw0MyHE+tgvOiZ7pFpYWAVKrNBjxNWR4NLS4RnmQ0Dn90tZ8 W6JSm3yDLjiUKhR19nGrGTr9/gZOKEsUsttunvA9d1td0HD4X06g6ag+ugzafZmUrUAJ 66Q6PaNxc3+l/rRxL2sTVOJLCIELWCHKXpRa01lpWHVq2C8JQ2CMtaj1T4oYS7Cx7QXu mQ8NlUutTzskfWBXEflgnnmzhUTrgym6LDNkAPVfZDp0cp8bSFgJu1+vJnFM+WjCPmzJ yWDQ== X-Forwarded-Encrypted: i=1; AKwUvBx0xoQKKLzcFXyMKfsNj3J2Zn0QypiUefkDc41Y+tB+20aT9D77GoEiB/pyIcE1qPzD/BgR3j1m0G8=@lists.xenproject.org X-Gm-Message-State: AFq9FYI1al5Q4W1tnU0ApKcXcfOiX6qiy8ofqT4Q/3yOmJI9kNRRYcUk ZAX4pVdXVTGZTsz1UR2y8a2lVRvUERC9mD6IO4j9CRtFJC5UO7jnRh0r/+VJmya1dst4sGxICAn ay1Qi1TXb6g== X-Received: from dly17-n1.prod.google.com ([2002:a05:701b:2051:10b0:168:6cd7:1061]) (user=irogers job=prod-delivery.src-stubby-dispatcher) by 2002:a05:7022:b0d4:b0:141:4a06:ad6f with SMTP id a92af1059eb24-16a5dfd5d8cmr22211984c88.8.1791931237569; Tue, 13 Oct 2026 15:40:37 -0700 (PDT) Date: Tue, 13 Oct 2026 15:39:46 -0700 In-Reply-To: <20261013223946.1836757-1-irogers@google.com> Mime-Version: 1.0 References: <20261013223946.1836757-1-irogers@google.com> X-Mailer: git-send-email 2.56.0.385.gd3acb90ef8-goog Message-ID: <20261013223946.1836757-12-irogers@google.com> Subject: [PATCH 11/11] kobject: Require explicit initialization of struct kobj_type::release From: Ian Rogers To: Greg Kroah-Hartman , "Rafael J . Wysocki" , Danilo Krummrich , Miguel Ojeda , Kees Cook , Nathan Chancellor Cc: Nick Desaulniers , Bill Wendling , Justin Stitt , Jonathan Corbet , Madhavan Srinivasan , Michael Ellerman , Nicholas Piggin , Christophe Leroy , Nayna Jain , Yoshinori Sato , Rich Felker , John Paul Adrian Glaubitz , Viresh Kumar , David Teigland , Alexander Aring , Juergen Gross , Stefano Stabellini , Oleksandr Tyshchenko , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , Richard Weinberger , Zhihao Cheng , Felix Kuehling , Alex Deucher , "=?UTF-8?q?Christian=20K=C3=B6nig?=" , driver-core@lists.linux.dev, llvm@lists.linux.dev, linux-hardening@vger.kernel.org, linux-doc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-sh@vger.kernel.org, linux-pm@vger.kernel.org, linux-acpi@vger.kernel.org, gfs2@lists.linux.dev, xen-devel@lists.xenproject.org, linux-s390@vger.kernel.org, linux-mtd@lists.infradead.org, amd-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Ian Rogers X-purgate-ID: tlsNG-ef75cf/1791931240-A58C1AE4-A8021C84/0/0 X-purgate-type: clean X-purgate-size: 13043 X-ZohoMail-DKIM: pass (identity @google.com) X-ZM-MESSAGEID: 1791931265429158500 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Documentation/core-api/kobject.rst states: "One important point cannot be overstated: every kobject must have a release() method, and the kobject must persist (in a consistent state) until that method is called. If these constraints are not met, the code is flawed. Note that the kernel will warn you if you forget to provide a release() method. Do not try to get rid of this warning by providing an "empty" release function." Annotate struct kobj_type::release with __require_explicit_initialization so the compiler diagnoses any struct kobj_type initializer that omits .release. For the remaining legacy struct kobj_type definitions where the kobject is static, per-CPU, or embedded inside a devm- or parent-managed structure rather than freed by kobject_put(), explicitly initialize .release =3D NULL with a comment documenting why no release callback is provided. Link: https://lpc.events/event/20/contributions/2392/ Assisted-by: Antigravity:gemini-3.1-pro Signed-off-by: Ian Rogers --- arch/arm64/kernel/cpuinfo.c | 2 ++ drivers/acpi/sysfs.c | 2 ++ drivers/dma/ioat/sysfs.c | 2 ++ drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c | 4 ++++ drivers/infiniband/hw/hfi1/sysfs.c | 2 ++ drivers/infiniband/hw/usnic/usnic_ib_sysfs.c | 2 ++ drivers/parisc/pdc_stable.c | 2 ++ drivers/power/supply/ab8500_fg.c | 2 ++ drivers/soc/hisilicon/kunpeng_hccs.c | 6 ++++++ drivers/video/fbdev/omap2/omapfb/dss/display-sysfs.c | 2 ++ drivers/video/fbdev/omap2/omapfb/dss/manager-sysfs.c | 2 ++ drivers/video/fbdev/omap2/omapfb/dss/overlay-sysfs.c | 2 ++ fs/erofs/sysfs.c | 4 ++++ fs/f2fs/sysfs.c | 6 ++++++ fs/ocfs2/cluster/masklog.c | 2 ++ include/linux/kobject.h | 2 +- 16 files changed, 43 insertions(+), 1 deletion(-) diff --git a/arch/arm64/kernel/cpuinfo.c b/arch/arm64/kernel/cpuinfo.c index 45c63f3d75c5..ab78efdb13f5 100644 --- a/arch/arm64/kernel/cpuinfo.c +++ b/arch/arm64/kernel/cpuinfo.c @@ -309,6 +309,8 @@ const struct seq_operations cpuinfo_op =3D { =20 =20 static const struct kobj_type cpuregs_kobj_type =3D { + /* info->kobj is embedded in per-CPU cpu_data; cpuid_cpu_offline() only c= alls kobject_del(). */ + .release =3D NULL, .sysfs_ops =3D &kobj_sysfs_ops, }; =20 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c index dd4a99f09efe..7534d3f305ba 100644 --- a/drivers/acpi/sysfs.c +++ b/drivers/acpi/sysfs.c @@ -972,6 +972,8 @@ static struct attribute *hotplug_profile_attrs[] =3D { ATTRIBUTE_GROUPS(hotplug_profile); =20 static const struct kobj_type acpi_hotplug_profile_ktype =3D { + /* hotplug->kobj is embedded in static struct acpi_scan_hotplug objects. = */ + .release =3D NULL, .sysfs_ops =3D &kobj_sysfs_ops, .default_groups =3D hotplug_profile_groups, }; diff --git a/drivers/dma/ioat/sysfs.c b/drivers/dma/ioat/sysfs.c index e796ddb5383f..7fdd0ca36b98 100644 --- a/drivers/dma/ioat/sysfs.c +++ b/drivers/dma/ioat/sysfs.c @@ -167,6 +167,8 @@ static const struct attribute *const ioat_attrs[] =3D { ATTRIBUTE_GROUPS(ioat); =20 const struct kobj_type ioat_ktype =3D { + /* ioatdma_chan is allocated via devm_kzalloc() rather than freed by kobj= ect_put(). */ + .release =3D NULL, .sysfs_ops =3D &ioat_sysfs_ops, .default_groups =3D ioat_groups, }; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c b/drivers/gpu/drm/amd/= amdgpu/amdgpu_xcp.c index b15af318784b..0477468f12ae 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_xcp.c @@ -789,6 +789,8 @@ static const struct sysfs_ops xcp_cfg_res_sysfs_ops =3D= { }; =20 static const struct kobj_type xcp_cfg_res_sysfs_ktype =3D { + /* xcp_res is embedded in struct amdgpu_xcp_cfg rather than freed individ= ually by kobject_put(). */ + .release =3D NULL, .sysfs_ops =3D &xcp_cfg_res_sysfs_ops, .default_groups =3D xcp_cfg_res_sysfs_groups, }; @@ -1053,6 +1055,8 @@ static const struct attribute_group amdgpu_xcp_attrs_= group =3D { }; =20 static const struct kobj_type xcp_sysfs_ktype =3D { + /* xcp is embedded in struct amdgpu_xcp_mgr rather than freed individuall= y by kobject_put(). */ + .release =3D NULL, .sysfs_ops =3D &kobj_sysfs_ops, }; =20 diff --git a/drivers/infiniband/hw/hfi1/sysfs.c b/drivers/infiniband/hw/hfi= 1/sysfs.c index 372cfd13dc61..33b26650069d 100644 --- a/drivers/infiniband/hw/hfi1/sysfs.c +++ b/drivers/infiniband/hw/hfi1/sysfs.c @@ -608,6 +608,8 @@ static const struct sysfs_ops sde_sysfs_ops =3D { }; =20 static struct kobj_type sde_ktype =3D { + /* sdma_engine is embedded in the dd->per_sdma array rather than freed by= kobject_put(). */ + .release =3D NULL, .sysfs_ops =3D &sde_sysfs_ops, }; =20 diff --git a/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c b/drivers/infinib= and/hw/usnic/usnic_ib_sysfs.c index fdb63a8fb997..234d8d9532aa 100644 --- a/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c +++ b/drivers/infiniband/hw/usnic/usnic_ib_sysfs.c @@ -245,6 +245,8 @@ static struct attribute *usnic_ib_qpn_default_attrs[] = =3D { ATTRIBUTE_GROUPS(usnic_ib_qpn_default); =20 static struct kobj_type usnic_ib_qpn_type =3D { + /* usnic_ib_qp_grp is embedded in RDMA core-managed struct usnic_ib_qp_gr= p. */ + .release =3D NULL, .sysfs_ops =3D &usnic_ib_qpn_sysfs_ops, .default_groups =3D usnic_ib_qpn_default_groups, }; diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c index 16f4496bca95..6d972c965c1e 100644 --- a/drivers/parisc/pdc_stable.c +++ b/drivers/parisc/pdc_stable.c @@ -484,6 +484,8 @@ ATTRIBUTE_GROUPS(paths_subsys); =20 /* Specific kobject type for our PDC paths */ static const struct kobj_type ktype_pdcspath =3D { + /* pdcspath_entry instances are static; lifetime is not controlled by kob= ject_put(). */ + .release =3D NULL, .sysfs_ops =3D &pdcspath_attr_ops, .default_groups =3D paths_subsys_groups, }; diff --git a/drivers/power/supply/ab8500_fg.c b/drivers/power/supply/ab8500= _fg.c index e6b5efdf5dc9..206ee2e392fb 100644 --- a/drivers/power/supply/ab8500_fg.c +++ b/drivers/power/supply/ab8500_fg.c @@ -2531,6 +2531,8 @@ static struct attribute *ab8500_fg_attrs[] =3D { ATTRIBUTE_GROUPS(ab8500_fg); =20 static const struct kobj_type ab8500_fg_ktype =3D { + /* fg_kobject is embedded in devm-allocated struct ab8500_fg; ab8500_fg_s= ysfs_exit() only calls kobject_del(). */ + .release =3D NULL, .sysfs_ops =3D &ab8500_fg_sysfs_ops, .default_groups =3D ab8500_fg_groups, }; diff --git a/drivers/soc/hisilicon/kunpeng_hccs.c b/drivers/soc/hisilicon/k= unpeng_hccs.c index 0cc2953d59a5..5d083d2b72ca 100644 --- a/drivers/soc/hisilicon/kunpeng_hccs.c +++ b/drivers/soc/hisilicon/kunpeng_hccs.c @@ -1038,6 +1038,8 @@ static struct attribute *hccs_port_default_attrs[] = =3D { ATTRIBUTE_GROUPS(hccs_port_default); =20 static const struct kobj_type hccs_port_type =3D { + /* hccs_port_info is allocated via devm_kcalloc() rather than freed by ko= bject_put(). */ + .release =3D NULL, .sysfs_ops =3D &hccs_comm_ops, .default_groups =3D hccs_port_default_groups, }; @@ -1110,6 +1112,8 @@ static struct attribute *hccs_die_default_attrs[] =3D= { ATTRIBUTE_GROUPS(hccs_die_default); =20 static const struct kobj_type hccs_die_type =3D { + /* hccs_die_info is allocated via devm_kcalloc() rather than freed by kob= ject_put(). */ + .release =3D NULL, .sysfs_ops =3D &hccs_comm_ops, .default_groups =3D hccs_die_default_groups, }; @@ -1213,6 +1217,8 @@ static struct attribute *hccs_chip_default_attrs[] = =3D { ATTRIBUTE_GROUPS(hccs_chip_default); =20 static const struct kobj_type hccs_chip_type =3D { + /* hccs_chip_info is allocated via devm_kcalloc() rather than freed by ko= bject_put(). */ + .release =3D NULL, .sysfs_ops =3D &hccs_comm_ops, .default_groups =3D hccs_chip_default_groups, }; diff --git a/drivers/video/fbdev/omap2/omapfb/dss/display-sysfs.c b/drivers= /video/fbdev/omap2/omapfb/dss/display-sysfs.c index ae937854403b..3d787245f5b5 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/display-sysfs.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/display-sysfs.c @@ -304,6 +304,8 @@ static const struct sysfs_ops display_sysfs_ops =3D { }; =20 static struct kobj_type display_ktype =3D { + /* dssdev->kobj is embedded in struct omap_dss_device and zeroed in displ= ay_uninit_sysfs(). */ + .release =3D NULL, .sysfs_ops =3D &display_sysfs_ops, .default_groups =3D display_sysfs_groups, }; diff --git a/drivers/video/fbdev/omap2/omapfb/dss/manager-sysfs.c b/drivers= /video/fbdev/omap2/omapfb/dss/manager-sysfs.c index 1b644be5fe2e..cf816e83e903 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/manager-sysfs.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/manager-sysfs.c @@ -496,6 +496,8 @@ static const struct sysfs_ops manager_sysfs_ops =3D { }; =20 static struct kobj_type manager_ktype =3D { + /* mgr->kobj is embedded in static managers[] and zeroed in dss_manager_k= obj_uninit(). */ + .release =3D NULL, .sysfs_ops =3D &manager_sysfs_ops, .default_groups =3D manager_sysfs_groups, }; diff --git a/drivers/video/fbdev/omap2/omapfb/dss/overlay-sysfs.c b/drivers= /video/fbdev/omap2/omapfb/dss/overlay-sysfs.c index 1da4fb1c77b4..9aa16b3dee5e 100644 --- a/drivers/video/fbdev/omap2/omapfb/dss/overlay-sysfs.c +++ b/drivers/video/fbdev/omap2/omapfb/dss/overlay-sysfs.c @@ -429,6 +429,8 @@ static const struct sysfs_ops overlay_sysfs_ops =3D { }; =20 static struct kobj_type overlay_ktype =3D { + /* ovl->kobj is embedded in static overlays[]; dss_overlay_kobj_uninit() = only calls kobject_del(). */ + .release =3D NULL, .sysfs_ops =3D &overlay_sysfs_ops, .default_groups =3D overlay_sysfs_groups, }; diff --git a/fs/erofs/sysfs.c b/fs/erofs/sysfs.c index dfcec9376cd5..588d541e1713 100644 --- a/fs/erofs/sysfs.c +++ b/fs/erofs/sysfs.c @@ -238,6 +238,8 @@ static const struct kobj_type erofs_sb_ktype =3D { static const struct kobj_type erofs_ktype =3D { .default_groups =3D erofs_groups, .sysfs_ops =3D &erofs_attr_ops, + /* erofs_root is a static struct kset; lifetime is not controlled by kobj= ect_put(). */ + .release =3D NULL, }; =20 static struct kset erofs_root =3D { @@ -247,6 +249,8 @@ static struct kset erofs_root =3D { static const struct kobj_type erofs_feat_ktype =3D { .default_groups =3D erofs_feat_groups, .sysfs_ops =3D &erofs_attr_ops, + /* erofs_feat is a static struct kobject; lifetime is not controlled by k= object_put(). */ + .release =3D NULL, }; =20 static struct kobject erofs_feat =3D { diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c index 811e350a1430..a66cef927c62 100644 --- a/fs/f2fs/sysfs.c +++ b/fs/f2fs/sysfs.c @@ -1653,6 +1653,8 @@ static const struct kobj_type f2fs_sb_ktype =3D { =20 static const struct kobj_type f2fs_ktype =3D { .sysfs_ops =3D &f2fs_attr_ops, + /* f2fs_kset is a static struct kset; lifetime is not controlled by kobje= ct_put(). */ + .release =3D NULL, }; =20 static struct kset f2fs_kset =3D { @@ -1667,6 +1669,8 @@ static const struct sysfs_ops f2fs_feat_attr_ops =3D { static const struct kobj_type f2fs_feat_ktype =3D { .default_groups =3D f2fs_feat_groups, .sysfs_ops =3D &f2fs_feat_attr_ops, + /* f2fs_feat is a static struct kobject; lifetime is not controlled by ko= bject_put(). */ + .release =3D NULL, }; =20 static struct kobject f2fs_feat =3D { @@ -1681,6 +1685,8 @@ static const struct sysfs_ops f2fs_tune_attr_ops =3D { static const struct kobj_type f2fs_tune_ktype =3D { .default_groups =3D f2fs_tune_groups, .sysfs_ops =3D &f2fs_tune_attr_ops, + /* f2fs_tune is a static struct kobject; lifetime is not controlled by ko= bject_put(). */ + .release =3D NULL, }; =20 static struct kobject f2fs_tune =3D { diff --git a/fs/ocfs2/cluster/masklog.c b/fs/ocfs2/cluster/masklog.c index 563881ddbf00..e476fa7ffea6 100644 --- a/fs/ocfs2/cluster/masklog.c +++ b/fs/ocfs2/cluster/masklog.c @@ -147,6 +147,8 @@ static const struct sysfs_ops mlog_attr_ops =3D { static struct kobj_type mlog_ktype =3D { .default_groups =3D mlog_default_groups, .sysfs_ops =3D &mlog_attr_ops, + /* mlog_kset is a static struct kset; lifetime is not controlled by kobje= ct_put(). */ + .release =3D NULL, }; =20 static struct kset mlog_kset =3D { diff --git a/include/linux/kobject.h b/include/linux/kobject.h index 55e37a5d405e..e65331717e03 100644 --- a/include/linux/kobject.h +++ b/include/linux/kobject.h @@ -114,7 +114,7 @@ void kobject_get_ownership(const struct kobject *kobj, = kuid_t *uid, kgid_t *gid) char *kobject_get_path(const struct kobject *kobj, gfp_t flag); =20 struct kobj_type { - void (*release)(struct kobject *kobj); + void (*release)(struct kobject *kobj) __require_explicit_initialization; const struct sysfs_ops *sysfs_ops; const struct attribute_group **default_groups; const struct kobj_ns_type_operations *(*child_ns_type)(const struct kobje= ct *kobj); --=20 2.56.0.385.gd3acb90ef8-goog