Revert "net: sched: cls: Fix offloading when ingress dev is vxlan"
This reverts commit d96a43c664
.
This potentially breaks things, so reverting as per
request by Jakub Kicinski.
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5040cc990c
commit
9a99dc1c41
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue