Currently, a lot of virtchnl requests will use global virtchnl output
buffer as their `out_buffer` for VF requests. This was originally done this
way because most requests were done asynchronously and the response was not
written directly into the `out_buffer`. This is no longer the case, so the
per-command buffers can be safely replaced with stack allocated buffers.

Signed-off-by: Anatoly Burakov <[email protected]>
---
 drivers/net/intel/iavf/iavf_vchnl.c | 147 +++++++++++++++++-----------
 1 file changed, 89 insertions(+), 58 deletions(-)

diff --git a/drivers/net/intel/iavf/iavf_vchnl.c 
b/drivers/net/intel/iavf/iavf_vchnl.c
index 250816c24a..1e98503b31 100644
--- a/drivers/net/intel/iavf/iavf_vchnl.c
+++ b/drivers/net/intel/iavf/iavf_vchnl.c
@@ -650,7 +650,7 @@ iavf_handle_virtchnl_msg(struct rte_eth_dev *dev)
 int
 iavf_enable_vlan_strip(struct iavf_adapter *adapter)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int ret;
 
@@ -658,7 +658,7 @@ iavf_enable_vlan_strip(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_ENABLE_VLAN_STRIPPING;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
        if (ret)
@@ -671,7 +671,7 @@ iavf_enable_vlan_strip(struct iavf_adapter *adapter)
 int
 iavf_disable_vlan_strip(struct iavf_adapter *adapter)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int ret;
 
@@ -679,7 +679,7 @@ iavf_disable_vlan_strip(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_DISABLE_VLAN_STRIPPING;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
        if (ret)
@@ -698,6 +698,7 @@ iavf_check_api_version(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_version_info version, *pver;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -707,7 +708,7 @@ iavf_check_api_version(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_VERSION;
        args.in_args = (uint8_t *)&version;
        args.in_args_size = sizeof(version);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -747,12 +748,13 @@ iavf_get_vf_resource(struct iavf_adapter *adapter)
 {
        struct iavf_hw *hw = IAVF_DEV_PRIVATE_TO_HW(adapter);
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        uint32_t caps, len;
        int err, i;
 
        args.ops = VIRTCHNL_OP_GET_VF_RESOURCES;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        caps = IAVF_BASIC_OFFLOAD_CAPS | VIRTCHNL_VF_CAP_ADV_LINK_SPEED |
@@ -808,13 +810,14 @@ int
 iavf_get_supported_rxdid(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int ret;
 
        args.ops = VIRTCHNL_OP_GET_SUPPORTED_RXDIDS;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -836,6 +839,7 @@ iavf_config_vlan_strip_v2(struct iavf_adapter *adapter, 
bool enable)
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_vlan_supported_caps *stripping_caps;
        struct virtchnl_vlan_setting vlan_strip;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        uint32_t *ethertype;
        int ret;
@@ -859,7 +863,7 @@ iavf_config_vlan_strip_v2(struct iavf_adapter *adapter, 
bool enable)
                            VIRTCHNL_OP_DISABLE_VLAN_STRIPPING_V2;
        args.in_args = (uint8_t *)&vlan_strip;
        args.in_args_size = sizeof(vlan_strip);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
        if (ret)
@@ -876,6 +880,7 @@ iavf_config_vlan_insert_v2(struct iavf_adapter *adapter, 
bool enable)
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_vlan_supported_caps *insertion_caps;
        struct virtchnl_vlan_setting vlan_insert;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        uint32_t *ethertype;
        int ret;
@@ -899,7 +904,7 @@ iavf_config_vlan_insert_v2(struct iavf_adapter *adapter, 
bool enable)
                            VIRTCHNL_OP_DISABLE_VLAN_INSERTION_V2;
        args.in_args = (uint8_t *)&vlan_insert;
        args.in_args_size = sizeof(vlan_insert);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
        if (ret)
@@ -916,6 +921,7 @@ iavf_add_del_vlan_v2(struct iavf_adapter *adapter, uint16_t 
vlanid, bool add)
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_vlan_supported_caps *supported_caps;
        struct virtchnl_vlan_filter_list_v2 vlan_filter;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_vlan *vlan_setting;
        struct iavf_cmd_info args;
        uint32_t filtering_caps;
@@ -942,7 +948,7 @@ iavf_add_del_vlan_v2(struct iavf_adapter *adapter, uint16_t 
vlanid, bool add)
        args.ops = add ? VIRTCHNL_OP_ADD_VLAN_V2 : VIRTCHNL_OP_DEL_VLAN_V2;
        args.in_args = (uint8_t *)&vlan_filter;
        args.in_args_size = sizeof(vlan_filter);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -956,13 +962,14 @@ int
 iavf_get_vlan_offload_caps_v2(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int ret;
 
        args.ops = VIRTCHNL_OP_GET_OFFLOAD_VLAN_V2_CAPS;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        ret = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -972,7 +979,7 @@ iavf_get_vlan_offload_caps_v2(struct iavf_adapter *adapter)
                return ret;
        }
 
-       rte_memcpy(&vf->vlan_v2_caps, vf->aq_resp, sizeof(vf->vlan_v2_caps));
+       rte_memcpy(&vf->vlan_v2_caps, args.out_buffer, 
sizeof(vf->vlan_v2_caps));
 
        return 0;
 }
@@ -982,6 +989,7 @@ iavf_enable_queues(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_queue_select queue_select;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -994,7 +1002,7 @@ iavf_enable_queues(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_ENABLE_QUEUES;
        args.in_args = (u8 *)&queue_select;
        args.in_args_size = sizeof(queue_select);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err) {
@@ -1010,6 +1018,7 @@ iavf_disable_queues(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_queue_select queue_select;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1022,7 +1031,7 @@ iavf_disable_queues(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_DISABLE_QUEUES;
        args.in_args = (u8 *)&queue_select;
        args.in_args_size = sizeof(queue_select);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err) {
@@ -1039,6 +1048,7 @@ iavf_switch_queue(struct iavf_adapter *adapter, uint16_t 
qid,
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_queue_select queue_select;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1058,7 +1068,7 @@ iavf_switch_queue(struct iavf_adapter *adapter, uint16_t 
qid,
                args.ops = VIRTCHNL_OP_DISABLE_QUEUES;
        args.in_args = (u8 *)&queue_select;
        args.in_args_size = sizeof(queue_select);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1071,6 +1081,7 @@ int
 iavf_enable_queues_lv(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct {
                struct virtchnl_del_ena_dis_queues msg;
                struct virtchnl_queue_chunk chunks[IAVF_RXTX_QUEUE_CHUNKS_NUM - 
1];
@@ -1096,7 +1107,7 @@ iavf_enable_queues_lv(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_ENABLE_QUEUES_V2;
        args.in_args = (u8 *)queue_select;
        args.in_args_size = sizeof(queue_req);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1110,6 +1121,7 @@ int
 iavf_disable_queues_lv(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct {
                struct virtchnl_del_ena_dis_queues msg;
                struct virtchnl_queue_chunk chunks[IAVF_RXTX_QUEUE_CHUNKS_NUM - 
1];
@@ -1135,7 +1147,7 @@ iavf_disable_queues_lv(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_DISABLE_QUEUES_V2;
        args.in_args = (u8 *)queue_select;
        args.in_args_size = sizeof(queue_req);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1150,6 +1162,7 @@ iavf_switch_queue_lv(struct iavf_adapter *adapter, 
uint16_t qid,
                 bool rx, bool on)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct {
                struct virtchnl_del_ena_dis_queues msg;
        } queue_req = {0};
@@ -1177,7 +1190,7 @@ iavf_switch_queue_lv(struct iavf_adapter *adapter, 
uint16_t qid,
                args.ops = VIRTCHNL_OP_DISABLE_QUEUES_V2;
        args.in_args = (u8 *)queue_select;
        args.in_args_size = sizeof(queue_req);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1191,6 +1204,7 @@ int
 iavf_configure_rss_lut(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_rss_lut *rss_lut;
        struct iavf_cmd_info args;
        int len, err = 0;
@@ -1207,7 +1221,7 @@ iavf_configure_rss_lut(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_CONFIG_RSS_LUT;
        args.in_args = (u8 *)rss_lut;
        args.in_args_size = len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1223,6 +1237,7 @@ int
 iavf_configure_rss_key(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_rss_key *rss_key;
        struct iavf_cmd_info args;
        int len, err = 0;
@@ -1239,7 +1254,7 @@ iavf_configure_rss_key(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_CONFIG_RSS_KEY;
        args.in_args = (u8 *)rss_key;
        args.in_args_size = len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1307,6 +1322,7 @@ iavf_configure_queue_chunk(struct iavf_adapter *adapter,
                uint16_t chunk_start)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct {
                struct virtchnl_vsi_queue_config_info config;
                struct virtchnl_queue_pair_info qp[IAVF_CFG_Q_NUM_PER_BUF];
@@ -1335,7 +1351,7 @@ iavf_configure_queue_chunk(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_CONFIG_VSI_QUEUES;
        args.in_args = (uint8_t *)vc_config;
        args.in_args_size = buf_len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1370,6 +1386,7 @@ int
 iavf_config_irq_map(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct {
                struct virtchnl_irq_map_info map_info;
                struct virtchnl_vector_map vecmap[IAVF_MAX_NUM_QUEUES_DFLT];
@@ -1419,7 +1436,7 @@ iavf_config_irq_map(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_CONFIG_IRQ_MAP;
        args.in_args = (u8 *)map_info;
        args.in_args_size = buf_len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1438,6 +1455,7 @@ iavf_config_irq_map_lv_chunk(struct iavf_adapter *adapter,
                struct virtchnl_queue_vector qv_maps[IAVF_CFG_Q_NUM_PER_BUF];
        } chunk_req = {0};
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args = {0};
        struct virtchnl_queue_vector_maps *map_info = &chunk_req.map_info;
        struct virtchnl_queue_vector *qv_maps = chunk_req.qv_maps;
@@ -1464,7 +1482,7 @@ iavf_config_irq_map_lv_chunk(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_MAP_QUEUE_VECTOR;
        args.in_args = (u8 *)map_info;
        args.in_args_size = buf_len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        return iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1497,6 +1515,7 @@ iavf_add_del_all_mac_addr(struct iavf_adapter *adapter, 
bool add)
        } list_req = {0};
        struct virtchnl_ether_addr_list *list = &list_req.list;
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args = {0};
        int err, i;
        size_t buf_len;
@@ -1524,7 +1543,7 @@ iavf_add_del_all_mac_addr(struct iavf_adapter *adapter, 
bool add)
        args.ops = add ? VIRTCHNL_OP_ADD_ETH_ADDR : VIRTCHNL_OP_DEL_ETH_ADDR;
        args.in_args = (uint8_t *)list;
        args.in_args_size = buf_len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1537,6 +1556,7 @@ iavf_query_stats(struct iavf_adapter *adapter,
                struct virtchnl_eth_stats *pstats)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_queue_select q_stats;
        struct iavf_cmd_info args;
        int err;
@@ -1549,7 +1569,7 @@ iavf_query_stats(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_GET_STATS;
        args.in_args = (uint8_t *)&q_stats;
        args.in_args_size = sizeof(q_stats);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1567,6 +1587,7 @@ iavf_config_promisc(struct iavf_adapter *adapter,
                   bool enable_multicast)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_promisc_info promisc;
        struct iavf_cmd_info args;
        int err;
@@ -1586,7 +1607,7 @@ iavf_config_promisc(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_CONFIG_PROMISCUOUS_MODE;
        args.in_args = (uint8_t *)&promisc;
        args.in_args_size = sizeof(promisc);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1612,6 +1633,7 @@ iavf_add_del_eth_addr(struct iavf_adapter *adapter, 
struct rte_ether_addr *addr,
 {
        struct virtchnl_ether_addr_list *list;
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        uint8_t cmd_buffer[sizeof(struct virtchnl_ether_addr_list) +
                           sizeof(struct virtchnl_ether_addr)];
        struct iavf_cmd_info args;
@@ -1630,7 +1652,7 @@ iavf_add_del_eth_addr(struct iavf_adapter *adapter, 
struct rte_ether_addr *addr,
        args.ops = add ? VIRTCHNL_OP_ADD_ETH_ADDR : VIRTCHNL_OP_DEL_ETH_ADDR;
        args.in_args = cmd_buffer;
        args.in_args_size = sizeof(cmd_buffer);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1644,6 +1666,7 @@ iavf_add_del_vlan(struct iavf_adapter *adapter, uint16_t 
vlanid, bool add)
 {
        struct virtchnl_vlan_filter_list *vlan_list;
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        uint8_t cmd_buffer[sizeof(struct virtchnl_vlan_filter_list) +
                                                        sizeof(uint16_t)];
        struct iavf_cmd_info args;
@@ -1657,7 +1680,7 @@ iavf_add_del_vlan(struct iavf_adapter *adapter, uint16_t 
vlanid, bool add)
        args.ops = add ? VIRTCHNL_OP_ADD_VLAN : VIRTCHNL_OP_DEL_VLAN;
        args.in_args = cmd_buffer;
        args.in_args_size = sizeof(cmd_buffer);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
        if (err)
@@ -1673,7 +1696,7 @@ iavf_fdir_add(struct iavf_adapter *adapter,
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_fdir_add *fdir_ret;
-
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1683,7 +1706,7 @@ iavf_fdir_add(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_ADD_FDIR_FILTER;
        args.in_args = (uint8_t *)(&filter->add_fltr);
        args.in_args_size = sizeof(*(&filter->add_fltr));
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1733,7 +1756,7 @@ iavf_fdir_del(struct iavf_adapter *adapter,
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_fdir_del *fdir_ret;
-
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1743,7 +1766,7 @@ iavf_fdir_del(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_DEL_FDIR_FILTER;
        args.in_args = (uint8_t *)(&filter->del_fltr);
        args.in_args_size = sizeof(filter->del_fltr);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1780,7 +1803,7 @@ iavf_fdir_check(struct iavf_adapter *adapter,
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_fdir_add *fdir_ret;
-
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1790,7 +1813,7 @@ iavf_fdir_check(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_ADD_FDIR_FILTER;
        args.in_args = (uint8_t *)(&filter->add_fltr);
        args.in_args_size = sizeof(*(&filter->add_fltr));
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1822,6 +1845,7 @@ int
 iavf_flow_sub(struct iavf_adapter *adapter, struct iavf_fsub_conf *filter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_flow_sub *fsub_cfg;
        struct iavf_cmd_info args;
        int err;
@@ -1833,7 +1857,7 @@ iavf_flow_sub(struct iavf_adapter *adapter, struct 
iavf_fsub_conf *filter)
        args.ops = VIRTCHNL_OP_FLOW_SUBSCRIBE;
        args.in_args = (uint8_t *)(&filter->sub_fltr);
        args.in_args_size = sizeof(*(&filter->sub_fltr));
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1874,6 +1898,7 @@ iavf_flow_unsub(struct iavf_adapter *adapter, struct 
iavf_fsub_conf *filter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_flow_unsub *unsub_cfg;
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1884,7 +1909,7 @@ iavf_flow_unsub(struct iavf_adapter *adapter, struct 
iavf_fsub_conf *filter)
        args.ops = VIRTCHNL_OP_FLOW_UNSUBSCRIBE;
        args.in_args = (uint8_t *)(&filter->unsub_fltr);
        args.in_args_size = sizeof(filter->unsub_fltr);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1917,7 +1942,7 @@ iavf_flow_sub_check(struct iavf_adapter *adapter,
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
        struct virtchnl_flow_sub *fsub_cfg;
-
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1927,7 +1952,7 @@ iavf_flow_sub_check(struct iavf_adapter *adapter,
        args.ops = VIRTCHNL_OP_FLOW_SUBSCRIBE;
        args.in_args = (uint8_t *)(&filter->sub_fltr);
        args.in_args_size = sizeof(*(&filter->sub_fltr));
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1958,7 +1983,7 @@ int
 iavf_add_del_rss_cfg(struct iavf_adapter *adapter,
                     struct virtchnl_rss_cfg *rss_cfg, bool add)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -1967,7 +1992,7 @@ iavf_add_del_rss_cfg(struct iavf_adapter *adapter,
                VIRTCHNL_OP_DEL_RSS_CFG;
        args.in_args = (u8 *)rss_cfg;
        args.in_args_size = sizeof(*rss_cfg);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -1983,7 +2008,7 @@ iavf_add_del_rss_cfg(struct iavf_adapter *adapter,
 int
 iavf_get_hena_caps(struct iavf_adapter *adapter, uint64_t *caps)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_rss_hena *hena;
        struct iavf_cmd_info args;
        int err;
@@ -1991,7 +2016,7 @@ iavf_get_hena_caps(struct iavf_adapter *adapter, uint64_t 
*caps)
        args.ops = VIRTCHNL_OP_GET_RSS_HENA_CAPS;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2009,7 +2034,7 @@ iavf_get_hena_caps(struct iavf_adapter *adapter, uint64_t 
*caps)
 int
 iavf_set_hena(struct iavf_adapter *adapter, uint64_t hena)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_rss_hena vrh;
        struct iavf_cmd_info args;
        int err;
@@ -2018,7 +2043,7 @@ iavf_set_hena(struct iavf_adapter *adapter, uint64_t hena)
        args.ops = VIRTCHNL_OP_SET_RSS_HENA;
        args.in_args = (u8 *)&vrh;
        args.in_args_size = sizeof(vrh);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2033,6 +2058,7 @@ int
 iavf_get_qos_cap(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        uint32_t len;
        int err;
@@ -2040,7 +2066,7 @@ iavf_get_qos_cap(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_GET_QOS_CAPS;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
 
@@ -2064,7 +2090,7 @@ int iavf_set_q_tc_map(struct rte_eth_dev *dev,
 {
        struct iavf_adapter *adapter =
                        IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -2072,7 +2098,7 @@ int iavf_set_q_tc_map(struct rte_eth_dev *dev,
        args.ops = VIRTCHNL_OP_CONFIG_QUEUE_TC_MAP;
        args.in_args = (uint8_t *)q_tc_mapping;
        args.in_args_size = size;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2087,7 +2113,7 @@ int iavf_set_q_bw(struct rte_eth_dev *dev,
 {
        struct iavf_adapter *adapter =
                        IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(dev->data->dev_private);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
@@ -2095,7 +2121,7 @@ int iavf_set_q_bw(struct rte_eth_dev *dev,
        args.ops = VIRTCHNL_OP_CONFIG_QUEUE_BW;
        args.in_args = (uint8_t *)q_bw;
        args.in_args_size = size;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2111,6 +2137,7 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapter,
                        uint32_t mc_addrs_num, bool add)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        uint8_t cmd_buffer[sizeof(struct virtchnl_ether_addr_list) +
                (IAVF_NUM_MACADDR_MAX * sizeof(struct virtchnl_ether_addr))];
        struct virtchnl_ether_addr_list *list;
@@ -2141,7 +2168,7 @@ iavf_add_del_mc_addr_list(struct iavf_adapter *adapter,
        args.in_args = cmd_buffer;
        args.in_args_size = sizeof(struct virtchnl_ether_addr_list) +
                i * sizeof(struct virtchnl_ether_addr);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
        err = iavf_execute_vf_cmd_safe(adapter, &args);
 
@@ -2160,6 +2187,7 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
        struct iavf_adapter *adapter =
                IAVF_DEV_PRIVATE_TO_ADAPTER(dev->data->dev_private);
        struct iavf_info *vf =  IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_vf_res_request vfres;
        struct iavf_cmd_info args;
        uint16_t num_queue_pairs;
@@ -2181,7 +2209,7 @@ iavf_request_queues(struct rte_eth_dev *dev, uint16_t num)
        args.ops = VIRTCHNL_OP_REQUEST_QUEUES;
        args.in_args = (u8 *)&vfres;
        args.in_args_size = sizeof(vfres);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        if (vf->vf_res->vf_cap_flags & VIRTCHNL_VF_OFFLOAD_WB_ON_ITR) {
@@ -2224,6 +2252,7 @@ int
 iavf_get_max_rss_queue_region(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        uint16_t qregion_width;
        int err;
@@ -2231,7 +2260,7 @@ iavf_get_max_rss_queue_region(struct iavf_adapter 
*adapter)
        args.ops = VIRTCHNL_OP_GET_MAX_RSS_QREGION;
        args.in_args = NULL;
        args.in_args_size = 0;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2255,14 +2284,14 @@ iavf_ipsec_crypto_request(struct iavf_adapter *adapter,
                uint8_t *msg, size_t msg_len,
                uint8_t *resp_msg, size_t resp_msg_len)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        int err;
 
        args.ops = VIRTCHNL_OP_INLINE_IPSEC_CRYPTO;
        args.in_args = msg;
        args.in_args_size = msg_len;
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2280,7 +2309,7 @@ iavf_ipsec_crypto_request(struct iavf_adapter *adapter,
 int
 iavf_set_vf_quanta_size(struct iavf_adapter *adapter, u16 start_queue_id, u16 
num_queues)
 {
-       struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct iavf_cmd_info args;
        struct virtchnl_quanta_cfg q_quanta;
        int err;
@@ -2296,7 +2325,7 @@ iavf_set_vf_quanta_size(struct iavf_adapter *adapter, u16 
start_queue_id, u16 nu
        args.ops = VIRTCHNL_OP_CONFIG_QUANTA;
        args.in_args = (uint8_t *)&q_quanta;
        args.in_args_size = sizeof(q_quanta);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2312,6 +2341,7 @@ int
 iavf_get_ptp_cap(struct iavf_adapter *adapter)
 {
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_ptp_caps ptp_caps;
        struct iavf_cmd_info args;
        int err;
@@ -2322,7 +2352,7 @@ iavf_get_ptp_cap(struct iavf_adapter *adapter)
        args.ops = VIRTCHNL_OP_1588_PTP_GET_CAPS;
        args.in_args = (uint8_t *)&ptp_caps;
        args.in_args_size = sizeof(ptp_caps);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        err = iavf_execute_vf_cmd_safe(adapter, &args);
@@ -2342,6 +2372,7 @@ iavf_get_phc_time(struct ci_rx_queue *rxq)
 {
        struct iavf_adapter *adapter = rxq->iavf_vsi->adapter;
        struct iavf_info *vf = IAVF_DEV_PRIVATE_TO_VF(adapter);
+       uint8_t msg_buf[IAVF_AQ_BUF_SZ] = {0};
        struct virtchnl_phc_time phc_time;
        struct iavf_cmd_info args;
        int err = 0;
@@ -2349,7 +2380,7 @@ iavf_get_phc_time(struct ci_rx_queue *rxq)
        args.ops = VIRTCHNL_OP_1588_PTP_GET_TIME;
        args.in_args = (uint8_t *)&phc_time;
        args.in_args_size = sizeof(phc_time);
-       args.out_buffer = vf->aq_resp;
+       args.out_buffer = msg_buf;
        args.out_size = IAVF_AQ_BUF_SZ;
 
        rte_spinlock_lock(&vf->phc_time_aq_lock);
-- 
2.47.3

Reply via email to