[patch made obsolete by 381.22] 381.09 + kernel 4.12 staging

Edit: This post has been made obsolete by release of 381.22 which cleanly works with everything including up to date git master of linux kernel.

Way to go nvidia.
/me claps.

I still need your patch for linux-hardened 4.11 of Arch.

Fedora still requires patching for 4.11

ld -r -o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nv-modeset-interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.o
  Building modules, stage 2.
  MODPOST 4 modules
FATAL: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol 'refcount_inc'
make[3]: *** [/usr/src/kernels/4.11.0-1.fc26.x86_64/scripts/Makefile.modpost:91: __modpost] Error 1
make[2]: *** [/usr/src/kernels/4.11.0-1.fc26.x86_64/Makefile:1500: modules] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
make[1]: *** [Makefile:152: sub-make] Error 2
make[1]: Leaving directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
make: *** [Makefile:81: modules] Error 2

https://pkgs.rpmfusion.org/cgit/nonfree/nvidia-kmod.git/tree/kernel_4.11.patch

.09 patch for 4.11 is still lying around somewhere on this forum, this thread was meant for 4.12 staging but hours after I created the patch .22 came out and it seems to be compiling just fine on my machine in spite of not being relicensed to “Dual GPL/MIT”.

Add problem above, are you sure you haven’t applied older patches? From what I see, I think that my .09 patch was actually wrong and fixed problem that no longer existed (nvidia added their own implementation of refcount_t to work around GPL and make use of atomic_t).

I simply unpacked .22, it compiled without any warnings/errors against current master and afterwards I called it a day. Will investigate what’s up when I fully wake up.

The compile error was on virgin nvidia code

