mirror of
git://nv-tegra.nvidia.com/linux-nvgpu.git
synced 2025-12-24 02:22:34 +03:00
gpu: nvgpu: fix coverity issue in pmu logging
bug 200059216 use boolean to return status of hex search in the string Change-Id: Ifa53edccf54b9741b369f3a1ab5c79b6aad6cf86 Signed-off-by: Vijayakumar <vsubbu@nvidia.com> Reviewed-on: http://git-master/r/656749 Reviewed-by: Supriya Sharatkumar <ssharatkumar@nvidia.com> Reviewed-by: Seshendra Gadagottu <sgadagottu@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
This commit is contained in:
committed by
Dan Willemsen
parent
5bac50c044
commit
0fd396a87d
@@ -201,15 +201,18 @@ static void set_pmu_cmdline_args_falctracesize_v1(
|
||||
pmu->args_v1.falc_trace_size = size;
|
||||
}
|
||||
|
||||
static int find_hex_in_string(char *strings, struct gk20a *g)
|
||||
static bool find_hex_in_string(char *strings, struct gk20a *g, u32 *hex_pos)
|
||||
{
|
||||
u32 i = 0, j = strlen(strings);
|
||||
for (; i < j; i++) {
|
||||
if (strings[i] == '%')
|
||||
if (strings[i + 1] == 'x' || strings[i + 1] == 'X')
|
||||
return i;
|
||||
if (strings[i + 1] == 'x' || strings[i + 1] == 'X') {
|
||||
*hex_pos = i;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return 0xFF;
|
||||
*hex_pos = -1;
|
||||
return false;
|
||||
}
|
||||
|
||||
static void printtrace(struct pmu_gk20a *pmu)
|
||||
@@ -227,17 +230,17 @@ static void printtrace(struct pmu_gk20a *pmu)
|
||||
if (j == 0x40)
|
||||
return;
|
||||
count = scnprintf(buf, 0x40, "Index %x: ", trace1[(i / 4)]);
|
||||
k = find_hex_in_string((trace+i+20), g);
|
||||
l = 0;
|
||||
m = 0;
|
||||
while (k < 0xFF) {
|
||||
while (find_hex_in_string((trace+i+20+m), g, &k)) {
|
||||
if (k >= 40)
|
||||
break;
|
||||
strncpy(part_str, (trace+i+20+m), k);
|
||||
part_str[k] = 0;
|
||||
count += scnprintf((buf + count), 0x40, "%s0x%x",
|
||||
part_str, trace1[(i / 4) + 1 + l]);
|
||||
l++;
|
||||
m += k + 2;
|
||||
k = find_hex_in_string((trace+i+20+m), g);
|
||||
}
|
||||
count += scnprintf((buf + count), 0x40, "%s", (trace+i+20+m));
|
||||
gk20a_err(dev_from_gk20a(g), "%s", buf);
|
||||
@@ -4096,17 +4099,17 @@ static int falc_trace_show(struct seq_file *s, void *data)
|
||||
if (j == 0x40)
|
||||
return 0;
|
||||
seq_printf(s, "Index %x: ", trace1[(i / 4)]);
|
||||
k = find_hex_in_string((trace+i+20), g);
|
||||
l = 0;
|
||||
m = 0;
|
||||
while (k < 0xFF) {
|
||||
while (find_hex_in_string((trace+i+20+m), g, &k)) {
|
||||
if (k >= 40)
|
||||
break;
|
||||
strncpy(part_str, (trace+i+20+m), k);
|
||||
part_str[k] = 0;
|
||||
seq_printf(s, "%s0x%x", part_str,
|
||||
trace1[(i / 4) + 1 + l]);
|
||||
l++;
|
||||
m += k + 2;
|
||||
k = find_hex_in_string((trace+i+20+m), g);
|
||||
}
|
||||
seq_printf(s, "%s", (trace+i+20+m));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user