Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 18 Nov 2011 21:34:11 +0000
From:      Ben Hutchings <bhutchings@solarflare.com>
To:        Philip Paeps <philip@freebsd.org>
Cc:        freebsd-net@freebsd.org, marius@freebsd.org
Subject:   sfxge: Remove interrupt self-test code
Message-ID:  <1321652051.2883.76.camel@bwh-desktop>

next in thread | raw e-mail | index | archive | help
sfxge: Remove interrupt self-test code

It's not currently used; it didn't build on 32-bit and the previous
build fix is incorrect.  If we really implement self-tests we can do
this again properly.

--- a/sys/dev/sfxge/sfxge.h
+++ b/sys/dev/sfxge/sfxge.h
@@ -144,7 +144,6 @@ struct sfxge_intr {
 	int			n_alloc;
 	int			type;
 	efsys_mem_t		status;
-	uint64_t		mask;
 	uint32_t		zero_count;
 };
 
--- a/sys/dev/sfxge/sfxge_intr.c
+++ b/sys/dev/sfxge/sfxge_intr.c
@@ -65,15 +65,9 @@ sfxge_intr_line_filter(void *arg)
 	KASSERT(intr->type == EFX_INTR_LINE,
 	    ("intr->type != EFX_INTR_LINE"));
 
-	if (intr->state != SFXGE_INTR_STARTED &&
-	    intr->state != SFXGE_INTR_TESTING)
+	if (intr->state != SFXGE_INTR_STARTED)
 		return FILTER_STRAY;
 
-	if (intr->state == SFXGE_INTR_TESTING) {
-		intr->mask |= 1;	/* only one interrupt */
-		return FILTER_HANDLED;
-	}
-
 	(void)efx_intr_status_line(enp, &fatal, &qmask);
 
 	if (fatal) {
@@ -137,21 +131,9 @@ sfxge_intr_message(void *arg)
 	KASSERT(intr->type == EFX_INTR_MESSAGE,
 	    ("intr->type != EFX_INTR_MESSAGE"));
 
-	if (intr->state != SFXGE_INTR_STARTED &&
-	    intr->state != SFXGE_INTR_TESTING)
+	if (intr->state != SFXGE_INTR_STARTED)
 		return;
 
-	if (intr->state == SFXGE_INTR_TESTING) {
-		uint64_t mask;
-
-		do {
-			mask = intr->mask;
-		} while (atomic_cmpset_ptr(&intr->mask, mask,
-		    mask | (1 << index)) == 0);
-
-		return;
-	}
-
 	(void)efx_intr_status_message(enp, index, &fatal);
 
 	if (fatal) {
@@ -447,7 +429,6 @@ sfxge_intr_stop(struct sfxge_softc *sc)
 	intr->state = SFXGE_INTR_INITIALIZED;
 
 	/* Disable interrupts at the NIC */
-	intr->mask = 0;
 	efx_intr_disable(sc->enp);
 
 	/* Disable interrupts at the bus */
@@ -480,13 +461,11 @@ sfxge_intr_start(struct sfxge_softc *sc)
 	if ((rc = sfxge_intr_bus_enable(sc)) != 0)
 		goto fail;
 
-	intr->state = SFXGE_INTR_TESTING;
+	intr->state = SFXGE_INTR_STARTED;
 
 	/* Enable interrupts at the NIC */
 	efx_intr_enable(sc->enp);
 
-	intr->state = SFXGE_INTR_STARTED;
-
 	return (0);
 
 fail:

-- 
Ben Hutchings, Staff Engineer, Solarflare
Not speaking for my employer; that's the marketing department's job.
They asked us to note that Solarflare product names are trademarked.




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1321652051.2883.76.camel>