networking: make skb_put & friends return void pointers
[GitHub/moto-9609/android_kernel_motorola_exynos9610.git] / net / mac80211 / tx.c
index 04b22f8982fe42b41364d8d7feee0d5bd036c64a..ec5a9a72797efb0f905e0bfec42c7a88bf6202e7 100644 (file)
@@ -903,8 +903,8 @@ static int ieee80211_fragment(struct ieee80211_tx_data *tx,
                tmp->dev = skb->dev;
 
                /* copy header and data */
-               memcpy(skb_put(tmp, hdrlen), skb->data, hdrlen);
-               memcpy(skb_put(tmp, fraglen), skb->data + pos, fraglen);
+               skb_put_data(tmp, skb->data, hdrlen);
+               skb_put_data(tmp, skb->data + pos, fraglen);
 
                pos += fraglen;
        }
@@ -1340,9 +1340,16 @@ static struct sk_buff *fq_tin_dequeue_func(struct fq *fq,
 
        local = container_of(fq, struct ieee80211_local, fq);
        txqi = container_of(tin, struct txq_info, tin);
-       cparams = &local->cparams;
        cstats = &txqi->cstats;
 
+       if (txqi->txq.sta) {
+               struct sta_info *sta = container_of(txqi->txq.sta,
+                                                   struct sta_info, sta);
+               cparams = &sta->cparams;
+       } else {
+               cparams = &local->cparams;
+       }
+
        if (flow == &txqi->def_flow)
                cvars = &txqi->def_cvars;
        else
@@ -3037,7 +3044,7 @@ static bool ieee80211_amsdu_realloc_pad(struct ieee80211_local *local,
 
        if (padding) {
                *subframe_len += padding;
-               memset(skb_put(skb, padding), 0, padding);
+               skb_put_zero(skb, padding);
        }
 
        return true;
@@ -3867,7 +3874,7 @@ static void __ieee80211_beacon_add_tim(struct ieee80211_sub_if_data *sdata,
                        ps->dtim_count--;
        }
 
-       tim = pos = (u8 *) skb_put(skb, 6);
+       tim = pos = skb_put(skb, 6);
        *pos++ = WLAN_EID_TIM;
        *pos++ = 4;
        *pos++ = ps->dtim_count;
@@ -4125,8 +4132,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw,
                                goto out;
 
                        skb_reserve(skb, local->tx_headroom);
-                       memcpy(skb_put(skb, beacon->head_len), beacon->head,
-                              beacon->head_len);
+                       skb_put_data(skb, beacon->head, beacon->head_len);
 
                        ieee80211_beacon_add_tim(sdata, &ap->ps, skb,
                                                 is_template);
@@ -4140,8 +4146,8 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw,
                        }
 
                        if (beacon->tail)
-                               memcpy(skb_put(skb, beacon->tail_len),
-                                      beacon->tail, beacon->tail_len);
+                               skb_put_data(skb, beacon->tail,
+                                            beacon->tail_len);
                } else
                        goto out;
        } else if (sdata->vif.type == NL80211_IFTYPE_ADHOC) {
@@ -4164,8 +4170,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw,
                if (!skb)
                        goto out;
                skb_reserve(skb, local->tx_headroom);
-               memcpy(skb_put(skb, beacon->head_len), beacon->head,
-                      beacon->head_len);
+               skb_put_data(skb, beacon->head, beacon->head_len);
 
                hdr = (struct ieee80211_hdr *) skb->data;
                hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
@@ -4200,8 +4205,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw,
                if (!skb)
                        goto out;
                skb_reserve(skb, local->tx_headroom);
-               memcpy(skb_put(skb, beacon->head_len), beacon->head,
-                      beacon->head_len);
+               skb_put_data(skb, beacon->head, beacon->head_len);
                ieee80211_beacon_add_tim(sdata, &ifmsh->ps, skb, is_template);
 
                if (offs) {
@@ -4209,8 +4213,7 @@ __ieee80211_beacon_get(struct ieee80211_hw *hw,
                        offs->tim_length = skb->len - beacon->head_len;
                }
 
-               memcpy(skb_put(skb, beacon->tail_len), beacon->tail,
-                      beacon->tail_len);
+               skb_put_data(skb, beacon->tail, beacon->tail_len);
        } else {
                WARN_ON(1);
                goto out;
@@ -4330,7 +4333,7 @@ struct sk_buff *ieee80211_proberesp_get(struct ieee80211_hw *hw,
        if (!skb)
                goto out;
 
-       memcpy(skb_put(skb, presp->len), presp->data, presp->len);
+       skb_put_data(skb, presp->data, presp->len);
 
        hdr = (struct ieee80211_hdr *) skb->data;
        memset(hdr->addr1, 0, sizeof(hdr->addr1));
@@ -4363,8 +4366,7 @@ struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw,
 
        skb_reserve(skb, local->hw.extra_tx_headroom);
 
-       pspoll = (struct ieee80211_pspoll *) skb_put(skb, sizeof(*pspoll));
-       memset(pspoll, 0, sizeof(*pspoll));
+       pspoll = skb_put_zero(skb, sizeof(*pspoll));
        pspoll->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL |
                                            IEEE80211_STYPE_PSPOLL);
        pspoll->aid = cpu_to_le16(ifmgd->aid);
@@ -4401,9 +4403,7 @@ struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
 
        skb_reserve(skb, local->hw.extra_tx_headroom);
 
-       nullfunc = (struct ieee80211_hdr_3addr *) skb_put(skb,
-                                                         sizeof(*nullfunc));
-       memset(nullfunc, 0, sizeof(*nullfunc));
+       nullfunc = skb_put_zero(skb, sizeof(*nullfunc));
        nullfunc->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA |
                                              IEEE80211_STYPE_NULLFUNC |
                                              IEEE80211_FCTL_TODS);
@@ -4435,8 +4435,7 @@ struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw,
 
        skb_reserve(skb, local->hw.extra_tx_headroom);
 
-       hdr = (struct ieee80211_hdr_3addr *) skb_put(skb, sizeof(*hdr));
-       memset(hdr, 0, sizeof(*hdr));
+       hdr = skb_put_zero(skb, sizeof(*hdr));
        hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
                                         IEEE80211_STYPE_PROBE_REQ);
        eth_broadcast_addr(hdr->addr1);