Message ID | 1481734858-37474-3-git-send-email-paulb@mellanox.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
Hi Paul, On Wed, Dec 14, 2016 at 07:00:58PM +0200, Paul Blakey wrote: > Zero bits on the mask signify a "don't care" on the corresponding bits > in key. Some HWs require those bits on the key to be zero. Since these > bits are masked anyway, it's okay to provide the masked key to all > drivers. > > Fixes: 5b33f48842fa ('net/flower: Introduce hardware offload support') > Signed-off-by: Paul Blakey <paulb@mellanox.com> > Reviewed-by: Roi Dayan <roid@mellanox.com> > Acked-by: Jiri Pirko <jiri@mellanox.com> While I don't have a specific use case in mind that this change would break it seems to me that it would be better to handle hardware requirements at the driver level. > --- > net/sched/cls_flower.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c > index 9758f5a..35ac28d 100644 > --- a/net/sched/cls_flower.c > +++ b/net/sched/cls_flower.c > @@ -252,7 +252,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, > offload.cookie = (unsigned long)f; > offload.dissector = dissector; > offload.mask = mask; > - offload.key = &f->key; > + offload.key = &f->mkey; > offload.exts = &f->exts; > > tc->type = TC_SETUP_CLSFLOWER; > -- > 1.8.3.1 >
Thu, Dec 15, 2016 at 02:50:44PM CET, simon.horman@netronome.com wrote: >Hi Paul, > >On Wed, Dec 14, 2016 at 07:00:58PM +0200, Paul Blakey wrote: >> Zero bits on the mask signify a "don't care" on the corresponding bits >> in key. Some HWs require those bits on the key to be zero. Since these >> bits are masked anyway, it's okay to provide the masked key to all >> drivers. >> >> Fixes: 5b33f48842fa ('net/flower: Introduce hardware offload support') >> Signed-off-by: Paul Blakey <paulb@mellanox.com> >> Reviewed-by: Roi Dayan <roid@mellanox.com> >> Acked-by: Jiri Pirko <jiri@mellanox.com> > >While I don't have a specific use case in mind that this change would break >it seems to me that it would be better to handle hardware requirements >at the driver level. Even though, makes no sense to pass unmasked key down. Is is only confusing. This patch fixes it. > >> --- >> net/sched/cls_flower.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c >> index 9758f5a..35ac28d 100644 >> --- a/net/sched/cls_flower.c >> +++ b/net/sched/cls_flower.c >> @@ -252,7 +252,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, >> offload.cookie = (unsigned long)f; >> offload.dissector = dissector; >> offload.mask = mask; >> - offload.key = &f->key; >> + offload.key = &f->mkey; >> offload.exts = &f->exts; >> >> tc->type = TC_SETUP_CLSFLOWER; >> -- >> 1.8.3.1 >>
diff --git a/net/sched/cls_flower.c b/net/sched/cls_flower.c index 9758f5a..35ac28d 100644 --- a/net/sched/cls_flower.c +++ b/net/sched/cls_flower.c @@ -252,7 +252,7 @@ static int fl_hw_replace_filter(struct tcf_proto *tp, offload.cookie = (unsigned long)f; offload.dissector = dissector; offload.mask = mask; - offload.key = &f->key; + offload.key = &f->mkey; offload.exts = &f->exts; tc->type = TC_SETUP_CLSFLOWER;