raw/ifpga/base: handle unsupported interrupt type
authorWei Huang <wei.huang@intel.com>
Fri, 23 Oct 2020 08:59:56 +0000 (04:59 -0400)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 3 Nov 2020 22:31:22 +0000 (23:31 +0100)
Handle unsupported interrupt type requests properly,
on unsupported interrupt case:
'ifpga_unregister_msix_irq()' returns success,
'ifpga_register_msix_irq()' return failure.

Fixes: e0a1aafe2af9 ("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>
Acked-by: Rosen Xu <rosen.xu@intel.com>
drivers/raw/ifpga/ifpga_rawdev.c

index e5b938d..6319988 100644 (file)
@@ -1338,6 +1338,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);
 
@@ -1367,8 +1369,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;