diff options
author | Dave Airlie <airlied@redhat.com> | 2014-12-07 22:40:51 -0500 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2014-12-07 22:40:51 -0500 |
commit | b00ff043d164bba5d43cbac42bdf0aeeb43fbda8 (patch) | |
tree | 11e8e7f2da2dee3753f60a6057255078c209d355 /drivers/gpu | |
parent | 8c8639447063ddaa7966b0effd6029037fc86599 (diff) | |
parent | a18069c132cb0d065ff23c05977d06ea0c78404f (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.c | 13 |
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) | |||
102 | static int kfd_open(struct inode *inode, struct file *filep) | 102 | static 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); |