diff options
author | Kevin Hilman <khilman@linaro.org> | 2015-10-13 16:30:38 -0700 |
---|---|---|
committer | Kevin Hilman <khilman@linaro.org> | 2015-10-13 16:30:38 -0700 |
commit | 575afa2b6b9b628766618f3da6c7289ab32f5661 (patch) | |
tree | d4a23ddffc524e15b9a68b1aefa44da967fe7dd8 /drivers/infiniband/hw/mlx4/ah.c | |
parent | c765e5c15e7d23d2b8b37fafdafc63c0ea75fabf (diff) | |
parent | 1230ae0e99e05ced8a945a1a2c5762ce5c6c97c9 (diff) |
Merge tag 'v3.14.54' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into linux-linaro-lsk-v3.14lsk-v3.14-15.10
This is the 3.14.54 stable release
* tag 'v3.14.54' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable: (115 commits)
Linux 3.14.54
NVMe: Initialize device reference count earlier
udf: Check length of extended attributes and allocation descriptors
x86/nmi/64: Use DF to avoid userspace RSP confusing nested NMI detection
x86/nmi/64: Reorder nested NMI checks
x86/nmi/64: Improve nested NMI comments
x86/nmi/64: Switch stacks on userspace NMI entry
x86/nmi/64: Remove asm code that saves CR2
x86/nmi: Enable nested do_nmi() handling for 64-bit kernels
Revert "iio: bmg160: IIO_BUFFER and IIO_TRIGGERED_BUFFER are required"
net: gso: use feature flag argument in all protocol gso handlers
bna: fix interrupts storm caused by erroneous packets
udp: fix dst races with multicast early demux
rds: fix an integer overflow test in rds_info_getsockopt()
packet: missing dev_put() in packet_do_bind()
fib_rules: fix fib rule dumps across multiple skbs
openvswitch: Zero flows on allocation.
sctp: fix race on protocol/netns initialization
netlink, mmap: transform mmap skb into full skb on taps
net/ipv6: Correct PIM6 mrt_lock handling
...
Diffstat (limited to 'drivers/infiniband/hw/mlx4/ah.c')
-rw-r--r-- | drivers/infiniband/hw/mlx4/ah.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/infiniband/hw/mlx4/ah.c b/drivers/infiniband/hw/mlx4/ah.c index 170dca608042..1ddcebd84622 100644 --- a/drivers/infiniband/hw/mlx4/ah.c +++ b/drivers/infiniband/hw/mlx4/ah.c @@ -147,9 +147,13 @@ int mlx4_ib_query_ah(struct ib_ah *ibah, struct ib_ah_attr *ah_attr) enum rdma_link_layer ll; memset(ah_attr, 0, sizeof *ah_attr); - ah_attr->sl = be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 28; ah_attr->port_num = be32_to_cpu(ah->av.ib.port_pd) >> 24; ll = rdma_port_get_link_layer(ibah->device, ah_attr->port_num); + if (ll == IB_LINK_LAYER_ETHERNET) + ah_attr->sl = be32_to_cpu(ah->av.eth.sl_tclass_flowlabel) >> 29; + else + ah_attr->sl = be32_to_cpu(ah->av.ib.sl_tclass_flowlabel) >> 28; + ah_attr->dlid = ll == IB_LINK_LAYER_INFINIBAND ? be16_to_cpu(ah->av.ib.dlid) : 0; if (ah->av.ib.stat_rate) ah_attr->static_rate = ah->av.ib.stat_rate - MLX4_STAT_RATE_OFFSET; |