Re: [PATCH UPDATED] sched: adjust when cpu_active and cpuset configurations are updated during cpu on/offlining

From: Tony Luck
Date: Mon Jun 21 2010 - 14:28:41 EST


On Tue, Jun 8, 2010 at 12:46 PM, Tejun Heo <tj@xxxxxxxxxx> wrote:
> * Ingo's test discovered __cpuinit/exit markups were incorrect.
>  Fixed.

No it isn't :-(

> +static int __cpuexit cpuset_cpu_active(struct notifier_block *nfb,
> +                                      unsigned long action, void *hcpu)
...
> +static int __cpuexit cpuset_cpu_inactive(struct notifier_block *nfb,
> +                                        unsigned long action, void *hcpu)

This patch arrived in linux-next (tag next-20100621) and breaks the
ia64 build for configurations where CONFIG_HOTPLUG_CPU=n
with the following cryptic error:

`.cpuexit.text' referenced in section `.IA_64.unwind.cpuexit.text' of
kernel/built-in.o: defined in discarded section `.cpuexit.text' of
kernel/built-in.o

This is because ia64 link stage drops __exit functions from
built-in code (under the logic that they can never be called).

Is the problem in the !CONFIG_HOTPLUG_CPU definition of
hotcpu_notifier() in <linux/cpu.h> which still references the
function argument:

#define hotcpu_notifier(fn, pri) do { (void)(fn); } while (0)

Or should these functions not be marked __cpuexit?

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