diff --git a/os/linux/gl_init.c b/os/linux/gl_init.c
index 59182a5..9b96bed 100644
--- a/os/linux/gl_init.c
+++ b/os/linux/gl_init.c
@@ -80,6 +80,7 @@
 #include "gl_kal.h"
 #endif
 #include "gl_vendor.h"
+#include <uapi/linux/sched/types.h>
 
 /*******************************************************************************
 *                              C O N S T A N T S
@@ -2232,6 +2233,28 @@
 	return retWlanStat;
 }
 
+#if KERNEL_VERSION(4, 15, 0) <= LINUX_VERSION_CODE
+static void nicTxDirectTimerCheckSkbQWrapper(struct timer_list *timer)
+{
+	P_ADAPTER_T prAdapter =
+		container_of(timer, ADAPTER_T, rTxDirectSkbTimer);
+	P_GLUE_INFO_T prGlueInfo =
+		container_of(prAdapter, GLUE_INFO_T, prAdapter);
+
+	nicTxDirectTimerCheckSkbQ((unsigned long) prGlueInfo);
+}
+
+
+static void nicTxDirectTimerCheckHifQWrapper(struct timer_list *timer)
+{
+	P_ADAPTER_T prAdapter =
+		container_of(timer, ADAPTER_T, rTxDirectHifTimer);
+	P_GLUE_INFO_T prGlueInfo =
+		container_of(prAdapter, GLUE_INFO_T, prAdapter);
+
+	nicTxDirectTimerCheckHifQ((unsigned long) prGlueInfo);
+}
+#endif
 
 /*----------------------------------------------------------------------------*/
 /*!
@@ -2381,6 +2404,7 @@
 			if (!prAdapter->fgTxDirectInited) {
 				skb_queue_head_init(&prAdapter->rTxDirectSkbQueue);
 
+#if KERNEL_VERSION(4, 15, 0) > LINUX_VERSION_CODE
 				init_timer(&prAdapter->rTxDirectSkbTimer);
 				prAdapter->rTxDirectSkbTimer.data = (unsigned long)prGlueInfo;
 				prAdapter->rTxDirectSkbTimer.function = nicTxDirectTimerCheckSkbQ;
@@ -2388,6 +2412,14 @@
 				init_timer(&prAdapter->rTxDirectHifTimer);
 				prAdapter->rTxDirectHifTimer.data = (unsigned long)prGlueInfo;
 				prAdapter->rTxDirectHifTimer.function = nicTxDirectTimerCheckHifQ;
+#else
+				timer_setup(&prAdapter->rTxDirectSkbTimer,
+					    nicTxDirectTimerCheckSkbQWrapper,
+					    0);
+				timer_setup(&prAdapter->rTxDirectHifTimer,
+					    nicTxDirectTimerCheckHifQWrapper,
+					    0);
+#endif
 
 				prAdapter->fgTxDirectInited = TRUE;
 			}
diff --git a/os/linux/gl_kal.c b/os/linux/gl_kal.c
index 7b502d5..65c8072 100644
--- a/os/linux/gl_kal.c
+++ b/os/linux/gl_kal.c
@@ -3485,6 +3485,18 @@
 */
 /*----------------------------------------------------------------------------*/
 
+#if KERNEL_VERSION(4, 15, 0) <= LINUX_VERSION_CODE
+void (*prTimerHandlerHack)(unsigned long);
+
+static void prTimerHandlerWrapper(struct timer_list *timer)
+{
+
+	P_GLUE_INFO_T prGlueInfo = container_of(timer, GLUE_INFO_T, tickfn);
+
+	prTimerHandlerHack((unsigned long) prGlueInfo);
+}
+#endif
+
 /* static struct timer_list tickfn; */
 
 VOID kalOsTimerInitialize(IN P_GLUE_INFO_T prGlueInfo, IN PVOID prTimerHandler)
@@ -3492,9 +3504,15 @@
 
 	ASSERT(prGlueInfo);
 
+	prTimerHandlerHack = prTimerHandler;
+
+#if KERNEL_VERSION(4, 15, 0) > LINUX_VERSION_CODE
 	init_timer(&(prGlueInfo->tickfn));
 	prGlueInfo->tickfn.function = prTimerHandler;
 	prGlueInfo->tickfn.data = (unsigned long)prGlueInfo;
+#else
+	timer_setup(&prGlueInfo->tickfn, prTimerHandlerWrapper, 0);
+#endif
 }
 
 /* Todo */
