On Thu, Sep 17, 2026 at 10:32:15PM +0100, Srinivas Kandagatla wrote: > > > On 9/17/26 10:14 PM, Kees Cook wrote: > > From: Kees Cook <[email protected]> > > > > In preparation for making the devm_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 "const struct bin_attribute **", but the converted > > allocation type would be "struct bin_attribute **", which is the same > > type without the const qualifier. As there is no general way to safely > > add const qualifiers, take the size from the assignment target instead. > > No change in allocation size results. > > > > Build tested ARCH=x86_64 allmodconfig with GCC 16.2.0: > > drivers/nvmem/core.o > > > > Assisted-by: LLM coccinelle > > Signed-off-by: Kees Cook <[email protected]> > > --- > > Cc: Srinivas Kandagatla <[email protected]> > > --- > > drivers/nvmem/core.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/nvmem/core.c b/drivers/nvmem/core.c > > index 0556d140170a..19edc9ab0282 100644 > > --- a/drivers/nvmem/core.c > > +++ b/drivers/nvmem/core.c > > @@ -485,7 +485,7 @@ static int nvmem_populate_sysfs_cells(struct > > nvmem_device *nvmem) > > /* Allocate an array of attributes with a sentinel */ > > ncells = list_count_nodes(&nvmem->cells); > > pattrs = devm_kcalloc(&nvmem->dev, ncells + 1, > > - sizeof(struct bin_attribute *), GFP_KERNEL); > > + sizeof(*pattrs), GFP_KERNEL); > > Thanks for the patch, while you are at it, there are few more instances > just below this.
There are, but there were no type mismatches with those. pattrs is const, but attrs and attrs[i].attr.name aren't, so no change is needed there. Do you want me to flip the attrs devm_kcalloc sizeof to *attrs to much style, though? -Kees -- Kees Cook

