From 50a1dcfa53d889e07f2c946d4966bc2a8a86e254 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Mon, 26 Jan 2015 00:32:08 +0100 Subject: [PATCH] - fix building with linux 3.18 - rel 2 --- dahdi-linux.spec | 4 ++- linux-3.18.patch | 85 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 linux-3.18.patch diff --git a/dahdi-linux.spec b/dahdi-linux.spec index 9c9ff56..0aa1002 100644 --- a/dahdi-linux.spec +++ b/dahdi-linux.spec @@ -55,7 +55,7 @@ exit 1 %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 @@ -77,6 +77,7 @@ Source6: %{FIRMWARE_URL}/dahdi-fw-tc400m-MR6.12.tar.gz # 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}} @@ -179,6 +180,7 @@ cd ../..\ %prep %setup -q -n %{pname}-%{version} +%patch0 -p1 for a in %{SOURCE3} %{SOURCE4} %{SOURCE5} %{SOURCE6} %{SOURCE7}; do ln -s $a drivers/dahdi/firmware diff --git a/linux-3.18.patch b/linux-3.18.patch new file mode 100644 index 0000000..03cecdd --- /dev/null +++ b/linux-3.18.patch @@ -0,0 +1,85 @@ +--- 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); -- 2.43.0