diff mbox series

[net,1/1] net: phylink: Add module_exit()

Message ID 20231127101603.807593-1-yi.fang.gan@intel.com (mailing list archive)
State Changes Requested
Delegated to: Netdev Maintainers
Headers show
Series [net,1/1] net: phylink: Add module_exit() | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/codegen success Generated files up to date
netdev/tree_selection success Clearly marked for net
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 1115 this patch: 1115
netdev/cc_maintainers success CCed 8 of 8 maintainers
netdev/build_clang success Errors and warnings before: 1142 this patch: 1142
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 1142 this patch: 1142
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 10 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 0 this patch: 0
netdev/source_inline success Was 0 now: 0

Commit Message

Gan, Yi Fang Nov. 27, 2023, 10:16 a.m. UTC
From: "Gan, Yi Fang" <yi.fang.gan@intel.com>

In free_module(), if mod->init callback is defined but mod->exit callback
is not defined, it will assume the module cannot be removed and return
EBUSY. The module_exit() is missing from current phylink module drive
causing failure while unloading it.

This patch introduces phylink_exit() for phylink module removal.

Fixes: eca68a3c7d05 ("net: phylink: pass supported host PHY interface modes to phylib for SFP's PHYs")
Cc: <stable@vger.kernel.org> # 6.1+
Signed-off-by: Lai Peter Jun Ann <jun.ann.lai@intel.com>
Signed-off-by: Gan, Yi Fang <yi.fang.gan@intel.com>
---
 drivers/net/phy/phylink.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Russell King (Oracle) Nov. 27, 2023, 10:27 a.m. UTC | #1
On Mon, Nov 27, 2023 at 06:16:03PM +0800, Gan Yi Fang wrote:
> diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
> index 25c19496a336..7121503c9259 100644
> --- a/drivers/net/phy/phylink.c
> +++ b/drivers/net/phy/phylink.c
> @@ -3724,7 +3724,10 @@ static int __init phylink_init(void)
>  	return 0;
>  }
>  
> +static void __exit phylink_exit(void){}

Please format that as:

static void __exit phylink_exit(void)
{
}

and move it _after_ module_init().

Thanks.
Alexander Lobakin Nov. 27, 2023, 1:01 p.m. UTC | #2
From: Gan Yi Fang <yi.fang.gan@intel.com>
Date: Mon, 27 Nov 2023 18:16:03 +0800

> From: "Gan, Yi Fang" <yi.fang.gan@intel.com>

Please fix your Git vs mail client settings, so that your own patches
won't contain "From:" with your own name.
I'd suggest using "Gan Yi Fang", as that Intel's versions with commas
(,) aren't optimal for mailing lists and development.

> 
> In free_module(), if mod->init callback is defined but mod->exit callback
> is not defined, it will assume the module cannot be removed and return
> EBUSY. The module_exit() is missing from current phylink module drive
> causing failure while unloading it.
> 
> This patch introduces phylink_exit() for phylink module removal.
> 
> Fixes: eca68a3c7d05 ("net: phylink: pass supported host PHY interface modes to phylib for SFP's PHYs")
> Cc: <stable@vger.kernel.org> # 6.1+
> Signed-off-by: Lai Peter Jun Ann <jun.ann.lai@intel.com>
> Signed-off-by: Gan, Yi Fang <yi.fang.gan@intel.com>
> ---
>  drivers/net/phy/phylink.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
> index 25c19496a336..7121503c9259 100644
> --- a/drivers/net/phy/phylink.c
> +++ b/drivers/net/phy/phylink.c
> @@ -3724,7 +3724,10 @@ static int __init phylink_init(void)
>  	return 0;
>  }
>  
> +static void __exit phylink_exit(void){}
> +
>  module_init(phylink_init);
> +module_exit(phylink_exit);

This pattern (empty __exit function + module_exit()) is +/- common in
the kernel. How about making a macro from it, just like it's done with
e.g. module_platform_driver() etc.?
So that you could just add to phylink.c something like:

module_exit_stub(phylink);

>  
>  MODULE_LICENSE("GPL v2");
>  MODULE_DESCRIPTION("phylink models the MAC to optional PHY connection");

Thanks,
Olek
diff mbox series

Patch

diff --git a/drivers/net/phy/phylink.c b/drivers/net/phy/phylink.c
index 25c19496a336..7121503c9259 100644
--- a/drivers/net/phy/phylink.c
+++ b/drivers/net/phy/phylink.c
@@ -3724,7 +3724,10 @@  static int __init phylink_init(void)
 	return 0;
 }
 
+static void __exit phylink_exit(void){}
+
 module_init(phylink_init);
+module_exit(phylink_exit);
 
 MODULE_LICENSE("GPL v2");
 MODULE_DESCRIPTION("phylink models the MAC to optional PHY connection");