mt76: always init to 0 mcu messages
authorLorenzo Bianconi <lorenzo@kernel.org>
Tue, 17 Mar 2020 16:41:12 +0000 (17:41 +0100)
committerFelix Fietkau <nbd@nbd.name>
Tue, 17 Mar 2020 16:47:52 +0000 (17:47 +0100)
Always initialize to 0 mcu messages since if they are not propely
configured they could hang the firmware.

Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mcu.c
drivers/net/wireless/mediatek/mt76/mt7603/mcu.c
drivers/net/wireless/mediatek/mt76/mt7615/mcu.c

index 633ad948c21dc24a71627b9c1cea5285833e4f32..4048f446e3eee23a2ba574471ec0189ace9c91f1 100644 (file)
@@ -9,14 +9,16 @@ struct sk_buff *
 mt76_mcu_msg_alloc(const void *data, int head_len,
                   int data_len, int tail_len)
 {
+       int length = head_len + data_len + tail_len;
        struct sk_buff *skb;
 
-       skb = alloc_skb(head_len + data_len + tail_len,
-                       GFP_KERNEL);
+       skb = alloc_skb(length, GFP_KERNEL);
        if (!skb)
                return NULL;
 
+       memset(skb->head, 0, length);
        skb_reserve(skb, head_len);
+
        if (data && data_len)
                skb_put_data(skb, data, data_len);
 
index b466b3ab8a2c127fbb3350aa230ec5e6aaa906ba..77985d81c4471c14753470925e560c5b01c0f197 100644 (file)
@@ -27,7 +27,6 @@ __mt7603_mcu_msg_send(struct mt7603_dev *dev, struct sk_buff *skb,
                seq = ++mdev->mcu.msg_seq & 0xf;
 
        txd = (struct mt7603_mcu_txd *)skb_push(skb, hdrlen);
-       memset(txd, 0, hdrlen);
 
        txd->len = cpu_to_le16(skb->len);
        if (cmd == -MCU_CMD_FW_SCATTER)
index b24240f90a7d301313e26f34530aef6a8b1c4980..b94b1b73fd1a42731f516b2461c6e23965116741 100644 (file)
@@ -62,7 +62,6 @@ void mt7615_mcu_fill_msg(struct mt7615_dev *dev, struct sk_buff *skb,
                seq = ++dev->mt76.mcu.msg_seq & 0xf;
 
        mcu_txd = (struct mt7615_mcu_txd *)skb_push(skb, sizeof(*mcu_txd));
-       memset(mcu_txd, 0, sizeof(*mcu_txd));
 
        if (cmd != -MCU_CMD_FW_SCATTER) {
                q_idx = MT_TX_MCU_PORT_RX_Q0;