Thanks to sparse for pointing out these missing endian annotations.

All the fields in the AVS capture header (struct ieee80211_frame_info) are in
network byte order.

The length in the ethernet header is in network byte order.

last_seq_ctrl is stored little endian.

Signed-off-by: David Kimdon <[EMAIL PROTECTED]>

Index: wireless-dev/include/net/d80211_common.h
===================================================================
--- wireless-dev.orig/include/net/d80211_common.h       2006-11-05 
14:54:08.240747720 -0800
+++ wireless-dev/include/net/d80211_common.h    2006-11-05 14:56:45.225882352 
-0800
@@ -20,26 +20,26 @@
 #define IEEE80211_FI_VERSION 0x80211001
 
 struct ieee80211_frame_info {
-        u32 version;
-        u32 length;
-        u64 mactime;
-        u64 hosttime;
-        u32 phytype;
-        u32 channel;
-        u32 datarate;
-        u32 antenna;
-        u32 priority;
-        u32 ssi_type;
-        u32 ssi_signal;
-        u32 ssi_noise;
-        u32 preamble;
-        u32 encoding;
+       __be32 version;
+       __be32 length;
+       __be64 mactime;
+       __be64 hosttime;
+       __be32 phytype;
+       __be32 channel;
+       __be32 datarate;
+       __be32 antenna;
+       __be32 priority;
+       __be32 ssi_type;
+       __be32 ssi_signal;
+       __be32 ssi_noise;
+       __be32 preamble;
+       __be32 encoding;
 
        /* Note: this structure is otherwise identical to capture format used
         * in linux-wlan-ng, but this additional field is used to provide meta
         * data about the frame to hostapd. This was the easiest method for
         * providing this information, but this might change in the future. */
-       u32 msg_type;
+       __be32 msg_type;
 } __attribute__ ((packed));
 
 
Index: wireless-dev/net/d80211/ieee80211.c
===================================================================
--- wireless-dev.orig/net/d80211/ieee80211.c    2006-11-05 14:48:09.808237744 
-0800
+++ wireless-dev/net/d80211/ieee80211.c 2006-11-05 15:01:29.594651728 -0800
@@ -2427,7 +2427,7 @@
                memcpy(skb_push(skb, ETH_ALEN), dst, ETH_ALEN);
        } else {
                struct ethhdr *ehdr;
-                unsigned short len;
+               __be16 len;
                skb_pull(skb, hdrlen);
                len = htons(skb->len);
                ehdr = (struct ethhdr *) skb_push(skb, sizeof(struct ethhdr));
Index: wireless-dev/net/d80211/ieee80211_ioctl.c
===================================================================
--- wireless-dev.orig/net/d80211/ieee80211_ioctl.c      2006-11-05 
14:48:09.816236528 -0800
+++ wireless-dev/net/d80211/ieee80211_ioctl.c   2006-11-05 14:56:45.228881896 
-0800
@@ -218,7 +218,7 @@
 struct iapp_layer2_update {
        u8 da[ETH_ALEN]; /* broadcast */
        u8 sa[ETH_ALEN]; /* STA addr */
-       u16 len; /* 6 */
+       __be16 len; /* 6 */
        u8 dsap; /* 0 */
        u8 ssap; /* 0 */
        u8 control;
Index: wireless-dev/net/d80211/sta_info.h
===================================================================
--- wireless-dev.orig/net/d80211/sta_info.h     2006-11-05 14:48:09.823235464 
-0800
+++ wireless-dev/net/d80211/sta_info.h  2006-11-05 14:56:45.229881744 -0800
@@ -74,7 +74,7 @@
        void *rate_ctrl_priv;
 
        /* last received seq/frag number from this STA (per RX queue) */
-       u16 last_seq_ctrl[NUM_RX_DATA_QUEUES];
+       __le16 last_seq_ctrl[NUM_RX_DATA_QUEUES];
        unsigned long num_duplicates; /* number of duplicate frames received
                                       * from this STA */
        unsigned long tx_fragments; /* number of transmitted MPDUs */

--
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to