Messages in this thread | | | Date | Mon, 08 Aug 2011 17:13:17 -0500 | From | "H. Peter Anvin" <> | Subject | Re: [RFC][PATCH 2/2] x86, cpu, amd: Add a per-vendor BSP function |
| |
On 08/08/2011 04:57 PM, Borislav Petkov wrote: >> >> This is totally going backwards. We *should* be using struct cpu_dev >> rather than switch statements for this. > > Right, but all the cpu_dev things are annotated with __cpuinitconst > because they're used in CONFIG_HOTPLUG_CPU. __init, OTOH, will be > discarded once we're done booting. So, we can't convert cpu_dev > to __initdata because we need it for cpu hotplug and we want the > run_on_bsp() functionality to be __init since it runs once on boot. > > Maybe leave cpu_dev in __cpuinit let it have an __init member which is > the ->run_on_bsp()? Does that even work? >
I don't think so, which is a fundamental shortcoming of our way of handling these kinds of pointers. One way to deal with it would be to make struct cpu_dev __initconst and copy it into a __cpuinit variable at init time.
Either way, I'd rather leave the routines in cpuinit memory than adding another multiplex.
-hpa
| |