Well, the code:
DEBUG_PRINT(KERN_DEBUG "RTDM IMU %d - enable IRQ\n", info->gpio_pin_n);
err = rtdm_irq_enable(&info->gpio_irq);
only exists one place in the driver and is only executed in the kernel-context
of rt_dev_open() from user-space.
The irq-device is opened only once before entering the read-loop.
The repeated read calls from the user space (rt_dev_read()) only blocs on the
irq semaphore and copies the irq-time back to the user.
I don't see how the irq-line can be re-enabled by this code.
If the device have been repeatedly opened, the dmesg would have been flooded
with log-messages.
Terje
-----Original Message-----
From: Gilles Chanteperdrix [mailto:[email protected]]
Sent: 2. desember 2014 10:34
To: Terje Frøysa
Cc: [email protected]
Subject: Re: [Xenomai] IRQ155 not handled. Disabling IRQ line
On Tue, Dec 02, 2014 at 09:28:37AM +0000, Terje Frøysa wrote:
> Dear forum,
>
> Question:
> If a driver is deemed buggy and the IRQ disabled, why is it still serving the
> interrupts?
>
> Running Debian 3.8.13-bone67 and Xenomai 2.6.4
>
> At opening call, my GPIO RTDM IRQ driver enables a GPIO line w/irq.
> My user-space program issues read-requests to receive a time-stamp for each
> irq.
> The irq handler is very compact. It only reads the system time, rises a
> semaphore if not already up and returns RT_INTR_HANDLED.
>
> When starting (open + loop w/reads), the dmesg log-message appears: "IRQ155
> not handled. Disabling IRQ line".
> It appears only once in the start.
> Never-the-less, the interrupts are still handled and keep coming.
Well, probably because the code re-enables the irq line ?
--
Gilles.
_______________________________________________
Xenomai mailing list
[email protected]
http://www.xenomai.org/mailman/listinfo/xenomai