Re: LRO num of frags limit

From: Ben Hutchings
Date: Tue Sep 16 2008 - 06:40:37 EST


On Tue, 2008-09-16 at 10:36 +0300, Eli Cohen wrote:
> Hi,
>
> looking at the LRO code, at __lro_proc_segment(), it seems that the
> network driver can configure lro_mgr->max_aggr to any value it wants
> while the number of fragments aggregated must not exceed MAX_SKB_FRAGS

Correct.

> (since we only use a single SKB to aggregate fragments, allocated by
> lro_gen_skb()). Moreover, even if the driver does limit
> lro_mgr->max_aggr to MAX_SKB_FRAGS, it might still cause overflow
> since subsequent aggregations are done at lro_add_frags() which is
> called before checking whether we overflow.

So you must set max_aggr to
MAX_SKB_FRAGS - max number of frags added at once + 1.

> If the above observation is correct, I can send a patch.

I would be interested to see that, anyway.

Ben.

--
Ben Hutchings, Senior Software Engineer, Solarflare Communications
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/