[dpdk-dev] net/i40e: fix data segment buffer length

Message ID 20170802072209.15233-1-qi.z.zhang@intel.com (mailing list archive)
State Accepted, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Qi Zhang Aug. 2, 2017, 7:22 a.m. UTC
  Buffer length be configured for each data segment should not exceed
the requested value, or device may fill data that exceed the boundary
of memory that be reserved.

Fixes: 4861cde46116 ("i40e: new poll mode driver")
Cc: stable@dpdk.org

Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
---
 drivers/net/i40e/i40e_rxtx.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Mark Kavanagh Aug. 2, 2017, 10:54 a.m. UTC | #1
>From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Qi Zhang
>Sent: Wednesday, August 2, 2017 8:22 AM
>To: Wu, Jingjing <jingjing.wu@intel.com>
>Cc: dev@dpdk.org; jianfeng.tang@intel.com; Zhang, Qi Z <qi.z.zhang@intel.com>;
>stable@dpdk.org; Tan, Jianfeng <jianfeng.tan@intel.com>
>Subject: [dpdk-dev] [PATCH] net/i40e: fix data segment buffer length
>
>Buffer length be configured for each data segment should not exceed
>the requested value, or device may fill data that exceed the boundary
>of memory that be reserved.
>
>Fixes: 4861cde46116 ("i40e: new poll mode driver")
>Cc: stable@dpdk.org
>
>Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
>Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>

Thanks guys, this resolved an issue that I'd encountered (as discussed off-list).

Reviewed-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com>


>---
> drivers/net/i40e/i40e_rxtx.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
>index ae64de6..d42c23c 100644
>--- a/drivers/net/i40e/i40e_rxtx.c
>+++ b/drivers/net/i40e/i40e_rxtx.c
>@@ -2474,7 +2474,7 @@ i40e_rx_queue_config(struct i40e_rx_queue *rxq)
> 	case I40E_FLAG_HEADER_SPLIT_DISABLED:
> 	default:
> 		rxq->rx_hdr_len = 0;
>-		rxq->rx_buf_len = RTE_ALIGN(buf_size,
>+		rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size,
> 			(1 << I40E_RXQ_CTX_DBUFF_SHIFT));
> 		rxq->hs_mode = i40e_header_split_none;
> 		break;
>--
>2.9.4
  
Thomas Monjalon Aug. 3, 2017, 8:47 p.m. UTC | #2
> >Buffer length be configured for each data segment should not exceed
> >the requested value, or device may fill data that exceed the boundary
> >of memory that be reserved.
> >
> >Fixes: 4861cde46116 ("i40e: new poll mode driver")
> >Cc: stable@dpdk.org
> >
> >Signed-off-by: Jianfeng Tan <jianfeng.tan@intel.com>
> >Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
> 
> Thanks guys, this resolved an issue that I'd encountered (as discussed off-list).
> 
> Reviewed-by: Mark Kavanagh <mark.b.kavanagh@intel.com>
> Tested-by: Mark Kavanagh <mark.b.kavanagh@intel.com>

Applied, thanks
  

Patch

diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index ae64de6..d42c23c 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -2474,7 +2474,7 @@  i40e_rx_queue_config(struct i40e_rx_queue *rxq)
 	case I40E_FLAG_HEADER_SPLIT_DISABLED:
 	default:
 		rxq->rx_hdr_len = 0;
-		rxq->rx_buf_len = RTE_ALIGN(buf_size,
+		rxq->rx_buf_len = RTE_ALIGN_FLOOR(buf_size,
 			(1 << I40E_RXQ_CTX_DBUFF_SHIFT));
 		rxq->hs_mode = i40e_header_split_none;
 		break;