%define kpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%kernel_pkg ; done)
%define bkpkg %(echo %{_build_kernels} | tr , '\\n' | while read n ; do echo %%undefine alt_kernel ; [ -z "$n" ] || echo %%define alt_kernel $n ; echo %%build_kernel_pkg ; done)
-%define rel 1
+%define rel 2
%define pname dahdi-linux
%define FIRMWARE_URL http://downloads.digium.com/pub/telephony/firmware/releases
Summary: DAHDI telephony device support
# Source6-md5: 2ea860bb8a9d8ede2858b9557b74ee3c
Source7: %{FIRMWARE_URL}/dahdi-fw-hx8-2.06.tar.gz
# Source7-md5: a7f3886942bb3e9fed349a41b3390c9f
+Patch0: linux-3.18.patch
URL: http://www.asterisk.org/
BuildRequires: rpmbuild(macros) >= 1.678
%{?with_dist_kernel:%{expand:%kbrs}}
%prep
%setup -q -n %{pname}-%{version}
+%patch0 -p1
for a in %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7}; do
ln -s $a drivers/dahdi/firmware
--- /dev/null
+--- 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);