staging: wilc1000: coreconfigurator.c: use kmalloc instead of WILC_MALLOC
[deliverable/linux.git] / drivers / staging / wilc1000 / coreconfigurator.c
index ed6ac45c0385714ac6208b26ca55991428eed431..fd899140b16f6b4a96336a8128a638168db43fab 100644 (file)
@@ -167,7 +167,6 @@ extern void host_int_ScanCompleteReceived(u8 *pu8Buffer, u32 u32Length);
 static struct semaphore SemHandleSendPkt;
 static struct semaphore SemHandlePktResp;
 
-static s8 *gps8ConfigPacket;
 
 static tstrConfigPktInfo gstrConfigPktInfo;
 
@@ -544,21 +543,21 @@ INLINE u8 get_from_ds(u8 *header)
 /* header and updates the MAC Address in the allocated 'addr' variable.      */
 INLINE void get_address1(u8 *pu8msa, u8 *addr)
 {
-       WILC_memcpy(addr, pu8msa + 4, 6);
+       memcpy(addr, pu8msa + 4, 6);
 }
 
 /* This function extracts the MAC Address in 'address2' field of the MAC     */
 /* header and updates the MAC Address in the allocated 'addr' variable.      */
 INLINE void get_address2(u8 *pu8msa, u8 *addr)
 {
-       WILC_memcpy(addr, pu8msa + 10, 6);
+       memcpy(addr, pu8msa + 10, 6);
 }
 
 /* This function extracts the MAC Address in 'address3' field of the MAC     */
 /* header and updates the MAC Address in the allocated 'addr' variable.      */
 INLINE void get_address3(u8 *pu8msa, u8 *addr)
 {
-       WILC_memcpy(addr, pu8msa + 16, 6);
+       memcpy(addr, pu8msa + 16, 6);
 }
 
 /* This function extracts the BSSID from the incoming WLAN packet based on   */
@@ -605,7 +604,7 @@ INLINE u16 get_cap_info(u8 *data)
 {
        u16 cap_info = 0;
        u16 index    = MAC_HDR_LEN;
-       tenuFrmSubtype st = BEACON;
+       tenuFrmSubtype st;
 
        st = get_sub_type(data);
 
@@ -674,17 +673,8 @@ s32 CoreConfiguratorInit(void)
        sema_init(&SemHandleSendPkt, 1);
        sema_init(&SemHandlePktResp, 0);
 
-       gps8ConfigPacket = (s8 *)WILC_MALLOC(MAX_PACKET_BUFF_SIZE);
-       if (gps8ConfigPacket == NULL) {
-               PRINT_ER("failed in gps8ConfigPacket allocation\n");
-               s32Error = WILC_NO_MEM;
-               goto _fail_;
-       }
-
-       WILC_memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
 
-       WILC_memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
-_fail_:
+       memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
        return s32Error;
 }
 
@@ -706,11 +696,10 @@ u8 *get_tim_elm(u8 *pu8msa, u16 u16RxLen, u16 u16TagParamOffset)
 
        /* Search for the TIM Element Field and return if the element is found */
        while (u16index < (u16RxLen - FCS_LEN)) {
-               if (pu8msa[u16index] == ITIM) {
+               if (pu8msa[u16index] == ITIM)
                        return &pu8msa[u16index];
-               } else {
+               else
                        u16index += (IE_HDR_LEN + pu8msa[u16index + 1]);
-               }
        }
 
        return 0;
@@ -811,8 +800,8 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo)
                u32 u32Tsf_Lo;
                u32 u32Tsf_Hi;
 
-               pstrNetworkInfo = (tstrNetworkInfo *)WILC_MALLOC(sizeof(tstrNetworkInfo));
-               WILC_memset((void *)(pstrNetworkInfo), 0, sizeof(tstrNetworkInfo));
+               pstrNetworkInfo = kmalloc(sizeof(tstrNetworkInfo), GFP_KERNEL);
+               memset((void *)(pstrNetworkInfo), 0, sizeof(tstrNetworkInfo));
 
                pstrNetworkInfo->s8rssi = pu8WidVal[0];
 
@@ -855,17 +844,16 @@ s32 ParseNetworkInfo(u8 *pu8MsgBuffer, tstrNetworkInfo **ppstrNetworkInfo)
 
                /* Get DTIM Period */
                pu8TimElm = get_tim_elm(pu8msa, (u16RxLen + FCS_LEN), u8index);
