New patch for nvidia-drivers to make SLUB allocator work, upstream sync

This commit is contained in:
Stefan Reimer 2012-01-26 23:06:11 -08:00
parent a16adbb8d4
commit 2842ca7aeb
3 changed files with 42 additions and 43 deletions

View File

@ -1,9 +1,9 @@
AUX 256.35-unified-arch.patch 1380 RMD160 2612cad105f442d4232b99e3054124e8037860bb SHA1 d82433c0b3520c87e05f1013a59b243ec65ebe97 SHA256 5e84bb51e0f9b3ceba270d53ad2a739dc534861df9acd6ab6852670f5a1357d7
AUX nvidia-169.07 639 RMD160 8baddb6fd1bf7f0e2688870a78e8ace051d62e3f SHA1 b30487ba2a24a6b1359d1fd831eeb1705060953c SHA256 a8c4860f008d53776fda7a17b59524f271236559af688e9a2c9845cbbcba1577
AUX nvidia-drivers-pax-const.patch 833 RMD160 100c36ed4c7db0f30c0680b276a708cd5ed75749 SHA1 b336665366340fec6bd400f36d3e4b9de86473f5 SHA256 74ba8aa3b03e1b4a0515fd84c159eaeb7635fa1364e77544b01ff6f571f0e6d8
AUX nvidia-drivers-pax-usercopy.patch 2197 RMD160 f1fe01e79f52650f7ad377fc82f6526278d0aad8 SHA1 c8d96c2ff282f8d2ffbea4f34e909e3890a3f13b SHA256 8f5ec453bcad9439097f7bbbd2c211f8001fceb9dd00ef4eb30e94d34fcfde58
AUX nvidia-drivers-pax-usercopy.patch 2350 RMD160 c102590aba1b4191c08fc0ac045640bab3f8f5e2 SHA1 5cd57aef42db6dbb5cf97ed773ec632d3a5f3ec7 SHA256 56980f43db38d582bc6a9bfd881973fce6e3e056b77ce4f4005bdcf79526a863
DIST NVIDIA-FreeBSD-x86-290.10.tar.gz 32042469 RMD160 712cd816ab24319d03ae475af0ac2a56518ef58b SHA1 4fe79060b9e475e4a74b7b17e95410bad1f33427 SHA256 f5accbdac0b231a8073f76c1d1d8ace7cb98ebe167888c31183a2752a669ee92
DIST NVIDIA-Linux-x86-290.10.run 34691272 RMD160 ddcee14e7b474a646a707fd966cc1d223d3177eb SHA1 dfc095db2bdca672e6cfe7878a75c5d25d8c54a9 SHA256 99be8f53aa1f777445e5a4cac27acd7d85990db712b5c29caac865145fc5adaa
DIST NVIDIA-Linux-x86_64-290.10.run 58334192 RMD160 a850a83643d507ff84be76691188a5ecd870c4d8 SHA1 f3e8b43248d9d167b1c3f67a8cba9c1f2c53e583 SHA256 34a2ab07f4ae7afdeb2c8415f3f37c1099e6690eb25f3dbef92eca771f7ce4cd
EBUILD nvidia-drivers-290.10.ebuild 17253 RMD160 32a3ae18c749b162917ac6a72c59646479affe4b SHA1 db78e4756ae0362ff0205b48880c3692df2343e0 SHA256 a2206ff79fad2008967c718b1ff6ce177f5cb8b3b7816cbfee69aaef540322ee
MISC ebuild.diff 736 RMD160 b0c43ad9d4f2dbbd35a195b22b2bea698dbbafcd SHA1 753ad14db964fe133936e497aaed56b8e04256d2 SHA256 5ca532e00bec17cd5193a19a6fcae5231d3fe0b8c68f3b2e8dd480ac0dc1f67e
EBUILD nvidia-drivers-290.10.ebuild 17265 RMD160 c1d003496d4a3fe65406a1fd782ed4d8f281a034 SHA1 f8fe1ec50df4872c8bd0511f9ecaba3c6fe48de2 SHA256 1f35bdfc1b43060092598c775056fe635167a0bfc58aebe8c54d2aa31a60020e
MISC ebuild.diff 724 RMD160 1d864711efab5e60f1a3f14a5a63273ec8dc944e SHA1 ba16548f74141c9c7e95257d0c25a5a6488c35db SHA256 2dddfc340137c21bce4886672e4e212e3e21fe9c6c62c1b5dab7096cbb92c523

View File

