提交 abdd7b91 编写于 作者: M Marc Zyngier 提交者: Russell King

ARM: 7176/1: cpu_pm: register GIC PM notifier only once

When multiple GICs exist on a platform (RealView PB1176/11MP),
we must make sure the PM notifier block is only registered
once, otherwise we end up corrupting the PM notifier list.

The fix is to only register the notifier when initializing
the first GIC, as the power management functions seem
to iterate over all the registered GICs.

Tested on PB11MP and PB1176.
Reported-by: NWill Deacon <will.deacon@arm.com>
Tested-by: NWill Deacon <will.deacon@arm.com>
Cc: Colin Cross <ccross@android.com>
Signed-off-by: NMarc Zyngier <marc.zyngier@arm.com>
Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
上级 97371fa9
...@@ -526,7 +526,8 @@ static void __init gic_pm_init(struct gic_chip_data *gic) ...@@ -526,7 +526,8 @@ static void __init gic_pm_init(struct gic_chip_data *gic)
sizeof(u32)); sizeof(u32));
BUG_ON(!gic->saved_ppi_conf); BUG_ON(!gic->saved_ppi_conf);
cpu_pm_register_notifier(&gic_notifier_block); if (gic == &gic_data[0])
cpu_pm_register_notifier(&gic_notifier_block);
} }
#else #else
static void __init gic_pm_init(struct gic_chip_data *gic) static void __init gic_pm_init(struct gic_chip_data *gic)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册