diff --git a/arch/arm/src/nrf52/nrf52_usbd.c b/arch/arm/src/nrf52/nrf52_usbd.c index bf45e8ba809..4ae480b688f 100644 --- a/arch/arm/src/nrf52/nrf52_usbd.c +++ b/arch/arm/src/nrf52/nrf52_usbd.c @@ -1143,7 +1143,9 @@ static void nrf52_epin_request(struct nrf52_usbdev_s *priv, privreq->req.xfrd += nbytes; } - else if (privreq->req.xfrd >= privreq->req.len) + /* Has all the request data been sent? */ + + if (privreq->req.xfrd >= privreq->req.len) { usbtrace(TRACE_COMPLETE(privep->epphy), privreq->req.xfrd); diff --git a/arch/arm/src/nrf53/nrf53_usbd.c b/arch/arm/src/nrf53/nrf53_usbd.c index 79070d62d2f..44760a768f8 100644 --- a/arch/arm/src/nrf53/nrf53_usbd.c +++ b/arch/arm/src/nrf53/nrf53_usbd.c @@ -1143,7 +1143,9 @@ static void nrf53_epin_request(struct nrf53_usbdev_s *priv, privreq->req.xfrd += nbytes; } - else if (privreq->req.xfrd >= privreq->req.len) + /* Has all the request data been sent? */ + + if (privreq->req.xfrd >= privreq->req.len) { usbtrace(TRACE_COMPLETE(privep->epphy), privreq->req.xfrd);