-               if (pu8TimElm != 0) {
+               if (pu8TimElm != 0)
                        pstrNetworkInfo->u8DtimPeriod = pu8TimElm[3];
-               }
                pu8IEs = &pu8msa[MAC_HDR_LEN + TIME_STAMP_LEN + BEACON_INTERVAL_LEN + CAP_INFO_LEN];
                u16IEsLen = u16RxLen - (MAC_HDR_LEN + TIME_STAMP_LEN + BEACON_INTERVAL_LEN + CAP_INFO_LEN);
 
                if (u16IEsLen > 0) {
-                       pstrNetworkInfo->pu8IEs = (u8 *)WILC_MALLOC(u16IEsLen);
-                       WILC_memset((void *)(pstrNetworkInfo->pu8IEs), 0, u16IEsLen);
+                       pstrNetworkInfo->pu8IEs = kmalloc(u16IEsLen, GFP_KERNEL);
+                       memset((void *)(pstrNetworkInfo->pu8IEs), 0, u16IEsLen);
 
-                       WILC_memcpy(pstrNetworkInfo->pu8IEs, pu8IEs, u16IEsLen);
+                       memcpy(pstrNetworkInfo->pu8IEs, pu8IEs, u16IEsLen);
                }
                pstrNetworkInfo->u16IEsLen = u16IEsLen;
 
@@ -893,13 +881,13 @@ s32 DeallocateNetworkInfo(tstrNetworkInfo *pstrNetworkInfo)
 
        if (pstrNetworkInfo != NULL) {
                if (pstrNetworkInfo->pu8IEs != NULL) {
-                       WILC_FREE(pstrNetworkInfo->pu8IEs);
+                       kfree(pstrNetworkInfo->pu8IEs);
                        pstrNetworkInfo->pu8IEs = NULL;
                } else {
                        s32Error = WILC_FAIL;
                }
 
-               WILC_FREE(pstrNetworkInfo);
+               kfree(pstrNetworkInfo);
                pstrNetworkInfo = NULL;
 
        } else {
@@ -929,8 +917,8 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
        u8 *pu8IEs = 0;
        u16 u16IEsLen = 0;
 
-       pstrConnectRespInfo = (tstrConnectRespInfo *)WILC_MALLOC(sizeof(tstrConnectRespInfo));
-       WILC_memset((void *)(pstrConnectRespInfo), 0, sizeof(tstrConnectRespInfo));
+       pstrConnectRespInfo = kmalloc(sizeof(tstrConnectRespInfo), GFP_KERNEL);
+       memset((void *)(pstrConnectRespInfo), 0, sizeof(tstrConnectRespInfo));
 
        /* u16AssocRespLen = pu8Buffer[0]; */
        u16AssocRespLen = (u16)u32BufferLen;
@@ -949,10 +937,10 @@ s32 ParseAssocRespInfo(u8 *pu8Buffer, u32 u32BufferLen,
                pu8IEs = &pu8Buffer[CAP_INFO_LEN + STATUS_CODE_LEN + AID_LEN];
                u16IEsLen = u16AssocRespLen - (CAP_INFO_LEN + STATUS_CODE_LEN + AID_LEN);
 
-               pstrConnectRespInfo->pu8RespIEs = (u8 *)WILC_MALLOC(u16IEsLen);
-               WILC_memset((void *)(pstrConnectRespInfo->pu8RespIEs), 0, u16IEsLen);
+               pstrConnectRespInfo->pu8RespIEs = kmalloc(u16IEsLen, GFP_KERNEL);
+               memset((void *)(pstrConnectRespInfo->pu8RespIEs), 0, u16IEsLen);
 
-               WILC_memcpy(pstrConnectRespInfo->pu8RespIEs, pu8IEs, u16IEsLen);
+               memcpy(pstrConnectRespInfo->pu8RespIEs, pu8IEs, u16IEsLen);
                pstrConnectRespInfo->u16RespIEsLen = u16IEsLen;
        }
 
@@ -978,13 +966,13 @@ s32 DeallocateAssocRespInfo(tstrConnectRespInfo *pstrConnectRespInfo)
 
        if (pstrConnectRespInfo != NULL) {
                if (pstrConnectRespInfo->pu8RespIEs != NULL) {
-                       WILC_FREE(pstrConnectRespInfo->pu8RespIEs);
+                       kfree(pstrConnectRespInfo->pu8RespIEs);
                        pstrConnectRespInfo->pu8RespIEs = NULL;
                } else {
                        s32Error = WILC_FAIL;
                }
 
-               WILC_FREE(pstrConnectRespInfo);
+               kfree(pstrConnectRespInfo);
                pstrConnectRespInfo = NULL;
 
        } else {
@@ -1018,13 +1006,14 @@ s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ
                }
        }
 
