From aca95e38cc13a2ddc65b459186e45c1a1447625e Mon Sep 17 00:00:00 2001 From: Wenzhuo Lu Date: Wed, 21 Dec 2016 16:29:40 +0800 Subject: [PATCH] net/i40e: fix wrong return value when handling PF message When VF receives a message from PF, it should check the return value. But in i40evf_execute_vf_cmd the value is ignored and not returned to the caller. Fixes: 95cd21f45d1b ("i40evf: allocate virtchnl commands buffer per VF") Signed-off-by: Wenzhuo Lu --- drivers/net/i40e/i40e_ethdev.h | 2 +- drivers/net/i40e/i40e_ethdev_vf.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/i40e/i40e_ethdev.h b/drivers/net/i40e/i40e_ethdev.h index cbbba9f536..b0363f9c16 100644 --- a/drivers/net/i40e/i40e_ethdev.h +++ b/drivers/net/i40e/i40e_ethdev.h @@ -527,7 +527,7 @@ struct i40e_vf { enum i40e_aq_link_speed link_speed; bool vf_reset; volatile uint32_t pend_cmd; /* pending command not finished yet */ - uint32_t cmd_retval; /* return value of the cmd response from PF */ + int32_t cmd_retval; /* return value of the cmd response from PF */ u16 pend_msg; /* flags indicates events from pf not handled yet */ uint8_t *aq_resp; /* buffer to store the adminq response from PF */ diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index effb7a74fe..f50ac2d025 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -361,6 +361,7 @@ i40evf_execute_vf_cmd(struct rte_eth_dev *dev, struct vf_cmd_info *args) err = -1; do { ret = i40evf_read_pfmsg(dev, &info); + vf->cmd_retval = info.result; if (ret == I40EVF_MSG_CMD) { err = 0; break; -- 2.20.1