zd1211rw: Fix data padding for QoS
This patch fixes a data alignment issue in the zd1211rw driver. The IEEE80211_STYPE_QOS_DATA bit should be used as a bitwise test to test for the presence of the 2 byte QoS control field. Signed-off-by: Michael Buesch <mb@bu3sch.de> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
ad81b2f97d
commit
d005b1d042
|
@ -719,7 +719,7 @@ int zd_mac_rx(struct ieee80211_hw *hw, const u8 *buffer, unsigned int length)
|
||||||
fc = le16_to_cpu(*((__le16 *) buffer));
|
fc = le16_to_cpu(*((__le16 *) buffer));
|
||||||
|
|
||||||
is_qos = ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
|
is_qos = ((fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA) &&
|
||||||
((fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_QOS_DATA);
|
(fc & IEEE80211_STYPE_QOS_DATA);
|
||||||
is_4addr = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) ==
|
is_4addr = (fc & (IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS)) ==
|
||||||
(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
|
(IEEE80211_FCTL_TODS | IEEE80211_FCTL_FROMDS);
|
||||||
need_padding = is_qos ^ is_4addr;
|
need_padding = is_qos ^ is_4addr;
|
||||||
|
|
Loading…
Reference in a new issue