Re: [PATCH] net: ks8851: convert to threaded IRQ
From: Stephen Boyd <hidden>
Date: 2013-01-29 19:21:57
On 01/29/13 11:02, Felipe Balbi wrote:
On Tue, Jan 29, 2013 at 10:53:08AM -0800, Stephen Boyd wrote:quoted
On 01/28/13 23:16, Felipe Balbi wrote:quoted
just as it should have been. It also helps removing the, now unnecessary, workqueue.Tested-by: Stephen Boyd <redacted>quoted
Signed-off-by: Felipe Balbi <redacted> ---@@ -1505,8 +1485,9 @@ static int ks8851_probe(struct spi_device *spi) ks8851_read_selftest(ks); ks8851_init_mac(ks); - ret = request_irq(spi->irq, ks8851_irq, IRQF_TRIGGER_LOW, - ndev->name, ks); + ret = request_threaded_irq(spi->irq, NULL, ks8851_irq, + IRQF_TRIGGER_LOW | IRQF_ONESHOT, + ndev->name, ks);I did notice one thing here. The name of the thread is irq/378-eth%d (where 378 is the irq number). It seems that ndev->name is not fully formed until register_netdev() is called and so when the thread is created, the malformed name is used for the thread name.that would be a problem even before the conversion to threaded irq, the only difference is that 378- would be omitted.
It doesn't seem to be a problem in the non-threaded case presumably because the name is pointed to directly, instead of being copied, for the /proc/interrupts case. In other words, /proc/interrupts shows eth0 instead of eth%d with and without this patch applied. -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation