Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9a99dc1c authored by David S. Miller's avatar David S. Miller
Browse files

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



This reverts commit d96a43c6.

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

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 5040cc99
Loading
Loading
Loading
Loading
+10 −16
Original line number Original line Diff line number Diff line
@@ -807,6 +807,10 @@ static int tcf_block_cb_call(struct tcf_block *block, enum tc_setup_type type,
	int ok_count = 0;
	int ok_count = 0;
	int err;
	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) {
	list_for_each_entry(block_cb, &block->cb_list, list) {
		err = block_cb->cb(type, type_data, block_cb->cb_priv);
		err = block_cb->cb(type, type_data, block_cb->cb_priv);
		if (err) {
		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,
int tc_setup_cb_call(struct tcf_block *block, struct tcf_exts *exts,
		     enum tc_setup_type type, void *type_data, bool err_stop)
		     enum tc_setup_type type, void *type_data, bool err_stop)
{
{
	int ok_count = 0;
	int ok_count;
	int ret;
	int ret;


	if (!block->nooffloaddevcnt) {
	ret = tcf_block_cb_call(block, type, type_data, err_stop);
	ret = tcf_block_cb_call(block, type, type_data, err_stop);
	if (ret < 0)
	if (ret < 0)
		return ret;
		return ret;
	ok_count = ret;
	ok_count = ret;
	}


	if (!exts || ok_count)
	if (!exts || ok_count)
		goto skip_egress;
		return ok_count;

	ret = tc_exts_setup_cb_egdev_call(exts, type, type_data, err_stop);
	ret = tc_exts_setup_cb_egdev_call(exts, type, type_data, err_stop);
	if (ret < 0)
	if (ret < 0)
		return ret;
		return ret;
	ok_count += 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;
	return ok_count;
}
}
EXPORT_SYMBOL(tc_setup_cb_call);
EXPORT_SYMBOL(tc_setup_cb_call);