Commit e975b87c authored by Jes Sorensen's avatar Jes Sorensen Committed by Kalle Valo
Browse files

rtl8xxxu: Do not parse RX descriptor info for C2H packets



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: default avatarJes Sorensen <Jes.Sorensen@redhat.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 4c683607
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -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,