Merge "cnss2: Skip the dump segment if memory allocation fails"

This commit is contained in:
qctecmdr 2021-04-12 10:06:09 -07:00 • committed by Gerrit - the friendly Code Review server
commit eaffffbb7b

View file

@ -2131,13 +2131,15 @@ int cnss_do_elf_ramdump(struct cnss_plat_data *plat_priv)
continue;
}
seg = kcalloc(1, sizeof(*seg), GFP_KERNEL);
if (!seg)
continue;
if (meta_info.entry[dump_seg->type].entry_start == 0) {
meta_info.entry[dump_seg->type].type = dump_seg->type;
meta_info.entry[dump_seg->type].entry_start = i + 1;
}
meta_info.entry[dump_seg->type].entry_num++;
seg = kcalloc(1, sizeof(*seg), GFP_KERNEL);
seg->da = dump_seg->address;
seg->va = dump_seg->v_address;
seg->size = dump_seg->size;
@ -2145,16 +2147,19 @@ int cnss_do_elf_ramdump(struct cnss_plat_data *plat_priv)
dump_seg++;
}
seg = kcalloc(1, sizeof(*seg), GFP_KERNEL);
if (!seg)
goto do_elf_dump;
meta_info.magic = CNSS_RAMDUMP_MAGIC;
meta_info.version = CNSS_RAMDUMP_VERSION;
meta_info.chipset = plat_priv->device_id;
meta_info.total_entries = CNSS_FW_DUMP_TYPE_MAX;
seg = kcalloc(1, sizeof(*seg), GFP_KERNEL);
seg->va = &meta_info;
seg->size = sizeof(meta_info);
list_add(&seg->node, &head);
do_elf_dump:
ret = do_elf_dump(&head, info_v2->ramdump_dev);
while (!list_empty(&head)) {