manage.c (5b26776bd9253931097a85dcb1b9da1bac554c02) | manage.c (61f3826133dc07142935fb5712fc738e19eb5575) |
---|---|
1/* 2 * linux/kernel/irq/manage.c 3 * 4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 5 * Copyright (C) 2005-2006 Thomas Gleixner 6 * 7 * This file contains driver APIs to the irq subsystem. 8 */ --- 437 unchanged lines hidden (view full) --- 446 __set_current_state(TASK_RUNNING); 447 return 0; 448 } 449 schedule(); 450 } 451 return -1; 452} 453 | 1/* 2 * linux/kernel/irq/manage.c 3 * 4 * Copyright (C) 1992, 1998-2006 Linus Torvalds, Ingo Molnar 5 * Copyright (C) 2005-2006 Thomas Gleixner 6 * 7 * This file contains driver APIs to the irq subsystem. 8 */ --- 437 unchanged lines hidden (view full) --- 446 __set_current_state(TASK_RUNNING); 447 return 0; 448 } 449 schedule(); 450 } 451 return -1; 452} 453 |
454#ifdef CONFIG_SMP |
|
454/* 455 * Check whether we need to change the affinity of the interrupt thread. 456 */ 457static void 458irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) 459{ 460 cpumask_var_t mask; 461 --- 11 unchanged lines hidden (view full) --- 473 474 spin_lock_irq(&desc->lock); 475 cpumask_copy(mask, desc->affinity); 476 spin_unlock_irq(&desc->lock); 477 478 set_cpus_allowed_ptr(current, mask); 479 free_cpumask_var(mask); 480} | 455/* 456 * Check whether we need to change the affinity of the interrupt thread. 457 */ 458static void 459irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) 460{ 461 cpumask_var_t mask; 462 --- 11 unchanged lines hidden (view full) --- 474 475 spin_lock_irq(&desc->lock); 476 cpumask_copy(mask, desc->affinity); 477 spin_unlock_irq(&desc->lock); 478 479 set_cpus_allowed_ptr(current, mask); 480 free_cpumask_var(mask); 481} |
482#else 483static inline void 484irq_thread_check_affinity(struct irq_desc *desc, struct irqaction *action) { } 485#endif |
|
481 482/* 483 * Interrupt handler thread 484 */ 485static int irq_thread(void *data) 486{ 487 struct sched_param param = { .sched_priority = MAX_USER_RT_PRIO/2, }; 488 struct irqaction *action = data; --- 508 unchanged lines hidden --- | 486 487/* 488 * Interrupt handler thread 489 */ 490static int irq_thread(void *data) 491{ 492 struct sched_param param = { .sched_priority = MAX_USER_RT_PRIO/2, }; 493 struct irqaction *action = data; --- 508 unchanged lines hidden --- |