]>
Commit | Line | Data |
---|---|---|
48ef8ba0 BB |
1 | dnl # |
2 | dnl # 3.1 API Change | |
3 | dnl # | |
4 | dnl # The rw_semaphore.wait_lock member was changed from spinlock_t to | |
5 | dnl # raw_spinlock_t at commit ddb6c9b58a19edcfac93ac670b066c836ff729f1. | |
6 | dnl # | |
93ce2b4c | 7 | AC_DEFUN([ZFS_AC_KERNEL_RWSEM_SPINLOCK_IS_RAW], [ |
48ef8ba0 BB |
8 | AC_MSG_CHECKING([whether struct rw_semaphore member wait_lock is raw]) |
9 | tmp_flags="$EXTRA_KCFLAGS" | |
10 | EXTRA_KCFLAGS="-Werror" | |
93ce2b4c | 11 | ZFS_LINUX_TRY_COMPILE([ |
48ef8ba0 BB |
12 | #include <linux/rwsem.h> |
13 | ],[ | |
14 | struct rw_semaphore dummy_semaphore __attribute__ ((unused)); | |
15 | raw_spinlock_t dummy_lock __attribute__ ((unused)) = | |
16 | __RAW_SPIN_LOCK_INITIALIZER(dummy_lock); | |
17 | dummy_semaphore.wait_lock = dummy_lock; | |
18 | ],[ | |
19 | AC_MSG_RESULT(yes) | |
20 | AC_DEFINE(RWSEM_SPINLOCK_IS_RAW, 1, | |
21 | [struct rw_semaphore member wait_lock is raw_spinlock_t]) | |
22 | ],[ | |
23 | AC_MSG_RESULT(no) | |
24 | ]) | |
25 | EXTRA_KCFLAGS="$tmp_flags" | |
26 | ]) | |
27 | ||
28 | dnl # | |
29 | dnl # 3.16 API Change | |
30 | dnl # | |
31 | dnl # rwsem-spinlock "->activity" changed to "->count" | |
32 | dnl # | |
93ce2b4c | 33 | AC_DEFUN([ZFS_AC_KERNEL_RWSEM_ACTIVITY], [ |
48ef8ba0 BB |
34 | AC_MSG_CHECKING([whether struct rw_semaphore has member activity]) |
35 | tmp_flags="$EXTRA_KCFLAGS" | |
36 | EXTRA_KCFLAGS="-Werror" | |
93ce2b4c | 37 | ZFS_LINUX_TRY_COMPILE([ |
48ef8ba0 BB |
38 | #include <linux/rwsem.h> |
39 | ],[ | |
40 | struct rw_semaphore dummy_semaphore __attribute__ ((unused)); | |
41 | dummy_semaphore.activity = 0; | |
42 | ],[ | |
43 | AC_MSG_RESULT(yes) | |
44 | AC_DEFINE(HAVE_RWSEM_ACTIVITY, 1, | |
45 | [struct rw_semaphore has member activity]) | |
46 | ],[ | |
47 | AC_MSG_RESULT(no) | |
48 | ]) | |
49 | EXTRA_KCFLAGS="$tmp_flags" | |
50 | ]) | |
51 | ||
52 | dnl # | |
53 | dnl # 4.8 API Change | |
54 | dnl # | |
55 | dnl # rwsem "->count" changed to atomic_long_t type | |
56 | dnl # | |
93ce2b4c | 57 | AC_DEFUN([ZFS_AC_KERNEL_RWSEM_ATOMIC_LONG_COUNT], [ |
48ef8ba0 BB |
58 | AC_MSG_CHECKING( |
59 | [whether struct rw_semaphore has atomic_long_t member count]) | |
60 | tmp_flags="$EXTRA_KCFLAGS" | |
61 | EXTRA_KCFLAGS="-Werror" | |
93ce2b4c | 62 | ZFS_LINUX_TRY_COMPILE([ |
48ef8ba0 BB |
63 | #include <linux/rwsem.h> |
64 | ],[ | |
65 | DECLARE_RWSEM(dummy_semaphore); | |
66 | (void) atomic_long_read(&dummy_semaphore.count); | |
67 | ],[ | |
68 | AC_MSG_RESULT(yes) | |
69 | AC_DEFINE(HAVE_RWSEM_ATOMIC_LONG_COUNT, 1, | |
70 | [struct rw_semaphore has atomic_long_t member count]) | |
71 | ],[ | |
72 | AC_MSG_RESULT(no) | |
73 | ]) | |
74 | EXTRA_KCFLAGS="$tmp_flags" | |
75 | ]) |