odp_packet_buf_len() must return buffer length over all segments

Signed-off-by: Bill Fischofer <[email protected]>
---
 platform/linux-generic/odp_packet.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/platform/linux-generic/odp_packet.c 
b/platform/linux-generic/odp_packet.c
index 4202a90..2abb227 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -211,7 +211,9 @@ void *odp_packet_head(odp_packet_t pkt)
 
 uint32_t odp_packet_buf_len(odp_packet_t pkt)
 {
-       return odp_packet_hdr(pkt)->buf_hdr.size;
+       odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt);
+
+       return pkt_hdr->buf_hdr.size * pkt_hdr->buf_hdr.segcount;
 }
 
 void *odp_packet_data(odp_packet_t pkt)
-- 
2.5.0

_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to