Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 11 Sep 2007 15:01:53 -0400
From:      "Robert Wojciechowski" <robertw@expressyard.com>
To:        <shigeaki@f.csce.kyushu-u.ac.jp>
Cc:        freebsd-net@freebsd.org, Josh Mouch <jmouch@expressyard.com>
Subject:   FreeBSD nfe driver and IPMI cards
Message-ID:  <85D4F2C294E8434CA0AF775741532686623679@server1.ssgi.local>

next in thread | raw e-mail | index | archive | help

[-- Attachment #1 --]
Hello,

 

I'm the FreeBSD nfe driver from  
http://www.f.csce.kyushu-u.ac.jp/~shigeaki/software/freebsd-nfe.html
with FreeBSD 6-stable with good results for the most part. The only
issue I've experienced is that during a detach/shutdown of if_nfe, the
IPMI IP address I have set on my servers ceases to respond as well as
the ability to manage the servers.

 

I traced the problem down to nfe_stop() and the fact that it completely
disables the Rx and Tx on the NIC. I have patched the driver to not
disable the Rx/Tx and IPMI continues to work after a 'ifconfig nfe0
down', 'shutdown -p now', etc.

 

Does anyone have any comments on this change I've made and any possible
side effects? Can this be included in the mainstream distribution of the
nfe drivers (and updated in 7-CURRENT) without causing any adverse
problems?

 

Thanks,

 

Robert S Wojciechowski / ExpressYard

810.953.3799 x200 / cell 248.872.4509


[-- Attachment #2 --]
diff -uwr nfe-20070816/if_nfe.c nfe-20070816-ssgi/if_nfe.c
--- nfe-20070816/if_nfe.c	Wed Aug 15 22:08:18 2007
+++ nfe-20070816-ssgi/if_nfe.c	Tue Sep 11 11:59:03 2007
@@ -24,7 +24,7 @@
 __FBSDID("$FreeBSD: src/sys/dev/nfe/if_nfe.c,v 1.19 2007/07/24 01:11:00 yongari Exp $");
 
 /* Uncomment the following line to enable polling. */
-/* #define	DEVICE_POLLING */
+#define	DEVICE_POLLING
 
 #ifdef HAVE_KERNEL_OPTION_HEADERS
 #include "opt_device_polling.h"
@@ -3004,10 +3004,12 @@
 	callout_stop(&sc->nfe_stat_ch);
 
 	/* abort Tx */
-	NFE_WRITE(sc, NFE_TX_CTL, 0);
+  /* keep Tx alive for IMPI and perhaps WOL */
+	/* NFE_WRITE(sc, NFE_TX_CTL, 0); */
 
 	/* disable Rx */
-	NFE_WRITE(sc, NFE_RX_CTL, 0);
+  /* keep Rx alive for IMPI and perhaps WOL */
+	/* NFE_WRITE(sc, NFE_RX_CTL, 0); */
 
 	/* disable interrupts */
 	nfe_disable_intr(sc);

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