From: Ranbir Singh <ranbir.sin...@dell.com> The function UhciConvertPollRate has a check
ASSERT (Interval != 0); but this comes into play only in DEBUG mode. In Release mode, there is no handling if the Interval parameter value is ZERO. To avoid shifting by a negative amount later in the code flow in this undesirable case, it is better to handle it as well by treating it same as if 1 is sent. REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4211 Cc: Hao A Wu <hao.a...@intel.com> Cc: Ray Ni <ray...@intel.com> Co-authored-by: Veeresh Sangolli <veeresh.sango...@dellteam.com> Signed-off-by: Ranbir Singh <ranbir.sin...@dell.com> Signed-off-by: Ranbir Singh <rsi...@ventanamicro.com> --- MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c index c08f9496969b..408e7d5ab7f3 100644 --- a/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c +++ b/MdeModulePkg/Bus/Pci/UhciDxe/UhciSched.c @@ -197,7 +197,7 @@ UhciDestoryFrameList ( } /** - Convert the poll rate to the maxium 2^n that is smaller + Convert the poll rate to the maximum 2^n that is smaller than Interval. @param Interval The poll rate to convert. @@ -214,6 +214,14 @@ UhciConvertPollRate ( ASSERT (Interval != 0); + // + // To safeguard RELEASE mode wherein ASSERT is effectively not there, + // if inadvertently Interval is still 0 here, treat it the same as 1. + // + if (Interval == 0) { + Interval = 1; + } + // // Find the index (1 based) of the highest non-zero bit // -- 2.34.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#107789): https://edk2.groups.io/g/devel/message/107789 Mute This Topic: https://groups.io/mt/100774224/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-