diff --git a/drivers/core/device.c b/drivers/core/device.c index 92e8a57..6bd4b26 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -243,14 +243,15 @@ int device_probe_child(struct udevice *dev, void *parent_priv) goto fail; } + dev->flags |= DM_FLAG_ACTIVATED; if (drv->probe) { ret = drv->probe(dev); - if (ret) + if (ret) { + dev->flags &= ~DM_FLAG_ACTIVATED; goto fail; + } } - dev->flags |= DM_FLAG_ACTIVATED; - ret = uclass_post_probe_device(dev); if (ret) { dev->flags &= ~DM_FLAG_ACTIVATED;