On Sat 24 Aug 2019 at 03:26, Jakub Kicinski <jakub.kicin...@netronome.com> wrote: > On Fri, 23 Aug 2019 21:50:49 +0300, Vlad Buslov wrote: >> @@ -1201,14 +1199,11 @@ static int u32_reoffload_knode(struct tcf_proto *tp, >> struct tc_u_knode *n, >> cls_u32.knode.link_handle = ht->handle; >> } >> >> - err = cb(TC_SETUP_CLSU32, &cls_u32, cb_priv); >> - if (err) { >> - if (add && tc_skip_sw(n->flags)) >> - return err; >> - return 0; >> - } >> - >> - tc_cls_offload_cnt_update(block, &n->in_hw_count, &n->flags, add); >> + err = tc_setup_cb_reoffload(block, tp, add, cb, TC_SETUP_CLSU32, >> + &cls_u32, cb_priv, &n->flags, >> + &n->in_hw_count); >> + if (err && add && tc_skip_sw(n->flags)) >> + return err; > > Could this be further simplified by adding something along the lines of: > > if (!add || !tc_skip_sw(*flags)) > err = 0; > > to tc_setup_cb_reoffload() ?
Indeed, all the users of tc_setup_cb_reoffload() have same error check that can be moved into the function. I will refactor it in V3. > >> >> return 0; >> }