aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2014-12-07 22:40:51 -0500
committerDave Airlie <airlied@redhat.com>2014-12-07 22:40:51 -0500
commitb00ff043d164bba5d43cbac42bdf0aeeb43fbda8 (patch)
tree11e8e7f2da2dee3753f60a6057255078c209d355 /drivers/gpu
parent8c8639447063ddaa7966b0effd6029037fc86599 (diff)
parenta18069c132cb0d065ff23c05977d06ea0c78404f (diff)
Merge branch 'amdkfd-next-3.19' of git://people.freedesktop.org/~gabbayo/linux into drm-next
As discussed on irc, I'm sending a pull request with one important change: - Disable support for 32-bit user processes. This is done due to AMD's decision to remove support for 32-bit user processes on Linux for its HSA stack. * 'amdkfd-next-3.19' of git://people.freedesktop.org/~gabbayo/linux: amdkfd: Disable support for 32-bit user processes
Diffstat (limited to 'drivers/gpu')
-rw-r--r--drivers/gpu/drm/amd/amdkfd/kfd_chardev.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
index 102cd36799b1..4f7b275f2f7b 100644
--- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
+++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
@@ -102,15 +102,26 @@ struct device *kfd_chardev(void)
102static int kfd_open(struct inode *inode, struct file *filep) 102static int kfd_open(struct inode *inode, struct file *filep)
103{ 103{
104 struct kfd_process *process; 104 struct kfd_process *process;
105 bool is_32bit_user_mode;
105 106
106 if (iminor(inode) != 0) 107 if (iminor(inode) != 0)
107 return -ENODEV; 108 return -ENODEV;
108 109
110 is_32bit_user_mode = is_compat_task();
111
112 if (is_32bit_user_mode == true) {
113 dev_warn(kfd_device,
114 "Process %d (32-bit) failed to open /dev/kfd\n"
115 "32-bit processes are not supported by amdkfd\n",
116 current->pid);
117 return -EPERM;
118 }
119
109 process = kfd_create_process(current); 120 process = kfd_create_process(current);
110 if (IS_ERR(process)) 121 if (IS_ERR(process))
111 return PTR_ERR(process); 122 return PTR_ERR(process);
112 123
113 process->is_32bit_user_mode = is_compat_task(); 124 process->is_32bit_user_mode = is_32bit_user_mode;
114 125
115 dev_dbg(kfd_device, "process %d opened, compat mode (32 bit) - %d\n", 126 dev_dbg(kfd_device, "process %d opened, compat mode (32 bit) - %d\n",
116 process->pasid, process->is_32bit_user_mode); 127 process->pasid, process->is_32bit_user_mode);