From owner-freebsd-current@FreeBSD.ORG Sat Jun 25 14:21:10 2005 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B497716A41C; Sat, 25 Jun 2005 14:21:10 +0000 (GMT) (envelope-from maksim.yevmenkin@savvis.net) Received: from mta10.adelphia.net (mta10.adelphia.net [68.168.78.202]) by mx1.FreeBSD.org (Postfix) with ESMTP id 3683343D49; Sat, 25 Jun 2005 14:21:10 +0000 (GMT) (envelope-from maksim.yevmenkin@savvis.net) Received: from [192.168.1.254] (really [70.32.199.60]) by mta10.adelphia.net (InterMail vM.6.01.04.01 201-2131-118-101-20041129) with ESMTP id <20050625142109.YOSC19267.mta10.adelphia.net@[192.168.1.254]>; Sat, 25 Jun 2005 10:21:09 -0400 Message-ID: <42BD6865.4090608@savvis.net> Date: Sat, 25 Jun 2005 07:21:25 -0700 From: Maksim Yevmenkin User-Agent: Mozilla Thunderbird 0.7.1 (Windows/20040626) X-Accept-Language: en-us, en MIME-Version: 1.0 To: Maxime Henrion References: <42BCA0A0.8040902@savvis.net> <20050625064229.GA56086@ip.net.ua> <20050625114842.GJ14567@elvis.mu.org> <20050625115421.GA13063@ip.net.ua> <20050625120226.GK14567@elvis.mu.org> In-Reply-To: <20050625120226.GK14567@elvis.mu.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Cc: freebsd-current@freebsd.org Subject: Re: [patch] ep(4) panic X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 25 Jun 2005 14:21:10 -0000 Maxime Henrion wrote: > Ruslan Ermilov wrote: > >>On Sat, Jun 25, 2005 at 01:48:42PM +0200, Maxime Henrion wrote: >> >>>Ruslan Ermilov wrote: >>> >>>>On Fri, Jun 24, 2005 at 05:09:04PM -0700, Maksim Yevmenkin wrote: >>>> >>>>>Dear Hackers, >>>>> >>>>>my -current panics when i insert ep(4) pcmcia network adapter. following >>>>>is the patch to fix the panic. >>>>> >>>>>--- if_ep_pccard.c.orig Fri Jun 10 12:04:44 2005 >>>>>+++ if_ep_pccard.c Fri Jun 24 16:51:12 2005 >>>>>@@ -73,6 +73,7 @@ >>>>> struct ep_board *epb = &sc->epb; >>>>> const char *desc; >>>>> uint16_t result; >>>>>+ u_char eaddr[6]; >>>>> int error; >>>>> >>>>> error = ep_alloc(dev); >>>>>@@ -120,7 +121,7 @@ >>>>> * Newer cards supported by this device need to have their >>>>> * MAC address set. >>>>> */ >>>>>- error = ep_get_macaddr(sc, (u_char *)&IFP2ENADDR(sc->ifp)); >>>>>+ error = ep_get_macaddr(sc, eaddr); >>>>> >>>>> ep_free(dev); >>>>> return (0); >>>>> >>>> >>>>That's odd. You're saving the MAC address nowhere (it's reused >>>>later). >>> >>>But ep_get_macaddr() does a little bit more than what its name suggests. >>> >> >>I fail to see what else it does. My point, on the other hand, is >>that we should be saving it in IFP2ENADDR here, for later reuse. > > > Hmm, I apparently read the code wrong. It would be interesting to know > if just removing the call the ep_get_macaddr() fixes the panic as well > and lets the card work OK. The comment above the call to > ep_get_macaddr() looks weird given that ep_get_macaddr() does nothing > more than reading the MAC address and doesn't apparently set it. the way i understand it: this code is in the "probe" routine and when its called ifp structure was not allocated/setup yet. the "attach" routine will call "ep_attach" later that will allocate/setup ifp and read/set mac address (once again). so, the card works just fine. it is interesting that my 4.x has different comment $FreeBSD: /repoman/r/ncvs/src/sys/dev/ep/if_ep_pccard.c,v 1.12.2.3 2003/10/06 02:53:51 imp Exp $ /* * For some reason the 3c574 needs this. */ ep_get_macaddr(sc, (u_char *)&sc->arpcom.ac_enaddr); perhaps the comment in -current should be changed as well? can anyone please shed some light on this? thanks, max