diff options
author | Simon Glass <sjg@chromium.org> | 2023-08-24 13:55:35 -0600 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-08-25 17:55:18 -0400 |
commit | c837a1423c876669bfd963e1ded518b9e497946d (patch) | |
tree | 4dfb76d4c131c3a0d2db9ceb6968a8de0e378b7d /drivers/core/device.c | |
parent | fbd644e7026f89f09cfa854fbf846449579f1684 (diff) |
dm: core: Correct error handling when event fails
Follow the correct path in device_probe() when and event handler fails.
This avoids getting into a strange state where the device appears to be
activated but is not.
Signed-off-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'drivers/core/device.c')
-rw-r--r-- | drivers/core/device.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/core/device.c b/drivers/core/device.c index 6e26b64fb81..60f8d6700ad 100644 --- a/drivers/core/device.c +++ b/drivers/core/device.c @@ -598,9 +598,10 @@ int device_probe(struct udevice *dev) ret = device_notify(dev, EVT_DM_POST_PROBE); if (ret) - return ret; + goto fail_event; return 0; +fail_event: fail_uclass: if (device_remove(dev, DM_REMOVE_NORMAL)) { dm_warn("%s: Device '%s' failed to remove on error path\n", |