Check if wlan.offload_enable and wlan.offload_disable callbacks are set
in mtk_wed_flow_add/mtk_wed_flow_remove since mt7996 will not rely
on them.
Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
 int mtk_wed_flow_add(int index)
 {
        struct mtk_wed_hw *hw = hw_list[index];
-       int ret;
+       int ret = 0;
 
-       if (!hw || !hw->wed_dev)
-               return -ENODEV;
+       mutex_lock(&hw_lock);
 
-       if (hw->num_flows) {
-               hw->num_flows++;
-               return 0;
+       if (!hw || !hw->wed_dev) {
+               ret = -ENODEV;
+               goto out;
        }
 
-       mutex_lock(&hw_lock);
-       if (!hw->wed_dev) {
-               ret = -ENODEV;
+       if (!hw->wed_dev->wlan.offload_enable)
+               goto out;
+
+       if (hw->num_flows) {
+               hw->num_flows++;
                goto out;
        }
 
 {
        struct mtk_wed_hw *hw = hw_list[index];
 
-       if (!hw)
-               return;
+       mutex_lock(&hw_lock);
 
-       if (--hw->num_flows)
-               return;
+       if (!hw || !hw->wed_dev)
+               goto out;
 
-       mutex_lock(&hw_lock);
-       if (!hw->wed_dev)
+       if (!hw->wed_dev->wlan.offload_disable)
+               goto out;
+
+       if (--hw->num_flows)
                goto out;
 
        hw->wed_dev->wlan.offload_disable(hw->wed_dev);