Hi:

In station mode, the xr and turbo default value is one (enable). So I disable the turbo function. But xr function would cause kernel panic. The operation is as follows:

 

ath_pci: 0.9.4.5 (Atheros/multi-bss)

wifi0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

wifi0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps

wifi0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

wifi0: turboA rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

wifi0: turboG rates: 6Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps

wifi0: H/W encryption support: WEP AES AES_CCM TKIP

wifi0: mac 5.9 phy 4.3 radio 3.6

wifi0: Use hw queue 1 for WME_AC_BE traffic

wifi0: Use hw queue 0 for WME_AC_BK traffic

wifi0: Use hw queue 2 for WME_AC_VI traffic

wifi0: Use hw queue 3 for WME_AC_VO traffic

wifi0: Use hw queue 8 for CAB traffic

wifi0: Use hw queue 9 for beacons

wifi0: Atheros 5212: mem=0x64000000, irq=2

 

# wlanconfig ath0 create wlandev wifi0 wlanmode sta

ath0

# iwpriv ath0 mode 1

# ifconfig ath0 up

# iwpriv ath0 get_turbo

ath0      get_turbo:1

# iwpriv ath0 get_xr

ath0      get_xr:1 

# iwpriv ath0 turbo 0

# iwpriv ath0 xr 0  

# iwpriv ath0 xr 1

 

The program will be run at steps:

1)       ieee80211_setupxr :

         vap->iv_xrvap=ic->ic_vap_create(ic,name,vap->iv_unit,IEEE80211_M_HOSTAP,IEEE80211_VAP_XR|IEEE80211_CLONE_BSSID);         // create virtual dev for xr operaion.

2)       ath_vap_create (struct ieee80211com *ic, const char *name, int unit, int opmode, int flags) :

 

         /* XXX ic unlocked and race against add */

         switch (opmode) {

                   case IEEE80211_M_STA: /* ap+sta for repeater application */

                            …….

                   case IEEE80211_M_IBSS:

                            ………

                   case IEEE80211_M_AHDEMO:

                   case IEEE80211_M_MONITOR:

                            ………….

                   case IEEE80211_M_STA: /* ap+sta for repeater application */  case IEEE80211_M_HOSTAP:

                   case IEEE80211_M_WDS:

                            /* permit multiple ap's and/or wds links */

                            /* XXX sta+ap for repeater/bridge application */

                            if ((sc->sc_nvaps != 0) && (ic->ic_opmode == IEEE80211_M_STA))

                                     return NULL;                                // the program will return in here

                            …………….

                   default:

                            return NULL;

         }

3)                  vap->iv_xrvap->iv_fragthreshold = IEEE80211_XR_FRAG_THRESHOLD;

         program will cause kernel panic because of null point operation.

 

So, is there anything I can do or try to troubleshoot this?

 

Regards

Laurence huang