mirror of https://gitee.com/openkylin/linux.git
staging: fsl-mc: Removed reordering of MC objects during bus scan
MC objects discovered during an MC bus scan were being reordered to ensure that all allocatable objects are probed before all non-allocatable objects. However, this is not necessary, as drivers of non-allocatable objects, that allocate allocatable objects in their probe function, can return -EPROBE_DEFER if such allocations fail. Signed-off-by: J. German Rivera <German.Rivera@freescale.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f83e775d6e
commit
0b52877594
|
@ -205,36 +205,6 @@ static void dprc_cleanup_all_resource_pools(struct fsl_mc_device *mc_bus_dev)
|
|||
dprc_cleanup_resource_pool(mc_bus_dev, pool_type);
|
||||
}
|
||||
|
||||
static void reorder_obj_desc_array(struct dprc_obj_desc *obj_desc_array,
|
||||
int num_devs)
|
||||
{
|
||||
struct dprc_obj_desc tmp;
|
||||
struct dprc_obj_desc *top_cursor = &obj_desc_array[0];
|
||||
struct dprc_obj_desc *bottom_cursor = &obj_desc_array[num_devs - 1];
|
||||
|
||||
/*
|
||||
* Reorder entries in obj_desc_array so that all allocatable devices
|
||||
* are placed before all non-allocatable devices:
|
||||
*
|
||||
* Loop Invariant: everything before top_cursor is allocatable and
|
||||
* everything after bottom_cursor is non-allocatable.
|
||||
*/
|
||||
while (top_cursor < bottom_cursor) {
|
||||
if (FSL_MC_IS_ALLOCATABLE(top_cursor->type)) {
|
||||
top_cursor++;
|
||||
} else {
|
||||
if (FSL_MC_IS_ALLOCATABLE(bottom_cursor->type)) {
|
||||
tmp = *bottom_cursor;
|
||||
*bottom_cursor = *top_cursor;
|
||||
*top_cursor = tmp;
|
||||
top_cursor++;
|
||||
}
|
||||
|
||||
bottom_cursor--;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* dprc_scan_objects - Discover objects in a DPRC
|
||||
*
|
||||
|
@ -313,8 +283,6 @@ int dprc_scan_objects(struct fsl_mc_device *mc_bus_dev)
|
|||
"%d out of %d devices could not be retrieved\n",
|
||||
dprc_get_obj_failures, num_child_objects);
|
||||
}
|
||||
|
||||
reorder_obj_desc_array(child_obj_desc_array, num_child_objects);
|
||||
}
|
||||
|
||||
dprc_remove_devices(mc_bus_dev, child_obj_desc_array,
|
||||
|
|
Loading…
Reference in New Issue