x86/amd_nb: Unexport amd_cache_northbridges()
authorMuralidhara M K <muralimk@amd.com>
Thu, 24 Mar 2022 12:27:29 +0000 (17:57 +0530)
committerBorislav Petkov <bp@suse.de>
Tue, 5 Apr 2022 17:22:27 +0000 (19:22 +0200)
commite1907d37514b8564ba18b4a768a35beee71cb011
treed0298969c1cec749a0c601efb89e2fdc158284f6
parent3123109284176b1532874591f7c81f3837bbdc17
x86/amd_nb: Unexport amd_cache_northbridges()

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: Muralidhara M K <muralimk@amd.com>
Signed-off-by: Naveen Krishna Chatradhi <nchatrad@amd.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Link: https://lore.kernel.org/r/20220324122729.221765-1-nchatrad@amd.com
arch/x86/include/asm/amd_nb.h
arch/x86/kernel/amd_nb.c
drivers/char/agp/amd64-agp.c
drivers/edac/amd64_edac.c