soc: qcom: pil: Do not do complete ramdump for minidump elf32
If minidump is configured to be ELF32, avoid using complete ramdump property, so that only the required segments area is dumped. Change-Id: I34fe359204309fda47d0a665ca641cb042d87054 Signed-off-by: Neeraj Upadhyay <neeraju@codeaurora.org> Signed-off-by: Mukesh Ojha <mojha@codeaurora.org>
This commit is contained in:
parent
b82c85fc28
commit
d7b8ff66af
@ -413,8 +413,8 @@ static int pil_do_minidump(struct pil_desc *desc, void *ramdump_dev)
|
||||
}
|
||||
|
||||
if (desc->minidump_as_elf32)
|
||||
ret = do_elf_ramdump(ramdump_dev, ramdump_segs,
|
||||
ss_valid_seg_cnt);
|
||||
ret = do_minidump_elf32(ramdump_dev, ramdump_segs,
|
||||
ss_valid_seg_cnt);
|
||||
else
|
||||
ret = do_minidump(ramdump_dev, ramdump_segs, ss_valid_seg_cnt);
|
||||
if (ret)
|
||||
|
@ -399,7 +399,7 @@ void destroy_ramdump_device(void *dev)
|
||||
EXPORT_SYMBOL(destroy_ramdump_device);
|
||||
|
||||
static int _do_ramdump(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments, bool use_elf)
|
||||
int nsegments, bool use_elf, bool complete_ramdump)
|
||||
{
|
||||
int ret, i;
|
||||
struct ramdump_device *rd_dev = (struct ramdump_device *)handle;
|
||||
@ -427,7 +427,7 @@ static int _do_ramdump(void *handle, struct ramdump_segment *segments,
|
||||
return -EPIPE;
|
||||
}
|
||||
|
||||
if (rd_dev->complete_ramdump) {
|
||||
if (complete_ramdump) {
|
||||
for (i = 0; i < nsegments-1; i++)
|
||||
segments[i].size =
|
||||
segments[i + 1].address - segments[i].address;
|
||||
@ -628,7 +628,10 @@ static int _do_minidump(void *handle, struct ramdump_segment *segments,
|
||||
|
||||
int do_ramdump(void *handle, struct ramdump_segment *segments, int nsegments)
|
||||
{
|
||||
return _do_ramdump(handle, segments, nsegments, false);
|
||||
struct ramdump_device *rd_dev = (struct ramdump_device *)handle;
|
||||
|
||||
return _do_ramdump(handle, segments, nsegments, false,
|
||||
rd_dev->complete_ramdump);
|
||||
}
|
||||
EXPORT_SYMBOL(do_ramdump);
|
||||
|
||||
@ -638,10 +641,20 @@ int do_minidump(void *handle, struct ramdump_segment *segments, int nsegments)
|
||||
}
|
||||
EXPORT_SYMBOL(do_minidump);
|
||||
|
||||
int do_minidump_elf32(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments)
|
||||
{
|
||||
return _do_ramdump(handle, segments, nsegments, true, false);
|
||||
}
|
||||
EXPORT_SYMBOL(do_minidump_elf32);
|
||||
|
||||
int
|
||||
do_elf_ramdump(void *handle, struct ramdump_segment *segments, int nsegments)
|
||||
{
|
||||
return _do_ramdump(handle, segments, nsegments, true);
|
||||
struct ramdump_device *rd_dev = (struct ramdump_device *)handle;
|
||||
|
||||
return _do_ramdump(handle, segments, nsegments, true,
|
||||
rd_dev->complete_ramdump);
|
||||
}
|
||||
EXPORT_SYMBOL(do_elf_ramdump);
|
||||
|
||||
|
@ -39,6 +39,8 @@ extern int do_elf_ramdump(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments);
|
||||
extern int do_minidump(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments);
|
||||
extern int do_minidump_elf32(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments);
|
||||
|
||||
#else
|
||||
static inline void *create_ramdump_device(const char *dev_name,
|
||||
@ -62,6 +64,19 @@ static inline int do_elf_ramdump(void *handle, struct ramdump_segment *segments,
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline int do_minidump(void *handle, struct ramdump_segment *segments,
|
||||
int nsegments)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
static inline int do_minidump_elf32(void *handle,
|
||||
struct ramdump_segment *segments, int nsegments)
|
||||
{
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
#endif /* CONFIG_MSM_SUBSYSTEM_RESTART */
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user