Your ROOT_URL in app.ini is https://src.whiteboxsystems.nl/ but you are visiting http://src.whiteboxsystems.nl/Whitebox/u-boot/commit/f8a85449ef3e0963add728815771ccc09aa99875
You should set ROOT_URL correctly, otherwise the web may not work correctly.
3 changed files with
19 additions and
15 deletions
drivers/core/device-remove.c
drivers/core/device.c
test/dm/test-fdt.c
@ -88,6 +88,10 @@ int device_unbind(struct udevice *dev)
if ( ret )
return ret ;
if ( dev - > flags & DM_FLAG_ALLOC_PDATA ) {
free ( dev - > platdata ) ;
dev - > platdata = NULL ;
}
ret = uclass_unbind_device ( dev ) ;
if ( ret )
return ret ;
@ -111,10 +115,6 @@ void device_free(struct udevice *dev)
free ( dev - > priv ) ;
dev - > priv = NULL ;
}
if ( dev - > flags & DM_FLAG_ALLOC_PDATA ) {
free ( dev - > platdata ) ;
dev - > platdata = NULL ;
}
size = dev - > uclass - > uc_drv - > per_device_auto_alloc_size ;
if ( size ) {
free ( dev - > uclass_priv ) ;
@ -72,8 +72,14 @@ int device_bind(struct udevice *parent, struct driver *drv, const char *name,
# else
dev - > req_seq = - 1 ;
# endif
if ( ! dev - > platdata & & drv - > platdata_auto_alloc_size )
if ( ! dev - > platdata & & drv - > platdata_auto_alloc_size ) {
dev - > flags | = DM_FLAG_ALLOC_PDATA ;
dev - > platdata = calloc ( 1 , drv - > platdata_auto_alloc_size ) ;
if ( ! dev - > platdata ) {
ret = - ENOMEM ;
goto fail_alloc1 ;
}
}
/* put dev into parent's successor list */
if ( parent )
@ -103,6 +109,11 @@ fail_bind:
fail_uclass_bind :
if ( parent )
list_del ( & dev - > sibling_node ) ;
if ( dev - > flags & DM_FLAG_ALLOC_PDATA ) {
free ( dev - > platdata ) ;
dev - > platdata = NULL ;
}
fail_alloc1 :
free ( dev ) ;
return ret ;
@ -139,7 +150,7 @@ int device_probe_child(struct udevice *dev, void *parent_priv)
drv = dev - > driver ;
assert ( drv ) ;
/* Allocate private data and platdata if requested */
/* Allocate private data if requested */
if ( drv - > priv_auto_alloc_size ) {
dev - > priv = calloc ( 1 , drv - > priv_auto_alloc_size ) ;
if ( ! dev - > priv ) {
@ -148,13 +159,6 @@ int device_probe_child(struct udevice *dev, void *parent_priv)
}
}
/* Allocate private data if requested */
if ( dev - > flags & DM_FLAG_ALLOC_PDATA ) {
dev - > platdata = calloc ( 1 , drv - > platdata_auto_alloc_size ) ;
if ( ! dev - > platdata ) {
ret = - ENOMEM ;
goto fail ;
}
}
size = dev - > uclass - > uc_drv - > per_device_auto_alloc_size ;
if ( size ) {
dev - > uclass_priv = calloc ( 1 , size ) ;
@ -143,12 +143,12 @@ static int dm_test_fdt(struct dm_test_state *dms)
/* These are num_devices compatible root-level device tree nodes */
ut_asserteq ( num_devices , list_count_items ( & uc - > dev_head ) ) ;
/* Each should have no platdata / priv */
/* Each should have platform data but no private data */
for ( i = 0 ; i < num_devices ; i + + ) {
ret = uclass_find_device ( UCLASS_TEST_FDT , i , & dev ) ;
ut_assert ( ! ret ) ;
ut_assert ( ! dev_get_priv ( dev ) ) ;
ut_assert ( ! dev - > platdata ) ;
ut_assert ( dev - > platdata ) ;
}
ut_assertok ( dm_check_devices ( dms , num_devices ) ) ;