manage.c (41f9d29f09ca0b22c3631e8a39676e74cda9bcc0) | manage.c (67d1214551e800f9fe7dc7c47a346d2df0fafed5) |
---|---|
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 */ --- 767 unchanged lines hidden (view full) --- 776 777static void wake_threads_waitq(struct irq_desc *desc) 778{ 779 if (atomic_dec_and_test(&desc->threads_active) && 780 waitqueue_active(&desc->wait_for_threads)) 781 wake_up(&desc->wait_for_threads); 782} 783 | 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 */ --- 767 unchanged lines hidden (view full) --- 776 777static void wake_threads_waitq(struct irq_desc *desc) 778{ 779 if (atomic_dec_and_test(&desc->threads_active) && 780 waitqueue_active(&desc->wait_for_threads)) 781 wake_up(&desc->wait_for_threads); 782} 783 |
784static void irq_thread_dtor(struct task_work *unused) | 784static void irq_thread_dtor(struct callback_head *unused) |
785{ 786 struct task_struct *tsk = current; 787 struct irq_desc *desc; 788 struct irqaction *action; 789 790 if (WARN_ON_ONCE(!(current->flags & PF_EXITING))) 791 return; 792 --- 15 unchanged lines hidden (view full) --- 808 irq_finalize_oneshot(desc, action); 809} 810 811/* 812 * Interrupt handler thread 813 */ 814static int irq_thread(void *data) 815{ | 785{ 786 struct task_struct *tsk = current; 787 struct irq_desc *desc; 788 struct irqaction *action; 789 790 if (WARN_ON_ONCE(!(current->flags & PF_EXITING))) 791 return; 792 --- 15 unchanged lines hidden (view full) --- 808 irq_finalize_oneshot(desc, action); 809} 810 811/* 812 * Interrupt handler thread 813 */ 814static int irq_thread(void *data) 815{ |
816 struct task_work on_exit_work; | 816 struct callback_head on_exit_work; |
817 static const struct sched_param param = { 818 .sched_priority = MAX_USER_RT_PRIO/2, 819 }; 820 struct irqaction *action = data; 821 struct irq_desc *desc = irq_to_desc(action->irq); 822 irqreturn_t (*handler_fn)(struct irq_desc *desc, 823 struct irqaction *action); 824 --- 834 unchanged lines hidden --- | 817 static const struct sched_param param = { 818 .sched_priority = MAX_USER_RT_PRIO/2, 819 }; 820 struct irqaction *action = data; 821 struct irq_desc *desc = irq_to_desc(action->irq); 822 irqreturn_t (*handler_fn)(struct irq_desc *desc, 823 struct irqaction *action); 824 --- 834 unchanged lines hidden --- |