From nobody Thu Apr 9 13:32:57 2026 Received: from ewsoutbound.kpnmail.nl (ewsoutbound.kpnmail.nl [195.121.94.167]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7DF324014BB for ; Mon, 2 Mar 2026 15:12:07 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=195.121.94.167 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772464329; cv=none; b=n4kTkQJBnQgM+TZEZQt4VSGLEoX/9lidUcOM5XTYnKfx8uOWa9nIlC526RAsKNDfQLmrvuXTez/hCFV7/3RtPd3PQSje2h/QY/CJJgDqFkbY/7kv5ybHhk92kiyNVZeOIwpol0wWt74s6VUU3JOcI5Qin29UKk+Yi05A5lZ5hjw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772464329; c=relaxed/simple; bh=aJ3KJ4XBp7v1aGsFqBYoYCk7EypUgoIMsUzglsUNUEM=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=eIToAubXdiYfhdFgh1tG3Gb9otfhvSUzqE26OnrOtnp+iiAIQxjwgBj4m09hSqmXGhPrqRfA9G5X0zKwEMFY0qQ91BPsAT61DP4VuyiQS6tuxTBsvP4n3Uv+oLErB31tlPFQeomxknfSd5/b22Z4rlx59/nHGJfz1rDS7/CIh/Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xs4all.nl; spf=pass smtp.mailfrom=xs4all.nl; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b=EacRkGK0; arc=none smtp.client-ip=195.121.94.167 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=xs4all.nl Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=xs4all.nl Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=xs4all.nl header.i=@xs4all.nl header.b="EacRkGK0" X-KPN-MessageId: 2cbbce9c-164a-11f1-969b-005056abbe64 Received: from smtp.kpnmail.nl (unknown [10.31.155.40]) by ewsoutbound.so.kpn.org (Halon) with ESMTPS id 2cbbce9c-164a-11f1-969b-005056abbe64; Mon, 02 Mar 2026 16:12:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=xs4all.nl; s=xs4all01; h=mime-version:message-id:date:subject:to:from; bh=C21dBVnUH6KSQlp422gk0ytS7FTXs3Wpv+89gHyGODY=; b=EacRkGK0juOIViFuou9PWh1A6RwzwUG/fImeBVPZhyyqj4eLmh5Gj2iPMPzIIO8NOJc0DhptDXO+u 2x7mONEomI6M3jBgH9Vamrqy32v3CEmrovXfGAPonD5Fewm26vm/JFpeR4Wj0/2wXbkQU/IRIkO1Lh XFSNkGGWBvj0gD0kypdmI3u7i8kotjPIGRG/neoMW6x62e5rWbkSbLCeiB9XJBtErGifKMtVee/n7Z mBPWnH5rLP9ei6BclrXfA3C8yY+GoN6A/OLowvvUPHBTXWBM/wYVeG+50225RC8aQoQOxHXAa6RHaY sCQpmFWqbqfWcjFPh1vydBSWkVkcpmw== X-KPN-MID: 33|8nwFhOOUwgzoGJ3RJHAE8/J1zHzCgnvAXtXKkOFA4Z5L8t3xG3YLo5UcfWhQRKZ 6WhrIjERydhnkhqJ62B/qeGjg0XzqE/KqgUBL/SSijws= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|u6ZpglW4pk9vKj/nyqZRyJS3vH6d39296C6GWX3By63qKTbjxmnkU26tMwUZiyG wV/GnjTCeYybTM06O4npl5g== Received: from daedalus.home (unknown [178.225.116.246]) by smtp.xs4all.nl (Halon) with ESMTPSA id 2a052bf4-164a-11f1-b8e2-005056ab7584; Mon, 02 Mar 2026 16:12:05 +0100 (CET) From: Jori Koolstra To: giometti@enneenne.com, linux-kernel@vger.kernel.org Cc: Jori Koolstra , Greg Kroah-Hartman Subject: [PATCH] pps: change pps_class to a const struct Date: Mon, 2 Mar 2026 16:11:32 +0100 Message-ID: <20260302151132.3302993-1-jkoolstra@xs4all.nl> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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_class to be a const struct class and drop the class_create() call. Suggested-by: Greg Kroah-Hartman Signed-off-by: Jori Koolstra Acked-by: Rodolfo Giometti Reviewed-by: Greg Kroah-Hartman --- drivers/pps/pps.c | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/drivers/pps/pps.c b/drivers/pps/pps.c index c6b8b6478276..de1122bb69ea 100644 --- a/drivers/pps/pps.c +++ b/drivers/pps/pps.c @@ -26,7 +26,10 @@ */ =20 static int pps_major; -static struct class *pps_class; +static const struct class pps_class =3D { + .name =3D "pps", + .dev_groups =3D pps_groups +}; =20 static DEFINE_MUTEX(pps_idr_lock); static DEFINE_IDR(pps_idr); @@ -379,7 +382,7 @@ int pps_register_cdev(struct pps_device *pps) } pps->id =3D err; =20 - pps->dev.class =3D pps_class; + pps->dev.class =3D &pps_class; pps->dev.parent =3D pps->info.dev; pps->dev.devt =3D MKDEV(pps_major, pps->id); dev_set_drvdata(&pps->dev, pps); @@ -408,7 +411,7 @@ void pps_unregister_cdev(struct pps_device *pps) { pr_debug("unregistering pps%d\n", pps->id); pps->lookup_cookie =3D NULL; - device_destroy(pps_class, pps->dev.devt); + device_destroy(&pps_class, pps->dev.devt); =20 /* Now we can release the ID for re-use */ mutex_lock(&pps_idr_lock); @@ -460,18 +463,19 @@ EXPORT_SYMBOL(pps_lookup_dev); =20 static void __exit pps_exit(void) { - class_destroy(pps_class); + class_unregister(&pps_class); __unregister_chrdev(pps_major, 0, PPS_MAX_SOURCES, "pps"); } =20 static int __init pps_init(void) { - pps_class =3D class_create("pps"); - if (IS_ERR(pps_class)) { - pr_err("failed to allocate class\n"); - return PTR_ERR(pps_class); + int err; + + err =3D class_register(&pps_class); + if (err) { + pr_err("failed to register class\n"); + return err; } - pps_class->dev_groups =3D pps_groups; =20 pps_major =3D __register_chrdev(0, 0, PPS_MAX_SOURCES, "pps", &pps_cdev_fops); @@ -487,7 +491,7 @@ static int __init pps_init(void) return 0; =20 remove_class: - class_destroy(pps_class); + class_unregister(&pps_class); return pps_major; } =20 base-commit: d466c332e106fe666d1e2f5a24d08e308bebbfa1 --=20 2.53.0