]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - include/rdma/ib_addr.h
IB/cma: Fix reference count leak when no ipv4 addresses are set
[karo-tx-linux.git] / include / rdma / ib_addr.h
index 4b34c51f859e89406802d9b5b8c3644c81861629..b73a14edc85e3570e2394fbad23234f689f3a956 100644 (file)
@@ -205,11 +205,13 @@ static inline void iboe_addr_get_sgid(struct rdma_dev_addr *dev_addr,
        dev = dev_get_by_index(&init_net, dev_addr->bound_dev_if);
        if (dev) {
                ip4 = in_dev_get(dev);
-               if (ip4 && ip4->ifa_list && ip4->ifa_list->ifa_address) {
+               if (ip4 && ip4->ifa_list && ip4->ifa_list->ifa_address)
                        ipv6_addr_set_v4mapped(ip4->ifa_list->ifa_address,
                                               (struct in6_addr *)gid);
+
+               if (ip4)
                        in_dev_put(ip4);
-               }
+
                dev_put(dev);
        }
 }