In many places where we are calling down into virtchnl, we are using a globally allocated adminq response buffer. This is unnecessary, so replace with adminq buffers allocated on stack. However, because IAVF virtchnl message queue works asynchronously in most cases, we can't remove the global buffer entirely, and we need to do some cleanup and refactoring to be able to reduce our usage of these buffers. This patchset does that.
v1 -> v2: - Stats query was passing in a pointer-to-pointer and storing pointer to global adminq response buffer as output parameter, so changing that to a local buffer resulted in storing a pointer to a buffer that was stack allocated (i.e. introduced a use-after-free). v2 -> v3: - Reworked the virtchnl message handling to not rely on implicit behavior - Split up into 8 patches for easy review Anatoly Burakov (8): net/iavf: avoid passing around pointers net/iavf: add a variable for hena net/iavf: add virtchnl interrupt enable flag net/iavf: rework "async" virtchnl requests net/iavf: refactor sending virtchnl messages net/iavf: respect output buffer in virtchnl net/iavf: do not use global virtchnl buffer net/iavf: embed virtchnl response buffer drivers/net/intel/iavf/iavf.h | 58 +--- drivers/net/intel/iavf/iavf_ethdev.c | 50 ++- drivers/net/intel/iavf/iavf_vchnl.c | 483 ++++++++++++++++----------- 3 files changed, 304 insertions(+), 287 deletions(-) -- 2.47.3

