return 0;
 }
 
-static void u32_remove_hw_knode(struct tcf_proto *tp, u32 handle)
+static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h)
 {
        struct net_device *dev = tp->q->dev_queue->dev;
        struct tc_cls_u32_offload cls_u32 = {};
                return;
 
        tc_cls_common_offload_init(&cls_u32.common, tp);
-       cls_u32.command = TC_CLSU32_DELETE_KNODE;
-       cls_u32.knode.handle = handle;
+       cls_u32.command = TC_CLSU32_DELETE_HNODE;
+       cls_u32.hnode.divisor = h->divisor;
+       cls_u32.hnode.handle = h->handle;
+       cls_u32.hnode.prio = h->prio;
 
        dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_CLSU32, &cls_u32);
 }
        return 0;
 }
 
-static void u32_clear_hw_hnode(struct tcf_proto *tp, struct tc_u_hnode *h)
+static void u32_remove_hw_knode(struct tcf_proto *tp, u32 handle)
 {
        struct net_device *dev = tp->q->dev_queue->dev;
        struct tc_cls_u32_offload cls_u32 = {};
                return;
 
        tc_cls_common_offload_init(&cls_u32.common, tp);
-       cls_u32.command = TC_CLSU32_DELETE_HNODE;
-       cls_u32.hnode.divisor = h->divisor;
-       cls_u32.hnode.handle = h->handle;
-       cls_u32.hnode.prio = h->prio;
+       cls_u32.command = TC_CLSU32_DELETE_KNODE;
+       cls_u32.knode.handle = handle;
 
        dev->netdev_ops->ndo_setup_tc(dev, TC_SETUP_CLSU32, &cls_u32);
 }