Lines Matching +full:no +full:- +full:unaligned +full:- +full:direct +full:- +full:access

1 // SPDX-License-Identifier: GPL-2.0-or-later
8 * Copyright (C) 1999-2000 Grant Grundler
30 #define EIEM_MASK(irq) (1UL<<(CPU_IRQ_MAX - irq))
39 ** between ->ack() and ->end() of the interrupt to prevent
40 ** re-interruption of a processing interrupt.
46 unsigned long eirr_bit = EIEM_MASK(d->irq); in cpu_mask_irq()
69 __cpu_unmask_irq(d->irq); in cpu_unmask_irq()
74 unsigned long mask = EIEM_MASK(d->irq); in cpu_ack_irq()
77 /* Clear in EIEM so we can no longer process */ in cpu_ack_irq()
89 unsigned long mask = EIEM_MASK(d->irq); in cpu_eoi_irq()
92 /* set it in the eiems---it's no longer in process */ in cpu_eoi_irq()
106 return -EINVAL; in cpu_check_affinity()
141 seq_printf(p, "%10u ", irq_stats(j)->kernel_stack_usage); in arch_show_interrupts()
146 seq_printf(p, "%10u ", irq_stats(j)->irq_stack_usage); in arch_show_interrupts()
154 seq_printf(p, "%10u ", irq_stats(j)->irq_resched_count); in arch_show_interrupts()
158 seq_printf(p, "%10u ", irq_stats(j)->irq_call_count); in arch_show_interrupts()
164 seq_printf(p, "%10u ", irq_stats(j)->irq_unaligned_count); in arch_show_interrupts()
165 seq_puts(p, " Unaligned access handler traps\n"); in arch_show_interrupts()
168 seq_printf(p, "%10u ", irq_stats(j)->irq_fpassist_count); in arch_show_interrupts()
172 seq_printf(p, "%10u ", irq_stats(j)->irq_tlb_count); in arch_show_interrupts()
197 raw_spin_lock_irqsave(&desc->lock, flags); in show_interrupts()
198 action = desc->action; in show_interrupts()
206 seq_printf(p, " %14s", irq_desc_get_chip(desc)->name); in show_interrupts()
208 seq_printf(p, " %s", action->name); in show_interrupts()
210 while ((action = action->next)) in show_interrupts()
211 seq_printf(p, ", %s", action->name); in show_interrupts()
213 for ( ;action; action = action->next) { in show_interrupts()
216 min = max = action->cr16_hist[0]; in show_interrupts()
219 int hist = action->cr16_hist[k]; in show_interrupts()
231 seq_printf(p, " %s[%d/%d/%d]", action->name, in show_interrupts()
238 raw_spin_unlock_irqrestore(&desc->lock, flags); in show_interrupts()
260 return -EBUSY; in cpu_claim_irq()
262 return -EBUSY; in cpu_claim_irq()
275 return cpu_claim_irq(irq, NULL, NULL) ? -1 : irq; in txn_claim_irq()
282 * V-class (EPIC): 6 bits
283 * N/L/A-class (iosapic): 8 bits
288 * o PA 1.1 (and PA2.0 narrow mode) 5-bits (width of EIR register)
289 * o PA 2.0 wide mode 6-bits (per processor)
290 * o IA64 8-bits (0-256 total)
293 * by the processor...and the N/L-class I/O subsystem supports more bits than
304 if ((irq - CPU_IRQ_BASE) >= (1 << bits_wide)) in txn_alloc_irq()
310 return -1; in txn_alloc_irq()
327 static int next_cpu = -1; in txn_alloc_addr()
346 return virt_irq - CPU_IRQ_BASE; in txn_alloc_data()
352 return (BITS_PER_LONG - bit) + TIMER_IRQ; in eirr_to_irq()
357 * IRQ STACK - used for irq handler
385 unsigned long sp = regs->gr[30]; in stack_overflow_check()
392 if (regs->sr[7]) in stack_overflow_check()
400 stack_usage = sp - stack_start; in stack_overflow_check()
407 stack_usage = sp - stack_start; in stack_overflow_check()
413 if (likely(stack_usage < (IRQ_STACK_SIZE - STACK_MARGIN))) in stack_overflow_check()
417 "(sp:%lx, stk bottom-top:%lx-%lx)\n", in stack_overflow_check()
418 current->comm, sp, stack_start, stack_start + IRQ_STACK_SIZE); in stack_overflow_check()
430 if (likely(stack_usage < (THREAD_SIZE - STACK_MARGIN))) in stack_overflow_check()
434 "(sp:%lx, stk bottom-top:%lx-%lx)\n", in stack_overflow_check()
435 current->comm, sp, stack_start, stack_start + THREAD_SIZE); in stack_overflow_check()
441 sysctl_panic_on_stackoverflow = -1; /* disable further checks */ in stack_overflow_check()
442 panic("low stack detected by irq handler - check messages\n"); in stack_overflow_check()
458 irq_stack = (unsigned long) &union_ptr->stack; in execute_on_irq_stack()
471 * Do direct call on current stack. */ in execute_on_irq_stack()
570 local_irq_disable(); /* PARANOID - should already be disabled */ in init_IRQ()