We currently do this:
int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif)
...
      struct wl12xx_arp_rsp_template *tmpl;
      struct ieee80211_hdr_3addr *hdr;
...
      tmpl = (struct wl12xx_arp_rsp_template *)skb_put(skb, sizeof(*tmpl));
      memset(tmpl, 0, sizeof(tmpl));
...
      hdr = (struct ieee80211_hdr_3addr *)skb_push(skb, sizeof(*hdr));
      memset(hdr, 0, sizeof(hdr));
...
I believe we want to set the entire structures to 0 with those
memset() calls, not just zero the initial part of them (size of the
pointer bytes).
Signed-off-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Luciano Coelho <coelho@ti.com>
        skb_reserve(skb, sizeof(*hdr) + WL1271_EXTRA_SPACE_MAX);
 
        tmpl = (struct wl12xx_arp_rsp_template *)skb_put(skb, sizeof(*tmpl));
-       memset(tmpl, 0, sizeof(tmpl));
+       memset(tmpl, 0, sizeof(*tmpl));
 
        /* llc layer */
        memcpy(tmpl->llc_hdr, rfc1042_header, sizeof(rfc1042_header));
 
        /* mac80211 header */
        hdr = (struct ieee80211_hdr_3addr *)skb_push(skb, sizeof(*hdr));
-       memset(hdr, 0, sizeof(hdr));
+       memset(hdr, 0, sizeof(*hdr));
        fc = IEEE80211_FTYPE_DATA | IEEE80211_FCTL_TODS;
        if (wlvif->sta.qos)
                fc |= IEEE80211_STYPE_QOS_DATA;