fix resource leak of variable 'ops'
Coverity id : 25123
fix unchecked return value
Coverity id : 24872
fix unsigned comparison against zero
Coverity id : 25102
fix explicit NULL dereference
Coverity id : 25082
fix dereference after NULL check
Coverity id : 24875
Coverity id : 25083
fix dead code
Coverity id : 24873
Coverity id : 24885
Coverity id : 24886
Bug
1416640
Change-Id: If49b0766633e704e353c0d4e28b500c83783a295
Signed-off-by: Deepak Nibade <dnibade@nvidia.com>
Reviewed-on: http://git-master/r/338317
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
Tested-by: Sachin Nikam <snikam@nvidia.com>
if (copy_from_user(ops, (void *)(uintptr_t)args->ops, ops_size)) {
dev_err(dev, "copy_from_user failed!");
- return -EFAULT;
+ err = -EFAULT;
+ goto clean_up;
}
/* mutual exclusion for multiple debug sessions */
if (err) {
nvhost_err(dev, "dbg regops failed");
- return err;
+ goto clean_up;
}
nvhost_dbg_fn("Copying result to userspace");
if (copy_to_user((void *)(uintptr_t)args->ops, ops, ops_size)) {
dev_err(dev, "copy_to_user failed!");
- return -EFAULT;
+ err = -EFAULT;
+ goto clean_up;
}
return 0;
+ clean_up:
+ kfree(ops);
+ return err;
}
static int dbg_set_powergate(struct dbg_session_gk20a *dbg_s,
if (err) {
nvhost_dbg_fn("failed");
- gk20a_fifo_enable_engine_activity(g, eng_info);
+ if (gk20a_fifo_enable_engine_activity(g, eng_info))
+ nvhost_err(dev_from_gk20a(g),
+ "failed to enable gr engine activity\n");
} else {
nvhost_dbg_fn("done");
}
if (remain == 0 && pending != 0)
return -ETIMEDOUT;
- else if (remain < 0)
- return -EINTR;
return 0;
}
} else
pdata = (struct nvhost_device_data *)dev->dev.platform_data;
+ if (!pdata) {
+ dev_err(&dev->dev, "no platform data\n");
+ return -ENODATA;
+ }
+
nvhost_dbg_fn("");
pdata->pdev = dev;
mutex_init(&pdata->lock);
cfb_remove_device(&dev->dev);
#endif
- if (g && g->remove_support)
+ if (g->remove_support)
g->remove_support(dev);
set_gk20a(dev, 0);
{
u32 addr_lo;
u32 addr_hi;
- u32 ret = 0;
void *inst_ptr = NULL;
nvhost_dbg_fn("");
gk20a_mm_l2_flush(c->g, true);
inst_ptr = nvhost_memmgr_mmap(c->inst_block.mem.ref);
- if (!inst_ptr) {
- ret = -ENOMEM;
- goto clean_up;
- }
+ if (!inst_ptr)
+ return -ENOMEM;
addr_lo = u64_lo32(gpu_va) >> 12;
addr_hi = u64_hi32(gpu_va);
gk20a_mm_l2_invalidate(c->g);
return 0;
-
-clean_up:
- if (inst_ptr)
- nvhost_memmgr_munmap(c->inst_block.mem.ref, inst_ptr);
-
- return ret;
}
/*
zcull_bank_counters = kzalloc(proj_scal_max_gpcs_v() *
proj_scal_max_tpc_per_gpc_v() * sizeof(u32), GFP_KERNEL);
- if (!zcull_map_tiles && !zcull_bank_counters) {
+ if (!zcull_map_tiles || !zcull_bank_counters) {
nvhost_err(dev_from_gk20a(g),
"failed to allocate zcull temp buffers");
return -ENOMEM;
inst_ptr = nvhost_memmgr_mmap(inst_block->mem.ref);
if (IS_ERR(inst_ptr)) {
- return -ENOMEM;
+ err = -ENOMEM;
goto clean_up;
}
inst_ptr = nvhost_memmgr_mmap(inst_block->mem.ref);
if (IS_ERR(inst_ptr)) {
- return -ENOMEM;
+ err = -ENOMEM;
goto clean_up;
}