Message ID | 20240326145140.3257163-5-arnd@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | kbuild: enable some -Wextra warnings by default | expand |
On Tue, 2024-03-26 at 15:51 +0100, Arnd Bergmann wrote: > Calling a function through an incompatible pointer type causes breaks > kcfi, so clang warns about the assignment: > ... > +static void of_fini(void *p) > +{ > + return kfree(p); > +} > + I don't know anything about kfci, but shouldn't this just be "kfree(p)", without the "return"?
On Tue, Mar 26, 2024, at 16:20, Timur Tabi wrote: > On Tue, 2024-03-26 at 15:51 +0100, Arnd Bergmann wrote: >> Calling a function through an incompatible pointer type causes breaks >> kcfi, so clang warns about the assignment: >> > > ... > >> +static void of_fini(void *p) >> +{ >> + return kfree(p); >> +} >> + > > I don't know anything about kfci, but shouldn't this just be "kfree(p)", > without the "return"? You are right, fixed this up locally now, waiting for more comments before I resend patches from my series. I think it works because of a gcc extension, but isn't valid C otherwise, and I did not mean to rely on this. Arnd
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c index 4bf486b57101..0dbcc23305f3 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bios/shadowof.c @@ -66,11 +66,16 @@ of_init(struct nvkm_bios *bios, const char *name) return ERR_PTR(-EINVAL); } +static void of_fini(void *p) +{ + return kfree(p); +} + const struct nvbios_source nvbios_of = { .name = "OpenFirmware", .init = of_init, - .fini = (void(*)(void *))kfree, + .fini = of_fini, .read = of_read, .size = of_size, .rw = false,