summaryrefslogtreecommitdiffstats
path: root/drivers
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 /drivers
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>
Diffstat (limited to 'drivers')
-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
21 files changed, 35 insertions, 68 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);