diff options
Diffstat (limited to 'drivers/gpu/nvgpu')
-rw-r--r-- | drivers/gpu/nvgpu/os/linux/ioctl_tsg.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c index 8eb5f014..7ebf4291 100644 --- a/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c +++ b/drivers/gpu/nvgpu/os/linux/ioctl_tsg.c | |||
@@ -467,7 +467,14 @@ void nvgpu_ioctl_tsg_release(struct nvgpu_ref *ref) | |||
467 | int nvgpu_ioctl_tsg_dev_release(struct inode *inode, struct file *filp) | 467 | int nvgpu_ioctl_tsg_dev_release(struct inode *inode, struct file *filp) |
468 | { | 468 | { |
469 | struct tsg_private *priv = filp->private_data; | 469 | struct tsg_private *priv = filp->private_data; |
470 | struct tsg_gk20a *tsg = priv->tsg; | 470 | struct tsg_gk20a *tsg; |
471 | |||
472 | if (!priv) { | ||
473 | /* open failed, never got a tsg for this file */ | ||
474 | return 0; | ||
475 | } | ||
476 | |||
477 | tsg = priv->tsg; | ||
471 | 478 | ||
472 | nvgpu_ref_put(&tsg->refcount, nvgpu_ioctl_tsg_release); | 479 | nvgpu_ref_put(&tsg->refcount, nvgpu_ioctl_tsg_release); |
473 | nvgpu_kfree(tsg->g, priv); | 480 | nvgpu_kfree(tsg->g, priv); |