dahdi: smp_mb_{before,after}_clear_bit -> smp_mb_{before,after}_atomic.

This is needed to compile against upstream Linux 3.18 since commit
"locking: Remove deprecated smp_mb__() barriers" [1].

[1] https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=2e39465abc4b7856a0ea6fcf4f

Signed-off-by: Shaun Ruffell <sruffell@digium.com>
Signed-off-by: Russ Meyerriecks <rmeyerriecks@digium.com>
This commit is contained in:
Shaun Ruffell 2014-10-16 18:41:27 -05:00 committed by Russ Meyerriecks
parent b9a8000bbd
commit 378986841c
5 changed files with 18 additions and 6 deletions

View File

@ -3823,7 +3823,7 @@ static void wcaxx_back_out_gracefully(struct wcaxx *wc)
unsigned long flags; unsigned long flags;
clear_bit(INITIALIZED, &wc->bit_flags); clear_bit(INITIALIZED, &wc->bit_flags);
smp_mb__after_clear_bit(); smp_mb__after_atomic();
/* Make sure we're not on the card list anymore. */ /* Make sure we're not on the card list anymore. */
mutex_lock(&card_list_lock); mutex_lock(&card_list_lock);

View File

@ -2110,7 +2110,7 @@ static int t1xxp_set_linemode(struct dahdi_span *span, enum spantypes linemode)
* them. */ * them. */
clear_bit(INITIALIZED, &wc->bit_flags); clear_bit(INITIALIZED, &wc->bit_flags);
synchronize_irq(wc->vb.pdev->irq); synchronize_irq(wc->vb.pdev->irq);
smp_mb__after_clear_bit(); smp_mb__after_atomic();
del_timer_sync(&wc->timer); del_timer_sync(&wc->timer);
flush_workqueue(wc->wq); flush_workqueue(wc->wq);
@ -3076,7 +3076,7 @@ static void __devexit te12xp_remove_one(struct pci_dev *pdev)
remove_sysfs_files(wc); remove_sysfs_files(wc);
clear_bit(INITIALIZED, &wc->bit_flags); clear_bit(INITIALIZED, &wc->bit_flags);
smp_mb__after_clear_bit(); smp_mb__after_atomic();
del_timer_sync(&wc->timer); del_timer_sync(&wc->timer);
flush_workqueue(wc->wq); flush_workqueue(wc->wq);

View File

@ -1849,7 +1849,7 @@ static int t13x_set_linemode(struct dahdi_span *span, enum spantypes linemode)
clear_bit(INITIALIZED, &wc->bit_flags); clear_bit(INITIALIZED, &wc->bit_flags);
disable_irq(wc->xb.pdev->irq); disable_irq(wc->xb.pdev->irq);
smp_mb__after_clear_bit(); smp_mb__after_atomic();
del_timer_sync(&wc->timer); del_timer_sync(&wc->timer);
flush_workqueue(wc->wq); flush_workqueue(wc->wq);
@ -2725,7 +2725,7 @@ static void __devexit te13xp_remove_one(struct pci_dev *pdev)
return; return;
clear_bit(INITIALIZED, &wc->bit_flags); clear_bit(INITIALIZED, &wc->bit_flags);
smp_mb__after_clear_bit(); smp_mb__after_atomic();
/* Quiesce DMA engine interrupts */ /* Quiesce DMA engine interrupts */
wcxb_stop(&wc->xb); wcxb_stop(&wc->xb);

View File

@ -3581,7 +3581,7 @@ static void __devexit t43x_remove_one(struct pci_dev *pdev)
return; return;
wc->not_ready = 1; wc->not_ready = 1;
smp_mb__after_clear_bit(); smp_mb__after_atomic();
/* Stop everything */ /* Stop everything */
wcxb_stop(&wc->xb); wcxb_stop(&wc->xb);

View File

@ -1408,6 +1408,17 @@ static inline short dahdi_txtone_nextsample(struct dahdi_chan *ss)
/*! Maximum audio mask */ /*! Maximum audio mask */
#define DAHDI_FORMAT_AUDIO_MASK ((1 << 16) - 1) #define DAHDI_FORMAT_AUDIO_MASK ((1 << 16) - 1)
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 16, 0)
/* DAHDI only was using the xxx_clear_bit variants. */
#ifndef smp_mb__before_atomic
#define smp_mb__before_atomic smp_mb__before_clear_bit
#endif
#ifndef smp_mb__after_atomic
#define smp_mb__after_atomic smp_mb__after_clear_bit
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0) #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 10, 0)
#ifdef RHEL_RELEASE_VERSION #ifdef RHEL_RELEASE_VERSION
#if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6, 5) #if RHEL_RELEASE_CODE < RHEL_RELEASE_VERSION(6, 5)
@ -1523,6 +1534,7 @@ static inline int strcasecmp(const char *s1, const char *s2)
#endif /* 2.6.27 */ #endif /* 2.6.27 */
#endif /* 2.6.31 */ #endif /* 2.6.31 */
#endif /* 3.10.0 */ #endif /* 3.10.0 */
#endif /* 3.16.0 */
#ifndef DEFINE_SPINLOCK #ifndef DEFINE_SPINLOCK
#define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED #define DEFINE_SPINLOCK(x) spinlock_t x = SPIN_LOCK_UNLOCKED