lkml.org 
[lkml]   [2007]   [Feb]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch] KVM, hotplug: export register_cpu_notifier
    Ingo Molnar wrote:
    > * Avi Kivity <avi@qumranet.com> wrote:
    >
    >
    >>> -#ifdef CONFIG_HOTPLUG_CPU
    >>> -
    >>> EXPORT_SYMBOL(register_cpu_notifier);
    >>>
    >>> +#ifdef CONFIG_HOTPLUG_CPU
    >>> +
    >>> void unregister_cpu_notifier(struct notifier_block *nb)
    >>> {
    >>> mutex_lock(&cpu_add_remove_lock);
    >>>
    >>>
    >> This is broken: register_cpu_notifier() is __cpuinit, which means it
    >> disappears at module time if !CONFIG_CPU_HOTPLUG.
    >>
    >> I submitted a hackaround to Andrew some time ago with the suspend
    >> patchset.
    >>
    >
    > ok. What does your patch do - turns it into an inline? I fixed it up in
    > -rt via the patch below.
    >
    >

    yes, but only if MODULE.

    > Ingo
    >
    > ---------------------->
    > Subject: [patch] KVM: export register_cpu_notifier
    > From: Ingo Molnar <mingo@elte.hu>
    >
    > KVM-trunk uses register_cpu_notifier() but it's not exported
    > on CONFIG_HOTPLUG_CPU. Make it a nop inline.
    >
    > Signed-off-by: Ingo Molnar <mingo@elte.hu>
    > ---
    > include/linux/cpu.h | 6 +++++-
    > kernel/cpu.c | 4 ----
    > 2 files changed, 5 insertions(+), 5 deletions(-)
    >
    > Index: linux/include/linux/cpu.h
    > ===================================================================
    > --- linux.orig/include/linux/cpu.h
    > +++ linux/include/linux/cpu.h
    > @@ -49,10 +49,14 @@ struct notifier_block;
    >
    > #ifdef CONFIG_SMP
    > /* Need to know about CPUs going up/down? */
    > -extern int register_cpu_notifier(struct notifier_block *nb);
    > #ifdef CONFIG_HOTPLUG_CPU
    > +extern int register_cpu_notifier(struct notifier_block *nb);
    > extern void unregister_cpu_notifier(struct notifier_block *nb);
    > #else
    > +static inline int register_cpu_notifier(struct notifier_block *nb)
    > +{
    > + return 0;
    > +}
    > static inline void unregister_cpu_notifier(struct notifier_block *nb)
    > {
    > }
    > Index: linux/kernel/cpu.c
    > ===================================================================
    > --- linux.orig/kernel/cpu.c
    > +++ linux/kernel/cpu.c
    > @@ -63,8 +63,6 @@ void unlock_cpu_hotplug(void)
    > }
    > EXPORT_SYMBOL_GPL(unlock_cpu_hotplug);
    >
    > -#endif /* CONFIG_HOTPLUG_CPU */
    > -
    > /* Need to know about CPUs going up/down? */
    > int __cpuinit register_cpu_notifier(struct notifier_block *nb)
    > {
    > @@ -75,8 +73,6 @@ int __cpuinit register_cpu_notifier(stru
    > return ret;
    > }
    >
    > -#ifdef CONFIG_HOTPLUG_CPU
    > -
    > EXPORT_SYMBOL(register_cpu_notifier);
    >
    > void unregister_cpu_notifier(struct notifier_block *nb)
    >


    --
    Do not meddle in the internals of kernels, for they are subtle and quick to panic.

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-02-07 10:37    [W:0.027 / U:31.740 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site