On 8/29/19 12:56 PM, Marcelo Tosatti wrote: > Hi Joao, > > On Wed, Aug 28, 2019 at 07:56:50PM +0100, Joao Martins wrote: >> +static void haltpoll_uninit(void) >> +{ >> + unsigned int cpu; >> + >> + cpus_read_lock(); >> + >> + for_each_online_cpu(cpu) { >> + struct cpuidle_device *dev = >> + per_cpu_ptr(haltpoll_cpuidle_devices, cpu); >> + >> + if (!dev->registered) >> + continue; >> + >> + arch_haltpoll_disable(cpu); >> + cpuidle_unregister_device(dev); >> + } > > 1) > >> + >> + cpuidle_unregister(&haltpoll_driver); > > cpuidle_unregister_driver. Will fix -- this was an oversight. > >> + free_percpu(haltpoll_cpuidle_devices); >> + haltpoll_cpuidle_devices = NULL; >> + >> + cpus_read_unlock(); > > Any reason you can't cpus_read_unlock() at 1) ? > No, let me adjust that too. > Looks good otherwise. > > Thanks! > Thanks for the review! Joao