These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / staging / rtl8192u / ieee80211 / rtl819x_BAProc.c
index 618d2cb..3bde744 100644 (file)
@@ -110,7 +110,7 @@ void ResetBaEntry(PBA_RECORD pBA)
 static struct sk_buff *ieee80211_ADDBA(struct ieee80211_device *ieee, u8 *Dst, PBA_RECORD pBA, u16 StatusCode, u8 type)
 {
        struct sk_buff *skb = NULL;
-        struct ieee80211_hdr_3addr *BAReq = NULL;
+        struct rtl_80211_hdr_3addr *BAReq = NULL;
        u8 *tag = NULL;
        u16 len = ieee->tx_headroom + 9;
        //category(1) + action field(1) + Dialog Token(1) + BA Parameter Set(2) +  BA Timeout Value(2) +  BA Start SeqCtrl(2)(or StatusCode(2))
@@ -120,17 +120,17 @@ static struct sk_buff *ieee80211_ADDBA(struct ieee80211_device *ieee, u8 *Dst, P
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "pBA is NULL\n");
                return NULL;
        }
-       skb = dev_alloc_skb(len + sizeof( struct ieee80211_hdr_3addr)); //need to add something others? FIXME
+       skb = dev_alloc_skb(len + sizeof( struct rtl_80211_hdr_3addr)); //need to add something others? FIXME
        if (skb == NULL)
        {
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "can't alloc skb for ADDBA_REQ\n");
                return NULL;
        }
 
-       memset(skb->data, 0, sizeof( struct ieee80211_hdr_3addr));      //I wonder whether it's necessary. Apparently kernel will not do it when alloc a skb.
+       memset(skb->data, 0, sizeof( struct rtl_80211_hdr_3addr));      //I wonder whether it's necessary. Apparently kernel will not do it when alloc a skb.
        skb_reserve(skb, ieee->tx_headroom);
 
-       BAReq = ( struct ieee80211_hdr_3addr *) skb_put(skb,sizeof( struct ieee80211_hdr_3addr));
+       BAReq = ( struct rtl_80211_hdr_3addr *) skb_put(skb,sizeof( struct rtl_80211_hdr_3addr));
 
        memcpy(BAReq->addr1, Dst, ETH_ALEN);
        memcpy(BAReq->addr2, ieee->dev->dev_addr, ETH_ALEN);
