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>

index | next in thread | raw e-mail

[-- Attachment #1 --]
-----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-----


[-- Attachment #2 --]
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 "

[-- Attachment #3 --]
?K]oP	ndgG#Jׇ׆ubX)r|-ӍJs
home | help

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