[edk2-devel] [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0

Gao, Zhichao posted 1 patch 4 years, 9 months ago
Failed in applying to current master (apply log)
There is a newer version of this series
ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
[edk2-devel] [PATCH] ShellPkg/Pci.c: Update supported link speed to PCI4.0
Posted by Gao, Zhichao 4 years, 9 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1955

Refer PCI express base specification Reversion 4.0, Version
1.0, Table 7-32, Supported Link Speeds Vector bit 3 indicate
the speed 16 GT/s. Add it to shell command 'pci ...'.

Change the MaxLinkSpeed other values' result from 'Unknown'
to 'Reserved'.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Oleksiy <oleksiyy@ami.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
index ba9caa7743..b58ce3c2f0 100644
--- a/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
+++ b/ShellPkg/Library/UefiShellDebug1CommandsLib/Pci.c
@@ -1,7 +1,7 @@
 /** @file
   Main file for Pci shell Debug1 function.
 
-  Copyright (c) 2005 - 2018, Intel Corporation. All rights reserved.<BR>
+  Copyright (c) 2005 - 2019, Intel Corporation. All rights reserved.<BR>
   (C) Copyright 2013-2015 Hewlett-Packard Development Company, L.P.<BR>
   (C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>
   SPDX-License-Identifier: BSD-2-Clause-Patent
@@ -4515,8 +4515,11 @@ ExplainPcieLinkCap (
     case 3:
       MaxLinkSpeed = L"8.0 GT/s";
       break;
+    case 4:
+      MaxLinkSpeed = L"16.0 GT/s";
+      break;
     default:
-      MaxLinkSpeed = L"Unknown";
+      MaxLinkSpeed = L"Reserved";
       break;
   }
   ShellPrintEx (-1, -1,
@@ -4672,6 +4675,9 @@ ExplainPcieLinkStatus (
     case 3:
       CurLinkSpeed = L"8.0 GT/s";
       break;
+    case 4:
+      CurLinkSpeed = L"16.0 GT/s";
+      break;
     default:
       CurLinkSpeed = L"Reserved";
       break;
-- 
2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43710): https://edk2.groups.io/g/devel/message/43710
Mute This Topic: https://groups.io/mt/32476114/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

[edk2-devel] [PATCH] ShellPkg/UefiHandleParsingLib: Fix error allocate pool
Posted by Gao, Zhichao 4 years, 9 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1965

For function InsertNewGuidNameMapping, it rellocate the
mGuidList with new size
"mGuidListCount+1 * sizeof(GUID_INFO_BLOCK)". That isn't
its purpose and would cause a overflow operation in
"mGuidList[mGuidListCount - 1].xxx = xxx". Its purpose
is to increase 1 block size of mGuidList. Change it to
"(mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK)".

Adjust the coding style of this function.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 .../UefiHandleParsingLib/UefiHandleParsingLib.c      | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
index f179c41092..430c0ee70b 100644
--- a/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
+++ b/ShellPkg/Library/UefiHandleParsingLib/UefiHandleParsingLib.c
@@ -2462,17 +2462,21 @@ InsertNewGuidNameMapping(
   IN CONST DUMP_PROTOCOL_INFO DumpFunc OPTIONAL
   )
 {
-  ASSERT(Guid   != NULL);
-  ASSERT(NameID != 0);
+  ASSERT (Guid   != NULL);
+  ASSERT (NameID != 0);
 
-  mGuidList = ReallocatePool(mGuidListCount * sizeof(GUID_INFO_BLOCK), mGuidListCount+1 * sizeof(GUID_INFO_BLOCK), mGuidList);
+  mGuidList = ReallocatePool (
+                mGuidListCount * sizeof (GUID_INFO_BLOCK),
+                (mGuidListCount + 1) * sizeof (GUID_INFO_BLOCK),
+                mGuidList
+                );
   if (mGuidList == NULL) {
     mGuidListCount = 0;
     return (EFI_OUT_OF_RESOURCES);
   }
   mGuidListCount++;
 
-  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool(sizeof(EFI_GUID), Guid);
+  mGuidList[mGuidListCount - 1].GuidId   = AllocateCopyPool (sizeof (EFI_GUID), Guid);
   mGuidList[mGuidListCount - 1].StringId = NameID;
   mGuidList[mGuidListCount - 1].DumpInfo = DumpFunc;
 
-- 
2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43712): https://edk2.groups.io/g/devel/message/43712
Mute This Topic: https://groups.io/mt/32476116/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

[edk2-devel] [PATCH] ShellPkg/UefiShellDriver1CommandsLib: Make array big enough
Posted by Gao, Zhichao 4 years, 9 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1941

The two CHAR16 array ChildCountStr and DeviceCountStr is
defined to hold the decimal string data of UINTN. The max
of UINTN is 18446744073709551615 and it contain 20 characters.
So make their size to 21 CHAR16s to hold the string data with
a null-terminate.
UnicodeValueToStringS regard the value input as INT64, and
21 CHARs is enough to hold the lowest value with minus '-'.
Although the value shouldn't be such big.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Oleksiy <oleksiyy@ami.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c b/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
index 794b737bd1..40deb68808 100644
--- a/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
+++ b/ShellPkg/Library/UefiShellDriver1CommandsLib/Drivers.c
@@ -263,8 +263,8 @@ ShellCommandRunDrivers (
   EFI_HANDLE          *HandleWalker;
   UINTN               ChildCount;
   UINTN               DeviceCount;
-  CHAR16              ChildCountStr[3];
-  CHAR16              DeviceCountStr[3];
+  CHAR16              ChildCountStr[21];
+  CHAR16              DeviceCountStr[21];
   CHAR16              *Temp2;
   CONST CHAR16        *FullDriverName;
   CHAR16              *TruncatedDriverName;
-- 
2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43713): https://edk2.groups.io/g/devel/message/43713
Mute This Topic: https://groups.io/mt/32476117/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

[edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
Posted by Gao, Zhichao 4 years, 9 months ago
REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964

If the file begin with single line Feed ('\n'), then
"AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
would cause a underflow. Add this condition
"(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
(LoopVar - 1) would never encounter a underflow.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
index 4efc0a8e24..c1f670c713 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
@@ -78,12 +78,13 @@ TypeFileByHandle (
           // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
           // characters to be displayed as is.
           //
-          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
+          if ((AsciiChar == '\n' && LoopVar == 0) ||
+              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
             //
-            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
-            // was not the previous character, print CR and LF. This is because
-            // Shell 2.0 requires carriage return with line feed for displaying
-            // each new line from left.
+            // In case file begin with single line Feed or Line Feed (0xA) is
+            // encountered & Carriage Return (0xD) was not previous character,
+            // print CR and LF. This is because Shell 2.0 requires carriage
+            // return Swith line feed for displaying each new line from left.
             //
             ShellPrintEx (-1, -1, L"\r\n");
             continue;
-- 
2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43711): https://edk2.groups.io/g/devel/message/43711
Mute This Topic: https://groups.io/mt/32476115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
Posted by Jim Dailey 4 years, 9 months ago
Zhichao,

I believe the same problem exists further into the function in the 'else'
clause handling UCS2 characters.

Regards,
Jim

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao, Zhichao
Sent: Monday, July 15, 2019 2:30 AM
To: devel@edk2.groups.io
Cc: Jaben Carsey; Ray Ni; Andrew Fish
Subject: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)


[EXTERNAL EMAIL] 

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

If the file begin with single line Feed ('\n'), then
"AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
would cause a underflow. Add this condition
"(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
(LoopVar - 1) would never encounter a underflow.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Andrew Fish <afish@apple.com>
Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
---
 ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
index 4efc0a8e24..c1f670c713 100644
--- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
+++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
@@ -78,12 +78,13 @@ TypeFileByHandle (
           // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
           // characters to be displayed as is.
           //
-          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
+          if ((AsciiChar == '\n' && LoopVar == 0) ||
+              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
             //
-            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
-            // was not the previous character, print CR and LF. This is because
-            // Shell 2.0 requires carriage return with line feed for displaying
-            // each new line from left.
+            // In case file begin with single line Feed or Line Feed (0xA) is
+            // encountered & Carriage Return (0xD) was not previous character,
+            // print CR and LF. This is because Shell 2.0 requires carriage
+            // return Swith line feed for displaying each new line from left.
             //
             ShellPrintEx (-1, -1, L"\r\n");
             continue;
-- 
2.21.0.windows.1




Dell Corporation Limited is registered in England and Wales. Company Registration Number: 2081369
Registered address: Dell House, The Boulevard, Cain Road, Bracknell,  Berkshire, RG12 1LF, UK.
Company details for other Dell UK entities can be found on  www.dell.co.uk.


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43717): https://edk2.groups.io/g/devel/message/43717
Mute This Topic: https://groups.io/mt/32476115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
Posted by Gao, Zhichao 4 years, 9 months ago
You are right. I missed the USC2 section. I would update that in next version.

Thanks,
Zhichao

> -----Original Message-----
> From: devel@edk2.groups.io [mailto:devel@edk2.groups.io] On Behalf Of
> Jim Dailey
> Sent: Monday, July 15, 2019 9:09 PM
> To: Gao, Zhichao <zhichao.gao@intel.com>
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> afish@apple.com; devel@edk2.groups.io
> Subject: Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before
> (LoopVar - 1)
> 
> Zhichao,
> 
> I believe the same problem exists further into the function in the 'else'
> clause handling UCS2 characters.
> 
> Regards,
> Jim
> 
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Gao,
> Zhichao
> Sent: Monday, July 15, 2019 2:30 AM
> To: devel@edk2.groups.io
> Cc: Jaben Carsey; Ray Ni; Andrew Fish
> Subject: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before
> (LoopVar - 1)
> 
> 
> [EXTERNAL EMAIL]
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964
> 
> If the file begin with single line Feed ('\n'), then "AsciiChar == '\n' &&
> ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
> would cause a underflow. Add this condition "(AsciiChar == '\n' && LoopVar
> == 0)" before it to make sure (LoopVar - 1) would never encounter a
> underflow.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> ---
>  ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> index 4efc0a8e24..c1f670c713 100644
> --- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> +++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> @@ -78,12 +78,13 @@ TypeFileByHandle (
>            // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
>            // characters to be displayed as is.
>            //
> -          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
> +          if ((AsciiChar == '\n' && LoopVar == 0) ||
> +              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] !=
> + '\r')) {
>              //
> -            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
> -            // was not the previous character, print CR and LF. This is because
> -            // Shell 2.0 requires carriage return with line feed for displaying
> -            // each new line from left.
> +            // In case file begin with single line Feed or Line Feed (0xA) is
> +            // encountered & Carriage Return (0xD) was not previous character,
> +            // print CR and LF. This is because Shell 2.0 requires carriage
> +            // return Swith line feed for displaying each new line from left.
>              //
>              ShellPrintEx (-1, -1, L"\r\n");
>              continue;
> --
> 2.21.0.windows.1
> 
> 
> 
> 
> Dell Corporation Limited is registered in England and Wales. Company
> Registration Number: 2081369
> Registered address: Dell House, The Boulevard, Cain Road, Bracknell,
> Berkshire, RG12 1LF, UK.
> Company details for other Dell UK entities can be found on  www.dell.co.uk.
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43753): https://edk2.groups.io/g/devel/message/43753
Mute This Topic: https://groups.io/mt/32476115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
Posted by Carsey, Jaben 4 years, 9 months ago
Please remove the typo (there is an extra S after 'return'). This line:
// return Swith line feed for displaying each new line from left.


> -----Original Message-----
> From: Gao, Zhichao
> Sent: Monday, July 15, 2019 12:30 AM
> To: devel@edk2.groups.io
> Cc: Carsey, Jaben <jaben.carsey@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Andrew Fish <afish@apple.com>
> Subject: [PATCH] ShellPkg/Type.c: Add value check before (LoopVar - 1)
> 
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=1964
> 
> If the file begin with single line Feed ('\n'), then
> "AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r'"
> would cause a underflow. Add this condition
> "(AsciiChar == '\n' && LoopVar == 0)" before it to make sure
> (LoopVar - 1) would never encounter a underflow.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Andrew Fish <afish@apple.com>
> Signed-off-by: Zhichao Gao <zhichao.gao@intel.com>
> ---
>  ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> index 4efc0a8e24..c1f670c713 100644
> --- a/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> +++ b/ShellPkg/Library/UefiShellLevel3CommandsLib/Type.c
> @@ -78,12 +78,13 @@ TypeFileByHandle (
>            // Allow Line Feed (LF) (0xA) & Carriage Return (CR) (0xD)
>            // characters to be displayed as is.
>            //
> -          if (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r') {
> +          if ((AsciiChar == '\n' && LoopVar == 0) ||
> +              (AsciiChar == '\n' && ((CHAR8*)Buffer)[LoopVar-1] != '\r')) {
>              //
> -            // In case Line Feed (0xA) is encountered & Carriage Return (0xD)
> -            // was not the previous character, print CR and LF. This is because
> -            // Shell 2.0 requires carriage return with line feed for displaying
> -            // each new line from left.
> +            // In case file begin with single line Feed or Line Feed (0xA) is
> +            // encountered & Carriage Return (0xD) was not previous character,
> +            // print CR and LF. This is because Shell 2.0 requires carriage
> +            // return Swith line feed for displaying each new line from left.
>              //
>              ShellPrintEx (-1, -1, L"\r\n");
>              continue;
> --
> 2.21.0.windows.1


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#43721): https://edk2.groups.io/g/devel/message/43721
Mute This Topic: https://groups.io/mt/32476115/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-