cregit-Linux how code gets into the kernel

Release 4.7 arch/cris/kernel/irq.c

Directory: arch/cris/kernel
/*
 *
 *      linux/arch/cris/kernel/irq.c
 *
 *      Copyright (c) 2000,2007 Axis Communications AB
 *
 *      Authors: Bjorn Wesen (bjornw@axis.com)
 *
 * This file contains the code used by various IRQ handling routines:
 * asking for different IRQs should be done through these routines
 * instead of just grabbing them. Thus setups with different IRQ numbers
 * shouldn't result in any weird surprises, and installing new handlers
 * should be easier.
 *
 */

/*
 * IRQs are in fact implemented a bit like signal handlers for the kernel.
 * Naturally it's not a 1:1 relation, but there are similarities.
 */

#include <linux/module.h>
#include <linux/ptrace.h>
#include <linux/irq.h>

#include <linux/kernel_stat.h>
#include <linux/signal.h>
#include <linux/sched.h>
#include <linux/ioport.h>
#include <linux/interrupt.h>
#include <linux/timex.h>
#include <linux/random.h>
#include <linux/init.h>
#include <linux/seq_file.h>
#include <linux/errno.h>
#include <linux/spinlock.h>

#include <asm/io.h>
#include <arch/system.h>

/* called by the assembler IRQ entry functions defined in irq.h
 * to dispatch the interrupts to registered handlers
 */


asmlinkage void do_IRQ(int irq, struct pt_regs * regs) { unsigned long sp; struct pt_regs *old_regs; trace_hardirqs_off(); old_regs = set_irq_regs(regs); irq_enter(); sp = rdsp(); if (unlikely((sp & (PAGE_SIZE - 1)) < (PAGE_SIZE/8))) { printk("do_IRQ: stack overflow: %lX\n", sp); show_stack(NULL, (unsigned long *)sp); } generic_handle_irq(irq); irq_exit(); set_irq_regs(old_regs); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds4748.96%114.29%
mikael starvikmikael starvik2728.12%228.57%
jesper nilssonjesper nilsson1313.54%114.29%
rabin vincentrabin vincent77.29%114.29%
andrew mortonandrew morton11.04%114.29%
thomas gleixnerthomas gleixner11.04%114.29%
Total96100.00%7100.00%


void weird_irq(void) { local_irq_disable(); printk("weird irq\n"); while(1); }

Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds1785.00%150.00%
mikael starvikmikael starvik315.00%150.00%
Total20100.00%2100.00%


Overall Contributors

PersonTokensPropCommitsCommitProp
linus torvaldslinus torvalds10059.88%321.43%
mikael starvikmikael starvik3520.96%214.29%
jesper nilssonjesper nilsson148.38%17.14%
rabin vincentrabin vincent74.19%17.14%
arnaldo carvalho de meloarnaldo carvalho de melo31.80%17.14%
david howellsdavid howells31.80%17.14%
thomas gleixnerthomas gleixner10.60%17.14%
adrian bunkadrian bunk10.60%17.14%
andrew mortonandrew morton10.60%17.14%
simon arlottsimon arlott10.60%17.14%
michael opdenackermichael opdenacker10.60%17.14%
Total167100.00%14100.00%
Directory: arch/cris/kernel
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}