]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Fixes for 5.10
authorSasha Levin <sashal@kernel.org>
Tue, 13 Feb 2024 12:19:36 +0000 (07:19 -0500)
committerSasha Levin <sashal@kernel.org>
Tue, 13 Feb 2024 12:19:36 +0000 (07:19 -0500)
Signed-off-by: Sasha Levin <sashal@kernel.org>
queue-5.10/net-af_iucv-clean-up-a-try_then_request_module.patch [new file with mode: 0644]
queue-5.10/series

diff --git a/queue-5.10/net-af_iucv-clean-up-a-try_then_request_module.patch b/queue-5.10/net-af_iucv-clean-up-a-try_then_request_module.patch
new file mode 100644 (file)
index 0000000..8f06dc8
--- /dev/null
@@ -0,0 +1,72 @@
+From 943ef15c60b09c957c7e4628fd31660215836f29 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Mon, 9 Aug 2021 10:30:47 +0200
+Subject: net/af_iucv: clean up a try_then_request_module()
+
+From: Julian Wiedmann <jwi@linux.ibm.com>
+
+[ 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 | 14 +++-----------
+ 1 file changed, 3 insertions(+), 11 deletions(-)
+
+diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
+index e14368ced21f..7c73faa5336c 100644
+--- a/net/iucv/af_iucv.c
++++ b/net/iucv/af_iucv.c
+@@ -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 @@ static int __init afiucv_init(void)
+ 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);
+-- 
+2.43.0
+
index c204f0ddf6a4e287e39a850a35b47da8901b9fb9..011c39fef371c451c721d253373ce694f9b9ef78 100644 (file)
@@ -272,3 +272,4 @@ netfilter-nft_set_pipapo-add-helper-to-release-pcpu-.patch
 netfilter-nft_set_pipapo-remove-scratch_aligned-poin.patch
 scsi-core-move-scsi_host_busy-out-of-host-lock-if-it.patch
 blk-iocost-fix-an-ubsan-shift-out-of-bounds-warning.patch
+net-af_iucv-clean-up-a-try_then_request_module.patch