|
|
@@ -205,10 +205,12 @@ 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 = (struct in_device *)dev->ip_ptr;
|
|
|
- if (ip4 && ip4->ifa_list && ip4->ifa_list->ifa_address)
|
|
|
+ ip4 = in_dev_get(dev);
|
|
|
+ if (ip4 && ip4->ifa_list && ip4->ifa_list->ifa_address) {
|
|
|
ipv6_addr_set_v4mapped(ip4->ifa_list->ifa_address,
|
|
|
(struct in6_addr *)gid);
|
|
|
+ in_dev_put(ip4);
|
|
|
+ }
|
|
|
dev_put(dev);
|
|
|
}
|
|
|
}
|