@ -1,7 +1,37 @@
diff -u kernel/nv-linux.h kernel-orig/nv-linux.h
--- kernel-orig/nv-linux.h 2011-09-23 17:32:09.000000000 -0700
+++ kernel/nv-linux.h 2011-10-10 18:01:45.391793788 -0700
@@ -695,16 +695,16 @@
diff -urp kernel.orig/nv.c kernel/nv.c
--- kernel.orig/nv.c 2011-09-24 02:32:09.000000000 +0200
+++ kernel/nv.c 2011-10-05 19:13:41.474242252 +0200
@@ -1105,7 +1105,7 @@ static int __init nvidia_init_module(voi
NV_SPIN_LOCK_INIT(&km_lock);
#endif
- NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t);
+ NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t, SLAB_USERCOPY);
if (nv_stack_t_cache == NULL)
{
nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
@@ -1220,7 +1220,7 @@ static int __init nvidia_init_module(voi
}
#endif
- NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t);
+ NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t, 0);
if (nv_pte_t_cache == NULL)
{
rc = -ENOMEM;
@@ -1229,7 +1229,7 @@ static int __init nvidia_init_module(voi
}
NV_KMEM_CACHE_CREATE(nvidia_p2p_page_t_cache, "nvidia_p2p_page_t",
- nvidia_p2p_page_t);
+ nvidia_p2p_page_t, 0);
if (nvidia_p2p_page_t_cache == NULL)
{
rc = -ENOMEM;
diff -urp kernel.orig/nv-linux.h kernel/nv-linux.h
--- kernel.orig/nv-linux.h 2011-09-24 02:32:09.000000000 +0200
+++ kernel/nv-linux.h 2011-10-05 19:14:42.522238996 +0200
@@ -695,16 +695,16 @@ extern nv_spinlock_t km_lock;
#if defined(NV_KMEM_CACHE_CREATE_PRESENT)
#if (NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT == 6)
@ -17,38 +47,8 @@ diff -u kernel/nv-linux.h kernel-orig/nv-linux.h
+#define NV_KMEM_CACHE_CREATE(kmem_cache, name, type, flags) \
{ \
kmem_cache = kmem_cache_create(name, sizeof(type), \
+ 0, flags, NULL); \
- 0, 0, NULL); \
+ 0, flags, NULL); \
}
#else
#error "NV_KMEM_CACHE_CREATE_ARGUMENT_COUNT value unrecognized!"
diff -u kernel/nv.c kernel-orig/nv.c
--- kernel-orig/nv.c 2011-09-23 17:32:09.000000000 -0700
+++ kernel/nv.c 2011-10-10 18:49:39.331880626 -0700
@@ -1105,7 +1105,7 @@
NV_SPIN_LOCK_INIT(&km_lock);
#endif
- NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t);
+ NV_KMEM_CACHE_CREATE(nv_stack_t_cache, "nv_stack_t", nv_stack_t, SLAB_USERCOPY);
if (nv_stack_t_cache == NULL)
{
nv_printf(NV_DBG_ERRORS, "NVRM: stack cache allocation failed!\n");
@@ -1220,7 +1220,7 @@
}
#endif
- NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t);
+ NV_KMEM_CACHE_CREATE(nv_pte_t_cache, "nv_pte_t", nv_pte_t, 0);
if (nv_pte_t_cache == NULL)
{
rc = -ENOMEM;
@@ -1229,7 +1229,7 @@
}
NV_KMEM_CACHE_CREATE(nvidia_p2p_page_t_cache, "nvidia_p2p_page_t",
- nvidia_p2p_page_t);
+ nvidia_p2p_page_t, 0);
if (nvidia_p2p_page_t_cache == NULL)
{
rc = -ENOMEM;

View File

@ -1,10 +1,10 @@
# Copyright 1999-2011 Gentoo Foundation
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-290.06.ebuild,v 1.1 2011/11/04 18:11:42 cardoe Exp $
# $Header: /var/cvsroot/gentoo-x86/x11-drivers/nvidia-drivers/nvidia-drivers-290.10.ebuild,v 1.4 2012/01/18 23:11:13 ulm Exp $
EAPI="2"
inherit eutils multilib versionator linux-mod flag-o-matic nvidia-driver
inherit eutils multilib portability versionator linux-mod flag-o-matic nvidia-driver
X86_NV_PACKAGE="NVIDIA-Linux-x86-${PV}"
AMD64_NV_PACKAGE="NVIDIA-Linux-x86_64-${PV}"
@ -12,13 +12,13 @@ X86_FBSD_NV_PACKAGE="NVIDIA-FreeBSD-x86-${PV}"
DESCRIPTION="NVIDIA X11 driver and GLX libraries"
HOMEPAGE="http://www.nvidia.com/"
SRC_URI="x86? ( ftp://download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
amd64? ( ftp://download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
x86-fbsd? ( ftp://download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
SRC_URI="x86? ( http://us.download.nvidia.com/XFree86/Linux-x86/${PV}/${X86_NV_PACKAGE}.run )
amd64? ( http://us.download.nvidia.com/XFree86/Linux-x86_64/${PV}/${AMD64_NV_PACKAGE}.run )
x86-fbsd? ( http://us.download.nvidia.com/XFree86/FreeBSD-x86/${PV}/${X86_FBSD_NV_PACKAGE}.tar.gz )"
LICENSE="NVIDIA"
SLOT="0"
KEYWORDS="-* ~amd64 ~x86 ~x86-fbsd"
KEYWORDS="-* amd64 x86 ~x86-fbsd"
IUSE="acpi custom-cflags gtk multilib kernel_linux pax_kernel"
RESTRICT="strip"
EMULTILIB_PKG="true"
@ -288,7 +288,6 @@ src_prepare() {
# If greater than 2.6.5 use M= instead of SUBDIR=
convert_to_m "${NV_SRC}"/Makefile.kbuild
fi
if use pax_kernel; then
epatch "${FILESDIR}"/nvidia-drivers-pax-const.patch
epatch "${FILESDIR}"/nvidia-drivers-pax-usercopy.patch