diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2005-11-25 15:52:51 +0000 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2005-11-25 15:52:51 +0000 |
commit | 5edf71ae129167ac276ebac18b25ccc7bec6ac3e (patch) | |
tree | 619daac39d08dbf66fb19698205b263e21bba3d0 /sound/oss/emu10k1/main.c | |
parent | 3c0bdac3875505516eda1c6b6e68dd84eff3b231 (diff) |
[ARM] Do not call flush_tlb_kernel_range() with IRQs disabled.
We must not call TLB maintainence operations with interrupts disabled,
otherwise we risk a lockup in the SMP IPI code.
This means that consistent_free() can not be called from a context with
IRQs disabled. In addition, we must not hold the lock in consistent_free
when we call flush_tlb_kernel_range(). However, we must continue to
prevent consistent_alloc() from re-using the memory region until we've
finished tearing down the mapping and dealing with the TLB.
Therefore, leave the vm_region entry in the list, but mark it inactive
before dropping the lock and starting the tear-down process. After the
mapping has been torn down, re-acquire the lock and remove the entry
from the list.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'sound/oss/emu10k1/main.c')
0 files changed, 0 insertions, 0 deletions