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...


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
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Reply via email to