[dpdk-dev] [PATCH] igb/ixgbe: fix index overflow when resetting 4096 queue rings

Thomas Monjalon thomas.monjalon at 6wind.com
Fri Nov 15 16:15:48 CET 2013


15/11/2013 14:26, Ivan Boule :
> On 11/15/2013 02:19 PM, Thomas Monjalon wrote:
> > Rings are resetted with a loop because memset cannot be used without
> > issuing a warning about volatile casting.
> > The index of the loop was a 16-bit variable which is is sufficient for
> > ring entries number but not for the byte size of the whole ring.
> > The overflow happens when rings are configured for 4096 entries
> > (descriptor size is 16 bytes). The result is an endless loop.
> > 
> > It is fixed by indexing ring entries and resetting all bytes of the entry
> > with a simple assignment.
> > The descriptor initializer is zeroed thanks to its static declaration.
> > 
> > Signed-off-by: Thomas Monjalon <thomas.monjalon at 6wind.com>
> > ---
> > 
> >   lib/librte_pmd_e1000/igb_rxtx.c   |   14 ++++++--------
> >   lib/librte_pmd_ixgbe/ixgbe_rxtx.c |   10 ++++++----
> >   2 files changed, 12 insertions(+), 12 deletions(-)
> 
> Acked-by: Ivan Boule <ivan.boule at 6wind.com>

pushed

-- 
Thomas


More information about the dev mailing list