Re: [PATCH beta 1] 0/3] Fix race conditions in mrf24j40 interrupts

From: Alan Ott
Date: Thu May 23 2013 - 02:36:48 EST

On 5/22/13 4:32 PM, David Hauweele wrote:
I cannot use level-triggered interrupts with GPIO on the RPi, so I
cannot test this specific patch.

Is there another interrupt line you can tie into which does support level-trigger interrupts (INT0 or something)?

However I agree with the idea of level-triggered interrupts, that
would fix all major problems related to missed interrupts.

Beside this I'm running a ping -f since more than two hours now and it
seems to work well.

So that surprises me. I thought level-trigger interrupts were the thing that would fix this problem, and if you're not running with that patch, you just have the INIT_COMPLETION() fix (which you said didn't fix your issue) and the threaded interrupts patch, which I was fairly sure I had determined wasn't fixing any actual race-condition-related problems.

I'm glad, but surprised that you're no longer seeing issues.


2013/5/22 Alan Ott <alan@xxxxxxxxxxx>:
On 05/21/2013 10:01 PM, Alan Ott wrote:
David Hauweele noticed that the mrf24j40 would hang arbitrarily after some
period of heavy traffic. Two race conditions were discovered, and the
driver was changed to use threaded interrupts, since the enable/disable of
interrupts in the driver has recently been a lighning rod whenever issues
arise related to interrupts (costing engineering time), and since threaded
interrupts are the right way to do it.

Alan Ott (3):
mrf24j40: Move INIT_COMPLETION() to before packet transmission
mrf24j40: Use threaded IRQ handler
mrf24j40: Use level-triggered interrupts

drivers/net/ieee802154/mrf24j40.c | 31 +++++++++----------------------
1 file changed, 9 insertions(+), 22 deletions(-)

I forgot to add, I ran ping -f both ways all afternoon (6.5 hours), and
it seems solid.

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at