wlan: Synchronize the ROC cancel and completion functions

While performing cancel existing remain on channel, remain on channel
callback is scheduled due to remain on channel timeout. As
a part of remain on channel callback, the remain_on_chan_ctx is freed
and later which will be de-referenced in cancel_existing_remain_on_chan
function when shceduled, leads to crash.

To mitigate this issue, synchronize the logic of cancelling existing
ROC and ROC completion on timeout by acquiring mutex locks.

Change-Id: I25e623067083d17bc0604349f0ab734c6b379f25
CRs-Fixed: 732460
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 6030812..5b710ea 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -9228,6 +9228,7 @@
    }
 
    mutex_init(&pHddCtx->sap_lock);
+   mutex_init(&pHddCtx->roc_lock);
 
 
 #ifdef WLAN_OPEN_SOURCE