From: Mauricio Faria de Oliveira <hidden> Date: 2016-06-01 20:17:00
Export cpu_to_core_id(). This will be used by the lpfc driver.
Tested on next-20160601.
Signed-off-by: Mauricio Faria de Oliveira <redacted>
---
arch/powerpc/kernel/smp.c | 1 +
1 file changed, 1 insertion(+)
@@ -593,6 +593,7 @@ out:of_node_put(np);returnid;}+EXPORT_SYMBOL_GPL(cpu_to_core_id);/* Helper routines for cpu to core mapping */intcpu_core_index_of_thread(intcpu)
From: Mauricio Faria de Oliveira <hidden> Date: 2016-06-02 09:00:44
Hi Michael,
On 06/02/2016 04:41 AM, Michael Ellerman wrote:
On Wed, 2016-06-01 at 17:16 -0300, Mauricio Faria de Oliveira wrote:
quoted
Export cpu_to_core_id(). This will be used by the lpfc driver.
Can you explain why?
Yup,
I would have thought there'd be architecture neutral APIs you can use - and if
there aren't maybe we should write them.
I actually use topology_core_id() from <kernel/topology.h> in lpfc [1]
(defined to cpu_to_core_id() by arch/powerpc/include/asm/topology.h).
That is arch-neutral, used by eg /sys/devices/system/cpu/cpu*/topology,
but drivers/base/topology.c is built-in (obj-y in ./Makefile), and thus
didn't need the export.
Thus, since the module uses topology_core_id() and this is defined to
cpu_to_core_id(), it needs the export:
ERROR: "cpu_to_core_id" [drivers/scsi/lpfc/lpfc.ko] undefined!
make[1]: *** [__modpost] Error 1
make: *** [modules] Error 2
Thanks,
[1] http://marc.info/?l=linux-scsi&m=146481382301686
--
Mauricio Faria de Oliveira
IBM Linux Technology Center