[v3,2/5] raw/ifpga/base: handle unsupported interrupt type
Checks
Commit Message
From: Wei Huang <wei.huang@intel.com>
Handle unsupported interrupt type requests properly,
on unsupported interrupt case:
'ifpga_unregister_msix_irq()' returns success,
'ifpga_register_msix_irq()' return failure.
Fixes: e0a1aafe ("raw/ifpga: introduce IRQ functions")
Cc: stable@dpdk.org
Signed-off-by: Wei Huang <wei.huang@intel.com>
Signed-off-by: Tianfei zhang <tianfei.zhang@intel.com>
---
drivers/raw/ifpga/ifpga_rawdev.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
@@ -1343,6 +1343,8 @@ ifpga_unregister_msix_irq(enum ifpga_irq_type type,
intr_handle = &ifpga_irq_handle[0];
else if (type == IFPGA_AFU_IRQ)
intr_handle = &ifpga_irq_handle[vec_start + 1];
+ else
+ return 0;
rte_intr_efd_disable(intr_handle);
@@ -1372,8 +1374,11 @@ ifpga_register_msix_irq(struct rte_rawdev *dev, int port_id,
if (type == IFPGA_FME_IRQ) {
intr_handle = &ifpga_irq_handle[0];
count = 1;
- } else if (type == IFPGA_AFU_IRQ)
+ } else if (type == IFPGA_AFU_IRQ) {
intr_handle = &ifpga_irq_handle[vec_start + 1];
+ } else {
+ return -EINVAL;
+ }
intr_handle->type = RTE_INTR_HANDLE_VFIO_MSIX;