|
@@ -1962,19 +1962,17 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (skb) {
|
|
|
#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
|
|
|
- /*
|
|
|
- * 'align' will only take the values 0 or 2 here
|
|
|
- * since all frames are required to be aligned
|
|
|
- * to 2-byte boundaries when being passed to
|
|
|
- * mac80211; the code here works just as well if
|
|
|
- * that isn't true, but mac80211 assumes it can
|
|
|
- * access fields as 2-byte aligned (e.g. for
|
|
|
- * compare_ether_addr)
|
|
|
+ if (skb) {
|
|
|
+ /* 'align' will only take the values 0 or 2 here since all
|
|
|
+ * frames are required to be aligned to 2-byte boundaries
|
|
|
+ * when being passed to mac80211; the code here works just
|
|
|
+ * as well if that isn't true, but mac80211 assumes it can
|
|
|
+ * access fields as 2-byte aligned (e.g. for ether_addr_equal)
|
|
|
*/
|
|
|
- int align = ((unsigned long)(skb->data +
|
|
|
- sizeof(struct ethhdr))) & 3;
|
|
|
+ int align;
|
|
|
+
|
|
|
+ align = (unsigned long)(skb->data + sizeof(struct ethhdr)) & 3;
|
|
|
if (align) {
|
|
|
if (WARN_ON(skb_headroom(skb) < 3)) {
|
|
|
dev_kfree_skb(skb);
|
|
@@ -1987,14 +1985,14 @@ ieee80211_deliver_skb(struct ieee80211_rx_data *rx)
|
|
|
skb_set_tail_pointer(skb, len);
|
|
|
}
|
|
|
}
|
|
|
+ }
|
|
|
#endif
|
|
|
|
|
|
- if (skb) {
|
|
|
- /* deliver to local stack */
|
|
|
- skb->protocol = eth_type_trans(skb, dev);
|
|
|
- memset(skb->cb, 0, sizeof(skb->cb));
|
|
|
- netif_receive_skb(skb);
|
|
|
- }
|
|
|
+ if (skb) {
|
|
|
+ /* deliver to local stack */
|
|
|
+ skb->protocol = eth_type_trans(skb, dev);
|
|
|
+ memset(skb->cb, 0, sizeof(skb->cb));
|
|
|
+ netif_receive_skb(skb);
|
|
|
}
|
|
|
|
|
|
if (xmit_skb) {
|