for (pp = &mp->ports;
                             (p = rcu_dereference(*pp)) != NULL;
                              pp = &p->next) {
+                               struct br_mdb_entry e;
+
                                port = p->port;
-                               if (port) {
-                                       struct br_mdb_entry e;
-                                       memset(&e, 0, sizeof(e));
-                                       e.ifindex = port->dev->ifindex;
-                                       e.vid = p->addr.vid;
-                                       __mdb_entry_fill_flags(&e, p->flags);
-                                       if (p->addr.proto == htons(ETH_P_IP))
-                                               e.addr.u.ip4 = p->addr.u.ip4;
+                               if (!port)
+                                       continue;
+                               memset(&e, 0, sizeof(e));
+                               e.ifindex = port->dev->ifindex;
+                               e.vid = p->addr.vid;
+                               __mdb_entry_fill_flags(&e, p->flags);
+                               if (p->addr.proto == htons(ETH_P_IP))
+                                       e.addr.u.ip4 = p->addr.u.ip4;
 #if IS_ENABLED(CONFIG_IPV6)
-                                       if (p->addr.proto == htons(ETH_P_IPV6))
-                                               e.addr.u.ip6 = p->addr.u.ip6;
+                               if (p->addr.proto == htons(ETH_P_IPV6))
+                                       e.addr.u.ip6 = p->addr.u.ip6;
 #endif
-                                       e.addr.proto = p->addr.proto;
-                                       if (nla_put(skb, MDBA_MDB_ENTRY_INFO, sizeof(e), &e)) {
-                                               nla_nest_cancel(skb, nest2);
-                                               err = -EMSGSIZE;
-                                               goto out;
-                                       }
+                               e.addr.proto = p->addr.proto;
+                               if (nla_put(skb, MDBA_MDB_ENTRY_INFO, sizeof(e), &e)) {
+                                       nla_nest_cancel(skb, nest2);
+                                       err = -EMSGSIZE;
+                                       goto out;
                                }
                        }
                        nla_nest_end(skb, nest2);