On Wed, May 30, 2018 at 6:47 PM, Eddie James <eajames@xxxxxxxxxxxxxxxxxx> wrote: > On 05/29/2018 06:19 PM, Andy Shevchenko wrote: >> On Wed, May 30, 2018 at 1:24 AM, Eddie James <eajames@xxxxxxxxxxxxxxxxxx> >> wrote: >>> static int fsi_i2c_probe(struct device *dev) >>> { >> >> Isn't below somehow repeats of_i2c_register_devices() ? >> Why not to use it? > > > Because I need to assign all these port structure fields. Also looks like > of_i2c_register_devices creates new devices; I just want an adapter for each > port. Hmm... Wolfram, what is your opinion on this design? >>> + devm_kfree(dev, port); >> >> This hurts my eyes. Why?! > What would you suggest instead? You even didn't wait for answer, why to ask then? Moreover, you didn't answer to my question. Why are you doing that call implicitly? >>> + if (!list_empty(&i2c->ports)) { >> >> My gosh, this is done already in list_for_each*() > No, list_for_each_entry does NOT check if the list is empty or if the first > entry is NULL. Please, read the macro source code again. -- With Best Regards, Andy Shevchenko