[edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception

Darbin Reyes posted 1 patch 1 year, 1 month ago
Failed in applying to current master (apply log)
UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
[edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Darbin Reyes 1 year, 1 month ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360

An incorrect format specifier is being used in a DEBUG print,
specifically, a variable of type EFI_STATUS was being printed with
the %a format specifier (pointer to an ASCII string), thus the value of
the Status variable was being treated as the address of a string,
leading to a CPU exception, when encountered this bug manifests itself
as a hang near "Ready to Boot Event", with the last DEBUG print being
"INFO: Got MicrocodePatchHob with microcode patches starting address"
followed by a CPU Exception dump.

Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
Reviewed-by: Jacob Narey <jacob.narey@intel.com>
---
 UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
index 762ca159ff..5fd3b3365c 100644
--- a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
+++ b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
@@ -238,7 +238,7 @@ MeasureMicrocodePatches (
        TotalMicrocodeSize)
       );
   } else {
-    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %a!\n", Status));
+    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %r!\n", Status));
   }
 
   FreePool (Offsets);
-- 
2.38.1.windows.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100818): https://edk2.groups.io/g/devel/message/100818
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Dong, Eric 1 year, 1 month ago
Reviewed-by: Eric Dong <eric.dong@intel.com>

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Darbin Reyes
Sent: Wednesday, March 8, 2023 7:04 AM
To: devel@edk2.groups.io
Cc: Reyes, Darbin <darbin.reyes@intel.com>; Narey, Jacob <jacob.narey@intel.com>
Subject: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception

REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360

An incorrect format specifier is being used in a DEBUG print, specifically, a variable of type EFI_STATUS was being printed with the %a format specifier (pointer to an ASCII string), thus the value of the Status variable was being treated as the address of a string, leading to a CPU exception, when encountered this bug manifests itself as a hang near "Ready to Boot Event", with the last DEBUG print being
"INFO: Got MicrocodePatchHob with microcode patches starting address"
followed by a CPU Exception dump.

Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
Reviewed-by: Jacob Narey <jacob.narey@intel.com>
---
 UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
index 762ca159ff..5fd3b3365c 100644
--- a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
+++ b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
@@ -238,7 +238,7 @@ MeasureMicrocodePatches (
        TotalMicrocodeSize)       );   } else {-    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %a!\n", Status));+    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %r!\n", Status));   }    FreePool (Offsets);-- 
2.38.1.windows.1



-=-=-=-=-=-=
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100818): https://edk2.groups.io/g/devel/message/100818
Mute This Topic: https://groups.io/mt/97461560/1768733
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [eric.dong@intel.com] -=-=-=-=-=-=




-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100982): https://edk2.groups.io/g/devel/message/100982
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Ni, Ray 1 year, 1 month ago
Great fix.
I am wondering why this bug was not found earlier.
If Status is 0 (Success), #PF exception would occur when NULL pointer protection is turned on.
If Status is 0x80000000_x (Error), #GP exception would occur because an address with only the BIT63 set is an invalid address.

Thanks,
Ray

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Darbin
> Reyes
> Sent: Wednesday, March 8, 2023 7:04 AM
> To: devel@edk2.groups.io
> Cc: Reyes, Darbin <darbin.reyes@intel.com>; Narey, Jacob
> <jacob.narey@intel.com>
> Subject: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix
> exception
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360
> 
> An incorrect format specifier is being used in a DEBUG print,
> specifically, a variable of type EFI_STATUS was being printed with
> the %a format specifier (pointer to an ASCII string), thus the value of
> the Status variable was being treated as the address of a string,
> leading to a CPU exception, when encountered this bug manifests itself
> as a hang near "Ready to Boot Event", with the last DEBUG print being
> "INFO: Got MicrocodePatchHob with microcode patches starting address"
> followed by a CPU Exception dump.
> 
> Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
> Reviewed-by: Jacob Narey <jacob.narey@intel.com>
> ---
>  UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c |
> 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git
> a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> index 762ca159ff..5fd3b3365c 100644
> ---
> a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> +++
> b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> @@ -238,7 +238,7 @@ MeasureMicrocodePatches (
>         TotalMicrocodeSize)
> 
>        );
> 
>    } else {
> 
> -    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with
> status %a!\n", Status));
> 
> +    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with
> status %r!\n", Status));
> 
>    }
> 
> 
> 
>    FreePool (Offsets);
> 
> --
> 2.38.1.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#100818):
> https://edk2.groups.io/g/devel/message/100818
> Mute This Topic: https://groups.io/mt/97461560/1712937
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com]
> -=-=-=-=-=-=
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100820): https://edk2.groups.io/g/devel/message/100820
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Michael D Kinney 1 year, 1 month ago
Hi Ray,

