Changeset fc3dfe6d in mainline for uspace/lib/usbhost/src/utility.c


Ignore:
Timestamp:
2018-02-11T17:18:17Z (7 years ago)
Author:
Ondřej Hlavatý <aearsis@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d345ce2
Parents:
239eea41
git-author:
Ondřej Hlavatý <aearsis@…> (2018-02-10 22:16:55)
git-committer:
Ondřej Hlavatý <aearsis@…> (2018-02-11 17:18:17)
Message:

usb: fix relying on negative errnos

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhost/src/utility.c

    r239eea41 rfc3dfe6d  
    9494
    9595        usb_log_debug("Requesting first 8B of device descriptor to determine MPS.");
    96         ssize_t got = bus_device_send_batch_sync(dev, control_ep, USB_DIRECTION_IN,
    97             (char *) &desc, CTRL_PIPE_MIN_PACKET_SIZE, *(uint64_t *)&get_device_desc_8,
    98             "read first 8 bytes of dev descriptor");
     96        size_t got;
     97        const errno_t err = bus_device_send_batch_sync(dev, control_ep,
     98            USB_DIRECTION_IN, (char *) &desc, CTRL_PIPE_MIN_PACKET_SIZE,
     99            *(uint64_t *)&get_device_desc_8,
     100            "read first 8 bytes of dev descriptor", &got);
    99101
    100102        if (got != CTRL_PIPE_MIN_PACKET_SIZE) {
    101                 const int err = got < 0 ? got : EOVERFLOW;
    102103                usb_log_error("Failed to get 8B of dev descr: %s.", str_error(err));
    103104                return err;
     
    133134        usb_log_debug("Device(%d): Requesting full device descriptor.",
    134135            device->address);
    135         ssize_t got = bus_device_send_batch_sync(device, control_ep, USB_DIRECTION_IN,
    136             (char *) desc, sizeof(*desc), *(uint64_t *)&get_device_desc,
    137             "read device descriptor");
    138 
    139         if (got < 0)
    140                 return got;
    141 
    142         return got == sizeof(*desc) ? EOK : EOVERFLOW;
     136        size_t got;
     137        errno_t err = bus_device_send_batch_sync(device, control_ep,
     138            USB_DIRECTION_IN, (char *) desc, sizeof(*desc),
     139            *(uint64_t *)&get_device_desc, "read device descriptor", &got);
     140
     141        if (!err && got != sizeof(*desc))
     142                err = EOVERFLOW;
     143
     144        return err;
    143145}
    144146
     
    164166        usb_log_debug("Device(%d): Requesting hub descriptor.",
    165167            device->address);
    166         ssize_t got = bus_device_send_batch_sync(device, control_ep, USB_DIRECTION_IN,
    167             (char *) desc, sizeof(*desc), *(uint64_t *)&get_hub_desc,
    168             "get hub descriptor");
    169 
    170         if (got < 0)
    171                 return got;
    172 
    173         return got == sizeof(*desc) ? EOK : EOVERFLOW;
     168
     169        size_t got;
     170        errno_t err = bus_device_send_batch_sync(device, control_ep,
     171            USB_DIRECTION_IN, (char *) desc, sizeof(*desc),
     172            *(uint64_t *)&get_hub_desc, "get hub descriptor", &got);
     173
     174        if (!err && got != sizeof(*desc))
     175                err = EOVERFLOW;
     176
     177        return err;
    174178}
    175179
Note: See TracChangeset for help on using the changeset viewer.