2005-01-26 06:55:45

by Nathan Lynch

[permalink] [raw]
Subject: [PATCH] unexport register_cpu and unregister_cpu

http://linus.bkbits.net:8080/linux-2.5/cset@4180a2b7mi2fzuNQDBOQY7eMAkns8g?nav=index.html|src/|src/drivers|src/drivers/base|related/drivers/base/cpu.c

This changeset introduced exports for register_cpu and unregister_cpu
right after 2.6.10. As far as I can tell these are not called from any
code which can be built as a module, and I can't think of a good reason
why any out of tree code would use them. Unless I've missed something,
can we remove them before 2.6.11?

Build-tested for ia64 and i386.

Signed-off-by: Nathan Lynch <[email protected]>

Index: linux-2.6.11-rc2-mm1/drivers/base/cpu.c
===================================================================
--- linux-2.6.11-rc2-mm1.orig/drivers/base/cpu.c 2005-01-25 23:50:02.677255800 -0600
+++ linux-2.6.11-rc2-mm1/drivers/base/cpu.c 2005-01-25 23:56:28.436611464 -0600
@@ -64,7 +64,6 @@

return;
}
-EXPORT_SYMBOL(unregister_cpu);
#else /* ... !CONFIG_HOTPLUG_CPU */
static inline void register_cpu_control(struct cpu *cpu)
{
@@ -96,9 +95,6 @@
register_cpu_control(cpu);
return error;
}
-#ifdef CONFIG_HOTPLUG_CPU
-EXPORT_SYMBOL(register_cpu);
-#endif






2005-01-26 23:49:52

by Keshavamurthy, Anil S

[permalink] [raw]
Subject: Re: [PATCH] unexport register_cpu and unregister_cpu

On Wed, Jan 26, 2005 at 01:10:30PM -0600, Nathan Lynch wrote:
> On Wed, 2005-01-26 at 10:22 -0800, Keshavamurthy Anil S wrote:
> > On Wed, Jan 26, 2005 at 12:55:47AM -0600, Nathan Lynch wrote:
> > > http://linus.bkbits.net:8080/linux-2.5/cset@4180a2b7mi2fzuNQDBOQY7eMAkns8g?nav=index.html|src/|src/drivers|src/drivers/base|related/drivers/base/cpu.c
> > >
> > > This changeset introduced exports for register_cpu and unregister_cpu
> > > right after 2.6.10. As far as I can tell these are not called from any
> > > code which can be built as a module, and I can't think of a good reason
> > > why any out of tree code would use them. Unless I've missed something,
> > > can we remove them before 2.6.11?
> >
> > No this is not correct. ACPI processor.ko driver which supports
> > physical CPU hotplug needs register_cpu() and unregister_cpu() functions
> > for dynamically hotadd/hotremove support of the processors.
>
> I do not understand your objection. The processor module does not call
> the interfaces in question directly. They are called only from arch
> setup code (e.g. arch/ia64/kernel/topology.c) which is never built as a
> module.

Oops.. Sorry, its my fault.

>
> > Please see drivers/acpi/processor_core.c
> > acpi_processor_hotadd_init() -> arch_register_cpu() ->
> > ->register_cpu().
>
> Sure -- the arch_register_cpu and arch_unregister_cpu symbols need to be
> exported for this use (and they are). Exporting register_cpu and
> unregister_cpu is unnecessary.

I agree with you 100%.

>
> I double-checked an ia64 build with CONFIG_ACPI_HOTPLUG_CPU=y and
> CONFIG_ACPI_PROCESSOR=m and saw no errors or warnings caused by the
> change...

Andrew, I have no objection with Nathan's patch.

thanks,
Anil

2005-01-27 02:01:43

by Nathan Lynch

[permalink] [raw]
Subject: Re: [PATCH] unexport register_cpu and unregister_cpu

On Wed, 2005-01-26 at 10:22 -0800, Keshavamurthy Anil S wrote:
> On Wed, Jan 26, 2005 at 12:55:47AM -0600, Nathan Lynch wrote:
> > http://linus.bkbits.net:8080/linux-2.5/cset@4180a2b7mi2fzuNQDBOQY7eMAkns8g?nav=index.html|src/|src/drivers|src/drivers/base|related/drivers/base/cpu.c
> >
> > This changeset introduced exports for register_cpu and unregister_cpu
> > right after 2.6.10. As far as I can tell these are not called from any
> > code which can be built as a module, and I can't think of a good reason
> > why any out of tree code would use them. Unless I've missed something,
> > can we remove them before 2.6.11?
>
> No this is not correct. ACPI processor.ko driver which supports
> physical CPU hotplug needs register_cpu() and unregister_cpu() functions
> for dynamically hotadd/hotremove support of the processors.

I do not understand your objection. The processor module does not call
the interfaces in question directly. They are called only from arch
setup code (e.g. arch/ia64/kernel/topology.c) which is never built as a
module.

> Please see drivers/acpi/processor_core.c
> acpi_processor_hotadd_init() -> arch_register_cpu() ->
> ->register_cpu().

Sure -- the arch_register_cpu and arch_unregister_cpu symbols need to be
exported for this use (and they are). Exporting register_cpu and
unregister_cpu is unnecessary.

I double-checked an ia64 build with CONFIG_ACPI_HOTPLUG_CPU=y and
CONFIG_ACPI_PROCESSOR=m and saw no errors or warnings caused by the
change...

Nathan

2005-01-26 23:40:02

by Keshavamurthy, Anil S

[permalink] [raw]
Subject: Re: [PATCH] unexport register_cpu and unregister_cpu

On Wed, Jan 26, 2005 at 12:55:47AM -0600, Nathan Lynch wrote:
> http://linus.bkbits.net:8080/linux-2.5/cset@4180a2b7mi2fzuNQDBOQY7eMAkns8g?nav=index.html|src/|src/drivers|src/drivers/base|related/drivers/base/cpu.c
>
> This changeset introduced exports for register_cpu and unregister_cpu
> right after 2.6.10. As far as I can tell these are not called from any
> code which can be built as a module, and I can't think of a good reason
> why any out of tree code would use them. Unless I've missed something,
> can we remove them before 2.6.11?

No this is not correct. ACPI processor.ko driver which supports
physical CPU hotplug needs register_cpu() and unregister_cpu() functions
for dynamically hotadd/hotremove support of the processors.

Please see drivers/acpi/processor_core.c
acpi_processor_hotadd_init() -> arch_register_cpu() ->
->register_cpu().

-Anil