It is in an error path.  My guess is that this error path has not been used
since this bug was introduced.

Can you please merge this fix?

Mike

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ni, Ray
> Sent: Tuesday, March 7, 2023 3:24 PM
> To: devel@edk2.groups.io; Reyes, Darbin <darbin.reyes@intel.com>
> Cc: Narey, Jacob <jacob.narey@intel.com>
> Subject: Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
> 
> Great fix.
> I am wondering why this bug was not found earlier.
> If Status is 0 (Success), #PF exception would occur when NULL pointer protection is turned on.
> If Status is 0x80000000_x (Error), #GP exception would occur because an address with only the BIT63 set is an
> invalid address.
> 
> Thanks,
> Ray
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Darbin
> > Reyes
> > Sent: Wednesday, March 8, 2023 7:04 AM
> > To: devel@edk2.groups.io
> > Cc: Reyes, Darbin <darbin.reyes@intel.com>; Narey, Jacob
> > <jacob.narey@intel.com>
> > Subject: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix
> > exception
> >
> > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360
> >
> > An incorrect format specifier is being used in a DEBUG print,
> > specifically, a variable of type EFI_STATUS was being printed with
> > the %a format specifier (pointer to an ASCII string), thus the value of
> > the Status variable was being treated as the address of a string,
> > leading to a CPU exception, when encountered this bug manifests itself
> > as a hang near "Ready to Boot Event", with the last DEBUG print being
> > "INFO: Got MicrocodePatchHob with microcode patches starting address"
> > followed by a CPU Exception dump.
> >
> > Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
> > Reviewed-by: Jacob Narey <jacob.narey@intel.com>
> > ---
> >  UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c |
> > 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git
> > a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > index 762ca159ff..5fd3b3365c 100644
> > ---
> > a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > +++
> > b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > @@ -238,7 +238,7 @@ MeasureMicrocodePatches (
> >         TotalMicrocodeSize)
> >
> >        );
> >
> >    } else {
> >
> > -    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with
> > status %a!\n", Status));
> >
> > +    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with
> > status %r!\n", Status));
> >
> >    }
> >
> >
> >
> >    FreePool (Offsets);
> >
> > --
> > 2.38.1.windows.1
> >
> >
> >
> > -=-=-=-=-=-=
> > Groups.io Links: You receive all messages sent to this group.
> > View/Reply Online (#100818):
> > https://edk2.groups.io/g/devel/message/100818
> > Mute This Topic: https://groups.io/mt/97461560/1712937
> > Group Owner: devel+owner@edk2.groups.io
> > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com]
> > -=-=-=-=-=-=
> >
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100822): https://edk2.groups.io/g/devel/message/100822
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Ni, Ray 1 year, 1 month ago
Sure. I will.

