Page MenuHomeFreeBSD

D61223.1794524036.diff
No OneTemporary

Authored By
Unknown
Size
673 B
Referenced Files
None
Subscribers
None

D61223.1794524036.diff

diff --git a/sys/compat/linuxkpi/common/src/linux_pci.c b/sys/compat/linuxkpi/common/src/linux_pci.c
--- a/sys/compat/linuxkpi/common/src/linux_pci.c
+++ b/sys/compat/linuxkpi/common/src/linux_pci.c
@@ -720,6 +720,14 @@
return (0);
out_err:
+ /*
+ * As on Linux when a probe fails, release the devres actions. Waiting
+ * for the last reference to go away is wrong: devres actions (e.g. the
+ * drm_dev_put() of devm_drm_dev_alloc()) may hold references on this
+ * very device, which then never gets released, nor does the object
+ * which holds the reference.
+ */
+ lkpi_devres_release_free_list(&pdev->dev);
put_device(&pdev->dev);
return (-error);
}

File Metadata

Mime Type
text/plain
Expires
Thu, Nov 12, 10:53 PM (2 h, 9 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41511887
Default Alt Text
D61223.1794524036.diff (673 B)

Event Timeline