Commit b15838b0 authored by Myeonghun Pak's avatar Myeonghun Pak Committed by Thomas Zimmermann
Browse files

drm/bochs: Drop manual put on probe error path



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: default avatarMyeonghun Pak <mhun512@gmail.com>
Fixes: 04826f58 ("drm/bochs: Allocate DRM device in struct bochs_device")
Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Reviewed-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260424123506.32275-1-mhun512@gmail.com
parent 26f6654a
Loading
Loading
Loading
Loading
+3 −7
Original line number Diff line number Diff line
@@ -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)