> -----Original Message-----
> From: Kinney, Michael D <michael.d.kinney@intel.com>
> Sent: Wednesday, March 8, 2023 7:53 AM
> To: devel@edk2.groups.io; Ni, Ray <ray.ni@intel.com>; Reyes, Darbin
> <darbin.reyes@intel.com>
> Cc: Narey, Jacob <jacob.narey@intel.com>; Kinney, Michael D
> <michael.d.kinney@intel.com>
> Subject: RE: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe:
> Fix exception
> 
> Hi Ray,
> 
> It is in an error path.  My guess is that this error path has not been used
> since this bug was introduced.
> 
> Can you please merge this fix?
> 
> Mike
> 
> > -----Original Message-----
> > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Ni,
> Ray
> > Sent: Tuesday, March 7, 2023 3:24 PM
> > To: devel@edk2.groups.io; Reyes, Darbin <darbin.reyes@intel.com>
> > Cc: Narey, Jacob <jacob.narey@intel.com>
> > Subject: Re: [edk2-devel] [PATCH]
> UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
> >
> > Great fix.
> > I am wondering why this bug was not found earlier.
> > If Status is 0 (Success), #PF exception would occur when NULL pointer
> protection is turned on.
> > If Status is 0x80000000_x (Error), #GP exception would occur because an
> address with only the BIT63 set is an
> > invalid address.
> >
> > Thanks,
> > Ray
> >
> > > -----Original Message-----
> > > From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of
> Darbin
> > > Reyes
> > > Sent: Wednesday, March 8, 2023 7:04 AM
> > > To: devel@edk2.groups.io
> > > Cc: Reyes, Darbin <darbin.reyes@intel.com>; Narey, Jacob
> > > <jacob.narey@intel.com>
> > > Subject: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe:
> Fix
> > > exception
> > >
> > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360
> > >
> > > An incorrect format specifier is being used in a DEBUG print,
> > > specifically, a variable of type EFI_STATUS was being printed with
> > > the %a format specifier (pointer to an ASCII string), thus the value of
> > > the Status variable was being treated as the address of a string,
> > > leading to a CPU exception, when encountered this bug manifests itself
> > > as a hang near "Ready to Boot Event", with the last DEBUG print being
> > > "INFO: Got MicrocodePatchHob with microcode patches starting address"
> > > followed by a CPU Exception dump.
> > >
> > > Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
> > > Reviewed-by: Jacob Narey <jacob.narey@intel.com>
> > > ---
> > >
> UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c |
> > > 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git
> > >
> a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > >
> b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > > index 762ca159ff..5fd3b3365c 100644
> > > ---
> > >
> a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > > +++
> > >
> b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> > > @@ -238,7 +238,7 @@ MeasureMicrocodePatches (
> > >         TotalMicrocodeSize)
> > >
> > >        );
> > >
> > >    } else {
> > >
> > > -    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed
> with
> > > status %a!\n", Status));
> > >
> > > +    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed
> with
> > > status %r!\n", Status));
> > >
> > >    }
> > >
> > >
> > >
> > >    FreePool (Offsets);
> > >
> > > --
> > > 2.38.1.windows.1
> > >
> > >
> > >
> > > -=-=-=-=-=-=
> > > Groups.io Links: You receive all messages sent to this group.
> > > View/Reply Online (#100818):
> > > https://edk2.groups.io/g/devel/message/100818
> > > Mute This Topic: https://groups.io/mt/97461560/1712937
> > > Group Owner: devel+owner@edk2.groups.io
> > > Unsubscribe: https://edk2.groups.io/g/devel/unsub [ray.ni@intel.com]
> > > -=-=-=-=-=-=
> > >
> >
> >
> >
> > 
> >



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100824): https://edk2.groups.io/g/devel/message/100824
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-


Re: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
Posted by Michael D Kinney 1 year, 1 month ago
Reviewed-by: Michael D Kinney <michael.d.kinney@intel.com>



> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Darbin Reyes
> Sent: Tuesday, March 7, 2023 3:04 PM
> To: devel@edk2.groups.io
> Cc: Reyes, Darbin <darbin.reyes@intel.com>; Narey, Jacob <jacob.narey@intel.com>
> Subject: [edk2-devel] [PATCH] UefiCpuPkg/MicrocodeMeasurementDxe: Fix exception
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4360
> 
> An incorrect format specifier is being used in a DEBUG print,
> specifically, a variable of type EFI_STATUS was being printed with
> the %a format specifier (pointer to an ASCII string), thus the value of
> the Status variable was being treated as the address of a string,
> leading to a CPU exception, when encountered this bug manifests itself
> as a hang near "Ready to Boot Event", with the last DEBUG print being
> "INFO: Got MicrocodePatchHob with microcode patches starting address"
> followed by a CPU Exception dump.
> 
> Signed-off-by: Darbin Reyes <darbin.reyes@intel.com>
> Reviewed-by: Jacob Narey <jacob.narey@intel.com>
> ---
>  UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> index 762ca159ff..5fd3b3365c 100644
> --- a/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> +++ b/UefiCpuPkg/MicrocodeMeasurementDxe/MicrocodeMeasurementDxe.c
> @@ -238,7 +238,7 @@ MeasureMicrocodePatches (
>         TotalMicrocodeSize)
> 
>        );
> 
>    } else {
> 
> -    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %a!\n", Status));
> 
> +    DEBUG ((DEBUG_ERROR, "ERROR: TpmMeasureAndLogData failed with status %r!\n", Status));
> 
>    }
> 
> 
> 
>    FreePool (Offsets);
> 
> --
> 2.38.1.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#100818): https://edk2.groups.io/g/devel/message/100818
> Mute This Topic: https://groups.io/mt/97461560/1643496
> Group Owner: devel+owner@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [michael.d.kinney@intel.com]
> -=-=-=-=-=-=
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#100819): https://edk2.groups.io/g/devel/message/100819
Mute This Topic: https://groups.io/mt/97461560/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3901457/1787277/102458076/xyzzy [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-