mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-14 08:36:12 -04:00
qcacld-3.0: Initialize spinlocks used for STA and SAP information update
qcacld-2.0 to qcacld-3.0 propagation Initialize spinlocks sap_update_info_lock and sta_update_info_lock which are used during SAP and STA information update respectively. These uninitialized spinlocks lead to crash during access due to bad magic value of the spinlock. Change-Id: I7d2df8337f9feed352430774907aa095affa5a69 CRs-Fixed: 1011996
This commit is contained in:
parent
1d8045cf0c
commit
7f63d05a48
5 changed files with 22 additions and 13 deletions
|
|
@ -1927,9 +1927,9 @@ bool cds_is_sta_connection_pending(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
spin_lock(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spin_lock(&hdd_ctx->sta_update_info_lock);
|
||||
status = hdd_ctx->is_sta_connection_pending;
|
||||
spin_unlock(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spin_unlock(&hdd_ctx->sta_update_info_lock);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
@ -1952,9 +1952,9 @@ void cds_change_sta_conn_pending_status(bool value)
|
|||
return;
|
||||
}
|
||||
|
||||
spin_lock(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spin_lock(&hdd_ctx->sta_update_info_lock);
|
||||
hdd_ctx->is_sta_connection_pending = value;
|
||||
spin_unlock(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spin_unlock(&hdd_ctx->sta_update_info_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -1976,9 +1976,9 @@ static bool cds_is_sap_restart_required(void)
|
|||
return false;
|
||||
}
|
||||
|
||||
spin_lock(&hdd_ctx->sap_update_info_lock);
|
||||
qdf_spin_lock(&hdd_ctx->sap_update_info_lock);
|
||||
status = hdd_ctx->is_sap_restart_required;
|
||||
spin_unlock(&hdd_ctx->sap_update_info_lock);
|
||||
qdf_spin_unlock(&hdd_ctx->sap_update_info_lock);
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
@ -2001,9 +2001,9 @@ void cds_change_sap_restart_required_status(bool value)
|
|||
return;
|
||||
}
|
||||
|
||||
spin_lock(&hdd_ctx->sap_update_info_lock);
|
||||
qdf_spin_lock(&hdd_ctx->sap_update_info_lock);
|
||||
hdd_ctx->is_sap_restart_required = value;
|
||||
spin_unlock(&hdd_ctx->sap_update_info_lock);
|
||||
qdf_spin_unlock(&hdd_ctx->sap_update_info_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -1320,8 +1320,8 @@ struct hdd_context_s {
|
|||
struct work_struct sap_start_work;
|
||||
bool is_sap_restart_required;
|
||||
bool is_sta_connection_pending;
|
||||
spinlock_t sap_update_info_lock;
|
||||
spinlock_t sta_update_info_lock;
|
||||
qdf_spinlock_t sap_update_info_lock;
|
||||
qdf_spinlock_t sta_update_info_lock;
|
||||
|
||||
uint8_t dev_dfs_cac_status;
|
||||
|
||||
|
|
|
|||
|
|
@ -116,6 +116,7 @@ int hdd_sap_context_init(hdd_context_t *hdd_ctx)
|
|||
|
||||
mutex_init(&hdd_ctx->sap_lock);
|
||||
qdf_wake_lock_create(&hdd_ctx->sap_wake_lock, "qcom_sap_wakelock");
|
||||
qdf_spinlock_create(&hdd_ctx->sap_update_info_lock);
|
||||
|
||||
mutex_init(&hdd_ctx->dfs_lock);
|
||||
|
||||
|
|
@ -220,6 +221,8 @@ void hdd_sap_context_destroy(hdd_context_t *hdd_ctx)
|
|||
|
||||
mutex_destroy(&hdd_ctx->dfs_lock);
|
||||
|
||||
qdf_spinlock_destroy(&hdd_ctx->sap_update_info_lock);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -8161,9 +8164,9 @@ static int __wlan_hdd_cfg80211_stop_ap(struct wiphy *wiphy,
|
|||
(QDF_SAP_MODE == pAdapter->device_mode)) {
|
||||
cds_flush_work(&pHddCtx->sap_start_work);
|
||||
hddLog(LOGW, FL("Canceled the pending restart work"));
|
||||
spin_lock(&pHddCtx->sap_update_info_lock);
|
||||
qdf_spin_lock(&pHddCtx->sap_update_info_lock);
|
||||
pHddCtx->is_sap_restart_required = false;
|
||||
spin_unlock(&pHddCtx->sap_update_info_lock);
|
||||
qdf_spin_unlock(&pHddCtx->sap_update_info_lock);
|
||||
}
|
||||
pAdapter->sessionCtx.ap.sapConfig.acs_cfg.acs_mode = false;
|
||||
if (pAdapter->sessionCtx.ap.sapConfig.acs_cfg.ch_list)
|
||||
|
|
|
|||
|
|
@ -4183,6 +4183,10 @@ void hdd_wlan_exit(hdd_context_t *hdd_ctx)
|
|||
QDF_ASSERT(QDF_IS_STATUS_SUCCESS(qdf_status));
|
||||
}
|
||||
|
||||
qdf_spinlock_destroy(&hdd_ctx->hdd_adapter_lock);
|
||||
qdf_spinlock_destroy(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spinlock_destroy(&hdd_ctx->connection_status_lock);
|
||||
|
||||
/*
|
||||
* Close CDS
|
||||
* This frees pMac(HAL) context. There should not be any call
|
||||
|
|
@ -5484,8 +5488,9 @@ static int hdd_context_init(hdd_context_t *hdd_ctx)
|
|||
hdd_init_bpf_completion();
|
||||
|
||||
qdf_spinlock_create(&hdd_ctx->connection_status_lock);
|
||||
|
||||
qdf_spinlock_create(&hdd_ctx->sta_update_info_lock);
|
||||
qdf_spinlock_create(&hdd_ctx->hdd_adapter_lock);
|
||||
|
||||
qdf_list_create(&hdd_ctx->hddAdapters, MAX_NUMBER_OF_ADAPTERS);
|
||||
|
||||
init_completion(&hdd_ctx->set_antenna_mode_cmpl);
|
||||
|
|
|
|||
|
|
@ -2502,6 +2502,7 @@ void hdd_cleanup_scan_queue(hdd_context_t *hdd_ctx)
|
|||
void hdd_scan_context_destroy(hdd_context_t *hdd_ctx)
|
||||
{
|
||||
qdf_list_destroy(&hdd_ctx->hdd_scan_req_q);
|
||||
qdf_spinlock_destroy(&hdd_ctx->sched_scan_lock);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Reference in a new issue