struct nf_hook_state state;
        int ret;
 
-       elem = rcu_dereference(net->nf.hooks[NFPROTO_BRIDGE][hook]);
-
-       while (elem && (nf_hook_entry_priority(elem) <= NF_BR_PRI_BRNF))
-               elem = rcu_dereference(elem->next);
+       for (elem = rcu_dereference(net->nf.hooks[NFPROTO_BRIDGE][hook]);
+            elem && nf_hook_entry_priority(elem) <= NF_BR_PRI_BRNF;
+            elem = rcu_dereference(elem->next))
+               ;
 
        if (!elem)
                return okfn(net, sk, skb);
 
        mutex_lock(&nf_hook_mutex);
 
        /* Find the spot in the list */
-       while ((p = nf_entry_dereference(*pp)) != NULL) {
+       for (; (p = nf_entry_dereference(*pp)) != NULL; pp = &p->next) {
                if (reg->priority < nf_hook_entry_priority(p))
                        break;
-               pp = &p->next;
        }
        rcu_assign_pointer(entry->next, p);
        rcu_assign_pointer(*pp, entry);
                return;
 
        mutex_lock(&nf_hook_mutex);
-       while ((p = nf_entry_dereference(*pp)) != NULL) {
+       for (; (p = nf_entry_dereference(*pp)) != NULL; pp = &p->next) {
                if (nf_hook_entry_ops(p) == reg) {
                        rcu_assign_pointer(*pp, p->next);
                        break;
                }
-               pp = &p->next;
        }
        mutex_unlock(&nf_hook_mutex);
        if (!p) {