Lines Matching refs:new
1008 static int irq_setup_forced_threading(struct irqaction *new) in irq_setup_forced_threading() argument
1012 if (new->flags & (IRQF_NO_THREAD | IRQF_PERCPU | IRQF_ONESHOT)) in irq_setup_forced_threading()
1015 new->flags |= IRQF_ONESHOT; in irq_setup_forced_threading()
1022 if (new->handler != irq_default_primary_handler && new->thread_fn) { in irq_setup_forced_threading()
1024 new->secondary = kzalloc(sizeof(struct irqaction), GFP_KERNEL); in irq_setup_forced_threading()
1025 if (!new->secondary) in irq_setup_forced_threading()
1027 new->secondary->handler = irq_forced_secondary_handler; in irq_setup_forced_threading()
1028 new->secondary->thread_fn = new->thread_fn; in irq_setup_forced_threading()
1029 new->secondary->dev_id = new->dev_id; in irq_setup_forced_threading()
1030 new->secondary->irq = new->irq; in irq_setup_forced_threading()
1031 new->secondary->name = new->name; in irq_setup_forced_threading()
1034 set_bit(IRQTF_FORCED_THREAD, &new->thread_flags); in irq_setup_forced_threading()
1035 new->thread_fn = new->handler; in irq_setup_forced_threading()
1036 new->handler = irq_default_primary_handler; in irq_setup_forced_threading()
1058 setup_irq_thread(struct irqaction *new, unsigned int irq, bool secondary) in setup_irq_thread() argument
1066 t = kthread_create(irq_thread, new, "irq/%d-%s", irq, in setup_irq_thread()
1067 new->name); in setup_irq_thread()
1069 t = kthread_create(irq_thread, new, "irq/%d-s-%s", irq, in setup_irq_thread()
1070 new->name); in setup_irq_thread()
1085 new->thread = t; in setup_irq_thread()
1095 set_bit(IRQTF_AFFINITY, &new->thread_flags); in setup_irq_thread()
1104 __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new) in __setup_irq() argument
1119 new->irq = irq; in __setup_irq()
1127 if (!new->thread_fn) { in __setup_irq()
1136 new->handler = irq_nested_primary_handler; in __setup_irq()
1139 ret = irq_setup_forced_threading(new); in __setup_irq()
1150 if (new->thread_fn && !nested) { in __setup_irq()
1151 ret = setup_irq_thread(new, irq, false); in __setup_irq()
1154 if (new->secondary) { in __setup_irq()
1155 ret = setup_irq_thread(new->secondary, irq, true); in __setup_irq()
1176 new->flags &= ~IRQF_ONESHOT; in __setup_irq()
1192 if (!((old->flags & new->flags) & IRQF_SHARED) || in __setup_irq()
1193 ((old->flags ^ new->flags) & IRQF_TRIGGER_MASK) || in __setup_irq()
1194 ((old->flags ^ new->flags) & IRQF_ONESHOT)) in __setup_irq()
1199 (new->flags & IRQF_PERCPU)) in __setup_irq()
1221 if (new->flags & IRQF_ONESHOT) { in __setup_irq()
1250 new->thread_mask = 1 << ffz(thread_mask); in __setup_irq()
1252 } else if (new->handler == irq_default_primary_handler && in __setup_irq()
1279 new->name, irq, desc->irq_data.chip->name); in __setup_irq()
1286 if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1288 new->flags & IRQF_TRIGGER_MASK); in __setup_irq()
1298 if (new->flags & IRQF_PERCPU) { in __setup_irq()
1303 if (new->flags & IRQF_ONESHOT) in __setup_irq()
1313 if (new->flags & IRQF_NOBALANCING) { in __setup_irq()
1321 } else if (new->flags & IRQF_TRIGGER_MASK) { in __setup_irq()
1322 unsigned int nmsk = new->flags & IRQF_TRIGGER_MASK; in __setup_irq()
1331 *old_ptr = new; in __setup_irq()
1333 irq_pm_install_action(desc, new); in __setup_irq()
1354 if (new->thread) in __setup_irq()
1355 wake_up_process(new->thread); in __setup_irq()
1356 if (new->secondary) in __setup_irq()
1357 wake_up_process(new->secondary->thread); in __setup_irq()
1360 new->dir = NULL; in __setup_irq()
1361 register_handler_proc(irq, new); in __setup_irq()
1367 if (!(new->flags & IRQF_PROBE_SHARED)) { in __setup_irq()
1369 irq, new->flags, new->name, old->flags, old->name); in __setup_irq()
1381 if (new->thread) { in __setup_irq()
1382 struct task_struct *t = new->thread; in __setup_irq()
1384 new->thread = NULL; in __setup_irq()
1388 if (new->secondary && new->secondary->thread) { in __setup_irq()
1389 struct task_struct *t = new->secondary->thread; in __setup_irq()
1391 new->secondary->thread = NULL; in __setup_irq()