On Wed, Mar 24, 2021 at 10:01:42AM -0700, Dan Williams wrote: > On Wed, Mar 24, 2021 at 9:52 AM Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > > > > On Wed, Mar 24, 2021 at 09:13:35AM -0700, Dan Williams wrote: > > > > > Which is just: > > > > > > device_initialize() > > > dev_set_name() > > > > > > ...then the name is set as early as the device is ready to filled in > > > with other details. Just checking for dev_set_name() failures does not > > > move the api forward in my opinion. > > > > This doesn't work either as the release function must be set after > > initialize but before dev_set_name(), otherwise we both can't and must > > call put_device() after something like this fails. > > Ugh, true. > > > > > I can't see an option other than bite the bullet and fix things. > > > > A static tool to look for these special lifetime rules around the > > driver core would be nice. > > It would... it would also trip over the fact the core itself fails to > check for dev_set_name() failures and also relies on !dev_name() as a check after-the-fact. Where can I find the !dev_name() check? regards, dan carpenter