While debugging iwm roaming issues which are now fixed in -current,
I noticed a small difference between our driver and the Linux driver:

Set the assoc ID assigned by our AP when updating the firmware station
with the ADD_STA command. Not sure if this strictly required but it
doesn't seem to hurt. This assoc ID is also present in the MAC context
data structure so presumably firmware might use this ID for something.

This needs to be done in the update case only because we don't know
our ID yet when the station is first added to firmware. The station
gets added before the association frame exchange begins.

Already tested by florian, bket, and myself as part of a larger diff.

ok?
 
diff 3995979b713a9ebcdddbee86864fdb4f14ca7112 
3f75e2890abe65d5050904183ad6752454ca8f3b
blob - 35c4b352f905c1e493d64ccd360e022a77111e1e
blob + 74545e96d1f0c4c07c3d3cb6fe58c0277628fbeb
--- sys/dev/pci/if_iwm.c
+++ sys/dev/pci/if_iwm.c
@@ -6926,6 +6926,7 @@ iwm_add_sta_cmd(struct iwm_softc *sc, struct iwm_node 
        if (update) {
                add_sta_cmd.modify_mask |= (IWM_STA_MODIFY_QUEUES |
                    IWM_STA_MODIFY_TID_DISABLE_TX);
+               add_sta_cmd.assoc_id = htole32(in->in_ni.ni_associd);
        }
        add_sta_cmd.tid_disable_tx = htole16(in->tid_disable_ampdu);
        add_sta_cmd.tfd_queue_msk = htole32(in->tfd_queue_msk);

Reply via email to