tty: hvc-iucv: Make use of iucv_alloc_device()
authorHeiko Carstens <hca@linux.ibm.com>
Mon, 6 May 2024 19:44:53 +0000 (21:44 +0200)
committerAlexander Gordeev <agordeev@linux.ibm.com>
Tue, 14 May 2024 18:21:04 +0000 (20:21 +0200)
Make use of iucv_alloc_device() to get rid of quite some code.

Acked-by: Alexandra Winter <wintera@linux.ibm.com>
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Link: https://lore.kernel.org/r/20240506194454.1160315-6-hca@linux.ibm.com
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
drivers/tty/hvc/hvc_iucv.c

index b1149bc62ca1f35b37d3cd00126c0e81e847b716..ed4bf40278a7eaaa94a1b49e2c9b4508630ff29b 100644 (file)
@@ -1035,11 +1035,6 @@ static const struct attribute_group *hvc_iucv_dev_attr_groups[] = {
        NULL,
 };
 
-static void hvc_iucv_free(struct device *data)
-{
-       kfree(data);
-}
-
 /**
  * hvc_iucv_alloc() - Allocates a new struct hvc_iucv_private instance
  * @id:                        hvc_iucv_table index
@@ -1090,18 +1085,12 @@ static int __init hvc_iucv_alloc(int id, unsigned int is_console)
        memcpy(priv->srv_name, name, 8);
        ASCEBC(priv->srv_name, 8);
 
-       /* create and setup device */
-       priv->dev = kzalloc(sizeof(*priv->dev), GFP_KERNEL);
+       priv->dev = iucv_alloc_device(hvc_iucv_dev_attr_groups, NULL,
+                                     priv, "hvc_iucv%d", id);
        if (!priv->dev) {
                rc = -ENOMEM;
                goto out_error_dev;
        }
-       dev_set_name(priv->dev, "hvc_iucv%d", id);
-       dev_set_drvdata(priv->dev, priv);
-       priv->dev->bus = &iucv_bus;
-       priv->dev->parent = iucv_root;
-       priv->dev->groups = hvc_iucv_dev_attr_groups;
-       priv->dev->release = hvc_iucv_free;
        rc = device_register(priv->dev);
        if (rc) {
                put_device(priv->dev);