From: Ivo van Doorn <[EMAIL PROTECTED]> Use __le32 annotations for all fields in the descriptor, since these should always be treated as little endian.
Signed-off-by: Ivo van Doorn <[EMAIL PROTECTED]>
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2400pci.h
wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2400pci.h
--- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2400pci.h
2006-04-28 15:09:48.000000000 +0200
+++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2400pci.h
2006-04-28 15:59:24.000000000 +0200
@@ -739,7 +739,7 @@
* TX descriptor format for TX, PRIO, ATIM and Beacon Ring.
*/
struct txd{
- u32 word0;
+ __le32 word0;
#define TXD_W0_OWNER_NIC FIELD32(0x00000001)
#define TXD_W0_VALID FIELD32(0x00000002)
#define TXD_W0_RESULT FIELD32(0x0000001c)
@@ -753,32 +753,32 @@ struct txd{
#define TXD_W0_AGC FIELD32(0x00ff0000)
#define TXD_W0_R2 FIELD32(0xff000000)
- u32 word1;
+ __le32 word1;
#define TXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
- u32 word2;
+ __le32 word2;
#define TXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)
#define TXD_W2_DATABYTE_COUNT FIELD32(0xffff0000)
- u32 word3;
+ __le32 word3;
#define TXD_W3_PLCP_SIGNAL FIELD32(0x0000ffff)
#define TXD_W3_PLCP_SERVICE FIELD32(0xffff0000)
- u32 word4;
+ __le32 word4;
#define TXD_W4_PLCP_LENGTH_LOW FIELD32(0x0000ffff)
#define TXD_W4_PLCP_LENGTH_HIGH FIELD32(0xffff0000)
- u32 word5;
+ __le32 word5;
#define TXD_W5_BBCR4 FIELD32(0x0000ffff)
#define TXD_W5_AGC_REG FIELD32(0x007f0000)
#define TXD_W5_AGC_REG_VALID FIELD32(0x00800000)
#define TXD_W5_XXX_REG FIELD32(0x7f000000)
#define TXD_W5_XXX_REG_VALID FIELD32(0x80000000)
- u32 word6;
+ __le32 word6;
#define TXD_W6_SK_BUFF FIELD32(0xffffffff)
- u32 word7;
+ __le32 word7;
#define TXD_W7_RESERVED FIELD32(0xffffffff)
} __attribute__ ((packed));
@@ -786,7 +786,7 @@ struct txd{
* RX descriptor format for RX Ring.
*/
struct rxd{
- u32 word0;
+ __le32 word0;
#define RXD_W0_OWNER_NIC FIELD32(0x00000001)
#define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)
#define RXD_W0_MULTICAST FIELD32(0x00000004)
@@ -796,30 +796,30 @@ struct rxd{
#define RXD_W0_PHYSICAL_ERROR FIELD32(0x00000080)
#define RXD_W0_DATABYTE_COUNT FIELD32(0xffff0000)
- u32 word1;
+ __le32 word1;
#define RXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
- u32 word2;
+ __le32 word2;
#define RXD_W2_BUFFER_LENGTH FIELD32(0x0000ffff)
#define RXD_W2_BBR0 FIELD32(0x00ff0000)
#define RXD_W2_RSSI FIELD32(0xff000000)
- u32 word3;
+ __le32 word3;
#define RXD_W3_BBR2 FIELD32(0x000000ff)
#define RXD_W3_BBR3 FIELD32(0x0000ff00)
#define RXD_W3_BBR4 FIELD32(0x00ff0000)
#define RXD_W3_BBR5 FIELD32(0xff000000)
- u32 word4;
+ __le32 word4;
#define RXD_W4_RX_END_TIME FIELD32(0xffffffff)
- u32 word5;
+ __le32 word5;
#define RXD_W5_RESERVED FIELD32(0xffffffff)
- u32 word6;
+ __le32 word6;
#define RXD_W6_RESERVED FIELD32(0xffffffff)
- u32 word7;
+ __le32 word7;
#define RXD_W7_RESERVED FIELD32(0xffffffff)
} __attribute__ ((packed));
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500pci.h
wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500pci.h
--- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500pci.h
2006-04-28 15:09:48.000000000 +0200
+++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500pci.h
2006-04-28 15:58:29.000000000 +0200
@@ -987,7 +987,7 @@
* TX descriptor format for TX, PRIO, ATIM and Beacon Ring.
*/
struct txd{
- u32 word0;
+ __le32 word0;
#define TXD_W0_OWNER_NIC FIELD32(0x00000001)
#define TXD_W0_VALID FIELD32(0x00000002)
#define TXD_W0_RESULT FIELD32(0x0000001c)
@@ -1002,40 +1002,40 @@ struct txd{
#define TXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000)
#define TXD_W0_CIPHER_ALG FIELD32(0xe0000000)
- u32 word1;
+ __le32 word1;
#define TXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
- u32 word2;
+ u32 word2;
#define TXD_W2_IV_OFFSET FIELD32(0x0000003f)
#define TXD_W2_AIFS FIELD32(0x000000c0)
#define TXD_W2_CWMIN FIELD32(0x00000f00)
#define TXD_W2_CWMAX FIELD32(0x0000f000)
- u32 word3;
+ __le32 word3;
#define TXD_W3_PLCP_SIGNAL FIELD32(0x000000ff)
#define TXD_W3_PLCP_SERVICE FIELD32(0x0000ff00)
#define TXD_W3_PLCP_LENGTH_LOW FIELD32(0x00ff0000)
#define TXD_W3_PLCP_LENGTH_HIGH FIELD32(0xff000000)
- u32 word4;
+ __le32 word4;
#define TXD_W4_IV FIELD32(0xffffffff)
- u32 word5;
+ __le32 word5;
#define TXD_W5_EIV FIELD32(0xffffffff)
- u32 word6;
+ __le32 word6;
#define TXD_W6_KEY FIELD32(0xffffffff)
- u32 word7;
+ __le32 word7;
#define TXD_W7_KEY FIELD32(0xffffffff)
- u32 word8;
+ __le32 word8;
#define TXD_W8_KEY FIELD32(0xffffffff)
- u32 word9;
+ __le32 word9;
#define TXD_W9_KEY FIELD32(0xffffffff)
- u32 word10;
+ __le32 word10;
#define TXD_W10_RTS FIELD32(0x00000001)
#define TXD_W10_TX_RATE FIELD32(0x000000fe)
} __attribute__ ((packed));
@@ -1044,7 +1044,7 @@ struct txd{
* RX descriptor format for RX Ring.
*/
struct rxd{
- u32 word0;
+ __le32 word0;
#define RXD_W0_OWNER_NIC FIELD32(0x00000001)
#define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)
#define RXD_W0_MULTICAST FIELD32(0x00000004)
@@ -1059,36 +1059,36 @@ struct rxd{
#define RXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000)
#define RXD_W0_CIPHER_ALG FIELD32(0xe0000000)
- u32 word1;
+ __le32 word1;
#define RXD_W1_BUFFER_ADDRESS FIELD32(0xffffffff)
- u32 word2;
+ __le32 word2;
#define RXD_W2_BBR0 FIELD32(0x000000ff)
#define RXD_W2_RSSI FIELD32(0x0000ff00)
#define RXD_W2_TA FIELD32(0xffff0000)
- u32 word3;
+ __le32 word3;
#define RXD_W3_TA FIELD32(0xffffffff)
- u32 word4;
+ __le32 word4;
#define RXD_W4_IV FIELD32(0xffffffff)
- u32 word5;
+ __le32 word5;
#define RXD_W5_EIV FIELD32(0xffffffff)
- u32 word6;
+ __le32 word6;
#define RXD_W6_KEY FIELD32(0xffffffff)
- u32 word7;
+ __le32 word7;
#define RXD_W7_KEY FIELD32(0xffffffff)
- u32 word8;
+ __le32 word8;
#define RXD_W8_KEY FIELD32(0xffffffff)
- u32 word9;
+ __le32 word9;
#define RXD_W9_KEY FIELD32(0xffffffff)
- u32 word10;
+ __le32 word10;
#define RXD_W10_DROP FIELD32(0x00000001)
} __attribute__ ((packed));
diff -uprN wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500usb.h
wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500usb.h
--- wireless-dev-rt2x00/drivers/net/wireless/d80211/rt2x00/rt2500usb.h
2006-04-28 15:09:48.000000000 +0200
+++ wireless-dev-rt2x00-patch/drivers/net/wireless/d80211/rt2x00/rt2500usb.h
2006-04-28 15:58:57.000000000 +0200
@@ -553,7 +553,7 @@
* TX descriptor format for TX, PRIO, ATIM and Beacon Ring.
*/
struct txd{
- u32 word0;
+ __le32 word0;
#define TXD_W0_PACKET_ID FIELD32(0x0000000f)
#define TXD_W0_RETRY_LIMIT FIELD32(0x000000f0)
#define TXD_W0_MORE_FRAG FIELD32(0x00000100)
@@ -566,22 +566,22 @@ struct txd{
#define TXD_W0_CIPHER FIELD32(0x20000000)
#define TXD_W0_KEY_ID FIELD32(0xc0000000)
- u32 word1;
+ __le32 word1;
#define TXD_W1_IV_OFFSET FIELD32(0x0000003f)
#define TXD_W1_AIFS FIELD32(0x000000c0)
#define TXD_W1_CWMIN FIELD32(0x00000f00)
#define TXD_W1_CWMAX FIELD32(0x0000f000)
- u32 word2;
+ __le32 word2;
#define TXD_W2_PLCP_SIGNAL FIELD32(0x000000ff)
#define TXD_W2_PLCP_SERVICE FIELD32(0x0000ff00)
#define TXD_W2_PLCP_LENGTH_LOW FIELD32(0x00ff0000)
#define TXD_W2_PLCP_LENGTH_HIGH FIELD32(0xff000000)
- u32 word3;
+ __le32 word3;
#define TXD_W3_IV FIELD32(0xffffffff)
- u32 word4;
+ __le32 word4;
#define TXD_W4_EIV FIELD32(0xffffffff)
} __attribute__ ((packed));
@@ -589,7 +589,7 @@ struct txd{
* RX descriptor format for RX Ring.
*/
struct rxd{
- u32 word0;
+ __le32 word0;
#define RXD_W0_UNICAST_TO_ME FIELD32(0x00000002)
#define RXD_W0_MULTICAST FIELD32(0x00000004)
#define RXD_W0_BROADCAST FIELD32(0x00000008)
@@ -601,14 +601,14 @@ struct rxd{
#define RXD_W0_CI_ERROR FIELD32(0x00000200)
#define RXD_W0_DATABYTE_COUNT FIELD32(0x0fff0000)
- u32 word1;
+ __le32 word1;
#define RXD_W1_SIGNAL FIELD32(0x000000ff)
#define RXD_W1_RSSI FIELD32(0x0000ff00)
- u32 word2;
+ __le32 word2;
#define RXD_W2_IV FIELD32(0xffffffff)
- u32 word3;
+ __le32 word3;
#define RXD_W3_EIV FIELD32(0xffffffff)
} __attribute__ ((packed));
pgp0U6kTUYPF4.pgp
Description: PGP signature
