gpu: nvgpu: Fix Dereference Coverity issues

Fixed following Coverity Defects:

fw.c : Dereference after null check
channel.c : Dereference before null check
log.c : Dereference before null check

CID 10064128
CID 10056456
CID 10127934

Bug 3460991

Signed-off-by: Jinesh Parakh <jparakh@nvidia.com>
Change-Id: I9c075f5c38c2254d5c656af58bb002714bd53396
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2685320
Reviewed-by: Sagar Kamble <skamble@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-misra <svc-mobile-misra@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
GVS: Gerrit_Virtual_Submit
This commit is contained in:
Jinesh Parakh
2022-03-22 19:31:27 +05:30
committed by mobile promotions
parent fd339ca599
commit d4cb2eb3c0
3 changed files with 12 additions and 18 deletions

View File

@@ -478,7 +478,6 @@ int nvgpu_channel_add_job(struct nvgpu_channel *c,
}
}
if (c != NULL) {
job->num_mapped_buffers = num_mapped_buffers;
job->mapped_buffers = mapped_buffers;
@@ -487,17 +486,8 @@ int nvgpu_channel_add_job(struct nvgpu_channel *c,
nvgpu_channel_joblist_lock(c);
nvgpu_channel_joblist_add(c, job);
nvgpu_channel_joblist_unlock(c);
} else {
err = -ETIMEDOUT;
goto err_put_buffers;
}
return 0;
err_put_buffers:
nvgpu_vm_put_buffers(vm, mapped_buffers, num_mapped_buffers);
return err;
}
/**

View File

@@ -173,6 +173,10 @@ static void pmu_fw_release(struct gk20a *g, struct pmu_rtos_fw *rtos_fw)
nvgpu_log_fn(g, " ");
if (rtos_fw == NULL) {
return;
}
if (rtos_fw->fw_sig != NULL) {
nvgpu_release_firmware(g, rtos_fw->fw_sig);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2021, NVIDIA CORPORATION. All rights reserved.
* Copyright (c) 2017-2022, NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
@@ -124,7 +124,7 @@ void nvgpu_log_dbg_impl(struct gk20a *g, u64 log_mask,
(void) vsnprintf(log, LOG_BUFFER_LENGTH, fmt, args);
va_end(args);
__nvgpu_really_print_log(g->log_trace, g ? nvgpu_log_name(g) : "",
__nvgpu_really_print_log(g->log_trace, nvgpu_log_name(g),
func_name, line, NVGPU_DEBUG, log);
}