lkml.org 
[lkml]   [2023]   [Nov]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[RFC PATCH 0/2] fpga: improve protection against low-level modules unloading
Date
This RFC proposes a possible solution to keep protecting the fpga
manager against the unexpected unloading of low-level control modules
while addressing the limitations of the current implementation. The
current implementation assumes that the low-level module registers a
platform driver for the parent device, which can later be used by the
fpga manager (through the parent device pointer) to take the low-level
module's refcount. This proposal removes this limitation by adding a
module owner field to the fpga_manager and fpga_manager_ops structs.
Low-level control modules can statically set the owner field to
THIS_MODULE. Later, the fpga manager can use the owner field to take
the module's refcount.

For more context, please refer to these threads:
https://lore.kernel.org/linux-fpga/ZS6hhlvjUcqyv8zL@yilunxu-OptiPlex-7050
https://lore.kernel.org/linux-fpga/ZT9qENE9fE3Z0KCW@yilunxu-OptiPlex-7050

Signed-off-by: Marco Pagani <marpagan@redhat.com>

Marco Pagani (2):
fpga: add a module owner field to fpga_manager and fpga_manager_ops
fpga: set owner of fpga_manager_ops for existing low-level modules

drivers/fpga/altera-cvp.c | 1 +
drivers/fpga/altera-pr-ip-core.c | 1 +
drivers/fpga/altera-ps-spi.c | 1 +
drivers/fpga/dfl-fme-mgr.c | 1 +
drivers/fpga/fpga-mgr.c | 56 +++++++++++++++++++--------
drivers/fpga/ice40-spi.c | 1 +
drivers/fpga/lattice-sysconfig.c | 1 +
drivers/fpga/machxo2-spi.c | 1 +
drivers/fpga/microchip-spi.c | 1 +
drivers/fpga/socfpga-a10.c | 1 +
drivers/fpga/socfpga.c | 1 +
drivers/fpga/stratix10-soc.c | 1 +
drivers/fpga/tests/fpga-mgr-test.c | 1 +
drivers/fpga/tests/fpga-region-test.c | 1 +
drivers/fpga/ts73xx-fpga.c | 1 +
drivers/fpga/versal-fpga.c | 1 +
drivers/fpga/xilinx-spi.c | 1 +
drivers/fpga/zynq-fpga.c | 1 +
drivers/fpga/zynqmp-fpga.c | 1 +
include/linux/fpga/fpga-mgr.h | 4 ++
20 files changed, 62 insertions(+), 16 deletions(-)


base-commit: 98b1cc82c4affc16f5598d4fa14b1858671b2263
--
2.42.0

\
 
 \ /
  Last update: 2023-11-22 15:33    [W:0.052 / U:0.308 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site