On Fri, Aug 05, 2022 at 01:34:34AM -0400, Bo Liu wrote: > It's possible that dev_set_name() returns -ENOMEM, catch and handle this. > > Signed-off-by: Bo Liu <liubo03@xxxxxxxxxx> > --- > drivers/infiniband/ulp/srp/ib_srp.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Ah, while you are here can you fix this: > if (device_register(&host->dev)) > goto free_host; [..] > free_host: > kfree(host); That isn't allowed, you have to do put_device(): /** * device_register - register a device with the system. * @dev: pointer to the device structure * * This happens in two clean steps - initialize the device * and add it to the system. The two steps can be called * separately, but this is the easiest and most common. * I.e. you should only call the two helpers separately if * have a clearly defined need to use and refcount the device * before it is added to the hierarchy. * * For more information, see the kerneldoc for device_initialize() * and device_add(). * * NOTE: _Never_ directly free @dev after calling this function, even * if it returned an error! Always use put_device() to give up the * reference initialized in this function instead. */ int device_register(struct device *dev) Everyone get this wrong, it is why I think device_register is a terrible interface. Write it as device_initialize()/device_add() as seperate steps and never call kfree(). Jason