From: Sergei Shtylyov <sergei.shtyl...@cogentembedded.com>
Date: Tue, 02 Jun 2015 23:44:10 +0300

> +             /* Received network control queue */
> +             if (ris0 & RIS0_FRF1) {
> +                     ravb_write(ndev, ~RIS0_FRF1, RIS0);
> +                     /* Timestamp of network control packets that is based
> +                      * on IEEE802.1AS, is used time synchronization of PTP.
> +                      * It should not be handled by NAPI scheduling, because
> +                      * it needs to be received as soon as possible.
> +                      */
> +                     ravb_rx(ndev, NULL, RAVB_NC);
> +                     result = IRQ_HANDLED;
> +             }

Nobody else makes this distinction, all packets should be processed
via your NAPI path.

When I see people conditionally invoking netif_rx()
vs. netif_receive_skb() in their packet receive routine, like
conditional locking, it's a big red flag.

Furthermore, you should pass the NAPI context into ravb_rx() and use
it so that you can invoke napi_gro_receive() on all of the packets and
therefore support GRO.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to