Message ID | 20240611174430.90787-2-fgriffo@amazon.co.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | vfio/pci: add interrupt affinity support | expand |
On 6/11/24 13:44, Fred Griffoul wrote: > A subsequent patch calls cpuset_cpus_allowed() in the vfio driver pci > code. Export the symbol to be able to build the vfio driver as a kernel > module. > > This is not enough, however: when CONFIG_CPUSETS is _not_ defined > cpuset_cpus_allowed() is an inline function returning > task_cpu_possible_mask(). For the arm64 architecture this function is > also inline: it checks the arm64_mismatched_32bit_el0 static key and > calls system_32bit_el0_cpumask(). We need to export those symbols as > well. > > Signed-off-by: Fred Griffoul <fgriffo@amazon.co.uk> > Reported-by: kernel test robot <lkp@intel.com> > Closes: https://lore.kernel.org/oe-kbuild-all/202406060731.L3NSR1Hy-lkp@intel.com/ > Closes: https://lore.kernel.org/oe-kbuild-all/202406070659.pYu6zNrx-lkp@intel.com/ > Closes: https://lore.kernel.org/oe-kbuild-all/202406101154.iaDyTRwZ-lkp@intel.com/ > --- > arch/arm64/kernel/cpufeature.c | 2 ++ > kernel/cgroup/cpuset.c | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c > index 56583677c1f2..2f1de6343bee 100644 > --- a/arch/arm64/kernel/cpufeature.c > +++ b/arch/arm64/kernel/cpufeature.c > @@ -127,6 +127,7 @@ static bool __read_mostly allow_mismatched_32bit_el0; > * seen at least one CPU capable of 32-bit EL0. > */ > DEFINE_STATIC_KEY_FALSE(arm64_mismatched_32bit_el0); > +EXPORT_SYMBOL_GPL(arm64_mismatched_32bit_el0); > > /* > * Mask of CPUs supporting 32-bit EL0. > @@ -1614,6 +1615,7 @@ const struct cpumask *system_32bit_el0_cpumask(void) > > return cpu_possible_mask; > } > +EXPORT_SYMBOL_GPL(system_32bit_el0_cpumask); > > static int __init parse_32bit_el0_param(char *str) > { > diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c > index 4237c8748715..9fd56222aa4b 100644 > --- a/kernel/cgroup/cpuset.c > +++ b/kernel/cgroup/cpuset.c > @@ -4764,6 +4764,7 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) > rcu_read_unlock(); > spin_unlock_irqrestore(&callback_lock, flags); > } > +EXPORT_SYMBOL_GPL(cpuset_cpus_allowed); > > /** > * cpuset_cpus_allowed_fallback - final fallback before complete catastrophe. Acked-by: Waiman Long <longman@redhat.com>
On Tue, Jun 11, 2024 at 05:44:24PM +0000, Fred Griffoul wrote: > diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c > index 56583677c1f2..2f1de6343bee 100644 > --- a/arch/arm64/kernel/cpufeature.c > +++ b/arch/arm64/kernel/cpufeature.c > @@ -127,6 +127,7 @@ static bool __read_mostly allow_mismatched_32bit_el0; > * seen at least one CPU capable of 32-bit EL0. > */ > DEFINE_STATIC_KEY_FALSE(arm64_mismatched_32bit_el0); > +EXPORT_SYMBOL_GPL(arm64_mismatched_32bit_el0); > > /* > * Mask of CPUs supporting 32-bit EL0. > @@ -1614,6 +1615,7 @@ const struct cpumask *system_32bit_el0_cpumask(void) > > return cpu_possible_mask; > } > +EXPORT_SYMBOL_GPL(system_32bit_el0_cpumask); For the arm64 bits: Acked-by: Catalin Marinas <catalin.marinas@arm.com>
diff --git a/arch/arm64/kernel/cpufeature.c b/arch/arm64/kernel/cpufeature.c index 56583677c1f2..2f1de6343bee 100644 --- a/arch/arm64/kernel/cpufeature.c +++ b/arch/arm64/kernel/cpufeature.c @@ -127,6 +127,7 @@ static bool __read_mostly allow_mismatched_32bit_el0; * seen at least one CPU capable of 32-bit EL0. */ DEFINE_STATIC_KEY_FALSE(arm64_mismatched_32bit_el0); +EXPORT_SYMBOL_GPL(arm64_mismatched_32bit_el0); /* * Mask of CPUs supporting 32-bit EL0. @@ -1614,6 +1615,7 @@ const struct cpumask *system_32bit_el0_cpumask(void) return cpu_possible_mask; } +EXPORT_SYMBOL_GPL(system_32bit_el0_cpumask); static int __init parse_32bit_el0_param(char *str) { diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c index 4237c8748715..9fd56222aa4b 100644 --- a/kernel/cgroup/cpuset.c +++ b/kernel/cgroup/cpuset.c @@ -4764,6 +4764,7 @@ void cpuset_cpus_allowed(struct task_struct *tsk, struct cpumask *pmask) rcu_read_unlock(); spin_unlock_irqrestore(&callback_lock, flags); } +EXPORT_SYMBOL_GPL(cpuset_cpus_allowed); /** * cpuset_cpus_allowed_fallback - final fallback before complete catastrophe.
A subsequent patch calls cpuset_cpus_allowed() in the vfio driver pci code. Export the symbol to be able to build the vfio driver as a kernel module. This is not enough, however: when CONFIG_CPUSETS is _not_ defined cpuset_cpus_allowed() is an inline function returning task_cpu_possible_mask(). For the arm64 architecture this function is also inline: it checks the arm64_mismatched_32bit_el0 static key and calls system_32bit_el0_cpumask(). We need to export those symbols as well. Signed-off-by: Fred Griffoul <fgriffo@amazon.co.uk> Reported-by: kernel test robot <lkp@intel.com> Closes: https://lore.kernel.org/oe-kbuild-all/202406060731.L3NSR1Hy-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202406070659.pYu6zNrx-lkp@intel.com/ Closes: https://lore.kernel.org/oe-kbuild-all/202406101154.iaDyTRwZ-lkp@intel.com/ --- arch/arm64/kernel/cpufeature.c | 2 ++ kernel/cgroup/cpuset.c | 1 + 2 files changed, 3 insertions(+)