From mboxrd@z Thu Jan 1 00:00:00 1970 From: Claude Code Review Bot To: dri-devel-reviews@example.com Subject: Claude review: rust: driver core: drop drvdata before devres release Date: Mon, 18 May 2026 16:24:33 +1000 Message-ID: In-Reply-To: <20260517000149.3226762-5-dakr@kernel.org> References: <20260517000149.3226762-1-dakr@kernel.org> <20260517000149.3226762-5-dakr@kernel.org> X-Mailer: Claude Code Patch Reviewer Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit MIME-Version: 1.0 Patch Review **Critical safety patch.** Changes `device_unbind_cleanup()` in `drivers/base/dd.c`: ```c -static void device_unbind_cleanup(struct device *dev) -{ - devres_release_all(dev); - if (dev->driver->p_cb.post_unbind_rust) - dev->driver->p_cb.post_unbind_rust(dev); +static void device_unbind_cleanup(struct device *dev) +{ + if (dev->driver->p_cb.post_unbind_rust) + dev->driver->p_cb.post_unbind_rust(dev); + devres_release_all(dev); ``` This reordering is **essential for soundness**: Rust destructors (called from `post_unbind_rust`) may hold references to devres-managed resources. If `devres_release_all` runs first, those destructors would access freed memory. **Concern:** This affects all devices, not just Rust-driven ones. The commit message should explicitly state why this is safe for existing C drivers (which shouldn't have `post_unbind_rust` set, so the reordering is a no-op for them). The commit message does explain the Rust motivation well but could be clearer about C-side impact. --- Generated by Claude Code Patch Reviewer