diff --git a/drivers/usbdev/usbdev_serial.c b/drivers/usbdev/usbdev_serial.c
index 51ad9c278f09c9eb654fee37a0e107cb685c7296..0f86007cb780946f54f42af6ed88b1123e6503de 100644
--- a/drivers/usbdev/usbdev_serial.c
+++ b/drivers/usbdev/usbdev_serial.c
@@ -1164,7 +1164,12 @@ static void usbclass_epbulkoutcomplete(FAR struct usbdev_ep_s *ep, struct usbdev
 
   /* Requeue the read request */
 
+#ifdef CONFIG_USBSER_BULKREQLEN
+  req->len = max(CONFIG_USBSER_BULKREQLEN, ep->maxpacket);
+#else
   req->len = ep->maxpacket;
+#endif
+
   ret      = EP_SUBMIT(ep, req);
   if (ret != OK)
     {