Changeset 5153b58 in mainline


Ignore:
Timestamp:
2011-11-05T17:55:01Z (12 years ago)
Author:
Jan Vesely <jano.vesely@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
9f583151
Parents:
207acc4e
Message:

usbmid: Minor refactoring. Fix possible corruption in error path.

Location:
uspace/drv/bus/usb/usbmid
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/usbmid/main.c

    r207acc4e r5153b58  
    6868/** Callback when a MID device is about to be removed from the host.
    6969 *
    70  * @param gen_dev Generic DDF device representing the removed device.
     70 * @param dev USB device representing the removed device.
    7171 * @return Error code.
    7272 */
     
    7474{
    7575        assert(dev);
     76        usb_mid_t *usb_mid = dev->driver_data;
     77        assert(usb_mid);
    7678
    7779        /* Remove ctl function */
    78         usb_mid_t *usb_mid = dev->driver_data;
    7980        int ret = ddf_fun_unbind(usb_mid->ctl_fun);
    8081        if (ret != EOK) {
     
    109110                pret = usbmid_interface_destroy(iface);
    110111                if (pret != EOK) {
    111                         usb_log_error("Failed to remove child for interface "
     112                        usb_log_error("Failed to destroy child for interface "
    112113                            "%d (%s): %s\n", iface->interface_no,
    113114                            usb_str_class(iface->interface->interface_class),
     
    121122/** Callback when a MID device was removed from the host.
    122123 *
    123  * @param gen_dev Generic DDF device representing the removed device.
     124 * @param dev USB device representing the removed device.
    124125 * @return Error code.
    125126 */
     
    127128{
    128129        assert(dev);
     130        usb_mid_t *usb_mid = dev->driver_data;
     131        assert(usb_mid);
     132
    129133        usb_log_info("USB MID gone: `%s'.\n", dev->ddf_dev->name);
    130134
    131135        /* Remove ctl function */
    132         usb_mid_t *usb_mid = dev->driver_data;
    133136        int ret = ddf_fun_unbind(usb_mid->ctl_fun);
    134137        if (ret != EOK) {
  • uspace/drv/bus/usb/usbmid/usbmid.c

    r207acc4e r5153b58  
    124124        }
    125125
    126         iface->fun = child;
    127 
    128         child->driver_data = iface;
    129         child->ops = &child_device_ops;
    130 
    131126        rc = usb_device_create_match_ids_from_interface(device_descriptor,
    132127            interface_descriptor, &child->match_ids);
     
    143138        }
    144139
     140        iface->fun = child;
     141        child->driver_data = iface;
     142        child->ops = &child_device_ops;
     143
    145144        return EOK;
    146145}
Note: See TracChangeset for help on using the changeset viewer.