-       pstrSurveyResults = (wid_site_survey_reslts_s *)WILC_MALLOC(u32SurveyResultsCount * sizeof(wid_site_survey_reslts_s));
+       pstrSurveyResults = kmalloc_array(u32SurveyResultsCount,
+                               sizeof(wid_site_survey_reslts_s), GFP_KERNEL);
        if (pstrSurveyResults == NULL) {
                u32SurveyResultsCount = 0;
                WILC_ERRORREPORT(s32Error, WILC_NO_MEM);
        }
 
-       WILC_memset((void *)(pstrSurveyResults), 0, u32SurveyResultsCount * sizeof(wid_site_survey_reslts_s));
+       memset((void *)(pstrSurveyResults), 0, u32SurveyResultsCount * sizeof(wid_site_survey_reslts_s));
 
        u32SurveyResultsCount = 0;
 
@@ -1039,7 +1028,7 @@ s32 ParseSurveyResults(u8 ppu8RcvdSiteSurveyResults[][MAX_SURVEY_RESULT_FRAG_SIZ
                pu8BufferPtr += 2;
 
                for (j = 0; j < u32SurveyBytesLength; j += SURVEY_RESULT_LENGTH) {
-                       WILC_memcpy(&pstrSurveyResults[u32SurveyResultsCount], pu8BufferPtr, SURVEY_RESULT_LENGTH);
+                       memcpy(&pstrSurveyResults[u32SurveyResultsCount], pu8BufferPtr, SURVEY_RESULT_LENGTH);
                        pu8BufferPtr += SURVEY_RESULT_LENGTH;
                        u32SurveyResultsCount++;
                }
@@ -1058,7 +1047,7 @@ s32 DeallocateSurveyResults(wid_site_survey_reslts_s *pstrSurveyResults)
        s32 s32Error = WILC_SUCCESS;
 
        if (pstrSurveyResults != NULL) {
-               WILC_FREE(pstrSurveyResults);
+               kfree(pstrSurveyResults);
        }
 
        return s32Error;
@@ -1334,7 +1323,6 @@ void ProcessStrWid(char *pcPacket, s32 *ps32PktLen,
 
        if (g_oper_mode == SET_CFG) {
                /* Message Length */
-               /* u16MsgLen = WILC_strlen(pu8val); */
                u16MsgLen = (u16)s32ValueSize;
 
                /* Length */
@@ -1441,8 +1429,6 @@ void ProcessAdrWid(char *pcPacket, s32 *ps32PktLen,
 void ProcessBinWid(char *pcPacket, s32 *ps32PktLen,
                   tstrWID *pstrWID, u8 *pu8val, s32 s32ValueSize)
 {
-       /* WILC_ERROR("processing Binary WIDs is not supported\n"); */
-
        u16 u16MsgLen = 0;
        u16 idx    = 0;
        s32 s32PktLen = *ps32PktLen;
@@ -1528,11 +1514,10 @@ s32 further_process_response(u8 *resp,
        u8 cfg_str[256] = {0};
        tenuWIDtype enuWIDtype = WID_UNDEF;
 
-       if (process_wid_num) {
+       if (process_wid_num)
                enuWIDtype = get_wid_type(g_wid_num);
-       } else {
+       else
                enuWIDtype = gastrWIDs[cnt].enuWIDtype;
-       }
 
 
        switch (enuWIDtype) {
@@ -1566,18 +1551,10 @@ s32 further_process_response(u8 *resp,
        }
 
        case WID_STR:
-               WILC_memcpy(cfg_str, resp + idx, cfg_len);
+               memcpy(cfg_str, resp + idx, cfg_len);
                /* cfg_str[cfg_len] = '\0'; //mostafa: no need currently for NULL termination */
-               if (process_wid_num) {
-                       /*fprintf(out_file,"0x%4.4x = %s\n",g_wid_num,
-                        *                              cfg_str);*/
-               } else {
-                       /*fprintf(out_file,"%s = %s\n",gastrWIDs[cnt].cfg_switch,
-                        *                           cfg_str);*/
-               }
-
                if (pstrWIDresult->s32ValueSize >= cfg_len) {
-                       WILC_memcpy(pstrWIDresult->ps8WidVal, cfg_str, cfg_len); /* mostafa: no need currently for the extra NULL byte */
+                       memcpy(pstrWIDresult->ps8WidVal, cfg_str, cfg_len); /* mostafa: no need currently for the extra NULL byte */
                        pstrWIDresult->s32ValueSize = cfg_len;
                } else {
                        PRINT_ER("allocated WID buffer length is smaller than the received WID Length\n");
@@ -1589,15 +1566,8 @@ s32 further_process_response(u8 *resp,
        case WID_ADR:
                create_mac_addr(cfg_str, resp + idx);
 
-               WILC_strncpy(pstrWIDresult->ps8WidVal, cfg_str, WILC_strlen(cfg_str));
-               pstrWIDresult->ps8WidVal[WILC_strlen(cfg_str)] = '\0';
-               if (process_wid_num) {
-                       /*fprintf(out_file,"0x%4.4x = %s\n",g_wid_num,
-                        *                              cfg_str);*/
-               } else {
-                       /*fprintf(out_file,"%s = %s\n",gastrWIDs[cnt].cfg_switch,
-                        *                           cfg_str);*/
-               }
+               strncpy(pstrWIDresult->ps8WidVal, cfg_str, strlen(cfg_str));
+               pstrWIDresult->ps8WidVal[strlen(cfg_str)] = '\0';
                break;
 
        case WID_IP:
@@ -1606,18 +1576,11 @@ s32 further_process_response(u8 *resp,
                                MAKE_WORD16(resp[idx + 2], resp[idx + 3])
                                );
                conv_int_to_ip(cfg_str, cfg_int);
-               if (process_wid_num) {
-                       /*fprintf(out_file,"0x%4.4x = %s\n",g_wid_num,
-                        *                              cfg_str);*/
-               } else {
-                       /*fprintf(out_file,"%s = %s\n",gastrWIDs[cnt].cfg_switch,
-                        *                           cfg_str);*/
-               }
                break;
 
        case WID_BIN_DATA:
                if (pstrWIDresult->s32ValueSize >= cfg_len) {
-                       WILC_memcpy(pstrWIDresult->ps8WidVal, resp + idx, cfg_len);
+                       memcpy(pstrWIDresult->ps8WidVal, resp + idx, cfg_len);
                        pstrWIDresult->s32ValueSize = cfg_len;
                } else {
                        PRINT_ER("Allocated WID buffer length is smaller than the received WID Length Err(%d)\n", retval);
@@ -1739,7 +1702,6 @@ s32 ParseResponse(u8 *resp, tstrWID *pstrWIDcfgResult)
 s32 ParseWriteResponse(u8 *pu8RespBuffer)
 {
        s32 s32Error = WILC_FAIL;
-       u16 u16RespLen   = 0;
        u16 u16WIDtype = (u16)WID_NIL;
 
        /* Check whether the received frame is a valid response */
@@ -1748,9 +1710,6 @@ s32 ParseWriteResponse(u8 *pu8RespBuffer)
                return WILC_FAIL;
        }
 
-       /* Extract Response Length */
-       u16RespLen = MAKE_WORD16(pu8RespBuffer[2], pu8RespBuffer[3]);
-
        u16WIDtype = MAKE_WORD16(pu8RespBuffer[4], pu8RespBuffer[5]);
 
        /* Check for WID_STATUS ID and then check the length and status value */
@@ -1898,104 +1857,21 @@ s32 ConfigWaitResponse(char *pcRespBuffer, s32 s32MaxRespBuffLen, s32 *ps32Bytes
                *ps32BytesRead = gstrConfigPktInfo.s32BytesRead;
        }
 
-       WILC_memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
+       memset((void *)(&gstrConfigPktInfo), 0, sizeof(tstrConfigPktInfo));
 
        return s32Error;
 }
 
-/**
- *  @brief              sends certain Configuration Packet based on the input WIDs pstrWIDs
- *                      and retrieves the packet response pu8RxResp
- *  @details
- *  @param[in]  pstrWIDs WIDs to be sent in the configuration packet
- *  @param[in]  u32WIDsCount number of WIDs to be sent in the configuration packet
- *  @param[out]         pu8RxResp The received Packet Response
- *  @param[out]         ps32RxRespLen Length of the received Packet Response
- *  @return     Error code indicating success/failure
- *  @note
- *  @author    mabubakr
- *  @date              1 Mar 2012
- *  @version   1.0
- */
-#ifdef SIMULATION
-s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs,
-                         u32 u32WIDsCount, bool bRespRequired, u32 drvHandler)
-{
-       s32 s32Error = WILC_SUCCESS;
-       s32 err = WILC_SUCCESS;
-       s32 s32ConfigPacketLen = 0;
-       s32 s32RcvdRespLen = 0;
-
-       down(&SemHandleSendPkt);
-
-       /*set the packet mode*/
-       g_oper_mode = u8Mode;
-
-       WILC_memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
-
-       if (CreateConfigPacket(gps8ConfigPacket, &s32ConfigPacketLen, pstrWIDs, u32WIDsCount) != WILC_SUCCESS) {
-               s32Error = WILC_FAIL;
-               goto End_ConfigPkt;
-       }
-       /*bug 3878*/
-       gstrConfigPktInfo.pcRespBuffer = gps8ConfigPacket;
-       gstrConfigPktInfo.s32MaxRespBuffLen = MAX_PACKET_BUFF_SIZE;
-       PRINT_INFO(CORECONFIG_DBG, "GLOBAL =bRespRequired =%d\n", bRespRequired);
-       gstrConfigPktInfo.bRespRequired = bRespRequired;
-
-       s32Error = SendRawPacket(gps8ConfigPacket, s32ConfigPacketLen);
-       if (s32Error != WILC_SUCCESS) {
-               goto End_ConfigPkt;
-       }
-
-       WILC_memset((void *)gps8ConfigPacket, 0, MAX_PACKET_BUFF_SIZE);
-
-       ConfigWaitResponse(gps8ConfigPacket, MAX_PACKET_BUFF_SIZE, &s32RcvdRespLen, bRespRequired);
-
-
-       if (bRespRequired)      {
-               /* If the operating Mode is GET, then we expect a response frame from */
-               /* the driver. Hence start listening to the port for response         */
-               if (g_oper_mode == GET_CFG) {
-                       #if 1
-                       err = ParseResponse(gps8ConfigPacket, pstrWIDs);
-                       if (err != 0) {
-                               s32Error = WILC_FAIL;
-                               goto End_ConfigPkt;
-                       } else {
-                               s32Error = WILC_SUCCESS;
-                       }
-                       #endif
-               } else {
-                       err = ParseWriteResponse(gps8ConfigPacket);
-                       if (err != WRITE_RESP_SUCCESS) {
-                               s32Error = WILC_FAIL;
-                               goto End_ConfigPkt;
-                       } else {
-                               s32Error = WILC_SUCCESS;
-                       }
-               }
-
-
-       }
-
-
-End_ConfigPkt:
-       up(&SemHandleSendPkt);
-
-       return s32Error;
-}
-#endif
 s32 ConfigProvideResponse(char *pcRespBuffer, s32 s32RespLen)
 {
        s32 s32Error = WILC_SUCCESS;
 
        if (gstrConfigPktInfo.bRespRequired) {
                if (s32RespLen <= gstrConfigPktInfo.s32MaxRespBuffLen) {
-                       WILC_memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, s32RespLen);
+                       memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, s32RespLen);
                        gstrConfigPktInfo.s32BytesRead = s32RespLen;
                } else {
-                       WILC_memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, gstrConfigPktInfo.s32MaxRespBuffLen);
+                       memcpy(gstrConfigPktInfo.pcRespBuffer, pcRespBuffer, gstrConfigPktInfo.s32MaxRespBuffLen);
                        gstrConfigPktInfo.s32BytesRead = gstrConfigPktInfo.s32MaxRespBuffLen;
                        PRINT_ER("BusProvideResponse() Response greater than the prepared Buffer Size\n");
                }
@@ -2069,17 +1945,10 @@ s32 CoreConfiguratorDeInit(void)
 
        PRINT_D(CORECONFIG_DBG, "CoreConfiguratorDeInit()\n");
 
-       if (gps8ConfigPacket != NULL) {
-
-               WILC_FREE(gps8ConfigPacket);
-               gps8ConfigPacket = NULL;
-       }
 
        return s32Error;
 }
 
-
-#ifndef SIMULATION
 /*Using the global handle of the driver*/
 extern wilc_wlan_oup_t *gpstrWlanOps;
 /**
@@ -2129,7 +1998,6 @@ s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs,
                /**
                 *      get the value
                 **/
-               /* WILC_Sleep(1000); */
                counter = 0;
                for (counter = 0; counter < u32WIDsCount; counter++) {
                        pstrWIDs[counter].s32ValueSize = gpstrWlanOps->wlan_cfg_get_value(
@@ -2153,4 +2021,3 @@ s32 SendConfigPkt(u8 u8Mode, tstrWID *pstrWIDs,
 
        return ret;
 }
-#endif
This page took 0.033064 seconds and 5 git commands to generate.