diff -Nru oss4-4.2-build2010/debian/changelog oss4-4.2-build2010/debian/changelog --- oss4-4.2-build2010/debian/changelog 2017-02-08 07:59:27.000000000 -0200 +++ oss4-4.2-build2010/debian/changelog 2018-06-20 14:18:05.000000000 -0300 @@ -1,3 +1,10 @@ +oss4 (4.2-build2010-5ubuntu2~16.04.1) xenial; urgency=medium + + * Add support for Linux kernel 4.15 (LP: #1777907): + - debian/patches/support_for_new_timer_api.patch + + -- Marcelo Henrique Cerri Wed, 20 Jun 2018 14:06:45 -0300 + oss4 (4.2-build2010-5ubuntu1~14.04.1) xenial; urgency=low * Backport to Xenial to fix build with kernel 4.8 (LP: #1662118). diff -Nru oss4-4.2-build2010/debian/patches/series oss4-4.2-build2010/debian/patches/series --- oss4-4.2-build2010/debian/patches/series 2016-07-05 13:06:41.000000000 -0300 +++ oss4-4.2-build2010/debian/patches/series 2018-06-20 12:02:14.000000000 -0300 @@ -20,3 +20,4 @@ 501_linux_version.patch 502_linux_io.patch osspci_remove-should-return-void.patch +support_for_new_timer_api.patch diff -Nru oss4-4.2-build2010/debian/patches/support_for_new_timer_api.patch oss4-4.2-build2010/debian/patches/support_for_new_timer_api.patch --- oss4-4.2-build2010/debian/patches/support_for_new_timer_api.patch 1969-12-31 21:00:00.000000000 -0300 +++ oss4-4.2-build2010/debian/patches/support_for_new_timer_api.patch 2018-06-20 12:02:14.000000000 -0300 @@ -0,0 +1,49 @@ +--- a/setup/Linux/oss/build/osscore.c ++++ b/setup/Linux/oss/build/osscore.c +@@ -492,6 +492,9 @@ + void *arg; + + struct timer_list timer; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ unsigned long id; ++#endif + } tmout_desc_t; + + static volatile int next_id = 0; +@@ -501,10 +504,19 @@ + + int timeout_random = 0x12123400; + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++void ++oss_timer_callback (struct timer_list *tl) ++#else + void + oss_timer_callback (unsigned long id) ++#endif + { + tmout_desc_t *tmout; ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ tmout = from_timer(tmout, tl, timer); ++ unsigned long id = tmout->id; ++#endif + int ix; + void *arg; + +@@ -562,10 +574,15 @@ + tmout->arg = arg; + tmout->timestamp = id | (timeout_random & ~0xff); + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 15, 0) ++ tmout->id = id | (timeout_random & ~0xff); ++ timer_setup(&tmout->timer, oss_timer_callback, 0); ++#else + init_timer (&tmout->timer); +- tmout->timer.expires = jiffies + ticks; + tmout->timer.data = id | (timeout_random & ~0xff); + tmout->timer.function = oss_timer_callback; ++#endif ++ tmout->timer.expires = jiffies + ticks; + add_timer (&tmout->timer); + + return id | (timeout_random & ~0xff);