[PATCH] ipw2200: use generic ieee80211_get_hdrlen() to get packet length
replace ipw2200 specific frame_hdr_len() with generic ieee80211 routine ieee80211_get_hdrlen() Signed-off-by: Zhu Yi <yi.zhu@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Родитель
85149bace3
Коммит
9d0be03aee
|
@ -7895,7 +7895,8 @@ static void ipw_rx(struct ipw_priv *priv)
|
|||
le16_to_cpu(pkt->u.frame.length));
|
||||
|
||||
if (le16_to_cpu(pkt->u.frame.length) <
|
||||
frame_hdr_len(header)) {
|
||||
ieee80211_get_hdrlen(le16_to_cpu(
|
||||
header->frame_ctl))) {
|
||||
IPW_DEBUG_DROP
|
||||
("Received packet is too small. "
|
||||
"Dropping.\n");
|
||||
|
|
|
@ -1907,27 +1907,4 @@ struct ipw_cmd_log {
|
|||
|
||||
#define IPW_MAX_CONFIG_RETRIES 10
|
||||
|
||||
static inline u32 frame_hdr_len(struct ieee80211_hdr_4addr *hdr)
|
||||
{
|
||||
u32 retval;
|
||||
u16 fc;
|
||||
|
||||
retval = sizeof(struct ieee80211_hdr_3addr);
|
||||
fc = le16_to_cpu(hdr->frame_ctl);
|
||||
|
||||
/*
|
||||
* Function ToDS FromDS
|
||||
* IBSS 0 0
|
||||
* To AP 1 0
|
||||
* From AP 0 1
|
||||
* WDS (bridge) 1 1
|
||||
*
|
||||
* Only WDS frames use Address4 among them. --YZ
|
||||
*/
|
||||
if (!(fc & IEEE80211_FCTL_TODS) || !(fc & IEEE80211_FCTL_FROMDS))
|
||||
retval -= ETH_ALEN;
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
#endif /* __ipw2200_h__ */
|
||||
|
|
Загрузка…
Ссылка в новой задаче