linux/drivers/staging/csr/csr_wifi_sme_free_upstream_contents.c
<<
>>
Prefs
   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