On 12/24, Zhang, Qi Z wrote: > > >> -----Original Message----- >> From: Cao, Yahui <[email protected]> >> Sent: Tuesday, December 24, 2019 12:13 PM >> To: Wu, Jingjing <[email protected]>; Lu, Wenzhuo >> <[email protected]> >> Cc: [email protected]; [email protected]; Zhang, Qi Z <[email protected]>; Cao, >> Yahui <[email protected]>; Ye, Xiaolong <[email protected]>; Su, >> Simei <[email protected]> >> Subject: [PATCH v3] net/iavf: fix virtual channel return value error >> >> In iavf_handle_virtchnl_msg(), it is not appropriate for _clear_cmd() to be >> used >> as a notification to forground thread. So introduce >> _notify_cmd() to fix this error. In addition, since _notify_cmd() contains >> rte_wmb(), rte_compiler_barrier() is not necessary. >> >> Sending msg from VF to PF is mainly by calling iavf_execute_vf_cmd(), the >> whole virtchnl msg process is like, >> >> iavf_execute_vf_cmd() will call iavf_aq_send_msg_to_pf() to send msg and >> then polling the cmd done flag as "if (vf->pend_cmd == >> VIRTCHNL_OP_UNKNOWN)" >> >> When reply msg is returned by pf, iavf_handle_virtchnl_msg() in isr will read >> msg return value by "vf->cmd_retval = msg_ret" and immediately set the cmd >> done flag by calling _clear_cmd() to notify the iavf_execute_vf_cmd(). >> >> iavf_execute_vf_cmd() find the cmd done flag is set and then check whether >> command return value vf->cmd_retval is success or not. >> >> However _clear_cmd() also resets the vf->cmd_retval to success, overwriting >> the actual return value which is used for diagnosis. >> So iavf_execute_vf_cmd() will always find vf->cmd_retval is success and then >> return success. >> >> Fixes: 22b123a36d07 ("net/avf: initialize PMD") >> Cc: [email protected] >> >> Signed-off-by: Yahui Cao <[email protected]> > >Acked-by: Qi Zhang <[email protected]> >
Acked-by: Xiaolong Ye <[email protected]> Applied to dpdk-next-net-intel, Thanks.

