• Muralidhara M K's avatar
    x86/amd_nb: Unexport amd_cache_northbridges() · e1907d37
    Muralidhara M K authored
    amd_cache_northbridges() is exported by amd_nb.c and is called by
    amd64-agp.c and amd64_edac.c modules at module_init() time so that NB
    descriptors are properly cached before those drivers can use them.
    
    However, the init_amd_nbs() initcall already does call
    amd_cache_northbridges() unconditionally and thus makes sure the NB
    descriptors are enumerated.
    
    That initcall is a fs_initcall type which is on the 5th group (starting
    from 0) of initcalls that gets run in increasing numerical order by the
    init code.
    
    The module_init() call is turned into an __initcall() in the MODULE=n
    case and those are device-level initcalls, i.e., group 6.
    
    Therefore, the northbridges caching is already finished by the time
    module initialization starts and thus the correct initialization order
    is retained.
    
    Unexport amd_cache_northbridges(), update dependent modules to
    call amd_nb_num() instead. While at it, simplify the checks in
    amd_cache_northbridges().
    
      [ bp: Heavily massage and *actually* explain why the change is ok. ]
    Signed-off-by: default avatarMuralidhara M K <muralimk@amd.com>
    Signed-off-by: default avatarNaveen Krishna Chatradhi <nchatrad@amd.com>
    Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
    Link: https://lore.kernel.org/r/20220324122729.221765-1-nchatrad@amd.com
    e1907d37
amd_nb.c 13.7 KB