When using a multifunction device that advertises Legacy INT-D, the kernel gives the following error message:
[ 2.441684] error: hwirq 0x4 is too large for dummy
The current kernel infrastructure imposes a hwirq range that starts from zero.
As a result, when the driver requests for four IRQs, the subsystem thinks that the maximum valid IRQ number is 0x3 (0x0 to 0x3).
However for PCI, the legacy interrupt range is from 0x1 to 0x4.
As a result of this difference, the registering of IRQ number 0x4 fails, resulting in the above error message.
This is a known issue and requires a fix in the Kernel PCI subsystem.
Please refer to the link below for more details on this issue:
https://patchwork.kernel.org/patch/9305303/
As a work-around, please follow the instructions below to install the patch attached to this answer record.
git clone git://github.com/Xilinx/linux-xlnx.git
cd linux-xlnx
git checkout xilinx-v2017.1.01
git am0001-PCI-Xilinx-NWL-PCIe-Fix-Error-for-multi-function-dev.patch
The patch makes the following change in drivers/pci/host/pcie-xilinx-nwl.c
Original Version:
pcie->legacy_irq_domain = irq_domain_add_linear(legacy_intc_node,
INTX_NUM,
&legacy_domain_ops,
pcie);
Updated Version:
pcie->legacy_irq_domain = irq_domain_add_linear(legacy_intc_node,
INTX_NUM + 1,
&legacy_domain_ops,
pcie);
Revision History:
11/22/2017 - Initial Release
文件名 | 文件大小 | File Type |
---|---|---|
0001-PCI-Xilinx-NWL-PCIe-Fix-Error-for-multi-function-dev.patch | 1 KB | PATCH |
AR# 69066 | |
---|---|
日期 | 11/22/2017 |
状态 | Active |
Type | 已知问题 |
IP |