On Fri, 2012-11-16 at 22:48 -0800, Marco Porsch wrote: > +static inline bool test_and_set_psp_flag(struct sta_info *sta, > + enum ieee80211_sta_info_flags flag) > +{ > + if (!test_and_set_sta_flag(sta, flag)) { > + atomic_inc(&sta->sdata->u.mesh.num_psp); This is ... strange? Can a single station really own *two* num_psp refcounts? > + nullfunc = (struct ieee80211_hdr *) skb->data; > + if (!eosp) > + nullfunc->frame_control |= > + cpu_to_le16(IEEE80211_FCTL_MOREDATA); This seems wrong -- EOSP and moredata are orthogonal (with the restriction that "!EOSP => moredata") -- but if you just have that in the code the moredata bit won't always be set correctly. > + /* Send all internal mgmt frames on VO. Accordingly set TID to 7. */ > + drv_allow_buffered_frames(sdata->local, sta, BIT(7), 1, > + IEEE80211_FRAME_RELEASE_UAPSD, !eosp); ditto, passing !eosp definitely seems wrong > +/** > + * ieee80211_qos_null_append - append QoS Null as PSP trigger (if necessary) append? where? why not static? > + ieee80211_sta_ps_deliver_response(sta, 1, 0, > + IEEE80211_FRAME_RELEASE_UAPSD); uAPSD? The standard *explicitly* states that ASPD is *not* supported in mesh. Ok I don't really get this, need more time I guess .. also it seems really hacked together. 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