From: Sasha Levin <sashal@kernel.org>
To: stable@vger.kernel.org
Cc: Jori Koolstra <jkoolstra@xs4all.nl>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Rodolfo Giometti <giometti@enneenne.com>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 6.18.y 1/2] pps: change pps_gen_class to a const struct
Date: Wed, 4 Nov 2026 10:58:22 -0500 [thread overview]
Message-ID: <20261104155729.3918440-1-sashal@kernel.org> (raw)
In-Reply-To: <2026110401-glitch-riveting-80d2@gregkh>
From: Jori Koolstra <jkoolstra@xs4all.nl>
[ Upstream commit 4dc0c899b14c3ea2c9b5f42b523301040d1c8100 ]
The class_create() call has been deprecated in favor of class_register()
as the driver core now allows for a struct class to be in read-only
memory. Change pps_gen_class to be a const struct class and drop the
class_create() call.
Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Rodolfo Giometti <giometti@enneenne.com>
Link: https://patch.msgid.link/20260302142436.3292766-1-jkoolstra@xs4all.nl
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Stable-dep-of: d19552611cb2 ("pps: generators: fix use-after-free when closing a removed device")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/pps/generators/pps_gen.c | 22 ++++++++++++----------
1 file changed, 12 insertions(+), 10 deletions(-)
diff --git a/drivers/pps/generators/pps_gen.c b/drivers/pps/generators/pps_gen.c
index 5b8bb454913cd..e064ff32c9cd9 100644
--- a/drivers/pps/generators/pps_gen.c
+++ b/drivers/pps/generators/pps_gen.c
@@ -26,7 +26,10 @@
*/
static dev_t pps_gen_devt;
-static struct class *pps_gen_class;
+static const struct class pps_gen_class = {
+ .name = "pps-gen",
+ .dev_groups = pps_gen_groups
+};
static DEFINE_IDA(pps_gen_ida);
@@ -183,7 +186,7 @@ static int pps_gen_register_cdev(struct pps_gen_device *pps_gen)
MAJOR(pps_gen_devt), pps_gen->id);
goto free_ida;
}
- pps_gen->dev = device_create(pps_gen_class, pps_gen->info->parent, devt,
+ pps_gen->dev = device_create(&pps_gen_class, pps_gen->info->parent, devt,
pps_gen, "pps-gen%d", pps_gen->id);
if (IS_ERR(pps_gen->dev)) {
err = PTR_ERR(pps_gen->dev);
@@ -207,7 +210,7 @@ static int pps_gen_register_cdev(struct pps_gen_device *pps_gen)
static void pps_gen_unregister_cdev(struct pps_gen_device *pps_gen)
{
pr_debug("unregistering pps-gen%d\n", pps_gen->id);
- device_destroy(pps_gen_class, pps_gen->dev->devt);
+ device_destroy(&pps_gen_class, pps_gen->dev->devt);
}
/*
@@ -307,7 +310,7 @@ EXPORT_SYMBOL(pps_gen_event);
static void __exit pps_gen_exit(void)
{
- class_destroy(pps_gen_class);
+ class_unregister(&pps_gen_class);
unregister_chrdev_region(pps_gen_devt, PPS_GEN_MAX_SOURCES);
}
@@ -315,12 +318,11 @@ static int __init pps_gen_init(void)
{
int err;
- pps_gen_class = class_create("pps-gen");
- if (IS_ERR(pps_gen_class)) {
- pr_err("failed to allocate class\n");
- return PTR_ERR(pps_gen_class);
+ err = class_register(&pps_gen_class);
+ if (err) {
+ pr_err("failed to register class\n");
+ return err;
}
- pps_gen_class->dev_groups = pps_gen_groups;
err = alloc_chrdev_region(&pps_gen_devt, 0,
PPS_GEN_MAX_SOURCES, "pps-gen");
@@ -332,7 +334,7 @@ static int __init pps_gen_init(void)
return 0;
remove_class:
- class_destroy(pps_gen_class);
+ class_unregister(&pps_gen_class);
return err;
}
--
2.53.0
next prev parent reply other threads:[~2026-11-04 15:58 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-11-04 13:37 FAILED: patch "[PATCH] pps: generators: fix use-after-free when closing a removed" failed to apply to 6.18-stable tree gregkh
2026-11-04 15:58 ` Sasha Levin [this message]
2026-11-04 15:58 ` [PATCH 6.18.y 2/2] pps: generators: fix use-after-free when closing a removed device Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20261104155729.3918440-1-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=giometti@enneenne.com \
--cc=gregkh@linuxfoundation.org \
--cc=jkoolstra@xs4all.nl \
--cc=stable@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox