For drivers that create new virtual child devices, error paths often tend to use dev_name() on the uninitialized device via the dev_ family of logging functions. Many such uninitialized devices have a name set already though, but just lacks registration, which leads to dev_id returning dev->unique_name, which may be NULL. Change dev_name to return dev->name if dev->unique_name is NULL. Signed-off-by: Ahmad Fatoum <ahmad@xxxxxx> --- include/driver.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/driver.h b/include/driver.h index 693d5cb3e580..4d500ed21e34 100644 --- a/include/driver.h +++ b/include/driver.h @@ -191,7 +191,9 @@ static inline const char *dev_id(const struct device *dev) static inline const char *dev_name(const struct device *dev) { - return dev_id(dev); + if (!dev) + return NULL; + return dev_id(dev) ?: dev->name; } int dev_set_name(struct device *dev, const char *fmt, ...); -- 2.38.1