]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
s390/hmcdrv: Remove commented out code
authorJori Koolstra <jkoolstra@xs4all.nl>
Sun, 8 Mar 2026 10:32:51 +0000 (11:32 +0100)
committerVasily Gorbik <gor@linux.ibm.com>
Thu, 2 Apr 2026 10:06:29 +0000 (12:06 +0200)
The create_class() api is retiring in favor of class_register() (see:
https://lore.kernel.org/all/2023040244-duffel-pushpin-f738@gregkh/).
The HMCDRV_DEV_CLASS define is hiding a use of create_class(), but it is
permanently disabled as it is commented out. To avoid supporting code
that is disabled, the suggestion is to remove all code hiding be behind
any #ifdef HMCDRV_DEV_CLASS.

Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Jori Koolstra <jkoolstra@xs4all.nl>
Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20260308103255.757461-1-jkoolstra@xs4all.nl
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
drivers/s390/char/hmcdrv_dev.c

index 04b938c5357f5fcbca66bd4e55525779b0a47d2a..0d9c636df2c6304c8d2be4297ce8f069865c5917 100644 (file)
 #include "hmcdrv_dev.h"
 #include "hmcdrv_ftp.h"
 
-/* If the following macro is defined, then the HMC device creates it's own
- * separated device class (and dynamically assigns a major number). If not
- * defined then the HMC device is assigned to the "misc" class devices.
- *
-#define HMCDRV_DEV_CLASS "hmcftp"
- */
-
 #define HMCDRV_DEV_NAME  "hmcdrv"
 #define HMCDRV_DEV_BUSY_DELAY   500 /* delay between -EBUSY trials in ms */
 #define HMCDRV_DEV_BUSY_RETRIES  3   /* number of retries on -EBUSY */
 
 struct hmcdrv_dev_node {
-
-#ifdef HMCDRV_DEV_CLASS
-       struct cdev dev; /* character device structure */
-       umode_t mode;    /* mode of device node (unused, zero) */
-#else
        struct miscdevice dev; /* "misc" device structure */
-#endif
-
 };
 
 static int hmcdrv_dev_open(struct inode *inode, struct file *fp);
@@ -75,38 +61,6 @@ static const struct file_operations hmcdrv_dev_fops = {
 
 static struct hmcdrv_dev_node hmcdrv_dev; /* HMC device struct (static) */
 
-#ifdef HMCDRV_DEV_CLASS
-
-static struct class *hmcdrv_dev_class; /* device class pointer */
-static dev_t hmcdrv_dev_no; /* device number (major/minor) */
-
-/**
- * hmcdrv_dev_name() - provides a naming hint for a device node in /dev
- * @dev: device for which the naming/mode hint is
- * @mode: file mode for device node created in /dev
- *
- * See: devtmpfs.c, function devtmpfs_create_node()
- *
- * Return: recommended device file name in /dev
- */
-static char *hmcdrv_dev_name(const struct device *dev, umode_t *mode)
-{
-       char *nodename = NULL;
-       const char *devname = dev_name(dev); /* kernel device name */
-
-       if (devname)
-               nodename = kasprintf(GFP_KERNEL, "%s", devname);
-
-       /* on device destroy (rmmod) the mode pointer may be NULL
-        */
-       if (mode)
-               *mode = hmcdrv_dev.mode;
-
-       return nodename;
-}
-
-#endif /* HMCDRV_DEV_CLASS */
-
 /*
  * open()
  */
@@ -276,67 +230,11 @@ static ssize_t hmcdrv_dev_write(struct file *fp, const char __user *ubuf,
  */
 int hmcdrv_dev_init(void)
 {
-       int rc;
-
-#ifdef HMCDRV_DEV_CLASS
-       struct device *dev;
-
-       rc = alloc_chrdev_region(&hmcdrv_dev_no, 0, 1, HMCDRV_DEV_NAME);
-
-       if (rc)
-               goto out_err;
-
-       cdev_init(&hmcdrv_dev.dev, &hmcdrv_dev_fops);
-       hmcdrv_dev.dev.owner = THIS_MODULE;
-       rc = cdev_add(&hmcdrv_dev.dev, hmcdrv_dev_no, 1);
-
-       if (rc)
-               goto out_unreg;
-
-       /* At this point the character device exists in the kernel (see
-        * /proc/devices), but not under /dev nor /sys/devices/virtual. So
-        * we have to create an associated class (see /sys/class).
-        */
-       hmcdrv_dev_class = class_create(HMCDRV_DEV_CLASS);
-
-       if (IS_ERR(hmcdrv_dev_class)) {
-               rc = PTR_ERR(hmcdrv_dev_class);
-               goto out_devdel;
-       }
-
-       /* Finally a device node in /dev has to be established (as 'mkdev'
-        * does from the command line). Notice that assignment of a device
-        * node name/mode function is optional (only for mode != 0600).
-        */
-       hmcdrv_dev.mode = 0; /* "unset" */
-       hmcdrv_dev_class->devnode = hmcdrv_dev_name;
-
-       dev = device_create(hmcdrv_dev_class, NULL, hmcdrv_dev_no, NULL,
-                           "%s", HMCDRV_DEV_NAME);
-       if (!IS_ERR(dev))
-               return 0;
-
-       rc = PTR_ERR(dev);
-       class_destroy(hmcdrv_dev_class);
-       hmcdrv_dev_class = NULL;
-
-out_devdel:
-       cdev_del(&hmcdrv_dev.dev);
-
-out_unreg:
-       unregister_chrdev_region(hmcdrv_dev_no, 1);
-
-out_err:
-
-#else  /* !HMCDRV_DEV_CLASS */
        hmcdrv_dev.dev.minor = MISC_DYNAMIC_MINOR;
        hmcdrv_dev.dev.name = HMCDRV_DEV_NAME;
        hmcdrv_dev.dev.fops = &hmcdrv_dev_fops;
        hmcdrv_dev.dev.mode = 0; /* finally produces 0600 */
-       rc = misc_register(&hmcdrv_dev.dev);
-#endif /* HMCDRV_DEV_CLASS */
-
-       return rc;
+       return misc_register(&hmcdrv_dev.dev);
 }
 
 /**
@@ -344,15 +242,5 @@ out_err:
  */
 void hmcdrv_dev_exit(void)
 {
-#ifdef HMCDRV_DEV_CLASS
-       if (!IS_ERR_OR_NULL(hmcdrv_dev_class)) {
-               device_destroy(hmcdrv_dev_class, hmcdrv_dev_no);
-               class_destroy(hmcdrv_dev_class);
-       }
-
-       cdev_del(&hmcdrv_dev.dev);
-       unregister_chrdev_region(hmcdrv_dev_no, 1);
-#else  /* !HMCDRV_DEV_CLASS */
        misc_deregister(&hmcdrv_dev.dev);
-#endif /* HMCDRV_DEV_CLASS */
 }