usb: xhci: Fix double free on failure

drivers/core/device.c will call `device_free()` after xhci_register
already frees the private device data. This can cause a crash later
during the boot process, observed on aarch64 RPi4b as a synchronous
exception. All callers of xhci_register use priv_auto, so this won't
lead to memory leaks.

Signed-off-by: Richard Habeeb <richard.habeeb@gmail.com>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
Richard Habeeb 2023-07-24 15:45:25 -04:00 committed by Marek Vasut
parent 15cba56dc8
commit 3aba92c9dd

View File

@ -1418,7 +1418,6 @@ int xhci_register(struct udevice *dev, struct xhci_hccr *hccr,
return 0;
err:
free(ctrl);
debug("%s: failed, ret=%d\n", __func__, ret);
return ret;
}