kern/149185: [rum] [panic] panic in rum(4) driver on 8.1-R

Rui Paulo rpaulo at freebsd.org
Thu Aug 5 10:10:07 UTC 2010


The following reply was made to PR kern/149185; it has been noted by GNATS.

From: Rui Paulo <rpaulo at freebsd.org>
To: Bernhard Schmidt <bschmidt at techwires.net>
Cc: Alex Kozlov <spam at rm-rf.kiev.ua>,
 bug-followup at freebsd.org,
 nox at 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 <spam at rm-rf.kiev.ua> wrote:
 >> On Thu, Aug 05, 2010 at 10:05:39AM +0200, Bernhard Schmidt wrote:
 >>> On Thu, Aug 5, 2010 at 08:52, Alex Kozlov <spam at rm-rf.kiev.ua> =
 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
 
 


More information about the freebsd-net mailing list