On Thu, Feb 17, 2011 at 03:19:05PM -0600, Larry Finger wrote: > +static enum rtl_desc_qsel _rtl8192cu_mq_to_descq(struct ieee80211_hw *hw, > + u16 fc, u16 mac80211_queue_index) > +{ > + enum rtl_desc_qsel qsel; > + struct rtl_priv *rtlpriv = rtl_priv(hw); > + > + if (unlikely(ieee80211_is_beacon(fc))) { > + qsel = QSLT_BEACON; > + goto out; > + } > + if (ieee80211_is_mgmt(fc)) { [snip] > + u16 fc = le16_to_cpu(hdr->frame_control); > + enum rtl_desc_qsel fw_qsel = _rtl8192cu_mq_to_descq(hw, fc, We have that bug on all over the code, ieee80211_is_* expect le16 value whereas we pass cpu endian value. Driver is completely broken on that respect, it will not work on big endian machines. What should be done is use "sparse" (i.e. make C=1) and fix all endian bugs. That will not assure driver will work on BE machines, but at least we will fix obvious bugs. Stanislaw -- 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