lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <202107250145.wpphnpbK-lkp@intel.com>
Date:   Sun, 25 Jul 2021 01:41:50 +0800
From:   kernel test robot <lkp@...el.com>
To:     Christoph Hellwig <hch@....de>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org
Subject: [hch-block:blkdev.h-includes 16/16] drivers/nvdimm/btt.c:1159:26:
 error: invalid use of undefined type 'struct bio_integrity_payload'

tree:   git://git.infradead.org/users/hch/block.git blkdev.h-includes
head:   48f7fda047613ceec07881f14a5eaf1ee19d4433
commit: 48f7fda047613ceec07881f14a5eaf1ee19d4433 [16/16] block: move the integrity definitions from bio.h to blk-integrity.h
config: powerpc-randconfig-s032-20210724 (attached as .config)
compiler: powerpc-linux-gcc (GCC) 10.3.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.3-341-g8af24329-dirty
        git remote add hch-block git://git.infradead.org/users/hch/block.git
        git fetch --no-tags hch-block blkdev.h-includes
        git checkout 48f7fda047613ceec07881f14a5eaf1ee19d4433
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-10.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=powerpc SHELL=/bin/bash drivers/nvdimm/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

All error/warnings (new ones prefixed by >>):

   In file included from include/linux/blk_types.h:10,
                    from include/linux/genhd.h:19,
                    from include/linux/blkdev.h:7,
                    from drivers/nvdimm/btt.c:8:
   drivers/nvdimm/btt.c: In function 'btt_rw_integrity':
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/bvec.h:58:41: note: in definition of macro '__bvec_iter_bvec'
      58 | #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx])
         |                                         ^~~~
   include/linux/bvec.h:90:3: note: in expansion of macro 'mp_bvec_iter_page'
      90 |  (mp_bvec_iter_page((bvec), (iter)) +   \
         |   ^~~~~~~~~~~~~~~~~
   include/linux/bvec.h:95:13: note: in expansion of macro 'bvec_iter_page'
      95 |  .bv_page = bvec_iter_page((bvec), (iter)), \
         |             ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/bvec.h:58:48: note: in definition of macro '__bvec_iter_bvec'
      58 | #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx])
         |                                                ^~~~
   include/linux/bvec.h:90:3: note: in expansion of macro 'mp_bvec_iter_page'
      90 |  (mp_bvec_iter_page((bvec), (iter)) +   \
         |   ^~~~~~~~~~~~~~~~~
   include/linux/bvec.h:95:13: note: in expansion of macro 'bvec_iter_page'
      95 |  .bv_page = bvec_iter_page((bvec), (iter)), \
         |             ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/bvec.h:58:41: note: in definition of macro '__bvec_iter_bvec'
      58 | #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx])
         |                                         ^~~~
   include/linux/bvec.h:72:3: note: in expansion of macro 'mp_bvec_iter_offset'
      72 |  (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:91:3: note: in expansion of macro 'mp_bvec_iter_page_idx'
      91 |   mp_bvec_iter_page_idx((bvec), (iter)))
         |   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:95:13: note: in expansion of macro 'bvec_iter_page'
      95 |  .bv_page = bvec_iter_page((bvec), (iter)), \
         |             ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/bvec.h:58:48: note: in definition of macro '__bvec_iter_bvec'
      58 | #define __bvec_iter_bvec(bvec, iter) (&(bvec)[(iter).bi_idx])
         |                                                ^~~~
   include/linux/bvec.h:72:3: note: in expansion of macro 'mp_bvec_iter_offset'
      72 |  (mp_bvec_iter_offset((bvec), (iter)) / PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:91:3: note: in expansion of macro 'mp_bvec_iter_page_idx'
      91 |   mp_bvec_iter_page_idx((bvec), (iter)))
         |   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:95:13: note: in expansion of macro 'bvec_iter_page'
      95 |  .bv_page = bvec_iter_page((bvec), (iter)), \
         |             ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/bvec.h:69:50: note: in definition of macro 'mp_bvec_iter_offset'
      69 |  (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
         |                                                  ^~~~
   include/linux/bvec.h:91:3: note: in expansion of macro 'mp_bvec_iter_page_idx'
      91 |   mp_bvec_iter_page_idx((bvec), (iter)))
         |   ^~~~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:95:13: note: in expansion of macro 'bvec_iter_page'
      95 |  .bv_page = bvec_iter_page((bvec), (iter)), \
         |             ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   In file included from include/linux/kernel.h:16,
                    from include/linux/list.h:9,
                    from include/linux/wait.h:7,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from include/linux/highmem.h:5,
                    from drivers/nvdimm/btt.c:6:
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:4: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |    ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   include/linux/minmax.h:36:2: error: first argument to '__builtin_choose_expr' not a constant
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |  ^~~~~~~~~~~~~~~~~~~~~
   include/linux/minmax.h:20:21: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                     ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:20:39: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                                       ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:69:3: note: in expansion of macro '__bvec_iter_bvec'
      69 |  (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
         |   ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:39: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                                       ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:69:3: note: in expansion of macro '__bvec_iter_bvec'
      69 |  (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
         |   ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:20:39: note: in definition of macro '__typecheck'
      20 |  (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
         |                                       ^
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   In file included from include/linux/list.h:8,
                    from include/linux/wait.h:7,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from include/linux/highmem.h:5,
                    from drivers/nvdimm/btt.c:6:
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:4: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |    ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:38:3: note: in expansion of macro '__cmp_once'
      38 |   __cmp_once(x, y, __UNIQUE_ID(__x), __UNIQUE_ID(__y), op))
         |   ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   include/linux/minmax.h:36:2: error: first argument to '__builtin_choose_expr' not a constant
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |  ^~~~~~~~~~~~~~~~~~~~~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:69:3: note: in expansion of macro '__bvec_iter_bvec'
      69 |  (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
         |   ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:69:3: note: in expansion of macro '__bvec_iter_bvec'
      69 |  (__bvec_iter_bvec((bvec), (iter))->bv_offset + (iter).bi_bvec_done)
         |   ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/const.h:12:48: note: in definition of macro '__is_constexpr'
      12 |  (sizeof(int) == sizeof(*(8 ? ((void *)((long)(x) * 0l)) : (int *)8)))
         |                                                ^
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/bvec.h:83:3: note: in expansion of macro 'mp_bvec_iter_offset'
      83 |  (mp_bvec_iter_offset((bvec), (iter)) % PAGE_SIZE)
         |   ^~~~~~~~~~~~~~~~~~~
   include/linux/bvec.h:87:20: note: in expansion of macro 'bvec_iter_offset'
      87 |        PAGE_SIZE - bvec_iter_offset((bvec), (iter)))
         |                    ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   In file included from include/linux/kernel.h:16,
                    from include/linux/list.h:9,
                    from include/linux/wait.h:7,
                    from include/linux/wait_bit.h:8,
                    from include/linux/fs.h:6,
                    from include/linux/highmem.h:5,
                    from drivers/nvdimm/btt.c:6:
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:26:4: note: in expansion of macro '__typecheck'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |    ^~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:4: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |    ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:23:25: note: in expansion of macro '__is_constexpr'
      23 |   (__is_constexpr(x) && __is_constexpr(y))
         |                         ^~~~~~~~~~~~~~
   include/linux/minmax.h:26:25: note: in expansion of macro '__no_side_effects'
      26 |   (__typecheck(x, y) && __no_side_effects(x, y))
         |                         ^~~~~~~~~~~~~~~~~
   include/linux/minmax.h:36:24: note: in expansion of macro '__safe_cmp'
      36 |  __builtin_choose_expr(__safe_cmp(x, y), \
         |                        ^~~~~~~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
>> drivers/nvdimm/btt.c:1159:26: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                          ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:66:6: note: in expansion of macro '__bvec_iter_bvec'
      66 |      __bvec_iter_bvec((bvec), (iter))->bv_len - (iter).bi_bvec_done)
         |      ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
         |                           ^
   include/linux/minmax.h:104:27: note: in expansion of macro '__careful_cmp'
     104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
         |                           ^~~~~~~~~~~~~
   include/linux/bvec.h:86:2: note: in expansion of macro 'min_t'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |  ^~~~~
   include/linux/minmax.h:37:3: note: in expansion of macro '__cmp'
      37 |   __cmp(x, y, op), \
         |   ^~~~~
   include/linux/minmax.h:45:19: note: in expansion of macro '__careful_cmp'
      45 | #define min(x, y) __careful_cmp(x, y, <)
         |                   ^~~~~~~~~~~~~
   include/linux/bvec.h:65:2: note: in expansion of macro 'min'
      65 |  min((iter).bi_size,     \
         |  ^~~
   include/linux/bvec.h:86:18: note: in expansion of macro 'mp_bvec_iter_len'
      86 |  min_t(unsigned, mp_bvec_iter_len((bvec), (iter)),  \
         |                  ^~~~~~~~~~~~~~~~
   include/linux/bvec.h:96:13: note: in expansion of macro 'bvec_iter_len'
      96 |  .bv_len  = bvec_iter_len((bvec), (iter)), \
         |             ^~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:8: note: in expansion of macro 'bvec_iter_bvec'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |        ^~~~~~~~~~~~~~
   drivers/nvdimm/btt.c:1159:40: error: invalid use of undefined type 'struct bio_integrity_payload'
    1159 |   bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
         |                                        ^~
   include/linux/minmax.h:28:27: note: in definition of macro '__cmp'
      28 | #define __cmp(x, y, op) ((x) op (y) ? (x) : (y))
..


vim +1159 drivers/nvdimm/btt.c

5212e11fde4d40 Vishal Verma    2015-06-25  1140  
41cd8b70c37ace Vishal Verma    2015-06-25  1141  #ifdef CONFIG_BLK_DEV_INTEGRITY
41cd8b70c37ace Vishal Verma    2015-06-25  1142  static int btt_rw_integrity(struct btt *btt, struct bio_integrity_payload *bip,
41cd8b70c37ace Vishal Verma    2015-06-25  1143  			struct arena_info *arena, u32 postmap, int rw)
41cd8b70c37ace Vishal Verma    2015-06-25  1144  {
41cd8b70c37ace Vishal Verma    2015-06-25  1145  	unsigned int len = btt_meta_size(btt);
41cd8b70c37ace Vishal Verma    2015-06-25  1146  	u64 meta_nsoff;
41cd8b70c37ace Vishal Verma    2015-06-25  1147  	int ret = 0;
41cd8b70c37ace Vishal Verma    2015-06-25  1148  
41cd8b70c37ace Vishal Verma    2015-06-25  1149  	if (bip == NULL)
41cd8b70c37ace Vishal Verma    2015-06-25  1150  		return 0;
41cd8b70c37ace Vishal Verma    2015-06-25  1151  
41cd8b70c37ace Vishal Verma    2015-06-25  1152  	meta_nsoff = to_namespace_offset(arena, postmap) + btt->sector_size;
41cd8b70c37ace Vishal Verma    2015-06-25  1153  
41cd8b70c37ace Vishal Verma    2015-06-25  1154  	while (len) {
41cd8b70c37ace Vishal Verma    2015-06-25  1155  		unsigned int cur_len;
41cd8b70c37ace Vishal Verma    2015-06-25  1156  		struct bio_vec bv;
41cd8b70c37ace Vishal Verma    2015-06-25  1157  		void *mem;
41cd8b70c37ace Vishal Verma    2015-06-25  1158  
41cd8b70c37ace Vishal Verma    2015-06-25 @1159  		bv = bvec_iter_bvec(bip->bip_vec, bip->bip_iter);
41cd8b70c37ace Vishal Verma    2015-06-25  1160  		/*
41cd8b70c37ace Vishal Verma    2015-06-25  1161  		 * The 'bv' obtained from bvec_iter_bvec has its .bv_len and
41cd8b70c37ace Vishal Verma    2015-06-25  1162  		 * .bv_offset already adjusted for iter->bi_bvec_done, and we
41cd8b70c37ace Vishal Verma    2015-06-25  1163  		 * can use those directly
41cd8b70c37ace Vishal Verma    2015-06-25  1164  		 */
41cd8b70c37ace Vishal Verma    2015-06-25  1165  
41cd8b70c37ace Vishal Verma    2015-06-25  1166  		cur_len = min(len, bv.bv_len);
41cd8b70c37ace Vishal Verma    2015-06-25  1167  		mem = kmap_atomic(bv.bv_page);
41cd8b70c37ace Vishal Verma    2015-06-25  1168  		if (rw)
41cd8b70c37ace Vishal Verma    2015-06-25  1169  			ret = arena_write_bytes(arena, meta_nsoff,
3ae3d67ba705c7 Vishal Verma    2017-05-10  1170  					mem + bv.bv_offset, cur_len,
3ae3d67ba705c7 Vishal Verma    2017-05-10  1171  					NVDIMM_IO_ATOMIC);
41cd8b70c37ace Vishal Verma    2015-06-25  1172  		else
41cd8b70c37ace Vishal Verma    2015-06-25  1173  			ret = arena_read_bytes(arena, meta_nsoff,
3ae3d67ba705c7 Vishal Verma    2017-05-10  1174  					mem + bv.bv_offset, cur_len,
3ae3d67ba705c7 Vishal Verma    2017-05-10  1175  					NVDIMM_IO_ATOMIC);
41cd8b70c37ace Vishal Verma    2015-06-25  1176  
41cd8b70c37ace Vishal Verma    2015-06-25  1177  		kunmap_atomic(mem);
41cd8b70c37ace Vishal Verma    2015-06-25  1178  		if (ret)
41cd8b70c37ace Vishal Verma    2015-06-25  1179  			return ret;
41cd8b70c37ace Vishal Verma    2015-06-25  1180  
41cd8b70c37ace Vishal Verma    2015-06-25  1181  		len -= cur_len;
41cd8b70c37ace Vishal Verma    2015-06-25  1182  		meta_nsoff += cur_len;
b1fb2c52b2d85f Dmitry Monakhov 2017-06-29  1183  		if (!bvec_iter_advance(bip->bip_vec, &bip->bip_iter, cur_len))
b1fb2c52b2d85f Dmitry Monakhov 2017-06-29  1184  			return -EIO;
41cd8b70c37ace Vishal Verma    2015-06-25  1185  	}
41cd8b70c37ace Vishal Verma    2015-06-25  1186  
41cd8b70c37ace Vishal Verma    2015-06-25  1187  	return ret;
41cd8b70c37ace Vishal Verma    2015-06-25  1188  }
41cd8b70c37ace Vishal Verma    2015-06-25  1189  

:::::: The code at line 1159 was first introduced by commit
:::::: 41cd8b70c37ace40077c8d6ec0b74b983178c192 libnvdimm, btt: add support for blk integrity

:::::: TO: Vishal Verma <vishal.l.verma@...el.com>
:::::: CC: Dan Williams <dan.j.williams@...el.com>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

Download attachment ".config.gz" of type "application/gzip" (38059 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