Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1506187

Re: Disabling an interrupt in the handler locks the system up

From Marc Zyngier <marc.zyngier@arm.com>
Newsgroups linux.kernel
Subject Re: Disabling an interrupt in the handler locks the system up
Date 2016-10-21 19:50 +0200
Message-ID <suM78-oJ-19@gated-at.bofh.it> (permalink)
References <suL1o-8bl-21@gated-at.bofh.it>
Organization ARM Ltd

Show all headers | View raw


On 21/10/16 17:37, Mason wrote:
> Hello,
> 
> On my platform, one HW block pulls the interrupt line high
> as long as it remains idle, and low when it is busy.
> 
> The device tree node is:
> 
> 		test@22222 {
> 			compatible = "vendor,testme";
> 			interrupts = <23 IRQ_TYPE_LEVEL_HIGH>;
> 		};

I assume that this is for the sake of the discussion, and that you do
not actually intend to put together such a monstrosity.

> 
> I wrote a minimal driver which registers the irq.
> And in the interrupt handler, I disable said irq.
> 
> Since the irq is IRQ_TYPE_LEVEL_HIGH, it will fire as soon as
> it is registered (because the block is idle).
> 
> Here is the code I've been running, request_irq doesn't return.

[...]

> And here's what I get when I try to load the module:
> (I'm using the default CONFIG_RCU_CPU_STALL_TIMEOUT=21)

[...]

> Are we not supposed to disable the irq in the handler?

You can. It then depends on what your interrupt controller does to
actually ensure that the interrupt is disabled. Only you can trace it on
your HW to find out.

Thanks,

	M.
-- 
Jazz is not dead. It just smells funny...

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-21 18:40 +0200
  Re: Disabling an interrupt in the handler locks the system up Marc Zyngier <marc.zyngier@arm.com> - 2016-10-21 19:50 +0200
    Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-21 20:50 +0200
      Re: Disabling an interrupt in the handler locks the system up Marc Zyngier <marc.zyngier@arm.com> - 2016-10-21 21:20 +0200
        Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-21 21:50 +0200
          Re: Disabling an interrupt in the handler locks the system up Thomas Gleixner <tglx@linutronix.de> - 2016-10-21 22:00 +0200
            Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-21 22:30 +0200
              Re: Disabling an interrupt in the handler locks the system up Marc Zyngier <marc.zyngier@arm.com> - 2016-10-22 13:40 +0200
                Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-23 01:20 +0200
                Re: Disabling an interrupt in the handler locks the system up Marc Zyngier <marc.zyngier@arm.com> - 2016-10-24 10:20 +0200
                Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-24 18:20 +0200
                Re: Disabling an interrupt in the handler locks the system up Thomas Gleixner <tglx@linutronix.de> - 2016-10-24 19:00 +0200
                Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-25 10:40 +0200
                Re: Disabling an interrupt in the handler locks the system up Marc Zyngier <marc.zyngier@arm.com> - 2016-10-25 12:50 +0200
                Re: Disabling an interrupt in the handler locks the system up Mason <slash.tmp@free.fr> - 2016-10-25 16:00 +0200
                Re: Disabling an interrupt in the handler locks the system up Thomas Gleixner <tglx@linutronix.de> - 2016-10-25 16:00 +0200
                Re: Disabling an interrupt in the handler locks the system up Sebastian Frias <sf84@laposte.net> - 2016-10-25 11:00 +0200
                Re: Disabling an interrupt in the handler locks the system up Thomas Gleixner <tglx@linutronix.de> - 2016-10-25 11:30 +0200

csiph-web