On Fri, 5 Jul 2019 01:48:32 +0200, Pablo Neira Ayuso wrote: > @@ -1052,12 +1145,19 @@ static int tcf_block_offload_cmd(struct tcf_block *block, > struct netlink_ext_ack *extack) > { > struct tc_block_offload bo = {}; > + int err; > > bo.command = command; > bo.binder_type = ei->binder_type; > bo.block = block; > bo.extack = extack; > - return dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_BLOCK, &bo); > + INIT_LIST_HEAD(&bo.cb_list); > + > + err = dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_BLOCK, &bo); > + if (err < 0) > + return err; > + > + return tcf_block_setup(block, &bo); If this fails nothing will undo the old ndo call, no? > } > > static int tcf_block_offload_bind(struct tcf_block *block, struct Qdisc *q,