> +void sta_info_recalc_tim(struct sta_info *sta) > { > - __bss_tim_clear(bss, sta->sta.aid); > + spin_lock_irqsave(&local->sta_lock, flags); > > - if (sta->local->ops->set_tim) { > - sta->local->tim_in_locked_section = true; > - drv_set_tim(sta->local, &sta->sta, false); > - sta->local->tim_in_locked_section = false; > + have_data = test_sta_flags(sta, WLAN_STA_PS_DRIVER_BUF) || > + !skb_queue_empty(&sta->tx_filtered) || > + !skb_queue_empty(&sta->ps_tx_buf); I'll move the locking to after the have_data check, it's not needed around it. johannes -- 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