crypto: iaa - Adjust workqueue allocation type
authorKees Cook <kees@kernel.org>
Sat, 26 Apr 2025 06:11:31 +0000 (23:11 -0700)
committerHerbert Xu <herbert@gondor.apana.org.au>
Mon, 28 Apr 2025 11:45:26 +0000 (19:45 +0800)
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 idxd_wq **", but the returned type will be
"struct wq **". These are the same size allocation (pointer sized), but
the types don't match. Adjust the allocation type to match the assignment.

Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/intel/iaa/iaa_crypto_main.c

index be3b899c6977fcac4616d99a251702ccced3d301..e9c762124f1104473626698530cb2b88e357f850 100644 (file)
@@ -725,7 +725,7 @@ static int alloc_wq_table(int max_wqs)
 
        for (cpu = 0; cpu < nr_cpus; cpu++) {
                entry = per_cpu_ptr(wq_table, cpu);
-               entry->wqs = kcalloc(max_wqs, sizeof(struct wq *), GFP_KERNEL);
+               entry->wqs = kcalloc(max_wqs, sizeof(*entry->wqs), GFP_KERNEL);
                if (!entry->wqs) {
                        free_wq_table();
                        return -ENOMEM;