struct list_head *hook_list,
                                            struct nft_flowtable *flowtable)
 {
-       struct nft_hook *hook, *hook2, *next;
+       struct nft_hook *hook, *next;
        struct nft_flowtable *ft;
        int err, i = 0;
 
                        if (!nft_is_active_next(net, ft))
                                continue;
 
-                       list_for_each_entry(hook2, &ft->hook_list, list) {
-                               if (hook->ops.dev == hook2->ops.dev &&
-                                   hook->ops.pf == hook2->ops.pf) {
-                                       err = -EEXIST;
-                                       goto err_unregister_net_hooks;
-                               }
+                       if (nft_hook_list_find(&ft->hook_list, hook)) {
+                               err = -EEXIST;
+                               goto err_unregister_net_hooks;
                        }
                }