{"id":2527,"date":"2019-03-17T18:54:26","date_gmt":"2019-03-18T01:54:26","guid":{"rendered":"http:\/\/rglinuxtech.com\/?p=2527"},"modified":"2019-03-17T18:54:26","modified_gmt":"2019-03-18T01:54:26","slug":"kernel-5-1-rc1-is-out-vmware-fix-available-but-nvidia-fails","status":"publish","type":"post","link":"https:\/\/rglinuxtech.com\/?p=2527","title":{"rendered":"Kernel &#8211; 5.1-rc1 is out &#8211; VMware Fix Available, but NVIDIA Fails."},"content":{"rendered":"<p>Kernel<strong> 5.1-rc1<\/strong> has been released, and brief details are here:\u00a0 <a href=\"http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1903.2\/00496.html\" target=\"_blank\" rel=\"noopener\">http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1903.2\/00496.html<\/a><\/p>\n<p>VMware with the Kernel 5.0 patches fails to compile <strong>vmmon<\/strong>, but thanks to <span class=\"p-name vcard-fullname d-block overflow-hidden\">Michal Kube\u010dek<\/span>, a fix is currently available at <a href=\"https:\/\/github.com\/mkubecek\/vmware-host-modules\/tree\/workstation-15.0.3-test\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/mkubecek\/vmware-host-modules\/tree\/workstation-15.0.3-test<\/a>.\u00a0\u00a0 I have applied this, and VMware 15.0.3 compiles and loads\/runs OK with Kernel 5.1-rc1.<\/p>\n<p>NVIDIA <strong>418.43<\/strong> compile fails soon after commencing:<\/p>\n<pre><strong><span style=\"font-family: Courier New, Courier, monospace;\">......................<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/common\/inc\/nv-list-helpers.h:94:19: error: redefinition of \u2018list_is_first\u2019<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">static inline int list_is_first(const struct list_head *list,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">In file included from \/usr\/src\/linux-5.1-rc1\/include\/linux\/preempt.h:11,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">from \/usr\/src\/linux-5.1-rc1\/include\/linux\/spinlock.h:51,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/common\/inc\/nv-lock.h:16,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/common\/inc\/nv-linux.h:19,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">from \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia\/nv-frontend.c:13:<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/usr\/src\/linux-5.1-rc1\/include\/linux\/list.h:214:19: note: previous definition of \u2018list_is_first\u2019 was here<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">static inline int list_is_first(const struct list_head *list,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">....................<\/span><\/strong><\/pre>\n<p>It seems that &#8216;<strong><span style=\"font-family: Courier New, Courier, monospace;\">list_is_first<\/span><\/strong>&#8216; is now already defined in the latest kernel code, so a simple fix is to rename it in the NVIDIA source to something more unique..<\/p>\n<p>I appears in ~\/<strong><span style=\"font-family: Courier New, Courier, monospace;\">nvidia-uvm\/uvm8_range_tree.c<\/span><\/strong> and ~\/<strong><span style=\"font-family: Courier New, Courier, monospace;\">common\/inc\/nv-list-helpers.h<\/span><\/strong> , so I just renamed each occurrence from &#8216;<strong><span style=\"font-family: Courier New, Courier, monospace;\">list_is_first<\/span>&#8216; <\/strong>to &#8216;<strong><span style=\"font-family: Courier New, Courier, monospace;\">nv_list_is_first<\/span><\/strong>&#8216;, and the compile continued OK past the previous error point, but then failed later:<\/p>\n<pre><strong><span style=\"font-family: Courier New, Courier, monospace;\">............<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/nvCpuUuid.o<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">CC [M] \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.o<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:187:14: error: initialization of \u2018vm_fault_t (*)(struct vm_fault *)\u2019 {aka \u2018unsigned int (*)(struct vm_fault *)\u2019} from incompatible pointer type \u2018int (*)(struct vm_fault *)\u2019 [-Werror=incompatible-pointer-types]<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">.fault = uvm_vm_fault_sigbus_wrapper<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~~~~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:187:14: note: (near initialization for \u2018uvm_vm_ops_disabled.fault\u2019)<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:525:21: error: initialization of \u2018vm_fault_t (*)(struct vm_fault *)\u2019 {aka \u2018unsigned int (*)(struct vm_fault *)\u2019} from incompatible pointer type \u2018int (*)(struct vm_fault *)\u2019 [-Werror=incompatible-pointer-types]<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">.fault = uvm_vm_fault_wrapper,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:525:21: note: (near initialization for \u2018uvm_vm_ops_managed.fault\u2019)<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:526:21: error: initialization of \u2018vm_fault_t (*)(struct vm_fault *)\u2019 {aka \u2018unsigned int (*)(struct vm_fault *)\u2019} from incompatible pointer type \u2018int (*)(struct vm_fault *)\u2019 [-Werror=incompatible-pointer-types]<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">.page_mkwrite = uvm_vm_fault_wrapper,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:526:21: note: (near initialization for \u2018uvm_vm_ops_managed.page_mkwrite\u2019)<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:609:21: error: initialization of \u2018vm_fault_t (*)(struct vm_fault *)\u2019 {aka \u2018unsigned int (*)(struct vm_fault *)\u2019} from incompatible pointer type \u2018int (*)(struct vm_fault *)\u2019 [-Werror=incompatible-pointer-types]<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">.fault = uvm_vm_fault_sigbus_wrapper,<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">^~~~~~~~~~~~~~~~~~~~~~~~~~~<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.c:609:21: note: (near initialization for \u2018uvm_vm_ops_semaphore_pool.fault\u2019)<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">cc1: some warnings being treated as errors<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[3]: *** [\/usr\/src\/linux-5.1-rc1\/scripts\/Makefile.build:279: \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/nvidia-uvm\/uvm8.o] Error 1<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[2]: *** [\/usr\/src\/linux-5.1-rc1\/Makefile:1566: _module_\/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel] Error 2<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[2]: Leaving directory '\/usr\/src\/linux-5.1-rc1'<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: *** [Makefile:170: sub-make] Error 2<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make[1]: Leaving directory '\/usr\/src\/linux-5.1-rc1'<\/span><\/strong>\r\n<strong><span style=\"font-family: Courier New, Courier, monospace;\">make: *** [Makefile:79: modules] Error 2<\/span><\/strong><\/pre>\n<p>So far, I have not found a patch for <strong>this<\/strong> problem..<\/p>\n<p><em>Robert Gadsdon.\u00a0 March 17, 2019.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Kernel 5.1-rc1 has been released, and brief details are here:\u00a0 http:\/\/lkml.iu.edu\/hypermail\/linux\/kernel\/1903.2\/00496.html VMware with the Kernel 5.0 patches fails to compile vmmon, but thanks to Michal Kube\u010dek, a fix is currently available at https:\/\/github.com\/mkubecek\/vmware-host-modules\/tree\/workstation-15.0.3-test.\u00a0\u00a0 I have applied this, and VMware 15.0.3 compiles and loads\/runs OK with Kernel 5.1-rc1. NVIDIA 418.43 compile fails soon after commencing: &#8230;&#8230;&#8230;&#8230;&#8230;&#8230;&#8230;. \/home\/rgadsdon\/kernel\/NVIDIA-Linux-x86_64-418.43\/kernel\/common\/inc\/nv-list-helpers.h:94:19: error: <span class=\"excerpt-dots\">&hellip;<\/span> <a class=\"more-link\" href=\"https:\/\/rglinuxtech.com\/?p=2527\"><span class=\"more-msg\">Continue reading &rarr;<\/span><\/a><\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5,1238,14,15,18,25],"tags":[2052,2050,1305,2051],"class_list":["post-2527","post","type-post","status-publish","format-standard","hentry","category-compilation","category-fix","category-kernel","category-linux-2","category-nvidia","category-vmware","tag-418-43","tag-kernel-5-1-rc1-released","tag-nvidia-compile-fails","tag-vmware-patch-available"],"_links":{"self":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2527","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2527"}],"version-history":[{"count":2,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2527\/revisions"}],"predecessor-version":[{"id":2529,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=\/wp\/v2\/posts\/2527\/revisions\/2529"}],"wp:attachment":[{"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2527"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2527"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/rglinuxtech.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2527"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}