[leigh@localhost Downloads]$ sh NVIDIA-Linux-x86_64-381.22.run -x
Creating directory NVIDIA-Linux-x86_64-381.22
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 381.22..................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
[leigh@localhost Downloads]$ cd NVIDIA-Linux-x86_64-381.22/kernel/
[leigh@localhost kernel]$ make -j8
make "CC=cc" KBUILD_OUTPUT=/lib/modules/4.11.0-1.fc26.x86_64/build KBUILD_VERBOSE= -C /lib/modules/4.11.0-1.fc26.x86_64/source M=/home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel ARCH=x86_64 NV_KERNEL_SOURCES=/lib/modules/4.11.0-1.fc26.x86_64/source NV_KERNEL_OUTPUT=/lib/modules/4.11.0-1.fc26.x86_64/build NV_KERNEL_MODULES="nvidia nvidia-uvm nvidia-modeset nvidia-drm" INSTALL_MOD_DIR=kernel/drivers/video modules
make[1]: Entering directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
make[2]: Entering directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
  SYMLINK /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-kernel.o
  SYMLINK /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nv-modeset-kernel.o
 CONFTEST: INIT_WORK
 CONFTEST: follow_pfn
 CONFTEST: remap_pfn_range
 CONFTEST: vmap
 CONFTEST: set_pages_uc
 CONFTEST: set_memory_uc
 CONFTEST: set_memory_array_uc
 CONFTEST: change_page_attr
 CONFTEST: pci_get_class
 CONFTEST: pci_choose_state
 CONFTEST: vm_insert_page
 CONFTEST: acquire_console_sem
 CONFTEST: acpi_device_id
 CONFTEST: console_lock
 CONFTEST: kmem_cache_create
 CONFTEST: on_each_cpu
 CONFTEST: smp_call_function
 CONFTEST: acpi_evaluate_integer
 CONFTEST: ioremap_cache
 CONFTEST: ioremap_wc
 CONFTEST: acpi_walk_namespace
 CONFTEST: pci_domain_nr
 CONFTEST: pci_dma_mapping_error
 CONFTEST: sg_alloc_table
 CONFTEST: sg_init_table
 CONFTEST: pci_get_domain_bus_and_slot
 CONFTEST: get_num_physpages
 CONFTEST: efi_enabled
 CONFTEST: proc_create_data
 CONFTEST: pde_data
 CONFTEST: proc_remove
 CONFTEST: pm_vt_switch_required
 CONFTEST: drm_driver_has_set_busid
 CONFTEST: drm_driver_has_gem_prime_res_obj
 CONFTEST: xen_ioemu_inject_msi
 CONFTEST: phys_to_dma
 CONFTEST: get_dma_ops
 CONFTEST: write_cr4
 CONFTEST: of_get_property
 CONFTEST: of_find_node_by_phandle
 CONFTEST: pnv_pci_get_npu_dev
 CONFTEST: for_each_online_node
 CONFTEST: node_end_pfn
 CONFTEST: pci_bus_address
 CONFTEST: pci_stop_and_remove_bus_device
 CONFTEST: pci_remove_bus_device
 CONFTEST: request_threaded_irq
 CONFTEST: register_cpu_notifier
 CONFTEST: cpuhp_setup_state
 CONFTEST: remap_page_range
 CONFTEST: address_space_init_once
 CONFTEST: kbasename
 CONFTEST: fatal_signal_pending
 CONFTEST: list_cut_position
 CONFTEST: vzalloc
 CONFTEST: wait_on_bit_lock_argument_count
 CONFTEST: bitmap_clear
 CONFTEST: usleep_range
 CONFTEST: radix_tree_empty
 CONFTEST: drm_dev_unref
 CONFTEST: drm_reinit_primary_mode_group
 CONFTEST: drm_atomic_set_mode_for_crtc
 CONFTEST: drm_atomic_clean_old_fb
 CONFTEST: get_user_pages_remote
 CONFTEST: drm_gem_object_lookup
 CONFTEST: drm_atomic_state_free
 CONFTEST: i2c_adapter
 CONFTEST: pm_message_t
 CONFTEST: irq_handler_t
 CONFTEST: acpi_device_ops
 CONFTEST: acpi_op_remove
 CONFTEST: outer_flush_all
 CONFTEST: proc_dir_entry
 CONFTEST: scatterlist
 CONFTEST: sg_table
 CONFTEST: file_operations
 CONFTEST: vm_operations_struct
 CONFTEST: atomic_long_type
 CONFTEST: pci_save_state
 CONFTEST: file_inode
 CONFTEST: task_struct
 CONFTEST: kuid_t
 CONFTEST: dma_ops
 CONFTEST: dma_map_ops
 CONFTEST: noncoherent_swiotlb_dma_ops
 CONFTEST: vm_fault_present
 CONFTEST: vm_fault_has_address
 CONFTEST: fault_flags
 CONFTEST: atomic64_type
 CONFTEST: address_space
 CONFTEST: backing_dev_info
 CONFTEST: kernel_write
 CONFTEST: strnstr
 CONFTEST: iterate_dir
 CONFTEST: kstrtoull
 CONFTEST: mm_context_t
 CONFTEST: vm_ops_fault_removed_vma_arg
 CONFTEST: drm_bus_present
 CONFTEST: drm_bus_has_bus_type
 CONFTEST: drm_bus_has_get_irq
 CONFTEST: drm_bus_has_get_name
 CONFTEST: drm_driver_has_legacy_dev_list
 CONFTEST: drm_crtc_state_has_connectors_changed
 CONFTEST: drm_init_functions_have_name_arg
 CONFTEST: drm_mode_connector_list_update_has_merge_type_bits_arg
 CONFTEST: drm_helper_mode_fill_fb_struct
 CONFTEST: drm_master_drop_has_from_release_arg
 CONFTEST: drm_mode_config_funcs_has_atomic_state_alloc
 CONFTEST: drm_driver_unload_has_int_return_type
 CONFTEST: dom0_kernel_present
 CONFTEST: nvidia_vgpu_kvm_build
 CONFTEST: drm_available
 CONFTEST: nvidia_grid_build
 CONFTEST: drm_atomic_available
 CONFTEST: drm_atomic_modeset_nonblocking_commit_available
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-frontend.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-instance.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-acpi.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-chrdev.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-cray.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-dma.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-gvi.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-i2c.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-mempool.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-mmap.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-p2p.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-pat.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-procfs.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-usermap.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-vm.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-vtophys.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-interface.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-mlock.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-pci.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-registry.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-usermap.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-modeset-interface.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-pci-table.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-kthread-q.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-kthread-q-selftest.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv_uvm_interface.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nvlink_linux.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_utils.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_common.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_linux.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_page_migration.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_page_migration_stubs.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_page_migration_kepler.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_page_migration_maxwell.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_page_migration_pascal.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/nvstatus.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/nv-kthread-q.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/nv-kthread-q-selftest.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_mmu_mgmt_pascal.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_mmu_mgmt.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_mmu_mgmt_stubs.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_full_fault_buffer.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm_full_fault_buffer_pascal.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/mmu_fmt.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/gmmu_fmt.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_tools.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_global.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_gpu.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_gpu_isr.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_procfs.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_va_space.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_gpu_semaphore.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_mem.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_rm_mem.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_channel.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_lock.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_hal.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_tree.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_allocator.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_va_range.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_va_block.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_group.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_gpu_page_fault.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_events.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_module.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_mmu.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pte_batch.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_tlb_batch.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_push.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pushbuffer.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_thread_context.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_tracker.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kepler.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kepler_ce.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kepler_host.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kepler_mmu.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_maxwell.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_maxwell_host.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pascal.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pascal_ce.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pascal_host.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pascal_mmu.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pascal_fault_buffer.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_policy.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_utils.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kvmalloc.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pmm_gpu.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_migrate.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_map_external.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_user_channel.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_hmm.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_heuristics.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_thrashing.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_prefetch.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_test_rng.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_tree_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_allocator_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_gpu_semaphore_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_mem_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_rm_mem_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_page_tree_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_tracker_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_push_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_channel_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_ce_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_lock_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_utils_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_kvmalloc_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_pmm_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_module_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_perf_events_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_get_rm_ptes_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_fault_buffer_flush_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_mmu_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_peer_identity_mappings_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_va_block_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm/uvm8_range_group_tree_test.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-drv.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-utils.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-crtc.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-encoder.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-connector.o
/home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-drv.c: In function ‘nvidia_drm_get_client_capability’:
/home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-drv.c:557:31: warning: unused variable ‘nv_dev’ [-Wunused-variable]
     struct nvidia_drm_device *nv_dev = dev->dev_private;
                               ^~~~~~
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-gem.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-fb.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-modeset.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-fence.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-linux.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nvidia-drm-helper.o
  CC [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm/nv-pci-table.o
ld -r -o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-frontend.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-instance.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-acpi.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-chrdev.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-cray.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-dma.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-gvi.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-i2c.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-mempool.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-mmap.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-p2p.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-pat.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-procfs.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-usermap.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-vm.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-vtophys.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-mlock.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-pci.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-registry.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/os-usermap.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-modeset-interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-pci-table.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-kthread-q.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv-kthread-q-selftest.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nv_uvm_interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia/nvlink_linux.o
ld -r -o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nv-modeset-interface.o /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset/nvidia-modeset-linux.o
  LD [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia.o
  LD [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-uvm.o
  LD [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-modeset.o
  LD [M]  /home/leigh/Downloads/NVIDIA-Linux-x86_64-381.22/kernel/nvidia-drm.o
  Building modules, stage 2.
  MODPOST 4 modules
FATAL: modpost: GPL-incompatible module nvidia-drm.ko uses GPL-only symbol 'refcount_inc'
make[3]: *** [/usr/src/kernels/4.11.0-1.fc26.x86_64/scripts/Makefile.modpost:91: __modpost] Error 1
make[2]: *** [/usr/src/kernels/4.11.0-1.fc26.x86_64/Makefile:1500: modules] Error 2
make[2]: Leaving directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
make[1]: *** [Makefile:152: sub-make] Error 2
make[1]: Leaving directory '/usr/src/kernels/4.11.0-1.fc26.x86_64'
make: *** [Makefile:81: modules] Error 2

I get exact the same without patching on debian sid with kernel 4.11.

They patched all the API breakages except the one involving GPL-licensed symbols in 4.11, fortunatedly 4.12 window seems to have reverted the symbol so that it’s no longer GPL licensed.
For the time being you are kinda stuck with using shady relicensing patch or using latest git master of linuses tree.

Simple one liner is floating around on these forums, so my job here is “done” since I only really care about linuses master tree and linux-next branches (e.g. I have no intention to backport patches for older kernels or drivers, sorry).

Well, for Kernel v4.12 series it is fixed by this patch: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=d557d1b58b3546bab2c5bc2d624c5709840e6b10 It should apply just fine on the Kernel v4.11 series.