This patch introduces a new function in hw/net/net_tx_pkt.{c,h} to check the current data fragment against the maximum number of data fragments.
Reported-by: Ziming Zhang <ezrak...@gmail.com> Signed-off-by: Mauro Matteo Cascella <mcasc...@redhat.com> --- hw/net/net_tx_pkt.c | 5 +++++ hw/net/net_tx_pkt.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c index 9560e4a49e..d035618f2c 100644 --- a/hw/net/net_tx_pkt.c +++ b/hw/net/net_tx_pkt.c @@ -400,6 +400,11 @@ bool net_tx_pkt_add_raw_fragment(struct NetTxPkt *pkt, hwaddr pa, } } +bool net_tx_pkt_exceed_max_fragments(struct NetTxPkt *pkt) +{ + return pkt->raw_frags >= pkt->max_raw_frags; +} + bool net_tx_pkt_has_fragments(struct NetTxPkt *pkt) { return pkt->raw_frags > 0; diff --git a/hw/net/net_tx_pkt.h b/hw/net/net_tx_pkt.h index 4ec8bbe9bd..e2ee46ae03 100644 --- a/hw/net/net_tx_pkt.h +++ b/hw/net/net_tx_pkt.h @@ -179,6 +179,14 @@ bool net_tx_pkt_send_loopback(struct NetTxPkt *pkt, NetClientState *nc); */ bool net_tx_pkt_parse(struct NetTxPkt *pkt); +/** +* indicates if the current data fragment exceeds max_raw_frags +* +* @pkt: packet +* +*/ +bool net_tx_pkt_exceed_max_fragments(struct NetTxPkt *pkt); + /** * indicates if there are data fragments held by this packet object. * -- 2.26.2