diff options
author | remi.denis-courmont@nokia <remi.denis-courmont@nokia> | 2009-01-22 22:00:27 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-27 00:03:34 -0500 |
commit | 76e02cf6945e6faa9f6b546dc0513512197c5966 (patch) | |
tree | e296f93f6ba6571443704871bf2d399a3bc5b98e /net/phonet | |
parent | 4b8f704bea70a2c8719e47f53197678a87a0c62f (diff) |
Phonet: allow phonet_device_init() to fail, put it to __init section
Signed-off-by: RĂ©mi Denis-Courmont <remi.denis-courmont@nokia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/phonet')
-rw-r--r-- | net/phonet/af_phonet.c | 9 | ||||
-rw-r--r-- | net/phonet/pn_dev.c | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/net/phonet/af_phonet.c b/net/phonet/af_phonet.c index c7c39d92ee5e..95bc49ddb8bf 100644 --- a/net/phonet/af_phonet.c +++ b/net/phonet/af_phonet.c | |||
@@ -426,16 +426,18 @@ static int __init phonet_init(void) | |||
426 | { | 426 | { |
427 | int err; | 427 | int err; |
428 | 428 | ||
429 | err = phonet_device_init(); | ||
430 | if (err) | ||
431 | return err; | ||
432 | |||
429 | err = sock_register(&phonet_proto_family); | 433 | err = sock_register(&phonet_proto_family); |
430 | if (err) { | 434 | if (err) { |
431 | printk(KERN_ALERT | 435 | printk(KERN_ALERT |
432 | "phonet protocol family initialization failed\n"); | 436 | "phonet protocol family initialization failed\n"); |
433 | return err; | 437 | goto err_sock; |
434 | } | 438 | } |
435 | 439 | ||
436 | phonet_device_init(); | ||
437 | dev_add_pack(&phonet_packet_type); | 440 | dev_add_pack(&phonet_packet_type); |
438 | phonet_netlink_register(); | ||
439 | phonet_sysctl_init(); | 441 | phonet_sysctl_init(); |
440 | 442 | ||
441 | err = isi_register(); | 443 | err = isi_register(); |
@@ -447,6 +449,7 @@ err: | |||
447 | phonet_sysctl_exit(); | 449 | phonet_sysctl_exit(); |
448 | sock_unregister(PF_PHONET); | 450 | sock_unregister(PF_PHONET); |
449 | dev_remove_pack(&phonet_packet_type); | 451 | dev_remove_pack(&phonet_packet_type); |
452 | err_sock: | ||
450 | phonet_device_exit(); | 453 | phonet_device_exit(); |
451 | return err; | 454 | return err; |
452 | } | 455 | } |
diff --git a/net/phonet/pn_dev.c b/net/phonet/pn_dev.c index 5491bf5e354b..af49db01d634 100644 --- a/net/phonet/pn_dev.c +++ b/net/phonet/pn_dev.c | |||
@@ -188,9 +188,11 @@ static struct notifier_block phonet_device_notifier = { | |||
188 | }; | 188 | }; |
189 | 189 | ||
190 | /* Initialize Phonet devices list */ | 190 | /* Initialize Phonet devices list */ |
191 | void phonet_device_init(void) | 191 | int __init phonet_device_init(void) |
192 | { | 192 | { |
193 | register_netdevice_notifier(&phonet_device_notifier); | 193 | register_netdevice_notifier(&phonet_device_notifier); |
194 | phonet_netlink_register(); | ||
195 | return 0; | ||
194 | } | 196 | } |
195 | 197 | ||
196 | void phonet_device_exit(void) | 198 | void phonet_device_exit(void) |