[arch/arm/mach-mvebu] Question about kzalloc NULL check in i2c_quirk
Zijie Zhao
zzjas98 at gmail.com
Tue Mar 19 20:03:22 PDT 2024
Dear ARM/Marvell maintainers,
We came across an unusual usage of kzalloc in
arch/arm/mach-mvebu/board-v7.c, function i2c_quirk:
https://elixir.bootlin.com/linux/v6.8/source/arch/arm/mach-mvebu/board-v7.c#L127
```
static void __init i2c_quirk(void)
{
struct device_node *np;
u32 dev, rev;
/*
* Only revisons more recent than A0 support the offload
* mechanism. We can exit only if we are sure that we can
* get the SoC revision and it is more recent than A0.
*/
if (mvebu_get_soc_id(&dev, &rev) == 0 && rev > MV78XX0_A0_REV)
return;
for_each_compatible_node(np, NULL, "marvell,mv78230-i2c") {
struct property *new_compat;
new_compat = kzalloc(sizeof(*new_compat), GFP_KERNEL);
new_compat->name = kstrdup("compatible", GFP_KERNEL);
new_compat->length = sizeof("marvell,mv78230-a0-i2c");
new_compat->value = kstrdup("marvell,mv78230-a0-i2c",
GFP_KERNEL);
of_update_property(np, new_compat);
}
}
```
Should the new_compat be checked against NULL in case kzalloc fails, to
avoid NULL dereference later in the code?
Please kindly let us know if we missed any key information and this is
actually intended. We appreciate your information and time! Thanks!
Best,
Zijie
More information about the linux-arm-kernel
mailing list