• E
    [NET]: Marking struct pernet_operations __net_initdata was inappropriate · 2b008b0a
    Eric W. Biederman 提交于
    It is not safe to to place struct pernet_operations in a special section.
    We need struct pernet_operations to last until we call unregister_pernet_subsys.
    Which doesn't happen until module unload.
    
    So marking struct pernet_operations is a disaster for modules in two ways.
    - We discard it before we call the exit method it points to.
    - Because I keep struct pernet_operations on a linked list discarding
      it for compiled in code removes elements in the middle of a linked
      list and does horrible things for linked insert.
    
    So this looks safe assuming __exit_refok is not discarded
    for modules.
    Signed-off-by: NEric W. Biederman <ebiederm@xmission.com>
    Signed-off-by: NDavid S. Miller <davem@davemloft.net>
    2b008b0a
af_netlink.c 42.9 KB