diff options
author | Vivien Didelot <vivien.didelot@savoirfairelinux.com> | 2017-02-03 13:20:16 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-02-06 16:53:28 -0500 |
commit | 88e4f0ca4e4e7760e4aad544789c5408219886d5 (patch) | |
tree | e25b7133b1eb9de8523fbda5e0dc0f91422cf0dc /net/dsa/dsa.c | |
parent | 321fa4ffd94e333657e54037d2511c862ec92f6f (diff) | |
download | linux-88e4f0ca4e4e7760e4aad544789c5408219886d5.tar.gz linux-88e4f0ca4e4e7760e4aad544789c5408219886d5.tar.bz2 linux-88e4f0ca4e4e7760e4aad544789c5408219886d5.zip |
net: dsa: move netdevice notifier registration
Move the netdevice notifier block register code in slave.c and provide
helpers for dsa.c to register and unregister it.
At the same time, check for errors since (un)register_netdevice_notifier
may fail.
Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/dsa/dsa.c')
-rw-r--r-- | net/dsa/dsa.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c index 619e57a44d1d..beb79ccf0f59 100644 --- a/net/dsa/dsa.c +++ b/net/dsa/dsa.c @@ -903,10 +903,6 @@ static struct packet_type dsa_pack_type __read_mostly = { .func = dsa_switch_rcv, }; -static struct notifier_block dsa_netdevice_nb __read_mostly = { - .notifier_call = dsa_slave_netdevice_event, -}; - #ifdef CONFIG_PM_SLEEP static int dsa_suspend(struct device *d) { @@ -964,7 +960,9 @@ static int __init dsa_init_module(void) { int rc; - register_netdevice_notifier(&dsa_netdevice_nb); + rc = dsa_slave_register_notifier(); + if (rc) + return rc; rc = platform_driver_register(&dsa_driver); if (rc) @@ -978,7 +976,7 @@ module_init(dsa_init_module); static void __exit dsa_cleanup_module(void) { - unregister_netdevice_notifier(&dsa_netdevice_nb); + dsa_slave_unregister_notifier(); dev_remove_pack(&dsa_pack_type); platform_driver_unregister(&dsa_driver); } |