All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
	"Gustavo A. R. Silva" <gustavo@embeddedor.com>,
	LKML <linux-kernel@vger.kernel.org>
Subject: [gustavoars:testing/wfamnae-next20260302 13/13] drivers/md/bcache/btree.c:120:19: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *'
Date: Wed, 04 Mar 2026 20:51:00 +0800	[thread overview]
Message-ID: <202603042032.gn5QBN3e-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux.git testing/wfamnae-next20260302
head:   edaeb7365fb0decc352db789ed93ef51bc8ebafa
commit: edaeb7365fb0decc352db789ed93ef51bc8ebafa [13/13] bcachefs: Avoid dozens of -Wflex-array-member-not-at-end warnings
config: sparc64-allmodconfig (https://download.01.org/0day-ci/archive/20260304/202603042032.gn5QBN3e-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 9a109fbb6e184ec9bcce10615949f598f4c974a9)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260304/202603042032.gn5QBN3e-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603042032.gn5QBN3e-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/md/bcache/btree.c:120:19: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     120 |         if (b->written < btree_blocks(b))
         |                          ^~~~~~~~~~~~~~~
   drivers/md/bcache/bcache.h:770:28: note: expanded from macro 'btree_blocks'
     770 |         ((unsigned int) (KEY_SIZE(&b->key) >> (b)->c->block_bits))
         |                                   ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:171:20: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     171 |              b->written < btree_blocks(b) && i->seq == b->keys.set[0].data->seq;
         |                           ^~~~~~~~~~~~~~~
   drivers/md/bcache/bcache.h:770:28: note: expanded from macro 'btree_blocks'
     770 |         ((unsigned int) (KEY_SIZE(&b->key) >> (b)->c->block_bits))
         |                                   ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:179:7: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     179 |                     btree_blocks(b))
         |                     ^~~~~~~~~~~~~~~
   drivers/md/bcache/bcache.h:770:28: note: expanded from macro 'btree_blocks'
     770 |         ((unsigned int) (KEY_SIZE(&b->key) >> (b)->c->block_bits))
         |                                   ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:209:50: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     209 |              bset_sector_offset(&b->keys, i) < KEY_SIZE(&b->key);
         |                                                         ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:219:15: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     219 |             bkey_cmp(&b->key, &b->keys.set[0].end) < 0)
         |                      ^~~~~~~
   drivers/md/bcache/bset.h:425:60: note: passing argument to parameter 'l' here
     425 | static __always_inline int64_t bkey_cmp(const struct bkey *l,
         |                                                            ^
   drivers/md/bcache/btree.c:222:19: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     222 |         if (b->written < btree_blocks(b))
         |                          ^~~~~~~~~~~~~~~
   drivers/md/bcache/bcache.h:770:28: note: expanded from macro 'btree_blocks'
     770 |         ((unsigned int) (KEY_SIZE(&b->key) >> (b)->c->block_bits))
         |                                   ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:231:33: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     231 |                             err, PTR_BUCKET_NR(b->c, &b->key, 0),
         |                                                      ^~~~~~~
   drivers/md/bcache/bcache.h:821:27: note: passing argument to parameter 'k' here
     821 |                                    const struct bkey *k,
         |                                                       ^
   drivers/md/bcache/btree.c:254:34: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     254 |         bio->bi_iter.bi_size = KEY_SIZE(&b->key) << 9;
         |                                         ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
>> drivers/md/bcache/btree.c:261:29: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'struct bkey *' [-Wincompatible-pointer-types]
     261 |         bch_submit_bbio(bio, b->c, &b->key, 0);
         |                                    ^~~~~~~
   drivers/md/bcache/bcache.h:985:21: note: passing argument to parameter 'k' here
     985 |                      struct bkey *k, unsigned int ptr);
         |                                   ^
   drivers/md/bcache/btree.c:278:28: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     278 |                             PTR_BUCKET_NR(b->c, &b->key, 0));
         |                                                 ^~~~~~~
   drivers/md/bcache/bcache.h:821:27: note: passing argument to parameter 'k' here
     821 |                                    const struct bkey *k,
         |                                                       ^
   drivers/md/bcache/btree.c:371:20: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     371 |         bkey_copy(&k.key, &b->key);
         |                           ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:121:70: note: expanded from macro 'bkey_copy'
     121 | #define bkey_copy(_dest, _src)  unsafe_memcpy(_dest, _src, bkey_bytes(_src), \
         |                                                                       ^~~~
   include/linux/string.h:390:19: note: expanded from macro 'unsafe_memcpy'
     390 |         memcpy(dst, src, bytes)
         |                          ^~~~~
   arch/sparc/include/asm/string.h:15:48: note: expanded from macro 'memcpy'
      15 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
         |                                                ^
   drivers/md/bcache/bcache_ondisk.h:116:59: note: passing argument to parameter 'k' here
     116 | static inline unsigned long bkey_bytes(const struct bkey *k)
         |                                                           ^
   drivers/md/bcache/btree.c:412:23: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     412 |         BUG_ON(b->written >= btree_blocks(b));
         |         ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~
   drivers/md/bcache/bcache.h:770:28: note: expanded from macro 'btree_blocks'
     770 |         ((unsigned int) (KEY_SIZE(&b->key) >> (b)->c->block_bits))
         |                                   ^
   include/asm-generic/bug.h:81:45: note: expanded from macro 'BUG_ON'
      81 | #define BUG_ON(condition) do { if (unlikely(condition)) BUG(); } while (0)
         |                                    ~~~~~~~~~^~~~~~~~~~
   include/linux/compiler.h:77:42: note: expanded from macro 'unlikely'
      77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
         |                                             ^
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
>> drivers/md/bcache/btree.c:569:50: error: incompatible pointer types passing 'const struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     569 |         return -cmp_int(a->level, b->level) ?: bkey_cmp(&a->key, &b->key);
         |                                                         ^~~~~~~
   drivers/md/bcache/bset.h:425:60: note: passing argument to parameter 'l' here
     425 | static __always_inline int64_t bkey_cmp(const struct bkey *l,
         |                                                            ^
   drivers/md/bcache/btree.c:569:59: error: incompatible pointer types passing 'const struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     569 |         return -cmp_int(a->level, b->level) ?: bkey_cmp(&a->key, &b->key);
         |                                                                  ^~~~~~~
   drivers/md/bcache/bset.h:426:25: note: passing argument to parameter 'r' here
     426 |                                         const struct bkey *r)
         |                                                            ^
   drivers/md/bcache/btree.c:577:19: error: incompatible pointer types passing 'const struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     577 |                KEY_INODE(&b->key), KEY_OFFSET(&b->key));
         |                          ^~~~~~~
   include/linux/printk.h:511:60: note: expanded from macro 'printk'
     511 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
         |                                                            ^~~~~~~~~~~
   include/linux/printk.h:483:19: note: expanded from macro 'printk_index_wrap'
     483 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:64:1: note: passing argument to parameter 'k' here
      64 | KEY_FIELD(KEY_INODE,    high, 0,  20)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/btree.c:577:40: error: incompatible pointer types passing 'const struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     577 |                KEY_INODE(&b->key), KEY_OFFSET(&b->key));
         |                                               ^~~~~~~
   include/linux/printk.h:511:60: note: expanded from macro 'printk'
     511 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
         |                                                            ^~~~~~~~~~~
   include/linux/printk.h:483:19: note: expanded from macro 'printk_index_wrap'
     483 |                 _p_func(_fmt, ##__VA_ARGS__);                           \
         |                                 ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:68:51: note: passing argument to parameter 'k' here
      68 | static inline __u64 KEY_OFFSET(const struct bkey *k)
         |                                                   ^
   drivers/md/bcache/btree.c:859:19: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     859 |                 if (PTR_HASH(c, &b->key) == PTR_HASH(c, k))
         |                                 ^~~~~~~
   drivers/md/bcache/btree.c:100:45: note: expanded from macro 'PTR_HASH'
     100 |         (((k)->ptr[0] >> c->bucket_bits) | PTR_GEN(k, 0))
         |                                                    ^
   drivers/md/bcache/bcache_ondisk.h:102:1: note: passing argument to parameter 'k' here
     102 | PTR_FIELD(PTR_GEN,                      0,  8)
         | ^
   drivers/md/bcache/bcache_ondisk.h:45:45: note: expanded from macro 'PTR_FIELD'
      45 | static inline __u64 name(const struct bkey *k, unsigned int i)          \
         |                                             ^
   drivers/md/bcache/btree.c:1035:19: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
    1035 |                 if (PTR_HASH(c, &b->key) != PTR_HASH(c, k)) {
         |                                 ^~~~~~~
   drivers/md/bcache/btree.c:100:45: note: expanded from macro 'PTR_HASH'
     100 |         (((k)->ptr[0] >> c->bucket_bits) | PTR_GEN(k, 0))
         |                                                    ^
   drivers/md/bcache/bcache_ondisk.h:102:1: note: passing argument to parameter 'k' here
     102 | PTR_FIELD(PTR_GEN,                      0,  8)
         | ^
   drivers/md/bcache/bcache_ondisk.h:45:45: note: expanded from macro 'PTR_FIELD'
      45 | static inline __u64 name(const struct bkey *k, unsigned int i)          \
         |                                             ^
   drivers/md/bcache/btree.c:1110:24: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'struct bkey *' [-Wincompatible-pointer-types]
    1110 |         bch_bucket_free(b->c, &b->key);
         |                               ^~~~~~~
   drivers/md/bcache/bcache.h:994:56: note: passing argument to parameter 'k' here
     994 | void bch_bucket_free(struct cache_set *c, struct bkey *k);
         |                                                        ^
   fatal error: too many errors emitted, stopping now [-ferror-limit=]
   20 errors generated.
--
>> drivers/md/bcache/debug.c:47:21: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      47 |         bkey_copy(&v->key, &b->key);
         |                            ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:121:70: note: expanded from macro 'bkey_copy'
     121 | #define bkey_copy(_dest, _src)  unsafe_memcpy(_dest, _src, bkey_bytes(_src), \
         |                                                                       ^~~~
   include/linux/string.h:390:19: note: expanded from macro 'unsafe_memcpy'
     390 |         memcpy(dst, src, bytes)
         |                          ^~~~~
   arch/sparc/include/asm/string.h:15:48: note: expanded from macro 'memcpy'
      15 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
         |                                                ^
   drivers/md/bcache/bcache_ondisk.h:116:59: note: passing argument to parameter 'k' here
     116 | static inline unsigned long bkey_bytes(const struct bkey *k)
         |                                                           ^
   drivers/md/bcache/debug.c:54:38: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      54 |         bio->bi_iter.bi_sector  = PTR_OFFSET(&b->key, 0);
         |                                              ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:101:1: note: passing argument to parameter 'k' here
     101 | PTR_FIELD(PTR_OFFSET,                   8,  43)
         | ^
   drivers/md/bcache/bcache_ondisk.h:45:45: note: expanded from macro 'PTR_FIELD'
      45 | static inline __u64 name(const struct bkey *k, unsigned int i)          \
         |                                             ^
   drivers/md/bcache/debug.c:55:34: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      55 |         bio->bi_iter.bi_size    = KEY_SIZE(&v->key) << 9;
         |                                            ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/debug.c:62:34: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      62 |         memcpy(ondisk, sorted, KEY_SIZE(&v->key) << 9);
         |                                         ^~~~~~~
   arch/sparc/include/asm/string.h:15:48: note: expanded from macro 'memcpy'
      15 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
         |                                                ^
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/debug.c:83:3: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      83 |                 for_each_written_bset(b, ondisk, i) {
         |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/md/bcache/debug.c:26:49: note: expanded from macro 'for_each_written_bset'
      26 |              (void *) i < (void *) (start) + (KEY_SIZE(&b->key) << 9) &&\
         |                                                        ^~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/debug.c:198:42: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     198 |                 bch_extent_to_text(kbuf, sizeof(kbuf), &w->key);
         |                                                        ^~~~~~~
   drivers/md/bcache/extents.h:11:68: note: passing argument to parameter 'k' here
      11 | void bch_extent_to_text(char *buf, size_t size, const struct bkey *k);
         |                                                                    ^
   6 errors generated.
--
>> drivers/md/bcache/movinggc.c:53:34: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'struct bkey *' [-Wincompatible-pointer-types]
      53 |                 trace_bcache_gc_copy_collision(&io->w->key);
         |                                                ^~~~~~~~~~~
   include/trace/events/bcache.h:328:24: note: passing argument to parameter 'k' here
     328 |         TP_PROTO(struct bkey *k),
         |                               ^
>> drivers/md/bcache/movinggc.c:83:26: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      83 |                  DIV_ROUND_UP(KEY_SIZE(&io->w->key), PAGE_SECTORS), 0);
         |                                        ^~~~~~~~~~~
   include/linux/math.h:49:22: note: expanded from macro 'DIV_ROUND_UP'
      49 | #define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
         |                      ^
   include/uapi/linux/const.h:51:40: note: expanded from macro '__KERNEL_DIV_ROUND_UP'
      51 | #define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
         |                                        ^
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/movinggc.c:87:34: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
      87 |         bio->bi_iter.bi_size    = KEY_SIZE(&io->w->key) << 9;
         |                                            ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/movinggc.c:100:45: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     100 |                 io->bio.bio.bi_iter.bi_sector = KEY_START(&io->w->key);
         |                                                           ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:95:36: note: expanded from macro 'KEY_START'
      95 | #define KEY_START(k)                    (KEY_OFFSET(k) - KEY_SIZE(k))
         |                                                     ^
   drivers/md/bcache/bcache_ondisk.h:68:51: note: passing argument to parameter 'k' here
      68 | static inline __u64 KEY_OFFSET(const struct bkey *k)
         |                                                   ^
   drivers/md/bcache/movinggc.c:100:45: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     100 |                 io->bio.bio.bi_iter.bi_sector = KEY_START(&io->w->key);
         |                                                           ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:95:50: note: expanded from macro 'KEY_START'
      95 | #define KEY_START(k)                    (KEY_OFFSET(k) - KEY_SIZE(k))
         |                                                                   ^
   drivers/md/bcache/bcache_ondisk.h:63:1: note: passing argument to parameter 'k' here
      63 | KEY_FIELD(KEY_SIZE,     high, 20, KEY_SIZE_BITS)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/movinggc.c:104:30: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     104 |                 op->writeback           = KEY_DIRTY(&io->w->key);
         |                                                     ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:61:1: note: passing argument to parameter 'k' here
      61 | KEY_FIELD(KEY_DIRTY,    high, 36, 1)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/movinggc.c:105:24: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     105 |                 op->csum                = KEY_CSUM(&io->w->key);
         |                                                    ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:59:1: note: passing argument to parameter 'k' here
      59 | KEY_FIELD(KEY_CSUM,     high, 56, 2)
         | ^
   drivers/md/bcache/bcache_ondisk.h:42:2: note: expanded from macro 'KEY_FIELD'
      42 |         BITMASK(name, struct bkey, field, offset, size)
         |         ^
   drivers/md/bcache/bcache_ondisk.h:12:38: note: expanded from macro 'BITMASK'
      12 | static inline __u64 name(const type *k)                         \
         |                                      ^
   drivers/md/bcache/movinggc.c:107:31: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     107 |                 bkey_copy(&op->replace_key, &io->w->key);
         |                                             ^~~~~~~~~~~
   drivers/md/bcache/bcache_ondisk.h:121:70: note: expanded from macro 'bkey_copy'
     121 | #define bkey_copy(_dest, _src)  unsafe_memcpy(_dest, _src, bkey_bytes(_src), \
         |                                                                       ^~~~
   include/linux/string.h:390:19: note: expanded from macro 'unsafe_memcpy'
     390 |         memcpy(dst, src, bytes)
         |                          ^~~~~
   arch/sparc/include/asm/string.h:15:48: note: expanded from macro 'memcpy'
      15 | #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
         |                                                ^
   drivers/md/bcache/bcache_ondisk.h:116:59: note: passing argument to parameter 'k' here
     116 | static inline unsigned long bkey_bytes(const struct bkey *k)
         |                                                           ^
   drivers/md/bcache/movinggc.c:121:33: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'struct bkey *' [-Wincompatible-pointer-types]
     121 |         bch_submit_bbio(bio, io->op.c, &io->w->key, 0);
         |                                        ^~~~~~~~~~~
   drivers/md/bcache/bcache.h:985:21: note: passing argument to parameter 'k' here
     985 |                      struct bkey *k, unsigned int ptr);
         |                                   ^
   drivers/md/bcache/movinggc.c:143:20: error: incompatible pointer types passing 'struct bkey_fixed *' to parameter of type 'const struct bkey *' [-Wincompatible-pointer-types]
     143 |                 if (ptr_stale(c, &w->key, 0)) {
..


vim +120 drivers/md/bcache/btree.c

a85e968e66a175 Kent Overstreet    2013-12-20  111  
2a285686c10981 Kent Overstreet    2014-03-04  112  static void bch_btree_init_next(struct btree *b)
2a285686c10981 Kent Overstreet    2014-03-04  113  {
2a285686c10981 Kent Overstreet    2014-03-04  114  	/* If not a leaf node, always sort */
2a285686c10981 Kent Overstreet    2014-03-04  115  	if (b->level && b->keys.nsets)
2a285686c10981 Kent Overstreet    2014-03-04  116  		bch_btree_sort(&b->keys, &b->c->sort);
2a285686c10981 Kent Overstreet    2014-03-04  117  	else
2a285686c10981 Kent Overstreet    2014-03-04  118  		bch_btree_sort_lazy(&b->keys, &b->c->sort);
2a285686c10981 Kent Overstreet    2014-03-04  119  
2a285686c10981 Kent Overstreet    2014-03-04 @120  	if (b->written < btree_blocks(b))
2a285686c10981 Kent Overstreet    2014-03-04  121  		bch_bset_init_next(&b->keys, write_block(b),
4a784266c6a75f Coly Li            2020-10-01  122  				   bset_magic(&b->c->cache->sb));
2a285686c10981 Kent Overstreet    2014-03-04  123  
2a285686c10981 Kent Overstreet    2014-03-04  124  }
2a285686c10981 Kent Overstreet    2014-03-04  125  
cafe563591446c Kent Overstreet    2013-03-23  126  /* Btree key manipulation */
cafe563591446c Kent Overstreet    2013-03-23  127  
3a3b6a4e075188 Kent Overstreet    2013-07-24  128  void bkey_put(struct cache_set *c, struct bkey *k)
e7c590eb63509c Kent Overstreet    2013-09-10  129  {
6f10f7d1b02b1b Coly Li            2018-08-11  130  	unsigned int i;
e7c590eb63509c Kent Overstreet    2013-09-10  131  
e7c590eb63509c Kent Overstreet    2013-09-10  132  	for (i = 0; i < KEY_PTRS(k); i++)
e7c590eb63509c Kent Overstreet    2013-09-10  133  		if (ptr_available(c, k, i))
e7c590eb63509c Kent Overstreet    2013-09-10  134  			atomic_dec_bug(&PTR_BUCKET(c, k, i)->pin);
e7c590eb63509c Kent Overstreet    2013-09-10  135  }
e7c590eb63509c Kent Overstreet    2013-09-10  136  
cafe563591446c Kent Overstreet    2013-03-23  137  /* Btree IO */
cafe563591446c Kent Overstreet    2013-03-23  138  
cafe563591446c Kent Overstreet    2013-03-23  139  static uint64_t btree_csum_set(struct btree *b, struct bset *i)
cafe563591446c Kent Overstreet    2013-03-23  140  {
cafe563591446c Kent Overstreet    2013-03-23  141  	uint64_t crc = b->key.ptr[0];
fafff81cead781 Kent Overstreet    2013-12-17  142  	void *data = (void *) i + 8, *end = bset_bkey_last(i);
cafe563591446c Kent Overstreet    2013-03-23  143  
39fa7a95552cc8 Christoph Hellwig  2021-10-20  144  	crc = crc64_be(crc, data, end - data);
c19ed23a0b1848 Kent Overstreet    2013-03-26  145  	return crc ^ 0xffffffffffffffffULL;
cafe563591446c Kent Overstreet    2013-03-23  146  }
cafe563591446c Kent Overstreet    2013-03-23  147  
78b77bf8b20431 Kent Overstreet    2013-12-17  148  void bch_btree_node_read_done(struct btree *b)
cafe563591446c Kent Overstreet    2013-03-23  149  {
cafe563591446c Kent Overstreet    2013-03-23  150  	const char *err = "bad btree header";
ee811287c9f241 Kent Overstreet    2013-12-17  151  	struct bset *i = btree_bset_first(b);
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  152  	struct btree_iter *iter;
cafe563591446c Kent Overstreet    2013-03-23  153  
d2f96f487f471b Shenghui Wang      2018-12-13  154  	/*
d2f96f487f471b Shenghui Wang      2018-12-13  155  	 * c->fill_iter can allocate an iterator with more memory space
d2f96f487f471b Shenghui Wang      2018-12-13  156  	 * than static MAX_BSETS.
d2f96f487f471b Shenghui Wang      2018-12-13  157  	 * See the comment arount cache_set->fill_iter.
d2f96f487f471b Shenghui Wang      2018-12-13  158  	 */
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  159  	iter = mempool_alloc(&b->c->fill_iter, GFP_NOIO);
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  160  	iter->size = b->c->cache->sb.bucket_size / b->c->cache->sb.block_size;
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  161  	iter->used = 0;
cafe563591446c Kent Overstreet    2013-03-23  162  
280481d06c8a68 Kent Overstreet    2013-10-24  163  #ifdef CONFIG_BCACHE_DEBUG
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  164  	iter->b = &b->keys;
280481d06c8a68 Kent Overstreet    2013-10-24  165  #endif
280481d06c8a68 Kent Overstreet    2013-10-24  166  
5794351146199b Kent Overstreet    2013-04-25  167  	if (!i->seq)
cafe563591446c Kent Overstreet    2013-03-23  168  		goto err;
cafe563591446c Kent Overstreet    2013-03-23  169  
cafe563591446c Kent Overstreet    2013-03-23  170  	for (;
a85e968e66a175 Kent Overstreet    2013-12-20  171  	     b->written < btree_blocks(b) && i->seq == b->keys.set[0].data->seq;
cafe563591446c Kent Overstreet    2013-03-23  172  	     i = write_block(b)) {
cafe563591446c Kent Overstreet    2013-03-23  173  		err = "unsupported bset version";
cafe563591446c Kent Overstreet    2013-03-23  174  		if (i->version > BCACHE_BSET_VERSION)
cafe563591446c Kent Overstreet    2013-03-23  175  			goto err;
cafe563591446c Kent Overstreet    2013-03-23  176  
cafe563591446c Kent Overstreet    2013-03-23  177  		err = "bad btree header";
4e1ebae3ee4e0c Coly Li            2020-10-01  178  		if (b->written + set_blocks(i, block_bytes(b->c->cache)) >
ee811287c9f241 Kent Overstreet    2013-12-17  179  		    btree_blocks(b))
cafe563591446c Kent Overstreet    2013-03-23  180  			goto err;
cafe563591446c Kent Overstreet    2013-03-23  181  
cafe563591446c Kent Overstreet    2013-03-23  182  		err = "bad magic";
4a784266c6a75f Coly Li            2020-10-01  183  		if (i->magic != bset_magic(&b->c->cache->sb))
cafe563591446c Kent Overstreet    2013-03-23  184  			goto err;
cafe563591446c Kent Overstreet    2013-03-23  185  
cafe563591446c Kent Overstreet    2013-03-23  186  		err = "bad checksum";
cafe563591446c Kent Overstreet    2013-03-23  187  		switch (i->version) {
cafe563591446c Kent Overstreet    2013-03-23  188  		case 0:
cafe563591446c Kent Overstreet    2013-03-23  189  			if (i->csum != csum_set(i))
cafe563591446c Kent Overstreet    2013-03-23  190  				goto err;
cafe563591446c Kent Overstreet    2013-03-23  191  			break;
cafe563591446c Kent Overstreet    2013-03-23  192  		case BCACHE_BSET_VERSION:
cafe563591446c Kent Overstreet    2013-03-23  193  			if (i->csum != btree_csum_set(b, i))
cafe563591446c Kent Overstreet    2013-03-23  194  				goto err;
cafe563591446c Kent Overstreet    2013-03-23  195  			break;
cafe563591446c Kent Overstreet    2013-03-23  196  		}
cafe563591446c Kent Overstreet    2013-03-23  197  
cafe563591446c Kent Overstreet    2013-03-23  198  		err = "empty set";
a85e968e66a175 Kent Overstreet    2013-12-20  199  		if (i != b->keys.set[0].data && !i->keys)
cafe563591446c Kent Overstreet    2013-03-23  200  			goto err;
cafe563591446c Kent Overstreet    2013-03-23  201  
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  202  		bch_btree_iter_push(iter, i->start, bset_bkey_last(i));
cafe563591446c Kent Overstreet    2013-03-23  203  
4e1ebae3ee4e0c Coly Li            2020-10-01  204  		b->written += set_blocks(i, block_bytes(b->c->cache));
cafe563591446c Kent Overstreet    2013-03-23  205  	}
cafe563591446c Kent Overstreet    2013-03-23  206  
cafe563591446c Kent Overstreet    2013-03-23  207  	err = "corrupted btree";
cafe563591446c Kent Overstreet    2013-03-23  208  	for (i = write_block(b);
a85e968e66a175 Kent Overstreet    2013-12-20  209  	     bset_sector_offset(&b->keys, i) < KEY_SIZE(&b->key);
4e1ebae3ee4e0c Coly Li            2020-10-01  210  	     i = ((void *) i) + block_bytes(b->c->cache))
a85e968e66a175 Kent Overstreet    2013-12-20  211  		if (i->seq == b->keys.set[0].data->seq)
cafe563591446c Kent Overstreet    2013-03-23  212  			goto err;
cafe563591446c Kent Overstreet    2013-03-23  213  
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  214  	bch_btree_sort_and_fix_extents(&b->keys, iter, &b->c->sort);
cafe563591446c Kent Overstreet    2013-03-23  215  
a85e968e66a175 Kent Overstreet    2013-12-20  216  	i = b->keys.set[0].data;
cafe563591446c Kent Overstreet    2013-03-23  217  	err = "short btree key";
a85e968e66a175 Kent Overstreet    2013-12-20  218  	if (b->keys.set[0].size &&
a85e968e66a175 Kent Overstreet    2013-12-20  219  	    bkey_cmp(&b->key, &b->keys.set[0].end) < 0)
cafe563591446c Kent Overstreet    2013-03-23  220  		goto err;
cafe563591446c Kent Overstreet    2013-03-23  221  
cafe563591446c Kent Overstreet    2013-03-23  222  	if (b->written < btree_blocks(b))
a85e968e66a175 Kent Overstreet    2013-12-20  223  		bch_bset_init_next(&b->keys, write_block(b),
4a784266c6a75f Coly Li            2020-10-01  224  				   bset_magic(&b->c->cache->sb));
cafe563591446c Kent Overstreet    2013-03-23  225  out:
48fd7ebe00c1cd Kuan-Wei Chiu      2025-06-15  226  	mempool_free(iter, &b->c->fill_iter);
5794351146199b Kent Overstreet    2013-04-25  227  	return;
cafe563591446c Kent Overstreet    2013-03-23  228  err:
cafe563591446c Kent Overstreet    2013-03-23  229  	set_btree_node_io_error(b);
88b9f8c426f35e Kent Overstreet    2013-12-17  230  	bch_cache_set_error(b->c, "%s at bucket %zu, block %u, %u keys",
cafe563591446c Kent Overstreet    2013-03-23  231  			    err, PTR_BUCKET_NR(b->c, &b->key, 0),
88b9f8c426f35e Kent Overstreet    2013-12-17  232  			    bset_block_offset(b, i), i->keys);
cafe563591446c Kent Overstreet    2013-03-23  233  	goto out;
cafe563591446c Kent Overstreet    2013-03-23  234  }
cafe563591446c Kent Overstreet    2013-03-23  235  
4246a0b63bd8f5 Christoph Hellwig  2015-07-20  236  static void btree_node_read_endio(struct bio *bio)
5794351146199b Kent Overstreet    2013-04-25  237  {
5794351146199b Kent Overstreet    2013-04-25  238  	struct closure *cl = bio->bi_private;
1fae7cf05293d3 Coly Li            2018-08-11  239  
5794351146199b Kent Overstreet    2013-04-25  240  	closure_put(cl);
5794351146199b Kent Overstreet    2013-04-25  241  }
5794351146199b Kent Overstreet    2013-04-25  242  
78b77bf8b20431 Kent Overstreet    2013-12-17  243  static void bch_btree_node_read(struct btree *b)
cafe563591446c Kent Overstreet    2013-03-23  244  {
5794351146199b Kent Overstreet    2013-04-25  245  	uint64_t start_time = local_clock();
5794351146199b Kent Overstreet    2013-04-25  246  	struct closure cl;
5794351146199b Kent Overstreet    2013-04-25  247  	struct bio *bio;
cafe563591446c Kent Overstreet    2013-03-23  248  
c37511b863f36c Kent Overstreet    2013-04-26  249  	trace_bcache_btree_read(b);
c37511b863f36c Kent Overstreet    2013-04-26  250  
5794351146199b Kent Overstreet    2013-04-25  251  	closure_init_stack(&cl);
cafe563591446c Kent Overstreet    2013-03-23  252  
5794351146199b Kent Overstreet    2013-04-25  253  	bio = bch_bbio_alloc(b->c);
4f024f3797c43c Kent Overstreet    2013-10-11  254  	bio->bi_iter.bi_size = KEY_SIZE(&b->key) << 9;
5794351146199b Kent Overstreet    2013-04-25  255  	bio->bi_end_io	= btree_node_read_endio;
5794351146199b Kent Overstreet    2013-04-25  256  	bio->bi_private	= &cl;
70fd76140a6cb6 Christoph Hellwig  2016-11-01  257  	bio->bi_opf = REQ_OP_READ | REQ_META;
cafe563591446c Kent Overstreet    2013-03-23  258  
a85e968e66a175 Kent Overstreet    2013-12-20  259  	bch_bio_map(bio, b->keys.set[0].data);
cafe563591446c Kent Overstreet    2013-03-23  260  
5794351146199b Kent Overstreet    2013-04-25 @261  	bch_submit_bbio(bio, b->c, &b->key, 0);
5794351146199b Kent Overstreet    2013-04-25  262  	closure_sync(&cl);
cafe563591446c Kent Overstreet    2013-03-23  263  
4e4cbee93d5613 Christoph Hellwig  2017-06-03  264  	if (bio->bi_status)
5794351146199b Kent Overstreet    2013-04-25  265  		set_btree_node_io_error(b);
cafe563591446c Kent Overstreet    2013-03-23  266  
5794351146199b Kent Overstreet    2013-04-25  267  	bch_bbio_free(bio, b->c);
5794351146199b Kent Overstreet    2013-04-25  268  
5794351146199b Kent Overstreet    2013-04-25  269  	if (btree_node_io_error(b))
5794351146199b Kent Overstreet    2013-04-25  270  		goto err;
5794351146199b Kent Overstreet    2013-04-25  271  
5794351146199b Kent Overstreet    2013-04-25  272  	bch_btree_node_read_done(b);
5794351146199b Kent Overstreet    2013-04-25  273  	bch_time_stats_update(&b->c->btree_read_time, start_time);
5794351146199b Kent Overstreet    2013-04-25  274  
5794351146199b Kent Overstreet    2013-04-25  275  	return;
5794351146199b Kent Overstreet    2013-04-25  276  err:
61cbd250f867f9 Geert Uytterhoeven 2013-09-23  277  	bch_cache_set_error(b->c, "io error reading bucket %zu",
5794351146199b Kent Overstreet    2013-04-25  278  			    PTR_BUCKET_NR(b->c, &b->key, 0));
cafe563591446c Kent Overstreet    2013-03-23  279  }
cafe563591446c Kent Overstreet    2013-03-23  280  

:::::: The code at line 120 was first introduced by commit
:::::: 2a285686c109816ba71a00b9278262cf02648258 bcache: btree locking rework

:::::: TO: Kent Overstreet <kmo@daterainc.com>
:::::: CC: Kent Overstreet <kmo@daterainc.com>

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2026-03-04 12:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202603042032.gn5QBN3e-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=gustavo@embeddedor.com \
    --cc=gustavoars@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.