summaryrefslogtreecommitdiffstats
path: root/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch')
-rw-r--r--recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch90
1 files changed, 90 insertions, 0 deletions
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
new file mode 100644
index 00000000..0307b835
--- /dev/null
+++ b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
@@ -0,0 +1,90 @@
1From a48d135810111baaedd01dfb833c06b094aa3a68 Mon Sep 17 00:00:00 2001
2From: Jack Morgenstein <jackm@mellanox.com>
3Date: Thu, 26 Jan 2012 16:41:33 +0200
4Subject: [PATCH 21/87] IB/mlx4: pass SMP vendor-specific attribute MADs to
5 firmware
6
7commit a6f7feae6d19e84253918d88b04153af09d3a243 upstream.
8
9In the current code, vendor-specific MADs (e.g with the FDR-10
10attribute) are silently dropped by the driver, resulting in timeouts
11at the sending side and inability to query/configure the relevant
12feature. However, the ConnectX firmware is able to handle such MADs.
13For unsupported attributes, the firmware returns a GET_RESPONSE MAD
14containing an error status.
15
16For example, for a FDR-10 node with LID 11:
17
18 # ibstat mlx4_0 1
19
20 CA: 'mlx4_0'
21 Port 1:
22 State: Active
23 Physical state: LinkUp
24 Rate: 40 (FDR10)
25 Base lid: 11
26 LMC: 0
27 SM lid: 24
28 Capability mask: 0x02514868
29 Port GUID: 0x0002c903002e65d1
30 Link layer: InfiniBand
31
32Extended Port Query (EPI) vendor mad timeouts before the patch:
33
34 # smpquery MEPI 11 -d
35
36 ibwarn: [4196] smp_query_via: attr 0xff90 mod 0x0 route Lid 11
37 ibwarn: [4196] _do_madrpc: retry 1 (timeout 1000 ms)
38 ibwarn: [4196] _do_madrpc: retry 2 (timeout 1000 ms)
39 ibwarn: [4196] _do_madrpc: timeout after 3 retries, 3000 ms
40 ibwarn: [4196] mad_rpc: _do_madrpc failed; dport (Lid 11)
41 smpquery: iberror: [pid 4196] main: failed: operation EPI: ext port info query failed
42
43EPI query works OK with the patch:
44
45 # smpquery MEPI 11 -d
46
47 ibwarn: [6548] smp_query_via: attr 0xff90 mod 0x0 route Lid 11
48 ibwarn: [6548] mad_rpc: data offs 64 sz 64
49 mad data
50 0000 0000 0000 0001 0000 0001 0000 0001
51 0000 0000 0000 0000 0000 0000 0000 0000
52 0000 0000 0000 0000 0000 0000 0000 0000
53 0000 0000 0000 0000 0000 0000 0000 0000
54 # Ext Port info: Lid 11 port 0
55 StateChangeEnable:...............0x00
56 LinkSpeedSupported:..............0x01
57 LinkSpeedEnabled:................0x01
58 LinkSpeedActive:.................0x01
59
60Signed-off-by: Jack Morgenstein <jackm@mellanox.com>
61Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
62Acked-by: Ira Weiny <weiny2@llnl.gov>
63Signed-off-by: Roland Dreier <roland@purestorage.com>
64Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
65---
66 drivers/infiniband/hw/mlx4/mad.c | 7 ++-----
67 1 files changed, 2 insertions(+), 5 deletions(-)
68
69diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
70index f36da99..77702c0 100644
71--- a/drivers/infiniband/hw/mlx4/mad.c
72+++ b/drivers/infiniband/hw/mlx4/mad.c
73@@ -256,12 +256,9 @@ static int ib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num,
74 return IB_MAD_RESULT_SUCCESS;
75
76 /*
77- * Don't process SMInfo queries or vendor-specific
78- * MADs -- the SMA can't handle them.
79+ * Don't process SMInfo queries -- the SMA can't handle them.
80 */
81- if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO ||
82- ((in_mad->mad_hdr.attr_id & IB_SMP_ATTR_VENDOR_MASK) ==
83- IB_SMP_ATTR_VENDOR_MASK))
84+ if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO)
85 return IB_MAD_RESULT_SUCCESS;
86 } else if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT ||
87 in_mad->mad_hdr.mgmt_class == MLX4_IB_VENDOR_CLASS1 ||
88--
891.7.7.4
90