From: Russell King Date: Fri, 25 Nov 2005 15:52:51 +0000 (+0000) Subject: [ARM] Do not call flush_tlb_kernel_range() with IRQs disabled. X-Git-Tag: v2.6.15-rc3~3^2~5 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5edf71ae129167ac276ebac18b25ccc7bec6ac3e;p=pandora-kernel.git [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 --- Reading git-diff-tree failed