diff options
author | Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> | 2013-06-18 14:00:43 +0000 |
---|---|---|
committer | Chí-Thanh Christopher Nguyễn <chithanh@gentoo.org> | 2013-06-18 14:00:43 +0000 |
commit | 3731af751ddee74627a05d1171337170af0a0b51 (patch) | |
tree | 2983a41476945bbb92e0dd4d211105f1fff2d794 /x11-drivers/ati-drivers/files | |
parent | Version bump. (diff) | |
download | historical-3731af751ddee74627a05d1171337170af0a0b51.tar.gz historical-3731af751ddee74627a05d1171337170af0a0b51.tar.bz2 historical-3731af751ddee74627a05d1171337170af0a0b51.zip |
Fix building with recent kernels, bug #470596. Import of Emil Karlson's ebuild from the x11 overlay.
Package-Manager: portage-2.1.12.2/cvs/Linux x86_64
Diffstat (limited to 'x11-drivers/ati-drivers/files')
-rw-r--r-- | x11-drivers/ati-drivers/files/ati-drivers-13.6-linux-3.10-proc.diff (renamed from x11-drivers/ati-drivers/files/linux-3.10-proc.diff) | 99 | ||||
-rw-r--r-- | x11-drivers/ati-drivers/files/linux-3.9-kuid.diff | 33 | ||||
-rw-r--r-- | x11-drivers/ati-drivers/files/typesafe-kuid.diff | 34 |
3 files changed, 115 insertions, 51 deletions
diff --git a/x11-drivers/ati-drivers/files/linux-3.10-proc.diff b/x11-drivers/ati-drivers/files/ati-drivers-13.6-linux-3.10-proc.diff index ce4871c0658b..bdb22eae768a 100644 --- a/x11-drivers/ati-drivers/files/linux-3.10-proc.diff +++ b/x11-drivers/ati-drivers/files/ati-drivers-13.6-linux-3.10-proc.diff @@ -1,7 +1,8 @@ -diff -Nur common/lib/modules/fglrx/build_mod/drmP.h common-r1/lib/modules/fglrx/build_mod/drmP.h ---- common/lib/modules/fglrx/build_mod/drmP.h 2013-05-15 09:26:23.555752577 +0300 -+++ common-r1/lib/modules/fglrx/build_mod/drmP.h 2013-05-16 10:39:17.496212055 +0300 -@@ -901,10 +901,6 @@ +diff --git a/common/lib/modules/fglrx/build_mod/drmP.h b/common/lib/modules/fglrx/build_mod/drmP.h +index 81546b2..4e74526 100755 +--- a/common/lib/modules/fglrx/build_mod/drmP.h ++++ b/common/lib/modules/fglrx/build_mod/drmP.h +@@ -901,10 +901,6 @@ int DRM(stub_register)(const char *name, int DRM(stub_unregister)(int minor); /* Proc support (drm_proc.h) */ @@ -12,10 +13,11 @@ diff -Nur common/lib/modules/fglrx/build_mod/drmP.h common-r1/lib/modules/fglrx/ extern int DRM(proc_cleanup)(int minor, struct proc_dir_entry *root, struct proc_dir_entry *dev_root); -diff -Nur common/lib/modules/fglrx/build_mod/drm_proc.h common-r1/lib/modules/fglrx/build_mod/drm_proc.h ---- common/lib/modules/fglrx/build_mod/drm_proc.h 2013-05-15 09:26:23.555752577 +0300 -+++ common-r1/lib/modules/fglrx/build_mod/drm_proc.h 2013-05-19 02:16:16.584406160 +0300 -@@ -75,61 +75,6 @@ +diff --git a/common/lib/modules/fglrx/build_mod/drm_proc.h b/common/lib/modules/fglrx/build_mod/drm_proc.h +index 1e3ab4a..c52ad7e 100755 +--- a/common/lib/modules/fglrx/build_mod/drm_proc.h ++++ b/common/lib/modules/fglrx/build_mod/drm_proc.h +@@ -75,61 +75,6 @@ struct drm_proc_list { #define DRM_PROC_ENTRIES (sizeof(DRM(proc_list))/sizeof(DRM(proc_list)[0])) /** @@ -77,10 +79,11 @@ diff -Nur common/lib/modules/fglrx/build_mod/drm_proc.h common-r1/lib/modules/fg * Cleanup the proc filesystem resources. * * \param minor device minor number. -diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modules/fglrx/build_mod/firegl_public.c ---- common/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-15 09:26:23.545752925 +0300 -+++ common-r1/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-19 03:07:10.236552522 +0300 -@@ -583,6 +583,202 @@ +diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c +index d3ad3ce..890a0aa 100755 +--- a/common/lib/modules/fglrx/build_mod/firegl_public.c ++++ b/common/lib/modules/fglrx/build_mod/firegl_public.c +@@ -583,6 +583,202 @@ kcl_proc_list_t KCL_PROC_FileList[] = { "NULL", NULL, NULL} // Terminate List!!! }; @@ -110,7 +113,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul + return -EIO; + } + //printk(KERN_NOTICE " call with: dev %p, func %p\n", wrapper_data->data, wrapper_data->read_func); -+ ++ + usebuffer=kmalloc(2*PAGE_SIZE, GFP_KERNEL); + if (!usebuffer) + return -ENOMEM; @@ -132,7 +135,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul + goto out; + } + *offset+=retval; -+ ++ +out: + if (usebuffer) + kfree(usebuffer); @@ -146,7 +149,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul + BUG_ON(*offset); + if (!wrapper_data->write_func) + return -EPERM; -+ ++ + usebuffer=kmalloc(count, GFP_KERNEL); + if (!usebuffer) + return -ENOMEM; @@ -155,7 +158,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul + retval=-EFAULT; + goto out; + } -+ ++ + retval=wrapper_data->write_func(myfile, buffer, count, wrapper_data->data); + *offset+=retval; +out: @@ -172,7 +175,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul + .write=gentoo_proc_wrapper_write, + .open=gentoo_proc_wrapper_open, +}; -+ ++ +static void *gentoo_proc_wrapper_data(read_proc_t *reader, write_proc_t *writer, void *mydata) { + gentoo_proc_wrapper_t *retval=kmalloc(sizeof(gentoo_proc_wrapper_t), GFP_KERNEL); + if (!retval) @@ -283,7 +286,7 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul static struct proc_dir_entry *firegl_proc_init( device_t *dev, int minor, struct proc_dir_entry *root, -@@ -677,6 +873,7 @@ +@@ -677,6 +873,7 @@ static struct proc_dir_entry *firegl_proc_init( device_t *dev, return root; } @@ -291,3 +294,63 @@ diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modul static int firegl_proc_cleanup( int minor, struct proc_dir_entry *root, +@@ -6135,59 +6332,4 @@ void ATI_API_CALL KCL_fpu_end(void) + kernel_fpu_end(); + } + +-/** Create new directory entry under "/proc/ati/...." +- * Where +- * root_dir - Root directory. If NULL then we should use "/proc/ati" root. +- * name - Pointer to the name of directory +- * access - Access attribute. We could use it to disable access to the directory for everybody accept owner. +- * By default owner is root. +- * Return NULL if failure. Pointer to proc_dir_entry otherwise +- */ +-void * KCL_create_proc_dir(void *root_dir, const char *name, unsigned int access) +-{ +- struct proc_dir_entry *dir = NULL; +- +- if (root_dir == NULL) +- dir = create_proc_entry(name, S_IFDIR | access, firegl_stub_root); +- else +- dir = create_proc_entry(name, S_IFDIR | access, (struct proc_dir_entry *)root_dir); +- +- return dir; +-} +- +-/* Remove proc directory entry +- * root - Pointer to directory proc entry or NULL if for "/proc/ati" +- * name - Name to delete +- */ +-void KCL_remove_proc_dir_entry(void *root, const char *name) +-{ +- if (root == NULL) +- remove_proc_entry(name, firegl_stub_root); +- else +- remove_proc_entry(name, (struct proc_dir_entry *)root); +-} +- +- +-/* Create proc_entry under "root_dir" +- * read_fn - Function which will be called on read request +- * write_fn - Function which will be called on write request +- * private_data - Pointer to private data which will be passed +- */ +-void KCL_create_proc_entry(void *root_dir, const char *name, unsigned int access_mode, void *read_fn, void *write_fn, void *private_data) +-{ +- struct proc_dir_entry *ent = NULL; +- +- if (root_dir == NULL || name == NULL) +- return; +- +- ent = create_proc_entry(name, access_mode, (struct proc_dir_entry *)root_dir); +- +- if (ent) +- { +- ent->read_proc = (read_proc_t *)read_fn; +- ent->write_proc = (write_proc_t *)write_fn; +- ent->data = private_data; +- } +-} +- + #endif /* __KERNEL__ */ diff --git a/x11-drivers/ati-drivers/files/linux-3.9-kuid.diff b/x11-drivers/ati-drivers/files/linux-3.9-kuid.diff deleted file mode 100644 index 7e910d9269c6..000000000000 --- a/x11-drivers/ati-drivers/files/linux-3.9-kuid.diff +++ /dev/null @@ -1,33 +0,0 @@ -diff -Nur common/lib/modules/fglrx/build_mod/firegl_public.c common-r1/lib/modules/fglrx/build_mod/firegl_public.c ---- common/lib/modules/fglrx/build_mod/firegl_public.c 2013-04-17 00:29:55.000000000 +0300 -+++ common-r1/lib/modules/fglrx/build_mod/firegl_public.c 2013-05-11 00:37:44.653966585 +0300 -@@ -34,6 +34,11 @@ - #include <linux/autoconf.h> - #endif - -+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0) -+#include <linux/uidgid.h> -+#endif -+ -+ - #if !defined(CONFIG_X86) - #if !defined(CONFIG_X86_PC) - #if !defined(CONFIG_X86_XEN) -@@ -1543,9 +1548,17 @@ - KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void) - { - #ifdef current_euid -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0) -+ return __kuid_val(current_euid()); -+# else - return current_euid(); -+# endif - #else -+# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0) -+ return __kuid_val(current->euid); -+# else - return current->euid; -+# endif - #endif - } - diff --git a/x11-drivers/ati-drivers/files/typesafe-kuid.diff b/x11-drivers/ati-drivers/files/typesafe-kuid.diff new file mode 100644 index 000000000000..c226ea3dbcfd --- /dev/null +++ b/x11-drivers/ati-drivers/files/typesafe-kuid.diff @@ -0,0 +1,34 @@ +diff --git a/common/lib/modules/fglrx/build_mod/firegl_public.c b/common/lib/modules/fglrx/build_mod/firegl_public.c +index d3ad3ce..9362b58 100755 +--- a/common/lib/modules/fglrx/build_mod/firegl_public.c ++++ b/common/lib/modules/fglrx/build_mod/firegl_public.c +@@ -34,6 +34,11 @@ + #include <linux/autoconf.h> + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) ++#include <linux/uidgid.h> ++#endif ++ ++ + #if !defined(CONFIG_X86) + #if !defined(CONFIG_X86_PC) + #if !defined(CONFIG_X86_XEN) +@@ -1543,9 +1548,17 @@ KCL_TYPE_Pid ATI_API_CALL KCL_GetTgid(void) + KCL_TYPE_Uid ATI_API_CALL KCL_GetEffectiveUid(void) + { + #ifdef current_euid ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) ++ return __kuid_val(current_euid()); ++# else + return current_euid(); ++# endif + #else ++# if LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0) ++ return __kuid_val(current->euid); ++# else + return current->euid; ++# endif + #endif + } + |