Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Apr 2007 09:15:33 +0900
From:      Pyun YongHyeon <pyunyh@gmail.com>
To:        Marv <b@helectronics.de>
Cc:        freebsd-net@freebsd.org
Subject:   Re: if_msk in 6.2
Message-ID:  <20070405001533.GA15837@cdnetworks.co.kr>
In-Reply-To: <20070404190649.GB986@home.bh.net>
References:  <20070404100200.GA1167@home.bh.net> <20070404111158.GB11525@cdnetworks.co.kr> <20070404190649.GB986@home.bh.net>

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

--BXVAT5kNtrzKuDFl
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Wed, Apr 04, 2007 at 09:06:49PM +0200, Marv wrote:
 > Thanks for your reply. I checked out the kernel source tree of RELENG_6,
 > applied your patch and compiled a new kernel.
 > 
 > The kernel boots and detects a 88E8038 Ethernet card but then hangs:
 > 
 > mskc0: <Marvell Yukon 88E8038 Gigabit Ethernet> irq 16 at device 0.0 on
 > pci2
 > mskc0: 0x4000 bytes of rid 0x10 res 3 failed (0, 0xffffffff).
 > mskc0: unknown device: id=0xff, rev=0x0f
 > 
 > (doing nothing no more at this point).
 > 
 > Was there some kind of detection failure or is my ethernet controller
 > not configured properly to fit the driver?
 > 

Since msk(4) supports 88E8038 I guess the device was not properly
initialized/recognized by system BIOS.

But it's driver bug if it hang your system when it encounter an
exceptional condition. Try attached patch and report back the result.
It wouldn't fix device recognization but it will not hang your system.

-- 
Regards,
Pyun YongHyeon

--BXVAT5kNtrzKuDFl
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="if_msk.patch2"

Index: if_msk.c
===================================================================
RCS file: /home/ncvs/src/sys/dev/msk/if_msk.c,v
retrieving revision 1.11.2.2
diff -u -r1.11.2.2 if_msk.c
--- if_msk.c	2 Apr 2007 01:22:31 -0000	1.11.2.2
+++ if_msk.c	5 Apr 2007 00:12:53 -0000
@@ -1581,8 +1581,8 @@
 	    sc->msk_hw_id > CHIP_ID_YUKON_FE) {
 		device_printf(dev, "unknown device: id=0x%02x, rev=0x%02x\n",
 		    sc->msk_hw_id, sc->msk_hw_rev);
-		error = ENXIO;
-		goto fail;
+		mtx_destroy(&sc->msk_mtx);
+		return (ENXIO);
 	}
 
 	SYSCTL_ADD_PROC(device_get_sysctl_ctx(dev),

--BXVAT5kNtrzKuDFl--



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