public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Michael D Kinney" <michael.d.kinney@intel.com>
To: Michael Kubacki <mikuback@linux.microsoft.com>,
	"devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Ni, Ray" <ray.ni@intel.com>
Cc: "Dong, Eric" <eric.dong@intel.com>,
	Erich McMillan <emcmillan@microsoft.com>,
	"Kumar, Rahul R" <rahul.r.kumar@intel.com>,
	"Ni, Ray" <ray.ni@intel.com>
Subject: Re: [edk2-devel] [PATCH v1 10/12] UefiCpuPkg: Fix conditionally uninitialized variables
Date: Thu, 24 Nov 2022 02:31:21 +0000	[thread overview]
Message-ID: <SA2PR11MB4938A498E81B7A522E3A9BDBD20F9@SA2PR11MB4938.namprd11.prod.outlook.com> (raw)
In-Reply-To: <3af32683-0162-dc9c-3cb7-e21751fe6e1f@linux.microsoft.com>

Hi Michael,

It does not look like it is required.  If the MP init fails for any reason.  Could be 
HW failure, but the BSP is still working because it is obviously executing code, then
the system should continue to boot with the BSP.

I will defer to Ray on this topic.

Mike

> -----Original Message-----
> From: Michael Kubacki <mikuback@linux.microsoft.com>
> Sent: Wednesday, November 23, 2022 6:14 PM
> To: devel@edk2.groups.io; Kinney, Michael D <michael.d.kinney@intel.com>
> Cc: Dong, Eric <eric.dong@intel.com>; Erich McMillan <emcmillan@microsoft.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>;
> Ni, Ray <ray.ni@intel.com>
> Subject: Re: [edk2-devel] [PATCH v1 10/12] UefiCpuPkg: Fix conditionally uninitialized variables
> 
> The ASSERT() was added to aid debugging by bringing attention to the
> point where the fallback assignment occurs in the error status check block.
> 
> Are you suggesting the ASSERT() be removed because of a known case where
> it might trigger but the case is expected to return an error? Or, that
> is is not necessary in general?
> 
> Thanks,
> Michael
> 
> On 11/23/2022 9:04 PM, Michael D Kinney wrote:
> > Hi Michael,
> >
> > comments below.
> >
> > Mike
> >
> >> -----Original Message-----
> >> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael Kubacki
> >> Sent: Wednesday, November 9, 2022 9:33 AM
> >> To: devel@edk2.groups.io
> >> Cc: Dong, Eric <eric.dong@intel.com>; Erich McMillan <emcmillan@microsoft.com>; Kinney, Michael D
> >> <michael.d.kinney@intel.com>; Michael Kubacki <mikuback@linux.microsoft.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>;
> >> Ni, Ray <ray.ni@intel.com>
> >> Subject: [edk2-devel] [PATCH v1 10/12] UefiCpuPkg: Fix conditionally uninitialized variables
> >>
> >> From: Michael Kubacki <michael.kubacki@microsoft.com>
> >>
> >> Fixes CodeQL alerts for CWE-457:
> >> https://cwe.mitre.org/data/definitions/457.html
> >>
> >> Cc: Eric Dong <eric.dong@intel.com>
> >> Cc: Erich McMillan <emcmillan@microsoft.com>
> >> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> >> Cc: Michael Kubacki <mikuback@linux.microsoft.com>
> >> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> >> Cc: Ray Ni <ray.ni@intel.com>
> >> Co-authored-by: Erich McMillan <emcmillan@microsoft.com>
> >> Signed-off-by: Michael Kubacki <michael.kubacki@microsoft.com>
> >> ---
> >>   UefiCpuPkg/CpuMpPei/CpuBist.c   | 8 +++++++-
> >>   UefiCpuPkg/CpuMpPei/CpuMpPei.c  | 8 +++++++-
> >>   UefiCpuPkg/CpuMpPei/CpuPaging.c | 9 ++++++++-
> >>   3 files changed, 22 insertions(+), 3 deletions(-)
> >>
> >> diff --git a/UefiCpuPkg/CpuMpPei/CpuBist.c b/UefiCpuPkg/CpuMpPei/CpuBist.c
> >> index 7dc93cd784d4..122808139b87 100644
> >> --- a/UefiCpuPkg/CpuMpPei/CpuBist.c
> >> +++ b/UefiCpuPkg/CpuMpPei/CpuBist.c
> >> @@ -175,7 +175,13 @@ CollectBistDataFromPpi (
> >>     EFI_SEC_PLATFORM_INFORMATION_RECORD2  *PlatformInformationRecord2;
> >>     EFI_SEC_PLATFORM_INFORMATION_CPU      *CpuInstanceInHob;
> >>
> >> -  MpInitLibGetNumberOfProcessors (&NumberOfProcessors, &NumberOfEnabledProcessors);
> >> +  Status = MpInitLibGetNumberOfProcessors (&NumberOfProcessors, &NumberOfEnabledProcessors);
> >> +  ASSERT_EFI_ERROR (Status);
> >
> > I think this ASSERT() should be removed.  The added error status check looks correct.
> >
> >> +
> >> +  if (EFI_ERROR (Status)) {
> >> +    NumberOfProcessors        = 1u;
> >> +    NumberOfEnabledProcessors = 1u;
> >> +  }
> >>
> >>     BistInformationSize = sizeof (EFI_SEC_PLATFORM_INFORMATION_RECORD2) +
> >>                           sizeof (EFI_SEC_PLATFORM_INFORMATION_CPU) * NumberOfProcessors;
> >> diff --git a/UefiCpuPkg/CpuMpPei/CpuMpPei.c b/UefiCpuPkg/CpuMpPei/CpuMpPei.c
> >> index e7f1fe9f426c..a84304273168 100644
> >> --- a/UefiCpuPkg/CpuMpPei/CpuMpPei.c
> >> +++ b/UefiCpuPkg/CpuMpPei/CpuMpPei.c
> >> @@ -473,7 +473,13 @@ InitializeMpExceptionStackSwitchHandlers (
> >>       return;
> >>     }
> >>
> >> -  MpInitLibGetNumberOfProcessors (&NumberOfProcessors, NULL);
> >> +  Status = MpInitLibGetNumberOfProcessors (&NumberOfProcessors, NULL);
> >> +  ASSERT_EFI_ERROR (Status);
> >
> > I think this ASSERT() should be removed.  The added error status check looks correct.
> >
> >> +
> >> +  if (EFI_ERROR (Status)) {
> >> +    NumberOfProcessors = 1u;
> >> +  }
> >> +
> >>     SwitchStackData = AllocatePages (EFI_SIZE_TO_PAGES (NumberOfProcessors * sizeof (EXCEPTION_STACK_SWITCH_CONTEXT)));
> >>     ASSERT (SwitchStackData != NULL);
> >>     ZeroMem (SwitchStackData, NumberOfProcessors * sizeof (EXCEPTION_STACK_SWITCH_CONTEXT));
> >> diff --git a/UefiCpuPkg/CpuMpPei/CpuPaging.c b/UefiCpuPkg/CpuMpPei/CpuPaging.c
> >> index 135422225340..1322fcb77f28 100644
> >> --- a/UefiCpuPkg/CpuMpPei/CpuPaging.c
> >> +++ b/UefiCpuPkg/CpuMpPei/CpuPaging.c
> >> @@ -538,6 +538,7 @@ SetupStackGuardPage (
> >>     UINTN                 NumberOfProcessors;
> >>     UINTN                 Bsp;
> >>     UINTN                 Index;
> >> +  EFI_STATUS            Status;
> >>
> >>     //
> >>     // One extra page at the bottom of the stack is needed for Guard page.
> >> @@ -547,7 +548,13 @@ SetupStackGuardPage (
> >>       ASSERT (FALSE);
> >>     }
> >>
> >> -  MpInitLibGetNumberOfProcessors (&NumberOfProcessors, NULL);
> >> +  Status = MpInitLibGetNumberOfProcessors (&NumberOfProcessors, NULL);
> >> +  ASSERT_EFI_ERROR (Status);
> >
> > I think this ASSERT() should be removed.  The added error status check looks correct.
> >
> >> +
> >> +  if (EFI_ERROR (Status)) {
> >> +    NumberOfProcessors = 1u;
> >> +  }
> >> +
> >>     MpInitLibWhoAmI (&Bsp);
> >>     for (Index = 0; Index < NumberOfProcessors; ++Index) {
> >>       StackBase = 0;
> >> --
> >> 2.28.0.windows.1
> >>
> >>
> >>
> >> -=-=-=-=-=-=
> >> Groups.io Links: You receive all messages sent to this group.
> >> View/Reply Online (#96156): https://edk2.groups.io/g/devel/message/96156
> >> Mute This Topic: https://groups.io/mt/94918104/1643496
> >> Group Owner: devel+owner@edk2.groups.io
> >> Unsubscribe: https://edk2.groups.io/g/devel/unsub [michael.d.kinney@intel.com]
> >> -=-=-=-=-=-=
> >>
> >
> >
> >
> > 
> >
> >

  reply	other threads:[~2022-11-24  2:31 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-11-09 17:32 [PATCH v1 00/12] Enable New CodeQL Queries Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 01/12] MdeModulePkg/SmbiosDxe: Fix pointer and buffer overflow CodeQL alerts Michael Kubacki
2022-11-24  1:28   ` [edk2-devel] " Michael D Kinney
2022-11-24  1:46     ` Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 02/12] BaseTools/PatchCheck.py: Add PCCTS to tab exemption list Michael Kubacki
2022-11-24  1:30   ` Michael D Kinney
2022-11-09 17:32 ` [PATCH v1 03/12] BaseTools/VfrCompile: Fix potential buffer overwrites Michael Kubacki
2022-11-24  1:32   ` [edk2-devel] " Michael D Kinney
2022-11-09 17:32 ` [PATCH v1 04/12] CryptoPkg: Fix conditionally uninitialized variable Michael Kubacki
2022-11-24  1:37   ` [edk2-devel] " Michael D Kinney
2022-11-24  1:47     ` Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 05/12] MdeModulePkg: Fix conditionally uninitialized variables Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 06/12] MdePkg: " Michael Kubacki
2022-11-24  1:53   ` Michael D Kinney
2022-11-24  1:59     ` Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 07/12] NetworkPkg: " Michael Kubacki
2022-11-24  1:59   ` Michael D Kinney
2022-11-09 17:32 ` [PATCH v1 08/12] PcAtChipsetPkg: " Michael Kubacki
2022-11-24  2:00   ` Michael D Kinney
2022-11-24  5:01     ` Ni, Ray
2022-11-09 17:32 ` [PATCH v1 09/12] ShellPkg: " Michael Kubacki
2022-11-24  2:19   ` Gao, Zhichao
2022-11-24  2:36     ` [edk2-devel] " Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 10/12] UefiCpuPkg: " Michael Kubacki
2022-11-24  2:04   ` [edk2-devel] " Michael D Kinney
2022-11-24  2:14     ` Michael Kubacki
2022-11-24  2:31       ` Michael D Kinney [this message]
2022-11-24  5:12         ` Ni, Ray
2022-11-28 22:50           ` Michael Kubacki
2022-11-09 17:32 ` [PATCH v1 11/12] .github/codeql/edk2.qls: Enable CWE 457, 676, and 758 queries Michael Kubacki
2022-11-24  2:05   ` [edk2-devel] " Michael D Kinney
2022-11-09 17:32 ` [PATCH v1 12/12] .github/codeql/edk2.qls: Enable CWE 120, 787, and 805 queries Michael Kubacki
2022-11-24  2:06   ` Michael D Kinney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-list from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=SA2PR11MB4938A498E81B7A522E3A9BDBD20F9@SA2PR11MB4938.namprd11.prod.outlook.com \
    --to=devel@edk2.groups.io \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox