Re: [PATCH] clockevents: Add error handling and rollback in tick_init_sysfs()

From: Thomas Gleixner

Date: Wed Feb 11 2026 - 07:59:02 EST


On Tue, Feb 10 2026 at 15:27, Zhan Xusheng wrote:
> @@ -756,12 +756,24 @@ static int __init tick_init_sysfs(void)
> dev->id = cpu;
> dev->bus = &clockevents_subsys;
> err = device_register(dev);
> - if (!err)
> - err = device_create_file(dev, &dev_attr_current_device);
> - if (!err)
> - err = device_create_file(dev, &dev_attr_unbind_device);
> if (err)
> return err;
> +
> + err = device_create_file(dev, &dev_attr_current_device);
> + if (err)
> + goto err_unregister;
> +
> + err = device_create_file(dev, &dev_attr_unbind_device);
> + if (err)
> + goto err_remove_file;
> +
> + continue;
> +
> +err_remove_file:
> + device_remove_file(dev, &dev_attr_current_device);
> +err_unregister:
> + device_unregister(dev);
> + return err;

So this leaves already created per CPU files and devices around which is
inconsistent as well.

So what's the point of this half baked cleanup?

If this fails and it only can fail because of out of memory then the
system is doomed anyway. Cleanup up a couple of kilobytes wont make a
difference at all

Thanks,

tglx