On Thu, May 22, 2025 at 01:18:55PM +0200, Maud Spierings via B4 Relay wrote:
Throughout the various probe functions &indio_dev->dev is used before it is initialized. This caused a kernel panic in st_sensors_power_enable
st_sensors_power_enable()
when the call to devm_regulator_bulk_get_enable() fails and then calls dev_err_probe() with the uninitialized device.
This seems to only cause a panic with dev_err_probe(), dev_err,
dev_err()
dev_warn and dev_info don't seem to cause a panic, but are fixed
dev_warn() dev_info()
as well.
Signed-off-by: Maud Spierings maudspierings@gocontroll.com
When I search for general &indio_dev->dev usage, I see quite a lot more hits, but I am not sure if there are issues with those too.
This issue has existed for a long time it seems and therefore it is nearly impossible to find a proper fixes tag. I would love to see it at least backported to 6.12 as that is where I encountered it, and I believe the patch should apply without conflicts.
The investigation into this issue can be found in this thread [1]
Shouldn't it be moved to the commit message as Link tag?
...
return dev_err_probe(&indio_dev->dev, err,
return dev_err_probe(parent, err, "unable to enable supplies\n");
Now it can be put on one line (yes, only 1 or 2 characters longer than 80).
...
dev_info(&indio_dev->dev,
dev_info(parent, "interrupts on the rising edge\n");
Ditto.
...
dev_info(&indio_dev->dev,
dev_info(parent, "interrupts active high level\n");
Ditto.