@@ -139,7 +139,7 @@ static struct sk_buff *ieee80211_ADDBA(struct ieee80211_device *ieee, u8 *Dst, P
 
        BAReq->frame_ctl = cpu_to_le16(IEEE80211_STYPE_MANAGE_ACT); //action frame
 
-       //tag += sizeof( struct ieee80211_hdr_3addr); //move to action field
+       //tag += sizeof( struct rtl_80211_hdr_3addr); //move to action field
        tag = (u8 *)skb_put(skb, 9);
        *tag ++= ACT_CAT_BA;
        *tag ++= type;
@@ -195,7 +195,7 @@ static struct sk_buff *ieee80211_DELBA(
 {
        DELBA_PARAM_SET DelbaParamSet;
        struct sk_buff *skb = NULL;
-        struct ieee80211_hdr_3addr *Delba = NULL;
+        struct rtl_80211_hdr_3addr *Delba = NULL;
        u8 *tag = NULL;
        //len = head len + DELBA Parameter Set(2) + Reason Code(2)
        u16 len = 6 + ieee->tx_headroom;
@@ -208,16 +208,16 @@ static struct sk_buff *ieee80211_DELBA(
        DelbaParamSet.field.Initiator   = (TxRxSelect==TX_DIR)?1:0;
        DelbaParamSet.field.TID = pBA->BaParamSet.field.TID;
 
-       skb = dev_alloc_skb(len + sizeof( struct ieee80211_hdr_3addr)); //need to add something others? FIXME
+       skb = dev_alloc_skb(len + sizeof( struct rtl_80211_hdr_3addr)); //need to add something others? FIXME
        if (skb == NULL)
        {
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "can't alloc skb for ADDBA_REQ\n");
                return NULL;
        }
-//     memset(skb->data, 0, len+sizeof( struct ieee80211_hdr_3addr));
+//     memset(skb->data, 0, len+sizeof( struct rtl_80211_hdr_3addr));
        skb_reserve(skb, ieee->tx_headroom);
 
-       Delba = ( struct ieee80211_hdr_3addr *) skb_put(skb,sizeof( struct ieee80211_hdr_3addr));
+       Delba = ( struct rtl_80211_hdr_3addr *) skb_put(skb,sizeof( struct rtl_80211_hdr_3addr));
 
        memcpy(Delba->addr1, dst, ETH_ALEN);
        memcpy(Delba->addr2, ieee->dev->dev_addr, ETH_ALEN);
@@ -333,7 +333,7 @@ static void ieee80211_send_DELBA(struct ieee80211_device *ieee, u8 *dst,
 ********************************************************************************************************************/
 int ieee80211_rx_ADDBAReq(struct ieee80211_device *ieee, struct sk_buff *skb)
 {
-        struct ieee80211_hdr_3addr *req = NULL;
+        struct rtl_80211_hdr_3addr *req = NULL;
        u16 rc = 0;
        u8 *dst = NULL, *pDialogToken = NULL, *tag = NULL;
        PBA_RECORD pBA = NULL;
@@ -342,20 +342,20 @@ int ieee80211_rx_ADDBAReq(struct ieee80211_device *ieee, struct sk_buff *skb)
        PSEQUENCE_CONTROL pBaStartSeqCtrl = NULL;
        PRX_TS_RECORD   pTS = NULL;
 
-       if (skb->len < sizeof(struct ieee80211_hdr_3addr) + 9) {
+       if (skb->len < sizeof(struct rtl_80211_hdr_3addr) + 9) {
                IEEE80211_DEBUG(IEEE80211_DL_ERR,
                                " Invalid skb len in BAREQ(%d / %zu)\n",
                                skb->len,
-                               (sizeof(struct ieee80211_hdr_3addr) + 9));
+                               (sizeof(struct rtl_80211_hdr_3addr) + 9));
                return -1;
        }
 
        IEEE80211_DEBUG_DATA(IEEE80211_DL_DATA|IEEE80211_DL_BA, skb->data, skb->len);
 
-       req = (struct ieee80211_hdr_3addr *) skb->data;
+       req = (struct rtl_80211_hdr_3addr *) skb->data;
        tag = (u8 *)req;
        dst = (u8 *)(&req->addr2[0]);
-       tag += sizeof(struct ieee80211_hdr_3addr);
+       tag += sizeof(struct rtl_80211_hdr_3addr);
        pDialogToken = tag + 2;  //category+action
        pBaParamSet = (PBA_PARAM_SET)(tag + 3);   //+DialogToken
        pBaTimeoutVal = (u16 *)(tag + 5);
@@ -364,8 +364,8 @@ int ieee80211_rx_ADDBAReq(struct ieee80211_device *ieee, struct sk_buff *skb)
        printk("====================>rx ADDBAREQ from :%pM\n", dst);
 //some other capability is not ready now.
        if ((ieee->current_network.qos_data.active == 0) ||
-               (ieee->pHTInfo->bCurrentHTSupport == false)) //||
-       //      (ieee->pStaQos->bEnableRxImmBA == false)        )
+               (!ieee->pHTInfo->bCurrentHTSupport)) //||
+       //      (!ieee->pStaQos->bEnableRxImmBA)        )
        {
                rc = ADDBA_STATUS_REFUSED;
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "Failed to reply on ADDBA_REQ as some capability is not ready(%d, %d)\n", ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport);
@@ -435,7 +435,7 @@ OnADDBAReq_Fail:
 ********************************************************************************************************************/
 int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee, struct sk_buff *skb)
 {
-        struct ieee80211_hdr_3addr *rsp = NULL;
+        struct rtl_80211_hdr_3addr *rsp = NULL;
        PBA_RECORD              pPendingBA, pAdmittedBA;
        PTX_TS_RECORD           pTS = NULL;
        u8 *dst = NULL, *pDialogToken = NULL, *tag = NULL;
@@ -443,17 +443,17 @@ int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee, struct sk_buff *skb)
        PBA_PARAM_SET           pBaParamSet = NULL;
        u16                     ReasonCode;
 
-       if (skb->len < sizeof(struct ieee80211_hdr_3addr) + 9) {
+       if (skb->len < sizeof(struct rtl_80211_hdr_3addr) + 9) {
                IEEE80211_DEBUG(IEEE80211_DL_ERR,
                                " Invalid skb len in BARSP(%d / %zu)\n",
                                skb->len,
-                               (sizeof(struct ieee80211_hdr_3addr) + 9));
+                               (sizeof(struct rtl_80211_hdr_3addr) + 9));
                return -1;
        }
-       rsp = (struct ieee80211_hdr_3addr *)skb->data;
+       rsp = (struct rtl_80211_hdr_3addr *)skb->data;
        tag = (u8 *)rsp;
        dst = (u8 *)(&rsp->addr2[0]);
-       tag += sizeof(struct ieee80211_hdr_3addr);
+       tag += sizeof(struct rtl_80211_hdr_3addr);
        pDialogToken = tag + 2;
        pStatusCode = (u16 *)(tag + 3);
        pBaParamSet = (PBA_PARAM_SET)(tag + 5);
@@ -462,8 +462,8 @@ int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee, struct sk_buff *skb)
        // Check the capability
        // Since we can always receive A-MPDU, we just check if it is under HT mode.
        if (ieee->current_network.qos_data.active == 0  ||
-           ieee->pHTInfo->bCurrentHTSupport == false ||
-           ieee->pHTInfo->bCurrentAMPDUEnable == false) {
+           !ieee->pHTInfo->bCurrentHTSupport ||
+           !ieee->pHTInfo->bCurrentAMPDUEnable) {
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "reject to ADDBA_RSP as some capability is not ready(%d, %d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport, ieee->pHTInfo->bCurrentAMPDUEnable);
                ReasonCode = DELBA_REASON_UNKNOWN_BA;
                goto OnADDBARsp_Reject;
@@ -502,7 +502,7 @@ int ieee80211_rx_ADDBARsp(struct ieee80211_device *ieee, struct sk_buff *skb)
                IEEE80211_DEBUG(IEEE80211_DL_BA, "OnADDBARsp(): Recv ADDBA Rsp. Drop because already admit it! \n");
                return -1;
        }
-       else if((pPendingBA->bValid == false) ||(*pDialogToken != pPendingBA->DialogToken))
+       else if((!pPendingBA->bValid) ||(*pDialogToken != pPendingBA->DialogToken))
        {
                IEEE80211_DEBUG(IEEE80211_DL_ERR,  "OnADDBARsp(): Recv ADDBA Rsp. BA invalid, DELBA! \n");
                ReasonCode = DELBA_REASON_UNKNOWN_BA;
@@ -569,32 +569,29 @@ OnADDBARsp_Reject:
 ********************************************************************************************************************/
 int ieee80211_rx_DELBA(struct ieee80211_device *ieee, struct sk_buff *skb)
 {
-        struct ieee80211_hdr_3addr *delba = NULL;
+        struct rtl_80211_hdr_3addr *delba = NULL;
        PDELBA_PARAM_SET        pDelBaParamSet = NULL;
-       u16                     *pReasonCode = NULL;
        u8                      *dst = NULL;
 
-       if (skb->len < sizeof(struct ieee80211_hdr_3addr) + 6) {
+       if (skb->len < sizeof(struct rtl_80211_hdr_3addr) + 6) {
                IEEE80211_DEBUG(IEEE80211_DL_ERR,
                                " Invalid skb len in DELBA(%d / %zu)\n",
                                skb->len,
-                               (sizeof(struct ieee80211_hdr_3addr) + 6));
+                               (sizeof(struct rtl_80211_hdr_3addr) + 6));
                return -1;
        }
 
        if (ieee->current_network.qos_data.active == 0 ||
-               ieee->pHTInfo->bCurrentHTSupport == false )
+           !ieee->pHTInfo->bCurrentHTSupport)
        {
                IEEE80211_DEBUG(IEEE80211_DL_ERR, "received DELBA while QOS or HT is not supported(%d, %d)\n",ieee->current_network.qos_data.active, ieee->pHTInfo->bCurrentHTSupport);
                return -1;
        }
 
        IEEE80211_DEBUG_DATA(IEEE80211_DL_DATA|IEEE80211_DL_BA, skb->data, skb->len);
-       delba = (struct ieee80211_hdr_3addr *)skb->data;
+       delba = (struct rtl_80211_hdr_3addr *)skb->data;
        dst = (u8 *)(&delba->addr2[0]);
-       delba += sizeof(struct ieee80211_hdr_3addr);
-       pDelBaParamSet = (PDELBA_PARAM_SET)(delba+2);
-       pReasonCode = (u16 *)(delba+4);
+       pDelBaParamSet = (PDELBA_PARAM_SET)&delba->payload[2];
 
        if(pDelBaParamSet->field.Initiator == 1)
        {