やるきなし

2017/07/03 12:32 / nvidia-legacy-340xx-kernel-dkms 340.102-1 on Linux 4.12

Kernel を 4.12 に上げたら nvidia-legacy-340xx-kernel-dkms の compile でコケるようになった.treewide: move set_memory_* functions away from cacheflush.hの影響でset_memory_uc()他がasm/cacheflush.hから<asm/set_memory.h>に移動した影響.

以下 nvidia-legacy-340xx-kernel-dkms 向けやるきなしなしパッチ.4.12 以前では動かない.

--- a/conftest.sh
+++ b/conftest.sh
@@ -372,6 +372,7 @@ compile_test() {
             #
             CODE="
             #include <asm/cacheflush.h>
+            #include <asm/set_memory.h>
             void conftest_set_memory_uc(void) {
                 set_memory_uc();
             }"
@@ -385,6 +386,7 @@ compile_test() {
             #
             CODE="
             #include <asm/cacheflush.h>
+            #include <asm/set_memory.h>
             void conftest_set_memory_array_uc(void) {
                 set_memory_array_uc();
             }"
@@ -398,6 +400,7 @@ compile_test() {
             #
             CODE="
             #include <asm/cacheflush.h>
+            #include <asm/set_memory.h>
             void conftest_set_pages_uc(void) {
                 set_pages_uc();
             }"
--- a/nv-linux.h
+++ b/nv-linux.h
@@ -194,6 +194,7 @@ RM_STATUS nvos_forward_error_to_cray(struct pci_dev *, NvU32,
 #if defined(NV_SET_MEMORY_UC_PRESENT)
 #undef NV_SET_PAGES_UC_PRESENT
 #undef NV_CHANGE_PAGE_ATTR_PRESENT
+#include <asm/set_memory.h>
 #elif defined(NV_SET_PAGES_UC_PRESENT)
 #undef NV_CHANGE_PAGE_ATTR_PRESENT
 #endif

Related articles