Hi Simon,
Perhaps a typo in this subject, too dm: core: Allow uclasses to specific the private data for a device's children s/to specific/to specify/ ?? On Mon, 19 Jan 2015 20:12:41 -0700 Simon Glass <s...@chromium.org> wrote: > In many cases the per-child private data for a device's children is defined > by the uclass rather than the individual driver. For example, a SPI bus > needs to store information about each of its children, but all SPI drivers > store the same information. It makes sense to allow the uclass to define > this data. > > If the driver provides a size value for its per-child private data, then use > it. Failng that, fall back to that provided by the uclass. > > Signed-off-by: Simon Glass <s...@chromium.org> > --- > > Changes in v2: None > > drivers/core/device-remove.c | 4 ++++ > drivers/core/device.c | 4 ++++ > include/dm/uclass.h | 4 ++++ > test/dm/bus.c | 31 +++++++++++++++++++++++++++++-- > 4 files changed, 41 insertions(+), 2 deletions(-) > > diff --git a/drivers/core/device-remove.c b/drivers/core/device-remove.c > index 56c358a..3a5f48d 100644 > --- a/drivers/core/device-remove.c > +++ b/drivers/core/device-remove.c > @@ -126,6 +126,10 @@ void device_free(struct udevice *dev) > } > if (dev->parent) { > size = dev->parent->driver->per_child_auto_alloc_size; > + if (!size) { > + size = dev->parent->uclass->uc_drv-> > + per_child_auto_alloc_size; > + } > if (size) { > free(dev->parent_priv); > dev->parent_priv = NULL; Hmm, do we need to check the per_child_auto_alloc_size? Is it better and simpler to check dev->parent_priv like this? if (dev->parent && !dev->parent_priv) { free(dev->parent_priv); dev->parent_priv = NULL; } Or further more simpily if (dev->parent) { free(dev->parent_priv); dev->parent_priv = NULL; } When free() is given with NULL pointer, it returns without doing anything, I think. Best Regards Masahiro Yamada _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot