irq.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * linux/arch/m32r/kernel/irq.c
  4. *
  5. * Copyright (c) 2003, 2004 Hitoshi Yamamoto
  6. * Copyright (c) 2004 Hirokazu Takata <takata at linux-m32r.org>
  7. */
  8. /*
  9. * linux/arch/i386/kernel/irq.c
  10. *
  11. * Copyright (C) 1992, 1998 Linus Torvalds, Ingo Molnar
  12. *
  13. * This file contains the lowest level m32r-specific interrupt
  14. * entry and irq statistics code. All the remaining irq logic is
  15. * done by the generic kernel/irq/ code and in the
  16. * m32r-specific irq controller code.
  17. */
  18. #include <linux/kernel_stat.h>
  19. #include <linux/interrupt.h>
  20. #include <linux/module.h>
  21. #include <linux/uaccess.h>
  22. /*
  23. * do_IRQ handles all normal device IRQs (the special
  24. * SMP cross-CPU interrupts have their own specific
  25. * handlers).
  26. */
  27. asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs)
  28. {
  29. struct pt_regs *old_regs;
  30. old_regs = set_irq_regs(regs);
  31. irq_enter();
  32. #ifdef CONFIG_DEBUG_STACKOVERFLOW
  33. /* FIXME M32R */
  34. #endif
  35. generic_handle_irq(irq);
  36. irq_exit();
  37. set_irq_regs(old_regs);
  38. return 1;
  39. }