aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2017-06-16 08:29:19 -0400
committerDavid S. Miller <davem@davemloft.net>2017-06-16 11:48:35 -0400
commitb080db585384b9f037e015c0c28d1ad33be41dfc (patch)
treeea9cc5c3161d776b948283a3d4f483cbf578e043
parent61f73d1ea4c68544b959228ead7ef5c021791b14 (diff)
networking: convert many more places to skb_put_zero()
There were many places that my previous spatch didn't find, as pointed out by yuan linyu in various patches. The following spatch found many more and also removes the now unnecessary casts: @@ identifier p, p2; expression len; expression skb; type t, t2; @@ ( -p = skb_put(skb, len); +p = skb_put_zero(skb, len); | -p = (t)skb_put(skb, len); +p = skb_put_zero(skb, len); ) ... when != p ( p2 = (t2)p; -memset(p2, 0, len); | -memset(p, 0, len); ) @@ type t, t2; identifier p, p2; expression skb; @@ t *p; ... ( -p = skb_put(skb, sizeof(t)); +p = skb_put_zero(skb, sizeof(t)); | -p = (t *)skb_put(skb, sizeof(t)); +p = skb_put_zero(skb, sizeof(t)); ) ... when != p ( p2 = (t2)p; -memset(p2, 0, sizeof(*p)); | -memset(p, 0, sizeof(*p)); ) @@ expression skb, len; @@ -memset(skb_put(skb, len), 0, len); +skb_put_zero(skb, len); Apply it to the tree (with one manual fixup to keep the comment in vxlan.c, which spatch removed.) Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/infiniband/hw/cxgb3/cxio_hal.c6
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_cm.c3
-rw-r--r--drivers/infiniband/hw/cxgb3/iwch_qp.c6
-rw-r--r--drivers/infiniband/hw/cxgb4/cm.c9
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c2
-rw-r--r--drivers/net/usb/cdc_ncm.c4
-rw-r--r--drivers/net/usb/kalmia.c2
-rw-r--r--drivers/net/vxlan.c4
-rw-r--r--drivers/net/wireless/ath/ath9k/channel.c3
-rw-r--r--drivers/net/wireless/intersil/hostap/hostap_ap.c7
-rw-r--r--drivers/net/wireless/intersil/hostap/hostap_main.c4
-rw-r--r--drivers/net/wireless/intersil/p54/txrx.c3
-rw-r--r--drivers/net/wireless/marvell/mwifiex/cmdevt.c3
-rw-r--r--drivers/net/wireless/marvell/mwifiex/tdls.c3
-rw-r--r--drivers/net/wireless/quantenna/qtnfmac/commands.c10
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/base.c6
-rw-r--r--drivers/net/wireless/ti/wlcore/cmd.c3
-rw-r--r--drivers/net/wireless/ti/wlcore/main.c5
-rw-r--r--drivers/scsi/fcoe/fcoe_ctlr.c3
-rw-r--r--drivers/scsi/libfc/fc_libfc.c2
-rw-r--r--drivers/usb/gadget/function/f_ncm.c15
-rw-r--r--net/atm/signaling.c3
-rw-r--r--net/batman-adv/bat_v_elp.c3
-rw-r--r--net/bridge/netfilter/nft_reject_bridge.c6
-rw-r--r--net/core/pktgen.c4
-rw-r--r--net/ipv4/ipconfig.c3
-rw-r--r--net/ipv4/netfilter/nf_reject_ipv4.c3
-rw-r--r--net/ipv6/mcast.c3
-rw-r--r--net/key/af_key.c9
-rw-r--r--net/mac80211/agg-rx.c3
-rw-r--r--net/mac80211/agg-tx.c6
-rw-r--r--net/mac80211/debugfs_netdev.c5
-rw-r--r--net/mac80211/ht.c3
-rw-r--r--net/mac80211/mesh.c3
-rw-r--r--net/mac80211/mesh_hwmp.c6
-rw-r--r--net/mac80211/mesh_plink.c3
-rw-r--r--net/mac80211/mesh_ps.c2
-rw-r--r--net/mac80211/mlme.c6
-rw-r--r--net/mac80211/rx.c3
-rw-r--r--net/mac80211/spectmgmt.c3
-rw-r--r--net/mac80211/tdls.c6
-rw-r--r--net/mac80211/tx.c12
-rw-r--r--net/mac80211/util.c6
-rw-r--r--net/ncsi/ncsi-cmd.c36
-rw-r--r--net/openvswitch/datapath.c2
-rw-r--r--net/qrtr/qrtr.c9
-rw-r--r--net/rxrpc/sendmsg.c2
-rw-r--r--net/sctp/output.c2
-rw-r--r--net/sctp/sm_make_chunk.c3
49 files changed, 89 insertions, 169 deletions
diff --git a/drivers/infiniband/hw/cxgb3/cxio_hal.c b/drivers/infiniband/hw/cxgb3/cxio_hal.c
index 558d6a03375d..97f7f9544e70 100644
--- a/drivers/infiniband/hw/cxgb3/cxio_hal.c
+++ b/drivers/infiniband/hw/cxgb3/cxio_hal.c
@@ -142,8 +142,7 @@ static int cxio_hal_clear_qp_ctx(struct cxio_rdev *rdev_p, u32 qpid)
142 pr_debug("%s alloc_skb failed\n", __func__); 142 pr_debug("%s alloc_skb failed\n", __func__);
143 return -ENOMEM; 143 return -ENOMEM;
144 } 144 }
145 wqe = (struct t3_modify_qp_wr *) skb_put(skb, sizeof(*wqe)); 145 wqe = skb_put_zero(skb, sizeof(*wqe));
146 memset(wqe, 0, sizeof(*wqe));
147 build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 146 build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD,
148 T3_COMPLETION_FLAG | T3_NOTIFY_FLAG, 0, qpid, 7, 147 T3_COMPLETION_FLAG | T3_NOTIFY_FLAG, 0, qpid, 7,
149 T3_SOPEOP); 148 T3_SOPEOP);
@@ -561,8 +560,7 @@ static int cxio_hal_init_ctrl_qp(struct cxio_rdev *rdev_p)
561 ctx1 |= ((u64) (V_EC_BASE_HI((u32) base_addr & 0xf) | V_EC_RESPQ(0) | 560 ctx1 |= ((u64) (V_EC_BASE_HI((u32) base_addr & 0xf) | V_EC_RESPQ(0) |
562 V_EC_TYPE(0) | V_EC_GEN(1) | 561 V_EC_TYPE(0) | V_EC_GEN(1) |
563 V_EC_UP_TOKEN(T3_CTL_QP_TID) | F_EC_VALID)) << 32; 562 V_EC_UP_TOKEN(T3_CTL_QP_TID) | F_EC_VALID)) << 32;
564 wqe = (struct t3_modify_qp_wr *) skb_put(skb, sizeof(*wqe)); 563 wqe = skb_put_zero(skb, sizeof(*wqe));
565 memset(wqe, 0, sizeof(*wqe));
566 build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 0, 0, 564 build_fw_riwrh((struct fw_riwrh *) wqe, T3_WR_QP_MOD, 0, 0,
567 T3_CTL_QP_TID, 7, T3_SOPEOP); 565 T3_CTL_QP_TID, 7, T3_SOPEOP);
568 wqe->flags = cpu_to_be32(MODQP_WRITE_EC); 566 wqe->flags = cpu_to_be32(MODQP_WRITE_EC);
diff --git a/drivers/infiniband/hw/cxgb3/iwch_cm.c b/drivers/infiniband/hw/cxgb3/iwch_cm.c
index b61630eba912..f4c23a74f18c 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_cm.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_cm.c
@@ -417,8 +417,7 @@ static int send_abort(struct iwch_ep *ep, struct sk_buff *skb, gfp_t gfp)
417 } 417 }
418 skb->priority = CPL_PRIORITY_DATA; 418 skb->priority = CPL_PRIORITY_DATA;
419 set_arp_failure_handler(skb, abort_arp_failure); 419 set_arp_failure_handler(skb, abort_arp_failure);
420 req = (struct cpl_abort_req *) skb_put(skb, sizeof(*req)); 420 req = skb_put_zero(skb, sizeof(*req));
421 memset(req, 0, sizeof(*req));
422 req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ)); 421 req->wr.wr_hi = htonl(V_WR_OP(FW_WROPCODE_OFLD_HOST_ABORT_CON_REQ));
423 req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid)); 422 req->wr.wr_lo = htonl(V_WR_TID(ep->hwtid));
424 OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, ep->hwtid)); 423 OPCODE_TID(req) = htonl(MK_OPCODE_TID(CPL_ABORT_REQ, ep->hwtid));
diff --git a/drivers/infiniband/hw/cxgb3/iwch_qp.c b/drivers/infiniband/hw/cxgb3/iwch_qp.c
index ba6d5d281b03..7f633da0185d 100644
--- a/drivers/infiniband/hw/cxgb3/iwch_qp.c
+++ b/drivers/infiniband/hw/cxgb3/iwch_qp.c
@@ -670,8 +670,7 @@ int iwch_post_zb_read(struct iwch_ep *ep)
670 pr_err("%s cannot send zb_read!!\n", __func__); 670 pr_err("%s cannot send zb_read!!\n", __func__);
671 return -ENOMEM; 671 return -ENOMEM;
672 } 672 }
673 wqe = (union t3_wr *)skb_put(skb, sizeof(struct t3_rdma_read_wr)); 673 wqe = skb_put_zero(skb, sizeof(struct t3_rdma_read_wr));
674 memset(wqe, 0, sizeof(struct t3_rdma_read_wr));
675 wqe->read.rdmaop = T3_READ_REQ; 674 wqe->read.rdmaop = T3_READ_REQ;
676 wqe->read.reserved[0] = 0; 675 wqe->read.reserved[0] = 0;
677 wqe->read.reserved[1] = 0; 676 wqe->read.reserved[1] = 0;
@@ -702,8 +701,7 @@ int iwch_post_terminate(struct iwch_qp *qhp, struct respQ_msg_t *rsp_msg)
702 pr_err("%s cannot send TERMINATE!\n", __func__); 701 pr_err("%s cannot send TERMINATE!\n", __func__);
703 return -ENOMEM; 702 return -ENOMEM;
704 } 703 }
705 wqe = (union t3_wr *)skb_put(skb, 40); 704 wqe = skb_put_zero(skb, 40);
706 memset(wqe, 0, 40);
707 wqe->send.rdmaop = T3_TERMINATE; 705 wqe->send.rdmaop = T3_TERMINATE;
708 706
709 /* immediate data length */ 707 /* immediate data length */
diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
index 2f1136bf7b1f..7c32a7c7977d 100644
--- a/drivers/infiniband/hw/cxgb4/cm.c
+++ b/drivers/infiniband/hw/cxgb4/cm.c
@@ -927,8 +927,7 @@ static int send_mpa_req(struct c4iw_ep *ep, struct sk_buff *skb,
927 } 927 }
928 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx); 928 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx);
929 929
930 req = (struct fw_ofld_tx_data_wr *)skb_put(skb, wrlen); 930 req = skb_put_zero(skb, wrlen);
931 memset(req, 0, wrlen);
932 req->op_to_immdlen = cpu_to_be32( 931 req->op_to_immdlen = cpu_to_be32(
933 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) | 932 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) |
934 FW_WR_COMPL_F | 933 FW_WR_COMPL_F |
@@ -1034,8 +1033,7 @@ static int send_mpa_reject(struct c4iw_ep *ep, const void *pdata, u8 plen)
1034 } 1033 }
1035 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx); 1034 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx);
1036 1035
1037 req = (struct fw_ofld_tx_data_wr *)skb_put(skb, wrlen); 1036 req = skb_put_zero(skb, wrlen);
1038 memset(req, 0, wrlen);
1039 req->op_to_immdlen = cpu_to_be32( 1037 req->op_to_immdlen = cpu_to_be32(
1040 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) | 1038 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) |
1041 FW_WR_COMPL_F | 1039 FW_WR_COMPL_F |
@@ -1115,8 +1113,7 @@ static int send_mpa_reply(struct c4iw_ep *ep, const void *pdata, u8 plen)
1115 } 1113 }
1116 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx); 1114 set_wr_txq(skb, CPL_PRIORITY_DATA, ep->txq_idx);
1117 1115
1118 req = (struct fw_ofld_tx_data_wr *) skb_put(skb, wrlen); 1116 req = skb_put_zero(skb, wrlen);
1119 memset(req, 0, wrlen);
1120 req->op_to_immdlen = cpu_to_be32( 1117 req->op_to_immdlen = cpu_to_be32(
1121 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) | 1118 FW_WR_OP_V(FW_OFLD_TX_DATA_WR) |
1122 FW_WR_COMPL_F | 1119 FW_WR_COMPL_F |
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
index 5225f2226a67..601abf240d63 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_selftest.c
@@ -172,7 +172,7 @@ static struct sk_buff *mlx5e_test_get_udp_skb(struct mlx5e_priv *priv)
172 mlxh->magic = cpu_to_be64(MLX5E_TEST_MAGIC); 172 mlxh->magic = cpu_to_be64(MLX5E_TEST_MAGIC);
173 strlcpy(mlxh->text, mlx5e_test_text, sizeof(mlxh->text)); 173 strlcpy(mlxh->text, mlx5e_test_text, sizeof(mlxh->text));
174 datalen -= sizeof(*mlxh); 174 datalen -= sizeof(*mlxh);
175 memset(skb_put(skb, datalen), 0, datalen); 175 skb_put_zero(skb, datalen);
176 176
177 skb->csum = 0; 177 skb->csum = 0;
178 skb->ip_summed = CHECKSUM_PARTIAL; 178 skb->ip_summed = CHECKSUM_PARTIAL;
diff --git a/drivers/net/usb/cdc_ncm.c b/drivers/net/usb/cdc_ncm.c
index b5cec1824a78..7f02954772c6 100644
--- a/drivers/net/usb/cdc_ncm.c
+++ b/drivers/net/usb/cdc_ncm.c
@@ -1017,7 +1017,7 @@ static void cdc_ncm_align_tail(struct sk_buff *skb, size_t modulus, size_t remai
1017 if (skb->len + align > max) 1017 if (skb->len + align > max)
1018 align = max - skb->len; 1018 align = max - skb->len;
1019 if (align && skb_tailroom(skb) >= align) 1019 if (align && skb_tailroom(skb) >= align)
1020 memset(skb_put(skb, align), 0, align); 1020 skb_put_zero(skb, align);
1021} 1021}
1022 1022
1023/* return a pointer to a valid struct usb_cdc_ncm_ndp16 of type sign, possibly 1023/* return a pointer to a valid struct usb_cdc_ncm_ndp16 of type sign, possibly
@@ -1247,7 +1247,7 @@ cdc_ncm_fill_tx_frame(struct usbnet *dev, struct sk_buff *skb, __le32 sign)
1247 if (!(dev->driver_info->flags & FLAG_SEND_ZLP) && 1247 if (!(dev->driver_info->flags & FLAG_SEND_ZLP) &&
1248 skb_out->len > ctx->min_tx_pkt) { 1248 skb_out->len > ctx->min_tx_pkt) {
1249 padding_count = ctx->tx_max - skb_out->len; 1249 padding_count = ctx->tx_max - skb_out->len;
1250 memset(skb_put(skb_out, padding_count), 0, padding_count); 1250 skb_put_zero(skb_out, padding_count);
1251 } else if (skb_out->len < ctx->tx_max && 1251 } else if (skb_out->len < ctx->tx_max &&
1252 (skb_out->len % dev->maxpacket) == 0) { 1252 (skb_out->len % dev->maxpacket) == 0) {
1253 *skb_put(skb_out, 1) = 0; /* force short packet */ 1253 *skb_put(skb_out, 1) = 0; /* force short packet */
diff --git a/drivers/net/usb/kalmia.c b/drivers/net/usb/kalmia.c
index 8aefb282c862..ce0b0b4e3a57 100644
--- a/drivers/net/usb/kalmia.c
+++ b/drivers/net/usb/kalmia.c
@@ -217,7 +217,7 @@ done:
217 remainder = skb->len % KALMIA_ALIGN_SIZE; 217 remainder = skb->len % KALMIA_ALIGN_SIZE;
218 if (remainder > 0) { 218 if (remainder > 0) {
219 padlen = KALMIA_ALIGN_SIZE - remainder; 219 padlen = KALMIA_ALIGN_SIZE - remainder;
220 memset(skb_put(skb, padlen), 0, padlen); 220 skb_put_zero(skb, padlen);
221 } 221 }
222 222
223 netdev_dbg(dev->net, 223 netdev_dbg(dev->net,
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 25b70cad055c..4e1d427d340c 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -1584,10 +1584,8 @@ static struct sk_buff *vxlan_na_create(struct sk_buff *request,
1584 skb_pull(reply, sizeof(struct ipv6hdr)); 1584 skb_pull(reply, sizeof(struct ipv6hdr));
1585 skb_reset_transport_header(reply); 1585 skb_reset_transport_header(reply);
1586 1586
1587 na = (struct nd_msg *)skb_put(reply, sizeof(*na) + na_olen);
1588
1589 /* Neighbor Advertisement */ 1587 /* Neighbor Advertisement */
1590 memset(na, 0, sizeof(*na)+na_olen); 1588 na = skb_put_zero(reply, sizeof(*na) + na_olen);
1591 na->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT; 1589 na->icmph.icmp6_type = NDISC_NEIGHBOUR_ADVERTISEMENT;
1592 na->icmph.icmp6_router = isrouter; 1590 na->icmph.icmp6_router = isrouter;
1593 na->icmph.icmp6_override = 1; 1591 na->icmph.icmp6_override = 1;
diff --git a/drivers/net/wireless/ath/ath9k/channel.c b/drivers/net/wireless/ath/ath9k/channel.c
index b84539d89f1a..373b1e9457fd 100644
--- a/drivers/net/wireless/ath/ath9k/channel.c
+++ b/drivers/net/wireless/ath/ath9k/channel.c
@@ -1526,8 +1526,7 @@ void ath9k_beacon_add_noa(struct ath_softc *sc, struct ath_vif *avp,
1526 hdr[1] = sizeof(noa_ie_hdr) + noa_len - 2; 1526 hdr[1] = sizeof(noa_ie_hdr) + noa_len - 2;
1527 hdr[7] = noa_len; 1527 hdr[7] = noa_len;
1528 1528
1529 noa = (void *) skb_put(skb, noa_len); 1529 noa = skb_put_zero(skb, noa_len);
1530 memset(noa, 0, noa_len);
1531 1530
1532 noa->index = avp->noa_index; 1531 noa->index = avp->noa_index;
1533 noa->oppps_ctwindow = ath9k_get_ctwin(sc, avp); 1532 noa->oppps_ctwindow = ath9k_get_ctwin(sc, avp);
diff --git a/drivers/net/wireless/intersil/hostap/hostap_ap.c b/drivers/net/wireless/intersil/hostap/hostap_ap.c
index c995ace153ee..89b5987303a4 100644
--- a/drivers/net/wireless/intersil/hostap/hostap_ap.c
+++ b/drivers/net/wireless/intersil/hostap/hostap_ap.c
@@ -998,12 +998,10 @@ static void prism2_send_mgmt(struct net_device *dev,
998 998
999 fc = type_subtype; 999 fc = type_subtype;
1000 hdrlen = hostap_80211_get_hdrlen(cpu_to_le16(type_subtype)); 1000 hdrlen = hostap_80211_get_hdrlen(cpu_to_le16(type_subtype));
1001 hdr = (struct ieee80211_hdr *) skb_put(skb, hdrlen); 1001 hdr = skb_put_zero(skb, hdrlen);
1002 if (body) 1002 if (body)
1003 memcpy(skb_put(skb, body_len), body, body_len); 1003 memcpy(skb_put(skb, body_len), body, body_len);
1004 1004
1005 memset(hdr, 0, hdrlen);
1006
1007 /* FIX: ctrl::ack sending used special HFA384X_TX_CTRL_802_11 1005 /* FIX: ctrl::ack sending used special HFA384X_TX_CTRL_802_11
1008 * tx_control instead of using local->tx_control */ 1006 * tx_control instead of using local->tx_control */
1009 1007
@@ -1325,8 +1323,7 @@ static char * ap_auth_make_challenge(struct ap_data *ap)
1325 } 1323 }
1326 1324
1327 skb_reserve(skb, ap->crypt->extra_mpdu_prefix_len); 1325 skb_reserve(skb, ap->crypt->extra_mpdu_prefix_len);
1328 memset(skb_put(skb, WLAN_AUTH_CHALLENGE_LEN), 0, 1326 skb_put_zero(skb, WLAN_AUTH_CHALLENGE_LEN);
1329 WLAN_AUTH_CHALLENGE_LEN);
1330 if (ap->crypt->encrypt_mpdu(skb, 0, ap->crypt_priv)) { 1327 if (ap->crypt->encrypt_mpdu(skb, 0, ap->crypt_priv)) {
1331 dev_kfree_skb(skb); 1328 dev_kfree_skb(skb);
1332 kfree(tmpbuf); 1329 kfree(tmpbuf);
diff --git a/drivers/net/wireless/intersil/hostap/hostap_main.c b/drivers/net/wireless/intersil/hostap/hostap_main.c
index 1372b20f931e..400f9b5d620e 100644
--- a/drivers/net/wireless/intersil/hostap/hostap_main.c
+++ b/drivers/net/wireless/intersil/hostap/hostap_main.c
@@ -1039,9 +1039,7 @@ int prism2_sta_send_mgmt(local_info_t *local, u8 *dst, u16 stype,
1039 if (skb == NULL) 1039 if (skb == NULL)
1040 return -ENOMEM; 1040 return -ENOMEM;
1041 1041
1042 mgmt = (struct hostap_ieee80211_mgmt *) 1042 mgmt = skb_put_zero(skb, IEEE80211_MGMT_HDR_LEN);
1043 skb_put(skb, IEEE80211_MGMT_HDR_LEN);
1044 memset(mgmt, 0, IEEE80211_MGMT_HDR_LEN);
1045 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | stype); 1043 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | stype);
1046 memcpy(mgmt->da, dst, ETH_ALEN); 1044 memcpy(mgmt->da, dst, ETH_ALEN);
1047 memcpy(mgmt->sa, dev->dev_addr, ETH_ALEN); 1045 memcpy(mgmt->sa, dev->dev_addr, ETH_ALEN);
diff --git a/drivers/net/wireless/intersil/p54/txrx.c b/drivers/net/wireless/intersil/p54/txrx.c
index 5e1c91a80c58..60f9b678ef74 100644
--- a/drivers/net/wireless/intersil/p54/txrx.c
+++ b/drivers/net/wireless/intersil/p54/txrx.c
@@ -910,8 +910,7 @@ void p54_tx_80211(struct ieee80211_hw *dev,
910 } 910 }
911 /* reserve some space for ICV */ 911 /* reserve some space for ICV */
912 len += info->control.hw_key->icv_len; 912 len += info->control.hw_key->icv_len;
913 memset(skb_put(skb, info->control.hw_key->icv_len), 0, 913 skb_put_zero(skb, info->control.hw_key->icv_len);
914 info->control.hw_key->icv_len);
915 } else { 914 } else {
916 txhdr->key_type = 0; 915 txhdr->key_type = 0;
917 txhdr->key_len = 0; 916 txhdr->key_len = 0;
diff --git a/drivers/net/wireless/marvell/mwifiex/cmdevt.c b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
index 40c3fe5ab8ca..8dad52886034 100644
--- a/drivers/net/wireless/marvell/mwifiex/cmdevt.c
+++ b/drivers/net/wireless/marvell/mwifiex/cmdevt.c
@@ -622,8 +622,7 @@ int mwifiex_send_cmd(struct mwifiex_private *priv, u16 cmd_no,
622 return -1; 622 return -1;
623 } 623 }
624 624
625 memset(skb_put(cmd_node->cmd_skb, sizeof(struct host_cmd_ds_command)), 625 skb_put_zero(cmd_node->cmd_skb, sizeof(struct host_cmd_ds_command));
626 0, sizeof(struct host_cmd_ds_command));
627 626
628 cmd_ptr = (struct host_cmd_ds_command *) (cmd_node->cmd_skb->data); 627 cmd_ptr = (struct host_cmd_ds_command *) (cmd_node->cmd_skb->data);
629 cmd_ptr->command = cpu_to_le16(cmd_no); 628 cmd_ptr->command = cpu_to_le16(cmd_no);
diff --git a/drivers/net/wireless/marvell/mwifiex/tdls.c b/drivers/net/wireless/marvell/mwifiex/tdls.c
index b7d124dbef0c..c76b7315af55 100644
--- a/drivers/net/wireless/marvell/mwifiex/tdls.c
+++ b/drivers/net/wireless/marvell/mwifiex/tdls.c
@@ -388,8 +388,7 @@ mwifiex_tdls_add_wmm_param_ie(struct mwifiex_private *priv, struct sk_buff *skb)
388 u8 ac_be[] = {0x03, 0xa4, 0x00, 0x00}; 388 u8 ac_be[] = {0x03, 0xa4, 0x00, 0x00};
389 u8 ac_bk[] = {0x27, 0xa4, 0x00, 0x00}; 389 u8 ac_bk[] = {0x27, 0xa4, 0x00, 0x00};
390 390
391 wmm = (void *)skb_put(skb, sizeof(*wmm)); 391 wmm = skb_put_zero(skb, sizeof(*wmm));
392 memset(wmm, 0, sizeof(*wmm));
393 392
394 wmm->element_id = WLAN_EID_VENDOR_SPECIFIC; 393 wmm->element_id = WLAN_EID_VENDOR_SPECIFIC;
395 wmm->len = sizeof(*wmm) - 2; 394 wmm->len = sizeof(*wmm) - 2;
diff --git a/drivers/net/wireless/quantenna/qtnfmac/commands.c b/drivers/net/wireless/quantenna/qtnfmac/commands.c
index f0a0cfa7d8a1..37c3bececa1f 100644
--- a/drivers/net/wireless/quantenna/qtnfmac/commands.c
+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c
@@ -135,7 +135,7 @@ static struct sk_buff *qtnf_cmd_alloc_new_cmdskb(u8 macid, u8 vifid, u16 cmd_no,
135 return NULL; 135 return NULL;
136 } 136 }
137 137
138 memset(skb_put(cmd_skb, cmd_size), 0, cmd_size); 138 skb_put_zero(cmd_skb, cmd_size);
139 139
140 cmd = (struct qlink_cmd *)cmd_skb->data; 140 cmd = (struct qlink_cmd *)cmd_skb->data;
141 cmd->mhdr.len = cpu_to_le16(cmd_skb->len); 141 cmd->mhdr.len = cpu_to_le16(cmd_skb->len);
@@ -238,9 +238,7 @@ int qtnf_cmd_send_config_ap(struct qtnf_vif *vif)
238 bss_cfg->bcn_period); 238 bss_cfg->bcn_period);
239 qtnf_cmd_skb_put_tlv_u8(cmd_skb, QTN_TLV_ID_DTIM, bss_cfg->dtim); 239 qtnf_cmd_skb_put_tlv_u8(cmd_skb, QTN_TLV_ID_DTIM, bss_cfg->dtim);
240 240
241 qchan = (struct qlink_tlv_channel *)skb_put(cmd_skb, sizeof(*qchan)); 241 qchan = skb_put_zero(cmd_skb, sizeof(*qchan));
242
243 memset(qchan, 0, sizeof(*qchan));
244 qchan->hdr.type = cpu_to_le16(QTN_TLV_ID_CHANNEL); 242 qchan->hdr.type = cpu_to_le16(QTN_TLV_ID_CHANNEL);
245 qchan->hdr.len = cpu_to_le16(sizeof(*qchan) - 243 qchan->hdr.len = cpu_to_le16(sizeof(*qchan) -
246 sizeof(struct qlink_tlv_hdr)); 244 sizeof(struct qlink_tlv_hdr));
@@ -1794,9 +1792,7 @@ int qtnf_cmd_send_scan(struct qtnf_wmac *mac)
1794 pr_debug("MAC%u: scan chan=%d, freq=%d, flags=%#x\n", 1792 pr_debug("MAC%u: scan chan=%d, freq=%d, flags=%#x\n",
1795 mac->macid, sc->hw_value, sc->center_freq, 1793 mac->macid, sc->hw_value, sc->center_freq,
1796 sc->flags); 1794 sc->flags);
1797 qchan = (struct qlink_tlv_channel *) 1795 qchan = skb_put_zero(cmd_skb, sizeof(*qchan));
1798 skb_put(cmd_skb, sizeof(*qchan));
1799 memset(qchan, 0, sizeof(*qchan));
1800 flags = 0; 1796 flags = 0;
1801 1797
1802 qchan->hdr.type = cpu_to_le16(QTN_TLV_ID_CHANNEL); 1798 qchan->hdr.type = cpu_to_le16(QTN_TLV_ID_CHANNEL);
diff --git a/drivers/net/wireless/realtek/rtlwifi/base.c b/drivers/net/wireless/realtek/rtlwifi/base.c
index bdc379178e87..710e5b447cff 100644
--- a/drivers/net/wireless/realtek/rtlwifi/base.c
+++ b/drivers/net/wireless/realtek/rtlwifi/base.c
@@ -1875,8 +1875,7 @@ static struct sk_buff *rtl_make_smps_action(struct ieee80211_hw *hw,
1875 return NULL; 1875 return NULL;
1876 1876
1877 skb_reserve(skb, hw->extra_tx_headroom); 1877 skb_reserve(skb, hw->extra_tx_headroom);
1878 action_frame = (void *)skb_put(skb, 27); 1878 action_frame = skb_put_zero(skb, 27);
1879 memset(action_frame, 0, 27);
1880 memcpy(action_frame->da, da, ETH_ALEN); 1879 memcpy(action_frame->da, da, ETH_ALEN);
1881 memcpy(action_frame->sa, rtlefuse->dev_addr, ETH_ALEN); 1880 memcpy(action_frame->sa, rtlefuse->dev_addr, ETH_ALEN);
1882 memcpy(action_frame->bssid, bssid, ETH_ALEN); 1881 memcpy(action_frame->bssid, bssid, ETH_ALEN);
@@ -2005,8 +2004,7 @@ struct sk_buff *rtl_make_del_ba(struct ieee80211_hw *hw,
2005 return NULL; 2004 return NULL;
2006 2005
2007 skb_reserve(skb, hw->extra_tx_headroom); 2006 skb_reserve(skb, hw->extra_tx_headroom);
2008 action_frame = (void *)skb_put(skb, 34); 2007 action_frame = skb_put_zero(skb, 34);
2009 memset(action_frame, 0, 34);
2010 memcpy(action_frame->sa, sa, ETH_ALEN); 2008 memcpy(action_frame->sa, sa, ETH_ALEN);
2011 memcpy(action_frame->da, rtlefuse->dev_addr, ETH_ALEN); 2009 memcpy(action_frame->da, rtlefuse->dev_addr, ETH_ALEN);
2012 memcpy(action_frame->bssid, bssid, ETH_ALEN); 2010 memcpy(action_frame->bssid, bssid, ETH_ALEN);
diff --git a/drivers/net/wireless/ti/wlcore/cmd.c b/drivers/net/wireless/ti/wlcore/cmd.c
index 7f4da727bb7b..4a39fb13c478 100644
--- a/drivers/net/wireless/ti/wlcore/cmd.c
+++ b/drivers/net/wireless/ti/wlcore/cmd.c
@@ -1233,8 +1233,7 @@ int wl1271_cmd_build_arp_rsp(struct wl1271 *wl, struct wl12xx_vif *wlvif)
1233 1233
1234 skb_reserve(skb, sizeof(*hdr) + WL1271_EXTRA_SPACE_MAX); 1234 skb_reserve(skb, sizeof(*hdr) + WL1271_EXTRA_SPACE_MAX);
1235 1235
1236 tmpl = (struct wl12xx_arp_rsp_template *)skb_put(skb, sizeof(*tmpl)); 1236 tmpl = skb_put_zero(skb, sizeof(*tmpl));
1237 memset(tmpl, 0, sizeof(*tmpl));
1238 1237
1239 /* llc layer */ 1238 /* llc layer */
1240 memcpy(tmpl->llc_hdr, rfc1042_header, sizeof(rfc1042_header)); 1239 memcpy(tmpl->llc_hdr, rfc1042_header, sizeof(rfc1042_header));
diff --git a/drivers/net/wireless/ti/wlcore/main.c b/drivers/net/wireless/ti/wlcore/main.c
index 382ec15ec1af..60aaa850fbd1 100644
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
@@ -1308,13 +1308,12 @@ static struct sk_buff *wl12xx_alloc_dummy_packet(struct wl1271 *wl)
1308 1308
1309 skb_reserve(skb, sizeof(struct wl1271_tx_hw_descr)); 1309 skb_reserve(skb, sizeof(struct wl1271_tx_hw_descr));
1310 1310
1311 hdr = (struct ieee80211_hdr_3addr *) skb_put(skb, sizeof(*hdr)); 1311 hdr = skb_put_zero(skb, sizeof(*hdr));
1312 memset(hdr, 0, sizeof(*hdr));
1313 hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA | 1312 hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA |
1314 IEEE80211_STYPE_NULLFUNC | 1313 IEEE80211_STYPE_NULLFUNC |
1315 IEEE80211_FCTL_TODS); 1314 IEEE80211_FCTL_TODS);
1316 1315
1317 memset(skb_put(skb, dummy_packet_size), 0, dummy_packet_size); 1316 skb_put_zero(skb, dummy_packet_size);
1318 1317
1319 /* Dummy packets require the TID to be management */ 1318 /* Dummy packets require the TID to be management */
1320 skb->priority = WL1271_TID_MGMT; 1319 skb->priority = WL1271_TID_MGMT;
diff --git a/drivers/scsi/fcoe/fcoe_ctlr.c b/drivers/scsi/fcoe/fcoe_ctlr.c
index 656463ff9ccb..e17bdb3adf9e 100644
--- a/drivers/scsi/fcoe/fcoe_ctlr.c
+++ b/drivers/scsi/fcoe/fcoe_ctlr.c
@@ -660,8 +660,7 @@ static int fcoe_ctlr_encaps(struct fcoe_ctlr *fip, struct fc_lport *lport,
660 660
661 if (op != ELS_LS_RJT) { 661 if (op != ELS_LS_RJT) {
662 dlen += sizeof(*mac); 662 dlen += sizeof(*mac);
663 mac = (struct fip_mac_desc *)skb_put(skb, sizeof(*mac)); 663 mac = skb_put_zero(skb, sizeof(*mac));
664 memset(mac, 0, sizeof(*mac));
665 mac->fd_desc.fip_dtype = FIP_DT_MAC; 664 mac->fd_desc.fip_dtype = FIP_DT_MAC;
666 mac->fd_desc.fip_dlen = sizeof(*mac) / FIP_BPW; 665 mac->fd_desc.fip_dlen = sizeof(*mac) / FIP_BPW;
667 if (dtype != FIP_DT_FLOGI && dtype != FIP_DT_FDISC) { 666 if (dtype != FIP_DT_FLOGI && dtype != FIP_DT_FDISC) {
diff --git a/drivers/scsi/libfc/fc_libfc.c b/drivers/scsi/libfc/fc_libfc.c
index d623d084b7ec..dbadbc81b24b 100644
--- a/drivers/scsi/libfc/fc_libfc.c
+++ b/drivers/scsi/libfc/fc_libfc.c
@@ -178,7 +178,7 @@ void fc_fill_hdr(struct fc_frame *fp, const struct fc_frame *in_fp,
178 fill = -fr_len(fp) & 3; 178 fill = -fr_len(fp) & 3;
179 if (fill) { 179 if (fill) {
180 /* TODO, this may be a problem with fragmented skb */ 180 /* TODO, this may be a problem with fragmented skb */
181 memset(skb_put(fp_skb(fp), fill), 0, fill); 181 skb_put_zero(fp_skb(fp), fill);
182 f_ctl |= fill; 182 f_ctl |= fill;
183 } 183 }
184 fr_eof(fp) = FC_EOF_T; 184 fr_eof(fp) = FC_EOF_T;
diff --git a/drivers/usb/gadget/function/f_ncm.c b/drivers/usb/gadget/function/f_ncm.c
index 864819ff9a7d..2882c6d3ae66 100644
--- a/drivers/usb/gadget/function/f_ncm.c
+++ b/drivers/usb/gadget/function/f_ncm.c
@@ -1004,8 +1004,7 @@ static struct sk_buff *package_for_tx(struct f_ncm *ncm)
1004 } 1004 }
1005 1005
1006 /* Insert NDP alignment. */ 1006 /* Insert NDP alignment. */
1007 ntb_iter = (void *) skb_put(skb2, ndp_pad); 1007 ntb_iter = skb_put_zero(skb2, ndp_pad);
1008 memset(ntb_iter, 0, ndp_pad);
1009 1008
1010 /* Copy NTB across. */ 1009 /* Copy NTB across. */
1011 ntb_iter = (void *) skb_put(skb2, ncm->skb_tx_ndp->len); 1010 ntb_iter = (void *) skb_put(skb2, ncm->skb_tx_ndp->len);
@@ -1014,8 +1013,7 @@ static struct sk_buff *package_for_tx(struct f_ncm *ncm)
1014 ncm->skb_tx_ndp = NULL; 1013 ncm->skb_tx_ndp = NULL;
1015 1014
1016 /* Insert zero'd datagram. */ 1015 /* Insert zero'd datagram. */
1017 ntb_iter = (void *) skb_put(skb2, dgram_idx_len); 1016 ntb_iter = skb_put_zero(skb2, dgram_idx_len);
1018 memset(ntb_iter, 0, dgram_idx_len);
1019 1017
1020 return skb2; 1018 return skb2;
1021} 1019}
@@ -1080,8 +1078,7 @@ static struct sk_buff *ncm_wrap_ntb(struct gether *port,
1080 goto err; 1078 goto err;
1081 1079
1082 ncm->skb_tx_data->dev = ncm->netdev; 1080 ncm->skb_tx_data->dev = ncm->netdev;
1083 ntb_data = (void *) skb_put(ncm->skb_tx_data, ncb_len); 1081 ntb_data = skb_put_zero(ncm->skb_tx_data, ncb_len);
1084 memset(ntb_data, 0, ncb_len);
1085 /* dwSignature */ 1082 /* dwSignature */
1086 put_unaligned_le32(opts->nth_sign, ntb_data); 1083 put_unaligned_le32(opts->nth_sign, ntb_data);
1087 ntb_data += 2; 1084 ntb_data += 2;
@@ -1118,8 +1115,7 @@ static struct sk_buff *ncm_wrap_ntb(struct gether *port,
1118 HRTIMER_MODE_REL); 1115 HRTIMER_MODE_REL);
1119 1116
1120 /* Add the datagram position entries */ 1117 /* Add the datagram position entries */
1121 ntb_ndp = (void *) skb_put(ncm->skb_tx_ndp, dgram_idx_len); 1118 ntb_ndp = skb_put_zero(ncm->skb_tx_ndp, dgram_idx_len);
1122 memset(ntb_ndp, 0, dgram_idx_len);
1123 1119
1124 ncb_len = ncm->skb_tx_data->len; 1120 ncb_len = ncm->skb_tx_data->len;
1125 dgram_pad = ALIGN(ncb_len, div) + rem - ncb_len; 1121 dgram_pad = ALIGN(ncb_len, div) + rem - ncb_len;
@@ -1132,8 +1128,7 @@ static struct sk_buff *ncm_wrap_ntb(struct gether *port,
1132 ncm->ndp_dgram_count++; 1128 ncm->ndp_dgram_count++;
1133 1129
1134 /* Add the new data to the skb */ 1130 /* Add the new data to the skb */
1135 ntb_data = (void *) skb_put(ncm->skb_tx_data, dgram_pad); 1131 ntb_data = skb_put_zero(ncm->skb_tx_data, dgram_pad);
1136 memset(ntb_data, 0, dgram_pad);
1137 ntb_data = (void *) skb_put(ncm->skb_tx_data, skb->len); 1132 ntb_data = (void *) skb_put(ncm->skb_tx_data, skb->len);
1138 memcpy(ntb_data, skb->data, skb->len); 1133 memcpy(ntb_data, skb->data, skb->len);
1139 dev_consume_skb_any(skb); 1134 dev_consume_skb_any(skb);
diff --git a/net/atm/signaling.c b/net/atm/signaling.c
index adb6e3d21b1e..f640a99e14b8 100644
--- a/net/atm/signaling.c
+++ b/net/atm/signaling.c
@@ -150,8 +150,7 @@ void sigd_enq2(struct atm_vcc *vcc, enum atmsvc_msg_type type,
150 pr_debug("%d (0x%p)\n", (int)type, vcc); 150 pr_debug("%d (0x%p)\n", (int)type, vcc);
151 while (!(skb = alloc_skb(sizeof(struct atmsvc_msg), GFP_KERNEL))) 151 while (!(skb = alloc_skb(sizeof(struct atmsvc_msg), GFP_KERNEL)))
152 schedule(); 152 schedule();
153 msg = (struct atmsvc_msg *)skb_put(skb, sizeof(struct atmsvc_msg)); 153 msg = skb_put_zero(skb, sizeof(struct atmsvc_msg));
154 memset(msg, 0, sizeof(*msg));
155 msg->type = type; 154 msg->type = type;
156 *(struct atm_vcc **) &msg->vcc = vcc; 155 *(struct atm_vcc **) &msg->vcc = vcc;
157 *(struct atm_vcc **) &msg->listen_vcc = listen_vcc; 156 *(struct atm_vcc **) &msg->listen_vcc = listen_vcc;
diff --git a/net/batman-adv/bat_v_elp.c b/net/batman-adv/bat_v_elp.c
index b58007b79e3a..bd1064d98e16 100644
--- a/net/batman-adv/bat_v_elp.c
+++ b/net/batman-adv/bat_v_elp.c
@@ -346,9 +346,8 @@ int batadv_v_elp_iface_enable(struct batadv_hard_iface *hard_iface)
346 goto out; 346 goto out;
347 347
348 skb_reserve(hard_iface->bat_v.elp_skb, ETH_HLEN + NET_IP_ALIGN); 348 skb_reserve(hard_iface->bat_v.elp_skb, ETH_HLEN + NET_IP_ALIGN);
349 elp_buff = skb_put(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN); 349 elp_buff = skb_put_zero(hard_iface->bat_v.elp_skb, BATADV_ELP_HLEN);
350 elp_packet = (struct batadv_elp_packet *)elp_buff; 350 elp_packet = (struct batadv_elp_packet *)elp_buff;
351 memset(elp_packet, 0, BATADV_ELP_HLEN);
352 351
353 elp_packet->packet_type = BATADV_ELP; 352 elp_packet->packet_type = BATADV_ELP;
354 elp_packet->version = BATADV_COMPAT_VERSION; 353 elp_packet->version = BATADV_COMPAT_VERSION;
diff --git a/net/bridge/netfilter/nft_reject_bridge.c b/net/bridge/netfilter/nft_reject_bridge.c
index c16dd3a47fc6..bb6ed8e97580 100644
--- a/net/bridge/netfilter/nft_reject_bridge.c
+++ b/net/bridge/netfilter/nft_reject_bridge.c
@@ -147,8 +147,7 @@ static void nft_reject_br_send_v4_unreach(struct net *net,
147 net->ipv4.sysctl_ip_default_ttl); 147 net->ipv4.sysctl_ip_default_ttl);
148 148
149 skb_reset_transport_header(nskb); 149 skb_reset_transport_header(nskb);
150 icmph = (struct icmphdr *)skb_put(nskb, sizeof(struct icmphdr)); 150 icmph = skb_put_zero(nskb, sizeof(struct icmphdr));
151 memset(icmph, 0, sizeof(*icmph));
152 icmph->type = ICMP_DEST_UNREACH; 151 icmph->type = ICMP_DEST_UNREACH;
153 icmph->code = code; 152 icmph->code = code;
154 153
@@ -275,8 +274,7 @@ static void nft_reject_br_send_v6_unreach(struct net *net,
275 net->ipv6.devconf_all->hop_limit); 274 net->ipv6.devconf_all->hop_limit);
276 275
277 skb_reset_transport_header(nskb); 276 skb_reset_transport_header(nskb);
278 icmp6h = (struct icmp6hdr *)skb_put(nskb, sizeof(struct icmp6hdr)); 277 icmp6h = skb_put_zero(nskb, sizeof(struct icmp6hdr));
279 memset(icmp6h, 0, sizeof(*icmp6h));
280 icmp6h->icmp6_type = ICMPV6_DEST_UNREACH; 278 icmp6h->icmp6_type = ICMPV6_DEST_UNREACH;
281 icmp6h->icmp6_code = code; 279 icmp6h->icmp6_code = code;
282 280
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 96947f5d41e4..8860ad985d68 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -2718,7 +2718,7 @@ static void pktgen_finalize_skb(struct pktgen_dev *pkt_dev, struct sk_buff *skb,
2718 datalen -= sizeof(*pgh); 2718 datalen -= sizeof(*pgh);
2719 2719
2720 if (pkt_dev->nfrags <= 0) { 2720 if (pkt_dev->nfrags <= 0) {
2721 memset(skb_put(skb, datalen), 0, datalen); 2721 skb_put_zero(skb, datalen);
2722 } else { 2722 } else {
2723 int frags = pkt_dev->nfrags; 2723 int frags = pkt_dev->nfrags;
2724 int i, len; 2724 int i, len;
@@ -2729,7 +2729,7 @@ static void pktgen_finalize_skb(struct pktgen_dev *pkt_dev, struct sk_buff *skb,
2729 frags = MAX_SKB_FRAGS; 2729 frags = MAX_SKB_FRAGS;
2730 len = datalen - frags * PAGE_SIZE; 2730 len = datalen - frags * PAGE_SIZE;
2731 if (len > 0) { 2731 if (len > 0) {
2732 memset(skb_put(skb, len), 0, len); 2732 skb_put_zero(skb, len);
2733 datalen = frags * PAGE_SIZE; 2733 datalen = frags * PAGE_SIZE;
2734 } 2734 }
2735 2735
diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
index c3b12b1c7162..4c5dfe6bd34d 100644
--- a/net/ipv4/ipconfig.c
+++ b/net/ipv4/ipconfig.c
@@ -813,8 +813,7 @@ static void __init ic_bootp_send_if(struct ic_device *d, unsigned long jiffies_d
813 if (!skb) 813 if (!skb)
814 return; 814 return;
815 skb_reserve(skb, hlen); 815 skb_reserve(skb, hlen);
816 b = (struct bootp_pkt *) skb_put(skb, sizeof(struct bootp_pkt)); 816 b = skb_put_zero(skb, sizeof(struct bootp_pkt));
817 memset(b, 0, sizeof(struct bootp_pkt));
818 817
819 /* Construct IP header */ 818 /* Construct IP header */
820 skb_reset_network_header(skb); 819 skb_reset_network_header(skb);
diff --git a/net/ipv4/netfilter/nf_reject_ipv4.c b/net/ipv4/netfilter/nf_reject_ipv4.c
index 6f8d9e5e062b..52b7dcc5aaf3 100644
--- a/net/ipv4/netfilter/nf_reject_ipv4.c
+++ b/net/ipv4/netfilter/nf_reject_ipv4.c
@@ -76,8 +76,7 @@ void nf_reject_ip_tcphdr_put(struct sk_buff *nskb, const struct sk_buff *oldskb,
76 struct tcphdr *tcph; 76 struct tcphdr *tcph;
77 77
78 skb_reset_transport_header(nskb); 78 skb_reset_transport_header(nskb);
79 tcph = (struct tcphdr *)skb_put(nskb, sizeof(struct tcphdr)); 79 tcph = skb_put_zero(nskb, sizeof(struct tcphdr));
80 memset(tcph, 0, sizeof(*tcph));
81 tcph->source = oth->dest; 80 tcph->source = oth->dest;
82 tcph->dest = oth->source; 81 tcph->dest = oth->source;
83 tcph->doff = sizeof(struct tcphdr) / 4; 82 tcph->doff = sizeof(struct tcphdr) / 4;
diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
index 07403fa164e1..9098429e38bc 100644
--- a/net/ipv6/mcast.c
+++ b/net/ipv6/mcast.c
@@ -2008,8 +2008,7 @@ static void igmp6_send(struct in6_addr *addr, struct net_device *dev, int type)
2008 2008
2009 memcpy(skb_put(skb, sizeof(ra)), ra, sizeof(ra)); 2009 memcpy(skb_put(skb, sizeof(ra)), ra, sizeof(ra));
2010 2010
2011 hdr = (struct mld_msg *) skb_put(skb, sizeof(struct mld_msg)); 2011 hdr = skb_put_zero(skb, sizeof(struct mld_msg));
2012 memset(hdr, 0, sizeof(struct mld_msg));
2013 hdr->mld_type = type; 2012 hdr->mld_type = type;
2014 hdr->mld_mca = *addr; 2013 hdr->mld_mca = *addr;
2015 2014
diff --git a/net/key/af_key.c b/net/key/af_key.c
index 512dc43d0ce6..8ad430edb5b8 100644
--- a/net/key/af_key.c
+++ b/net/key/af_key.c
@@ -2934,8 +2934,7 @@ static void dump_ah_combs(struct sk_buff *skb, const struct xfrm_tmpl *t)
2934 2934
2935 if (aalg_tmpl_set(t, aalg) && aalg->available) { 2935 if (aalg_tmpl_set(t, aalg) && aalg->available) {
2936 struct sadb_comb *c; 2936 struct sadb_comb *c;
2937 c = (struct sadb_comb*)skb_put(skb, sizeof(struct sadb_comb)); 2937 c = skb_put_zero(skb, sizeof(struct sadb_comb));
2938 memset(c, 0, sizeof(*c));
2939 p->sadb_prop_len += sizeof(struct sadb_comb)/8; 2938 p->sadb_prop_len += sizeof(struct sadb_comb)/8;
2940 c->sadb_comb_auth = aalg->desc.sadb_alg_id; 2939 c->sadb_comb_auth = aalg->desc.sadb_alg_id;
2941 c->sadb_comb_auth_minbits = aalg->desc.sadb_alg_minbits; 2940 c->sadb_comb_auth_minbits = aalg->desc.sadb_alg_minbits;
@@ -3461,8 +3460,7 @@ static int set_sadb_kmaddress(struct sk_buff *skb, const struct xfrm_kmaddress *
3461 size_req = (sizeof(struct sadb_x_kmaddress) + 3460 size_req = (sizeof(struct sadb_x_kmaddress) +
3462 pfkey_sockaddr_pair_size(family)); 3461 pfkey_sockaddr_pair_size(family));
3463 3462
3464 kma = (struct sadb_x_kmaddress *)skb_put(skb, size_req); 3463 kma = skb_put_zero(skb, size_req);
3465 memset(kma, 0, size_req);
3466 kma->sadb_x_kmaddress_len = size_req / 8; 3464 kma->sadb_x_kmaddress_len = size_req / 8;
3467 kma->sadb_x_kmaddress_exttype = SADB_X_EXT_KMADDRESS; 3465 kma->sadb_x_kmaddress_exttype = SADB_X_EXT_KMADDRESS;
3468 kma->sadb_x_kmaddress_reserved = k->reserved; 3466 kma->sadb_x_kmaddress_reserved = k->reserved;
@@ -3488,8 +3486,7 @@ static int set_ipsecrequest(struct sk_buff *skb,
3488 size_req = sizeof(struct sadb_x_ipsecrequest) + 3486 size_req = sizeof(struct sadb_x_ipsecrequest) +
3489 pfkey_sockaddr_pair_size(family); 3487 pfkey_sockaddr_pair_size(family);
3490 3488
3491 rq = (struct sadb_x_ipsecrequest *)skb_put(skb, size_req); 3489 rq = skb_put_zero(skb, size_req);
3492 memset(rq, 0, size_req);
3493 rq->sadb_x_ipsecrequest_len = size_req; 3490 rq->sadb_x_ipsecrequest_len = size_req;
3494 rq->sadb_x_ipsecrequest_proto = proto; 3491 rq->sadb_x_ipsecrequest_proto = proto;
3495 rq->sadb_x_ipsecrequest_mode = mode; 3492 rq->sadb_x_ipsecrequest_mode = mode;
diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
index 3a0282188ad6..8708cbe8af5b 100644
--- a/net/mac80211/agg-rx.c
+++ b/net/mac80211/agg-rx.c
@@ -213,8 +213,7 @@ static void ieee80211_send_addba_resp(struct ieee80211_sub_if_data *sdata, u8 *d
213 return; 213 return;
214 214
215 skb_reserve(skb, local->hw.extra_tx_headroom); 215 skb_reserve(skb, local->hw.extra_tx_headroom);
216 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 216 mgmt = skb_put_zero(skb, 24);
217 memset(mgmt, 0, 24);
218 memcpy(mgmt->da, da, ETH_ALEN); 217 memcpy(mgmt->da, da, ETH_ALEN);
219 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 218 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
220 if (sdata->vif.type == NL80211_IFTYPE_AP || 219 if (sdata->vif.type == NL80211_IFTYPE_AP ||
diff --git a/net/mac80211/agg-tx.c b/net/mac80211/agg-tx.c
index cf2392b2ac71..cbd48762256c 100644
--- a/net/mac80211/agg-tx.c
+++ b/net/mac80211/agg-tx.c
@@ -76,8 +76,7 @@ static void ieee80211_send_addba_request(struct ieee80211_sub_if_data *sdata,
76 return; 76 return;
77 77
78 skb_reserve(skb, local->hw.extra_tx_headroom); 78 skb_reserve(skb, local->hw.extra_tx_headroom);
79 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 79 mgmt = skb_put_zero(skb, 24);
80 memset(mgmt, 0, 24);
81 memcpy(mgmt->da, da, ETH_ALEN); 80 memcpy(mgmt->da, da, ETH_ALEN);
82 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 81 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
83 if (sdata->vif.type == NL80211_IFTYPE_AP || 82 if (sdata->vif.type == NL80211_IFTYPE_AP ||
@@ -125,8 +124,7 @@ void ieee80211_send_bar(struct ieee80211_vif *vif, u8 *ra, u16 tid, u16 ssn)
125 return; 124 return;
126 125
127 skb_reserve(skb, local->hw.extra_tx_headroom); 126 skb_reserve(skb, local->hw.extra_tx_headroom);
128 bar = (struct ieee80211_bar *)skb_put(skb, sizeof(*bar)); 127 bar = skb_put_zero(skb, sizeof(*bar));
129 memset(bar, 0, sizeof(*bar));
130 bar->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | 128 bar->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL |
131 IEEE80211_STYPE_BACK_REQ); 129 IEEE80211_STYPE_BACK_REQ);
132 memcpy(bar->ra, ra, ETH_ALEN); 130 memcpy(bar->ra, ra, ETH_ALEN);
diff --git a/net/mac80211/debugfs_netdev.c b/net/mac80211/debugfs_netdev.c
index 8f5fff8b2040..c813207bb123 100644
--- a/net/mac80211/debugfs_netdev.c
+++ b/net/mac80211/debugfs_netdev.c
@@ -330,8 +330,7 @@ static ssize_t ieee80211_if_parse_tkip_mic_test(
330 return -ENOMEM; 330 return -ENOMEM;
331 skb_reserve(skb, local->hw.extra_tx_headroom); 331 skb_reserve(skb, local->hw.extra_tx_headroom);
332 332
333 hdr = (struct ieee80211_hdr *) skb_put(skb, 24); 333 hdr = skb_put_zero(skb, 24);
334 memset(hdr, 0, 24);
335 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA); 334 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_DATA);
336 335
337 switch (sdata->vif.type) { 336 switch (sdata->vif.type) {
@@ -367,7 +366,7 @@ static ssize_t ieee80211_if_parse_tkip_mic_test(
367 * The exact contents does not matter since the recipient is required 366 * The exact contents does not matter since the recipient is required
368 * to drop this because of the Michael MIC failure. 367 * to drop this because of the Michael MIC failure.
369 */ 368 */
370 memset(skb_put(skb, 50), 0, 50); 369 skb_put_zero(skb, 50);
371 370
372 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_TKIP_MIC_FAILURE; 371 IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_INTFL_TKIP_MIC_FAILURE;
373 372
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 9e71226c2d25..927215d4dd8f 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -394,8 +394,7 @@ void ieee80211_send_delba(struct ieee80211_sub_if_data *sdata,
394 return; 394 return;
395 395
396 skb_reserve(skb, local->hw.extra_tx_headroom); 396 skb_reserve(skb, local->hw.extra_tx_headroom);
397 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 397 mgmt = skb_put_zero(skb, 24);
398 memset(mgmt, 0, 24);
399 memcpy(mgmt->da, da, ETH_ALEN); 398 memcpy(mgmt->da, da, ETH_ALEN);
400 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 399 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
401 if (sdata->vif.type == NL80211_IFTYPE_AP || 400 if (sdata->vif.type == NL80211_IFTYPE_AP ||
diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
index ad5d1cf39190..e45c8d94952e 100644
--- a/net/mac80211/mesh.c
+++ b/net/mac80211/mesh.c
@@ -719,8 +719,7 @@ ieee80211_mesh_build_beacon(struct ieee80211_if_mesh *ifmsh)
719 bcn->head = ((u8 *) bcn) + sizeof(*bcn); 719 bcn->head = ((u8 *) bcn) + sizeof(*bcn);
720 720
721 /* fill in the head */ 721 /* fill in the head */
722 mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); 722 mgmt = skb_put_zero(skb, hdr_len);
723 memset(mgmt, 0, hdr_len);
724 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 723 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
725 IEEE80211_STYPE_BEACON); 724 IEEE80211_STYPE_BEACON);
726 eth_broadcast_addr(mgmt->da); 725 eth_broadcast_addr(mgmt->da);
diff --git a/net/mac80211/mesh_hwmp.c b/net/mac80211/mesh_hwmp.c
index 4005edd71fe8..d8bbd0d2225a 100644
--- a/net/mac80211/mesh_hwmp.c
+++ b/net/mac80211/mesh_hwmp.c
@@ -120,8 +120,7 @@ static int mesh_path_sel_frame_tx(enum mpath_frame_type action, u8 flags,
120 if (!skb) 120 if (!skb)
121 return -1; 121 return -1;
122 skb_reserve(skb, local->tx_headroom); 122 skb_reserve(skb, local->tx_headroom);
123 mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); 123 mgmt = skb_put_zero(skb, hdr_len);
124 memset(mgmt, 0, hdr_len);
125 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 124 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
126 IEEE80211_STYPE_ACTION); 125 IEEE80211_STYPE_ACTION);
127 126
@@ -257,8 +256,7 @@ int mesh_path_error_tx(struct ieee80211_sub_if_data *sdata,
257 if (!skb) 256 if (!skb)
258 return -1; 257 return -1;
259 skb_reserve(skb, local->tx_headroom + sdata->encrypt_headroom); 258 skb_reserve(skb, local->tx_headroom + sdata->encrypt_headroom);
260 mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); 259 mgmt = skb_put_zero(skb, hdr_len);
261 memset(mgmt, 0, hdr_len);
262 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 260 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
263 IEEE80211_STYPE_ACTION); 261 IEEE80211_STYPE_ACTION);
264 262
diff --git a/net/mac80211/mesh_plink.c b/net/mac80211/mesh_plink.c
index 82cfd232a25e..f69c6c38ca43 100644
--- a/net/mac80211/mesh_plink.c
+++ b/net/mac80211/mesh_plink.c
@@ -242,8 +242,7 @@ static int mesh_plink_frame_tx(struct ieee80211_sub_if_data *sdata,
242 return err; 242 return err;
243 info = IEEE80211_SKB_CB(skb); 243 info = IEEE80211_SKB_CB(skb);
244 skb_reserve(skb, local->tx_headroom); 244 skb_reserve(skb, local->tx_headroom);
245 mgmt = (struct ieee80211_mgmt *) skb_put(skb, hdr_len); 245 mgmt = skb_put_zero(skb, hdr_len);
246 memset(mgmt, 0, hdr_len);
247 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 246 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
248 IEEE80211_STYPE_ACTION); 247 IEEE80211_STYPE_ACTION);
249 memcpy(mgmt->da, da, ETH_ALEN); 248 memcpy(mgmt->da, da, ETH_ALEN);
diff --git a/net/mac80211/mesh_ps.c b/net/mac80211/mesh_ps.c
index 90a268abea17..96c987e641b3 100644
--- a/net/mac80211/mesh_ps.c
+++ b/net/mac80211/mesh_ps.c
@@ -39,7 +39,7 @@ static struct sk_buff *mps_qos_null_get(struct sta_info *sta)
39 nullfunc->seq_ctrl = 0; 39 nullfunc->seq_ctrl = 0;
40 /* no address resolution for this frame -> set addr 1 immediately */ 40 /* no address resolution for this frame -> set addr 1 immediately */
41 memcpy(nullfunc->addr1, sta->sta.addr, ETH_ALEN); 41 memcpy(nullfunc->addr1, sta->sta.addr, ETH_ALEN);
42 memset(skb_put(skb, 2), 0, 2); /* append QoS control field */ 42 skb_put_zero(skb, 2); /* append QoS control field */
43 ieee80211_mps_set_frame_flags(sdata, sta, nullfunc); 43 ieee80211_mps_set_frame_flags(sdata, sta, nullfunc);
44 44
45 return skb; 45 return skb;
diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
index 1929bce8e518..e810334595ff 100644
--- a/net/mac80211/mlme.c
+++ b/net/mac80211/mlme.c
@@ -674,8 +674,7 @@ static void ieee80211_send_assoc(struct ieee80211_sub_if_data *sdata)
674 if (ifmgd->flags & IEEE80211_STA_ENABLE_RRM) 674 if (ifmgd->flags & IEEE80211_STA_ENABLE_RRM)
675 capab |= WLAN_CAPABILITY_RADIO_MEASURE; 675 capab |= WLAN_CAPABILITY_RADIO_MEASURE;
676 676
677 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24); 677 mgmt = skb_put_zero(skb, 24);
678 memset(mgmt, 0, 24);
679 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN); 678 memcpy(mgmt->da, assoc_data->bss->bssid, ETH_ALEN);
680 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 679 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
681 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN); 680 memcpy(mgmt->bssid, assoc_data->bss->bssid, ETH_ALEN);
@@ -949,8 +948,7 @@ static void ieee80211_send_4addr_nullfunc(struct ieee80211_local *local,
949 948
950 skb_reserve(skb, local->hw.extra_tx_headroom); 949 skb_reserve(skb, local->hw.extra_tx_headroom);
951 950
952 nullfunc = (struct ieee80211_hdr *) skb_put(skb, 30); 951 nullfunc = skb_put_zero(skb, 30);
953 memset(nullfunc, 0, 30);
954 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_NULLFUNC | 952 fc = cpu_to_le16(IEEE80211_FTYPE_DATA | IEEE80211_STYPE_NULLFUNC |
955 IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS); 953 IEEE80211_FCTL_FROMDS | IEEE80211_FCTL_TODS);
956 nullfunc->frame_control = fc; 954 nullfunc->frame_control = fc;
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 004a2283c5d9..e1ab1c4af33c 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -2760,8 +2760,7 @@ static void ieee80211_process_sa_query_req(struct ieee80211_sub_if_data *sdata,
2760 return; 2760 return;
2761 2761
2762 skb_reserve(skb, local->hw.extra_tx_headroom); 2762 skb_reserve(skb, local->hw.extra_tx_headroom);
2763 resp = (struct ieee80211_mgmt *) skb_put(skb, 24); 2763 resp = skb_put_zero(skb, 24);
2764 memset(resp, 0, 24);
2765 memcpy(resp->da, mgmt->sa, ETH_ALEN); 2764 memcpy(resp->da, mgmt->sa, ETH_ALEN);
2766 memcpy(resp->sa, sdata->vif.addr, ETH_ALEN); 2765 memcpy(resp->sa, sdata->vif.addr, ETH_ALEN);
2767 memcpy(resp->bssid, sdata->u.mgd.bssid, ETH_ALEN); 2766 memcpy(resp->bssid, sdata->u.mgd.bssid, ETH_ALEN);
diff --git a/net/mac80211/spectmgmt.c b/net/mac80211/spectmgmt.c
index bf8f5dcea1c4..ee0181778a42 100644
--- a/net/mac80211/spectmgmt.c
+++ b/net/mac80211/spectmgmt.c
@@ -193,8 +193,7 @@ static void ieee80211_send_refuse_measurement_request(struct ieee80211_sub_if_da
193 return; 193 return;
194 194
195 skb_reserve(skb, local->hw.extra_tx_headroom); 195 skb_reserve(skb, local->hw.extra_tx_headroom);
196 msr_report = (struct ieee80211_mgmt *)skb_put(skb, 24); 196 msr_report = skb_put_zero(skb, 24);
197 memset(msr_report, 0, 24);
198 memcpy(msr_report->da, da, ETH_ALEN); 197 memcpy(msr_report->da, da, ETH_ALEN);
199 memcpy(msr_report->sa, sdata->vif.addr, ETH_ALEN); 198 memcpy(msr_report->sa, sdata->vif.addr, ETH_ALEN);
200 memcpy(msr_report->bssid, bssid, ETH_ALEN); 199 memcpy(msr_report->bssid, bssid, ETH_ALEN);
diff --git a/net/mac80211/tdls.c b/net/mac80211/tdls.c
index f20dcf1b1830..c379c99cd1d8 100644
--- a/net/mac80211/tdls.c
+++ b/net/mac80211/tdls.c
@@ -271,8 +271,7 @@ static void ieee80211_tdls_add_wmm_param_ie(struct ieee80211_sub_if_data *sdata,
271 struct ieee80211_tx_queue_params *txq; 271 struct ieee80211_tx_queue_params *txq;
272 int i; 272 int i;
273 273
274 wmm = (void *)skb_put(skb, sizeof(*wmm)); 274 wmm = skb_put_zero(skb, sizeof(*wmm));
275 memset(wmm, 0, sizeof(*wmm));
276 275
277 wmm->element_id = WLAN_EID_VENDOR_SPECIFIC; 276 wmm->element_id = WLAN_EID_VENDOR_SPECIFIC;
278 wmm->len = sizeof(*wmm) - 2; 277 wmm->len = sizeof(*wmm) - 2;
@@ -838,8 +837,7 @@ ieee80211_prep_tdls_direct(struct wiphy *wiphy, struct net_device *dev,
838 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); 837 struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev);
839 struct ieee80211_mgmt *mgmt; 838 struct ieee80211_mgmt *mgmt;
840 839
841 mgmt = (void *)skb_put(skb, 24); 840 mgmt = skb_put_zero(skb, 24);
842 memset(mgmt, 0, 24);
843 memcpy(mgmt->da, peer, ETH_ALEN); 841 memcpy(mgmt->da, peer, ETH_ALEN);
844 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN); 842 memcpy(mgmt->sa, sdata->vif.addr, ETH_ALEN);
845 memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN); 843 memcpy(mgmt->bssid, sdata->u.mgd.bssid, ETH_ALEN);
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index b8dc41191835..1af9ed29a915 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3044,7 +3044,7 @@ static bool ieee80211_amsdu_realloc_pad(struct ieee80211_local *local,
3044 3044
3045 if (padding) { 3045 if (padding) {
3046 *subframe_len += padding; 3046 *subframe_len += padding;
3047 memset(skb_put(skb, padding), 0, padding); 3047 skb_put_zero(skb, padding);
3048 } 3048 }
3049 3049
3050 return true; 3050 return true;
@@ -4370,8 +4370,7 @@ struct sk_buff *ieee80211_pspoll_get(struct ieee80211_hw *hw,
4370 4370
4371 skb_reserve(skb, local->hw.extra_tx_headroom); 4371 skb_reserve(skb, local->hw.extra_tx_headroom);
4372 4372
4373 pspoll = (struct ieee80211_pspoll *) skb_put(skb, sizeof(*pspoll)); 4373 pspoll = skb_put_zero(skb, sizeof(*pspoll));
4374 memset(pspoll, 0, sizeof(*pspoll));
4375 pspoll->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL | 4374 pspoll->frame_control = cpu_to_le16(IEEE80211_FTYPE_CTL |
4376 IEEE80211_STYPE_PSPOLL); 4375 IEEE80211_STYPE_PSPOLL);
4377 pspoll->aid = cpu_to_le16(ifmgd->aid); 4376 pspoll->aid = cpu_to_le16(ifmgd->aid);
@@ -4408,9 +4407,7 @@ struct sk_buff *ieee80211_nullfunc_get(struct ieee80211_hw *hw,
4408 4407
4409 skb_reserve(skb, local->hw.extra_tx_headroom); 4408 skb_reserve(skb, local->hw.extra_tx_headroom);
4410 4409
4411 nullfunc = (struct ieee80211_hdr_3addr *) skb_put(skb, 4410 nullfunc = skb_put_zero(skb, sizeof(*nullfunc));
4412 sizeof(*nullfunc));
4413 memset(nullfunc, 0, sizeof(*nullfunc));
4414 nullfunc->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA | 4411 nullfunc->frame_control = cpu_to_le16(IEEE80211_FTYPE_DATA |
4415 IEEE80211_STYPE_NULLFUNC | 4412 IEEE80211_STYPE_NULLFUNC |
4416 IEEE80211_FCTL_TODS); 4413 IEEE80211_FCTL_TODS);
@@ -4442,8 +4439,7 @@ struct sk_buff *ieee80211_probereq_get(struct ieee80211_hw *hw,
4442 4439
4443 skb_reserve(skb, local->hw.extra_tx_headroom); 4440 skb_reserve(skb, local->hw.extra_tx_headroom);
4444 4441
4445 hdr = (struct ieee80211_hdr_3addr *) skb_put(skb, sizeof(*hdr)); 4442 hdr = skb_put_zero(skb, sizeof(*hdr));
4446 memset(hdr, 0, sizeof(*hdr));
4447 hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 4443 hdr->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
4448 IEEE80211_STYPE_PROBE_REQ); 4444 IEEE80211_STYPE_PROBE_REQ);
4449 eth_broadcast_addr(hdr->addr1); 4445 eth_broadcast_addr(hdr->addr1);
diff --git a/net/mac80211/util.c b/net/mac80211/util.c
index de0f1cdb64d4..148c7276869c 100644
--- a/net/mac80211/util.c
+++ b/net/mac80211/util.c
@@ -1242,8 +1242,7 @@ void ieee80211_send_auth(struct ieee80211_sub_if_data *sdata,
1242 1242
1243 skb_reserve(skb, local->hw.extra_tx_headroom + IEEE80211_WEP_IV_LEN); 1243 skb_reserve(skb, local->hw.extra_tx_headroom + IEEE80211_WEP_IV_LEN);
1244 1244
1245 mgmt = (struct ieee80211_mgmt *) skb_put(skb, 24 + 6); 1245 mgmt = skb_put_zero(skb, 24 + 6);
1246 memset(mgmt, 0, 24 + 6);
1247 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 1246 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
1248 IEEE80211_STYPE_AUTH); 1247 IEEE80211_STYPE_AUTH);
1249 memcpy(mgmt->da, da, ETH_ALEN); 1248 memcpy(mgmt->da, da, ETH_ALEN);
@@ -2999,8 +2998,7 @@ int ieee80211_send_action_csa(struct ieee80211_sub_if_data *sdata,
2999 return -ENOMEM; 2998 return -ENOMEM;
3000 2999
3001 skb_reserve(skb, local->tx_headroom); 3000 skb_reserve(skb, local->tx_headroom);
3002 mgmt = (struct ieee80211_mgmt *)skb_put(skb, hdr_len); 3001 mgmt = skb_put_zero(skb, hdr_len);
3003 memset(mgmt, 0, hdr_len);
3004 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT | 3002 mgmt->frame_control = cpu_to_le16(IEEE80211_FTYPE_MGMT |
3005 IEEE80211_STYPE_ACTION); 3003 IEEE80211_STYPE_ACTION);
3006 3004
diff --git a/net/ncsi/ncsi-cmd.c b/net/ncsi/ncsi-cmd.c
index db7083bfd476..b010ae94175b 100644
--- a/net/ncsi/ncsi-cmd.c
+++ b/net/ncsi/ncsi-cmd.c
@@ -66,8 +66,7 @@ static int ncsi_cmd_handler_default(struct sk_buff *skb,
66{ 66{
67 struct ncsi_cmd_pkt *cmd; 67 struct ncsi_cmd_pkt *cmd;
68 68
69 cmd = (struct ncsi_cmd_pkt *)skb_put(skb, sizeof(*cmd)); 69 cmd = skb_put_zero(skb, sizeof(*cmd));
70 memset(cmd, 0, sizeof(*cmd));
71 ncsi_cmd_build_header(&cmd->cmd.common, nca); 70 ncsi_cmd_build_header(&cmd->cmd.common, nca);
72 71
73 return 0; 72 return 0;
@@ -78,8 +77,7 @@ static int ncsi_cmd_handler_sp(struct sk_buff *skb,
78{ 77{
79 struct ncsi_cmd_sp_pkt *cmd; 78 struct ncsi_cmd_sp_pkt *cmd;
80 79
81 cmd = (struct ncsi_cmd_sp_pkt *)skb_put(skb, sizeof(*cmd)); 80 cmd = skb_put_zero(skb, sizeof(*cmd));
82 memset(cmd, 0, sizeof(*cmd));
83 cmd->hw_arbitration = nca->bytes[0]; 81 cmd->hw_arbitration = nca->bytes[0];
84 ncsi_cmd_build_header(&cmd->cmd.common, nca); 82 ncsi_cmd_build_header(&cmd->cmd.common, nca);
85 83
@@ -91,8 +89,7 @@ static int ncsi_cmd_handler_dc(struct sk_buff *skb,
91{ 89{
92 struct ncsi_cmd_dc_pkt *cmd; 90 struct ncsi_cmd_dc_pkt *cmd;
93 91
94 cmd = (struct ncsi_cmd_dc_pkt *)skb_put(skb, sizeof(*cmd)); 92 cmd = skb_put_zero(skb, sizeof(*cmd));
95 memset(cmd, 0, sizeof(*cmd));
96 cmd->ald = nca->bytes[0]; 93 cmd->ald = nca->bytes[0];
97 ncsi_cmd_build_header(&cmd->cmd.common, nca); 94 ncsi_cmd_build_header(&cmd->cmd.common, nca);
98 95
@@ -104,8 +101,7 @@ static int ncsi_cmd_handler_rc(struct sk_buff *skb,
104{ 101{
105 struct ncsi_cmd_rc_pkt *cmd; 102 struct ncsi_cmd_rc_pkt *cmd;
106 103
107 cmd = (struct ncsi_cmd_rc_pkt *)skb_put(skb, sizeof(*cmd)); 104 cmd = skb_put_zero(skb, sizeof(*cmd));
108 memset(cmd, 0, sizeof(*cmd));
109 ncsi_cmd_build_header(&cmd->cmd.common, nca); 105 ncsi_cmd_build_header(&cmd->cmd.common, nca);
110 106
111 return 0; 107 return 0;
@@ -116,8 +112,7 @@ static int ncsi_cmd_handler_ae(struct sk_buff *skb,
116{ 112{
117 struct ncsi_cmd_ae_pkt *cmd; 113 struct ncsi_cmd_ae_pkt *cmd;
118 114
119 cmd = (struct ncsi_cmd_ae_pkt *)skb_put(skb, sizeof(*cmd)); 115 cmd = skb_put_zero(skb, sizeof(*cmd));
120 memset(cmd, 0, sizeof(*cmd));
121 cmd->mc_id = nca->bytes[0]; 116 cmd->mc_id = nca->bytes[0];
122 cmd->mode = htonl(nca->dwords[1]); 117 cmd->mode = htonl(nca->dwords[1]);
123 ncsi_cmd_build_header(&cmd->cmd.common, nca); 118 ncsi_cmd_build_header(&cmd->cmd.common, nca);
@@ -130,8 +125,7 @@ static int ncsi_cmd_handler_sl(struct sk_buff *skb,
130{ 125{
131 struct ncsi_cmd_sl_pkt *cmd; 126 struct ncsi_cmd_sl_pkt *cmd;
132 127
133 cmd = (struct ncsi_cmd_sl_pkt *)skb_put(skb, sizeof(*cmd)); 128 cmd = skb_put_zero(skb, sizeof(*cmd));
134 memset(cmd, 0, sizeof(*cmd));
135 cmd->mode = htonl(nca->dwords[0]); 129 cmd->mode = htonl(nca->dwords[0]);
136 cmd->oem_mode = htonl(nca->dwords[1]); 130 cmd->oem_mode = htonl(nca->dwords[1]);
137 ncsi_cmd_build_header(&cmd->cmd.common, nca); 131 ncsi_cmd_build_header(&cmd->cmd.common, nca);
@@ -144,8 +138,7 @@ static int ncsi_cmd_handler_svf(struct sk_buff *skb,
144{ 138{
145 struct ncsi_cmd_svf_pkt *cmd; 139 struct ncsi_cmd_svf_pkt *cmd;
146 140
147 cmd = (struct ncsi_cmd_svf_pkt *)skb_put(skb, sizeof(*cmd)); 141 cmd = skb_put_zero(skb, sizeof(*cmd));
148 memset(cmd, 0, sizeof(*cmd));
149 cmd->vlan = htons(nca->words[0]); 142 cmd->vlan = htons(nca->words[0]);
150 cmd->index = nca->bytes[2]; 143 cmd->index = nca->bytes[2];
151 cmd->enable = nca->bytes[3]; 144 cmd->enable = nca->bytes[3];
@@ -159,8 +152,7 @@ static int ncsi_cmd_handler_ev(struct sk_buff *skb,
159{ 152{
160 struct ncsi_cmd_ev_pkt *cmd; 153 struct ncsi_cmd_ev_pkt *cmd;
161 154
162 cmd = (struct ncsi_cmd_ev_pkt *)skb_put(skb, sizeof(*cmd)); 155 cmd = skb_put_zero(skb, sizeof(*cmd));
163 memset(cmd, 0, sizeof(*cmd));
164 cmd->mode = nca->bytes[0]; 156 cmd->mode = nca->bytes[0];
165 ncsi_cmd_build_header(&cmd->cmd.common, nca); 157 ncsi_cmd_build_header(&cmd->cmd.common, nca);
166 158
@@ -173,8 +165,7 @@ static int ncsi_cmd_handler_sma(struct sk_buff *skb,
173 struct ncsi_cmd_sma_pkt *cmd; 165 struct ncsi_cmd_sma_pkt *cmd;
174 int i; 166 int i;
175 167
176 cmd = (struct ncsi_cmd_sma_pkt *)skb_put(skb, sizeof(*cmd)); 168 cmd = skb_put_zero(skb, sizeof(*cmd));
177 memset(cmd, 0, sizeof(*cmd));
178 for (i = 0; i < 6; i++) 169 for (i = 0; i < 6; i++)
179 cmd->mac[i] = nca->bytes[i]; 170 cmd->mac[i] = nca->bytes[i];
180 cmd->index = nca->bytes[6]; 171 cmd->index = nca->bytes[6];
@@ -189,8 +180,7 @@ static int ncsi_cmd_handler_ebf(struct sk_buff *skb,
189{ 180{
190 struct ncsi_cmd_ebf_pkt *cmd; 181 struct ncsi_cmd_ebf_pkt *cmd;
191 182
192 cmd = (struct ncsi_cmd_ebf_pkt *)skb_put(skb, sizeof(*cmd)); 183 cmd = skb_put_zero(skb, sizeof(*cmd));
193 memset(cmd, 0, sizeof(*cmd));
194 cmd->mode = htonl(nca->dwords[0]); 184 cmd->mode = htonl(nca->dwords[0]);
195 ncsi_cmd_build_header(&cmd->cmd.common, nca); 185 ncsi_cmd_build_header(&cmd->cmd.common, nca);
196 186
@@ -202,8 +192,7 @@ static int ncsi_cmd_handler_egmf(struct sk_buff *skb,
202{ 192{
203 struct ncsi_cmd_egmf_pkt *cmd; 193 struct ncsi_cmd_egmf_pkt *cmd;
204 194
205 cmd = (struct ncsi_cmd_egmf_pkt *)skb_put(skb, sizeof(*cmd)); 195 cmd = skb_put_zero(skb, sizeof(*cmd));
206 memset(cmd, 0, sizeof(*cmd));
207 cmd->mode = htonl(nca->dwords[0]); 196 cmd->mode = htonl(nca->dwords[0]);
208 ncsi_cmd_build_header(&cmd->cmd.common, nca); 197 ncsi_cmd_build_header(&cmd->cmd.common, nca);
209 198
@@ -215,8 +204,7 @@ static int ncsi_cmd_handler_snfc(struct sk_buff *skb,
215{ 204{
216 struct ncsi_cmd_snfc_pkt *cmd; 205 struct ncsi_cmd_snfc_pkt *cmd;
217 206
218 cmd = (struct ncsi_cmd_snfc_pkt *)skb_put(skb, sizeof(*cmd)); 207 cmd = skb_put_zero(skb, sizeof(*cmd));
219 memset(cmd, 0, sizeof(*cmd));
220 cmd->mode = nca->bytes[0]; 208 cmd->mode = nca->bytes[0];
221 ncsi_cmd_build_header(&cmd->cmd.common, nca); 209 ncsi_cmd_build_header(&cmd->cmd.common, nca);
222 210
diff --git a/net/openvswitch/datapath.c b/net/openvswitch/datapath.c
index 9ddc9f8412a2..d772e9a4b4f8 100644
--- a/net/openvswitch/datapath.c
+++ b/net/openvswitch/datapath.c
@@ -413,7 +413,7 @@ static void pad_packet(struct datapath *dp, struct sk_buff *skb)
413 size_t plen = NLA_ALIGN(skb->len) - skb->len; 413 size_t plen = NLA_ALIGN(skb->len) - skb->len;
414 414
415 if (plen > 0) 415 if (plen > 0)
416 memset(skb_put(skb, plen), 0, plen); 416 skb_put_zero(skb, plen);
417 } 417 }
418} 418}
419 419
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
index c7a5d861906b..825f97671591 100644
--- a/net/qrtr/qrtr.c
+++ b/net/qrtr/qrtr.c
@@ -285,8 +285,7 @@ static struct sk_buff *qrtr_alloc_resume_tx(u32 src_node,
285 if (!skb) 285 if (!skb)
286 return NULL; 286 return NULL;
287 287
288 buf = (__le32 *)skb_put(skb, pkt_len); 288 buf = skb_put_zero(skb, pkt_len);
289 memset(buf, 0, pkt_len);
290 buf[0] = cpu_to_le32(QRTR_TYPE_RESUME_TX); 289 buf[0] = cpu_to_le32(QRTR_TYPE_RESUME_TX);
291 buf[1] = cpu_to_le32(src_node); 290 buf[1] = cpu_to_le32(src_node);
292 buf[2] = cpu_to_le32(port); 291 buf[2] = cpu_to_le32(port);
@@ -306,8 +305,7 @@ static struct sk_buff *qrtr_alloc_local_bye(u32 src_node)
306 if (!skb) 305 if (!skb)
307 return NULL; 306 return NULL;
308 307
309 buf = (__le32 *)skb_put(skb, pkt_len); 308 buf = skb_put_zero(skb, pkt_len);
310 memset(buf, 0, pkt_len);
311 buf[0] = cpu_to_le32(QRTR_TYPE_BYE); 309 buf[0] = cpu_to_le32(QRTR_TYPE_BYE);
312 310
313 return skb; 311 return skb;
@@ -324,8 +322,7 @@ static struct sk_buff *qrtr_alloc_del_client(struct sockaddr_qrtr *sq)
324 if (!skb) 322 if (!skb)
325 return NULL; 323 return NULL;
326 324
327 buf = (__le32 *)skb_put(skb, pkt_len); 325 buf = skb_put_zero(skb, pkt_len);
328 memset(buf, 0, pkt_len);
329 buf[0] = cpu_to_le32(QRTR_TYPE_DEL_CLIENT); 326 buf[0] = cpu_to_le32(QRTR_TYPE_DEL_CLIENT);
330 buf[1] = cpu_to_le32(sq->sq_node); 327 buf[1] = cpu_to_le32(sq->sq_node);
331 buf[2] = cpu_to_le32(sq->sq_port); 328 buf[2] = cpu_to_le32(sq->sq_port);
diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c
index 2e636a525a65..b0d2cda6ec0a 100644
--- a/net/rxrpc/sendmsg.c
+++ b/net/rxrpc/sendmsg.c
@@ -330,7 +330,7 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
330 pad &= conn->size_align - 1; 330 pad &= conn->size_align - 1;
331 _debug("pad %zu", pad); 331 _debug("pad %zu", pad);
332 if (pad) 332 if (pad)
333 memset(skb_put(skb, pad), 0, pad); 333 skb_put_zero(skb, pad);
334 } 334 }
335 335
336 seq = call->tx_top + 1; 336 seq = call->tx_top + 1;
diff --git a/net/sctp/output.c b/net/sctp/output.c
index e2edf2ebbade..c339c682675a 100644
--- a/net/sctp/output.c
+++ b/net/sctp/output.c
@@ -463,7 +463,7 @@ merge:
463 463
464 padding = SCTP_PAD4(chunk->skb->len) - chunk->skb->len; 464 padding = SCTP_PAD4(chunk->skb->len) - chunk->skb->len;
465 if (padding) 465 if (padding)
466 memset(skb_put(chunk->skb, padding), 0, padding); 466 skb_put_zero(chunk->skb, padding);
467 467
468 if (chunk == packet->auth) 468 if (chunk == packet->auth)
469 auth = (struct sctp_auth_chunk *) 469 auth = (struct sctp_auth_chunk *)
diff --git a/net/sctp/sm_make_chunk.c b/net/sctp/sm_make_chunk.c
index ea2601501654..aaac2660aaf7 100644
--- a/net/sctp/sm_make_chunk.c
+++ b/net/sctp/sm_make_chunk.c
@@ -1478,10 +1478,9 @@ void *sctp_addto_chunk(struct sctp_chunk *chunk, int len, const void *data)
1478 int chunklen = ntohs(chunk->chunk_hdr->length); 1478 int chunklen = ntohs(chunk->chunk_hdr->length);
1479 int padlen = SCTP_PAD4(chunklen) - chunklen; 1479 int padlen = SCTP_PAD4(chunklen) - chunklen;
1480 1480
1481 padding = skb_put(chunk->skb, padlen); 1481 padding = skb_put_zero(chunk->skb, padlen);
1482 target = skb_put(chunk->skb, len); 1482 target = skb_put(chunk->skb, len);
1483 1483
1484 memset(padding, 0, padlen);
1485 memcpy(target, data, len); 1484 memcpy(target, data, len);
1486 1485
1487 /* Adjust the chunk length field. */ 1486 /* Adjust the chunk length field. */