smp: Fix error case handling in smp_call_function_*()
[cascardo/linux.git] / kernel / smp.c
index 2aaac2c..0785447 100644 (file)
@@ -159,8 +159,10 @@ static int generic_exec_single(int cpu, struct call_single_data *csd,
        }
 
 
-       if ((unsigned)cpu >= nr_cpu_ids || !cpu_online(cpu))
+       if ((unsigned)cpu >= nr_cpu_ids || !cpu_online(cpu)) {
+               csd_unlock(csd);
                return -ENXIO;
+       }
 
        csd->func = func;
        csd->info = info;