[ofw] PATCH: Fix Support for APM on the low level drivers

Tzachi Dar tzachid at mellanox.co.il
Thu Sep 17 09:43:39 PDT 2009


Committed on 2443.
 
Thanks
Tzachi


________________________________

	From: ofw-bounces at lists.openfabrics.org
[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Tzachi Dar
	Sent: Wednesday, September 16, 2009 6:29 PM
	To: ofw at lists.openfabrics.org
	Subject: [ofw] PATCH: Fix Support for APM on the low level
drivers
	
	
	Signed off by: leonid at mellanox.co.il

	[HW] fixes to APM support: missed some lines and apm_state was
not converted into low-driver format

	Index: Q:/projinf4/trunk/hw/mlx4/kernel/hca/data.c
	
===================================================================
	--- Q:/projinf4/trunk/hw/mlx4/kernel/hca/data.c (revision 4811)
	+++ Q:/projinf4/trunk/hw/mlx4/kernel/hca/data.c (revision 4812)
	@@ -551,6 +551,14 @@
	  return ib_qps;
	 }
	 
	+enum ib_mig_state to_apm_state(ib_apm_state_t apm)
	+{
	+ if (apm == IB_APM_MIGRATED) return IB_MIG_MIGRATED;
	+ if (apm == IB_APM_REARM) return IB_MIG_REARM;
	+ if (apm == IB_APM_ARMED) return IB_MIG_ARMED;
	+ return 0xffffffff;
	+}
	+
	 ib_api_status_t
	 to_qp_attr(
	  IN  const struct ib_qp *p_ib_qp,
	@@ -794,7 +802,7 @@
	     // IB_QP_PATH_MIG_STATE
	     if (p_ib_qp_mod->state.rts.opts & IB_MOD_QP_APM_STATE) {
	      *p_qp_attr_mask |= IB_QP_PATH_MIG_STATE; 
	-     p_ib_qp_attr->path_mig_state =
p_ib_qp_mod->state.rts.apm_state;
	+     p_ib_qp_attr->path_mig_state =
to_apm_state(p_ib_qp_mod->state.rts.apm_state);
	     }
	 
	     // IB_QP_ACCESS_FLAGS
	@@ -812,7 +820,8 @@
	       status = IB_ERROR;
	       break;
	      }
	-     p_ib_qp_attr->alt_timeout   =
p_ib_qp_mod->state.rts.alternate_av.conn.local_ack_timeout; // XXX: conv
	+     p_ib_qp_attr->alt_timeout  =
p_ib_qp_mod->state.rts.alternate_av.conn.local_ack_timeout; // XXX: conv
	+     p_ib_qp_attr->alt_port_num  =
p_ib_qp_mod->state.rts.alternate_av.port_num;
	     }
	     break;
	     
	@@ -841,7 +850,7 @@
	     // IB_QP_PATH_MIG_STATE
	     if (p_ib_qp_mod->state.rts.opts & IB_MOD_QP_APM_STATE) {
	      *p_qp_attr_mask |= IB_QP_PATH_MIG_STATE; 
	-     p_ib_qp_attr->path_mig_state =
p_ib_qp_mod->state.rts.apm_state;
	+     p_ib_qp_attr->path_mig_state =
to_apm_state(p_ib_qp_mod->state.rts.apm_state);
	     }
	 
	     // IB_QP_ACCESS_FLAGS
	@@ -859,6 +868,8 @@
	       status = IB_ERROR;
	       break;
	      }
	+     p_ib_qp_attr->alt_timeout  =
p_ib_qp_mod->state.rts.alternate_av.conn.local_ack_timeout; // XXX: conv
	+     p_ib_qp_attr->alt_port_num  =
p_ib_qp_mod->state.rts.alternate_av.port_num;
	     }
	     break;
	      
	Index: Q:/projinf4/trunk/hw/mthca/kernel/hca_data.c
	
===================================================================
	--- Q:/projinf4/trunk/hw/mthca/kernel/hca_data.c (revision 4811)
	+++ Q:/projinf4/trunk/hw/mthca/kernel/hca_data.c (revision 4812)
	@@ -409,6 +409,14 @@
	  return qps;
	 }
	 
	+enum ib_mig_state to_apm_state(ib_apm_state_t apm)
	+{
	+ if (apm == IB_APM_MIGRATED) return IB_MIG_MIGRATED;
	+ if (apm == IB_APM_REARM) return IB_MIG_REARM;
	+ if (apm == IB_APM_ARMED) return IB_MIG_ARMED;
	+ return 0xffffffff;
	+}
	+
	 ib_api_status_t
	 mlnx_conv_qp_modify_attr(
	  IN  const struct ib_qp *ib_qp_p,
	@@ -644,7 +652,7 @@
	     // IB_QP_PATH_MIG_STATE
	     if (modify_attr_p->state.rts.opts & IB_MOD_QP_APM_STATE) {
	      *qp_attr_mask_p |= IB_QP_PATH_MIG_STATE; 
	-     qp_attr_p->path_mig_state =
modify_attr_p->state.rts.apm_state;
	+     qp_attr_p->path_mig_state =
to_apm_state(modify_attr_p->state.rts.apm_state);
	     }
	 
	     // IB_QP_ACCESS_FLAGS
	@@ -691,7 +699,7 @@
	     // IB_QP_PATH_MIG_STATE
	     if (modify_attr_p->state.rts.opts & IB_MOD_QP_APM_STATE) {
	      *qp_attr_mask_p |= IB_QP_PATH_MIG_STATE; 
	-     qp_attr_p->path_mig_state =
modify_attr_p->state.rts.apm_state;
	+     qp_attr_p->path_mig_state =
to_apm_state(modify_attr_p->state.rts.apm_state);
	     }
	 
	     // IB_QP_ACCESS_FLAGS
	

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20090917/3495bb78/attachment.html>


More information about the ofw mailing list