Hi! Sorry for the delay! On Wed, Dec 21, 2011 at 11:33 AM, Stanislaw Gruszka <sgruszka@xxxxxxxxxx> wrote: > Hi Pedro, > > On Tue, Nov 29, 2011 at 05:07:55PM +0000, Pedro Francisco wrote: >> My country has the following regulatory.bin lines: >> >> country PT: >> (2402.000 - 2482.000 @ 40.000), (N/A, 20.00) >> (5170.000 - >> 5250.000 @ 40.000), (N/A, 20.00) >> (5250.000 - 5330.000 @ 40.000), (N/A, 20.00), DFS <------ removed whole line >> (5490.000 - 5710.000 @ 40.000), (N/A, 27.00), DFS <------ removed whole line >> >> If I remove the last two lines, everything works as expected, i.e., NO >> "Microsode SW error". If I include any of the last two, the Microcode >> will issue an error. >> >> I've tried every combination of those lines except just one of >> "(5250.000 - 5330.000 @ 40.000), (N/A, 20.00), DFS" OR "(5490.000 - >> 5710.000 @ 40.000), (N/A, 27.00), DFS". > > Attached patch stop to trigger error on my setup with "iw dev wlan0 scan > passive". Can you check if it also fix problem on your normal wireless > workload? It does seem fixed! However: I had to tweak a little the patch (attached, for convenience of anyone else following the thread: "IL_" -> "IWL_", file to patch is different and paragraphs are different). Also, probably unrelated, I got _just once_ another firmware error ("iwl3945 Command REPLY_RATE_SCALE failed: FW Error iwl3945 Error setting HW rate table: FFFFFFFB") but since the kernels have changed and I've also changed to the PAE kernel, it's probably unrelated to the patch (also I'm using swcrypto=0 which may help). I'll continue testing but unless there is some other issue I won't report back. Thank you for the fix! -- Pedro
diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c index 66ee156..96f5d31 100644 --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c @@ -2659,12 +2659,12 @@ int iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif) } /* - * If active scaning is requested but a certain channel - * is marked passive, we can do active scanning if we - * detect transmissions. + * If active scaning is requested but a certain channel is marked + * passive, we can do active scanning if we detect transmissions. For + * passive only scanning disable switching to active on any channel. */ scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT : - IWL_GOOD_CRC_TH_DISABLED; + IWL_GOOD_CRC_TH_NEVER; len = iwl_legacy_fill_probe_req(priv, (struct ieee80211_mgmt *)scan->data, vif->addr, priv->scan_request->ie,