From 15e8d156d428ffc24ce1d6eba4df13a669db9a6d Mon Sep 17 00:00:00 2001 From: ftillier Date: Wed, 6 Sep 2006 18:18:03 +0000 Subject: [PATCH] [IBAL, MT23108, MTHCA] Fix MAD response for cached attributes to use GET_RESP as the method. Submitted by: Anatoly Lesinko (anatolyl@voltaire.com) git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@482 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- core/al/kernel/al_smi.c | 6 ++++-- hw/mt23108/kernel/hca_smp.c | 13 +++++-------- hw/mthca/kernel/hca_smp.c | 13 +++++-------- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/core/al/kernel/al_smi.c b/core/al/kernel/al_smi.c index 2ebced74..0a32e4dd 100644 --- a/core/al/kernel/al_smi.c +++ b/core/al/kernel/al_smi.c @@ -1,6 +1,7 @@ /* * Copyright (c) 2005 SilverStorm Technologies. All rights reserved. * Copyright (c) 1996-2003 Intel Corporation. All rights reserved. + * Copyright (c) 2006 Voltaire Corporation. All rights reserved. * * This software is available to you under the OpenIB.org BSD license * below: @@ -1551,7 +1552,7 @@ process_node_info( { p_smp = (ib_smp_t*)p_mad_resp->p_mad_buf; cl_memcpy( p_smp, p_mad, MAD_BLOCK_SIZE ); - p_smp->method |= IB_MAD_METHOD_RESP_MASK; + p_smp->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_smp->mgmt_class == IB_MCLASS_SUBN_DIR ) p_smp->status = IB_SMP_DIRECTION; else @@ -1621,7 +1622,8 @@ process_node_desc( if( status == IB_SUCCESS ) { cl_memcpy( p_mad_resp->p_mad_buf, p_mad, MAD_BLOCK_SIZE ); - p_mad_resp->p_mad_buf->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_resp->p_mad_buf->method = + (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_resp->p_mad_buf->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_resp->p_mad_buf->status = IB_SMP_DIRECTION; else diff --git a/hw/mt23108/kernel/hca_smp.c b/hw/mt23108/kernel/hca_smp.c index abae3470..a1ea245d 100644 --- a/hw/mt23108/kernel/hca_smp.c +++ b/hw/mt23108/kernel/hca_smp.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2005 SilverStorm Technologies. All rights reserved. + * Copyright (c) 2006 Voltaire Corporation. All rights reserved. * * This software is available to you under the OpenIB.org BSD license * below: @@ -73,11 +74,10 @@ mlnx_cachable_guid_info( return FALSE; } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -126,10 +126,9 @@ mlnx_cachable_pkey_table( } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -166,10 +165,9 @@ mlnx_cachable_sl_vl_table( } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -218,10 +216,9 @@ mlnx_cachable_vl_arb_table( } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else diff --git a/hw/mthca/kernel/hca_smp.c b/hw/mthca/kernel/hca_smp.c index 9a320715..22740062 100644 --- a/hw/mthca/kernel/hca_smp.c +++ b/hw/mthca/kernel/hca_smp.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2005 SilverStorm Technologies. All rights reserved. + * Copyright (c) 2006 Voltaire Corporation. All rights reserved. * * This software is available to you under the OpenIB.org BSD license * below: @@ -80,11 +81,10 @@ mlnx_cachable_guid_info( return FALSE; } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -132,11 +132,10 @@ mlnx_cachable_pkey_table( return FALSE; } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -172,11 +171,10 @@ mlnx_cachable_sl_vl_table( return FALSE; } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else @@ -224,11 +222,10 @@ mlnx_cachable_vl_arb_table( return FALSE; } } - /* Setup the response mad. */ cl_memcpy( p_mad_out, p_mad_in, MAD_BLOCK_SIZE ); - p_mad_out->method |= IB_MAD_METHOD_RESP_MASK; + p_mad_out->method = (IB_MAD_METHOD_RESP_MASK | IB_MAD_METHOD_GET); if( p_mad_out->mgmt_class == IB_MCLASS_SUBN_DIR ) p_mad_out->status = IB_SMP_DIRECTION; else -- 2.17.1