diff options
author | Andreas Larsson <andreas@gaisler.com> | 2014-12-18 13:23:23 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-12-18 12:47:54 -0500 |
commit | 66d0f7ec9f1038452178b1993fc07fd96d30fd38 (patch) | |
tree | 8894bb4925a29d29301a851d4bb384b68bd6a24d /init/main.c | |
parent | 44e8967d591686463e84a88b46b03beba3ab49fb (diff) |
sparc32: destroy_context() and switch_mm() needs to disable interrupts.
Load balancing can be triggered in the critical sections protected by
srmmu_context_spinlock in destroy_context() and switch_mm() and can hang
the cpu waiting for the rq lock of another cpu that in turn has called
switch_mm hangning on srmmu_context_spinlock leading to deadlock.
So, disable interrupt while taking srmmu_context_spinlock in
destroy_context() and switch_mm() so we don't deadlock.
See also commit 77b838fa1ef0 ("[SPARC64]: destroy_context() needs to disable
interrupts.")
Signed-off-by: Andreas Larsson <andreas@gaisler.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'init/main.c')
0 files changed, 0 insertions, 0 deletions