Hi Alexander,

This patch introduced a behavior change around GRO_DROP:

napi_skb_finish used to sometimes return GRO_DROP:

> -static gro_result_t napi_skb_finish(gro_result_t ret, struct sk_buff *skb)
> +static gro_result_t napi_skb_finish(struct napi_struct *napi,
> +                                 struct sk_buff *skb,
> +                                 gro_result_t ret)
>  {
>       switch (ret) {
>       case GRO_NORMAL:
> -             if (netif_receive_skb_internal(skb))
> -                     ret = GRO_DROP;
> +             gro_normal_one(napi, skb);
>

But under your change, gro_normal_one and the various calls that makes
never propagates its return value, and so GRO_DROP is never returned to
the caller, even if something drops it.

Was this intentional? Or should I start looking into how to restore it?

Thanks,
Jason

Reply via email to