Thread (3 messages) 3 messages, 2 authors, 2015-08-17

Re: [PATCH] mempool: fix the inverted pg_num check on create

From: Olivier MATZ <hidden>
Date: 2015-08-17 08:55:45

Hi,

On 08/16/2015 09:08 PM, Dan Aloni wrote:
quoted hunk ↗ jump to hunk
The rest of the code expects pg_num <= RTE_DIM(mp->elt_pa).

Signed-off-by: Dan Aloni <redacted>
---
 lib/librte_mempool/rte_mempool.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_mempool/rte_mempool.c b/lib/librte_mempool/rte_mempool.c
index 8e185c545479..edcfa8bf9cb1 100644
--- a/lib/librte_mempool/rte_mempool.c
+++ b/lib/librte_mempool/rte_mempool.c
@@ -461,7 +461,7 @@ rte_mempool_xmem_create(const char *name, unsigned n, unsigned elt_size,
 	}
 
 	/* Check that pg_num and pg_shift parameters are valid. */
-	if (pg_num < RTE_DIM(mp->elt_pa) || pg_shift > MEMPOOL_PG_SHIFT_MAX) {
+	if (pg_num > RTE_DIM(mp->elt_pa) || pg_shift > MEMPOOL_PG_SHIFT_MAX) {
 		rte_errno = EINVAL;
 		return NULL;
 	}

Could you give some details about the conditions to reproduce and the
consequences of the issue?
From what I see, RTE_DIM(mp->elt_pa) is always 1:
	#define MEMPOOL_PG_NUM_DEFAULT  1
	struct rte_mempool {
		...
	        phys_addr_t elt_pa[MEMPOOL_PG_NUM_DEFAULT];
	}  __rte_cache_aligned;
From rte_mempool_xmem_create() documentation, pg_num gives the size of
the paddr array, which is allocated by the caller. So I think there is
no issue here.

Regards,
Olivier
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help