On 1 October 2013 18:35, Kalle Valo <kvalo@xxxxxxxxxxxxxxxx> wrote: > Michal Kazior <michal.kazior@xxxxxxxxx> writes: > >> Recent WMI/HTC changes broke WEP with multiple >> keys. If WMI had no HTC TX credits to submit >> command for default wep index update it would >> trigger a bug. >> >> This simply moves the wep key index update to a >> worker. >> >> The key update may happen some time after first >> frame with a different wep key has been sent (i.e. >> some frames will be sent with old key). This was >> the case before too as WMI commands were >> asynchronous. >> >> Signed-off-by: Michal Kazior <michal.kazior@xxxxxxxxx> > > This looks problematic. Basically you just delay sending the WMI > command, but there's no guarantee that we actually have free credits at > the time of transmission. So to me it looks like this fixes the issue > just by luck. One thing at a time. This patch fixes 'scheduling while atomic' bug that was introduced with recent HTC/WMI changes. Multiple wep key handling had the same issue you point out before HTC/WMI changes. To fix the issue you mention we'd need to stop mac80211 queues, queue frame(s) with a new key on internal queue, schedule a work. The work should set new wep key index, send pending frames from internal queue and wake mac80211 queues. This is a bit more complex than it sounds though. Michał -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html