[PATCH] xen/arm: missing put_cpu in xen_percpu_init
Stefano Stabellini
stefano.stabellini at eu.citrix.com
Fri Aug 2 13:18:00 EDT 2013
On Mon, 29 Jul 2013, Julien Grall wrote:
> When CONFIG_PREEMPT is enabled, Linux will not be able to boot and warn:
> [ 4.127825] ------------[ cut here ]------------
> [ 4.133376] WARNING: at init/main.c:699 do_one_initcall+0x150/0x158()
> [ 4.140738] initcall xen_init_events+0x0/0x10c returned with preemption imbalance
>
> This is because xen_percpu_init uses get_cpu but doesn't have the corresponding
> put_cpu.
>
> Signed-off-by: Julien Grall <julien.grall at linaro.org>
Ops. Thanks for catching the bug.
I'll add this to my queue.
> arch/arm/xen/enlighten.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
> index f71c37e..dc9f284 100644
> --- a/arch/arm/xen/enlighten.c
> +++ b/arch/arm/xen/enlighten.c
> @@ -170,6 +170,7 @@ static void __init xen_percpu_init(void *unused)
> per_cpu(xen_vcpu, cpu) = vcpup;
>
> enable_percpu_irq(xen_events_irq, 0);
> + put_cpu();
> }
>
> static void xen_restart(char str, const char *cmd)
> --
> 1.7.10.4
>
More information about the linux-arm-kernel
mailing list