* Re: [PATCH] drm/bochs: Drop manual put on probe error path
[not found] <20260424123506.32275-1-mhun512@gmail.com>
@ 2026-05-07 8:44 ` Thomas Zimmermann
2026-05-08 7:43 ` Markus Elfring
0 siblings, 1 reply; 2+ messages in thread
From: Thomas Zimmermann @ 2026-05-07 8:44 UTC (permalink / raw)
To: Myeonghun Pak, Gerd Hoffmann, Maarten Lankhorst, Maxime Ripard,
David Airlie, Simona Vetter
Cc: virtualization, dri-devel, linux-kernel
Am 24.04.26 um 14:34 schrieb Myeonghun Pak:
> bochs_pci_probe() allocates the DRM device with devm_drm_dev_alloc(),
> which registers a devres action to drop the initial DRM device reference
> on driver detach or probe failure.
>
> The error path currently calls drm_dev_put() manually. If probe then
> returns an error, devres will run the registered release action and put
> the same device again, after the first put may already have released it.
>
> Return the probe error directly and let devres own the final put.
>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Fixes: 04826f588682 ("drm/bochs: Allocate DRM device in struct
bochs_device")
Cc: Thomas Zimmermann <tzimmermann@suse.de>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: virtualization@lists.linux.dev
Cc: <stable@vger.kernel.org> # v6.13+
> ---
> drivers/gpu/drm/tiny/bochs.c | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/drivers/gpu/drm/tiny/bochs.c b/drivers/gpu/drm/tiny/bochs.c
> index 222e4ae1ab..5d8dc5efec 100644
> --- a/drivers/gpu/drm/tiny/bochs.c
> +++ b/drivers/gpu/drm/tiny/bochs.c
> @@ -761,25 +761,21 @@ static int bochs_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent
>
> ret = pcim_enable_device(pdev);
> if (ret)
> - goto err_free_dev;
> + return ret;
>
> pci_set_drvdata(pdev, dev);
>
> ret = bochs_load(bochs);
> if (ret)
> - goto err_free_dev;
> + return ret;
>
> ret = drm_dev_register(dev, 0);
> if (ret)
> - goto err_free_dev;
> + return ret;
>
> drm_client_setup(dev, NULL);
>
> return ret;
> -
> -err_free_dev:
> - drm_dev_put(dev);
> - return ret;
> }
>
> static void bochs_pci_remove(struct pci_dev *pdev)
--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
^ permalink raw reply [flat|nested] 2+ messages in thread