diff --git a/src/southbridge/intel/i82801gx/smihandler.c b/src/southbridge/intel/i82801gx/smihandler.c index 237ac085fb..a33e9a72af 100644 --- a/src/southbridge/intel/i82801gx/smihandler.c +++ b/src/southbridge/intel/i82801gx/smihandler.c @@ -20,6 +20,7 @@ */ #include +#include #include #include #include @@ -345,6 +346,9 @@ static void southbridge_smi_sleep(unsigned int node, smm_state_save_area_t *stat */ outl(reg32 | SLP_EN, pmbase + PM1_CNT); + /* Make sure to stop executing code here for S3/S4/S5 */ + if (slp_typ > 1) + hlt(); /* In most sleep states, the code flow of this function ends at * the line above. However, if we entered sleep state S1 and wake * up again, we will continue to execute code in this function.