Revert "net: sched: cls: Fix offloading when ingress dev is vxlan"

This reverts commit d96a43c66464cdf0b249fdf47b6dcd65b83af8c0.

This potentially breaks things, so reverting as per
request by Jakub Kicinski.

Signed-off-by: David S. Miller <davem@davemloft.net>
diff --git a/net/sched/cls_api.c b/net/sched/cls_api.c
index 29fb4d6..cdc3c87 100644
--- a/net/sched/cls_api.c
+++ b/net/sched/cls_api.c
@@ -807,6 +807,10 @@ static int tcf_block_cb_call(struct tcf_block *block, enum tc_setup_type type,
 	int ok_count = 0;
 	int err;
 
+	/* Make sure all netdevs sharing this block are offload-capable. */
+	if (block->nooffloaddevcnt && err_stop)
+		return -EOPNOTSUPP;
+
 	list_for_each_entry(block_cb, &block->cb_list, list) {
 		err = block_cb->cb(type, type_data, block_cb->cb_priv);
 		if (err) {
@@ -1725,31 +1729,21 @@ static int tc_exts_setup_cb_egdev_call(struct tcf_exts *exts,
 int tc_setup_cb_call(struct tcf_block *block, struct tcf_exts *exts,
 		     enum tc_setup_type type, void *type_data, bool err_stop)
 {
-	int ok_count = 0;
+	int ok_count;
 	int ret;
 
-	if (!block->nooffloaddevcnt) {
-		ret = tcf_block_cb_call(block, type, type_data, err_stop);
-		if (ret < 0)
-			return ret;
-		ok_count = ret;
-	}
+	ret = tcf_block_cb_call(block, type, type_data, err_stop);
+	if (ret < 0)
+		return ret;
+	ok_count = ret;
 
 	if (!exts || ok_count)
-		goto skip_egress;
-
+		return ok_count;
 	ret = tc_exts_setup_cb_egdev_call(exts, type, type_data, err_stop);
 	if (ret < 0)
 		return ret;
 	ok_count += ret;
 
-skip_egress:
-	/* if one of the netdevs sharing this block are not offload-capable
-	 * make sure we succeeded in egress instead.
-	 */
-	if (block->nooffloaddevcnt && !ok_count && err_stop)
-		return -EOPNOTSUPP;
-
 	return ok_count;
 }
 EXPORT_SYMBOL(tc_setup_cb_call);