summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsakumisu <[email protected]>2024-04-23 21:30:59 +0800
committersakumisu <[email protected]>2024-04-23 21:30:59 +0800
commita24d2bdc07bc8b7792e34277b8f0f20365069252 (patch)
treed24766a454a6bbbea768f2b690fecf6f6307040e
parentceaf0923c5f4104754c4deab5b8c61f25df73eb9 (diff)
fix rndis send dummy
-rw-r--r--class/wireless/usbh_rndis.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/class/wireless/usbh_rndis.c b/class/wireless/usbh_rndis.c
index 18affc3f..1a13b2f0 100644
--- a/class/wireless/usbh_rndis.c
+++ b/class/wireless/usbh_rndis.c
@@ -520,6 +520,7 @@ err_t usbh_rndis_linkoutput(struct netif *netif, struct pbuf *p)
struct pbuf *q;
uint8_t *buffer;
rndis_data_packet_t *hdr;
+ uint32_t len;
if (g_rndis_class.connect_status == false) {
return ERR_BUF;
@@ -539,14 +540,15 @@ err_t usbh_rndis_linkoutput(struct netif *netif, struct pbuf *p)
buffer += q->len;
}
+ len = hdr->MessageLength;
/* if message length is the multiple of wMaxPacketSize, we should add a short packet to tell device transfer is over. */
if (!(hdr->MessageLength % g_rndis_class.bulkout->wMaxPacketSize)) {
- hdr->MessageLength += 1;
+ len += 1;
}
- USB_LOG_DBG("txlen:%d\r\n", hdr->MessageLength);
+ USB_LOG_DBG("txlen:%d\r\n", len);
- usbh_bulk_urb_fill(&g_rndis_class.bulkout_urb, g_rndis_class.hport, g_rndis_class.bulkout, g_rndis_tx_buffer, hdr->MessageLength, USB_OSAL_WAITING_FOREVER, NULL, NULL);
+ usbh_bulk_urb_fill(&g_rndis_class.bulkout_urb, g_rndis_class.hport, g_rndis_class.bulkout, g_rndis_tx_buffer, len, USB_OSAL_WAITING_FOREVER, NULL, NULL);
ret = usbh_submit_urb(&g_rndis_class.bulkout_urb);
if (ret < 0) {
return ERR_BUF;