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

Reply via email to