]> git.droids-corp.org - dpdk.git/commit
raw/ifpga: unregister interrupt on close
authorWei Huang <wei.huang@intel.com>
Tue, 7 Jun 2022 09:07:22 +0000 (05:07 -0400)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 7 Jun 2022 13:50:54 +0000 (15:50 +0200)
commit2545683564aa15f36392be2b4ceead454064135b
treecc904ec78c82bab348340ec14199f0d23e624898
parentae835aba40349ee9631ef6b52e68a2893febe7e0
raw/ifpga: unregister interrupt on close

There is an API rte_pmd_ifpga_cleanup provided by ifpga driver to
free the software resource used by ifpga card. The function call
of rte_pmd_ifpga_cleanup is list below.
rte_pmd_ifpga_cleanup()
  ifpga_rawdev_cleanup()
     rte_rawdev_pmd_release()
       rte_rawdev_close()
         ifpga_rawdev_close()

The interrupts are unregistered in ifpga_rawdev_destroy instead of
ifpga_rawdev_close function, so rte_pmd_ifpga_cleanup cannot free
interrupt resource as expected.

To fix such issue, interrupt unregistration is moved from
ifpga_rawdev_destroy to ifpga_rawdev_close function. The change of
function call of ifpga_rawdev_destroy is as below.
ifpga_rawdev_destroy()
  ifpga_unregister_msix_irq()  // removed
  rte_rawdev_pmd_release()
    rte_rawdev_close()
      ifpga_rawdev_close()

Fixes: e0a1aafe2af9 ("raw/ifpga: introduce IRQ functions")
Cc: stable@dpdk.org
Signed-off-by: Wei Huang <wei.huang@intel.com>
Acked-by: Tianfei Zhang <tianfei.zhang@intel.com>
Reviewed-by: Rosen Xu <rosen.xu@intel.com>
drivers/raw/ifpga/ifpga_rawdev.c