mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-05 18:39:59 +00:00
of: unittest: find overlays[] entry by name instead of index
One accessor of overlays[] was using a hard coded index value to find the correct array entry instead of searching for the entry containing the correct name. Tested-by: Alan Tull <atull@kernel.org> Signed-off-by: Frank Rowand <frank.rowand@sony.com>
This commit is contained in:
parent
5babefb7f7
commit
160b1d4e41
1 changed files with 17 additions and 4 deletions
|
@ -2192,7 +2192,7 @@ OVERLAY_INFO_EXTERN(overlay_bad_add_dup_prop);
|
|||
OVERLAY_INFO_EXTERN(overlay_bad_phandle);
|
||||
OVERLAY_INFO_EXTERN(overlay_bad_symbol);
|
||||
|
||||
/* order of entries is hard-coded into users of overlays[] */
|
||||
/* entries found by name */
|
||||
static struct overlay_info overlays[] = {
|
||||
OVERLAY_INFO(overlay_base, -9999),
|
||||
OVERLAY_INFO(overlay, 0),
|
||||
|
@ -2215,7 +2215,8 @@ static struct overlay_info overlays[] = {
|
|||
OVERLAY_INFO(overlay_bad_add_dup_prop, -EINVAL),
|
||||
OVERLAY_INFO(overlay_bad_phandle, -EINVAL),
|
||||
OVERLAY_INFO(overlay_bad_symbol, -EINVAL),
|
||||
{}
|
||||
/* end marker */
|
||||
{.dtb_begin = NULL, .dtb_end = NULL, .expected_result = 0, .name = NULL}
|
||||
};
|
||||
|
||||
static struct device_node *overlay_base_root;
|
||||
|
@ -2245,6 +2246,19 @@ void __init unittest_unflatten_overlay_base(void)
|
|||
u32 data_size;
|
||||
void *new_fdt;
|
||||
u32 size;
|
||||
int found = 0;
|
||||
const char *overlay_name = "overlay_base";
|
||||
|
||||
for (info = overlays; info && info->name; info++) {
|
||||
if (!strcmp(overlay_name, info->name)) {
|
||||
found = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
pr_err("no overlay data for %s\n", overlay_name);
|
||||
return;
|
||||
}
|
||||
|
||||
info = &overlays[0];
|
||||
|
||||
|
@ -2292,11 +2306,10 @@ static int __init overlay_data_apply(const char *overlay_name, int *overlay_id)
|
|||
{
|
||||
struct overlay_info *info;
|
||||
int found = 0;
|
||||
int k;
|
||||
int ret;
|
||||
u32 size;
|
||||
|
||||
for (k = 0, info = overlays; info && info->name; info++, k++) {
|
||||
for (info = overlays; info && info->name; info++) {
|
||||
if (!strcmp(overlay_name, info->name)) {
|
||||
found = 1;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue