On Saturday 11 March 2023 22:11:57 Ondrej Zary wrote: > On Saturday 11 March 2023 21:23:25 Sergey Shtylyov wrote: > > On 3/11/23 11:19 PM, Sergei Shtylyov wrote: > > > > >> When ida_alloc() fails, "pi" is not freed although the misleading > > >> comment says otherwise. > > >> Move the ida_alloc() call up so we really don't have to free it. > > > > Wait, but don't we still need to call kfree() in pi_init_one()? > > If it fails at device_register, the dev.release is already set to > pata_parport_dev_release which does the kfree(). put_device() should call > it. If it fails later, device_unregister() should do it. But I see that the ida_free() at the end of pi_init_one() is wrong. It uses pi->dev.id but pi is either uninitialized or already freed. -- Ondrej Zary