Hi folks -
static int reset_mode(struct zd_mac *mac)
{
struct ieee80211_device *ieee = zd_mac_to_ieee80211(mac);
struct zd_ioreq32 ioreqs[3] = {
{ CR_RX_FILTER, STA_RX_FILTER },
{ CR_SNIFFER_ON, 0U },
};
if (ieee->iw_mode == IW_MODE_MONITOR) {
ioreqs[0].value = 0xffffffff;
ioreqs[1].value = 0x1;
ioreqs[2].value = ENC_SNIFFER;
}
return zd_iowrite32a(&mac->chip, ioreqs, 3);
}
Seems that ioreqs[2].addr is never prepared to anything, and
ioreqs[2].value is never set if you are not in Monitor mode... but you
always call zd_iowrite32a() to do 3 actions... so I guess you write a
random register with a random value every time you call this, since it
is all on the stack and there is no zeroing on allocation...
-Andy
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs