mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-14 09:09:56 +00:00
m32r: Fix IPI function calls for SMP
This patch fixes the m32r SMP kernel after 2.6.27. A part of the following patch breaks m32r SMP operation. > m32r: convert to generic helpers for IPI function calls > commit 7b7426c8a615cf61df9a77b9df7d5b75d91e3fa0 In the above patch, a CALL_FUNC_SINGLE_IPI was newly introduced, but the its IPI vector number was wrong in the patch code. The m32r SMP kernel hanged-up during boot operation, because the CPU_BOOT_IPI was called instead of CALL_FUNC_SINGLE_IPI (CPU_BOOT_IPI had no side effect at that time because the 2nd core had already been started up), as a result, csd_unlock() was not called, then a dead lock occurred in csd_lock_wait() after the detection of Compact Flash memory as IDE generic disk. Signed-off-by: Toshihiro HANAWA <hanawa@ccs.tsukuba.ac.jp> Signed-off-by: Hirokazu Takata <takata@linux-m32r.org>
This commit is contained in:
parent
6b6fabce5a
commit
0a3d31b79e
@ -104,8 +104,8 @@ static void set_eit_vector_entries(void)
|
||||
eit_vector[186] = (unsigned long)smp_call_function_interrupt;
|
||||
eit_vector[187] = (unsigned long)smp_ipi_timer_interrupt;
|
||||
eit_vector[188] = (unsigned long)smp_flush_cache_all_interrupt;
|
||||
eit_vector[189] = (unsigned long)smp_call_function_single_interrupt;
|
||||
eit_vector[190] = 0;
|
||||
eit_vector[189] = 0; /* CPU_BOOT_IPI */
|
||||
eit_vector[190] = (unsigned long)smp_call_function_single_interrupt;
|
||||
eit_vector[191] = 0;
|
||||
#endif
|
||||
_flush_cache_copyback_all();
|
||||
|
Loading…
x
Reference in New Issue
Block a user