• N
    ipv6: add a missing unregister_pernet_subsys call · 2cc6d2bf
    Neil Horman 提交于
    Clean up a missing exit path in the ipv6 module init routines.  In
    addrconf_init we call ipv6_addr_label_init which calls register_pernet_subsys
    for the ipv6_addr_label_ops structure.  But if module loading fails, or if the
    ipv6 module is removed, there is no corresponding unregister_pernet_subsys call,
    which leaves a now-bogus address on the pernet_list, leading to oopses in
    subsequent registrations.  This patch cleans up both the failed load path and
    the unload path.  Tested by myself with good results.
    Signed-off-by: NNeil Horman <nhorman@tuxdriver.com>
    
     include/net/addrconf.h |    1 +
     net/ipv6/addrconf.c    |   11 ++++++++---
     net/ipv6/addrlabel.c   |    5 +++++
     3 files changed, 14 insertions(+), 3 deletions(-)
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    2cc6d2bf
addrconf.h 7.3 KB