On 11 April 2016 at 11:35, Arend van Spriel <[email protected]> wrote:
> @@ -298,18 +298,11 @@ void brcmf_txflowblock(struct device *dev, bool state)
> brcmf_fws_bus_blocked(drvr, state);
> }
>
> -void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb,
> - bool handle_event)
> +void brcmf_netif_rx(struct brcmf_if *ifp, struct sk_buff *skb)
> {
> - skb->protocol = eth_type_trans(skb, ifp->ndev);
With this change every brcmf_netif_rx caller has to call
eth_type_trans on its own.
> @@ -348,10 +341,17 @@ void brcmf_rx_frame(struct device *dev, struct sk_buff
> *skb, bool handle_evnt)
> return;
> }
>
> - if (brcmf_proto_is_reorder_skb(skb))
> + skb->protocol = eth_type_trans(skb, ifp->ndev);
> +
> + if (brcmf_proto_is_reorder_skb(skb)) {
> brcmf_proto_rxreorder(ifp, skb);
> - else
> - brcmf_netif_rx(ifp, skb, handle_evnt);
> + } else {
> + /* Process special event packets */
> + if (handle_event)
> + brcmf_fweh_process_skb(ifp->drvr, skb);
> +
> + brcmf_netif_rx(ifp, skb);
> + }
> }
You added a call to eth_type_trans in brcmf_rx_frame which is used by
USB and SDIO. My guess it you wanted to avoid having duplicated
eth_type_trans call in brcmf_proto_rxreorder.
However you forgot about calling eth_type_trans from
brcmf_msgbuf_process_rx_complete (used by PCI). So to fix this
regression you'll need another call to eth_type_trans anyway.
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html