Lines Matching +full:sw +full:- +full:managed
1 // SPDX-License-Identifier: GPL-2.0-or-later
8 * Copyright (C) 1999-2000 Grant Grundler
27 #define EIEM_MASK(irq) (1UL<<(CPU_IRQ_MAX - irq))
36 ** between ->ack() and ->end() of the interrupt to prevent
37 ** re-interruption of a processing interrupt.
43 unsigned long eirr_bit = EIEM_MASK(d->irq); in cpu_mask_irq()
66 __cpu_unmask_irq(d->irq); in cpu_unmask_irq()
71 unsigned long mask = EIEM_MASK(d->irq); in cpu_ack_irq()
86 unsigned long mask = EIEM_MASK(d->irq); in cpu_eoi_irq()
89 /* set it in the eiems---it's no longer in process */ in cpu_eoi_irq()
103 return -EINVAL; in cpu_check_affinity()
119 /* XXX: Needs to be written. We managed without it so far, but
138 seq_printf(p, "%10u ", irq_stats(j)->kernel_stack_usage); in arch_show_interrupts()
143 seq_printf(p, "%10u ", irq_stats(j)->irq_stack_usage); in arch_show_interrupts()
151 seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count); in arch_show_interrupts()
155 seq_printf(p, "%10u ", irq_stats(j)->irq_call_count); in arch_show_interrupts()
161 seq_printf(p, "%10u ", irq_stats(j)->irq_unaligned_count); in arch_show_interrupts()
165 seq_printf(p, "%10u ", irq_stats(j)->irq_fpassist_count); in arch_show_interrupts()
169 seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count); in arch_show_interrupts()
194 raw_spin_lock_irqsave(&desc->lock, flags); in show_interrupts()
195 action = desc->action; in show_interrupts()
203 seq_printf(p, " %14s", irq_desc_get_chip(desc)->name); in show_interrupts()
205 seq_printf(p, " %s", action->name); in show_interrupts()
207 while ((action = action->next)) in show_interrupts()
208 seq_printf(p, ", %s", action->name); in show_interrupts()
210 for ( ;action; action = action->next) { in show_interrupts()
213 min = max = action->cr16_hist[0]; in show_interrupts()
216 int hist = action->cr16_hist[k]; in show_interrupts()
228 seq_printf(p, " %s[%d/%d/%d]", action->name, in show_interrupts()
235 raw_spin_unlock_irqrestore(&desc->lock, flags); in show_interrupts()
257 return -EBUSY; in cpu_claim_irq()
259 return -EBUSY; in cpu_claim_irq()
272 return cpu_claim_irq(irq, NULL, NULL) ? -1 : irq; in txn_claim_irq()
276 * The bits_wide parameter accommodates the limitations of the HW/SW which
279 * V-class (EPIC): 6 bits
280 * N/L/A-class (iosapic): 8 bits
285 * o PA 1.1 (and PA2.0 narrow mode) 5-bits (width of EIR register)
286 * o PA 2.0 wide mode 6-bits (per processor)
287 * o IA64 8-bits (0-256 total)
290 * by the processor...and the N/L-class I/O subsystem supports more bits than
301 if ((irq - CPU_IRQ_BASE) >= (1 << bits_wide)) in txn_alloc_irq()
307 return -1; in txn_alloc_irq()
324 static int next_cpu = -1; in txn_alloc_addr()
343 return virt_irq - CPU_IRQ_BASE; in txn_alloc_data()
349 return (BITS_PER_LONG - bit) + TIMER_IRQ; in eirr_to_irq()
354 * IRQ STACK - used for irq handler
382 unsigned long sp = regs->gr[30]; in stack_overflow_check()
389 if (regs->sr[7]) in stack_overflow_check()
397 stack_usage = sp - stack_start; in stack_overflow_check()
404 stack_usage = sp - stack_start; in stack_overflow_check()
410 if (likely(stack_usage < (IRQ_STACK_SIZE - STACK_MARGIN))) in stack_overflow_check()
414 "(sp:%lx, stk bottom-top:%lx-%lx)\n", in stack_overflow_check()
415 current->comm, sp, stack_start, stack_start + IRQ_STACK_SIZE); in stack_overflow_check()
427 if (likely(stack_usage < (THREAD_SIZE - STACK_MARGIN))) in stack_overflow_check()
431 "(sp:%lx, stk bottom-top:%lx-%lx)\n", in stack_overflow_check()
432 current->comm, sp, stack_start, stack_start + THREAD_SIZE); in stack_overflow_check()
438 sysctl_panic_on_stackoverflow = -1; /* disable further checks */ in stack_overflow_check()
439 panic("low stack detected by irq handler - check messages\n"); in stack_overflow_check()
455 irq_stack = (unsigned long) &union_ptr->stack; in execute_on_irq_stack()
567 local_irq_disable(); /* PARANOID - should already be disabled */ in init_IRQ()