This patches set will improve the ifpga base driver reliability in multi-process environment.
Main changes from v2: - Fix typo in some commit log. Patch #1: Fix a bug for register and unregister interrupt functions. Patch #2: Add two functions to free the resource when we destroy the opae adapter. Patch #3: Add function ifpga_rawdev_cleanup() to cleanup all ifpga raw devices. Patch #4: 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 (4): raw/ifpga/base: fix bug in IRQ functions raw/ifpga/base: free resources when destroying ifpga device raw/ifpga/base: cleanup ifpga raw devices when process quit raw/ifpga/base: enhance driver reliability 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 | 69 +++-- 14 files changed, 534 insertions(+), 91 deletions(-) -- 2.17.1