From: till straumann <till.straum...@alumni.tu-berlin.de> If we have no new buffer then we must recycle/reuse the old one and *not* return it to the user for consumption.
Update #4344 --- bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c index fb72ee132e..9e21614367 100644 --- a/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c +++ b/bsps/powerpc/beatnik/net/if_mve/mv643xx_eth.c @@ -659,7 +659,7 @@ struct mveth_private { unsigned maxchain; unsigned repack; unsigned packet; - unsigned odrops; /* no counter in core code */ + unsigned idrops; /* no counter in core code */ struct { uint64_t good_octs_rcvd; /* 64-bit */ uint32_t bad_octs_rcvd; @@ -1976,7 +1976,7 @@ uintptr_t baddr; if ( err || !(newbuf = mp->alloc_rxbuf(&sz, &baddr)) ) { /* drop packet and recycle buffer */ newbuf = d->u_buf; - mp->consume_rxbuf(0, mp->consume_rxbuf_arg, err ? -1 : 0); + mp->stats.idrops++; } else { #ifdef MVETH_TESTING assert( d->byte_cnt > 0 ); @@ -2312,6 +2312,7 @@ uint32_t v; fprintf(f, " Max. mbuf chain length: %i\n", mp->stats.maxchain); fprintf(f, " # repacketed: %i\n", mp->stats.repack); fprintf(f, " # packets: %i\n", mp->stats.packet); + fprintf(f, " # buffer alloc failed: %i\n", mp->stats.idrops); fprintf(f, "MIB Counters:\n"); for ( idx = MV643XX_ETH_MIB_GOOD_OCTS_RCVD_LO>>2; idx < MV643XX_ETH_NUM_MIB_COUNTERS; -- 2.26.2 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel