[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