return 0;
 }
 
-static int u32_destroy_key(struct tcf_proto *tp, struct tc_u_knode *n,
-                          bool free_pf)
+static int u32_destroy_key(struct tc_u_knode *n, bool free_pf)
 {
        struct tc_u_hnode *ht = rtnl_dereference(n->ht_down);
 
                                              struct tc_u_knode,
                                              rwork);
        rtnl_lock();
-       u32_destroy_key(key->tp, key, false);
+       u32_destroy_key(key, false);
        rtnl_unlock();
 }
 
                                              struct tc_u_knode,
                                              rwork);
        rtnl_lock();
-       u32_destroy_key(key->tp, key, true);
+       u32_destroy_key(key, true);
        rtnl_unlock();
 }
 
                        if (tcf_exts_get_net(&n->exts))
                                tcf_queue_work(&n->rwork, u32_delete_key_freepf_work);
                        else
-                               u32_destroy_key(n->tp, n, true);
+                               u32_destroy_key(n, true);
                }
        }
 }
                                    tca[TCA_RATE], ovr, extack);
 
                if (err) {
-                       u32_destroy_key(tp, new, false);
+                       u32_destroy_key(new, false);
                        return err;
                }
 
                err = u32_replace_hw_knode(tp, new, flags, extack);
                if (err) {
-                       u32_destroy_key(tp, new, false);
+                       u32_destroy_key(new, false);
                        return err;
                }