Re: [RFC 0/4] clk/driver: platform: Fix kfree() of const memory on setting driver_override

From: Geert Uytterhoeven
Date: Mon Feb 18 2019 - 05:40:28 EST


Hi Krzysztof,

On Mon, Feb 18, 2019 at 11:27 AM Krzysztof Kozlowski <krzk@xxxxxxxxxx> wrote:
> The problem
> ===========
> Several device types (platform, amba, spi etc.) provide a driver_override
> field. On sysfs store or during device removal, they kfree() the
> existing value.
>
> However the users are unaware of this and set the driver_override like:
>
> pdev->driver_override = "exynos5-subcmu";
>
> which obviously leads to error.

IMHO driver_override is not meant to be set by a driver, only from userspace,
for binding the device to vfio (is there another use case?).

> clk: samsung: exynos5: Fix kfree() of const memory on setting
> driver_override
> slimbus: ngd: Fix kfree() of const memory on setting driver_override

I see all users set override immediately after allocating a platform device.
Can't they just allocate a platform device using the override name instead?
What am I missing?

Thanks!

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds