In preparation for making the kmalloc family of allocators type aware, we need to make sure that the returned type from the allocation matches the type of the variable being assigned. (Before, the allocator would always return "void *", which can be implicitly cast to any pointer type.)
The assigned type is "struct dmz_mblock **" but the returned type will be "struct dmz_mblk **". These are the same allocation size (pointer size), but the types do not match. Adjust the allocation type to match the assignment. Signed-off-by: Kees Cook <k...@kernel.org> --- Cc: Alasdair Kergon <a...@redhat.com> Cc: Mike Snitzer <snit...@kernel.org> Cc: Mikulas Patocka <mpato...@redhat.com> Cc: <dm-devel@lists.linux.dev> --- drivers/md/dm-zoned-metadata.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c index deff22ecccbb..8934ad20012c 100644 --- a/drivers/md/dm-zoned-metadata.c +++ b/drivers/md/dm-zoned-metadata.c @@ -1687,7 +1687,7 @@ static int dmz_load_mapping(struct dmz_metadata *zmd) /* Metadata block array for the chunk mapping table */ zmd->map_mblk = kcalloc(zmd->nr_map_blocks, - sizeof(struct dmz_mblk *), GFP_KERNEL); + sizeof(*zmd->map_mblk), GFP_KERNEL); if (!zmd->map_mblk) return -ENOMEM; -- 2.34.1