* which are creating the cycle(s).
         */
        skb_queue_head_init(&hitlist);
-       list_for_each_entry(u, &gc_candidates, link)
+       list_for_each_entry(u, &gc_candidates, link) {
                scan_children(&u->sk, inc_inflight, &hitlist);
 
+#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
+               if (u->oob_skb) {
+                       kfree_skb(u->oob_skb);
+                       u->oob_skb = NULL;
+               }
+#endif
+       }
+
        /* not_cycle_list contains those sockets which do not make up a
         * cycle.  Restore these to the inflight list.
         */
        /* Here we are. Hitlist is filled. Die. */
        __skb_queue_purge(&hitlist);
 
-#if IS_ENABLED(CONFIG_AF_UNIX_OOB)
-       while (!list_empty(&gc_candidates)) {
-               u = list_entry(gc_candidates.next, struct unix_sock, link);
-               if (u->oob_skb) {
-                       struct sk_buff *skb = u->oob_skb;
-
-                       u->oob_skb = NULL;
-                       kfree_skb(skb);
-               }
-       }
-#endif
-
        spin_lock(&unix_gc_lock);
 
        /* There could be io_uring registered files, just push them back to