+diff --git a/kernel/nv-linux.h b/kernel/nv-linux.h
+index e7068e3..3ac3c0b 100644
+--- a/kernel/nv-linux.h
++++ b/kernel/nv-linux.h
+@@ -270,7 +270,7 @@ RM_STATUS nvos_forward_error_to_cray(struct pci_dev *, NvU32,
+
+ extern int nv_pat_mode;
+
+-#if !defined(NV_VMWARE) && defined(CONFIG_HOTPLUG_CPU)
++#if !defined(NV_VMWARE) && defined(CONFIG_HOTPLUG_CPU) && (LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0))
+ #define NV_ENABLE_HOTPLUG_CPU
+ #include <linux/cpu.h> /* CPU hotplug support */
+ #include <linux/notifier.h> /* struct notifier_block, etc */
+diff --git a/kernel/nv-pat.c b/kernel/nv-pat.c
+index a725533..91070e0 100644
+--- a/kernel/nv-pat.c
++++ b/kernel/nv-pat.c
+@@ -210,14 +210,20 @@ nvidia_cpu_callback(struct notifier_block *nfb, unsigned long action, void *hcpu
+
+ switch (action)
+ {
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ case CPU_DOWN_FAILED:
++#endif
+ case CPU_ONLINE:
+ if (cpu == (NvUPtr)hcpu)
+ nv_setup_pat_entries(NULL);
+ else
+ NV_SMP_CALL_FUNCTION(nv_setup_pat_entries, hcpu, 1);
+ break;
++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
+ case CPU_DOWN_PREPARE:
++#else
++ case CPU_DOWN_PREPARE_FROZEN:
++#endif
+ if (cpu == (NvUPtr)hcpu)
+ nv_restore_pat_entries(NULL);
+ else