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

Reply via email to