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 ---