linux/Documentation/driver-api
Marco Pagani 4d4d2d4346
fpga: manager: add owner module and take its refcount
The current implementation of the fpga manager assumes that the low-level
module registers a driver for the parent device and uses its owner pointer
to take the module's refcount. This approach is problematic since it can
lead to a null pointer dereference while attempting to get the manager if
the parent device does not have a driver.

To address this problem, add a module owner pointer to the fpga_manager
struct and use it to take the module's refcount. Modify the functions for
registering the manager to take an additional owner module parameter and
rename them to avoid conflicts. Use the old function names for helper
macros that automatically set the module that registers the manager as the
owner. This ensures compatibility with existing low-level control modules
and reduces the chances of registering a manager without setting the owner.

Also, update the documentation to keep it consistent with the new interface
for registering an fpga manager.

Other changes: opportunistically move put_device() from __fpga_mgr_get() to
fpga_mgr_get() and of_fpga_mgr_get() to improve code clarity since the
manager device is taken in these functions.

Fixes: 654ba4cc0f ("fpga manager: ensure lifetime with of_fpga_mgr_get")
Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Suggested-by: Xu Yilun <yilun.xu@intel.com>
Signed-off-by: Marco Pagani <marpagan@redhat.com>
Acked-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20240305192926.84886-1-marpagan@redhat.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2024-03-31 21:50:39 +08:00
..
80211 wifi: mac80211: rename ieee80211_tx_status() to ieee80211_tx_status_skb() 2023-10-23 12:26:51 +02:00
acpi
backlight
crypto crypto: iaa - Add IAA Compression Accelerator Documentation 2023-12-15 17:52:53 +08:00
cxl Documentation: cxl: remove dangling kernel-doc reference 2022-08-05 08:41:02 -07:00
dmaengine Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
driver-model spi: Updates for v6.9 2024-03-13 11:07:37 -07:00
early-userspace
firmware Driver core changes for 6.4-rc1 2023-04-27 11:53:57 -07:00
fpga fpga: manager: add owner module and take its refcount 2024-03-31 21:50:39 +08:00
gpio Documentation: gpio: consistently use logical line value terminology 2024-02-14 10:34:08 +01:00
hte hte: Re-phrase tegra API document 2023-04-26 15:43:19 -07:00
i3c i3c: Fix typo "Provisional ID" to "Provisioned ID" 2023-10-10 12:11:13 +02:00
iio
md Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
media docs: media: fix typo in docs 2024-02-16 11:46:32 +01:00
mei docs: driver-api: properly format ToC headings 2023-11-17 13:05:26 -07:00
memory-devices
mmc docs: mmc: update maintainer name and URL 2021-10-28 11:54:54 +02:00
mtd docs: mtd: spi-nor: drop obsolete info 2023-11-24 22:11:19 +02:00
nfc Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
nvdimm Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
pci PCI: Move PCI-specific devres code to drivers/pci/ 2024-02-12 10:36:17 -06:00
phy phy: Add devm_of_phy_optional_get() helper 2023-02-03 10:52:49 +05:30
pldmfw Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
pm
rapidio
serial Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
soundwire soundwire: stream: add missing const to Documentation 2024-01-22 13:57:09 +05:30
surface_aggregator lib: crc_ccitt_false() is identical to crc_itu_t() 2023-12-29 12:22:26 -08:00
thermal thermal: int340x: processor_thermal: Support power floor notifications 2023-10-12 21:09:48 +02:00
tty Documentation: add console.rst 2024-01-27 18:08:55 -08:00
usb USB: document some API requirements on disconnection 2024-03-02 20:37:14 +01:00
virtio docs: driver-api: virtio: commentize spec version checking 2023-02-20 19:26:57 -05:00
xilinx
aperture.rst drm: Implement DRM aperture helpers under video/ 2022-06-27 11:07:55 +02:00
auxiliary_bus.rst Documentation/auxiliary_bus: Move the text into the code 2021-12-03 16:41:50 +01:00
basics.rst docs: time: make separate section for time and timers 2023-07-14 13:47:07 -06:00
clk.rst docs: clk: add documentation to log which clocks have been disabled 2023-04-20 17:53:38 -06:00
component.rst
connector.rst
console.rst
devfreq.rst
device_link.rst
device-io.rst PCI: Move pci_iomap.c to drivers/pci/ 2024-02-12 10:35:40 -06:00
dma-buf.rst doc: uapi: Add document describing dma-buf semantics 2023-08-21 18:20:05 +02:00
dpll.rst dpll: move all dpll<>netdev helpers to dpll code 2024-03-05 18:36:42 -08:00
edac.rst EDAC/amd64: Document heterogeneous system enumeration 2023-06-05 12:27:15 +02:00
eisa.rst Documentation: eisa: Fix typo 2022-11-15 14:52:38 -07:00
firewire.rst Documentation: fix firewire.rst ABI file path error 2022-01-20 17:01:32 -07:00
frame-buffer.rst
generic-counter.rst counter: Update documentation for new counter registration functions 2021-12-30 17:44:06 +01:00
hsi.rst Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
i2c.rst
index.rst docs: rework the driver-api top-level page 2024-01-30 13:47:53 -07:00
infiniband.rst
infrastructure.rst docs: add more driver-model infrastructure interfaces 2023-07-14 13:18:50 -06:00
input.rst
interconnect.rst interconnect: Add debugfs test client 2023-08-22 21:04:50 +03:00
io_ordering.rst
io-mapping.rst Documentation: driver-api: correct spelling 2023-02-02 11:05:16 -07:00
ioctl.rst
ipmb.rst
ipmi.rst ipmi: Add docs for the IPMI IPMB driver 2021-10-05 06:54:17 -05:00
isa.rst Remove duplicate words inside documentation 2022-09-27 13:21:43 -06:00
libata.rst ata: libata: remove deprecated EH callbacks 2023-08-02 17:45:42 +09:00
mailbox.rst
men-chameleon-bus.rst
message-based.rst
misc_devices.rst
miscellaneous.rst docs/driver-api/miscellaneous: Remove kernel-doc of serial_core.c 2022-11-09 14:56:05 +01:00
mtdnand.rst
ntb.rst ntb.rst: Fix copy and paste error 2023-07-08 11:05:05 -04:00
nvmem.rst docs: nvmem: remove function parameters (fixes hyperlink generation) 2023-12-08 15:35:35 -07:00
parport-lowlevel.rst
pin-control.rst It has been a moderately calm cycle for documentation; the significant 2023-02-22 12:00:20 -08:00
pps.rst Documentation: driver-api: pps: Update PPS generator documentation 2023-10-26 11:38:03 -06:00
ptp.rst docs: ptp.rst: Add information about NVIDIA Mellanox devices 2023-06-20 09:02:32 +01:00
pwm.rst pwm: Provide pwmchip_alloc() function and a devm variant of it 2024-02-15 12:59:15 +01:00
regulator.rst
reset.rst
rfkill.rst
s390-drivers.rst docs: move s390 under arch 2023-07-24 12:12:24 +02:00
scsi.rst
slimbus.rst
sm501.rst
spi.rst spi: Update reference to struct spi_controller 2022-11-01 18:30:09 +00:00
switchtec.rst
sync_file.rst
target.rst
tee.rst Documentation: Destage TEE subsystem documentation 2023-12-08 15:45:10 -07:00
uio-howto.rst
vfio-mediated-device.rst vfio-mdev: remove an non-existing driver from vfio-mediated-device 2023-01-23 11:26:29 -07:00
vfio-pci-device-specific-driver-acceptance.rst vfio-pci: Provide reviewers and acceptance criteria for variant drivers 2022-03-17 09:57:11 -06:00
vfio.rst docs: vfio: Add vfio device cdev description 2023-07-25 10:20:54 -06:00
vme.rst vme: move back to staging 2022-06-10 15:38:14 +02:00
w1.rst
wbrf.rst Documentation/driver-api: Add document about WBRF mechanism 2023-12-11 11:33:23 +01:00
wmi.rst platform/x86: wmi: Add documentation 2023-05-09 11:54:42 +02:00
xillybus.rst
zorro.rst