This patches set will improve the ifpga base driver reliability in multi-process environment.
Main changes from v2: - Fix typo in some commit log. Main changes from v3: - Split into 2 small patches, one is fix the pointer variable, other is fix the return value. - Free the driver's resource in rawdev close ops. Patch #1: Fix a bug for register and unregister interrupt functions. Patch #2: Fix the return value of unsupported interrupt type. Patch #3: Fix the return value of ifpga_unregister_msix_irq(), because rte_intr_callback_unregister() can return positive as success. Patch #4: Clean up the ifpga resource when close the application. Patch #5: An improvement of the concurrent in multi-process operation. A share memory mechanism and some new mutex will be used for multi-process protection. Wei Huang (5): raw/ifpga/base: fix interrupt handler instance usage raw/ifpga/base: handle unsupported interrupt type raw/ifpga/base: fix return of IRQ unregister properly raw/ifpga/base: free resources when destroying ifpga device raw/ifpga/base: enhance driver reliablity in multi-process drivers/raw/ifpga/base/ifpga_api.c | 12 + drivers/raw/ifpga/base/ifpga_enumerate.c | 16 ++ drivers/raw/ifpga/base/ifpga_enumerate.h | 1 + drivers/raw/ifpga/base/ifpga_fme.c | 52 +++- drivers/raw/ifpga/base/meson.build | 12 + drivers/raw/ifpga/base/opae_hw_api.c | 250 ++++++++++++++++++ drivers/raw/ifpga/base/opae_hw_api.h | 27 +- drivers/raw/ifpga/base/opae_i2c.c | 9 +- drivers/raw/ifpga/base/opae_i2c.h | 1 + drivers/raw/ifpga/base/opae_intel_max10.c | 152 ++++++----- drivers/raw/ifpga/base/opae_spi.c | 4 + drivers/raw/ifpga/base/opae_spi.h | 5 + drivers/raw/ifpga/base/opae_spi_transaction.c | 15 +- drivers/raw/ifpga/ifpga_rawdev.c | 60 +++-- 14 files changed, 523 insertions(+), 93 deletions(-) -- 2.17.1