drivers/md/dm-vdo/int-map.c:87: error: Cannot parse struct or union!

From: kernel test robot
Date: Sun Jul 14 2024 - 05:01:21 EST


Hi Mike,

First bad commit (maybe != root cause):

tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 4d145e3f830ba2c2745b42bfba5c2f8fcb8d078a
commit: f36b1d3ba533d21b5b793623f05761b0297d114e dm vdo: use a proper Makefile for dm-vdo
date: 5 months ago
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20240714/202407141607.M3E2XQ0Z-lkp@xxxxxxxxx/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project a0c6b8aef853eedaa0980f07c0a502a5a8a9740e)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240714/202407141607.M3E2XQ0Z-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202407141607.M3E2XQ0Z-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> drivers/md/dm-vdo/int-map.c:87: error: Cannot parse struct or union!
drivers/md/dm-vdo/int-map.c:105: warning: Function parameter or struct member 'bucket_count' not described in 'int_map'
drivers/md/dm-vdo/int-map.c:330: warning: Function parameter or struct member '__always_unused' not described in 'search_hop_list'
drivers/md/dm-vdo/int-map.c:330: warning: Excess function parameter 'map' description in 'search_hop_list'
drivers/md/dm-vdo/int-map.c:461: warning: Function parameter or struct member '__always_unused' not described in 'move_empty_bucket'
drivers/md/dm-vdo/int-map.c:461: warning: Excess function parameter 'map' description in 'move_empty_bucket'


vim +87 drivers/md/dm-vdo/int-map.c

cc46b9554b3f6d Matthew Sakai 2023-11-16 66
cc46b9554b3f6d Matthew Sakai 2023-11-16 67 /**
cc46b9554b3f6d Matthew Sakai 2023-11-16 68 * struct bucket - hash bucket
cc46b9554b3f6d Matthew Sakai 2023-11-16 69 *
cc46b9554b3f6d Matthew Sakai 2023-11-16 70 * Buckets are packed together to reduce memory usage and improve cache efficiency. It would be
cc46b9554b3f6d Matthew Sakai 2023-11-16 71 * tempting to encode the hop offsets separately and maintain alignment of key/value pairs, but
cc46b9554b3f6d Matthew Sakai 2023-11-16 72 * it's crucial to keep the hop fields near the buckets that they use them so they'll tend to share
cc46b9554b3f6d Matthew Sakai 2023-11-16 73 * cache lines.
cc46b9554b3f6d Matthew Sakai 2023-11-16 74 */
cc46b9554b3f6d Matthew Sakai 2023-11-16 75 struct __packed bucket {
cc46b9554b3f6d Matthew Sakai 2023-11-16 76 /**
cc46b9554b3f6d Matthew Sakai 2023-11-16 77 * @first_hop: The biased offset of the first entry in the hop list of the neighborhood
cc46b9554b3f6d Matthew Sakai 2023-11-16 78 * that hashes to this bucket.
cc46b9554b3f6d Matthew Sakai 2023-11-16 79 */
cc46b9554b3f6d Matthew Sakai 2023-11-16 80 u8 first_hop;
cc46b9554b3f6d Matthew Sakai 2023-11-16 81 /** @next_hop: The biased offset of the next bucket in the hop list. */
cc46b9554b3f6d Matthew Sakai 2023-11-16 82 u8 next_hop;
cc46b9554b3f6d Matthew Sakai 2023-11-16 83 /** @key: The key stored in this bucket. */
cc46b9554b3f6d Matthew Sakai 2023-11-16 84 u64 key;
cc46b9554b3f6d Matthew Sakai 2023-11-16 85 /** @value: The value stored in this bucket (NULL if empty). */
cc46b9554b3f6d Matthew Sakai 2023-11-16 86 void *value;
cc46b9554b3f6d Matthew Sakai 2023-11-16 @87 };
cc46b9554b3f6d Matthew Sakai 2023-11-16 88

:::::: The code at line 87 was first introduced by commit
:::::: cc46b9554b3f6d2f09b1111386b2706e5b4f56c8 dm vdo: add basic hash map data structures

:::::: TO: Matthew Sakai <msakai@xxxxxxxxxx>
:::::: CC: Mike Snitzer <snitzer@xxxxxxxxxx>

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