| .. | .. |
|---|
| 193 | 193 | return 0; |
|---|
| 194 | 194 | } |
|---|
| 195 | 195 | |
|---|
| 196 | | -static inline int iboe_get_rate(struct net_device *dev) |
|---|
| 197 | | -{ |
|---|
| 198 | | - struct ethtool_link_ksettings cmd; |
|---|
| 199 | | - int err; |
|---|
| 200 | | - |
|---|
| 201 | | - rtnl_lock(); |
|---|
| 202 | | - err = __ethtool_get_link_ksettings(dev, &cmd); |
|---|
| 203 | | - rtnl_unlock(); |
|---|
| 204 | | - if (err) |
|---|
| 205 | | - return IB_RATE_PORT_CURRENT; |
|---|
| 206 | | - |
|---|
| 207 | | - if (cmd.base.speed >= 40000) |
|---|
| 208 | | - return IB_RATE_40_GBPS; |
|---|
| 209 | | - else if (cmd.base.speed >= 30000) |
|---|
| 210 | | - return IB_RATE_30_GBPS; |
|---|
| 211 | | - else if (cmd.base.speed >= 20000) |
|---|
| 212 | | - return IB_RATE_20_GBPS; |
|---|
| 213 | | - else if (cmd.base.speed >= 10000) |
|---|
| 214 | | - return IB_RATE_10_GBPS; |
|---|
| 215 | | - else |
|---|
| 216 | | - return IB_RATE_PORT_CURRENT; |
|---|
| 217 | | -} |
|---|
| 218 | | - |
|---|
| 219 | 196 | static inline int rdma_link_local_addr(struct in6_addr *addr) |
|---|
| 220 | 197 | { |
|---|
| 221 | 198 | if (addr->s6_addr32[0] == htonl(0xfe800000) && |
|---|