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

Commit 081076f2 authored by Prateek Sood's avatar Prateek Sood
Browse files

soc: qcom: add default minidump id for clients



Add default minidump id for clients which are not passing
ID in md_region.

Change-Id: Ib0a78c2f2d4b3c56448263edd993b175d1d2458a
Signed-off-by: default avatarPrateek Sood <prsood@codeaurora.org>
parent 6cbd30c5
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -1842,6 +1842,7 @@ static int lpm_probe(struct platform_device *pdev)
	md_entry.virt_addr = (uintptr_t)lpm_debug;
	md_entry.virt_addr = (uintptr_t)lpm_debug;
	md_entry.phys_addr = lpm_debug_phys;
	md_entry.phys_addr = lpm_debug_phys;
	md_entry.size = size;
	md_entry.size = size;
	md_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&md_entry))
	if (msm_minidump_add_region(&md_entry))
		pr_info("Failed to add lpm_debug in Minidump\n");
		pr_info("Failed to add lpm_debug in Minidump\n");


+6 −1
Original line number Original line Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-License-Identifier: GPL-2.0-only
/*
/*
 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */
 */


#include <linux/module.h>
#include <linux/module.h>
@@ -32,6 +32,7 @@ static void __init register_log_buf(void)
	md_entry.virt_addr = (uintptr_t) (*log_bufp);
	md_entry.virt_addr = (uintptr_t) (*log_bufp);
	md_entry.phys_addr = virt_to_phys(*log_bufp);
	md_entry.phys_addr = virt_to_phys(*log_bufp);
	md_entry.size = *log_buf_lenp;
	md_entry.size = *log_buf_lenp;
	md_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&md_entry))
	if (msm_minidump_add_region(&md_entry))
		pr_err("Failed to add logbuf in Minidump\n");
		pr_err("Failed to add logbuf in Minidump\n");
}
}
@@ -42,6 +43,7 @@ static void register_stack_entry(struct md_region *ksp_entry, u64 sp, u64 size,
	struct page *sp_page;
	struct page *sp_page;
	struct vm_struct *stack_vm_area = task_stack_vm_area(current);
	struct vm_struct *stack_vm_area = task_stack_vm_area(current);


	ksp_entry->id = MINIDUMP_DEFAULT_ID;
	ksp_entry->virt_addr = sp;
	ksp_entry->virt_addr = sp;
	ksp_entry->size = size;
	ksp_entry->size = size;
	if (stack_vm_area) {
	if (stack_vm_area) {
@@ -67,6 +69,7 @@ static void __init register_kernel_sections(void)
	ksec_entry.virt_addr = (uintptr_t)_sdata;
	ksec_entry.virt_addr = (uintptr_t)_sdata;
	ksec_entry.phys_addr = virt_to_phys(_sdata);
	ksec_entry.phys_addr = virt_to_phys(_sdata);
	ksec_entry.size = roundup((__bss_stop - _sdata), 4);
	ksec_entry.size = roundup((__bss_stop - _sdata), 4);
	ksec_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&ksec_entry))
	if (msm_minidump_add_region(&ksec_entry))
		pr_err("Failed to add data section in Minidump\n");
		pr_err("Failed to add data section in Minidump\n");


@@ -80,6 +83,7 @@ static void __init register_kernel_sections(void)
		ksec_entry.virt_addr = (uintptr_t)start;
		ksec_entry.virt_addr = (uintptr_t)start;
		ksec_entry.phys_addr = per_cpu_ptr_to_phys(start);
		ksec_entry.phys_addr = per_cpu_ptr_to_phys(start);
		ksec_entry.size = static_size;
		ksec_entry.size = static_size;
		ksec_entry.id = MINIDUMP_DEFAULT_ID;
		if (msm_minidump_add_region(&ksec_entry))
		if (msm_minidump_add_region(&ksec_entry))
			pr_err("Failed to add percpu sections in Minidump\n");
			pr_err("Failed to add percpu sections in Minidump\n");
	}
	}
@@ -152,6 +156,7 @@ void dump_stack_minidump(u64 sp)
	ktsk_entry.virt_addr = (u64)current;
	ktsk_entry.virt_addr = (u64)current;
	ktsk_entry.phys_addr = virt_to_phys((uintptr_t *)current);
	ktsk_entry.phys_addr = virt_to_phys((uintptr_t *)current);
	ktsk_entry.size = sizeof(struct task_struct);
	ktsk_entry.size = sizeof(struct task_struct);
	ktsk_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&ktsk_entry))
	if (msm_minidump_add_region(&ktsk_entry))
		pr_err("Failed to add current task %d in Minidump\n", cpu);
		pr_err("Failed to add current task %d in Minidump\n", cpu);
}
}
+2 −1
Original line number Original line Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-License-Identifier: GPL-2.0-only
/*
/*
 * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
 */
 */


#include <linux/module.h>
#include <linux/module.h>
@@ -760,6 +760,7 @@ static int msm_watchdog_probe(struct platform_device *pdev)
	md_entry.virt_addr = (uintptr_t)wdog_dd;
	md_entry.virt_addr = (uintptr_t)wdog_dd;
	md_entry.phys_addr = virt_to_phys(wdog_dd);
	md_entry.phys_addr = virt_to_phys(wdog_dd);
	md_entry.size = sizeof(*wdog_dd);
	md_entry.size = sizeof(*wdog_dd);
	md_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&md_entry))
	if (msm_minidump_add_region(&md_entry))
		pr_info("Failed to add Watchdog data in Minidump\n");
		pr_info("Failed to add Watchdog data in Minidump\n");


+5 −1
Original line number Original line Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/* SPDX-License-Identifier: GPL-2.0-only */
/*
/*
 * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */
 */


#ifndef __MINIDUMP_H
#ifndef __MINIDUMP_H
#define __MINIDUMP_H
#define __MINIDUMP_H


#define MAX_NAME_LENGTH		12
#define MAX_NAME_LENGTH		12

/* default value for clients not using any id */
#define MINIDUMP_DEFAULT_ID	UINT_MAX

/* md_region -  Minidump table entry
/* md_region -  Minidump table entry
 * @name:	Entry name, Minidump will dump binary with this name.
 * @name:	Entry name, Minidump will dump binary with this name.
 * @id:		Entry ID, used only for SDI dumps.
 * @id:		Entry ID, used only for SDI dumps.
+2 −1
Original line number Original line Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
// SPDX-License-Identifier: GPL-2.0-only
/*
/*
 * Copyright (c) 2013-2018, The Linux Foundation. All rights reserved.
 * Copyright (c) 2013-2020, The Linux Foundation. All rights reserved.
 */
 */


#include <linux/atomic.h>
#include <linux/atomic.h>
@@ -291,6 +291,7 @@ static int msm_rtb_probe(struct platform_device *pdev)
	md_entry.virt_addr = (uintptr_t)msm_rtb.rtb;
	md_entry.virt_addr = (uintptr_t)msm_rtb.rtb;
	md_entry.phys_addr = msm_rtb.phys;
	md_entry.phys_addr = msm_rtb.phys;
	md_entry.size = msm_rtb.size;
	md_entry.size = msm_rtb.size;
	md_entry.id = MINIDUMP_DEFAULT_ID;
	if (msm_minidump_add_region(&md_entry))
	if (msm_minidump_add_region(&md_entry))
		pr_info("Failed to add RTB in Minidump\n");
		pr_info("Failed to add RTB in Minidump\n");