]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net/af_iucv: clean up a try_then_request_module()
authorJulian Wiedmann <jwi@linux.ibm.com>
Mon, 9 Aug 2021 08:30:47 +0000 (10:30 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 23 Feb 2024 07:42:21 +0000 (08:42 +0100)
[ Upstream commit 4eb9eda6ba64114d98827e2870e024d5ab7cd35b ]

Use IS_ENABLED(CONFIG_IUCV) to determine whether the iucv_if symbol
is available, and let depmod deal with the module dependency.

This was introduced back with commit 6fcd61f7bf5d ("af_iucv: use
loadable iucv interface"). And to avoid sprinkling IS_ENABLED() over
all the code, we're keeping the indirection through pr_iucv->...().

Signed-off-by: Julian Wiedmann <jwi@linux.ibm.com>
Signed-off-by: Karsten Graul <kgraul@linux.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
net/iucv/af_iucv.c

index e14368ced21f8ee431a097662657dfd522ab2e20..7c73faa5336cd6781e58d9df2cda3353cec2eda7 100644 (file)
@@ -2310,7 +2310,7 @@ static int __init afiucv_init(void)
 {
        int err;
 
-       if (MACHINE_IS_VM) {
+       if (MACHINE_IS_VM && IS_ENABLED(CONFIG_IUCV)) {
                cpcmd("QUERY USERID", iucv_userid, sizeof(iucv_userid), &err);
                if (unlikely(err)) {
                        WARN_ON(err);
@@ -2318,11 +2318,7 @@ static int __init afiucv_init(void)
                        goto out;
                }
 
-               pr_iucv = try_then_request_module(symbol_get(iucv_if), "iucv");
-               if (!pr_iucv) {
-                       printk(KERN_WARNING "iucv_if lookup failed\n");
-                       memset(&iucv_userid, 0, sizeof(iucv_userid));
-               }
+               pr_iucv = &iucv_if;
        } else {
                memset(&iucv_userid, 0, sizeof(iucv_userid));
                pr_iucv = NULL;
@@ -2356,17 +2352,13 @@ out_sock:
 out_proto:
        proto_unregister(&iucv_proto);
 out:
-       if (pr_iucv)
-               symbol_put(iucv_if);
        return err;
 }
 
 static void __exit afiucv_exit(void)
 {
-       if (pr_iucv) {
+       if (pr_iucv)
                afiucv_iucv_exit();
-               symbol_put(iucv_if);
-       }
 
        unregister_netdevice_notifier(&afiucv_netdev_notifier);
        dev_remove_pack(&iucv_packet_type);