diff mbox

[1/3] powerpc: export cpu_to_core_id()

Message ID 201606012016.u51KDwr8046821@mx0a-001b2d01.pphosted.com (mailing list archive)
State Changes Requested
Headers show

Commit Message

Mauricio Faria de Oliveira June 1, 2016, 8:16 p.m. UTC
Export cpu_to_core_id().  This will be used by the lpfc driver.

Tested on next-20160601.

Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
---
 arch/powerpc/kernel/smp.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Mauricio Faria de Oliveira June 1, 2016, 8:19 p.m. UTC | #1
Please ignore the 'PATCH 1/3' in the subject; this is a single patch.
Michael Ellerman June 2, 2016, 7:41 a.m. UTC | #2
On Wed, 2016-06-01 at 17:16 -0300, Mauricio Faria de Oliveira wrote:

> Export cpu_to_core_id().  This will be used by the lpfc driver.

Can you explain why?

I would have thought there'd be architecture neutral APIs you can use - and if
there aren't maybe we should write them.

cheers
Mauricio Faria de Oliveira June 2, 2016, 9 a.m. UTC | #3
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:
>
>> 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 June 2, 2016, 9:05 a.m. UTC | #4
On 06/02/2016 06:00 AM, Mauricio Faria de Oliveira wrote:
> I actually use topology_core_id() from  <kernel/topology.h> in lpfc [1]

Er, <linux/topology.h> .. kinda early here :)
Michael Ellerman June 2, 2016, 11:03 a.m. UTC | #5
On Thu, 2016-06-02 at 06:00 -0300, Mauricio Faria de Oliveira wrote:
> 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:

> > > 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.

Can you send me a v2 with a change log that includes all that detail.

cheers
Mauricio Faria de Oliveira June 2, 2016, 11:22 a.m. UTC | #6
On 06/02/2016 08:03 AM, Michael Ellerman wrote:
> Can you send me a v2 with a change log that includes all that detail.

Sure; should have done it. Thanks.
diff mbox

Patch

diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 55c924b..67136e7 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -593,6 +593,7 @@  out:
 	of_node_put(np);
 	return id;
 }
+EXPORT_SYMBOL_GPL(cpu_to_core_id);
 
 /* Helper routines for cpu to core mapping */
 int cpu_core_index_of_thread(int cpu)