rtl8xxxu: Do not parse RX descriptor info for C2H packets
authorJes Sorensen <Jes.Sorensen@redhat.com>
Mon, 29 Feb 2016 22:05:36 +0000 (17:05 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 10 Mar 2016 13:29:17 +0000 (15:29 +0200)
C2H events are delivered as RX packets on 8723bu/8192eu. When
receiving a C2H event, do not parse the rest of the RX descriptor as
the info isn't valid.

Signed-off-by: Jes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.c

index 927fd3b13ae3a3c356085ef98f4f830edc6bcbf0..76793e9a95425d834109a20a242b5dd1f3901131 100644 (file)
@@ -7324,7 +7324,6 @@ static int rtl8723bu_parse_rx_desc(struct rtl8xxxu_priv *priv,
                (struct rtl8723bu_rx_desc *)skb->data;
        struct rtl8723au_phy_stats *phy_stats;
        int drvinfo_sz, desc_shift;
-       int rx_type;
 
        skb_pull(skb, sizeof(struct rtl8723bu_rx_desc));
 
@@ -7334,6 +7333,12 @@ static int rtl8723bu_parse_rx_desc(struct rtl8xxxu_priv *priv,
        desc_shift = rx_desc->shift;
        skb_pull(skb, drvinfo_sz + desc_shift);
 
+       if (rx_desc->rpt_sel) {
+               struct device *dev = &priv->udev->dev;
+               dev_dbg(dev, "%s: C2H packet\n", __func__);
+               return RX_TYPE_C2H;
+       }
+
        rx_status->mactime = le32_to_cpu(rx_desc->tsfl);
        rx_status->flag |= RX_FLAG_MACTIME_START;
 
@@ -7351,15 +7356,7 @@ static int rtl8723bu_parse_rx_desc(struct rtl8xxxu_priv *priv,
                rx_status->rate_idx = rx_desc->rxmcs;
        }
 
-       if (rx_desc->rpt_sel) {
-               struct device *dev = &priv->udev->dev;
-               dev_dbg(dev, "%s: C2H packet\n", __func__);
-               rx_type = RX_TYPE_C2H;
-       } else {
-               rx_type = RX_TYPE_DATA_PKT;
-       }
-
-       return rx_type;
+       return RX_TYPE_DATA_PKT;
 }
 
 static void rtl8723bu_handle_c2h(struct rtl8xxxu_priv *priv,