mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 14:19:09 -04:00
Merge "disp: msm: sde: add checks to avoid null pointer dereference"
This commit is contained in:
commit
433e1f67b4
1 changed files with 23 additions and 10 deletions
|
|
@ -504,6 +504,9 @@ static void _sde_dump_reg(const char *dump_name, u32 reg_dump_flag,
|
|||
pr_debug("%s: reg_dump_flag=%d in_log=%d in_mem=%d\n",
|
||||
dump_name, reg_dump_flag, in_log, in_mem);
|
||||
|
||||
if (!dbg_base->reg_dump_addr)
|
||||
in_mem = 0;
|
||||
|
||||
if (!in_log && !in_mem)
|
||||
return;
|
||||
|
||||
|
|
@ -711,12 +714,15 @@ static void _sde_dump_reg_by_ranges(struct sde_dbg_reg_base *dbg,
|
|||
addr, range_node->offset.start,
|
||||
range_node->offset.end);
|
||||
|
||||
scnprintf(dbg_base->reg_dump_addr, REG_BASE_NAME_LEN,
|
||||
dbg->name);
|
||||
dbg_base->reg_dump_addr += REG_BASE_NAME_LEN;
|
||||
scnprintf(dbg_base->reg_dump_addr, RANGE_NAME_LEN,
|
||||
range_node->range_name);
|
||||
dbg_base->reg_dump_addr += RANGE_NAME_LEN;
|
||||
if (dbg_base->reg_dump_addr) {
|
||||
scnprintf(dbg_base->reg_dump_addr, REG_BASE_NAME_LEN,
|
||||
dbg->name);
|
||||
dbg_base->reg_dump_addr += REG_BASE_NAME_LEN;
|
||||
scnprintf(dbg_base->reg_dump_addr, RANGE_NAME_LEN,
|
||||
range_node->range_name);
|
||||
dbg_base->reg_dump_addr += RANGE_NAME_LEN;
|
||||
}
|
||||
|
||||
_sde_dump_reg(range_node->range_name, reg_dump_flag,
|
||||
dbg->base, addr, len,
|
||||
&range_node->reg_dump);
|
||||
|
|
@ -729,10 +735,13 @@ static void _sde_dump_reg_by_ranges(struct sde_dbg_reg_base *dbg,
|
|||
dbg->max_offset);
|
||||
addr = dbg->base;
|
||||
len = dbg->max_offset;
|
||||
scnprintf(dbg_base->reg_dump_addr, REG_BASE_NAME_LEN,
|
||||
dbg->name);
|
||||
dbg_base->reg_dump_addr += REG_BASE_NAME_LEN;
|
||||
dbg_base->reg_dump_addr += RANGE_NAME_LEN;
|
||||
if (dbg_base->reg_dump_addr) {
|
||||
scnprintf(dbg_base->reg_dump_addr, REG_BASE_NAME_LEN,
|
||||
dbg->name);
|
||||
dbg_base->reg_dump_addr += REG_BASE_NAME_LEN;
|
||||
dbg_base->reg_dump_addr += RANGE_NAME_LEN;
|
||||
}
|
||||
|
||||
_sde_dump_reg(dbg->name, reg_dump_flag, dbg->base, addr, len,
|
||||
&dbg->reg_dump);
|
||||
}
|
||||
|
|
@ -1352,6 +1361,10 @@ static void _sde_dump_array(struct sde_dbg_reg_base *blk_arr[],
|
|||
dbg_base->reg_dump_addr = devm_kzalloc(sde_dbg_base.dev,
|
||||
reg_dump_size, GFP_KERNEL);
|
||||
|
||||
if (!dbg_base->reg_dump_addr)
|
||||
pr_err("Failed to allocate memory for reg_dump_addr size:%d\n",
|
||||
reg_dump_size);
|
||||
|
||||
if (dbg_base->reg_dump_addr &&
|
||||
sde_mini_dump_add_region("reg_dump",
|
||||
reg_dump_size, dbg_base->reg_dump_addr) < 0)
|
||||
|
|
|
|||
Loading…
Reference in a new issue