1/***************************************************************************** 2 3 (c) Cambridge Silicon Radio Limited 2011 4 All rights reserved and confidential information of CSR 5 6 Refer to LICENSE.txt included with this source for details 7 on the license terms. 8 9*****************************************************************************/ 10 11/* Note: this is an auto-generated file. */ 12#include <linux/slab.h> 13#include "csr_wifi_sme_prim.h" 14#include "csr_wifi_sme_lib.h" 15 16/*----------------------------------------------------------------------------* 17 * NAME 18 * CsrWifiSmeFreeUpstreamMessageContents 19 * 20 * DESCRIPTION 21 * 22 * 23 * PARAMETERS 24 * eventClass: only the value CSR_WIFI_SME_PRIM will be handled 25 * message: the message to free 26 *----------------------------------------------------------------------------*/ 27void CsrWifiSmeFreeUpstreamMessageContents(u16 eventClass, void *message) 28{ 29 if (eventClass != CSR_WIFI_SME_PRIM) 30 { 31 return; 32 } 33 if (NULL == message) 34 { 35 return; 36 } 37 38 switch (*((CsrWifiSmePrim *) message)) 39 { 40 case CSR_WIFI_SME_ASSOCIATION_COMPLETE_IND: 41 { 42 CsrWifiSmeAssociationCompleteInd *p = (CsrWifiSmeAssociationCompleteInd *)message; 43 kfree(p->connectionInfo.beaconFrame); 44 p->connectionInfo.beaconFrame = NULL; 45 kfree(p->connectionInfo.associationReqFrame); 46 p->connectionInfo.associationReqFrame = NULL; 47 kfree(p->connectionInfo.associationRspFrame); 48 p->connectionInfo.associationRspFrame = NULL; 49 kfree(p->connectionInfo.assocScanInfoElements); 50 p->connectionInfo.assocScanInfoElements = NULL; 51 kfree(p->connectionInfo.assocReqInfoElements); 52 p->connectionInfo.assocReqInfoElements = NULL; 53 kfree(p->connectionInfo.assocRspInfoElements); 54 p->connectionInfo.assocRspInfoElements = NULL; 55 break; 56 } 57 case CSR_WIFI_SME_BLACKLIST_CFM: 58 { 59 CsrWifiSmeBlacklistCfm *p = (CsrWifiSmeBlacklistCfm *)message; 60 kfree(p->getAddresses); 61 p->getAddresses = NULL; 62 break; 63 } 64 case CSR_WIFI_SME_CALIBRATION_DATA_GET_CFM: 65 { 66 CsrWifiSmeCalibrationDataGetCfm *p = (CsrWifiSmeCalibrationDataGetCfm *)message; 67 kfree(p->calibrationData); 68 p->calibrationData = NULL; 69 break; 70 } 71 case CSR_WIFI_SME_CONNECTION_CONFIG_GET_CFM: 72 { 73 CsrWifiSmeConnectionConfigGetCfm *p = (CsrWifiSmeConnectionConfigGetCfm *)message; 74 kfree(p->connectionConfig.mlmeAssociateReqInformationElements); 75 p->connectionConfig.mlmeAssociateReqInformationElements = NULL; 76 break; 77 } 78 case CSR_WIFI_SME_CONNECTION_INFO_GET_CFM: 79 { 80 CsrWifiSmeConnectionInfoGetCfm *p = (CsrWifiSmeConnectionInfoGetCfm *)message; 81 kfree(p->connectionInfo.beaconFrame); 82 p->connectionInfo.beaconFrame = NULL; 83 kfree(p->connectionInfo.associationReqFrame); 84 p->connectionInfo.associationReqFrame = NULL; 85 kfree(p->connectionInfo.associationRspFrame); 86 p->connectionInfo.associationRspFrame = NULL; 87 kfree(p->connectionInfo.assocScanInfoElements); 88 p->connectionInfo.assocScanInfoElements = NULL; 89 kfree(p->connectionInfo.assocReqInfoElements); 90 p->connectionInfo.assocReqInfoElements = NULL; 91 kfree(p->connectionInfo.assocRspInfoElements); 92 p->connectionInfo.assocRspInfoElements = NULL; 93 break; 94 } 95 case CSR_WIFI_SME_MEDIA_STATUS_IND: 96 { 97 CsrWifiSmeMediaStatusInd *p = (CsrWifiSmeMediaStatusInd *)message; 98 kfree(p->connectionInfo.beaconFrame); 99 p->connectionInfo.beaconFrame = NULL; 100 kfree(p->connectionInfo.associationReqFrame); 101 p->connectionInfo.associationReqFrame = NULL; 102 kfree(p->connectionInfo.associationRspFrame); 103 p->connectionInfo.associationRspFrame = NULL; 104 kfree(p->connectionInfo.assocScanInfoElements); 105 p->connectionInfo.assocScanInfoElements = NULL; 106 kfree(p->connectionInfo.assocReqInfoElements); 107 p->connectionInfo.assocReqInfoElements = NULL; 108 kfree(p->connectionInfo.assocRspInfoElements); 109 p->connectionInfo.assocRspInfoElements = NULL; 110 break; 111 } 112 case CSR_WIFI_SME_MIB_GET_CFM: 113 { 114 CsrWifiSmeMibGetCfm *p = (CsrWifiSmeMibGetCfm *)message; 115 kfree(p->mibAttribute); 116 p->mibAttribute = NULL; 117 break; 118 } 119 case CSR_WIFI_SME_MIB_GET_NEXT_CFM: 120 { 121 CsrWifiSmeMibGetNextCfm *p = (CsrWifiSmeMibGetNextCfm *)message; 122 kfree(p->mibAttribute); 123 p->mibAttribute = NULL; 124 break; 125 } 126 case CSR_WIFI_SME_MULTICAST_ADDRESS_CFM: 127 { 128 CsrWifiSmeMulticastAddressCfm *p = (CsrWifiSmeMulticastAddressCfm *)message; 129 kfree(p->getAddresses); 130 p->getAddresses = NULL; 131 break; 132 } 133 case CSR_WIFI_SME_PMKID_CANDIDATE_LIST_IND: 134 { 135 CsrWifiSmePmkidCandidateListInd *p = (CsrWifiSmePmkidCandidateListInd *)message; 136 kfree(p->pmkidCandidates); 137 p->pmkidCandidates = NULL; 138 break; 139 } 140 case CSR_WIFI_SME_PMKID_CFM: 141 { 142 CsrWifiSmePmkidCfm *p = (CsrWifiSmePmkidCfm *)message; 143 kfree(p->getPmkids); 144 p->getPmkids = NULL; 145 break; 146 } 147 case CSR_WIFI_SME_SCAN_CONFIG_GET_CFM: 148 { 149 CsrWifiSmeScanConfigGetCfm *p = (CsrWifiSmeScanConfigGetCfm *)message; 150 kfree(p->scanConfig.passiveChannelList); 151 p->scanConfig.passiveChannelList = NULL; 152 break; 153 } 154 case CSR_WIFI_SME_SCAN_RESULT_IND: 155 { 156 CsrWifiSmeScanResultInd *p = (CsrWifiSmeScanResultInd *)message; 157 kfree(p->result.informationElements); 158 p->result.informationElements = NULL; 159 switch (p->result.p2pDeviceRole) 160 { 161 case CSR_WIFI_SME_P2P_ROLE_GO: 162 { 163 u16 i4; 164 for (i4 = 0; i4 < p->result.deviceInfo.groupInfo.p2pClientInfoCount; i4++) 165 { 166 kfree(p->result.deviceInfo.groupInfo.p2PClientInfo[i4].clientDeviceInfo.secDeviceType); 167 p->result.deviceInfo.groupInfo.p2PClientInfo[i4].clientDeviceInfo.secDeviceType = NULL; 168 } 169 } 170 kfree(p->result.deviceInfo.groupInfo.p2PClientInfo); 171 p->result.deviceInfo.groupInfo.p2PClientInfo = NULL; 172 break; 173 case CSR_WIFI_SME_P2P_ROLE_STANDALONE: 174 kfree(p->result.deviceInfo.standalonedevInfo.secDeviceType); 175 p->result.deviceInfo.standalonedevInfo.secDeviceType = NULL; 176 break; 177 default: 178 break; 179 } 180 break; 181 } 182 case CSR_WIFI_SME_SCAN_RESULTS_GET_CFM: 183 { 184 CsrWifiSmeScanResultsGetCfm *p = (CsrWifiSmeScanResultsGetCfm *)message; 185 { 186 u16 i1; 187 for (i1 = 0; i1 < p->scanResultsCount; i1++) 188 { 189 kfree(p->scanResults[i1].informationElements); 190 p->scanResults[i1].informationElements = NULL; 191 switch (p->scanResults[i1].p2pDeviceRole) 192 { 193 case CSR_WIFI_SME_P2P_ROLE_GO: 194 { 195 u16 i4; 196 for (i4 = 0; i4 < p->scanResults[i1].deviceInfo.groupInfo.p2pClientInfoCount; i4++) 197 { 198 kfree(p->scanResults[i1].deviceInfo.groupInfo.p2PClientInfo[i4].clientDeviceInfo.secDeviceType); 199 p->scanResults[i1].deviceInfo.groupInfo.p2PClientInfo[i4].clientDeviceInfo.secDeviceType = NULL; 200 } 201 } 202 kfree(p->scanResults[i1].deviceInfo.groupInfo.p2PClientInfo); 203 p->scanResults[i1].deviceInfo.groupInfo.p2PClientInfo = NULL; 204 break; 205 case CSR_WIFI_SME_P2P_ROLE_STANDALONE: 206 kfree(p->scanResults[i1].deviceInfo.standalonedevInfo.secDeviceType); 207 p->scanResults[i1].deviceInfo.standalonedevInfo.secDeviceType = NULL; 208 break; 209 default: 210 break; 211 } 212 } 213 } 214 kfree(p->scanResults); 215 p->scanResults = NULL; 216 break; 217 } 218 case CSR_WIFI_SME_TSPEC_IND: 219 { 220 CsrWifiSmeTspecInd *p = (CsrWifiSmeTspecInd *)message; 221 kfree(p->tspec); 222 p->tspec = NULL; 223 break; 224 } 225 case CSR_WIFI_SME_TSPEC_CFM: 226 { 227 CsrWifiSmeTspecCfm *p = (CsrWifiSmeTspecCfm *)message; 228 kfree(p->tspec); 229 p->tspec = NULL; 230 break; 231 } 232 case CSR_WIFI_SME_VERSIONS_GET_CFM: 233 { 234 CsrWifiSmeVersionsGetCfm *p = (CsrWifiSmeVersionsGetCfm *)message; 235 kfree(p->versions.routerBuild); 236 p->versions.routerBuild = NULL; 237 kfree(p->versions.smeBuild); 238 p->versions.smeBuild = NULL; 239 break; 240 } 241 case CSR_WIFI_SME_CLOAKED_SSIDS_GET_CFM: 242 { 243 CsrWifiSmeCloakedSsidsGetCfm *p = (CsrWifiSmeCloakedSsidsGetCfm *)message; 244 kfree(p->cloakedSsids.cloakedSsids); 245 p->cloakedSsids.cloakedSsids = NULL; 246 break; 247 } 248 case CSR_WIFI_SME_ERROR_IND: 249 { 250 CsrWifiSmeErrorInd *p = (CsrWifiSmeErrorInd *)message; 251 kfree(p->errorMessage); 252 p->errorMessage = NULL; 253 break; 254 } 255 case CSR_WIFI_SME_INFO_IND: 256 { 257 CsrWifiSmeInfoInd *p = (CsrWifiSmeInfoInd *)message; 258 kfree(p->infoMessage); 259 p->infoMessage = NULL; 260 break; 261 } 262 case CSR_WIFI_SME_CORE_DUMP_IND: 263 { 264 CsrWifiSmeCoreDumpInd *p = (CsrWifiSmeCoreDumpInd *)message; 265 kfree(p->data); 266 p->data = NULL; 267 break; 268 } 269 270 default: 271 break; 272 } 273} 274 275 276