@@ -3520,6 +3520,16 @@ void ieee80211_rx(struct ieee80211_hw *hw, struct sk_buff *skb)
if (WARN_ON(!local->started))
goto drop;
+#ifdef CONFIG_ATH10K_802_3_FORMAT
+ if (likely(skb->dev != NULL)) {
+ skb->dev = container_of(skb->dev, struct ieee80211_sub_if_data, vif)->dev;
+ skb->protocol = eth_type_trans(skb, skb->dev);
+ memset(skb->cb, 0, sizeof(skb->cb));
+ netif_receive_skb(skb);
+ return;
+ }
+#endif
+
if (likely(!(status->flag & RX_FLAG_FAILED_PLCP_CRC))) {
/*
* Validate the rate, unless a PLCP error means that