Hi Tank,
On 03.01.2017 04:20, Tang Tank wrote:
Hi all,
For smm handler (func smm_handler_start) in coreboot/src/cpu/x86/smm/smm_module_handler.c, there may be a logical error.
If I have 4 cores in my mainboard in the following special conditions:
- core0 run into smm_handler_start and smi_handler_status will be SMI_LOCKED.
- core1/2 run into smm_handler_start and pause since smi_handler_status is locked.
- core0 release smi_handler_status and then core4 run into smm_handler_start, it will do southbridge_smi_handler again.
looking at the code, I too see that possible race. But...
So is there have a reliable way of doing smm multi processors services in coreboot?
...IMO, this isn't unreliable. After the first run of a cpu/northbridge /southbridge_smi_handler() function, the cause of the SMI should be handled and thus the second run should do nothing (but checking for the SMI's cause).
Does that help? I wasn't sure if I got your question right.
Nico