dm: core: Fix code reentrancy issue in device_probe_child()
authorBin Meng <bmeng.cn@gmail.com>
Mon, 24 Aug 2015 08:14:02 +0000 (01:14 -0700)
committerSimon Glass <sjg@chromium.org>
Wed, 26 Aug 2015 14:54:17 +0000 (07:54 -0700)
commitcdeb2ba99cb333f7729cd5784ea2de00e265f22f
treead28b2e0196af2592598c88f6908afd14992f230
parent1887ed3ad6509a4ce411b7981dd27515e0c44bb7
dm: core: Fix code reentrancy issue in device_probe_child()

The device might have already been probed during the call to
device_probe() on its parent device (e.g. PCI bridge devices).
In its parent device's probe routine, it might probe all of
its child devices via device_probe() thus the codes reenter
device_probe_child(). To support code reentrancy, test these
allocated memory against NULL to avoid memory leak, and return
to the caller if dev->flags has DM_FLAG_ACTIVATED set after
device_probe() returns, so that we don't mess up the device.

Signed-off-by: Bin Meng <bmeng.cn@gmail.com>
Acked-by: Simon Glass <sjg@chromium.org>
drivers/core/device.c