]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
staging: gpib: Fix device reference leak in fmh_gpib driver
authorMa Ke <make24@iscas.ac.cn>
Tue, 23 Sep 2025 01:36:03 +0000 (09:36 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Oct 2025 13:10:31 +0000 (14:10 +0100)
commit b1aabb8ef09b4cf0cc0c92ca9dfd19482f3192c1 upstream.

The fmh_gpib driver contains a device reference count leak in
fmh_gpib_attach_impl() where driver_find_device() increases the
reference count of the device by get_device() when matching but this
reference is not properly decreased. Add put_device() in
fmh_gpib_detach(), which ensures that the reference count of the
device is correctly managed.

Found by code review.

Cc: stable <stable@kernel.org>
Fixes: 8e4841a0888c ("staging: gpib: Add Frank Mori Hess FPGA PCI GPIB driver")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/gpib/fmh_gpib/fmh_gpib.c

index 4138f3d2bae7f44bd6bc83ae89205c0457011980..efce01b39b9b113a81e14a2e018461ddf7e19f11 100644 (file)
@@ -1517,6 +1517,11 @@ void fmh_gpib_detach(struct gpib_board *board)
                                           resource_size(e_priv->gpib_iomem_res));
        }
        fmh_gpib_generic_detach(board);
+
+       if (board->dev) {
+               put_device(board->dev);
+               board->dev = NULL;
+       }
 }
 
 static int fmh_gpib_pci_attach_impl(struct gpib_board *board,