summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpu/nvgpu/os/linux/ioctl_tsg.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c
index 5d22d082..f7d20f34 100644
--- a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c
+++ b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c
@@ -402,15 +402,14 @@ int nvgpu_ioctl_tsg_open(struct gk20a *g, struct file *filp)
402 err = gk20a_busy(g); 402 err = gk20a_busy(g);
403 if (err) { 403 if (err) {
404 nvgpu_err(g, "failed to power on, %d", err); 404 nvgpu_err(g, "failed to power on, %d", err);
405 goto free_ref; 405 goto free_mem;
406 } 406 }
407 407
408 tsg = gk20a_tsg_open(g, nvgpu_current_pid(g)); 408 tsg = gk20a_tsg_open(g, nvgpu_current_pid(g));
409 gk20a_idle(g); 409 gk20a_idle(g);
410 if (!tsg) { 410 if (!tsg) {
411 nvgpu_kfree(g, priv);
412 err = -ENOMEM; 411 err = -ENOMEM;
413 goto free_ref; 412 goto free_mem;
414 } 413 }
415 414
416 priv->g = g; 415 priv->g = g;
@@ -421,6 +420,8 @@ int nvgpu_ioctl_tsg_open(struct gk20a *g, struct file *filp)
421 420
422 return 0; 421 return 0;
423 422
423free_mem:
424 nvgpu_kfree(g, priv);
424free_ref: 425free_ref:
425 gk20a_put(g); 426 gk20a_put(g);
426 return err; 427 return err;