Memory allocation for qpl->mz and qpl->qpl_bufs occurs in the
gve_alloc_queue_page_list() function under the condition
if(is_rx) qpl_bufs = rte_zmalloc else mz = gve_alloc_using_mz.
Accordingly, if qpl->mz == NULL, then memory allocation
for qpl->qpl_bufs definitely occurred. That is, in line
gve_ethdev.c:127, an additional check if (qpl->qpl_bufs)
is not required.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 9873a135bfba ("net/gve: allocate Rx QPL pages using malloc")
Cc: [email protected]

Signed-off-by: Konyukhov Aleksandr <[email protected]>
---
 drivers/net/gve/gve_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/gve/gve_ethdev.c b/drivers/net/gve/gve_ethdev.c
index 3596a0236d..b72359a9af 100644
--- a/drivers/net/gve/gve_ethdev.c
+++ b/drivers/net/gve/gve_ethdev.c
@@ -124,7 +124,7 @@ gve_free_queue_page_list(struct gve_queue_page_list *qpl)
        if (qpl->mz) {
                rte_memzone_free(qpl->mz);
                qpl->mz = NULL;
-       } else if (qpl->qpl_bufs) {
+       } else {
                uint32_t i;
 
                for (i = 0; i < qpl->num_entries; i++)
-- 
2.43.0

Reply via email to