Re: ERROR: modpost: "mips_cm_unlock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined!
From: Randy Dunlap <rdunlap@infradead.org>
Date: 2021-11-19 04:56:46
On 11/17/21 11:09 AM, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: ee1703cda8dc777e937dec172da55beaf1a74919 commit: 2bdd5238e756aac3ecbffc7c22b884485e84062e PCI: mt7621: Add MediaTek MT7621 PCIe host controller driver date: 4 weeks ago config: mips-allmodconfig (attached as .config) compiler: mips-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2bdd5238e756aac3ecbffc7c22b884485e84062e git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout 2bdd5238e756aac3ecbffc7c22b884485e84062e # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross ARCH=mips If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <redacted> All errors (new ones prefixed by >>, old ones prefixed by <<): ERROR: modpost: missing MODULE_LICENSE() in drivers/pci/controller/pcie-mt7621.oquoted
quoted
ERROR: modpost: "mips_cm_unlock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cpc_base" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cm_lock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cm_is64" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_gcr_base" [drivers/pci/controller/pcie-mt7621.ko] undefined!
This is one way to fix these build errors. Is that what the MIPS people want to do or should their be APIs to access these base addresses and mips_cm_is64 data? --- From: Randy Dunlap <rdunlap@infradead.org> Subject: [PATCH] mips: kernel: export mips-cm and mips-cpc data & functions for pcie-mt7621 Fixes these build errors: ERROR: modpost: "mips_cm_unlock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cpc_base" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cm_lock_other" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_cm_is64" [drivers/pci/controller/pcie-mt7621.ko] undefined! ERROR: modpost: "mips_gcr_base" [drivers/pci/controller/pcie-mt7621.ko] undefined! Signed-off-by: Randy Dunlap <rdunlap@infradead.org> Reported-by: kernel test robot <redacted> Cc: Paul Burton <paulburton@kernel.org> Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Cc: linux-mips@vger.kernel.org Cc: Sergio Paracuellos <sergio.paracuellos@gmail.com> Cc: Bjorn Helgaas <bhelgaas@google.com> Cc: linux-pci@vger.kernel.org --- arch/mips/kernel/mips-cm.c | 6 ++++++ arch/mips/kernel/mips-cpc.c | 2 ++ 2 files changed, 8 insertions(+)
--- linux-next-20211118.orig/arch/mips/kernel/mips-cm.c
+++ linux-next-20211118/arch/mips/kernel/mips-cm.c@@ -5,6 +5,7 @@ */ #include <linux/errno.h> +#include <linux/export.h> #include <linux/percpu.h> #include <linux/spinlock.h>
@@ -12,8 +13,11 @@ #include <asm/mipsregs.h> void __iomem *mips_gcr_base; +EXPORT_SYMBOL(mips_gcr_base); + void __iomem *mips_cm_l2sync_base; int mips_cm_is64; +EXPORT_SYMBOL(mips_cm_is64); static char *cm2_tr[8] = { "mem", "gcr", "gic", "mmio",
@@ -352,6 +356,7 @@ void mips_cm_lock_other(unsigned int clu */ mb(); } +EXPORT_SYMBOL(mips_cm_lock_other); void mips_cm_unlock_other(void) {
@@ -368,6 +373,7 @@ void mips_cm_unlock_other(void) preempt_enable(); } +EXPORT_SYMBOL(mips_cm_unlock_other); void mips_cm_error_report(void) { --- linux-next-20211118.orig/arch/mips/kernel/mips-cpc.c +++ linux-next-20211118/arch/mips/kernel/mips-cpc.c
@@ -5,6 +5,7 @@ */ #include <linux/errno.h> +#include <linux/export.h> #include <linux/percpu.h> #include <linux/of.h> #include <linux/of_address.h>
@@ -13,6 +14,7 @@ #include <asm/mips-cps.h> void __iomem *mips_cpc_base; +EXPORT_SYMBOL(mips_cpc_base); static DEFINE_PER_CPU_ALIGNED(spinlock_t, cpc_core_lock);