Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eaffffbb authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

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

parents 9a7b6fe9 eed205c3
Loading
Loading
Loading
Loading
+9 −4
Original line number Diff line number Diff line
@@ -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)) {