diff options
author | Geert Uytterhoeven <geert+renesas@glider.be> | 2017-07-12 17:45:20 +0300 |
---|---|---|
committer | Simon Horman <horms+renesas@verge.net.au> | 2017-07-29 11:32:52 +0300 |
commit | fce8dc5e50e44d8f644e0f7854e6d7d518fedb68 (patch) | |
tree | 92bc3affede983b7ba38cbef8371fc8e6a9e78c5 /tools/perf/scripts/python/stackcollapse.py | |
parent | 2ea659a9ef488125eb46da6eb571de5eae5c43f6 (diff) | |
download | linux-fce8dc5e50e44d8f644e0f7854e6d7d518fedb68.tar.xz |
ARM: shmobile: rcar-gen2: Fix deadlock in regulator quirk
Simon Horman reported that Koelsch and Lager hang during boot, and
bisected this to commit 1c3c5eab171590f8 ("sched/core: Enable
might_sleep() and smp_processor_id() checks early").
The da9063/da9210 regulator quirk for R-Car Gen2 boards uses a bus
notifier, and unregisters the notifier when it is no longer needed.
However, a notifier must not be unregistered from within the call chain.
This bug went unnoticed, as blocking_notifier_chain_unregister() didn't
take the semaphore during early boot. The aforementioned commit changed
that behavior, leading to a deadlock.
Fix this by removing the call to bus_unregister_notifier(), and keeping
local completion state instead.
Reported-by: Simon Horman <horms+renesas@verge.net.au>
Fixes: 663fbb52159cca6f ("ARM: shmobile: R-Car Gen2: Add da9063/da9210 regulator quirk")
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
Diffstat (limited to 'tools/perf/scripts/python/stackcollapse.py')
0 files changed, 0 insertions, 0 deletions