Wlan: Check for Roam command in csrIsRoamCommandWaitingForSession.

If connect and disconnect comes in same order, connect command
will put eSmeCommandRoam to roamcmd Pending list.
If disconnect comes at the same time, driver is unable to
call cancel roaming as disconnect handler is not checking
for roamPending list.

csrRoamIssueConnect->csrQueueSmeCommand->
csrRequestFullPower->eHAL_STATUS_PMC_PENDING
as driver requests for FULL POWER. Driver adds Roam
command to pMac->roam.roamCmdPendingList.

Now if  supplicant calls disconnect
wlan_hdd_disconnect->sme_RoamDisconnect->
csrRoamDisconnect->csrRoamDisconnectInternal->
csrIsRoamCommandWaitingForSession

Here in csrIsRoamCommandWaitingForSession API driver is
checking only two lists
1.smeCmdActiveList
2. smeCmdPendingList
Now as Roam command is not in both these lists disconnect
command doesn't get processed.

CRs-Fixed: 606986
Change-Id: I55708f4f8667675ea46e39958b83d274e23293cb
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index c11cc26..b07d48d 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -7010,6 +7010,10 @@
         smsLog(pMac, LOG2, FL("called"));
         status = csrRoamIssueDisassociateCmd(pMac, sessionId, reason);
     }
+    else
+    {
+        smsLog( pMac, LOGE, FL("Roam command is not present"));
+    }
     return (status);
 }
 
@@ -7367,6 +7371,22 @@
         }
         csrLLUnlock(&pMac->sme.smeCmdPendingList);
     }
+    if (eANI_BOOLEAN_FALSE == fRet)
+    {
+        csrLLLock(&pMac->roam.roamCmdPendingList);
+        pEntry = csrLLPeekHead(&pMac->roam.roamCmdPendingList, LL_ACCESS_NOLOCK);
+        while (pEntry)
+        {
+            pCommand = GET_BASE_ADDR(pEntry, tSmeCmd, Link);
+            if (( eSmeCommandRoam == pCommand->command ) && ( sessionId == pCommand->sessionId ) )
+            {
+                fRet = eANI_BOOLEAN_TRUE;
+                break;
+            }
+            pEntry = csrLLNext(&pMac->roam.roamCmdPendingList, pEntry, LL_ACCESS_NOLOCK);
+        }
+        csrLLUnlock(&pMac->roam.roamCmdPendingList);
+    }
     csrLLUnlock( &pMac->sme.smeCmdActiveList );
     return (fRet);
 }