• Linus Torvalds's avatar
    module: Make the 'usage' lists be two-way · 2c02dfe7
    Linus Torvalds authored
    When adding a module that depends on another one, we used to create a
    one-way list of "modules_which_use_me", so that module unloading could
    see who needs a module.
    
    It's actually quite simple to make that list go both ways: so that we
    not only can see "who uses me", but also see a list of modules that are
    "used by me".
    
    In fact, we always wanted that list in "module_unload_free()": when we
    unload a module, we want to also release all the other modules that are
    used by that module.  But because we didn't have that list, we used to
    first iterate over all modules, and then iterate over each "used by me"
    list of that module.
    
    By making the list two-way, we simplify module_unload_free(), and it
    allows for some trivial fixes later too.
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> (cleaned & rebased)
    2c02dfe7
module.c 79.3 KB