--- a/src/drv_mei_cpe_linux.h
+++ b/src/drv_mei_cpe_linux.h
@@ -31,6 +31,9 @@
 #include <linux/module.h>
 
 #include <linux/sched.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0))
+#include <linux/sched/signal.h>
+#endif
 #include <linux/interrupt.h>
 #include <linux/version.h>
 #include <linux/crc32.h>
@@ -121,7 +124,11 @@ typedef int (*MEI_RequestIrq_WrapLinux_t
 /**
    Function typedef for the Linux free_irq()
 */
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
+typedef const void *(*MEI_FreeIrq_WrapLinux_t)( unsigned int usedIrq,
+#else
 typedef void (*MEI_FreeIrq_WrapLinux_t)( unsigned int usedIrq,
+#endif
                                            void *usedDevId );
 
 
--- a/src/drv_mei_cpe_linux.c
+++ b/src/drv_mei_cpe_linux.c
@@ -129,7 +129,7 @@ static int MEI_module_init(void);
 #endif
 
 #if (MEI_DRV_LKM_ENABLE == 1) && (MEI_SUPPORT_DEVICE_VR10_320 != 1)
-static void __exit MEI_module_exit(void);
+static void MEI_module_exit(void);
 #else
 static void MEI_module_exit(void);
 #endif
@@ -2188,7 +2188,7 @@ static int MEI_module_init (void)
    Called by the kernel.
 */
 #if (MEI_DRV_LKM_ENABLE == 1) && (MEI_SUPPORT_DEVICE_VR10_320 != 1)
-static void __exit MEI_module_exit (void)
+static void MEI_module_exit (void)
 #else
 static void MEI_module_exit (void)
 #endif
