diff options
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.patch | 90 |
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 @@ | |||
1 | From a48d135810111baaedd01dfb833c06b094aa3a68 Mon Sep 17 00:00:00 2001 | ||
2 | From: Jack Morgenstein <jackm@mellanox.com> | ||
3 | Date: Thu, 26 Jan 2012 16:41:33 +0200 | ||
4 | Subject: [PATCH 21/87] IB/mlx4: pass SMP vendor-specific attribute MADs to | ||
5 | firmware | ||
6 | |||
7 | commit a6f7feae6d19e84253918d88b04153af09d3a243 upstream. | ||
8 | |||
9 | In the current code, vendor-specific MADs (e.g with the FDR-10 | ||
10 | attribute) are silently dropped by the driver, resulting in timeouts | ||
11 | at the sending side and inability to query/configure the relevant | ||
12 | feature. However, the ConnectX firmware is able to handle such MADs. | ||
13 | For unsupported attributes, the firmware returns a GET_RESPONSE MAD | ||
14 | containing an error status. | ||
15 | |||
16 | For 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 | |||
32 | Extended 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 | |||
43 | EPI 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 | |||
60 | Signed-off-by: Jack Morgenstein <jackm@mellanox.com> | ||
61 | Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com> | ||
62 | Acked-by: Ira Weiny <weiny2@llnl.gov> | ||
63 | Signed-off-by: Roland Dreier <roland@purestorage.com> | ||
64 | Signed-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 | |||
69 | diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c | ||
70 | index 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 | -- | ||
89 | 1.7.7.4 | ||
90 | |||