On 10/29/15 02:32, Jordan Justen wrote:
> The CpuDxe driver may run before the gEfiMetronomeArchProtocolGuid
> protocol is installed. gBS->Stall does not work until this arch
> protocol is installed.
> 
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jordan Justen <[email protected]>
> Cc: Jeff Fan <[email protected]>
> Cc: Laszlo Ersek <[email protected]>
> ---
>  UefiCpuPkg/CpuDxe/CpuMp.c | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
> 
> diff --git a/UefiCpuPkg/CpuDxe/CpuMp.c b/UefiCpuPkg/CpuDxe/CpuMp.c
> index 04c2f1f..98fdfdf 100644
> --- a/UefiCpuPkg/CpuDxe/CpuMp.c
> +++ b/UefiCpuPkg/CpuDxe/CpuMp.c
> @@ -801,7 +801,7 @@ StartupAllAPs (
>        goto Done;
>      }
>  
> -    gBS->Stall (gPollInterval);
> +    MicroSecondDelay (gPollInterval);
>      mMpSystemData.Timeout -= gPollInterval;
>    }
>  
> @@ -987,7 +987,7 @@ StartupThisAP (
>        return EFI_TIMEOUT;
>      }
>  
> -    gBS->Stall (gPollInterval);
> +    MicroSecondDelay (gPollInterval);
>      CpuData->Timeout -= gPollInterval;
>    }
>  
> @@ -1755,7 +1755,7 @@ InitializeMpSupport (
>      if (CheckAllAPsSleeping ()) {
>        break;
>      }
> -    gBS->Stall (gPollInterval);
> +    MicroSecondDelay (gPollInterval);
>      Timeout += gPollInterval;
>    } while (Timeout <= PcdGet32 (PcdCpuApInitTimeOutInMicroSeconds));
>    ASSERT (Timeout <= PcdGet32 (PcdCpuApInitTimeOutInMicroSeconds));
> 

This seems to cover all gBS->Stall() calls in CpuDxe.

Reviewed-by: Laszlo Ersek <[email protected]>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to