Commit 291480c0 authored by Daniel Lezcano's avatar Daniel Lezcano Committed by David S. Miller

[NETNS][IPV6]: Make ipv6_sysctl_register to return a value.

This patch makes the function ipv6_sysctl_register to return a
value. The af_inet6 init function is now able to handle an error and
catch it from the initialization of the sysctl.
Signed-off-by: default avatarDaniel Lezcano <dlezcano@fr.ibm.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 50dd7965
...@@ -622,7 +622,7 @@ static inline int snmp6_unregister_dev(struct inet6_dev *idev) ...@@ -622,7 +622,7 @@ static inline int snmp6_unregister_dev(struct inet6_dev *idev)
extern ctl_table ipv6_route_table[]; extern ctl_table ipv6_route_table[];
extern ctl_table ipv6_icmp_table[]; extern ctl_table ipv6_icmp_table[];
extern void ipv6_sysctl_register(void); extern int ipv6_sysctl_register(void);
extern void ipv6_sysctl_unregister(void); extern void ipv6_sysctl_unregister(void);
#endif #endif
......
...@@ -783,7 +783,9 @@ static int __init inet6_init(void) ...@@ -783,7 +783,9 @@ static int __init inet6_init(void)
*/ */
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
ipv6_sysctl_register(); err = ipv6_sysctl_register();
if (err)
goto sysctl_fail;
#endif #endif
err = icmpv6_init(&inet6_family_ops); err = icmpv6_init(&inet6_family_ops);
if (err) if (err)
...@@ -897,6 +899,7 @@ static int __init inet6_init(void) ...@@ -897,6 +899,7 @@ static int __init inet6_init(void)
icmp_fail: icmp_fail:
#ifdef CONFIG_SYSCTL #ifdef CONFIG_SYSCTL
ipv6_sysctl_unregister(); ipv6_sysctl_unregister();
sysctl_fail:
#endif #endif
cleanup_ipv6_mibs(); cleanup_ipv6_mibs();
out_unregister_sock: out_unregister_sock:
......
...@@ -91,10 +91,15 @@ EXPORT_SYMBOL_GPL(net_ipv6_ctl_path); ...@@ -91,10 +91,15 @@ EXPORT_SYMBOL_GPL(net_ipv6_ctl_path);
static struct ctl_table_header *ipv6_sysctl_header; static struct ctl_table_header *ipv6_sysctl_header;
void ipv6_sysctl_register(void) int ipv6_sysctl_register(void)
{ {
ipv6_sysctl_header = register_sysctl_paths(net_ipv6_ctl_path, ipv6_sysctl_header = register_sysctl_paths(net_ipv6_ctl_path,
ipv6_table); ipv6_table);
if (!ipv6_sysctl_header)
return -ENOMEM;
return 0;
} }
void ipv6_sysctl_unregister(void) void ipv6_sysctl_unregister(void)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment