Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 2010 11:15:44 +0100
From:      Tibor Vidok <Tibor.Vidok@ericsson.com>
To:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, <jfv@FreeBSD.org>
Subject:   Legacy interrupt registration in e1000 (em and igb)
Message-ID:  <4B5D6F50.2090900@ericsson.com>

next in thread | raw e-mail | index | archive | help
--------------030706020709050603030407
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi Jack and all,

Few month before I've send a PR (see bellow) about interrupt setup in
em driver.
Now I run into the same problem with igb too. It seems that I'm the
one using such an old interrupt mechanism with new chips...

So the problem is that when one tries to register legacy mode
interrupts, NULL is passed to bus_setup_intr as handler.

Jack: Please check my attached path and apply it if you think so.

Original PR was the following:
Number:140728
Category:kern
Synopsis:[em] [patch] Fast irq registration in em driver

Have a nice day,
Tibor
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLXW9QCwkLbqzjZAIRApe6AJ9310xDauVwNFsDd9cq5GYop2GlzwCg2y5T
v54NC8n6XeAlg0VhB+jDaHE=
=vSx/
-----END PGP SIGNATURE-----


--------------030706020709050603030407
Content-Type: text/x-patch; name="legacy-intr.patch"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="legacy-intr.patch"

Index: if_igb.c
===================================================================
--- if_igb.c	(revision 202964)
+++ if_igb.c	(working copy)
@@ -2075,7 +2075,7 @@
 	taskqueue_start_threads(&adapter->tq, 1, PI_NET, "%s taskq",
 	    device_get_nameunit(adapter->dev));
 	if ((error = bus_setup_intr(dev, adapter->res,
-	    INTR_TYPE_NET | INTR_MPSAFE, igb_irq_fast, NULL,
+	    INTR_TYPE_NET | INTR_MPSAFE, NULL, igb_irq_fast,
 	    adapter, &adapter->tag)) != 0) {
 		device_printf(dev, "Failed to register fast interrupt "
 			    "handler: %d\n", error);
Index: if_em.c
===================================================================
--- if_em.c	(revision 202964)
+++ if_em.c	(working copy)
@@ -2787,7 +2787,7 @@
 	    INTR_TYPE_NET | INTR_FAST, em_irq_fast, adapter,
 #else
 	if ((error = bus_setup_intr(dev, adapter->res[0],
-	    INTR_TYPE_NET, em_irq_fast, NULL, adapter,
+	    INTR_TYPE_NET, NULL, em_irq_fast, adapter,
 #endif
 	    &adapter->tag[0])) != 0) {
 		device_printf(dev, "Failed to register fast interrupt "

--------------030706020709050603030407
Content-Type: application/pgp-signature; name="legacy-intr.patch.sig"
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename="legacy-intr.patch.sig"

iD8DBQBLXW9QCwkLbqzjZAIRAmfZAKDzlEed9SOgmutK14cF14b/nBJ1YgCfWLQLKXL7fMIt
mtONvrzwEJdKrXM=
--------------030706020709050603030407--



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