From owner-freebsd-net@FreeBSD.ORG Thu Aug 5 10:10:07 2010 Return-Path: Delivered-To: freebsd-net@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 579441065670 for ; Thu, 5 Aug 2010 10:10:07 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 2506B8FC13 for ; Thu, 5 Aug 2010 10:10:07 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.4/8.14.4) with ESMTP id o75AA7kn017167 for ; Thu, 5 Aug 2010 10:10:07 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.4/8.14.4/Submit) id o75AA7vH017166; Thu, 5 Aug 2010 10:10:07 GMT (envelope-from gnats) Date: Thu, 5 Aug 2010 10:10:07 GMT Message-Id: <201008051010.o75AA7vH017166@freefall.freebsd.org> To: freebsd-net@FreeBSD.org From: Rui Paulo Cc: Subject: Re: kern/149185: [rum] [panic] panic in rum(4) driver on 8.1-R X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: Rui Paulo List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Aug 2010 10:10:07 -0000 The following reply was made to PR kern/149185; it has been noted by GNATS. From: Rui Paulo To: Bernhard Schmidt Cc: Alex Kozlov , bug-followup@freebsd.org, nox@freebsd.org Subject: Re: kern/149185: [rum] [panic] panic in rum(4) driver on 8.1-R Date: Thu, 5 Aug 2010 10:38:44 +0100 On 5 Aug 2010, at 10:34, Bernhard Schmidt wrote: > On Thu, Aug 5, 2010 at 11:11, Alex Kozlov wrote: >> On Thu, Aug 05, 2010 at 10:05:39AM +0200, Bernhard Schmidt wrote: >>> On Thu, Aug 5, 2010 at 08:52, Alex Kozlov = wrote: >>>> On Wed, Aug 04, 2010 at 10:02:35PM +0200, Juergen Lock wrote: >>>>> Regarding the 8.1 if_rum(4) panics... I got a similar one, = extracted >>>>> a dump and tried to gather some info for someone who knows the = code: >>>>>=20 >>>>> The zero divide fault was because (apparently) rate was = unitialized, >>>>> as is >>>>>=20 >>>>> ((struct ieee80211_node *) = m->M_dat.MH.MH_pkthdr.rcvif)->ni_vap->iv_txparms[0] >>>>>=20 >>>>> i.e. struct ieee80211_txparam &vap->iv_txparms[0] in case it = matters. >>>> Yes, its seems that ratectl framework sometimes set ni->ni_txrate = to 0 >>>> This can be mitigated by patch [1] or by setting ucastrate option = in >>>> ifconfig. Still real issue need to be solved. >>>=20 >>> The real issue is that prior to an association (RUN state) >>> ieee80211_ratectl_node_init() is not called, therefore iv_bss is not >>> configured in any way. >> ieee80211_ratectl_node_init() called from iv_newstate when switching = to >> IEEE80211_S_RUN state. Most drivers do the same. Is it wrong? >> Some call it from iv_newassoc, but this marked /* XXX move */ >=20 > It is not wrong, but to late. Before RUN state and the iv_newassoc() > call, you have to send frames for scanning and authentication, those > need a valid rate too. I wonder if we can call node_init() in > ieee80211_vap_setup() or something similar, that would definitely be > early enough. vap_setup() runs once and we need need to call node_init for each node = connected to an AP or for the AP node when the vap is a STA. Regards, -- Rui Paulo