In IAVF driver, check_rx_vec_allow() ensure some conditions are met to authorize vector path usage for a given Rxq. Its return is assigned to Rxq's (struct iavf_adapter *)->rx_vec_allowed in iavf_dev_rx_queue_setup(), but (struct iavf_adapter *)->rx_vec_allowed is never used afterwards. Either conditions checked in check_rx_vec_allow() are useless and so it should be removed, or DP selection should take .rx_vec_allowed value into account.
I am not sure this issue is still relevant. This bug did not get attention from Intel maintainers, so I am assigning this bz explicitly in the hope it will get some eyes. Thanks.
Hi All, In the latest code, (struct iavf_adapter *)->rx_vec_allowed is used after being assigned. commit id: d492ea071056a8a0de2991c42daee9d9acca8e35 If there are no further questions, I think we can close this ticket. Thanks Kaiwen Deng
It seems that the bug has been fixed, though the mentionned commit was not marked for backport. Cc Bruce for his opinion.
Not sure that that is a proper fix. While the value is now being used in iavf_dev_rx_queue_setup(), there are other calls for setting up vector_rx in that driver, and those do not check rx_vec_allowed. For example, in iavf_set_rx_function.