Use error value assignment and goto instead of WILC_ERRORREPORT and WILC_CATCH. Signed-off-by: Mike Rapoport <mike.rapoport@xxxxxxxxx> --- drivers/staging/wilc1000/host_interface.c | 93 +++++++++++++++++-------------- 1 file changed, 52 insertions(+), 41 deletions(-) diff --git a/drivers/staging/wilc1000/host_interface.c b/drivers/staging/wilc1000/host_interface.c index 16a5d70..afb98d2 100644 --- a/drivers/staging/wilc1000/host_interface.c +++ b/drivers/staging/wilc1000/host_interface.c @@ -1521,8 +1521,7 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps MAX_SURVEY_RESULT_FRAG_SIZE); if (s32Err) { PRINT_ER("Failed to get site survey results\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); - + return WILC_FAIL; } s32Err = ParseSurveyResults(gapu8RcvdSurveyResults, &pstrSurveyResults, &pstrWFIDrv->u32SurveyResultsCount); @@ -1538,8 +1537,9 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps DeallocateSurveyResults(pstrSurveyResults); } else { - WILC_ERRORREPORT(s32Error, WILC_FAIL); - PRINT_ER("ParseSurveyResults() Error(%d)\n", s32Err); + s32Error = WILC_FAIL; + PRINT_ER("ParseSurveyResults() Error(%d)\n", s32Error); + goto err_handler; } @@ -1652,14 +1652,16 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Handle_Connect()] failed to send config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + s32Error = WILC_INVALID_STATE; + goto err_handler; } else { pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } } else { PRINT_ER("Required BSSID not found\n"); - WILC_ERRORREPORT(s32Error, WILC_NOT_FOUND); + s32Error = WILC_NOT_FOUND; + goto err_handler; } #else @@ -1680,7 +1682,8 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps ptstrJoinBssParam = (tstrJoinBssParam *)pstrHostIFconnectAttr->pJoinParams; if (ptstrJoinBssParam == NULL) { PRINT_ER("Required BSSID not found\n"); - WILC_ERRORREPORT(s32Error, WILC_NOT_FOUND); + s32Error = WILC_NOT_FOUND; + goto err_handler; } #endif /*WILC_PARSE_SCAN_IN_HOST*/ @@ -1788,8 +1791,10 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps strWIDList[u32WidsCount].s32ValueSize = MAX_SSID_LEN + 7; strWIDList[u32WidsCount].ps8WidVal = kmalloc(strWIDList[u32WidsCount].s32ValueSize, GFP_KERNEL); - if (strWIDList[u32WidsCount].ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWIDList[u32WidsCount].ps8WidVal == NULL) { + s32Error = WILC_NO_MEM; + goto err_handler; + } pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -1825,8 +1830,10 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps gu32FlushedJoinReqSize = strWIDList[u32WidsCount].s32ValueSize; gu8FlushedJoinReq = kmalloc(gu32FlushedJoinReqSize, GFP_KERNEL); } - if (strWIDList[u32WidsCount].ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWIDList[u32WidsCount].ps8WidVal == NULL) { + s32Error = WILC_NO_MEM; + goto err_handler; + } pu8CurrByte = strWIDList[u32WidsCount].ps8WidVal; @@ -1976,15 +1983,16 @@ static s32 Handle_Connect(tstrWILC_WFIDrv *drvHandler, tstrHostIFconnectAttr *ps get_id_from_handler(pstrWFIDrv)); if (s32Error) { PRINT_ER("Handle_Connect()] failed to send config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_INVALID_STATE); + s32Error = WILC_INVALID_STATE; + goto err_handler; } else { PRINT_D(GENERIC_DBG, "set HOST_IF_WAITING_CONN_RESP\n"); pstrWFIDrv->enuHostIFstate = HOST_IF_WAITING_CONN_RESP; } #endif - WILC_CATCH(s32Error) - { +err_handler: + if (s32Error) { tstrConnectInfo strConnectInfo; del_timer(&pstrWFIDrv->hConnectTimer); @@ -3074,7 +3082,7 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) if (s32Error) { PRINT_ER("Failed to send dissconect config packet\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + goto err_handler; } else { tstrDisconnectNotifInfo strDisconnectNotifInfo; @@ -3145,11 +3153,7 @@ static void Handle_Disconnect(tstrWILC_WFIDrv *drvHandler) } - WILC_CATCH(s32Error) - { - - } - +err_handler: /* ////////////////////////// */ up(&(pstrWFIDrv->hSemTestDisconnectBlock)); /* ///////////////////////// */ @@ -3387,7 +3391,8 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to SET incative time\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = WILC_FAIL; + goto err_handler; } @@ -3402,19 +3407,16 @@ static s32 Handle_Get_InActiveTime(tstrWILC_WFIDrv *drvHandler, tstrHostIfStaIna /*get the value by searching the local copy*/ if (s32Error) { PRINT_ER("Failed to get incative time\n"); - WILC_ERRORREPORT(s32Error, WILC_FAIL); + s32Error = WILC_FAIL; + goto err_handler; } PRINT_D(CFG80211_DBG, "Getting inactive time : %d\n", gu32InactiveTime); up(&(pstrWFIDrv->hSemInactiveTime)); - WILC_CATCH(s32Error) - { - - } - +err_handler: return s32Error; @@ -3784,17 +3786,20 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh if (pstrWFIDrv->strWILC_UsrScanReq.pfUserScanResult != NULL) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while scanning return\n"); pstrWFIDrv->u8RemainOnChan_pendingreq = 1; - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = WILC_BUSY; + goto err_handler; } if (pstrWFIDrv->enuHostIFstate == HOST_IF_WAITING_CONN_RESP) { PRINT_INFO(GENERIC_DBG, "Required to remain on chan while connecting return\n"); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = WILC_BUSY; + goto err_handler; } #ifdef DISABLE_PWRSAVE_AND_SCAN_DURING_IP if (g_obtainingIP || connecting) { PRINT_D(GENERIC_DBG, "[handle_scan]: Don't do obss scan until IP adresss is obtained\n"); - WILC_ERRORREPORT(s32Error, WILC_BUSY); + s32Error = WILC_BUSY; + goto err_handler; } #endif @@ -3806,8 +3811,10 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh strWID.s32ValueSize = 2; strWID.ps8WidVal = kmalloc(strWID.s32ValueSize, GFP_KERNEL); - if (strWID.ps8WidVal == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (strWID.ps8WidVal == NULL) { + s32Error = WILC_NO_MEM; + goto err_handler; + } strWID.ps8WidVal[0] = u8remain_on_chan_flag; strWID.ps8WidVal[1] = (s8)pstrHostIfRemainOnChan->u16Channel; @@ -3818,8 +3825,8 @@ static int Handle_RemainOnChan(tstrWILC_WFIDrv *drvHandler, tstrHostIfRemainOnCh if (s32Error != WILC_SUCCESS) PRINT_ER("Failed to set remain on channel\n"); - WILC_CATCH(-1) - { +err_handler: + if (-1) { P2P_LISTEN_STATE = 1; pstrWFIDrv->hRemainOnChannel.data = (unsigned long)pstrWFIDrv; mod_timer(&pstrWFIDrv->hRemainOnChannel, @@ -6939,16 +6946,20 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, pstrSetBeaconParam->u32DTIMPeriod = u32DTIMPeriod; pstrSetBeaconParam->u32HeadLen = u32HeadLen; pstrSetBeaconParam->pu8Head = kmalloc(u32HeadLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Head == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (pstrSetBeaconParam->pu8Head == NULL) { + s32Error = WILC_NO_MEM; + goto err_handler; + } memcpy(pstrSetBeaconParam->pu8Head, pu8Head, u32HeadLen); pstrSetBeaconParam->u32TailLen = u32TailLen; /* Bug 4599 : if tail length = 0 skip allocating & copying */ if (u32TailLen > 0) { pstrSetBeaconParam->pu8Tail = kmalloc(u32TailLen, GFP_KERNEL); - if (pstrSetBeaconParam->pu8Tail == NULL) - WILC_ERRORREPORT(s32Error, WILC_NO_MEM); + if (pstrSetBeaconParam->pu8Tail == NULL) { + s32Error = WILC_NO_MEM; + goto err_handler; + } memcpy(pstrSetBeaconParam->pu8Tail, pu8Tail, u32TailLen); } else { pstrSetBeaconParam->pu8Tail = NULL; @@ -6956,10 +6967,10 @@ s32 host_int_add_beacon(tstrWILC_WFIDrv *hWFIDrv, u32 u32Interval, s32Error = wilc_mq_send(&gMsgQHostIF, &strHostIFmsg, sizeof(tstrHostIFmsg)); if (s32Error) - WILC_ERRORREPORT(s32Error, s32Error); + PRINT_ER("Failed to send add beacon message\n"); - WILC_CATCH(s32Error) - { +err_handler: + if (s32Error) { if (pstrSetBeaconParam->pu8Head != NULL) kfree(pstrSetBeaconParam->pu8Head); -- 2.1.0 _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel