--- dahdi-linux-2.10.0.1/drivers/dahdi/wcte43x-base.c~ 2014-09-22 20:40:19.000000000 +0200 +++ dahdi-linux-2.10.0.1/drivers/dahdi/wcte43x-base.c 2015-01-26 00:29:29.559216394 +0100 @@ -3581,7 +3581,11 @@ return; wc->not_ready = 1; +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif /* Stop everything */ wcxb_stop(&wc->xb); --- dahdi-linux-2.10.0.1/drivers/dahdi/wcaxx-base.c~ 2014-09-22 20:40:19.000000000 +0200 +++ dahdi-linux-2.10.0.1/drivers/dahdi/wcaxx-base.c 2015-01-26 00:30:14.289214817 +0100 @@ -3823,7 +3823,11 @@ unsigned long flags; clear_bit(INITIALIZED, &wc->bit_flags); - smp_mb__after_clear_bit(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif /* Make sure we're not on the card list anymore. */ mutex_lock(&card_list_lock); --- dahdi-linux-2.10.0.1/drivers/dahdi/wcte12xp/base.c~ 2014-09-22 20:40:19.000000000 +0200 +++ dahdi-linux-2.10.0.1/drivers/dahdi/wcte12xp/base.c 2015-01-26 00:30:47.229213654 +0100 @@ -2110,7 +2110,11 @@ * them. */ clear_bit(INITIALIZED, &wc->bit_flags); synchronize_irq(wc->vb.pdev->irq); - smp_mb__after_clear_bit(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif del_timer_sync(&wc->timer); flush_workqueue(wc->wq); @@ -3076,7 +3080,11 @@ remove_sysfs_files(wc); clear_bit(INITIALIZED, &wc->bit_flags); - smp_mb__after_clear_bit(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif del_timer_sync(&wc->timer); flush_workqueue(wc->wq); --- dahdi-linux-2.10.0.1/drivers/dahdi/wcte13xp-base.c~ 2014-09-22 20:40:19.000000000 +0200 +++ dahdi-linux-2.10.0.1/drivers/dahdi/wcte13xp-base.c 2015-01-26 00:31:17.379212592 +0100 @@ -1849,7 +1849,11 @@ clear_bit(INITIALIZED, &wc->bit_flags); disable_irq(wc->xb.pdev->irq); - smp_mb__after_clear_bit(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif del_timer_sync(&wc->timer); flush_workqueue(wc->wq); @@ -2725,7 +2729,11 @@ return; clear_bit(INITIALIZED, &wc->bit_flags); - smp_mb__after_clear_bit(); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) + smp_mb__after_clear_bit(); +#else + smp_mb__after_atomic(); +#endif /* Quiesce DMA engine interrupts */ wcxb_stop(&wc->xb);