Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

powerpc/fsl_msi: mark the msi cascade handler IRQF_NO_THREAD

The commit 543c043cbae7 ("powerpc/fsl_msi: change the irq handler from
chained to normal") changes the msi cascade handler from chained to
normal. Since cascade handler must run in hard interrupt context, this
will cause kernel panic if we force threading of all the interrupt
handler via kernel command parameter 'threadirqs'. So mark the irq
handler IRQF_NO_THREAD explicitly.

Signed-off-by: Kevin Hao <haokexin@gmail.com>
Signed-off-by: Scott Wood <scottwood@freescale.com>

authored by

Kevin Hao and committed by
Scott Wood
d7ce4377 8a97577a

+1 -1
+1 -1
arch/powerpc/sysdev/fsl_msi.c
··· 361 361 cascade_data->virq = virt_msir; 362 362 msi->cascade_array[irq_index] = cascade_data; 363 363 364 - ret = request_irq(virt_msir, fsl_msi_cascade, 0, 364 + ret = request_irq(virt_msir, fsl_msi_cascade, IRQF_NO_THREAD, 365 365 "fsl-msi-cascade", cascade_data); 366 366 if (ret) { 367 367 dev_err(&dev->dev, "failed to request_irq(%d), ret = %d\n",