[PATCH] drivers: treewide: Do not use NULL as driver_data
Ahmad Fatoum
a.fatoum at pengutronix.de
Wed Sep 17 07:10:48 PDT 2025
On 9/17/25 4:02 PM, Sascha Hauer wrote:
> On Tue, Sep 16, 2025 at 11:38:48AM +0200, Ahmad Fatoum wrote:
>> Hello Sascha,
>>
>> On 9/16/25 11:32 AM, Sascha Hauer wrote:
>>> Several drivers in the tree use an enum for the chip type casted to int
>>> as driver_data. This comes with the problem that device_get_match_data()
>>> returns NULL for these devices and a potential error check bails out
>>> then.
>>>
>>> This patch changes the enums used by the drivers to start from 1 instead
>>> of 0 so that the return value of device_get_match_data() can safely
>>> checked for being NULL.
>>>
>>> Most drivers do not check the return value anyway, but fec_imx.c does
>>> which causes the driver to no longer work on i.MX27. This issue is fixed
>>> here.
>>
>> If they don't check the return value, why bother changing it and risk a
>> regression?
>
> To not give others bad examples.
I am not convinced.
>
>>> +++ b/drivers/mtd/nand/raw/nand_mxs.c
>>> @@ -38,7 +38,7 @@
>>> #include "internals.h"
>>>
>>> enum gpmi_type {
>>> - GPMI_MXS,
>>> + GPMI_MXS = 1,
>>> GPMI_IMX6,
>>> };
>
> Anyway, this indeed introduces a regression. We have mxs_add_nand()
> which instantiates a "mxs_nand" device without driver data, so
> device_get_match_data() will return 0 aka GPMI_MXS which happens to
> be the right thing here.
Case in point.
Cheers,
Ahmad
>
> Sascha
>
--
Pengutronix e.K. | |
Steuerwalder Str. 21 | http://www.pengutronix.de/ |
31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the barebox
mailing list