Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/uhci-hcd/iface.c

    ra81736d5 r0ede0c3  
    148148        assert(hc);
    149149        const size_t size = max_packet_size;
     150        int ret;
    150151        usb_speed_t speed = usb_device_keeper_get_speed(&hc->manager, address);
    151152        if (speed >= USB_SPEED_MAX) {
     
    156157            usb_str_speed(speed), direction, size, max_packet_size, interval);
    157158
    158         return usb_endpoint_manager_add_ep(&hc->ep_manager, address, endpoint,
    159             direction, transfer_type, speed, max_packet_size, size);
     159
     160        endpoint_t *ep = malloc(sizeof(endpoint_t));
     161        if (ep == NULL)
     162                return ENOMEM;
     163        ret = endpoint_init(ep, address, endpoint, direction,
     164            transfer_type, speed, max_packet_size);
     165        if (ret != EOK) {
     166                free(ep);
     167                return ret;
     168        }
     169
     170        ret = usb_endpoint_manager_register_ep(&hc->ep_manager, ep, size);
     171        if (ret != EOK) {
     172                endpoint_destroy(ep);
     173        }
     174        return ret;
    160175}
    161176/*----------------------------------------------------------------------------*/
Note: See TracChangeset for help on using the changeset viewer.