diff -aur ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/dahdi-base.c ./drivers/dahdi/dahdi-base.c --- ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/dahdi-base.c 2014-09-23 02:40:19.000000000 +0800 +++ ./drivers/dahdi/dahdi-base.c 2015-04-08 15:08:14.884476440 +0800 @@ -98,7 +98,11 @@ #define chan_to_netdev(h) ((h)->hdlcnetdev->netdev) /* macro-oni for determining a unit (channel) number */ +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 19, 0) #define UNIT(file) MINOR(file->f_dentry->d_inode->i_rdev) +#else +#define UNIT(file) MINOR(file->f_path.dentry->d_inode->i_rdev) +#endif EXPORT_SYMBOL(dahdi_transcode_fops); EXPORT_SYMBOL(dahdi_init_tone_state); diff -aur ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcaxx-base.c ./drivers/dahdi/wcaxx-base.c --- ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcaxx-base.c 2014-09-23 02:40:19.000000000 +0800 +++ ./drivers/dahdi/wcaxx-base.c 2015-04-08 15:08:14.885476464 +0800 @@ -3823,7 +3823,11 @@ unsigned long flags; clear_bit(INITIALIZED, &wc->bit_flags); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__before_atomic(); +#endif /* Make sure we're not on the card list anymore. */ mutex_lock(&card_list_lock); diff -aur ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte12xp/base.c ./drivers/dahdi/wcte12xp/base.c --- ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte12xp/base.c 2014-09-23 02:40:19.000000000 +0800 +++ ./drivers/dahdi/wcte12xp/base.c 2015-04-08 15:08:14.886476488 +0800 @@ -2110,7 +2110,11 @@ * them. */ clear_bit(INITIALIZED, &wc->bit_flags); synchronize_irq(wc->vb.pdev->irq); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__before_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); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__before_atomic(); +#endif del_timer_sync(&wc->timer); flush_workqueue(wc->wq); diff -aur ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte13xp-base.c ./drivers/dahdi/wcte13xp-base.c --- ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte13xp-base.c 2014-09-23 02:40:19.000000000 +0800 +++ ./drivers/dahdi/wcte13xp-base.c 2015-04-08 15:08:14.887476512 +0800 @@ -1849,7 +1849,11 @@ clear_bit(INITIALIZED, &wc->bit_flags); disable_irq(wc->xb.pdev->irq); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__before_atomic(); +#endif del_timer_sync(&wc->timer); flush_workqueue(wc->wq); @@ -2725,7 +2729,11 @@ return; clear_bit(INITIALIZED, &wc->bit_flags); +#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 18, 0) smp_mb__after_clear_bit(); +#else + smp_mb__before_atomic(); +#endif /* Quiesce DMA engine interrupts */ wcxb_stop(&wc->xb); diff -aur ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte43x-base.c ./drivers/dahdi/wcte43x-base.c --- ../../dahdi-linux-complete-2.10.0.1+2.10.0.1/linux/drivers/dahdi/wcte43x-base.c 2014-09-23 02:40:19.000000000 +0800 +++ ./drivers/dahdi/wcte43x-base.c 2015-04-08 15:08:14.888476536 +0800 @@ -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__before_atomic(); +#endif /* Stop everything */ wcxb_stop(&wc->xb);