From 2082fe9d23a68cfa421a795dbcd9945e5ce0b8ce Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Tue, 13 Feb 2024 07:19:37 -0500 Subject: [PATCH] Fixes for 4.19 Signed-off-by: Sasha Levin --- ...v-clean-up-a-try_then_request_module.patch | 72 +++++++++++++++++++ queue-4.19/series | 1 + 2 files changed, 73 insertions(+) create mode 100644 queue-4.19/net-af_iucv-clean-up-a-try_then_request_module.patch diff --git a/queue-4.19/net-af_iucv-clean-up-a-try_then_request_module.patch b/queue-4.19/net-af_iucv-clean-up-a-try_then_request_module.patch new file mode 100644 index 00000000000..5f2015d543c --- /dev/null +++ b/queue-4.19/net-af_iucv-clean-up-a-try_then_request_module.patch @@ -0,0 +1,72 @@ +From 144819e2c810e7ff2e8bcf18f8b5cbbe73f14b85 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Mon, 9 Aug 2021 10:30:47 +0200 +Subject: net/af_iucv: clean up a try_then_request_module() + +From: Julian Wiedmann + +[ 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 +Signed-off-by: Karsten Graul +Signed-off-by: David S. Miller +Signed-off-by: Sasha Levin +--- + 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 d59f2341bfec..1ff2860dd3ff 100644 +--- a/net/iucv/af_iucv.c ++++ b/net/iucv/af_iucv.c +@@ -2477,7 +2477,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); +@@ -2485,11 +2485,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; +@@ -2523,17 +2519,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 + diff --git a/queue-4.19/series b/queue-4.19/series index 135d646150e..9f13d734acd 100644 --- a/queue-4.19/series +++ b/queue-4.19/series @@ -155,3 +155,4 @@ tipc-check-the-bearer-type-before-calling-tipc_udp_n.patch ppp_async-limit-mru-to-64k.patch netfilter-nft_compat-reject-unused-compat-flag.patch netfilter-nft_compat-restrict-match-target-protocol-.patch +net-af_iucv-clean-up-a-try_then_request_module.patch -- 2.47.3