Package: enhanceio-dkms Version: 0+git20130620-4 Severity: important Tags: patch
Dear Maintainer, The enhanceio kernel module from this package fails to build on kernels starting from version 3.18. The reason is the removal of the deprecated function smp_mb__after_clear_bit. The proper fix is to replace it with smp_mb__after_atomic. I include a patch for the enhanceio package which implements these changes. I also published them on my GitHub fork of enhanceio [1]. There is still an outstanding pull request to merge these changes and those fixing 3.17 into the upstream repository [2]. Thanks for maintaining this package, Philipp [1] https://github.com/tukss/EnhanceIO [2] https://github.com/stec-inc/EnhanceIO/pull/84 -- System Information: Debian Release: 8.0 APT prefers unstable APT policy: (500, 'unstable'), (1, 'experimental') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 3.17.0-trunk-amd64 (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash Init: systemd (via /run/systemd/system) Versions of packages enhanceio-dkms depends on: ii dkms 2.2.0.3-2 Versions of packages enhanceio-dkms recommends: ii enhanceio 0+git20130620-4 ii libgcc-4.8-dev 4.8.3-18 enhanceio-dkms suggests no packages. -- no debconf information
diff -Nru enhanceio-0+git20130620/debian/changelog enhanceio-0+git20130620/debian/changelog --- enhanceio-0+git20130620/debian/changelog 2014-11-20 05:03:15.000000000 +0100 +++ enhanceio-0+git20130620/debian/changelog 2014-12-15 12:38:50.000000000 +0100 @@ -1,3 +1,10 @@ +enhanceio (0+git20130620-4.1~edelmann1) experimental; urgency=medium + + * Non-maintainer upload. + * New patch for compatibility with Linux 3.18. + + -- Philipp Edelmann <edelm...@fs.tum.de> Mon, 15 Dec 2014 12:37:56 +0100 + enhanceio (0+git20130620-4) experimental; urgency=medium [ Philipp Edelmann <edelm...@fs.tum.de> ] diff -Nru enhanceio-0+git20130620/debian/patches/kernel-3.18.patch enhanceio-0+git20130620/debian/patches/kernel-3.18.patch --- enhanceio-0+git20130620/debian/patches/kernel-3.18.patch 1970-01-01 01:00:00.000000000 +0100 +++ enhanceio-0+git20130620/debian/patches/kernel-3.18.patch 2014-12-15 12:36:54.000000000 +0100 @@ -0,0 +1,96 @@ +--- a/Driver/enhanceio/eio_conf.c ++++ b/Driver/enhanceio/eio_conf.c +@@ -101,6 +101,10 @@ + return 0; + } + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) ++#define smp_mb__after_atomic smp_mb__after_clear_bit ++#endif ++ + /* + * Check if the System RAM threshold > requested memory, don't care + * if threshold is set to 0. Return value is 0 for fail and 1 for success. +@@ -1853,7 +1857,7 @@ + dmc->next_cache = cache_list_head; + cache_list_head = dmc; + clear_bit(EIO_UPDATE_LIST, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_UPDATE_LIST); + + prev_set = -1; +@@ -1918,7 +1922,7 @@ + nodepp = &((*nodepp)->next_cache); + } + clear_bit(EIO_UPDATE_LIST, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_UPDATE_LIST); + bad5: + eio_kcached_client_destroy(dmc); +@@ -2072,7 +2076,7 @@ + nodepp = &((*nodepp)->next_cache); + } + clear_bit(EIO_UPDATE_LIST, &eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_UPDATE_LIST); + + out: +@@ -2397,7 +2401,7 @@ + TASK_UNINTERRUPTIBLE); + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) { + clear_bit(EIO_HANDLE_REBOOT, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, + EIO_HANDLE_REBOOT); + return NOTIFY_DONE; +@@ -2425,12 +2429,12 @@ + eio_md_store(dmc); + } + clear_bit(EIO_UPDATE_LIST, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_UPDATE_LIST); + + eio_reboot_notified = EIO_REBOOT_HANDLING_DONE; + clear_bit(EIO_HANDLE_REBOOT, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_HANDLE_REBOOT); + return NOTIFY_DONE; + } +--- a/Driver/enhanceio/eio_ttc.c ++++ b/Driver/enhanceio/eio_ttc.c +@@ -36,6 +36,11 @@ + #define wait_on_bit_lock_action wait_on_bit_lock + #endif + ++#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,15,0)) ++#define smp_mb__after_atomic smp_mb__after_clear_bit ++#endif ++ ++ + static struct rw_semaphore eio_ttc_lock[EIO_HASHTBL_SIZE]; + static struct list_head eio_ttc_list[EIO_HASHTBL_SIZE]; + +@@ -1507,7 +1512,7 @@ + TASK_UNINTERRUPTIBLE); + if (eio_reboot_notified == EIO_REBOOT_HANDLING_DONE) { + clear_bit(EIO_HANDLE_REBOOT, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, + EIO_HANDLE_REBOOT); + return 0; +@@ -1609,7 +1614,7 @@ + + eio_reboot_notified = EIO_REBOOT_HANDLING_DONE; + clear_bit(EIO_HANDLE_REBOOT, (void *)&eio_control->synch_flags); +- smp_mb__after_clear_bit(); ++ smp_mb__after_atomic(); + wake_up_bit((void *)&eio_control->synch_flags, EIO_HANDLE_REBOOT); + return 0; + } diff -Nru enhanceio-0+git20130620/debian/patches/series enhanceio-0+git20130620/debian/patches/series --- enhanceio-0+git20130620/debian/patches/series 2014-11-20 04:53:41.000000000 +0100 +++ enhanceio-0+git20130620/debian/patches/series 2014-12-15 12:35:54.000000000 +0100 @@ -3,3 +3,4 @@ kernel-3.17.patch make.patch path2eio_cli.patch +kernel-3.18.patch
signature.asc
Description: Digital signature