Fix for teardown of link on wrong session in Activmode offload context

In Active mode offload context when both P2P and STA links are present,
the heartbeatfailure on one session results in link loss on the other
session.handle missed beacon indication using the bssIdx passed by
firmware

Change-Id: Ie3208b18dc35685cae6499eba081195d7d4d4fea
CRs-fixed: 457247,454235
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index b08974e..d991e77 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -10074,10 +10074,22 @@
       }
       case WDI_MISSED_BEACON_IND:
       {
+         tpSirSmeMissedBeaconInd pMissBeacInd =
+            (tpSirSmeMissedBeaconInd)vos_mem_malloc(sizeof(tSirSmeMissedBeaconInd));
          VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_INFO,
                      "Received WDI_MISSED_BEACON_IND from WDI ");
          /* send IND to PE */
-         WDA_SendMsg(pWDA, WDA_MISSED_BEACON_IND, NULL, 0) ;
+         if(NULL == pMissBeacInd)
+         {
+             VOS_TRACE( VOS_MODULE_ID_WDA, VOS_TRACE_LEVEL_ERROR,
+                                 "%s: VOS MEM Alloc Failure", __func__);
+             break;
+         }
+         pMissBeacInd->messageType = WDA_MISSED_BEACON_IND;
+         pMissBeacInd->length = sizeof(tSirSmeMissedBeaconInd);
+         pMissBeacInd->bssIdx =
+             wdiLowLevelInd->wdiIndicationData.wdiMissedBeaconInd.bssIdx;
+         WDA_SendMsg(pWDA, WDA_MISSED_BEACON_IND, (void *)pMissBeacInd , 0) ;
          break ;
       }
       case WDI_UNKNOWN_ADDR2_FRAME_RX_IND: