flow_offload: fill flags to action structure
[ Upstream commit 40bd094d65fc9f83941b024cde7c24516f036879 ] Fill flags to action structure to allow user control if the action should be offloaded to hardware or not. Signed-off-by: Baowen Zheng <baowen.zheng@corigine.com> Signed-off-by: Louis Peens <louis.peens@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com> Signed-off-by: David S. Miller <davem@davemloft.net> Stable-dep-of: 21c167aa0ba9 ("net/sched: act_ctinfo: use percpu stats") Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
1d76a84448
commit
015ea70d72
@ -307,7 +307,7 @@ static int tcf_bpf_init(struct net *net, struct nlattr *nla,
|
||||
ret = tcf_idr_check_alloc(tn, &index, act, bind);
|
||||
if (!ret) {
|
||||
ret = tcf_idr_create(tn, index, est, act,
|
||||
&act_bpf_ops, bind, true, 0);
|
||||
&act_bpf_ops, bind, true, flags);
|
||||
if (ret < 0) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -124,7 +124,7 @@ static int tcf_connmark_init(struct net *net, struct nlattr *nla,
|
||||
ret = tcf_idr_check_alloc(tn, &index, a, bind);
|
||||
if (!ret) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_connmark_ops, bind, false, 0);
|
||||
&act_connmark_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -212,7 +212,7 @@ static int tcf_ctinfo_init(struct net *net, struct nlattr *nla,
|
||||
err = tcf_idr_check_alloc(tn, &index, a, bind);
|
||||
if (!err) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_ctinfo_ops, bind, false, 0);
|
||||
&act_ctinfo_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -357,7 +357,7 @@ static int tcf_gate_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!err) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_gate_ops, bind, false, 0);
|
||||
&act_gate_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -553,7 +553,7 @@ static int tcf_ife_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a, &act_ife_ops,
|
||||
bind, true, 0);
|
||||
bind, true, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
kfree(p);
|
||||
|
@ -144,7 +144,7 @@ static int __tcf_ipt_init(struct net *net, unsigned int id, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a, ops, bind,
|
||||
false, 0);
|
||||
false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -254,7 +254,7 @@ static int tcf_mpls_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_mpls_ops, bind, true, 0);
|
||||
&act_mpls_ops, bind, true, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -61,7 +61,7 @@ static int tcf_nat_init(struct net *net, struct nlattr *nla, struct nlattr *est,
|
||||
err = tcf_idr_check_alloc(tn, &index, a, bind);
|
||||
if (!err) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_nat_ops, bind, false, 0);
|
||||
&act_nat_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -189,7 +189,7 @@ static int tcf_pedit_init(struct net *net, struct nlattr *nla,
|
||||
err = tcf_idr_check_alloc(tn, &index, a, bind);
|
||||
if (!err) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_pedit_ops, bind, false, 0);
|
||||
&act_pedit_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
goto out_free;
|
||||
|
@ -87,7 +87,7 @@ static int tcf_police_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, NULL, a,
|
||||
&act_police_ops, bind, true, 0);
|
||||
&act_police_ops, bind, true, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -69,7 +69,7 @@ static int tcf_sample_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_sample_ops, bind, true, 0);
|
||||
&act_sample_ops, bind, true, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -128,7 +128,7 @@ static int tcf_simp_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_simp_ops, bind, false, 0);
|
||||
&act_simp_ops, bind, false, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -176,7 +176,7 @@ static int tcf_skbedit_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_skbedit_ops, bind, true, 0);
|
||||
&act_skbedit_ops, bind, true, act_flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
@ -147,7 +147,7 @@ static int tcf_skbmod_init(struct net *net, struct nlattr *nla,
|
||||
|
||||
if (!exists) {
|
||||
ret = tcf_idr_create(tn, index, est, a,
|
||||
&act_skbmod_ops, bind, true, 0);
|
||||
&act_skbmod_ops, bind, true, flags);
|
||||
if (ret) {
|
||||
tcf_idr_cleanup(tn, index);
|
||||
return ret;
|
||||
|
Loading…
Reference in New Issue
Block a user