﻿id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc
478	AcpiExecSingleCPU: Spinlock is not released	Lars Erdmann	Lars Erdmann	"src\acpi\psd\acpicpu.c, routine ""AcpiExecSingleCPU"":[[BR]]
[[BR]]
around line: 802[[BR]]
if (ExeFlag &  SMPEXEC_IPITIME), a CPU spinlock is aquired, then the user function executed but the CPU spinlock is not released thereafter.[[BR]]
I believe the code should be corrected to read:[[BR]]

{{{
    if (ExeFlag & SMPEXEC_IPITIME)
    {
        while ( __lxchg((volatile int*)&CPULock, 1) );     // Wait if we are here
        CPUMask &= (~(1 << pPSDPLMA->procnum)); // Clear bit, this CPU was execute
        Status = Execute ( (void *)Context );                 // call function
        __lxchg((volatile int*)&CPULock, 0) ;                // give way to next CPU -> ADD THIS !
        return Status;
    }
}}}
"	defect	closed	major		ACPI PSD	3.17	fixed		
