On Tue, Jan 04, 2005 at 05:11:11PM -0800, Roland Dreier wrote:
> My previous patch seems like it won't work (need MSGINT_MODE_ENABLE
> set too, according to 
> http://www.ussg.iu.edu/hypermail/linux/kernel/0301.3/0123.html)
> 
> Index: linux-bk/drivers/net/tg3.c
> ===================================================================
> --- linux-bk.orig/drivers/net/tg3.c   2004-12-29 22:05:41.000000000 -0800
> +++ linux-bk/drivers/net/tg3.c        2005-01-04 17:09:23.930140627 -0800
> @@ -8218,6 +8218,11 @@
>               pci_using_dac = 0;
>       }
>  
> +     if (pci_enable_msi(pdev))
> +             printk(KERN_WARNING PFX "Couldn't enable MSI.\n");
> +     else
> +             tw32(MSGINT_MODE, MSGINT_MODE_ENABLE);          
> +

Roland,
This bit is right, but in the wrong place.
My bad: concluding the ia64 linux MSI broken was premature.

I didn't figure out why, but moving this chunk to immediately
before request_irq() worked fine. Normally I expect _probe_one to get
called before _open... but maybe something else needed to happen
before pci_enable_msi() could be called.

I also added pci_disable_msi() *after* each free_irq() call.


The appended patch is not ready for prime time yet but
certainly worth reviewing/testing. I'll post it to
linux-net once I've added a "msi=1" driver parameter.

Now to benchmark the difference...and then I can poke at
OpenIB again (once I get the right firmware on the cards...)

thanks,
grant

Log: preliminary patch to enable MSI in tg3.
     Needs "msi" driver flag so MSI is only used when specified.

Signed-off-by: Grant Grundler <[EMAIL PROTECTED]>


===== drivers/net/tg3.c 1.222 vs edited =====
--- 1.222/drivers/net/tg3.c     2004-11-15 15:53:08 -08:00
+++ edited/drivers/net/tg3.c    2005-01-10 22:21:34 -08:00
@@ -60,8 +60,8 @@
 
 #define DRV_MODULE_NAME                "tg3"
 #define PFX DRV_MODULE_NAME    ": "
-#define DRV_MODULE_VERSION     "3.14"
-#define DRV_MODULE_RELDATE     "November 15, 2004"
+#define DRV_MODULE_VERSION     "3.14-msi"
+#define DRV_MODULE_RELDATE     "Jan 10, 2005"
 
 #define TG3_DEF_MAC_MODE       0
 #define TG3_DEF_RX_MODE                0
@@ -5679,10 +5679,18 @@
        if (err)
                return err;
 
+       if (pci_enable_msi(tp->pdev))
+               printk(KERN_WARNING PFX "Couldn't enable MSI.\n");
+       else {
+               tw32(MSGINT_MODE, MSGINT_MODE_ENABLE);
+               printk(PFX "MSI enabled.\n");
+       }
+
        err = request_irq(dev->irq, tg3_interrupt,
                          SA_SHIRQ, dev->name, dev);
 
        if (err) {
+               pci_disable_msi(tp->pdev);
                tg3_free_consistent(tp);
                return err;
        }
@@ -5713,6 +5721,7 @@
 
        if (err) {
                free_irq(dev->irq, dev);
+               pci_disable_msi(tp->pdev);
                tg3_free_consistent(tp);
                return err;
        }
@@ -5988,6 +5997,7 @@
        spin_unlock_irq(&tp->lock);
 
        free_irq(dev->irq, dev);
+       pci_disable_msi(tp->pdev);
 
        memcpy(&tp->net_stats_prev, tg3_get_stats(tp->dev),
               sizeof(tp->net_stats_prev));
_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to