Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Aug 2010 19:05:40 +0200
From:      Bernhard Schmidt <bschmidt@techwires.net>
To:        David Wolfskill <david@catwhisker.org>, Adrian Chadd <adrian@freebsd.org>, current@freebsd.org, Rui Paulo <rpaulo@lavabit.com>
Subject:   Re: Panic: Kernel page fault with ath0_com_lock held, r211295
Message-ID:  <AANLkTikr3vRYnjxzGQcc-TyRkk_SO4YUdwn=T2fQjsiK@mail.gmail.com>
In-Reply-To: <20100814164750.GJ1670@albert.catwhisker.org>
References:  <20100814152907.GG1670@albert.catwhisker.org> <AANLkTi=zceU9Vb2C5_xPVcT8yaxF4ZsSHPieqBhDbsaW@mail.gmail.com> <20100814164750.GJ1670@albert.catwhisker.org>

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

[-- Attachment #1 --]
On Sat, Aug 14, 2010 at 18:47, David Wolfskill <david@catwhisker.org> wrote:
> On Sun, Aug 15, 2010 at 12:07:13AM +0800, Adrian Chadd wrote:
>> You should be able to revert the ath changes reasonably easy.
>>
>> Would you mind doing that and see if that fixes or contributes to the problem?
>
> OK; I reverted by doing this:
>
> g1-46(9.0-C)[1] cd /usr/src
> g1-46(9.0-C)[2] svn merge -c -211295 file:///svn/freebsd/src/base/head
> --- Reverse-merging r211295 into 'sys':
> U    sys/net80211/ieee80211_node.c
> U    sys/net80211/ieee80211_sta.c
> g1-46(9.0-C)[3]
>
> I then re-built the kernel and rebooted (with the ath(4) card inserted):
> [..]
> I think that qualifies as "working".

Indeed, please try attached patch.

-- 
Bernhard

[-- Attachment #2 --]
Index: sys/net80211/ieee80211_var.h
===================================================================
--- sys/net80211/ieee80211_var.h	(revision 211294)
+++ sys/net80211/ieee80211_var.h	(working copy)
@@ -553,6 +553,7 @@ MALLOC_DECLARE(M_80211_VAP);
 #define	IEEE80211_FEXT_WDSLEGACY 0x00010000	/* CONF: legacy WDS operation */
 #define	IEEE80211_FEXT_PROBECHAN 0x00020000	/* CONF: probe passive channel*/
 #define	IEEE80211_FEXT_UNIQMAC	 0x00040000	/* CONF: user or computed mac */
+#define	IEEE80211_FEXT_RATECTL	 0x00080000	/* CONF: ratectl used */
 
 #define	IEEE80211_FEXT_BITS \
 	"\20\2INACT\3SCANWAIT\4BGSCAN\5WPS\6TSN\7SCANREQ\10RESUME" \
Index: sys/net80211/ieee80211_ratectl.h
===================================================================
--- sys/net80211/ieee80211_ratectl.h	(revision 211294)
+++ sys/net80211/ieee80211_ratectl.h	(working copy)
@@ -63,6 +63,7 @@ MALLOC_DECLARE(M_80211_RATECTL);
 static void __inline
 ieee80211_ratectl_init(struct ieee80211vap *vap)
 {
+	vap->iv_flags_ext |= IEEE80211_FEXT_RATECTL;
 	vap->iv_rate->ir_init(vap);
 }
 
@@ -77,6 +78,8 @@ ieee80211_ratectl_node_init(struct ieee80211_node
 {
 	const struct ieee80211vap *vap = ni->ni_vap;
 
+	if ((vap->iv_flags_ext & IEEE80211_FEXT_RATECTL) == 0)
+		return;
 	vap->iv_rate->ir_node_init(ni);
 }
 

Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikr3vRYnjxzGQcc-TyRkk_SO4YUdwn=T2fQjsiK>