From owner-freebsd-alpha Thu Aug 22 17:10:12 2002 Delivered-To: freebsd-alpha@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id BCD9437B400 for ; Thu, 22 Aug 2002 17:10:04 -0700 (PDT) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5E55D43E6A for ; Thu, 22 Aug 2002 17:10:04 -0700 (PDT) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) by freefall.freebsd.org (8.12.4/8.12.4) with ESMTP id g7N0A4JU016151 for ; Thu, 22 Aug 2002 17:10:04 -0700 (PDT) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.4/8.12.4/Submit) id g7N0A3gm016148; Thu, 22 Aug 2002 17:10:03 -0700 (PDT) Date: Thu, 22 Aug 2002 17:10:03 -0700 (PDT) Message-Id: <200208230010.g7N0A3gm016148@freefall.freebsd.org> To: freebsd-alpha@FreeBSD.org Cc: From: Andrew Gallatin Subject: Re: alpha/41642: dhclient gives unaligned access on Alpha - causes kernel panic Reply-To: Andrew Gallatin Sender: owner-freebsd-alpha@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org The following reply was made to PR alpha/41642; it has been noted by GNATS. From: Andrew Gallatin To: "Rob B" Cc: freebsd-gnats-submit@FreeBSD.ORG Subject: Re: alpha/41642: dhclient gives unaligned access on Alpha - causes kernel panic Date: Thu, 22 Aug 2002 20:07:18 -0400 (EDT) Rob B writes: > > Do 'nm -n /kernel' and look for the area near 0xfffffc0000610940 > > > > aylee# nm -n /kernel | more > > fffffc00006108a0 T swi_null > fffffc00006108c0 T swi_generic > fffffc0000610900 t swi_net > fffffc0000610980 T do_sir > fffffc0000610ac0 T setdelayed > fffffc0000610b00 T setsofttty > fffffc0000610b40 T setsoftnet > OK, this agees with my guess -- the arpintr netisr is not initialized. Peter fixed this in -current. Can you please try the appended patch and see if it solves the problem? Thanks, Drew Index: netinet/if_ether.c =================================================================== RCS file: /home/ncvs/src/sys/netinet/if_ether.c,v retrieving revision 1.64.2.19 diff -u -r1.64.2.19 if_ether.c --- netinet/if_ether.c 18 Jun 2002 00:15:31 -0000 1.64.2.19 +++ netinet/if_ether.c 23 Aug 2002 00:00:26 -0000 @@ -102,7 +102,7 @@ static LIST_HEAD(, llinfo_arp) llinfo_arp; struct ifqueue arpintrq = {0, 0, 0, 50}; -static int arp_inuse, arp_allocated; +static int arp_inuse, arp_allocated, arpinit_done; static int arp_maxtries = 5; static int useloopback = 1; /* use loopback interface for local traffic */ @@ -167,13 +167,10 @@ register struct sockaddr *gate = rt->rt_gateway; register struct llinfo_arp *la = (struct llinfo_arp *)rt->rt_llinfo; static struct sockaddr_dl null_sdl = {sizeof(null_sdl), AF_LINK}; - static int arpinit_done; if (!arpinit_done) { arpinit_done = 1; - LIST_INIT(&llinfo_arp); timeout(arptimer, (caddr_t)0, hz); - register_netisr(NETISR_ARP, arpintr); } if (rt->rt_flags & RTF_GATEWAY) return; @@ -912,3 +909,12 @@ ifa->ifa_rtrequest = arp_rtrequest; ifa->ifa_flags |= RTF_CLONING; } + +static void +arp_init(void) +{ + LIST_INIT(&llinfo_arp); + register_netisr(NETISR_ARP, arpintr); +} + +SYSINIT(arp, SI_SUB_PROTO_DOMAIN, SI_ORDER_ANY, arp_init, 0); To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-alpha" in the body of the message