* [block:block-5.6 6/9] drivers/md/bcache/super.c:108:24: sparse: sparse: cast from restricted __le16
@ 2020-02-03 2:53 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2020-02-03 2:53 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 13604 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git block-5.6
head: 49d08d596e85f39ded48e85df362827cbab1f5ae
commit: 7c02b0055f774ed9afb6e1c7724f33bf148ffdc0 [6/9] bcache: explicity type cast in bset_bkey_last()
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-154-g1dc00f87-dirty
git checkout 7c02b0055f774ed9afb6e1c7724f33bf148ffdc0
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
>> drivers/md/bcache/super.c:108:24: sparse: sparse: cast from restricted __le16
drivers/md/bcache/super.c:108:14: sparse: sparse: restricted __le64 degrades to integer
drivers/md/bcache/super.c:235:21: sparse: sparse: cast from restricted __le16
drivers/md/bcache/super.c:235:19: sparse: sparse: incorrect type in assignment (different base types)
drivers/md/bcache/super.c:235:19: sparse: expected restricted __le64 [usertype] csum
drivers/md/bcache/super.c:235:19: sparse: got unsigned long long
drivers/md/bcache/super.c:572:33: sparse: sparse: incorrect type in assignment (different base types)
drivers/md/bcache/super.c:572:33: sparse: expected unsigned short [usertype] prio
drivers/md/bcache/super.c:572:33: sparse: got restricted __le16 [usertype]
drivers/md/bcache/super.c:640:27: sparse: sparse: cast to restricted __le16
drivers/md/bcache/super.c:742:32: sparse: sparse: incorrect type in assignment (different base types)
drivers/md/bcache/super.c:742:32: sparse: expected unsigned int [usertype] invalidated
drivers/md/bcache/super.c:742:32: sparse: got restricted __le32 [usertype]
drivers/md/bcache/super.c:1102:26: sparse: sparse: incorrect type in initializer (different base types)
drivers/md/bcache/super.c:1102:26: sparse: expected unsigned int [usertype] rtime
drivers/md/bcache/super.c:1102:26: sparse: got restricted __le32 [usertype]
drivers/md/bcache/super.c:1146:32: sparse: sparse: incorrect type in assignment (different base types)
drivers/md/bcache/super.c:1146:32: sparse: expected unsigned int [usertype] invalidated
drivers/md/bcache/super.c:1146:32: sparse: got restricted __le32 [usertype]
drivers/md/bcache/super.c:1496:36: sparse: sparse: incorrect type in assignment (different base types)
drivers/md/bcache/super.c:1496:36: sparse: expected unsigned int [usertype] last_reg
drivers/md/bcache/super.c:1496:36: sparse: got restricted __le32 [usertype]
vim +108 drivers/md/bcache/super.c
cafe563591446c Kent Overstreet 2013-03-23 60
cafe563591446c Kent Overstreet 2013-03-23 61 static const char *read_super(struct cache_sb *sb, struct block_device *bdev,
cfa0c56db9c087 Christoph Hellwig 2020-01-24 62 struct cache_sb_disk **res)
cafe563591446c Kent Overstreet 2013-03-23 63 {
cafe563591446c Kent Overstreet 2013-03-23 64 const char *err;
a702a692cd7559 Christoph Hellwig 2020-01-24 65 struct cache_sb_disk *s;
6321bef028de43 Christoph Hellwig 2020-01-24 66 struct page *page;
6f10f7d1b02b1b Coly Li 2018-08-11 67 unsigned int i;
cafe563591446c Kent Overstreet 2013-03-23 68
6321bef028de43 Christoph Hellwig 2020-01-24 69 page = read_cache_page_gfp(bdev->bd_inode->i_mapping,
6321bef028de43 Christoph Hellwig 2020-01-24 70 SB_OFFSET >> PAGE_SHIFT, GFP_KERNEL);
6321bef028de43 Christoph Hellwig 2020-01-24 71 if (IS_ERR(page))
cafe563591446c Kent Overstreet 2013-03-23 72 return "IO error";
6321bef028de43 Christoph Hellwig 2020-01-24 73 s = page_address(page) + offset_in_page(SB_OFFSET);
cafe563591446c Kent Overstreet 2013-03-23 74
cafe563591446c Kent Overstreet 2013-03-23 75 sb->offset = le64_to_cpu(s->offset);
cafe563591446c Kent Overstreet 2013-03-23 76 sb->version = le64_to_cpu(s->version);
cafe563591446c Kent Overstreet 2013-03-23 77
cafe563591446c Kent Overstreet 2013-03-23 78 memcpy(sb->magic, s->magic, 16);
cafe563591446c Kent Overstreet 2013-03-23 79 memcpy(sb->uuid, s->uuid, 16);
cafe563591446c Kent Overstreet 2013-03-23 80 memcpy(sb->set_uuid, s->set_uuid, 16);
cafe563591446c Kent Overstreet 2013-03-23 81 memcpy(sb->label, s->label, SB_LABEL_SIZE);
cafe563591446c Kent Overstreet 2013-03-23 82
cafe563591446c Kent Overstreet 2013-03-23 83 sb->flags = le64_to_cpu(s->flags);
cafe563591446c Kent Overstreet 2013-03-23 84 sb->seq = le64_to_cpu(s->seq);
cafe563591446c Kent Overstreet 2013-03-23 85 sb->last_mount = le32_to_cpu(s->last_mount);
cafe563591446c Kent Overstreet 2013-03-23 86 sb->first_bucket = le16_to_cpu(s->first_bucket);
cafe563591446c Kent Overstreet 2013-03-23 87 sb->keys = le16_to_cpu(s->keys);
cafe563591446c Kent Overstreet 2013-03-23 88
cafe563591446c Kent Overstreet 2013-03-23 89 for (i = 0; i < SB_JOURNAL_BUCKETS; i++)
cafe563591446c Kent Overstreet 2013-03-23 90 sb->d[i] = le64_to_cpu(s->d[i]);
cafe563591446c Kent Overstreet 2013-03-23 91
cafe563591446c Kent Overstreet 2013-03-23 92 pr_debug("read sb version %llu, flags %llu, seq %llu, journal size %u",
cafe563591446c Kent Overstreet 2013-03-23 93 sb->version, sb->flags, sb->seq, sb->keys);
cafe563591446c Kent Overstreet 2013-03-23 94
aaf8dbeab58657 Coly Li 2019-11-13 95 err = "Not a bcache superblock (bad offset)";
cafe563591446c Kent Overstreet 2013-03-23 96 if (sb->offset != SB_SECTOR)
cafe563591446c Kent Overstreet 2013-03-23 97 goto err;
cafe563591446c Kent Overstreet 2013-03-23 98
aaf8dbeab58657 Coly Li 2019-11-13 99 err = "Not a bcache superblock (bad magic)";
cafe563591446c Kent Overstreet 2013-03-23 100 if (memcmp(sb->magic, bcache_magic, 16))
cafe563591446c Kent Overstreet 2013-03-23 101 goto err;
cafe563591446c Kent Overstreet 2013-03-23 102
cafe563591446c Kent Overstreet 2013-03-23 103 err = "Too many journal buckets";
cafe563591446c Kent Overstreet 2013-03-23 104 if (sb->keys > SB_JOURNAL_BUCKETS)
cafe563591446c Kent Overstreet 2013-03-23 105 goto err;
cafe563591446c Kent Overstreet 2013-03-23 106
cafe563591446c Kent Overstreet 2013-03-23 107 err = "Bad checksum";
cafe563591446c Kent Overstreet 2013-03-23 @108 if (s->csum != csum_set(s))
cafe563591446c Kent Overstreet 2013-03-23 109 goto err;
cafe563591446c Kent Overstreet 2013-03-23 110
cafe563591446c Kent Overstreet 2013-03-23 111 err = "Bad UUID";
169ef1cf6171d3 Kent Overstreet 2013-03-28 112 if (bch_is_zero(sb->uuid, 16))
cafe563591446c Kent Overstreet 2013-03-23 113 goto err;
cafe563591446c Kent Overstreet 2013-03-23 114
8abb2a5dbadab9 Kent Overstreet 2013-04-23 115 sb->block_size = le16_to_cpu(s->block_size);
8abb2a5dbadab9 Kent Overstreet 2013-04-23 116
8abb2a5dbadab9 Kent Overstreet 2013-04-23 117 err = "Superblock block size smaller than device block size";
8abb2a5dbadab9 Kent Overstreet 2013-04-23 118 if (sb->block_size << 9 < bdev_logical_block_size(bdev))
8abb2a5dbadab9 Kent Overstreet 2013-04-23 119 goto err;
8abb2a5dbadab9 Kent Overstreet 2013-04-23 120
2903381fce7100 Kent Overstreet 2013-04-11 121 switch (sb->version) {
2903381fce7100 Kent Overstreet 2013-04-11 122 case BCACHE_SB_VERSION_BDEV:
2903381fce7100 Kent Overstreet 2013-04-11 123 sb->data_offset = BDEV_DATA_START_DEFAULT;
2903381fce7100 Kent Overstreet 2013-04-11 124 break;
2903381fce7100 Kent Overstreet 2013-04-11 125 case BCACHE_SB_VERSION_BDEV_WITH_OFFSET:
2903381fce7100 Kent Overstreet 2013-04-11 126 sb->data_offset = le64_to_cpu(s->data_offset);
cafe563591446c Kent Overstreet 2013-03-23 127
2903381fce7100 Kent Overstreet 2013-04-11 128 err = "Bad data offset";
2903381fce7100 Kent Overstreet 2013-04-11 129 if (sb->data_offset < BDEV_DATA_START_DEFAULT)
cafe563591446c Kent Overstreet 2013-03-23 130 goto err;
cafe563591446c Kent Overstreet 2013-03-23 131
2903381fce7100 Kent Overstreet 2013-04-11 132 break;
2903381fce7100 Kent Overstreet 2013-04-11 133 case BCACHE_SB_VERSION_CDEV:
2903381fce7100 Kent Overstreet 2013-04-11 134 case BCACHE_SB_VERSION_CDEV_WITH_UUID:
2903381fce7100 Kent Overstreet 2013-04-11 135 sb->nbuckets = le64_to_cpu(s->nbuckets);
2903381fce7100 Kent Overstreet 2013-04-11 136 sb->bucket_size = le16_to_cpu(s->bucket_size);
2903381fce7100 Kent Overstreet 2013-04-11 137
2903381fce7100 Kent Overstreet 2013-04-11 138 sb->nr_in_set = le16_to_cpu(s->nr_in_set);
2903381fce7100 Kent Overstreet 2013-04-11 139 sb->nr_this_dev = le16_to_cpu(s->nr_this_dev);
2903381fce7100 Kent Overstreet 2013-04-11 140
cafe563591446c Kent Overstreet 2013-03-23 141 err = "Too many buckets";
cafe563591446c Kent Overstreet 2013-03-23 142 if (sb->nbuckets > LONG_MAX)
cafe563591446c Kent Overstreet 2013-03-23 143 goto err;
cafe563591446c Kent Overstreet 2013-03-23 144
cafe563591446c Kent Overstreet 2013-03-23 145 err = "Not enough buckets";
cafe563591446c Kent Overstreet 2013-03-23 146 if (sb->nbuckets < 1 << 7)
cafe563591446c Kent Overstreet 2013-03-23 147 goto err;
cafe563591446c Kent Overstreet 2013-03-23 148
2903381fce7100 Kent Overstreet 2013-04-11 149 err = "Bad block/bucket size";
2903381fce7100 Kent Overstreet 2013-04-11 150 if (!is_power_of_2(sb->block_size) ||
2903381fce7100 Kent Overstreet 2013-04-11 151 sb->block_size > PAGE_SECTORS ||
2903381fce7100 Kent Overstreet 2013-04-11 152 !is_power_of_2(sb->bucket_size) ||
2903381fce7100 Kent Overstreet 2013-04-11 153 sb->bucket_size < PAGE_SECTORS)
2903381fce7100 Kent Overstreet 2013-04-11 154 goto err;
2903381fce7100 Kent Overstreet 2013-04-11 155
cafe563591446c Kent Overstreet 2013-03-23 156 err = "Invalid superblock: device too small";
b0d30981c05f32 Coly Li 2018-08-11 157 if (get_capacity(bdev->bd_disk) <
b0d30981c05f32 Coly Li 2018-08-11 158 sb->bucket_size * sb->nbuckets)
cafe563591446c Kent Overstreet 2013-03-23 159 goto err;
cafe563591446c Kent Overstreet 2013-03-23 160
cafe563591446c Kent Overstreet 2013-03-23 161 err = "Bad UUID";
169ef1cf6171d3 Kent Overstreet 2013-03-28 162 if (bch_is_zero(sb->set_uuid, 16))
cafe563591446c Kent Overstreet 2013-03-23 163 goto err;
cafe563591446c Kent Overstreet 2013-03-23 164
cafe563591446c Kent Overstreet 2013-03-23 165 err = "Bad cache device number in set";
cafe563591446c Kent Overstreet 2013-03-23 166 if (!sb->nr_in_set ||
cafe563591446c Kent Overstreet 2013-03-23 167 sb->nr_in_set <= sb->nr_this_dev ||
cafe563591446c Kent Overstreet 2013-03-23 168 sb->nr_in_set > MAX_CACHES_PER_SET)
cafe563591446c Kent Overstreet 2013-03-23 169 goto err;
cafe563591446c Kent Overstreet 2013-03-23 170
cafe563591446c Kent Overstreet 2013-03-23 171 err = "Journal buckets not sequential";
cafe563591446c Kent Overstreet 2013-03-23 172 for (i = 0; i < sb->keys; i++)
cafe563591446c Kent Overstreet 2013-03-23 173 if (sb->d[i] != sb->first_bucket + i)
cafe563591446c Kent Overstreet 2013-03-23 174 goto err;
cafe563591446c Kent Overstreet 2013-03-23 175
cafe563591446c Kent Overstreet 2013-03-23 176 err = "Too many journal buckets";
cafe563591446c Kent Overstreet 2013-03-23 177 if (sb->first_bucket + sb->keys > sb->nbuckets)
cafe563591446c Kent Overstreet 2013-03-23 178 goto err;
cafe563591446c Kent Overstreet 2013-03-23 179
cafe563591446c Kent Overstreet 2013-03-23 180 err = "Invalid superblock: first bucket comes before end of super";
cafe563591446c Kent Overstreet 2013-03-23 181 if (sb->first_bucket * sb->bucket_size < 16)
cafe563591446c Kent Overstreet 2013-03-23 182 goto err;
2903381fce7100 Kent Overstreet 2013-04-11 183
2903381fce7100 Kent Overstreet 2013-04-11 184 break;
2903381fce7100 Kent Overstreet 2013-04-11 185 default:
2903381fce7100 Kent Overstreet 2013-04-11 186 err = "Unsupported superblock version";
2903381fce7100 Kent Overstreet 2013-04-11 187 goto err;
2903381fce7100 Kent Overstreet 2013-04-11 188 }
2903381fce7100 Kent Overstreet 2013-04-11 189
75cbb3f1d84042 Arnd Bergmann 2018-07-26 190 sb->last_mount = (u32)ktime_get_real_seconds();
cfa0c56db9c087 Christoph Hellwig 2020-01-24 191 *res = s;
6321bef028de43 Christoph Hellwig 2020-01-24 192 return NULL;
cafe563591446c Kent Overstreet 2013-03-23 193 err:
6321bef028de43 Christoph Hellwig 2020-01-24 194 put_page(page);
cafe563591446c Kent Overstreet 2013-03-23 195 return err;
cafe563591446c Kent Overstreet 2013-03-23 196 }
cafe563591446c Kent Overstreet 2013-03-23 197
:::::: The code at line 108 was first introduced by commit
:::::: cafe563591446cf80bfbc2fe3bc72a2e36cf1060 bcache: A block layer cache
:::::: TO: Kent Overstreet <koverstreet@google.com>
:::::: CC: Kent Overstreet <koverstreet@google.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2020-02-03 2:53 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-02-03 2:53 [block:block-5.6 6/9] drivers/md/bcache/super.c:108:24: sparse: sparse: cast from restricted __le16 kbuild test robot
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.