netdev-dpdk: fix mbuf leaks
[cascardo/ovs.git] / lib / mcast-snooping.c
index ba4141e..ee3e2e1 100644 (file)
@@ -125,22 +125,12 @@ mcast_snooping_lookup(const struct mcast_snooping *ms,
     return NULL;
 }
 
-static inline void
-in6_addr_set_mapped_ipv4(struct in6_addr *addr, ovs_be32 ip4)
-{
-    union ovs_16aligned_in6_addr *taddr = (void *) addr;
-    memset(taddr->be16, 0, sizeof(taddr->be16));
-    taddr->be16[5] = OVS_BE16_MAX;
-    put_16aligned_be32(&taddr->be32[3], ip4);
-}
-
 struct mcast_group *
 mcast_snooping_lookup4(const struct mcast_snooping *ms, ovs_be32 ip4,
                       uint16_t vlan)
     OVS_REQ_RDLOCK(ms->rwlock)
 {
-    struct in6_addr addr;
-    in6_addr_set_mapped_ipv4(&addr, ip4);
+    struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
     return mcast_snooping_lookup(ms, &addr, vlan);
 }
 
@@ -443,8 +433,7 @@ mcast_snooping_add_group4(struct mcast_snooping *ms, ovs_be32 ip4,
                          uint16_t vlan, void *port)
     OVS_REQ_WRLOCK(ms->rwlock)
 {
-    struct in6_addr addr;
-    in6_addr_set_mapped_ipv4(&addr, ip4);
+    struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
     return mcast_snooping_add_group(ms, &addr, vlan, port);
 }
 
@@ -597,8 +586,7 @@ bool
 mcast_snooping_leave_group4(struct mcast_snooping *ms, ovs_be32 ip4,
                            uint16_t vlan, void *port)
 {
-    struct in6_addr addr;
-    in6_addr_set_mapped_ipv4(&addr, ip4);
+    struct in6_addr addr = in6_addr_mapped_ipv4(ip4);
     return mcast_snooping_leave_group(ms, &addr, vlan, port);
 }