On Sat, 2026-03-14 at 09:07 +0100, Greg Kroah-Hartman wrote: > On Fri, Mar 13, 2026 at 06:12:31PM +0000, Markus Probst wrote: > > Add rust private data to `struct serdev_device`, as it is required by the > > rust abstraction added in the following commit > > (rust: add basic serial device bus abstractions). > > why is rust "special" here? What's wrong with the existing private > pointer in this structure? Why must we add another one? Because in rust, the device drvdata will be set after probe has run. In serdev, once the device has been opened, it can receive data. It must be opened either inside probe or before probe, because it can only be configured (baudrate, flow control etc.) and data written to after it has been opened. Because it can receive data before drvdata has been set yet, we need to ensure it waits on data receival for the probe to be finished. Otherwise this would be a null pointer dereference. To do this, we need to store a `Completion` for it to wait and a `bool` in case the probe exits with an error. We cannot store this data in the device drvdata, because this is where the drivers drvdata goes. We also cannot create a wrapper of the drivers drvdata, because `Device::drvdata::()` would always fail in that case. That is why we need a "rust_private_data" for this abstraction to store the `Completion` and `bool`. Thanks - Markus Probst > > thanks, > > greg k-h