Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/bus/usb/uhcirh/port.c

    r1ae74c6 rc53007f  
    150150{
    151151        uhci_port_t *instance = port;
     152        int rc;
    152153        assert(instance);
    153154
    154155        unsigned allowed_failures = MAX_ERROR_COUNT;
    155 #define CHECK_RET_FAIL(ret, msg...) \
    156         if (ret != EOK) { \
    157                 usb_log_error(msg); \
    158                 if (!(allowed_failures-- > 0)) { \
    159                         usb_log_fatal( \
    160                            "Maximum number of failures reached, " \
    161                            "bailing out.\n"); \
    162                         return ret; \
    163                 } \
    164                 continue; \
    165         } else (void)0
    166156
    167157        while (1) {
     
    182172                    instance->id_string, port_status);
    183173
    184                 int ret = usb_hc_connection_open(&instance->hc_connection);
    185                 CHECK_RET_FAIL(ret, "%s: Failed to connect to HC %s.\n",
    186                     instance->id_string, str_error(ret));
     174                rc = usb_hc_connection_open(&instance->hc_connection);
     175                if (rc != EOK) {
     176                        usb_log_error("%s: Failed to connect to HC %s.\n",
     177                            instance->id_string, str_error(rc));
     178                        if (!(allowed_failures-- > 0))
     179                                goto fatal_error;
     180                        continue;
     181                }
    187182
    188183                /* Remove any old device */
     
    204199                }
    205200
    206                 ret = usb_hc_connection_close(&instance->hc_connection);
    207                 CHECK_RET_FAIL(ret, "%s: Failed to disconnect from hc: %s.\n",
    208                     instance->id_string, str_error(ret));
    209         }
    210         return EOK;
     201                rc = usb_hc_connection_close(&instance->hc_connection);
     202                if (rc != EOK) {
     203                        usb_log_error("%s: Failed to disconnect from HC %s.\n",
     204                            instance->id_string, str_error(rc));
     205                        if (!(allowed_failures-- > 0))
     206                                goto fatal_error;
     207                        continue;
     208                }
     209        }
     210
     211        return EOK;
     212
     213fatal_error:
     214        usb_log_fatal("Maximum number of failures reached, bailing out.\n");
     215        return rc;
    211216}
    212217
Note: See TracChangeset for help on using the changeset viewer.