]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - config/kernel-mk-request-fn.m4
Fix autoconf detection of super_setup_bdi_name
[FreeBSD/FreeBSD.git] / config / kernel-mk-request-fn.m4
1 dnl #
2 dnl # Linux 3.2 API Change
3 dnl # make_request_fn returns void instead of int.
4 dnl #
5 dnl # Linux 4.4 API Change
6 dnl # make_request_fn returns blk_qc_t.
7 dnl #
8 AC_DEFUN([ZFS_AC_KERNEL_MAKE_REQUEST_FN], [
9         AC_MSG_CHECKING([whether make_request_fn() returns int])
10         ZFS_LINUX_TRY_COMPILE([
11                 #include <linux/blkdev.h>
12
13                 int make_request(struct request_queue *q, struct bio *bio)
14                 {
15                         return (0);
16                 }
17         ],[
18                 blk_queue_make_request(NULL, &make_request);
19         ],[
20                 AC_MSG_RESULT(yes)
21                 AC_DEFINE(MAKE_REQUEST_FN_RET, int,
22                     [make_request_fn() returns int])
23                 AC_DEFINE(HAVE_MAKE_REQUEST_FN_RET_INT, 1,
24                     [Noting that make_request_fn() returns int])
25         ],[
26                 AC_MSG_RESULT(no)
27                 AC_MSG_CHECKING([whether make_request_fn() returns void])
28                 ZFS_LINUX_TRY_COMPILE([
29                         #include <linux/blkdev.h>
30
31                         void make_request(struct request_queue *q, struct bio *bio)
32                         {
33                                 return;
34                         }
35                 ],[
36                         blk_queue_make_request(NULL, &make_request);
37                 ],[
38                         AC_MSG_RESULT(yes)
39                         AC_DEFINE(MAKE_REQUEST_FN_RET, void,
40                             [make_request_fn() returns void])
41                 ],[
42                         AC_MSG_RESULT(no)
43                         AC_MSG_CHECKING([whether make_request_fn() returns blk_qc_t])
44                         ZFS_LINUX_TRY_COMPILE([
45                                 #include <linux/blkdev.h>
46
47                                 blk_qc_t make_request(struct request_queue *q, struct bio *bio)
48                                 {
49                                         return (BLK_QC_T_NONE);
50                                 }
51                         ],[
52                                 blk_queue_make_request(NULL, &make_request);
53                         ],[
54                                 AC_MSG_RESULT(yes)
55                                 AC_DEFINE(MAKE_REQUEST_FN_RET, blk_qc_t,
56                                     [make_request_fn() returns blk_qc_t])
57                                 AC_DEFINE(HAVE_MAKE_REQUEST_FN_RET_QC, 1,
58                                     [Noting that make_request_fn() returns blk_qc_t])
59                         ],[
60                                 AC_MSG_ERROR(no - Please file a bug report at
61                                     https://github.com/zfsonlinux/zfs/issues/new)
62                         ])
63                 ])
64         ])
65 ])