summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/common/linux/ioctl_as.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/common/linux/ioctl_as.c')
-rw-r--r--drivers/gpu/nvgpu/common/linux/ioctl_as.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/gpu/nvgpu/common/linux/ioctl_as.c b/drivers/gpu/nvgpu/common/linux/ioctl_as.c
index 6fd0a3d2..d4242955 100644
--- a/drivers/gpu/nvgpu/common/linux/ioctl_as.c
+++ b/drivers/gpu/nvgpu/common/linux/ioctl_as.c
@@ -42,14 +42,19 @@ static int gk20a_as_ioctl_bind_channel(
42 gk20a_dbg_fn(""); 42 gk20a_dbg_fn("");
43 43
44 ch = gk20a_get_channel_from_file(args->channel_fd); 44 ch = gk20a_get_channel_from_file(args->channel_fd);
45 if (!ch || gk20a_channel_as_bound(ch)) 45 if (!ch)
46 return -EINVAL; 46 return -EINVAL;
47 47
48 if (gk20a_channel_as_bound(ch)) {
49 err = -EINVAL;
50 goto out;
51 }
52
48 /* this will set channel_gk20a->vm */ 53 /* this will set channel_gk20a->vm */
49 err = ch->g->ops.mm.vm_bind_channel(as_share, ch); 54 err = ch->g->ops.mm.vm_bind_channel(as_share, ch);
50 if (err)
51 return err;
52 55
56out:
57 gk20a_channel_put(ch);
53 return err; 58 return err;
54} 59}
55 60