Showing error 1683

User: Jiri Slaby
Error type: Double Lock
Error type description: Some lock is locked twice unintentionally in a sequence
File location: arch/x86/kernel/process.c
Line in file: 305
Project: Linux Kernel
Project version: 2.6.28
Tools: Smatch (1.59)
Entered: 2013-09-10 14:01:52 UTC


Source:

275                        printk(KERN_INFO "System has AMD C1E enabled\n");
276                        set_cpu_cap(&boot_cpu_data, X86_FEATURE_AMDC1E);
277                }
278        }
279
280        if (c1e_detected) {
281                int cpu = smp_processor_id();
282
283                if (!cpu_isset(cpu, c1e_mask)) {
284                        cpu_set(cpu, c1e_mask);
285                        /*
286                         * Force broadcast so ACPI can not interfere. Needs
287                         * to run with interrupts enabled as it uses
288                         * smp_function_call.
289                         */
290                        local_irq_enable();
291                        clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_FORCE,
292                                           &cpu);
293                        printk(KERN_INFO "Switch to broadcast mode on CPU%d\n",
294                               cpu);
295                        local_irq_disable();
296                }
297                clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu);
298
299                default_idle();
300
301                /*
302                 * The switch back from broadcast mode needs to be
303                 * called with interrupts disabled.
304                 */
305                 local_irq_disable();
306                 clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu);
307                 local_irq_enable();
308        } else
309                default_idle();
310}
311
312void __cpuinit select_idle_routine(const struct cpuinfo_x86 *c)
313{
314#ifdef CONFIG_X86_SMP
315        if (pm_idle == poll_idle && smp_num_siblings > 1) {
Show full sources