diff options
Diffstat (limited to 'drivers/infiniband/hw/mthca/mthca_mad.c')
-rw-r--r-- | drivers/infiniband/hw/mthca/mthca_mad.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/infiniband/hw/mthca/mthca_mad.c b/drivers/infiniband/hw/mthca/mthca_mad.c index 03a59534f59..b6f7f457fc5 100644 --- a/drivers/infiniband/hw/mthca/mthca_mad.c +++ b/drivers/infiniband/hw/mthca/mthca_mad.c | |||
@@ -201,7 +201,6 @@ int mthca_process_mad(struct ib_device *ibdev, | |||
201 | struct ib_mad *out_mad) | 201 | struct ib_mad *out_mad) |
202 | { | 202 | { |
203 | int err; | 203 | int err; |
204 | u8 status; | ||
205 | u16 slid = in_wc ? in_wc->slid : be16_to_cpu(IB_LID_PERMISSIVE); | 204 | u16 slid = in_wc ? in_wc->slid : be16_to_cpu(IB_LID_PERMISSIVE); |
206 | u16 prev_lid = 0; | 205 | u16 prev_lid = 0; |
207 | struct ib_port_attr pattr; | 206 | struct ib_port_attr pattr; |
@@ -252,17 +251,11 @@ int mthca_process_mad(struct ib_device *ibdev, | |||
252 | err = mthca_MAD_IFC(to_mdev(ibdev), | 251 | err = mthca_MAD_IFC(to_mdev(ibdev), |
253 | mad_flags & IB_MAD_IGNORE_MKEY, | 252 | mad_flags & IB_MAD_IGNORE_MKEY, |
254 | mad_flags & IB_MAD_IGNORE_BKEY, | 253 | mad_flags & IB_MAD_IGNORE_BKEY, |
255 | port_num, in_wc, in_grh, in_mad, out_mad, | 254 | port_num, in_wc, in_grh, in_mad, out_mad); |
256 | &status); | 255 | if (err == -EBADMSG) |
257 | if (err) { | ||
258 | mthca_err(to_mdev(ibdev), "MAD_IFC failed\n"); | ||
259 | return IB_MAD_RESULT_FAILURE; | ||
260 | } | ||
261 | if (status == MTHCA_CMD_STAT_BAD_PKT) | ||
262 | return IB_MAD_RESULT_SUCCESS; | 256 | return IB_MAD_RESULT_SUCCESS; |
263 | if (status) { | 257 | else if (err) { |
264 | mthca_err(to_mdev(ibdev), "MAD_IFC returned status %02x\n", | 258 | mthca_err(to_mdev(ibdev), "MAD_IFC returned %d\n", err); |
265 | status); | ||
266 | return IB_MAD_RESULT_FAILURE; | 259 | return IB_MAD_RESULT_FAILURE; |
267 | } | 260 | } |
268 | 261 | ||