aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-ia64/system.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asm-ia64/system.h')
-rw-r--r--include/asm-ia64/system.h25
1 files changed, 0 insertions, 25 deletions
diff --git a/include/asm-ia64/system.h b/include/asm-ia64/system.h
index 99b6f307e94b..cd4233d66f15 100644
--- a/include/asm-ia64/system.h
+++ b/include/asm-ia64/system.h
@@ -256,32 +256,7 @@ extern void ia64_load_extra (struct task_struct *task);
256# define switch_to(prev,next,last) __switch_to(prev, next, last) 256# define switch_to(prev,next,last) __switch_to(prev, next, last)
257#endif 257#endif
258 258
259/*
260 * On IA-64, we don't want to hold the runqueue's lock during the low-level context-switch,
261 * because that could cause a deadlock. Here is an example by Erich Focht:
262 *
263 * Example:
264 * CPU#0:
265 * schedule()
266 * -> spin_lock_irq(&rq->lock)
267 * -> context_switch()
268 * -> wrap_mmu_context()
269 * -> read_lock(&tasklist_lock)
270 *
271 * CPU#1:
272 * sys_wait4() or release_task() or forget_original_parent()
273 * -> write_lock(&tasklist_lock)
274 * -> do_notify_parent()
275 * -> wake_up_parent()
276 * -> try_to_wake_up()
277 * -> spin_lock_irq(&parent_rq->lock)
278 *
279 * If the parent's rq happens to be on CPU#0, we'll wait for the rq->lock
280 * of that CPU which will not be released, because there we wait for the
281 * tasklist_lock to become available.
282 */
283#define __ARCH_WANT_UNLOCKED_CTXSW 259#define __ARCH_WANT_UNLOCKED_CTXSW
284
285#define ARCH_HAS_PREFETCH_SWITCH_STACK 260#define ARCH_HAS_PREFETCH_SWITCH_STACK
286#define ia64_platform_is(x) (strcmp(x, platform_name) == 0) 261#define ia64_platform_is(x) (strcmp(x, platform_name) == 0)
287 262