4fb6ab3f86
When host SW issues a HWRM_RING_FREE for Tx/Rx/AGG ring in HW, the FW flushes the BDs associated with the ring and performs other cleanup in the HW. The host software should ideally check for an indication from the FW indicating this step has been completed successfully to avoid unexpected errors during cleanup. The FW issues a HWRM_DONE response to the RING_FREE request on the corresponding CQ ring. Poll the CQs during cleanup and ensure the HWRM_FREE command is completed not just based on the value of valid bit but also the HWRM_DONE response for the ring. If the HWRM_DONE response is not seen, force the cleanup to complete just based on the valid bit. Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com> Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>