> Subject: RE: [PATCH v7 0/4] Extend device_get_match_data() to struct > bus_type > > > Hi Andy Shevchenko, > > Thanks for the feedback. > > > Subject: Re: [PATCH v7 0/4] Extend device_get_match_data() to struct > > bus_type > > > > On Fri, Aug 11, 2023 at 02:46:10PM +0000, Biju Das wrote: > > > > Subject: Re: [PATCH v7 0/4] Extend device_get_match_data() to > > > > struct bus_type On Fri, Aug 11, 2023 at 01:27:36PM +0000, Biju Das > wrote: > > > > > > On Thu, Aug 10, 2023 at 09:05:10AM +0000, Biju Das wrote: > > > > ... > > > > > > > > I'm good with this approach, but make sure you checked the > > > > > > whole kernel source tree for a such. > > > > > > > > > > Checking against 16 is too short I guess?? > > > > > > > > > > drivers/iio/imu/inv_mpu6050/inv_mpu_iio.h has 18 enums. > > > > > > > > So, what does prevent us from moving that tables to use pointers? > > > > > > I think that will lead to ABI breakage(client->name vs id->name) > > > > > > match = device_get_match_data(&client->dev); > > > if (match) { > > > chip_type = (uintptr_t)match; > > > name = client->name; > > > } else if (id) { > > > chip_type = (enum inv_devices) > > > id->driver_data; > > > name = id->name; > > > } else { > > > return -ENOSYS; > > > } > > > > > > It's easy to work around (may be better fix can be found, haven't > > checked, just what first comes to my mind): > > > > match ... > > name = match->name; > > The device_get_match_data()API returns matched data, so we cannot use that > one here. > > Maybe?? > > /* If enumerated via ID lookup, fix the ABI */ if (!dev_fwnode()) > name = id->name; Looks this will work. /* If enumerated via firmware node, fix the ABI */ if (dev_fwnode()) name = client->name else name = id->name Cheers, Biju