Commit 57f0060b authored by Ralf Baechle's avatar Ralf Baechle
Browse files

Document why calling smp_call_function will deadlock when called with


interrupts disabled.

Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent 26852d5c
Loading
Loading
Loading
Loading
+13 −1
Original line number Diff line number Diff line
@@ -121,7 +121,19 @@ struct call_data_struct *call_data;
 * or are or have executed.
 *
 * You must not call this function with disabled interrupts or from a
 * hardware interrupt handler or from a bottom half handler.
 * hardware interrupt handler or from a bottom half handler:
 *
 * CPU A                               CPU B
 * Disable interrupts
 *                                     smp_call_function()
 *                                     Take call_lock
 *                                     Send IPIs
 *                                     Wait for all cpus to acknowledge IPI
 *                                     CPU A has not responded, spin waiting
 *                                     for cpu A to respond, holding call_lock
 * smp_call_function()
 * Spin waiting for call_lock
 * Deadlock                            Deadlock
 */
int smp_call_function (void (*func) (void *info), void *info, int retry,
								int wait)