[ofw] [Patch 31/62] Reference implementation of NDv2

Fab Tillier ftillier at microsoft.com
Wed Feb 20 18:02:30 PST 2013


Yay, the half point mark...

Pull in fixes to MTHCA from the trunk.  I don't have a way to test InfiniHost III cards, so this is only compile tested.

Signed-off-by: Fab Tillier <ftillier at microsoft.com>

diff -dwup3 -X excl.txt -r c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\hca_data.c .\hw\mthca\kernel\hca_data.c
--- c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\hca_data.c	Thu May 31 11:22:19 2012
+++ .\hw\mthca\kernel\hca_data.c	Wed May 23 18:26:48 2012
@@ -173,7 +173,6 @@ mlnx_hobs_remove(
 {
 	cl_async_proc_t	*p_async_proc;
 
-
 	cl_spinlock_acquire( &hob_lock );
 
 	hob_p->mark = E_MARK_INVALID;
@@ -337,6 +336,9 @@ void ca_event_handler(struct ib_event *e
 	ib_event_rec_t event_rec;
 	LIST_ENTRY *entry;
 	ci_event_handler_t *event_handler;
+
+	if ( hob_p->mark == E_MARK_INVALID )
+		return;
 
 	// prepare parameters
 	event_rec.type = ev->event;
diff -dwup3 -X excl.txt -r c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\hca_pnp.c .\hw\mthca\kernel\hca_pnp.c
--- c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\hca_pnp.c	Fri Aug 03 17:54:45 2012
+++ .\hw\mthca\kernel\hca_pnp.c	Wed May 23 15:14:37 2012
@@ -592,7 +592,7 @@ __hca_release_resources(
 	//cl_event_destroy( &p_ext->mutex );
 	__UnmapHcaMemoryResources( p_dev_obj );
 
-	p_ext->state = HCA_ADDED;
+	p_ext->state = HCA_SHUTDOWN;
 
 	HCA_EXIT( HCA_DBG_PNP );
 }
@@ -621,9 +621,8 @@ hca_release_resources(
 		("PoSetPowerState: old state %d, new state to %d\n", 
 		powerState.DeviceState, p_ext->DevicePowerState ));
 
-
 	/* Clear the PnP state in case we get restarted. */
-	p_ext->pnpState = 0;
+	p_ext->pnpState = PNP_DEVICE_REMOVED;
 
 	HCA_EXIT( HCA_DBG_PNP );
 }
@@ -648,6 +647,13 @@ hca_stop(
 	IN				IRP* const					p_irp, 
 		OUT			cl_irp_action_t* const		p_action )
 {
+	hca_dev_ext_t		*p_ext = (hca_dev_ext_t*)p_dev_obj->DeviceExtension;
+
+	if (p_ext->hca.mdev) { // quiet the HCA
+		struct mthca_dev *mdev = p_ext->hca.mdev;
+		(void) hca_reset(mdev->ext->cl_ext.p_self_do,(mdev->hca_type == 0/*TAVOR*/));
+	}
+
 	/*
 	 * Must disable everything.  Complib framework will
 	 * call ReleaseResources handler.
diff -dwup3 -X excl.txt -r c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\mthca_main.c .\hw\mthca\kernel\mthca_main.c
--- c:\dev\openib\ofw\gen1\branches\mlx4_30\trunk\hw\mthca\kernel\mthca_main.c	Thu May 31 11:22:19 2012
+++ .\hw\mthca\kernel\mthca_main.c	Wed May 23 18:26:48 2012
@@ -953,6 +953,7 @@ NTSTATUS mthca_init_one(hca_dev_ext_t *e
 
 	InitializeListHead(&ext->hca.hob.event_list);
 	KeInitializeSpinLock(&ext->hca.hob.event_list_lock);
+	ext->hca.hob.mark = E_MARK_CA;
 
 	/* allocate mdev structure */
 	mdev = kzalloc(sizeof *mdev, GFP_KERNEL);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ndv2.31.patch
Type: application/octet-stream
Size: 2597 bytes
Desc: ndv2.31.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20130221/f9489f42/attachment.obj>


More information about the ofw mailing list