iavf: add call to iavf_[add|del]_cloud_filter
authorPaul Greenwalt <paul.greenwalt@intel.com>
Tue, 14 May 2019 17:37:08 +0000 (10:37 -0700)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Mon, 17 Jun 2019 22:39:26 +0000 (15:39 -0700)
Add call to iavf_add_cloud_filter and iavf_del_cloud_filter from
iavf_process_aq_command to clear aq_required
IAVF_FLAG_AQ_ADD_CLOUD_FILTER and IAVF_FLAG_AQ_DEL_CLOUD_FILTER bits.

aq_required IAVF_FLAG_AQ_DEL_CLOUD_FILTER bit is being set in
iavf_down and iavf_delete_clsflower, and are never cleared.

aq_required IAVF_FLAG_AQ_ADD_CLOUD_FILTER bit is being set in
iavf_handle_reset and iavf_configure_clsflower, and are never
cleared.

Since the aq_required is not zero, iavf_watchdog_task is setting the
queue_delayed_work to 20 msec instead of the longer delay.

Signed-off-by: Paul Greenwalt <paul.greenwalt@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/iavf/iavf_main.c

index 6d1bef2..881561b 100644 (file)
@@ -1658,7 +1658,14 @@ static int iavf_process_aq_command(struct iavf_adapter *adapter)
                iavf_del_cloud_filter(adapter);
                return 0;
        }
-
+       if (adapter->aq_required & IAVF_FLAG_AQ_DEL_CLOUD_FILTER) {
+               iavf_del_cloud_filter(adapter);
+               return 0;
+       }
+       if (adapter->aq_required & IAVF_FLAG_AQ_ADD_CLOUD_FILTER) {
+               iavf_add_cloud_filter(adapter);
+               return 0;
+       }
        return -EAGAIN;
 }