X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fdevices%2Fusb.c;h=b885eb1442ccf8f14576f154e7b47aa61c10a3d6;hb=0e4a4bc6b269070171de9aec0593c89ec68ee751;hp=f4bc738c96320c3f886fba925869912d74998458;hpb=8fc9be2744dbe24bf5676a0502b36d5afe3b9ebb;p=pintos-anon diff --git a/src/devices/usb.c b/src/devices/usb.c index f4bc738..b885eb1 100644 --- a/src/devices/usb.c +++ b/src/devices/usb.c @@ -597,8 +597,12 @@ usb_get_string (struct usb_dev *udev, int ndx) sp.value = (SETUP_DESC_STRING << 8) | ndx; sp.index = 0; sp.length = MAX_USB_STR; - udev->host->dev->tx_pkt (udev->h_cfg_eop, USB_TOKEN_SETUP, - &sp, 0, sizeof (sp), NULL, false); + + if (udev->host->dev->tx_pkt (udev->h_cfg_eop, USB_TOKEN_SETUP, + &sp, 0, sizeof (sp), NULL, true) + != USB_HOST_ERR_NONE) + return NULL; + sz = usb_tx_all (&udev->cfg_eop, &str, MAX_USB_STR, 2, true); sz += usb_tx_all (&udev->cfg_eop, str + sz, (uint8_t) (str[0]) - sz, 0, true);