On 11/7/23 06:58, Ranbir Singh wrote: > From: Ranbir Singh <ranbir.sin...@dell.com> > > The functions > XhcInitializeEndpointContext and XhcInitializeEndpointContext64 has > a switch-case code in which the case USB_ENDPOINT_CONTROL: falls > through to default: > > While this may be intentional, it is not evident to any general code > reader why there is no break; in between. Adding > > // No break; here as this is an intentional fallthrough. > > as comment in between makes it explicit. Incidentally, the comment > satisfies Coverity as well. > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=4221 > > 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/XhciDxe/XhciSched.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > index 05528a478baf..2afecd40cab0 100644 > --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c > @@ -2979,6 +2979,9 @@ XhcInitializeEndpointContext ( > // Do not support control transfer now. > // > DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext: Unsupport Control > EP found, Transfer ring is not allocated.\n")); > + // > + // No break; here as this is an intentional fall through. > + // > default: > DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext: Unknown EP found, > Transfer ring is not allocated.\n")); > EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); > @@ -3182,6 +3185,9 @@ XhcInitializeEndpointContext64 ( > // Do not support control transfer now. > // > DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unsupport > Control EP found, Transfer ring is not allocated.\n")); > + // > + // No break; here as this is an intentional fall through. > + // > default: > DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unknown EP > found, Transfer ring is not allocated.\n")); > EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length);
Eww, the contradictory DEBUG messages look awkard (in the original code), "unsupported" vs. "unknown"! How about this one instead: diff --git a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c index 05528a478baf..66e2e7044e06 100644 --- a/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c +++ b/MdeModulePkg/Bus/Pci/XhciDxe/XhciSched.c @@ -3034,6 +3034,7 @@ XhcInitializeEndpointContext64 ( EFI_PHYSICAL_ADDRESS PhyAddr; UINT8 Interval; TRANSFER_RING *EndpointTransferRing; + UINT8 EpType; MaxDci = 0; @@ -3074,7 +3075,8 @@ XhcInitializeEndpointContext64 ( InputContext->EP[Dci-1].MaxBurstSize = 0x0; } - switch (EpDesc->Attributes & USB_ENDPOINT_TYPE_MASK) { + EpType = EpDesc->Attributes & USB_ENDPOINT_TYPE_MASK; + switch (EpType) { case USB_ENDPOINT_BULK: if (Direction == EfiUsbDataIn) { InputContext->EP[Dci-1].CErr = 3; @@ -3177,13 +3179,16 @@ XhcInitializeEndpointContext64 ( break; - case USB_ENDPOINT_CONTROL: - // - // Do not support control transfer now. - // - DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unsupport Control EP found, Transfer ring is not allocated.\n")); default: - DEBUG ((DEBUG_INFO, "XhcInitializeEndpointContext64: Unknown EP found, Transfer ring is not allocated.\n")); + DEBUG (( + DEBUG_INFO, + "%a: %a found, Transfer ring is not allocated.\n", + __func__, + (EpType == USB_ENDPOINT_CONTROL ? + "Unsupported Control EP" : + "Unknown EP" + ) + )); EpDesc = (USB_ENDPOINT_DESCRIPTOR *)((UINTN)EpDesc + EpDesc->Length); continue; } -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#110861): https://edk2.groups.io/g/devel/message/110861 Mute This Topic: https://groups.io/mt/102438128/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-