aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorEric Dumazet <eric.dumazet@gmail.com>2010-06-02 14:10:09 -0400
committerDavid S. Miller <davem@davemloft.net>2010-06-03 06:18:23 -0400
commitba2d3587912f82d1ab4367975b1df460db60fb1e (patch)
tree1e4e04caf23274bb4e39edbfc5713b4856326953 /drivers/net/wireless
parent1273d97674a1782ff55b823aa6c40aea9b538aaf (diff)
drivers/net: use __packed annotation
cleanup patch. Use new __packed annotation in drivers/net/ Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/adm8211.h6
-rw-r--r--drivers/net/wireless/airo.c32
-rw-r--r--drivers/net/wireless/at76c50x-usb.c2
-rw-r--r--drivers/net/wireless/at76c50x-usb.h40
-rw-r--r--drivers/net/wireless/b43/b43.h6
-rw-r--r--drivers/net/wireless/b43/dma.h8
-rw-r--r--drivers/net/wireless/b43/xmit.h20
-rw-r--r--drivers/net/wireless/b43legacy/b43legacy.h6
-rw-r--r--drivers/net/wireless/b43legacy/dma.h8
-rw-r--r--drivers/net/wireless/b43legacy/xmit.h10
-rw-r--r--drivers/net/wireless/hostap/hostap_80211.h18
-rw-r--r--drivers/net/wireless/hostap/hostap_common.h10
-rw-r--r--drivers/net/wireless/hostap/hostap_wlan.h32
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.c4
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2100.h16
-rw-r--r--drivers/net/wireless/ipw2x00/ipw2200.h122
-rw-r--r--drivers/net/wireless/ipw2x00/libipw.h62
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-fh.h4
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-3945-hw.h10
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-4965-hw.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-agn-hw.h2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-commands.h244
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-dev.h8
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-eeprom.h12
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-fh.h6
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-spectrum.h10
-rw-r--r--drivers/net/wireless/iwmc3200wifi/commands.h50
-rw-r--r--drivers/net/wireless/iwmc3200wifi/iwm.h2
-rw-r--r--drivers/net/wireless/iwmc3200wifi/lmac.h32
-rw-r--r--drivers/net/wireless/iwmc3200wifi/umac.h60
-rw-r--r--drivers/net/wireless/libertas/host.h120
-rw-r--r--drivers/net/wireless/libertas/radiotap.h4
-rw-r--r--drivers/net/wireless/libertas/rx.c8
-rw-r--r--drivers/net/wireless/libertas/types.h66
-rw-r--r--drivers/net/wireless/libertas_tf/libertas_tf.h4
-rw-r--r--drivers/net/wireless/mac80211_hwsim.c2
-rw-r--r--drivers/net/wireless/mwl8k.c66
-rw-r--r--drivers/net/wireless/orinoco/fw.c2
-rw-r--r--drivers/net/wireless/orinoco/hermes.h18
-rw-r--r--drivers/net/wireless/orinoco/hermes_dld.c8
-rw-r--r--drivers/net/wireless/orinoco/hw.c6
-rw-r--r--drivers/net/wireless/orinoco/main.c10
-rw-r--r--drivers/net/wireless/orinoco/orinoco.h2
-rw-r--r--drivers/net/wireless/orinoco/orinoco_usb.c4
-rw-r--r--drivers/net/wireless/orinoco/wext.c2
-rw-r--r--drivers/net/wireless/p54/net2280.h16
-rw-r--r--drivers/net/wireless/p54/p54pci.h6
-rw-r--r--drivers/net/wireless/p54/p54spi.h2
-rw-r--r--drivers/net/wireless/p54/p54usb.h6
-rw-r--r--drivers/net/wireless/prism54/isl_ioctl.c2
-rw-r--r--drivers/net/wireless/prism54/isl_oid.h18
-rw-r--r--drivers/net/wireless/prism54/islpci_eth.h4
-rw-r--r--drivers/net/wireless/prism54/islpci_mgt.h2
-rw-r--r--drivers/net/wireless/rndis_wlan.c34
-rw-r--r--drivers/net/wireless/rt2x00/rt2800.h6
-rw-r--r--drivers/net/wireless/rt2x00/rt61pci.h4
-rw-r--r--drivers/net/wireless/rt2x00/rt73usb.h4
-rw-r--r--drivers/net/wireless/rtl818x/rtl8180.h4
-rw-r--r--drivers/net/wireless/rtl818x/rtl8187.h8
-rw-r--r--drivers/net/wireless/rtl818x/rtl818x.h2
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_acx.h102
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_cmd.h22
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_event.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_rx.h2
-rw-r--r--drivers/net/wireless/wl12xx/wl1251_tx.h6
-rw-r--r--drivers/net/wireless/wl12xx/wl1271.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_acx.h102
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_cmd.h40
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_event.h4
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_rx.h2
-rw-r--r--drivers/net/wireless/wl12xx/wl1271_tx.h6
-rw-r--r--drivers/net/wireless/wl12xx/wl12xx_80211.h26
-rw-r--r--drivers/net/wireless/wl3501.h16
-rw-r--r--drivers/net/wireless/zd1211rw/zd_mac.h12
-rw-r--r--drivers/net/wireless/zd1211rw/zd_usb.h14
75 files changed, 823 insertions, 823 deletions
diff --git a/drivers/net/wireless/adm8211.h b/drivers/net/wireless/adm8211.h
index b07e4d3a6b4d..bbc10b1cde87 100644
--- a/drivers/net/wireless/adm8211.h
+++ b/drivers/net/wireless/adm8211.h
@@ -80,7 +80,7 @@ struct adm8211_csr {
80 __le32 FEMR; /* 0x104 */ 80 __le32 FEMR; /* 0x104 */
81 __le32 FPSR; /* 0x108 */ 81 __le32 FPSR; /* 0x108 */
82 __le32 FFER; /* 0x10C */ 82 __le32 FFER; /* 0x10C */
83} __attribute__ ((packed)); 83} __packed;
84 84
85/* CSR0 - PAR (PCI Address Register) */ 85/* CSR0 - PAR (PCI Address Register) */
86#define ADM8211_PAR_MWIE (1 << 24) 86#define ADM8211_PAR_MWIE (1 << 24)
@@ -484,7 +484,7 @@ struct adm8211_tx_hdr {
484 u8 entry_control; // huh?? 484 u8 entry_control; // huh??
485 u16 reserved_1; 485 u16 reserved_1;
486 u32 reserved_2; 486 u32 reserved_2;
487} __attribute__ ((packed)); 487} __packed;
488 488
489 489
490#define RX_COPY_BREAK 128 490#define RX_COPY_BREAK 128
@@ -531,7 +531,7 @@ struct adm8211_eeprom {
531 u8 lnags_threshold[14]; /* 0x70 */ 531 u8 lnags_threshold[14]; /* 0x70 */
532 __le16 checksum; /* 0x7E */ 532 __le16 checksum; /* 0x7E */
533 u8 cis_data[0]; /* 0x80, 384 bytes */ 533 u8 cis_data[0]; /* 0x80, 384 bytes */
534} __attribute__ ((packed)); 534} __packed;
535 535
536struct adm8211_priv { 536struct adm8211_priv {
537 struct pci_dev *pdev; 537 struct pci_dev *pdev;
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
index 3b7ab20a5c54..6b605df8a923 100644
--- a/drivers/net/wireless/airo.c
+++ b/drivers/net/wireless/airo.c
@@ -506,20 +506,20 @@ struct WepKeyRid {
506 u8 mac[ETH_ALEN]; 506 u8 mac[ETH_ALEN];
507 __le16 klen; 507 __le16 klen;
508 u8 key[16]; 508 u8 key[16];
509} __attribute__ ((packed)); 509} __packed;
510 510
511/* These structures are from the Aironet's PC4500 Developers Manual */ 511/* These structures are from the Aironet's PC4500 Developers Manual */
512typedef struct Ssid Ssid; 512typedef struct Ssid Ssid;
513struct Ssid { 513struct Ssid {
514 __le16 len; 514 __le16 len;
515 u8 ssid[32]; 515 u8 ssid[32];
516} __attribute__ ((packed)); 516} __packed;
517 517
518typedef struct SsidRid SsidRid; 518typedef struct SsidRid SsidRid;
519struct SsidRid { 519struct SsidRid {
520 __le16 len; 520 __le16 len;
521 Ssid ssids[3]; 521 Ssid ssids[3];
522} __attribute__ ((packed)); 522} __packed;
523 523
524typedef struct ModulationRid ModulationRid; 524typedef struct ModulationRid ModulationRid;
525struct ModulationRid { 525struct ModulationRid {
@@ -528,7 +528,7 @@ struct ModulationRid {
528#define MOD_DEFAULT cpu_to_le16(0) 528#define MOD_DEFAULT cpu_to_le16(0)
529#define MOD_CCK cpu_to_le16(1) 529#define MOD_CCK cpu_to_le16(1)
530#define MOD_MOK cpu_to_le16(2) 530#define MOD_MOK cpu_to_le16(2)
531} __attribute__ ((packed)); 531} __packed;
532 532
533typedef struct ConfigRid ConfigRid; 533typedef struct ConfigRid ConfigRid;
534struct ConfigRid { 534struct ConfigRid {
@@ -652,7 +652,7 @@ struct ConfigRid {
652#define MAGIC_STAY_IN_CAM (1<<10) 652#define MAGIC_STAY_IN_CAM (1<<10)
653 u8 magicControl; 653 u8 magicControl;
654 __le16 autoWake; 654 __le16 autoWake;
655} __attribute__ ((packed)); 655} __packed;
656 656
657typedef struct StatusRid StatusRid; 657typedef struct StatusRid StatusRid;
658struct StatusRid { 658struct StatusRid {
@@ -711,20 +711,20 @@ struct StatusRid {
711#define STAT_LEAPFAILED 91 711#define STAT_LEAPFAILED 91
712#define STAT_LEAPTIMEDOUT 92 712#define STAT_LEAPTIMEDOUT 92
713#define STAT_LEAPCOMPLETE 93 713#define STAT_LEAPCOMPLETE 93
714} __attribute__ ((packed)); 714} __packed;
715 715
716typedef struct StatsRid StatsRid; 716typedef struct StatsRid StatsRid;
717struct StatsRid { 717struct StatsRid {
718 __le16 len; 718 __le16 len;
719 __le16 spacer; 719 __le16 spacer;
720 __le32 vals[100]; 720 __le32 vals[100];
721} __attribute__ ((packed)); 721} __packed;
722 722
723typedef struct APListRid APListRid; 723typedef struct APListRid APListRid;
724struct APListRid { 724struct APListRid {
725 __le16 len; 725 __le16 len;
726 u8 ap[4][ETH_ALEN]; 726 u8 ap[4][ETH_ALEN];
727} __attribute__ ((packed)); 727} __packed;
728 728
729typedef struct CapabilityRid CapabilityRid; 729typedef struct CapabilityRid CapabilityRid;
730struct CapabilityRid { 730struct CapabilityRid {
@@ -754,7 +754,7 @@ struct CapabilityRid {
754 __le16 bootBlockVer; 754 __le16 bootBlockVer;
755 __le16 requiredHard; 755 __le16 requiredHard;
756 __le16 extSoftCap; 756 __le16 extSoftCap;
757} __attribute__ ((packed)); 757} __packed;
758 758
759/* Only present on firmware >= 5.30.17 */ 759/* Only present on firmware >= 5.30.17 */
760typedef struct BSSListRidExtra BSSListRidExtra; 760typedef struct BSSListRidExtra BSSListRidExtra;
@@ -762,7 +762,7 @@ struct BSSListRidExtra {
762 __le16 unknown[4]; 762 __le16 unknown[4];
763 u8 fixed[12]; /* WLAN management frame */ 763 u8 fixed[12]; /* WLAN management frame */
764 u8 iep[624]; 764 u8 iep[624];
765} __attribute__ ((packed)); 765} __packed;
766 766
767typedef struct BSSListRid BSSListRid; 767typedef struct BSSListRid BSSListRid;
768struct BSSListRid { 768struct BSSListRid {
@@ -796,7 +796,7 @@ struct BSSListRid {
796 796
797 /* Only present on firmware >= 5.30.17 */ 797 /* Only present on firmware >= 5.30.17 */
798 BSSListRidExtra extra; 798 BSSListRidExtra extra;
799} __attribute__ ((packed)); 799} __packed;
800 800
801typedef struct { 801typedef struct {
802 BSSListRid bss; 802 BSSListRid bss;
@@ -807,13 +807,13 @@ typedef struct tdsRssiEntry tdsRssiEntry;
807struct tdsRssiEntry { 807struct tdsRssiEntry {
808 u8 rssipct; 808 u8 rssipct;
809 u8 rssidBm; 809 u8 rssidBm;
810} __attribute__ ((packed)); 810} __packed;
811 811
812typedef struct tdsRssiRid tdsRssiRid; 812typedef struct tdsRssiRid tdsRssiRid;
813struct tdsRssiRid { 813struct tdsRssiRid {
814 u16 len; 814 u16 len;
815 tdsRssiEntry x[256]; 815 tdsRssiEntry x[256];
816} __attribute__ ((packed)); 816} __packed;
817 817
818typedef struct MICRid MICRid; 818typedef struct MICRid MICRid;
819struct MICRid { 819struct MICRid {
@@ -823,7 +823,7 @@ struct MICRid {
823 u8 multicast[16]; 823 u8 multicast[16];
824 __le16 unicastValid; 824 __le16 unicastValid;
825 u8 unicast[16]; 825 u8 unicast[16];
826} __attribute__ ((packed)); 826} __packed;
827 827
828typedef struct MICBuffer MICBuffer; 828typedef struct MICBuffer MICBuffer;
829struct MICBuffer { 829struct MICBuffer {
@@ -841,7 +841,7 @@ struct MICBuffer {
841 } u; 841 } u;
842 __be32 mic; 842 __be32 mic;
843 __be32 seq; 843 __be32 seq;
844} __attribute__ ((packed)); 844} __packed;
845 845
846typedef struct { 846typedef struct {
847 u8 da[ETH_ALEN]; 847 u8 da[ETH_ALEN];
@@ -996,7 +996,7 @@ struct rx_hdr {
996 u8 rate; 996 u8 rate;
997 u8 freq; 997 u8 freq;
998 __le16 tmp[4]; 998 __le16 tmp[4];
999} __attribute__ ((packed)); 999} __packed;
1000 1000
1001typedef struct { 1001typedef struct {
1002 unsigned int ctl: 15; 1002 unsigned int ctl: 15;
diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
index 8a2d4afc74f8..429b281d40d1 100644
--- a/drivers/net/wireless/at76c50x-usb.c
+++ b/drivers/net/wireless/at76c50x-usb.c
@@ -305,7 +305,7 @@ struct dfu_status {
305 unsigned char poll_timeout[3]; 305 unsigned char poll_timeout[3];
306 unsigned char state; 306 unsigned char state;
307 unsigned char string; 307 unsigned char string;
308} __attribute__((packed)); 308} __packed;
309 309
310static inline int at76_is_intersil(enum board_type board) 310static inline int at76_is_intersil(enum board_type board)
311{ 311{
diff --git a/drivers/net/wireless/at76c50x-usb.h b/drivers/net/wireless/at76c50x-usb.h
index 1ec5ccffdbc0..972ea0fc1a0b 100644
--- a/drivers/net/wireless/at76c50x-usb.h
+++ b/drivers/net/wireless/at76c50x-usb.h
@@ -99,7 +99,7 @@ struct hwcfg_r505 {
99 u8 reserved2[14]; 99 u8 reserved2[14];
100 u8 cr15_values[14]; 100 u8 cr15_values[14];
101 u8 reserved3[3]; 101 u8 reserved3[3];
102} __attribute__((packed)); 102} __packed;
103 103
104struct hwcfg_rfmd { 104struct hwcfg_rfmd {
105 u8 cr20_values[14]; 105 u8 cr20_values[14];
@@ -111,7 +111,7 @@ struct hwcfg_rfmd {
111 u8 low_power_values[14]; 111 u8 low_power_values[14];
112 u8 normal_power_values[14]; 112 u8 normal_power_values[14];
113 u8 reserved1[3]; 113 u8 reserved1[3];
114} __attribute__((packed)); 114} __packed;
115 115
116struct hwcfg_intersil { 116struct hwcfg_intersil {
117 u8 mac_addr[ETH_ALEN]; 117 u8 mac_addr[ETH_ALEN];
@@ -120,7 +120,7 @@ struct hwcfg_intersil {
120 u8 pidvid[4]; 120 u8 pidvid[4];
121 u8 regulatory_domain; 121 u8 regulatory_domain;
122 u8 reserved[1]; 122 u8 reserved[1];
123} __attribute__((packed)); 123} __packed;
124 124
125union at76_hwcfg { 125union at76_hwcfg {
126 struct hwcfg_intersil i; 126 struct hwcfg_intersil i;
@@ -149,14 +149,14 @@ struct at76_card_config {
149 u8 ssid_len; 149 u8 ssid_len;
150 u8 short_preamble; 150 u8 short_preamble;
151 __le16 beacon_period; 151 __le16 beacon_period;
152} __attribute__((packed)); 152} __packed;
153 153
154struct at76_command { 154struct at76_command {
155 u8 cmd; 155 u8 cmd;
156 u8 reserved; 156 u8 reserved;
157 __le16 size; 157 __le16 size;
158 u8 data[0]; 158 u8 data[0];
159} __attribute__((packed)); 159} __packed;
160 160
161/* Length of Atmel-specific Rx header before 802.11 frame */ 161/* Length of Atmel-specific Rx header before 802.11 frame */
162#define AT76_RX_HDRLEN offsetof(struct at76_rx_buffer, packet) 162#define AT76_RX_HDRLEN offsetof(struct at76_rx_buffer, packet)
@@ -171,7 +171,7 @@ struct at76_rx_buffer {
171 u8 noise_level; 171 u8 noise_level;
172 __le32 rx_time; 172 __le32 rx_time;
173 u8 packet[IEEE80211_MAX_FRAG_THRESHOLD]; 173 u8 packet[IEEE80211_MAX_FRAG_THRESHOLD];
174} __attribute__((packed)); 174} __packed;
175 175
176/* Length of Atmel-specific Tx header before 802.11 frame */ 176/* Length of Atmel-specific Tx header before 802.11 frame */
177#define AT76_TX_HDRLEN offsetof(struct at76_tx_buffer, packet) 177#define AT76_TX_HDRLEN offsetof(struct at76_tx_buffer, packet)
@@ -182,7 +182,7 @@ struct at76_tx_buffer {
182 u8 padding; 182 u8 padding;
183 u8 reserved[4]; 183 u8 reserved[4];
184 u8 packet[IEEE80211_MAX_FRAG_THRESHOLD]; 184 u8 packet[IEEE80211_MAX_FRAG_THRESHOLD];
185} __attribute__((packed)); 185} __packed;
186 186
187/* defines for scan_type below */ 187/* defines for scan_type below */
188#define SCAN_TYPE_ACTIVE 0 188#define SCAN_TYPE_ACTIVE 0
@@ -198,7 +198,7 @@ struct at76_req_scan {
198 __le16 max_channel_time; 198 __le16 max_channel_time;
199 u8 essid_size; 199 u8 essid_size;
200 u8 international_scan; 200 u8 international_scan;
201} __attribute__((packed)); 201} __packed;
202 202
203struct at76_req_ibss { 203struct at76_req_ibss {
204 u8 bssid[ETH_ALEN]; 204 u8 bssid[ETH_ALEN];
@@ -207,7 +207,7 @@ struct at76_req_ibss {
207 u8 channel; 207 u8 channel;
208 u8 essid_size; 208 u8 essid_size;
209 u8 reserved[3]; 209 u8 reserved[3];
210} __attribute__((packed)); 210} __packed;
211 211
212struct at76_req_join { 212struct at76_req_join {
213 u8 bssid[ETH_ALEN]; 213 u8 bssid[ETH_ALEN];
@@ -217,7 +217,7 @@ struct at76_req_join {
217 __le16 timeout; 217 __le16 timeout;
218 u8 essid_size; 218 u8 essid_size;
219 u8 reserved; 219 u8 reserved;
220} __attribute__((packed)); 220} __packed;
221 221
222struct set_mib_buffer { 222struct set_mib_buffer {
223 u8 type; 223 u8 type;
@@ -229,7 +229,7 @@ struct set_mib_buffer {
229 __le16 word; 229 __le16 word;
230 u8 addr[ETH_ALEN]; 230 u8 addr[ETH_ALEN];
231 } data; 231 } data;
232} __attribute__((packed)); 232} __packed;
233 233
234struct mib_local { 234struct mib_local {
235 u16 reserved0; 235 u16 reserved0;
@@ -241,14 +241,14 @@ struct mib_local {
241 u16 reserved2; 241 u16 reserved2;
242 u8 preamble_type; 242 u8 preamble_type;
243 u16 reserved3; 243 u16 reserved3;
244} __attribute__((packed)); 244} __packed;
245 245
246struct mib_mac_addr { 246struct mib_mac_addr {
247 u8 mac_addr[ETH_ALEN]; 247 u8 mac_addr[ETH_ALEN];
248 u8 res[2]; /* ??? */ 248 u8 res[2]; /* ??? */
249 u8 group_addr[4][ETH_ALEN]; 249 u8 group_addr[4][ETH_ALEN];
250 u8 group_addr_status[4]; 250 u8 group_addr_status[4];
251} __attribute__((packed)); 251} __packed;
252 252
253struct mib_mac { 253struct mib_mac {
254 __le32 max_tx_msdu_lifetime; 254 __le32 max_tx_msdu_lifetime;
@@ -269,7 +269,7 @@ struct mib_mac {
269 u8 desired_bssid[ETH_ALEN]; 269 u8 desired_bssid[ETH_ALEN];
270 u8 desired_bsstype; /* ad-hoc or infrastructure */ 270 u8 desired_bsstype; /* ad-hoc or infrastructure */
271 u8 reserved2; 271 u8 reserved2;
272} __attribute__((packed)); 272} __packed;
273 273
274struct mib_mac_mgmt { 274struct mib_mac_mgmt {
275 __le16 beacon_period; 275 __le16 beacon_period;
@@ -292,7 +292,7 @@ struct mib_mac_mgmt {
292 u8 multi_domain_capability_enabled; 292 u8 multi_domain_capability_enabled;
293 u8 country_string[3]; 293 u8 country_string[3];
294 u8 reserved[3]; 294 u8 reserved[3];
295} __attribute__((packed)); 295} __packed;
296 296
297struct mib_mac_wep { 297struct mib_mac_wep {
298 u8 privacy_invoked; /* 0 disable encr., 1 enable encr */ 298 u8 privacy_invoked; /* 0 disable encr., 1 enable encr */
@@ -303,7 +303,7 @@ struct mib_mac_wep {
303 __le32 wep_excluded_count; 303 __le32 wep_excluded_count;
304 u8 wep_default_keyvalue[WEP_KEYS][WEP_LARGE_KEY_LEN]; 304 u8 wep_default_keyvalue[WEP_KEYS][WEP_LARGE_KEY_LEN];
305 u8 encryption_level; /* 1 for 40bit, 2 for 104bit encryption */ 305 u8 encryption_level; /* 1 for 40bit, 2 for 104bit encryption */
306} __attribute__((packed)); 306} __packed;
307 307
308struct mib_phy { 308struct mib_phy {
309 __le32 ed_threshold; 309 __le32 ed_threshold;
@@ -320,19 +320,19 @@ struct mib_phy {
320 u8 current_cca_mode; 320 u8 current_cca_mode;
321 u8 phy_type; 321 u8 phy_type;
322 u8 current_reg_domain; 322 u8 current_reg_domain;
323} __attribute__((packed)); 323} __packed;
324 324
325struct mib_fw_version { 325struct mib_fw_version {
326 u8 major; 326 u8 major;
327 u8 minor; 327 u8 minor;
328 u8 patch; 328 u8 patch;
329 u8 build; 329 u8 build;
330} __attribute__((packed)); 330} __packed;
331 331
332struct mib_mdomain { 332struct mib_mdomain {
333 u8 tx_powerlevel[14]; 333 u8 tx_powerlevel[14];
334 u8 channel_list[14]; /* 0 for invalid channels */ 334 u8 channel_list[14]; /* 0 for invalid channels */
335} __attribute__((packed)); 335} __packed;
336 336
337struct at76_fw_header { 337struct at76_fw_header {
338 __le32 crc; /* CRC32 of the whole image */ 338 __le32 crc; /* CRC32 of the whole image */
@@ -346,7 +346,7 @@ struct at76_fw_header {
346 __le32 int_fw_len; /* internal firmware image length */ 346 __le32 int_fw_len; /* internal firmware image length */
347 __le32 ext_fw_offset; /* external firmware image offset */ 347 __le32 ext_fw_offset; /* external firmware image offset */
348 __le32 ext_fw_len; /* external firmware image length */ 348 __le32 ext_fw_len; /* external firmware image length */
349} __attribute__((packed)); 349} __packed;
350 350
351/* a description of a regulatory domain and the allowed channels */ 351/* a description of a regulatory domain and the allowed channels */
352struct reg_domain { 352struct reg_domain {
diff --git a/drivers/net/wireless/b43/b43.h b/drivers/net/wireless/b43/b43.h
index 3a003e6803a5..8674a99356af 100644
--- a/drivers/net/wireless/b43/b43.h
+++ b/drivers/net/wireless/b43/b43.h
@@ -530,7 +530,7 @@ struct b43_fw_header {
530 /* Size of the data. For ucode and PCM this is in bytes. 530 /* Size of the data. For ucode and PCM this is in bytes.
531 * For IV this is number-of-ivs. */ 531 * For IV this is number-of-ivs. */
532 __be32 size; 532 __be32 size;
533} __attribute__((__packed__)); 533} __packed;
534 534
535/* Initial Value file format */ 535/* Initial Value file format */
536#define B43_IV_OFFSET_MASK 0x7FFF 536#define B43_IV_OFFSET_MASK 0x7FFF
@@ -540,8 +540,8 @@ struct b43_iv {
540 union { 540 union {
541 __be16 d16; 541 __be16 d16;
542 __be32 d32; 542 __be32 d32;
543 } data __attribute__((__packed__)); 543 } data __packed;
544} __attribute__((__packed__)); 544} __packed;
545 545
546 546
547/* Data structures for DMA transmission, per 80211 core. */ 547/* Data structures for DMA transmission, per 80211 core. */
diff --git a/drivers/net/wireless/b43/dma.h b/drivers/net/wireless/b43/dma.h
index dc91944d6022..a01c2100f166 100644
--- a/drivers/net/wireless/b43/dma.h
+++ b/drivers/net/wireless/b43/dma.h
@@ -67,7 +67,7 @@
67struct b43_dmadesc32 { 67struct b43_dmadesc32 {
68 __le32 control; 68 __le32 control;
69 __le32 address; 69 __le32 address;
70} __attribute__ ((__packed__)); 70} __packed;
71#define B43_DMA32_DCTL_BYTECNT 0x00001FFF 71#define B43_DMA32_DCTL_BYTECNT 0x00001FFF
72#define B43_DMA32_DCTL_ADDREXT_MASK 0x00030000 72#define B43_DMA32_DCTL_ADDREXT_MASK 0x00030000
73#define B43_DMA32_DCTL_ADDREXT_SHIFT 16 73#define B43_DMA32_DCTL_ADDREXT_SHIFT 16
@@ -140,7 +140,7 @@ struct b43_dmadesc64 {
140 __le32 control1; 140 __le32 control1;
141 __le32 address_low; 141 __le32 address_low;
142 __le32 address_high; 142 __le32 address_high;
143} __attribute__ ((__packed__)); 143} __packed;
144#define B43_DMA64_DCTL0_DTABLEEND 0x10000000 144#define B43_DMA64_DCTL0_DTABLEEND 0x10000000
145#define B43_DMA64_DCTL0_IRQ 0x20000000 145#define B43_DMA64_DCTL0_IRQ 0x20000000
146#define B43_DMA64_DCTL0_FRAMEEND 0x40000000 146#define B43_DMA64_DCTL0_FRAMEEND 0x40000000
@@ -153,8 +153,8 @@ struct b43_dmadesc_generic {
153 union { 153 union {
154 struct b43_dmadesc32 dma32; 154 struct b43_dmadesc32 dma32;
155 struct b43_dmadesc64 dma64; 155 struct b43_dmadesc64 dma64;
156 } __attribute__ ((__packed__)); 156 } __packed;
157} __attribute__ ((__packed__)); 157} __packed;
158 158
159/* Misc DMA constants */ 159/* Misc DMA constants */
160#define B43_DMA_RINGMEMSIZE PAGE_SIZE 160#define B43_DMA_RINGMEMSIZE PAGE_SIZE
diff --git a/drivers/net/wireless/b43/xmit.h b/drivers/net/wireless/b43/xmit.h
index d23ff9fe0c9e..d4cf9b390af3 100644
--- a/drivers/net/wireless/b43/xmit.h
+++ b/drivers/net/wireless/b43/xmit.h
@@ -10,8 +10,8 @@
10 union { \ 10 union { \
11 __le32 data; \ 11 __le32 data; \
12 __u8 raw[size]; \ 12 __u8 raw[size]; \
13 } __attribute__((__packed__)); \ 13 } __packed; \
14 } __attribute__((__packed__)) 14 } __packed
15 15
16/* struct b43_plcp_hdr4 */ 16/* struct b43_plcp_hdr4 */
17_b43_declare_plcp_hdr(4); 17_b43_declare_plcp_hdr(4);
@@ -57,7 +57,7 @@ struct b43_txhdr {
57 __u8 rts_frame[16]; /* The RTS frame (if used) */ 57 __u8 rts_frame[16]; /* The RTS frame (if used) */
58 PAD_BYTES(2); 58 PAD_BYTES(2);
59 struct b43_plcp_hdr6 plcp; /* Main PLCP header */ 59 struct b43_plcp_hdr6 plcp; /* Main PLCP header */
60 } new_format __attribute__ ((__packed__)); 60 } new_format __packed;
61 61
62 /* The old r351 format. */ 62 /* The old r351 format. */
63 struct { 63 struct {
@@ -68,10 +68,10 @@ struct b43_txhdr {
68 __u8 rts_frame[16]; /* The RTS frame (if used) */ 68 __u8 rts_frame[16]; /* The RTS frame (if used) */
69 PAD_BYTES(2); 69 PAD_BYTES(2);
70 struct b43_plcp_hdr6 plcp; /* Main PLCP header */ 70 struct b43_plcp_hdr6 plcp; /* Main PLCP header */
71 } old_format __attribute__ ((__packed__)); 71 } old_format __packed;
72 72
73 } __attribute__ ((__packed__)); 73 } __packed;
74} __attribute__ ((__packed__)); 74} __packed;
75 75
76/* MAC TX control */ 76/* MAC TX control */
77#define B43_TXH_MAC_USEFBR 0x10000000 /* Use fallback rate for this AMPDU */ 77#define B43_TXH_MAC_USEFBR 0x10000000 /* Use fallback rate for this AMPDU */
@@ -218,20 +218,20 @@ struct b43_rxhdr_fw4 {
218 struct { 218 struct {
219 __u8 jssi; /* PHY RX Status 1: JSSI */ 219 __u8 jssi; /* PHY RX Status 1: JSSI */
220 __u8 sig_qual; /* PHY RX Status 1: Signal Quality */ 220 __u8 sig_qual; /* PHY RX Status 1: Signal Quality */
221 } __attribute__ ((__packed__)); 221 } __packed;
222 222
223 /* RSSI for N-PHYs */ 223 /* RSSI for N-PHYs */
224 struct { 224 struct {
225 __s8 power0; /* PHY RX Status 1: Power 0 */ 225 __s8 power0; /* PHY RX Status 1: Power 0 */
226 __s8 power1; /* PHY RX Status 1: Power 1 */ 226 __s8 power1; /* PHY RX Status 1: Power 1 */
227 } __attribute__ ((__packed__)); 227 } __packed;
228 } __attribute__ ((__packed__)); 228 } __packed;
229 __le16 phy_status2; /* PHY RX Status 2 */ 229 __le16 phy_status2; /* PHY RX Status 2 */
230 __le16 phy_status3; /* PHY RX Status 3 */ 230 __le16 phy_status3; /* PHY RX Status 3 */
231 __le32 mac_status; /* MAC RX status */ 231 __le32 mac_status; /* MAC RX status */
232 __le16 mac_time; 232 __le16 mac_time;
233 __le16 channel; 233 __le16 channel;
234} __attribute__ ((__packed__)); 234} __packed;
235 235
236/* PHY RX Status 0 */ 236/* PHY RX Status 0 */
237#define B43_RX_PHYST0_GAINCTL 0x4000 /* Gain Control */ 237#define B43_RX_PHYST0_GAINCTL 0x4000 /* Gain Control */
diff --git a/drivers/net/wireless/b43legacy/b43legacy.h b/drivers/net/wireless/b43legacy/b43legacy.h
index 89fe2f972c72..c81b2f53b0c5 100644
--- a/drivers/net/wireless/b43legacy/b43legacy.h
+++ b/drivers/net/wireless/b43legacy/b43legacy.h
@@ -372,7 +372,7 @@ struct b43legacy_fw_header {
372 /* Size of the data. For ucode and PCM this is in bytes. 372 /* Size of the data. For ucode and PCM this is in bytes.
373 * For IV this is number-of-ivs. */ 373 * For IV this is number-of-ivs. */
374 __be32 size; 374 __be32 size;
375} __attribute__((__packed__)); 375} __packed;
376 376
377/* Initial Value file format */ 377/* Initial Value file format */
378#define B43legacy_IV_OFFSET_MASK 0x7FFF 378#define B43legacy_IV_OFFSET_MASK 0x7FFF
@@ -382,8 +382,8 @@ struct b43legacy_iv {
382 union { 382 union {
383 __be16 d16; 383 __be16 d16;
384 __be32 d32; 384 __be32 d32;
385 } data __attribute__((__packed__)); 385 } data __packed;
386} __attribute__((__packed__)); 386} __packed;
387 387
388#define B43legacy_PHYMODE(phytype) (1 << (phytype)) 388#define B43legacy_PHYMODE(phytype) (1 << (phytype))
389#define B43legacy_PHYMODE_B B43legacy_PHYMODE \ 389#define B43legacy_PHYMODE_B B43legacy_PHYMODE \
diff --git a/drivers/net/wireless/b43legacy/dma.h b/drivers/net/wireless/b43legacy/dma.h
index f9681041c2d8..f89c34226288 100644
--- a/drivers/net/wireless/b43legacy/dma.h
+++ b/drivers/net/wireless/b43legacy/dma.h
@@ -72,7 +72,7 @@
72struct b43legacy_dmadesc32 { 72struct b43legacy_dmadesc32 {
73 __le32 control; 73 __le32 control;
74 __le32 address; 74 __le32 address;
75} __attribute__((__packed__)); 75} __packed;
76#define B43legacy_DMA32_DCTL_BYTECNT 0x00001FFF 76#define B43legacy_DMA32_DCTL_BYTECNT 0x00001FFF
77#define B43legacy_DMA32_DCTL_ADDREXT_MASK 0x00030000 77#define B43legacy_DMA32_DCTL_ADDREXT_MASK 0x00030000
78#define B43legacy_DMA32_DCTL_ADDREXT_SHIFT 16 78#define B43legacy_DMA32_DCTL_ADDREXT_SHIFT 16
@@ -147,7 +147,7 @@ struct b43legacy_dmadesc64 {
147 __le32 control1; 147 __le32 control1;
148 __le32 address_low; 148 __le32 address_low;
149 __le32 address_high; 149 __le32 address_high;
150} __attribute__((__packed__)); 150} __packed;
151#define B43legacy_DMA64_DCTL0_DTABLEEND 0x10000000 151#define B43legacy_DMA64_DCTL0_DTABLEEND 0x10000000
152#define B43legacy_DMA64_DCTL0_IRQ 0x20000000 152#define B43legacy_DMA64_DCTL0_IRQ 0x20000000
153#define B43legacy_DMA64_DCTL0_FRAMEEND 0x40000000 153#define B43legacy_DMA64_DCTL0_FRAMEEND 0x40000000
@@ -162,8 +162,8 @@ struct b43legacy_dmadesc_generic {
162 union { 162 union {
163 struct b43legacy_dmadesc32 dma32; 163 struct b43legacy_dmadesc32 dma32;
164 struct b43legacy_dmadesc64 dma64; 164 struct b43legacy_dmadesc64 dma64;
165 } __attribute__((__packed__)); 165 } __packed;
166} __attribute__((__packed__)); 166} __packed;
167 167
168 168
169/* Misc DMA constants */ 169/* Misc DMA constants */
diff --git a/drivers/net/wireless/b43legacy/xmit.h b/drivers/net/wireless/b43legacy/xmit.h
index 91633087a20b..289db00a4a7b 100644
--- a/drivers/net/wireless/b43legacy/xmit.h
+++ b/drivers/net/wireless/b43legacy/xmit.h
@@ -9,8 +9,8 @@
9 union { \ 9 union { \
10 __le32 data; \ 10 __le32 data; \
11 __u8 raw[size]; \ 11 __u8 raw[size]; \
12 } __attribute__((__packed__)); \ 12 } __packed; \
13 } __attribute__((__packed__)) 13 } __packed
14 14
15/* struct b43legacy_plcp_hdr4 */ 15/* struct b43legacy_plcp_hdr4 */
16_b43legacy_declare_plcp_hdr(4); 16_b43legacy_declare_plcp_hdr(4);
@@ -39,7 +39,7 @@ struct b43legacy_txhdr_fw3 {
39 struct b43legacy_plcp_hdr6 rts_plcp; /* RTS PLCP */ 39 struct b43legacy_plcp_hdr6 rts_plcp; /* RTS PLCP */
40 __u8 rts_frame[18]; /* The RTS frame (if used) */ 40 __u8 rts_frame[18]; /* The RTS frame (if used) */
41 struct b43legacy_plcp_hdr6 plcp; 41 struct b43legacy_plcp_hdr6 plcp;
42} __attribute__((__packed__)); 42} __packed;
43 43
44/* MAC TX control */ 44/* MAC TX control */
45#define B43legacy_TX4_MAC_KEYIDX 0x0FF00000 /* Security key index */ 45#define B43legacy_TX4_MAC_KEYIDX 0x0FF00000 /* Security key index */
@@ -123,7 +123,7 @@ struct b43legacy_hwtxstatus {
123 __le16 seq; 123 __le16 seq;
124 u8 phy_stat; 124 u8 phy_stat;
125 PAD_BYTES(1); 125 PAD_BYTES(1);
126} __attribute__((__packed__)); 126} __packed;
127 127
128 128
129/* Receive header for v3 firmware. */ 129/* Receive header for v3 firmware. */
@@ -138,7 +138,7 @@ struct b43legacy_rxhdr_fw3 {
138 __le16 mac_status; /* MAC RX status */ 138 __le16 mac_status; /* MAC RX status */
139 __le16 mac_time; 139 __le16 mac_time;
140 __le16 channel; 140 __le16 channel;
141} __attribute__((__packed__)); 141} __packed;
142 142
143 143
144/* PHY RX Status 0 */ 144/* PHY RX Status 0 */
diff --git a/drivers/net/wireless/hostap/hostap_80211.h b/drivers/net/wireless/hostap/hostap_80211.h
index 7f9d8d976aa8..ed98ce7c8f65 100644
--- a/drivers/net/wireless/hostap/hostap_80211.h
+++ b/drivers/net/wireless/hostap/hostap_80211.h
@@ -19,35 +19,35 @@ struct hostap_ieee80211_mgmt {
19 __le16 status_code; 19 __le16 status_code;
20 /* possibly followed by Challenge text */ 20 /* possibly followed by Challenge text */
21 u8 variable[0]; 21 u8 variable[0];
22 } __attribute__ ((packed)) auth; 22 } __packed auth;
23 struct { 23 struct {
24 __le16 reason_code; 24 __le16 reason_code;
25 } __attribute__ ((packed)) deauth; 25 } __packed deauth;
26 struct { 26 struct {
27 __le16 capab_info; 27 __le16 capab_info;
28 __le16 listen_interval; 28 __le16 listen_interval;
29 /* followed by SSID and Supported rates */ 29 /* followed by SSID and Supported rates */
30 u8 variable[0]; 30 u8 variable[0];
31 } __attribute__ ((packed)) assoc_req; 31 } __packed assoc_req;
32 struct { 32 struct {
33 __le16 capab_info; 33 __le16 capab_info;
34 __le16 status_code; 34 __le16 status_code;
35 __le16 aid; 35 __le16 aid;
36 /* followed by Supported rates */ 36 /* followed by Supported rates */
37 u8 variable[0]; 37 u8 variable[0];
38 } __attribute__ ((packed)) assoc_resp, reassoc_resp; 38 } __packed assoc_resp, reassoc_resp;
39 struct { 39 struct {
40 __le16 capab_info; 40 __le16 capab_info;
41 __le16 listen_interval; 41 __le16 listen_interval;
42 u8 current_ap[6]; 42 u8 current_ap[6];
43 /* followed by SSID and Supported rates */ 43 /* followed by SSID and Supported rates */
44 u8 variable[0]; 44 u8 variable[0];
45 } __attribute__ ((packed)) reassoc_req; 45 } __packed reassoc_req;
46 struct { 46 struct {
47 __le16 reason_code; 47 __le16 reason_code;
48 } __attribute__ ((packed)) disassoc; 48 } __packed disassoc;
49 struct { 49 struct {
50 } __attribute__ ((packed)) probe_req; 50 } __packed probe_req;
51 struct { 51 struct {
52 u8 timestamp[8]; 52 u8 timestamp[8];
53 __le16 beacon_int; 53 __le16 beacon_int;
@@ -55,9 +55,9 @@ struct hostap_ieee80211_mgmt {
55 /* followed by some of SSID, Supported rates, 55 /* followed by some of SSID, Supported rates,
56 * FH Params, DS Params, CF Params, IBSS Params, TIM */ 56 * FH Params, DS Params, CF Params, IBSS Params, TIM */
57 u8 variable[0]; 57 u8 variable[0];
58 } __attribute__ ((packed)) beacon, probe_resp; 58 } __packed beacon, probe_resp;
59 } u; 59 } u;
60} __attribute__ ((packed)); 60} __packed;
61 61
62 62
63#define IEEE80211_MGMT_HDR_LEN 24 63#define IEEE80211_MGMT_HDR_LEN 24
diff --git a/drivers/net/wireless/hostap/hostap_common.h b/drivers/net/wireless/hostap/hostap_common.h
index 90b64b092007..4230102ac9e4 100644
--- a/drivers/net/wireless/hostap/hostap_common.h
+++ b/drivers/net/wireless/hostap/hostap_common.h
@@ -179,7 +179,7 @@ struct hfa384x_comp_ident
179 __le16 variant; 179 __le16 variant;
180 __le16 major; 180 __le16 major;
181 __le16 minor; 181 __le16 minor;
182} __attribute__ ((packed)); 182} __packed;
183 183
184#define HFA384X_COMP_ID_PRI 0x15 184#define HFA384X_COMP_ID_PRI 0x15
185#define HFA384X_COMP_ID_STA 0x1f 185#define HFA384X_COMP_ID_STA 0x1f
@@ -192,14 +192,14 @@ struct hfa384x_sup_range
192 __le16 variant; 192 __le16 variant;
193 __le16 bottom; 193 __le16 bottom;
194 __le16 top; 194 __le16 top;
195} __attribute__ ((packed)); 195} __packed;
196 196
197 197
198struct hfa384x_build_id 198struct hfa384x_build_id
199{ 199{
200 __le16 pri_seq; 200 __le16 pri_seq;
201 __le16 sec_seq; 201 __le16 sec_seq;
202} __attribute__ ((packed)); 202} __packed;
203 203
204/* FD01 - Download Buffer */ 204/* FD01 - Download Buffer */
205struct hfa384x_rid_download_buffer 205struct hfa384x_rid_download_buffer
@@ -207,14 +207,14 @@ struct hfa384x_rid_download_buffer
207 __le16 page; 207 __le16 page;
208 __le16 offset; 208 __le16 offset;
209 __le16 length; 209 __le16 length;
210} __attribute__ ((packed)); 210} __packed;
211 211
212/* BSS connection quality (RID FD43 range, RID FD51 dBm-normalized) */ 212/* BSS connection quality (RID FD43 range, RID FD51 dBm-normalized) */
213struct hfa384x_comms_quality { 213struct hfa384x_comms_quality {
214 __le16 comm_qual; /* 0 .. 92 */ 214 __le16 comm_qual; /* 0 .. 92 */
215 __le16 signal_level; /* 27 .. 154 */ 215 __le16 signal_level; /* 27 .. 154 */
216 __le16 noise_level; /* 27 .. 154 */ 216 __le16 noise_level; /* 27 .. 154 */
217} __attribute__ ((packed)); 217} __packed;
218 218
219 219
220/* netdevice private ioctls (used, e.g., with iwpriv from user space) */ 220/* netdevice private ioctls (used, e.g., with iwpriv from user space) */
diff --git a/drivers/net/wireless/hostap/hostap_wlan.h b/drivers/net/wireless/hostap/hostap_wlan.h
index 3d238917af07..c02f8667a7e0 100644
--- a/drivers/net/wireless/hostap/hostap_wlan.h
+++ b/drivers/net/wireless/hostap/hostap_wlan.h
@@ -31,14 +31,14 @@ struct linux_wlan_ng_val {
31 u32 did; 31 u32 did;
32 u16 status, len; 32 u16 status, len;
33 u32 data; 33 u32 data;
34} __attribute__ ((packed)); 34} __packed;
35 35
36struct linux_wlan_ng_prism_hdr { 36struct linux_wlan_ng_prism_hdr {
37 u32 msgcode, msglen; 37 u32 msgcode, msglen;
38 char devname[16]; 38 char devname[16];
39 struct linux_wlan_ng_val hosttime, mactime, channel, rssi, sq, signal, 39 struct linux_wlan_ng_val hosttime, mactime, channel, rssi, sq, signal,
40 noise, rate, istx, frmlen; 40 noise, rate, istx, frmlen;
41} __attribute__ ((packed)); 41} __packed;
42 42
43struct linux_wlan_ng_cap_hdr { 43struct linux_wlan_ng_cap_hdr {
44 __be32 version; 44 __be32 version;
@@ -55,7 +55,7 @@ struct linux_wlan_ng_cap_hdr {
55 __be32 ssi_noise; 55 __be32 ssi_noise;
56 __be32 preamble; 56 __be32 preamble;
57 __be32 encoding; 57 __be32 encoding;
58} __attribute__ ((packed)); 58} __packed;
59 59
60struct hostap_radiotap_rx { 60struct hostap_radiotap_rx {
61 struct ieee80211_radiotap_header hdr; 61 struct ieee80211_radiotap_header hdr;
@@ -66,7 +66,7 @@ struct hostap_radiotap_rx {
66 __le16 chan_flags; 66 __le16 chan_flags;
67 s8 dbm_antsignal; 67 s8 dbm_antsignal;
68 s8 dbm_antnoise; 68 s8 dbm_antnoise;
69} __attribute__ ((packed)); 69} __packed;
70 70
71#define LWNG_CAP_DID_BASE (4 | (1 << 6)) /* section 4, group 1 */ 71#define LWNG_CAP_DID_BASE (4 | (1 << 6)) /* section 4, group 1 */
72#define LWNG_CAPHDR_VERSION 0x80211001 72#define LWNG_CAPHDR_VERSION 0x80211001
@@ -97,7 +97,7 @@ struct hfa384x_rx_frame {
97 __be16 len; 97 __be16 len;
98 98
99 /* followed by frame data; max 2304 bytes */ 99 /* followed by frame data; max 2304 bytes */
100} __attribute__ ((packed)); 100} __packed;
101 101
102 102
103struct hfa384x_tx_frame { 103struct hfa384x_tx_frame {
@@ -126,14 +126,14 @@ struct hfa384x_tx_frame {
126 __be16 len; 126 __be16 len;
127 127
128 /* followed by frame data; max 2304 bytes */ 128 /* followed by frame data; max 2304 bytes */
129} __attribute__ ((packed)); 129} __packed;
130 130
131 131
132struct hfa384x_rid_hdr 132struct hfa384x_rid_hdr
133{ 133{
134 __le16 len; 134 __le16 len;
135 __le16 rid; 135 __le16 rid;
136} __attribute__ ((packed)); 136} __packed;
137 137
138 138
139/* Macro for converting signal levels (range 27 .. 154) to wireless ext 139/* Macro for converting signal levels (range 27 .. 154) to wireless ext
@@ -145,24 +145,24 @@ struct hfa384x_rid_hdr
145struct hfa384x_scan_request { 145struct hfa384x_scan_request {
146 __le16 channel_list; 146 __le16 channel_list;
147 __le16 txrate; /* HFA384X_RATES_* */ 147 __le16 txrate; /* HFA384X_RATES_* */
148} __attribute__ ((packed)); 148} __packed;
149 149
150struct hfa384x_hostscan_request { 150struct hfa384x_hostscan_request {
151 __le16 channel_list; 151 __le16 channel_list;
152 __le16 txrate; 152 __le16 txrate;
153 __le16 target_ssid_len; 153 __le16 target_ssid_len;
154 u8 target_ssid[32]; 154 u8 target_ssid[32];
155} __attribute__ ((packed)); 155} __packed;
156 156
157struct hfa384x_join_request { 157struct hfa384x_join_request {
158 u8 bssid[6]; 158 u8 bssid[6];
159 __le16 channel; 159 __le16 channel;
160} __attribute__ ((packed)); 160} __packed;
161 161
162struct hfa384x_info_frame { 162struct hfa384x_info_frame {
163 __le16 len; 163 __le16 len;
164 __le16 type; 164 __le16 type;
165} __attribute__ ((packed)); 165} __packed;
166 166
167struct hfa384x_comm_tallies { 167struct hfa384x_comm_tallies {
168 __le16 tx_unicast_frames; 168 __le16 tx_unicast_frames;
@@ -186,7 +186,7 @@ struct hfa384x_comm_tallies {
186 __le16 rx_discards_wep_undecryptable; 186 __le16 rx_discards_wep_undecryptable;
187 __le16 rx_message_in_msg_fragments; 187 __le16 rx_message_in_msg_fragments;
188 __le16 rx_message_in_bad_msg_fragments; 188 __le16 rx_message_in_bad_msg_fragments;
189} __attribute__ ((packed)); 189} __packed;
190 190
191struct hfa384x_comm_tallies32 { 191struct hfa384x_comm_tallies32 {
192 __le32 tx_unicast_frames; 192 __le32 tx_unicast_frames;
@@ -210,7 +210,7 @@ struct hfa384x_comm_tallies32 {
210 __le32 rx_discards_wep_undecryptable; 210 __le32 rx_discards_wep_undecryptable;
211 __le32 rx_message_in_msg_fragments; 211 __le32 rx_message_in_msg_fragments;
212 __le32 rx_message_in_bad_msg_fragments; 212 __le32 rx_message_in_bad_msg_fragments;
213} __attribute__ ((packed)); 213} __packed;
214 214
215struct hfa384x_scan_result_hdr { 215struct hfa384x_scan_result_hdr {
216 __le16 reserved; 216 __le16 reserved;
@@ -219,7 +219,7 @@ struct hfa384x_scan_result_hdr {
219#define HFA384X_SCAN_HOST_INITIATED 1 219#define HFA384X_SCAN_HOST_INITIATED 1
220#define HFA384X_SCAN_FIRMWARE_INITIATED 2 220#define HFA384X_SCAN_FIRMWARE_INITIATED 2
221#define HFA384X_SCAN_INQUIRY_FROM_HOST 3 221#define HFA384X_SCAN_INQUIRY_FROM_HOST 3
222} __attribute__ ((packed)); 222} __packed;
223 223
224#define HFA384X_SCAN_MAX_RESULTS 32 224#define HFA384X_SCAN_MAX_RESULTS 32
225 225
@@ -234,7 +234,7 @@ struct hfa384x_scan_result {
234 u8 ssid[32]; 234 u8 ssid[32];
235 u8 sup_rates[10]; 235 u8 sup_rates[10];
236 __le16 rate; 236 __le16 rate;
237} __attribute__ ((packed)); 237} __packed;
238 238
239struct hfa384x_hostscan_result { 239struct hfa384x_hostscan_result {
240 __le16 chid; 240 __le16 chid;
@@ -248,7 +248,7 @@ struct hfa384x_hostscan_result {
248 u8 sup_rates[10]; 248 u8 sup_rates[10];
249 __le16 rate; 249 __le16 rate;
250 __le16 atim; 250 __le16 atim;
251} __attribute__ ((packed)); 251} __packed;
252 252
253struct comm_tallies_sums { 253struct comm_tallies_sums {
254 unsigned int tx_unicast_frames; 254 unsigned int tx_unicast_frames;
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
index 0bd4dfa59a8a..4264fc091ada 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.c
+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
@@ -5233,7 +5233,7 @@ struct security_info_params {
5233 u8 auth_mode; 5233 u8 auth_mode;
5234 u8 replay_counters_number; 5234 u8 replay_counters_number;
5235 u8 unicast_using_group; 5235 u8 unicast_using_group;
5236} __attribute__ ((packed)); 5236} __packed;
5237 5237
5238static int ipw2100_set_security_information(struct ipw2100_priv *priv, 5238static int ipw2100_set_security_information(struct ipw2100_priv *priv,
5239 int auth_mode, 5239 int auth_mode,
@@ -8475,7 +8475,7 @@ struct ipw2100_fw_header {
8475 short mode; 8475 short mode;
8476 unsigned int fw_size; 8476 unsigned int fw_size;
8477 unsigned int uc_size; 8477 unsigned int uc_size;
8478} __attribute__ ((packed)); 8478} __packed;
8479 8479
8480static int ipw2100_mod_firmware_load(struct ipw2100_fw *fw) 8480static int ipw2100_mod_firmware_load(struct ipw2100_fw *fw)
8481{ 8481{
diff --git a/drivers/net/wireless/ipw2x00/ipw2100.h b/drivers/net/wireless/ipw2x00/ipw2100.h
index 1eab0d698f4d..838002b4881e 100644
--- a/drivers/net/wireless/ipw2x00/ipw2100.h
+++ b/drivers/net/wireless/ipw2x00/ipw2100.h
@@ -164,7 +164,7 @@ struct bd_status {
164 } fields; 164 } fields;
165 u8 field; 165 u8 field;
166 } info; 166 } info;
167} __attribute__ ((packed)); 167} __packed;
168 168
169struct ipw2100_bd { 169struct ipw2100_bd {
170 u32 host_addr; 170 u32 host_addr;
@@ -174,7 +174,7 @@ struct ipw2100_bd {
174 * 1st TBD) */ 174 * 1st TBD) */
175 u8 num_fragments; 175 u8 num_fragments;
176 u8 reserved[6]; 176 u8 reserved[6];
177} __attribute__ ((packed)); 177} __packed;
178 178
179#define IPW_BD_QUEUE_LENGTH(n) (1<<n) 179#define IPW_BD_QUEUE_LENGTH(n) (1<<n)
180#define IPW_BD_ALIGNMENT(L) (L*sizeof(struct ipw2100_bd)) 180#define IPW_BD_ALIGNMENT(L) (L*sizeof(struct ipw2100_bd))
@@ -232,7 +232,7 @@ struct ipw2100_status {
232#define IPW_STATUS_FLAG_WEP_ENCRYPTED (1<<1) 232#define IPW_STATUS_FLAG_WEP_ENCRYPTED (1<<1)
233#define IPW_STATUS_FLAG_CRC_ERROR (1<<2) 233#define IPW_STATUS_FLAG_CRC_ERROR (1<<2)
234 u8 rssi; 234 u8 rssi;
235} __attribute__ ((packed)); 235} __packed;
236 236
237struct ipw2100_status_queue { 237struct ipw2100_status_queue {
238 /* driver (virtual) pointer to queue */ 238 /* driver (virtual) pointer to queue */
@@ -293,7 +293,7 @@ struct ipw2100_cmd_header {
293 u32 reserved1[3]; 293 u32 reserved1[3];
294 u32 *ordinal1_ptr; 294 u32 *ordinal1_ptr;
295 u32 *ordinal2_ptr; 295 u32 *ordinal2_ptr;
296} __attribute__ ((packed)); 296} __packed;
297 297
298struct ipw2100_data_header { 298struct ipw2100_data_header {
299 u32 host_command_reg; 299 u32 host_command_reg;
@@ -307,7 +307,7 @@ struct ipw2100_data_header {
307 u8 src_addr[ETH_ALEN]; 307 u8 src_addr[ETH_ALEN];
308 u8 dst_addr[ETH_ALEN]; 308 u8 dst_addr[ETH_ALEN];
309 u16 fragment_size; 309 u16 fragment_size;
310} __attribute__ ((packed)); 310} __packed;
311 311
312/* Host command data structure */ 312/* Host command data structure */
313struct host_command { 313struct host_command {
@@ -316,7 +316,7 @@ struct host_command {
316 u32 host_command_sequence; // UNIQUE COMMAND NUMBER (ID) 316 u32 host_command_sequence; // UNIQUE COMMAND NUMBER (ID)
317 u32 host_command_length; // LENGTH 317 u32 host_command_length; // LENGTH
318 u32 host_command_parameters[HOST_COMMAND_PARAMS_REG_LEN]; // COMMAND PARAMETERS 318 u32 host_command_parameters[HOST_COMMAND_PARAMS_REG_LEN]; // COMMAND PARAMETERS
319} __attribute__ ((packed)); 319} __packed;
320 320
321typedef enum { 321typedef enum {
322 POWER_ON_RESET, 322 POWER_ON_RESET,
@@ -382,7 +382,7 @@ struct ipw2100_notification {
382 u32 hnhdr_size; /* size in bytes of data 382 u32 hnhdr_size; /* size in bytes of data
383 or number of entries, if table. 383 or number of entries, if table.
384 Does NOT include header */ 384 Does NOT include header */
385} __attribute__ ((packed)); 385} __packed;
386 386
387#define MAX_KEY_SIZE 16 387#define MAX_KEY_SIZE 16
388#define MAX_KEYS 8 388#define MAX_KEYS 8
@@ -814,7 +814,7 @@ struct ipw2100_rx {
814 struct ipw2100_notification notification; 814 struct ipw2100_notification notification;
815 struct ipw2100_cmd_header command; 815 struct ipw2100_cmd_header command;
816 } rx_data; 816 } rx_data;
817} __attribute__ ((packed)); 817} __packed;
818 818
819/* Bit 0-7 are for 802.11b tx rates - . Bit 5-7 are reserved */ 819/* Bit 0-7 are for 802.11b tx rates - . Bit 5-7 are reserved */
820#define TX_RATE_1_MBIT 0x0001 820#define TX_RATE_1_MBIT 0x0001
diff --git a/drivers/net/wireless/ipw2x00/ipw2200.h b/drivers/net/wireless/ipw2x00/ipw2200.h
index bf0eeb2e873a..d7d049c7a4fa 100644
--- a/drivers/net/wireless/ipw2x00/ipw2200.h
+++ b/drivers/net/wireless/ipw2x00/ipw2200.h
@@ -388,7 +388,7 @@ struct clx2_queue {
388 dma_addr_t dma_addr; /**< physical addr for BD's */ 388 dma_addr_t dma_addr; /**< physical addr for BD's */
389 int low_mark; /**< low watermark, resume queue if free space more than this */ 389 int low_mark; /**< low watermark, resume queue if free space more than this */
390 int high_mark; /**< high watermark, stop queue if free space less than this */ 390 int high_mark; /**< high watermark, stop queue if free space less than this */
391} __attribute__ ((packed)); /* XXX */ 391} __packed; /* XXX */
392 392
393struct machdr32 { 393struct machdr32 {
394 __le16 frame_ctl; 394 __le16 frame_ctl;
@@ -399,7 +399,7 @@ struct machdr32 {
399 __le16 seq_ctrl; // more endians! 399 __le16 seq_ctrl; // more endians!
400 u8 addr4[MACADRR_BYTE_LEN]; 400 u8 addr4[MACADRR_BYTE_LEN];
401 __le16 qos_ctrl; 401 __le16 qos_ctrl;
402} __attribute__ ((packed)); 402} __packed;
403 403
404struct machdr30 { 404struct machdr30 {
405 __le16 frame_ctl; 405 __le16 frame_ctl;
@@ -409,7 +409,7 @@ struct machdr30 {
409 u8 addr3[MACADRR_BYTE_LEN]; 409 u8 addr3[MACADRR_BYTE_LEN];
410 __le16 seq_ctrl; // more endians! 410 __le16 seq_ctrl; // more endians!
411 u8 addr4[MACADRR_BYTE_LEN]; 411 u8 addr4[MACADRR_BYTE_LEN];
412} __attribute__ ((packed)); 412} __packed;
413 413
414struct machdr26 { 414struct machdr26 {
415 __le16 frame_ctl; 415 __le16 frame_ctl;
@@ -419,7 +419,7 @@ struct machdr26 {
419 u8 addr3[MACADRR_BYTE_LEN]; 419 u8 addr3[MACADRR_BYTE_LEN];
420 __le16 seq_ctrl; // more endians! 420 __le16 seq_ctrl; // more endians!
421 __le16 qos_ctrl; 421 __le16 qos_ctrl;
422} __attribute__ ((packed)); 422} __packed;
423 423
424struct machdr24 { 424struct machdr24 {
425 __le16 frame_ctl; 425 __le16 frame_ctl;
@@ -428,20 +428,20 @@ struct machdr24 {
428 u8 addr2[MACADRR_BYTE_LEN]; 428 u8 addr2[MACADRR_BYTE_LEN];
429 u8 addr3[MACADRR_BYTE_LEN]; 429 u8 addr3[MACADRR_BYTE_LEN];
430 __le16 seq_ctrl; // more endians! 430 __le16 seq_ctrl; // more endians!
431} __attribute__ ((packed)); 431} __packed;
432 432
433// TX TFD with 32 byte MAC Header 433// TX TFD with 32 byte MAC Header
434struct tx_tfd_32 { 434struct tx_tfd_32 {
435 struct machdr32 mchdr; // 32 435 struct machdr32 mchdr; // 32
436 __le32 uivplaceholder[2]; // 8 436 __le32 uivplaceholder[2]; // 8
437} __attribute__ ((packed)); 437} __packed;
438 438
439// TX TFD with 30 byte MAC Header 439// TX TFD with 30 byte MAC Header
440struct tx_tfd_30 { 440struct tx_tfd_30 {
441 struct machdr30 mchdr; // 30 441 struct machdr30 mchdr; // 30
442 u8 reserved[2]; // 2 442 u8 reserved[2]; // 2
443 __le32 uivplaceholder[2]; // 8 443 __le32 uivplaceholder[2]; // 8
444} __attribute__ ((packed)); 444} __packed;
445 445
446// tx tfd with 26 byte mac header 446// tx tfd with 26 byte mac header
447struct tx_tfd_26 { 447struct tx_tfd_26 {
@@ -449,14 +449,14 @@ struct tx_tfd_26 {
449 u8 reserved1[2]; // 2 449 u8 reserved1[2]; // 2
450 __le32 uivplaceholder[2]; // 8 450 __le32 uivplaceholder[2]; // 8
451 u8 reserved2[4]; // 4 451 u8 reserved2[4]; // 4
452} __attribute__ ((packed)); 452} __packed;
453 453
454// tx tfd with 24 byte mac header 454// tx tfd with 24 byte mac header
455struct tx_tfd_24 { 455struct tx_tfd_24 {
456 struct machdr24 mchdr; // 24 456 struct machdr24 mchdr; // 24
457 __le32 uivplaceholder[2]; // 8 457 __le32 uivplaceholder[2]; // 8
458 u8 reserved[8]; // 8 458 u8 reserved[8]; // 8
459} __attribute__ ((packed)); 459} __packed;
460 460
461#define DCT_WEP_KEY_FIELD_LENGTH 16 461#define DCT_WEP_KEY_FIELD_LENGTH 16
462 462
@@ -465,7 +465,7 @@ struct tfd_command {
465 u8 length; 465 u8 length;
466 __le16 reserved; 466 __le16 reserved;
467 u8 payload[0]; 467 u8 payload[0];
468} __attribute__ ((packed)); 468} __packed;
469 469
470struct tfd_data { 470struct tfd_data {
471 /* Header */ 471 /* Header */
@@ -504,14 +504,14 @@ struct tfd_data {
504 __le32 num_chunks; 504 __le32 num_chunks;
505 __le32 chunk_ptr[NUM_TFD_CHUNKS]; 505 __le32 chunk_ptr[NUM_TFD_CHUNKS];
506 __le16 chunk_len[NUM_TFD_CHUNKS]; 506 __le16 chunk_len[NUM_TFD_CHUNKS];
507} __attribute__ ((packed)); 507} __packed;
508 508
509struct txrx_control_flags { 509struct txrx_control_flags {
510 u8 message_type; 510 u8 message_type;
511 u8 rx_seq_num; 511 u8 rx_seq_num;
512 u8 control_bits; 512 u8 control_bits;
513 u8 reserved; 513 u8 reserved;
514} __attribute__ ((packed)); 514} __packed;
515 515
516#define TFD_SIZE 128 516#define TFD_SIZE 128
517#define TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH (TFD_SIZE - sizeof(struct txrx_control_flags)) 517#define TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH (TFD_SIZE - sizeof(struct txrx_control_flags))
@@ -523,7 +523,7 @@ struct tfd_frame {
523 struct tfd_command cmd; 523 struct tfd_command cmd;
524 u8 raw[TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH]; 524 u8 raw[TFD_CMD_IMMEDIATE_PAYLOAD_LENGTH];
525 } u; 525 } u;
526} __attribute__ ((packed)); 526} __packed;
527 527
528typedef void destructor_func(const void *); 528typedef void destructor_func(const void *);
529 529
@@ -559,7 +559,7 @@ struct rate_histogram {
559 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS]; 559 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];
560 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS]; 560 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];
561 } failed; 561 } failed;
562} __attribute__ ((packed)); 562} __packed;
563 563
564/* statistics command response */ 564/* statistics command response */
565struct ipw_cmd_stats { 565struct ipw_cmd_stats {
@@ -586,13 +586,13 @@ struct ipw_cmd_stats {
586 __le16 rx_autodetec_no_ofdm; 586 __le16 rx_autodetec_no_ofdm;
587 __le16 rx_autodetec_no_barker; 587 __le16 rx_autodetec_no_barker;
588 __le16 reserved; 588 __le16 reserved;
589} __attribute__ ((packed)); 589} __packed;
590 590
591struct notif_channel_result { 591struct notif_channel_result {
592 u8 channel_num; 592 u8 channel_num;
593 struct ipw_cmd_stats stats; 593 struct ipw_cmd_stats stats;
594 u8 uReserved; 594 u8 uReserved;
595} __attribute__ ((packed)); 595} __packed;
596 596
597#define SCAN_COMPLETED_STATUS_COMPLETE 1 597#define SCAN_COMPLETED_STATUS_COMPLETE 1
598#define SCAN_COMPLETED_STATUS_ABORTED 2 598#define SCAN_COMPLETED_STATUS_ABORTED 2
@@ -602,24 +602,24 @@ struct notif_scan_complete {
602 u8 num_channels; 602 u8 num_channels;
603 u8 status; 603 u8 status;
604 u8 reserved; 604 u8 reserved;
605} __attribute__ ((packed)); 605} __packed;
606 606
607struct notif_frag_length { 607struct notif_frag_length {
608 __le16 frag_length; 608 __le16 frag_length;
609 __le16 reserved; 609 __le16 reserved;
610} __attribute__ ((packed)); 610} __packed;
611 611
612struct notif_beacon_state { 612struct notif_beacon_state {
613 __le32 state; 613 __le32 state;
614 __le32 number; 614 __le32 number;
615} __attribute__ ((packed)); 615} __packed;
616 616
617struct notif_tgi_tx_key { 617struct notif_tgi_tx_key {
618 u8 key_state; 618 u8 key_state;
619 u8 security_type; 619 u8 security_type;
620 u8 station_index; 620 u8 station_index;
621 u8 reserved; 621 u8 reserved;
622} __attribute__ ((packed)); 622} __packed;
623 623
624#define SILENCE_OVER_THRESH (1) 624#define SILENCE_OVER_THRESH (1)
625#define SILENCE_UNDER_THRESH (2) 625#define SILENCE_UNDER_THRESH (2)
@@ -631,25 +631,25 @@ struct notif_link_deterioration {
631 struct rate_histogram histogram; 631 struct rate_histogram histogram;
632 u8 silence_notification_type; /* SILENCE_OVER/UNDER_THRESH */ 632 u8 silence_notification_type; /* SILENCE_OVER/UNDER_THRESH */
633 __le16 silence_count; 633 __le16 silence_count;
634} __attribute__ ((packed)); 634} __packed;
635 635
636struct notif_association { 636struct notif_association {
637 u8 state; 637 u8 state;
638} __attribute__ ((packed)); 638} __packed;
639 639
640struct notif_authenticate { 640struct notif_authenticate {
641 u8 state; 641 u8 state;
642 struct machdr24 addr; 642 struct machdr24 addr;
643 __le16 status; 643 __le16 status;
644} __attribute__ ((packed)); 644} __packed;
645 645
646struct notif_calibration { 646struct notif_calibration {
647 u8 data[104]; 647 u8 data[104];
648} __attribute__ ((packed)); 648} __packed;
649 649
650struct notif_noise { 650struct notif_noise {
651 __le32 value; 651 __le32 value;
652} __attribute__ ((packed)); 652} __packed;
653 653
654struct ipw_rx_notification { 654struct ipw_rx_notification {
655 u8 reserved[8]; 655 u8 reserved[8];
@@ -669,7 +669,7 @@ struct ipw_rx_notification {
669 struct notif_noise noise; 669 struct notif_noise noise;
670 u8 raw[0]; 670 u8 raw[0];
671 } u; 671 } u;
672} __attribute__ ((packed)); 672} __packed;
673 673
674struct ipw_rx_frame { 674struct ipw_rx_frame {
675 __le32 reserved1; 675 __le32 reserved1;
@@ -692,14 +692,14 @@ struct ipw_rx_frame {
692 u8 rtscts_seen; // 0x1 RTS seen ; 0x2 CTS seen 692 u8 rtscts_seen; // 0x1 RTS seen ; 0x2 CTS seen
693 __le16 length; 693 __le16 length;
694 u8 data[0]; 694 u8 data[0];
695} __attribute__ ((packed)); 695} __packed;
696 696
697struct ipw_rx_header { 697struct ipw_rx_header {
698 u8 message_type; 698 u8 message_type;
699 u8 rx_seq_num; 699 u8 rx_seq_num;
700 u8 control_bits; 700 u8 control_bits;
701 u8 reserved; 701 u8 reserved;
702} __attribute__ ((packed)); 702} __packed;
703 703
704struct ipw_rx_packet { 704struct ipw_rx_packet {
705 struct ipw_rx_header header; 705 struct ipw_rx_header header;
@@ -707,7 +707,7 @@ struct ipw_rx_packet {
707 struct ipw_rx_frame frame; 707 struct ipw_rx_frame frame;
708 struct ipw_rx_notification notification; 708 struct ipw_rx_notification notification;
709 } u; 709 } u;
710} __attribute__ ((packed)); 710} __packed;
711 711
712#define IPW_RX_NOTIFICATION_SIZE sizeof(struct ipw_rx_header) + 12 712#define IPW_RX_NOTIFICATION_SIZE sizeof(struct ipw_rx_header) + 12
713#define IPW_RX_FRAME_SIZE (unsigned int)(sizeof(struct ipw_rx_header) + \ 713#define IPW_RX_FRAME_SIZE (unsigned int)(sizeof(struct ipw_rx_header) + \
@@ -717,7 +717,7 @@ struct ipw_rx_mem_buffer {
717 dma_addr_t dma_addr; 717 dma_addr_t dma_addr;
718 struct sk_buff *skb; 718 struct sk_buff *skb;
719 struct list_head list; 719 struct list_head list;
720}; /* Not transferred over network, so not __attribute__ ((packed)) */ 720}; /* Not transferred over network, so not __packed */
721 721
722struct ipw_rx_queue { 722struct ipw_rx_queue {
723 struct ipw_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS]; 723 struct ipw_rx_mem_buffer pool[RX_QUEUE_SIZE + RX_FREE_BUFFERS];
@@ -730,7 +730,7 @@ struct ipw_rx_queue {
730 struct list_head rx_free; /* Own an SKBs */ 730 struct list_head rx_free; /* Own an SKBs */
731 struct list_head rx_used; /* No SKB allocated */ 731 struct list_head rx_used; /* No SKB allocated */
732 spinlock_t lock; 732 spinlock_t lock;
733}; /* Not transferred over network, so not __attribute__ ((packed)) */ 733}; /* Not transferred over network, so not __packed */
734 734
735struct alive_command_responce { 735struct alive_command_responce {
736 u8 alive_command; 736 u8 alive_command;
@@ -745,21 +745,21 @@ struct alive_command_responce {
745 __le16 reserved4; 745 __le16 reserved4;
746 u8 time_stamp[5]; /* month, day, year, hours, minutes */ 746 u8 time_stamp[5]; /* month, day, year, hours, minutes */
747 u8 ucode_valid; 747 u8 ucode_valid;
748} __attribute__ ((packed)); 748} __packed;
749 749
750#define IPW_MAX_RATES 12 750#define IPW_MAX_RATES 12
751 751
752struct ipw_rates { 752struct ipw_rates {
753 u8 num_rates; 753 u8 num_rates;
754 u8 rates[IPW_MAX_RATES]; 754 u8 rates[IPW_MAX_RATES];
755} __attribute__ ((packed)); 755} __packed;
756 756
757struct command_block { 757struct command_block {
758 unsigned int control; 758 unsigned int control;
759 u32 source_addr; 759 u32 source_addr;
760 u32 dest_addr; 760 u32 dest_addr;
761 unsigned int status; 761 unsigned int status;
762} __attribute__ ((packed)); 762} __packed;
763 763
764#define CB_NUMBER_OF_ELEMENTS_SMALL 64 764#define CB_NUMBER_OF_ELEMENTS_SMALL 64
765struct fw_image_desc { 765struct fw_image_desc {
@@ -792,7 +792,7 @@ struct ipw_sys_config {
792 u8 accept_all_mgmt_frames; 792 u8 accept_all_mgmt_frames;
793 u8 pass_noise_stats_to_host; 793 u8 pass_noise_stats_to_host;
794 u8 reserved3; 794 u8 reserved3;
795} __attribute__ ((packed)); 795} __packed;
796 796
797struct ipw_multicast_addr { 797struct ipw_multicast_addr {
798 u8 num_of_multicast_addresses; 798 u8 num_of_multicast_addresses;
@@ -801,7 +801,7 @@ struct ipw_multicast_addr {
801 u8 mac2[6]; 801 u8 mac2[6];
802 u8 mac3[6]; 802 u8 mac3[6];
803 u8 mac4[6]; 803 u8 mac4[6];
804} __attribute__ ((packed)); 804} __packed;
805 805
806#define DCW_WEP_KEY_INDEX_MASK 0x03 /* bits [0:1] */ 806#define DCW_WEP_KEY_INDEX_MASK 0x03 /* bits [0:1] */
807#define DCW_WEP_KEY_SEC_TYPE_MASK 0x30 /* bits [4:5] */ 807#define DCW_WEP_KEY_SEC_TYPE_MASK 0x30 /* bits [4:5] */
@@ -822,7 +822,7 @@ struct ipw_wep_key {
822 u8 key_index; 822 u8 key_index;
823 u8 key_size; 823 u8 key_size;
824 u8 key[16]; 824 u8 key[16];
825} __attribute__ ((packed)); 825} __packed;
826 826
827struct ipw_tgi_tx_key { 827struct ipw_tgi_tx_key {
828 u8 key_id; 828 u8 key_id;
@@ -831,7 +831,7 @@ struct ipw_tgi_tx_key {
831 u8 flags; 831 u8 flags;
832 u8 key[16]; 832 u8 key[16];
833 __le32 tx_counter[2]; 833 __le32 tx_counter[2];
834} __attribute__ ((packed)); 834} __packed;
835 835
836#define IPW_SCAN_CHANNELS 54 836#define IPW_SCAN_CHANNELS 54
837 837
@@ -840,7 +840,7 @@ struct ipw_scan_request {
840 __le16 dwell_time; 840 __le16 dwell_time;
841 u8 channels_list[IPW_SCAN_CHANNELS]; 841 u8 channels_list[IPW_SCAN_CHANNELS];
842 u8 channels_reserved[3]; 842 u8 channels_reserved[3];
843} __attribute__ ((packed)); 843} __packed;
844 844
845enum { 845enum {
846 IPW_SCAN_PASSIVE_TILL_FIRST_BEACON_SCAN = 0, 846 IPW_SCAN_PASSIVE_TILL_FIRST_BEACON_SCAN = 0,
@@ -857,7 +857,7 @@ struct ipw_scan_request_ext {
857 u8 scan_type[IPW_SCAN_CHANNELS / 2]; 857 u8 scan_type[IPW_SCAN_CHANNELS / 2];
858 u8 reserved; 858 u8 reserved;
859 __le16 dwell_time[IPW_SCAN_TYPES]; 859 __le16 dwell_time[IPW_SCAN_TYPES];
860} __attribute__ ((packed)); 860} __packed;
861 861
862static inline u8 ipw_get_scan_type(struct ipw_scan_request_ext *scan, u8 index) 862static inline u8 ipw_get_scan_type(struct ipw_scan_request_ext *scan, u8 index)
863{ 863{
@@ -902,7 +902,7 @@ struct ipw_associate {
902 u8 smr; 902 u8 smr;
903 u8 reserved1; 903 u8 reserved1;
904 __le16 reserved2; 904 __le16 reserved2;
905} __attribute__ ((packed)); 905} __packed;
906 906
907struct ipw_supported_rates { 907struct ipw_supported_rates {
908 u8 ieee_mode; 908 u8 ieee_mode;
@@ -910,36 +910,36 @@ struct ipw_supported_rates {
910 u8 purpose; 910 u8 purpose;
911 u8 reserved; 911 u8 reserved;
912 u8 supported_rates[IPW_MAX_RATES]; 912 u8 supported_rates[IPW_MAX_RATES];
913} __attribute__ ((packed)); 913} __packed;
914 914
915struct ipw_rts_threshold { 915struct ipw_rts_threshold {
916 __le16 rts_threshold; 916 __le16 rts_threshold;
917 __le16 reserved; 917 __le16 reserved;
918} __attribute__ ((packed)); 918} __packed;
919 919
920struct ipw_frag_threshold { 920struct ipw_frag_threshold {
921 __le16 frag_threshold; 921 __le16 frag_threshold;
922 __le16 reserved; 922 __le16 reserved;
923} __attribute__ ((packed)); 923} __packed;
924 924
925struct ipw_retry_limit { 925struct ipw_retry_limit {
926 u8 short_retry_limit; 926 u8 short_retry_limit;
927 u8 long_retry_limit; 927 u8 long_retry_limit;
928 __le16 reserved; 928 __le16 reserved;
929} __attribute__ ((packed)); 929} __packed;
930 930
931struct ipw_dino_config { 931struct ipw_dino_config {
932 __le32 dino_config_addr; 932 __le32 dino_config_addr;
933 __le16 dino_config_size; 933 __le16 dino_config_size;
934 u8 dino_response; 934 u8 dino_response;
935 u8 reserved; 935 u8 reserved;
936} __attribute__ ((packed)); 936} __packed;
937 937
938struct ipw_aironet_info { 938struct ipw_aironet_info {
939 u8 id; 939 u8 id;
940 u8 length; 940 u8 length;
941 __le16 reserved; 941 __le16 reserved;
942} __attribute__ ((packed)); 942} __packed;
943 943
944struct ipw_rx_key { 944struct ipw_rx_key {
945 u8 station_index; 945 u8 station_index;
@@ -950,25 +950,25 @@ struct ipw_rx_key {
950 u8 station_address[6]; 950 u8 station_address[6];
951 u8 key_index; 951 u8 key_index;
952 u8 reserved; 952 u8 reserved;
953} __attribute__ ((packed)); 953} __packed;
954 954
955struct ipw_country_channel_info { 955struct ipw_country_channel_info {
956 u8 first_channel; 956 u8 first_channel;
957 u8 no_channels; 957 u8 no_channels;
958 s8 max_tx_power; 958 s8 max_tx_power;
959} __attribute__ ((packed)); 959} __packed;
960 960
961struct ipw_country_info { 961struct ipw_country_info {
962 u8 id; 962 u8 id;
963 u8 length; 963 u8 length;
964 u8 country_str[3]; 964 u8 country_str[3];
965 struct ipw_country_channel_info groups[7]; 965 struct ipw_country_channel_info groups[7];
966} __attribute__ ((packed)); 966} __packed;
967 967
968struct ipw_channel_tx_power { 968struct ipw_channel_tx_power {
969 u8 channel_number; 969 u8 channel_number;
970 s8 tx_power; 970 s8 tx_power;
971} __attribute__ ((packed)); 971} __packed;
972 972
973#define SCAN_ASSOCIATED_INTERVAL (HZ) 973#define SCAN_ASSOCIATED_INTERVAL (HZ)
974#define SCAN_INTERVAL (HZ / 10) 974#define SCAN_INTERVAL (HZ / 10)
@@ -979,18 +979,18 @@ struct ipw_tx_power {
979 u8 num_channels; 979 u8 num_channels;
980 u8 ieee_mode; 980 u8 ieee_mode;
981 struct ipw_channel_tx_power channels_tx_power[MAX_A_CHANNELS]; 981 struct ipw_channel_tx_power channels_tx_power[MAX_A_CHANNELS];
982} __attribute__ ((packed)); 982} __packed;
983 983
984struct ipw_rsn_capabilities { 984struct ipw_rsn_capabilities {
985 u8 id; 985 u8 id;
986 u8 length; 986 u8 length;
987 __le16 version; 987 __le16 version;
988} __attribute__ ((packed)); 988} __packed;
989 989
990struct ipw_sensitivity_calib { 990struct ipw_sensitivity_calib {
991 __le16 beacon_rssi_raw; 991 __le16 beacon_rssi_raw;
992 __le16 reserved; 992 __le16 reserved;
993} __attribute__ ((packed)); 993} __packed;
994 994
995/** 995/**
996 * Host command structure. 996 * Host command structure.
@@ -1019,7 +1019,7 @@ struct ipw_cmd { /* XXX */
1019 * nParams=(len+3)/4+status_len 1019 * nParams=(len+3)/4+status_len
1020 */ 1020 */
1021 u32 param[0]; 1021 u32 param[0];
1022} __attribute__ ((packed)); 1022} __packed;
1023 1023
1024#define STATUS_HCMD_ACTIVE (1<<0) /**< host command in progress */ 1024#define STATUS_HCMD_ACTIVE (1<<0) /**< host command in progress */
1025 1025
@@ -1114,7 +1114,7 @@ struct ipw_event { /* XXX */
1114 u32 event; 1114 u32 event;
1115 u32 time; 1115 u32 time;
1116 u32 data; 1116 u32 data;
1117} __attribute__ ((packed)); 1117} __packed;
1118 1118
1119struct ipw_fw_error { /* XXX */ 1119struct ipw_fw_error { /* XXX */
1120 unsigned long jiffies; 1120 unsigned long jiffies;
@@ -1125,7 +1125,7 @@ struct ipw_fw_error { /* XXX */
1125 struct ipw_error_elem *elem; 1125 struct ipw_error_elem *elem;
1126 struct ipw_event *log; 1126 struct ipw_event *log;
1127 u8 payload[0]; 1127 u8 payload[0];
1128} __attribute__ ((packed)); 1128} __packed;
1129 1129
1130#ifdef CONFIG_IPW2200_PROMISCUOUS 1130#ifdef CONFIG_IPW2200_PROMISCUOUS
1131 1131
@@ -1170,7 +1170,7 @@ struct ipw_rt_hdr {
1170 s8 rt_dbmnoise; 1170 s8 rt_dbmnoise;
1171 u8 rt_antenna; /* antenna number */ 1171 u8 rt_antenna; /* antenna number */
1172 u8 payload[0]; /* payload... */ 1172 u8 payload[0]; /* payload... */
1173} __attribute__ ((packed)); 1173} __packed;
1174#endif 1174#endif
1175 1175
1176struct ipw_priv { 1176struct ipw_priv {
@@ -1957,7 +1957,7 @@ enum {
1957struct ipw_fixed_rate { 1957struct ipw_fixed_rate {
1958 __le16 tx_rates; 1958 __le16 tx_rates;
1959 __le16 reserved; 1959 __le16 reserved;
1960} __attribute__ ((packed)); 1960} __packed;
1961 1961
1962#define IPW_INDIRECT_ADDR_MASK (~0x3ul) 1962#define IPW_INDIRECT_ADDR_MASK (~0x3ul)
1963 1963
@@ -1966,14 +1966,14 @@ struct host_cmd {
1966 u8 len; 1966 u8 len;
1967 u16 reserved; 1967 u16 reserved;
1968 u32 *param; 1968 u32 *param;
1969} __attribute__ ((packed)); /* XXX */ 1969} __packed; /* XXX */
1970 1970
1971struct cmdlog_host_cmd { 1971struct cmdlog_host_cmd {
1972 u8 cmd; 1972 u8 cmd;
1973 u8 len; 1973 u8 len;
1974 __le16 reserved; 1974 __le16 reserved;
1975 char param[124]; 1975 char param[124];
1976} __attribute__ ((packed)); 1976} __packed;
1977 1977
1978struct ipw_cmd_log { 1978struct ipw_cmd_log {
1979 unsigned long jiffies; 1979 unsigned long jiffies;
diff --git a/drivers/net/wireless/ipw2x00/libipw.h b/drivers/net/wireless/ipw2x00/libipw.h
index 284b0e4cb815..4736861bc4f8 100644
--- a/drivers/net/wireless/ipw2x00/libipw.h
+++ b/drivers/net/wireless/ipw2x00/libipw.h
@@ -154,7 +154,7 @@ struct libipw_snap_hdr {
154 u8 ctrl; /* always 0x03 */ 154 u8 ctrl; /* always 0x03 */
155 u8 oui[P80211_OUI_LEN]; /* organizational universal id */ 155 u8 oui[P80211_OUI_LEN]; /* organizational universal id */
156 156
157} __attribute__ ((packed)); 157} __packed;
158 158
159#define SNAP_SIZE sizeof(struct libipw_snap_hdr) 159#define SNAP_SIZE sizeof(struct libipw_snap_hdr)
160 160
@@ -323,7 +323,7 @@ struct libipw_security {
323 u8 keys[WEP_KEYS][SCM_KEY_LEN]; 323 u8 keys[WEP_KEYS][SCM_KEY_LEN];
324 u8 level; 324 u8 level;
325 u16 flags; 325 u16 flags;
326} __attribute__ ((packed)); 326} __packed;
327 327
328/* 328/*
329 329
@@ -347,7 +347,7 @@ struct libipw_hdr_1addr {
347 __le16 duration_id; 347 __le16 duration_id;
348 u8 addr1[ETH_ALEN]; 348 u8 addr1[ETH_ALEN];
349 u8 payload[0]; 349 u8 payload[0];
350} __attribute__ ((packed)); 350} __packed;
351 351
352struct libipw_hdr_2addr { 352struct libipw_hdr_2addr {
353 __le16 frame_ctl; 353 __le16 frame_ctl;
@@ -355,7 +355,7 @@ struct libipw_hdr_2addr {
355 u8 addr1[ETH_ALEN]; 355 u8 addr1[ETH_ALEN];
356 u8 addr2[ETH_ALEN]; 356 u8 addr2[ETH_ALEN];
357 u8 payload[0]; 357 u8 payload[0];
358} __attribute__ ((packed)); 358} __packed;
359 359
360struct libipw_hdr_3addr { 360struct libipw_hdr_3addr {
361 __le16 frame_ctl; 361 __le16 frame_ctl;
@@ -365,7 +365,7 @@ struct libipw_hdr_3addr {
365 u8 addr3[ETH_ALEN]; 365 u8 addr3[ETH_ALEN];
366 __le16 seq_ctl; 366 __le16 seq_ctl;
367 u8 payload[0]; 367 u8 payload[0];
368} __attribute__ ((packed)); 368} __packed;
369 369
370struct libipw_hdr_4addr { 370struct libipw_hdr_4addr {
371 __le16 frame_ctl; 371 __le16 frame_ctl;
@@ -376,7 +376,7 @@ struct libipw_hdr_4addr {
376 __le16 seq_ctl; 376 __le16 seq_ctl;
377 u8 addr4[ETH_ALEN]; 377 u8 addr4[ETH_ALEN];
378 u8 payload[0]; 378 u8 payload[0];
379} __attribute__ ((packed)); 379} __packed;
380 380
381struct libipw_hdr_3addrqos { 381struct libipw_hdr_3addrqos {
382 __le16 frame_ctl; 382 __le16 frame_ctl;
@@ -387,13 +387,13 @@ struct libipw_hdr_3addrqos {
387 __le16 seq_ctl; 387 __le16 seq_ctl;
388 u8 payload[0]; 388 u8 payload[0];
389 __le16 qos_ctl; 389 __le16 qos_ctl;
390} __attribute__ ((packed)); 390} __packed;
391 391
392struct libipw_info_element { 392struct libipw_info_element {
393 u8 id; 393 u8 id;
394 u8 len; 394 u8 len;
395 u8 data[0]; 395 u8 data[0];
396} __attribute__ ((packed)); 396} __packed;
397 397
398/* 398/*
399 * These are the data types that can make up management packets 399 * These are the data types that can make up management packets
@@ -406,7 +406,7 @@ struct libipw_info_element {
406 u16 listen_interval; 406 u16 listen_interval;
407 struct { 407 struct {
408 u16 association_id:14, reserved:2; 408 u16 association_id:14, reserved:2;
409 } __attribute__ ((packed)); 409 } __packed;
410 u32 time_stamp[2]; 410 u32 time_stamp[2];
411 u16 reason; 411 u16 reason;
412 u16 status; 412 u16 status;
@@ -419,7 +419,7 @@ struct libipw_auth {
419 __le16 status; 419 __le16 status;
420 /* challenge */ 420 /* challenge */
421 struct libipw_info_element info_element[0]; 421 struct libipw_info_element info_element[0];
422} __attribute__ ((packed)); 422} __packed;
423 423
424struct libipw_channel_switch { 424struct libipw_channel_switch {
425 u8 id; 425 u8 id;
@@ -427,7 +427,7 @@ struct libipw_channel_switch {
427 u8 mode; 427 u8 mode;
428 u8 channel; 428 u8 channel;
429 u8 count; 429 u8 count;
430} __attribute__ ((packed)); 430} __packed;
431 431
432struct libipw_action { 432struct libipw_action {
433 struct libipw_hdr_3addr header; 433 struct libipw_hdr_3addr header;
@@ -441,12 +441,12 @@ struct libipw_action {
441 struct libipw_channel_switch channel_switch; 441 struct libipw_channel_switch channel_switch;
442 442
443 } format; 443 } format;
444} __attribute__ ((packed)); 444} __packed;
445 445
446struct libipw_disassoc { 446struct libipw_disassoc {
447 struct libipw_hdr_3addr header; 447 struct libipw_hdr_3addr header;
448 __le16 reason; 448 __le16 reason;
449} __attribute__ ((packed)); 449} __packed;
450 450
451/* Alias deauth for disassoc */ 451/* Alias deauth for disassoc */
452#define libipw_deauth libipw_disassoc 452#define libipw_deauth libipw_disassoc
@@ -455,7 +455,7 @@ struct libipw_probe_request {
455 struct libipw_hdr_3addr header; 455 struct libipw_hdr_3addr header;
456 /* SSID, supported rates */ 456 /* SSID, supported rates */
457 struct libipw_info_element info_element[0]; 457 struct libipw_info_element info_element[0];
458} __attribute__ ((packed)); 458} __packed;
459 459
460struct libipw_probe_response { 460struct libipw_probe_response {
461 struct libipw_hdr_3addr header; 461 struct libipw_hdr_3addr header;
@@ -465,7 +465,7 @@ struct libipw_probe_response {
465 /* SSID, supported rates, FH params, DS params, 465 /* SSID, supported rates, FH params, DS params,
466 * CF params, IBSS params, TIM (if beacon), RSN */ 466 * CF params, IBSS params, TIM (if beacon), RSN */
467 struct libipw_info_element info_element[0]; 467 struct libipw_info_element info_element[0];
468} __attribute__ ((packed)); 468} __packed;
469 469
470/* Alias beacon for probe_response */ 470/* Alias beacon for probe_response */
471#define libipw_beacon libipw_probe_response 471#define libipw_beacon libipw_probe_response
@@ -476,7 +476,7 @@ struct libipw_assoc_request {
476 __le16 listen_interval; 476 __le16 listen_interval;
477 /* SSID, supported rates, RSN */ 477 /* SSID, supported rates, RSN */
478 struct libipw_info_element info_element[0]; 478 struct libipw_info_element info_element[0];
479} __attribute__ ((packed)); 479} __packed;
480 480
481struct libipw_reassoc_request { 481struct libipw_reassoc_request {
482 struct libipw_hdr_3addr header; 482 struct libipw_hdr_3addr header;
@@ -484,7 +484,7 @@ struct libipw_reassoc_request {
484 __le16 listen_interval; 484 __le16 listen_interval;
485 u8 current_ap[ETH_ALEN]; 485 u8 current_ap[ETH_ALEN];
486 struct libipw_info_element info_element[0]; 486 struct libipw_info_element info_element[0];
487} __attribute__ ((packed)); 487} __packed;
488 488
489struct libipw_assoc_response { 489struct libipw_assoc_response {
490 struct libipw_hdr_3addr header; 490 struct libipw_hdr_3addr header;
@@ -493,7 +493,7 @@ struct libipw_assoc_response {
493 __le16 aid; 493 __le16 aid;
494 /* supported rates */ 494 /* supported rates */
495 struct libipw_info_element info_element[0]; 495 struct libipw_info_element info_element[0];
496} __attribute__ ((packed)); 496} __packed;
497 497
498struct libipw_txb { 498struct libipw_txb {
499 u8 nr_frags; 499 u8 nr_frags;
@@ -555,19 +555,19 @@ struct libipw_qos_information_element {
555 u8 qui_subtype; 555 u8 qui_subtype;
556 u8 version; 556 u8 version;
557 u8 ac_info; 557 u8 ac_info;
558} __attribute__ ((packed)); 558} __packed;
559 559
560struct libipw_qos_ac_parameter { 560struct libipw_qos_ac_parameter {
561 u8 aci_aifsn; 561 u8 aci_aifsn;
562 u8 ecw_min_max; 562 u8 ecw_min_max;
563 __le16 tx_op_limit; 563 __le16 tx_op_limit;
564} __attribute__ ((packed)); 564} __packed;
565 565
566struct libipw_qos_parameter_info { 566struct libipw_qos_parameter_info {
567 struct libipw_qos_information_element info_element; 567 struct libipw_qos_information_element info_element;
568 u8 reserved; 568 u8 reserved;
569 struct libipw_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM]; 569 struct libipw_qos_ac_parameter ac_params_record[QOS_QUEUE_NUM];
570} __attribute__ ((packed)); 570} __packed;
571 571
572struct libipw_qos_parameters { 572struct libipw_qos_parameters {
573 __le16 cw_min[QOS_QUEUE_NUM]; 573 __le16 cw_min[QOS_QUEUE_NUM];
@@ -575,7 +575,7 @@ struct libipw_qos_parameters {
575 u8 aifs[QOS_QUEUE_NUM]; 575 u8 aifs[QOS_QUEUE_NUM];
576 u8 flag[QOS_QUEUE_NUM]; 576 u8 flag[QOS_QUEUE_NUM];
577 __le16 tx_op_limit[QOS_QUEUE_NUM]; 577 __le16 tx_op_limit[QOS_QUEUE_NUM];
578} __attribute__ ((packed)); 578} __packed;
579 579
580struct libipw_qos_data { 580struct libipw_qos_data {
581 struct libipw_qos_parameters parameters; 581 struct libipw_qos_parameters parameters;
@@ -588,7 +588,7 @@ struct libipw_qos_data {
588struct libipw_tim_parameters { 588struct libipw_tim_parameters {
589 u8 tim_count; 589 u8 tim_count;
590 u8 tim_period; 590 u8 tim_period;
591} __attribute__ ((packed)); 591} __packed;
592 592
593/*******************************************************/ 593/*******************************************************/
594 594
@@ -606,7 +606,7 @@ struct libipw_basic_report {
606 __le64 start_time; 606 __le64 start_time;
607 __le16 duration; 607 __le16 duration;
608 u8 map; 608 u8 map;
609} __attribute__ ((packed)); 609} __packed;
610 610
611enum { /* libipw_measurement_request.mode */ 611enum { /* libipw_measurement_request.mode */
612 /* Bit 0 is reserved */ 612 /* Bit 0 is reserved */
@@ -627,7 +627,7 @@ struct libipw_measurement_params {
627 u8 channel; 627 u8 channel;
628 __le64 start_time; 628 __le64 start_time;
629 __le16 duration; 629 __le16 duration;
630} __attribute__ ((packed)); 630} __packed;
631 631
632struct libipw_measurement_request { 632struct libipw_measurement_request {
633 struct libipw_info_element ie; 633 struct libipw_info_element ie;
@@ -635,7 +635,7 @@ struct libipw_measurement_request {
635 u8 mode; 635 u8 mode;
636 u8 type; 636 u8 type;
637 struct libipw_measurement_params params[0]; 637 struct libipw_measurement_params params[0];
638} __attribute__ ((packed)); 638} __packed;
639 639
640struct libipw_measurement_report { 640struct libipw_measurement_report {
641 struct libipw_info_element ie; 641 struct libipw_info_element ie;
@@ -645,17 +645,17 @@ struct libipw_measurement_report {
645 union { 645 union {
646 struct libipw_basic_report basic[0]; 646 struct libipw_basic_report basic[0];
647 } u; 647 } u;
648} __attribute__ ((packed)); 648} __packed;
649 649
650struct libipw_tpc_report { 650struct libipw_tpc_report {
651 u8 transmit_power; 651 u8 transmit_power;
652 u8 link_margin; 652 u8 link_margin;
653} __attribute__ ((packed)); 653} __packed;
654 654
655struct libipw_channel_map { 655struct libipw_channel_map {
656 u8 channel; 656 u8 channel;
657 u8 map; 657 u8 map;
658} __attribute__ ((packed)); 658} __packed;
659 659
660struct libipw_ibss_dfs { 660struct libipw_ibss_dfs {
661 struct libipw_info_element ie; 661 struct libipw_info_element ie;
@@ -668,14 +668,14 @@ struct libipw_csa {
668 u8 mode; 668 u8 mode;
669 u8 channel; 669 u8 channel;
670 u8 count; 670 u8 count;
671} __attribute__ ((packed)); 671} __packed;
672 672
673struct libipw_quiet { 673struct libipw_quiet {
674 u8 count; 674 u8 count;
675 u8 period; 675 u8 period;
676 u8 duration; 676 u8 duration;
677 u8 offset; 677 u8 offset;
678} __attribute__ ((packed)); 678} __packed;
679 679
680struct libipw_network { 680struct libipw_network {
681 /* These entries are used to identify a unique network */ 681 /* These entries are used to identify a unique network */
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-fh.h b/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
index 042f6bc0df13..2c9ed2b502a3 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-fh.h
@@ -175,13 +175,13 @@
175struct iwl3945_tfd_tb { 175struct iwl3945_tfd_tb {
176 __le32 addr; 176 __le32 addr;
177 __le32 len; 177 __le32 len;
178} __attribute__ ((packed)); 178} __packed;
179 179
180struct iwl3945_tfd { 180struct iwl3945_tfd {
181 __le32 control_flags; 181 __le32 control_flags;
182 struct iwl3945_tfd_tb tbs[4]; 182 struct iwl3945_tfd_tb tbs[4];
183 u8 __pad[28]; 183 u8 __pad[28];
184} __attribute__ ((packed)); 184} __packed;
185 185
186 186
187#endif /* __iwl_3945_fh_h__ */ 187#endif /* __iwl_3945_fh_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
index 91bcb4e3cdfb..7c731a793632 100644
--- a/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-3945-hw.h
@@ -96,7 +96,7 @@ struct iwl3945_eeprom_txpower_sample {
96 u8 gain_index; /* index into power (gain) setup table ... */ 96 u8 gain_index; /* index into power (gain) setup table ... */
97 s8 power; /* ... for this pwr level for this chnl group */ 97 s8 power; /* ... for this pwr level for this chnl group */
98 u16 v_det; /* PA output voltage */ 98 u16 v_det; /* PA output voltage */
99} __attribute__ ((packed)); 99} __packed;
100 100
101/* 101/*
102 * Mappings of Tx power levels -> nominal radio/DSP gain table indexes. 102 * Mappings of Tx power levels -> nominal radio/DSP gain table indexes.
@@ -117,7 +117,7 @@ struct iwl3945_eeprom_txpower_group {
117 u8 group_channel; /* "representative" channel # in this band */ 117 u8 group_channel; /* "representative" channel # in this band */
118 s16 temperature; /* h/w temperature at factory calib this band 118 s16 temperature; /* h/w temperature at factory calib this band
119 * (signed) */ 119 * (signed) */
120} __attribute__ ((packed)); 120} __packed;
121 121
122/* 122/*
123 * Temperature-based Tx-power compensation data, not band-specific. 123 * Temperature-based Tx-power compensation data, not band-specific.
@@ -131,7 +131,7 @@ struct iwl3945_eeprom_temperature_corr {
131 u32 Tc; 131 u32 Tc;
132 u32 Td; 132 u32 Td;
133 u32 Te; 133 u32 Te;
134} __attribute__ ((packed)); 134} __packed;
135 135
136/* 136/*
137 * EEPROM map 137 * EEPROM map
@@ -215,7 +215,7 @@ struct iwl3945_eeprom {
215/* abs.ofs: 512 */ 215/* abs.ofs: 512 */
216 struct iwl3945_eeprom_temperature_corr corrections; /* abs.ofs: 832 */ 216 struct iwl3945_eeprom_temperature_corr corrections; /* abs.ofs: 832 */
217 u8 reserved16[172]; /* fill out to full 1024 byte block */ 217 u8 reserved16[172]; /* fill out to full 1024 byte block */
218} __attribute__ ((packed)); 218} __packed;
219 219
220#define IWL3945_EEPROM_IMG_SIZE 1024 220#define IWL3945_EEPROM_IMG_SIZE 1024
221 221
@@ -274,7 +274,7 @@ static inline int iwl3945_hw_valid_rtc_data_addr(u32 addr)
274 * and &iwl3945_shared.rx_read_ptr[0] is provided to FH_RCSR_RPTR_ADDR(0) */ 274 * and &iwl3945_shared.rx_read_ptr[0] is provided to FH_RCSR_RPTR_ADDR(0) */
275struct iwl3945_shared { 275struct iwl3945_shared {
276 __le32 tx_base_ptr[8]; 276 __le32 tx_base_ptr[8];
277} __attribute__ ((packed)); 277} __packed;
278 278
279static inline u8 iwl3945_hw_get_rate(__le16 rate_n_flags) 279static inline u8 iwl3945_hw_get_rate(__le16 rate_n_flags)
280{ 280{
diff --git a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
index cd4b61ae25b7..9166794eda0d 100644
--- a/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-4965-hw.h
@@ -787,6 +787,6 @@ enum {
787struct iwl4965_scd_bc_tbl { 787struct iwl4965_scd_bc_tbl {
788 __le16 tfd_offset[TFD_QUEUE_BC_SIZE]; 788 __le16 tfd_offset[TFD_QUEUE_BC_SIZE];
789 u8 pad[1024 - (TFD_QUEUE_BC_SIZE) * sizeof(__le16)]; 789 u8 pad[1024 - (TFD_QUEUE_BC_SIZE) * sizeof(__le16)];
790} __attribute__ ((packed)); 790} __packed;
791 791
792#endif /* !__iwl_4965_hw_h__ */ 792#endif /* !__iwl_4965_hw_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hw.h b/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
index f9a3fbb6338f..a52b82c8e7a6 100644
--- a/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
+++ b/drivers/net/wireless/iwlwifi/iwl-agn-hw.h
@@ -112,7 +112,7 @@
112 */ 112 */
113struct iwlagn_scd_bc_tbl { 113struct iwlagn_scd_bc_tbl {
114 __le16 tfd_offset[TFD_QUEUE_BC_SIZE]; 114 __le16 tfd_offset[TFD_QUEUE_BC_SIZE];
115} __attribute__ ((packed)); 115} __packed;
116 116
117 117
118#endif /* __iwl_agn_hw_h__ */ 118#endif /* __iwl_agn_hw_h__ */
diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
index 9aab020c474b..73d2d59bc1df 100644
--- a/drivers/net/wireless/iwlwifi/iwl-commands.h
+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
@@ -227,7 +227,7 @@ struct iwl_cmd_header {
227 227
228 /* command or response/notification data follows immediately */ 228 /* command or response/notification data follows immediately */
229 u8 data[0]; 229 u8 data[0];
230} __attribute__ ((packed)); 230} __packed;
231 231
232 232
233/** 233/**
@@ -247,7 +247,7 @@ struct iwl_cmd_header {
247struct iwl3945_tx_power { 247struct iwl3945_tx_power {
248 u8 tx_gain; /* gain for analog radio */ 248 u8 tx_gain; /* gain for analog radio */
249 u8 dsp_atten; /* gain for DSP */ 249 u8 dsp_atten; /* gain for DSP */
250} __attribute__ ((packed)); 250} __packed;
251 251
252/** 252/**
253 * struct iwl3945_power_per_rate 253 * struct iwl3945_power_per_rate
@@ -258,7 +258,7 @@ struct iwl3945_power_per_rate {
258 u8 rate; /* plcp */ 258 u8 rate; /* plcp */
259 struct iwl3945_tx_power tpc; 259 struct iwl3945_tx_power tpc;
260 u8 reserved; 260 u8 reserved;
261} __attribute__ ((packed)); 261} __packed;
262 262
263/** 263/**
264 * iwlagn rate_n_flags bit fields 264 * iwlagn rate_n_flags bit fields
@@ -389,7 +389,7 @@ union iwl4965_tx_power_dual_stream {
389 */ 389 */
390struct tx_power_dual_stream { 390struct tx_power_dual_stream {
391 __le32 dw; 391 __le32 dw;
392} __attribute__ ((packed)); 392} __packed;
393 393
394/** 394/**
395 * struct iwl4965_tx_power_db 395 * struct iwl4965_tx_power_db
@@ -398,7 +398,7 @@ struct tx_power_dual_stream {
398 */ 398 */
399struct iwl4965_tx_power_db { 399struct iwl4965_tx_power_db {
400 struct tx_power_dual_stream power_tbl[POWER_TABLE_NUM_ENTRIES]; 400 struct tx_power_dual_stream power_tbl[POWER_TABLE_NUM_ENTRIES];
401} __attribute__ ((packed)); 401} __packed;
402 402
403/** 403/**
404 * Command REPLY_TX_POWER_DBM_CMD = 0x98 404 * Command REPLY_TX_POWER_DBM_CMD = 0x98
@@ -412,7 +412,7 @@ struct iwl5000_tx_power_dbm_cmd {
412 u8 flags; 412 u8 flags;
413 s8 srv_chan_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */ 413 s8 srv_chan_lmt; /*in half-dBm (e.g. 30 = 15 dBm) */
414 u8 reserved; 414 u8 reserved;
415} __attribute__ ((packed)); 415} __packed;
416 416
417/** 417/**
418 * Command TX_ANT_CONFIGURATION_CMD = 0x98 418 * Command TX_ANT_CONFIGURATION_CMD = 0x98
@@ -422,7 +422,7 @@ struct iwl5000_tx_power_dbm_cmd {
422 */ 422 */
423struct iwl_tx_ant_config_cmd { 423struct iwl_tx_ant_config_cmd {
424 __le32 valid; 424 __le32 valid;
425} __attribute__ ((packed)); 425} __packed;
426 426
427/****************************************************************************** 427/******************************************************************************
428 * (0a) 428 * (0a)
@@ -478,7 +478,7 @@ struct iwl_init_alive_resp {
478 __le32 therm_r4[2]; /* signed */ 478 __le32 therm_r4[2]; /* signed */
479 __le32 tx_atten[5][2]; /* signed MIMO gain comp, 5 freq groups, 479 __le32 tx_atten[5][2]; /* signed MIMO gain comp, 5 freq groups,
480 * 2 Tx chains */ 480 * 2 Tx chains */
481} __attribute__ ((packed)); 481} __packed;
482 482
483 483
484/** 484/**
@@ -570,7 +570,7 @@ struct iwl_alive_resp {
570 __le32 error_event_table_ptr; /* SRAM address for error log */ 570 __le32 error_event_table_ptr; /* SRAM address for error log */
571 __le32 timestamp; 571 __le32 timestamp;
572 __le32 is_valid; 572 __le32 is_valid;
573} __attribute__ ((packed)); 573} __packed;
574 574
575/* 575/*
576 * REPLY_ERROR = 0x2 (response only, not a command) 576 * REPLY_ERROR = 0x2 (response only, not a command)
@@ -582,7 +582,7 @@ struct iwl_error_resp {
582 __le16 bad_cmd_seq_num; 582 __le16 bad_cmd_seq_num;
583 __le32 error_info; 583 __le32 error_info;
584 __le64 timestamp; 584 __le64 timestamp;
585} __attribute__ ((packed)); 585} __packed;
586 586
587/****************************************************************************** 587/******************************************************************************
588 * (1) 588 * (1)
@@ -718,7 +718,7 @@ struct iwl3945_rxon_cmd {
718 __le32 filter_flags; 718 __le32 filter_flags;
719 __le16 channel; 719 __le16 channel;
720 __le16 reserved5; 720 __le16 reserved5;
721} __attribute__ ((packed)); 721} __packed;
722 722
723struct iwl4965_rxon_cmd { 723struct iwl4965_rxon_cmd {
724 u8 node_addr[6]; 724 u8 node_addr[6];
@@ -738,7 +738,7 @@ struct iwl4965_rxon_cmd {
738 __le16 channel; 738 __le16 channel;
739 u8 ofdm_ht_single_stream_basic_rates; 739 u8 ofdm_ht_single_stream_basic_rates;
740 u8 ofdm_ht_dual_stream_basic_rates; 740 u8 ofdm_ht_dual_stream_basic_rates;
741} __attribute__ ((packed)); 741} __packed;
742 742
743/* 5000 HW just extend this command */ 743/* 5000 HW just extend this command */
744struct iwl_rxon_cmd { 744struct iwl_rxon_cmd {
@@ -763,7 +763,7 @@ struct iwl_rxon_cmd {
763 u8 reserved5; 763 u8 reserved5;
764 __le16 acquisition_data; 764 __le16 acquisition_data;
765 __le16 reserved6; 765 __le16 reserved6;
766} __attribute__ ((packed)); 766} __packed;
767 767
768/* 768/*
769 * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response) 769 * REPLY_RXON_ASSOC = 0x11 (command, has simple generic response)
@@ -774,7 +774,7 @@ struct iwl3945_rxon_assoc_cmd {
774 u8 ofdm_basic_rates; 774 u8 ofdm_basic_rates;
775 u8 cck_basic_rates; 775 u8 cck_basic_rates;
776 __le16 reserved; 776 __le16 reserved;
777} __attribute__ ((packed)); 777} __packed;
778 778
779struct iwl4965_rxon_assoc_cmd { 779struct iwl4965_rxon_assoc_cmd {
780 __le32 flags; 780 __le32 flags;
@@ -785,7 +785,7 @@ struct iwl4965_rxon_assoc_cmd {
785 u8 ofdm_ht_dual_stream_basic_rates; 785 u8 ofdm_ht_dual_stream_basic_rates;
786 __le16 rx_chain_select_flags; 786 __le16 rx_chain_select_flags;
787 __le16 reserved; 787 __le16 reserved;
788} __attribute__ ((packed)); 788} __packed;
789 789
790struct iwl5000_rxon_assoc_cmd { 790struct iwl5000_rxon_assoc_cmd {
791 __le32 flags; 791 __le32 flags;
@@ -800,7 +800,7 @@ struct iwl5000_rxon_assoc_cmd {
800 __le16 rx_chain_select_flags; 800 __le16 rx_chain_select_flags;
801 __le16 acquisition_data; 801 __le16 acquisition_data;
802 __le32 reserved3; 802 __le32 reserved3;
803} __attribute__ ((packed)); 803} __packed;
804 804
805#define IWL_CONN_MAX_LISTEN_INTERVAL 10 805#define IWL_CONN_MAX_LISTEN_INTERVAL 10
806#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */ 806#define IWL_MAX_UCODE_BEACON_INTERVAL 4 /* 4096 */
@@ -816,7 +816,7 @@ struct iwl_rxon_time_cmd {
816 __le32 beacon_init_val; 816 __le32 beacon_init_val;
817 __le16 listen_interval; 817 __le16 listen_interval;
818 __le16 reserved; 818 __le16 reserved;
819} __attribute__ ((packed)); 819} __packed;
820 820
821/* 821/*
822 * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response) 822 * REPLY_CHANNEL_SWITCH = 0x72 (command, has simple generic response)
@@ -829,7 +829,7 @@ struct iwl3945_channel_switch_cmd {
829 __le32 rxon_filter_flags; 829 __le32 rxon_filter_flags;
830 __le32 switch_time; 830 __le32 switch_time;
831 struct iwl3945_power_per_rate power[IWL_MAX_RATES]; 831 struct iwl3945_power_per_rate power[IWL_MAX_RATES];
832} __attribute__ ((packed)); 832} __packed;
833 833
834struct iwl4965_channel_switch_cmd { 834struct iwl4965_channel_switch_cmd {
835 u8 band; 835 u8 band;
@@ -839,7 +839,7 @@ struct iwl4965_channel_switch_cmd {
839 __le32 rxon_filter_flags; 839 __le32 rxon_filter_flags;
840 __le32 switch_time; 840 __le32 switch_time;
841 struct iwl4965_tx_power_db tx_power; 841 struct iwl4965_tx_power_db tx_power;
842} __attribute__ ((packed)); 842} __packed;
843 843
844/** 844/**
845 * struct iwl5000_channel_switch_cmd 845 * struct iwl5000_channel_switch_cmd
@@ -860,7 +860,7 @@ struct iwl5000_channel_switch_cmd {
860 __le32 rxon_filter_flags; 860 __le32 rxon_filter_flags;
861 __le32 switch_time; 861 __le32 switch_time;
862 __le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES]; 862 __le32 reserved[2][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
863} __attribute__ ((packed)); 863} __packed;
864 864
865/** 865/**
866 * struct iwl6000_channel_switch_cmd 866 * struct iwl6000_channel_switch_cmd
@@ -881,7 +881,7 @@ struct iwl6000_channel_switch_cmd {
881 __le32 rxon_filter_flags; 881 __le32 rxon_filter_flags;
882 __le32 switch_time; 882 __le32 switch_time;
883 __le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES]; 883 __le32 reserved[3][IWL_PWR_NUM_HT_OFDM_ENTRIES + IWL_PWR_CCK_ENTRIES];
884} __attribute__ ((packed)); 884} __packed;
885 885
886/* 886/*
887 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command) 887 * CHANNEL_SWITCH_NOTIFICATION = 0x73 (notification only, not a command)
@@ -890,7 +890,7 @@ struct iwl_csa_notification {
890 __le16 band; 890 __le16 band;
891 __le16 channel; 891 __le16 channel;
892 __le32 status; /* 0 - OK, 1 - fail */ 892 __le32 status; /* 0 - OK, 1 - fail */
893} __attribute__ ((packed)); 893} __packed;
894 894
895/****************************************************************************** 895/******************************************************************************
896 * (2) 896 * (2)
@@ -920,7 +920,7 @@ struct iwl_ac_qos {
920 u8 aifsn; 920 u8 aifsn;
921 u8 reserved1; 921 u8 reserved1;
922 __le16 edca_txop; 922 __le16 edca_txop;
923} __attribute__ ((packed)); 923} __packed;
924 924
925/* QoS flags defines */ 925/* QoS flags defines */
926#define QOS_PARAM_FLG_UPDATE_EDCA_MSK cpu_to_le32(0x01) 926#define QOS_PARAM_FLG_UPDATE_EDCA_MSK cpu_to_le32(0x01)
@@ -939,7 +939,7 @@ struct iwl_ac_qos {
939struct iwl_qosparam_cmd { 939struct iwl_qosparam_cmd {
940 __le32 qos_flags; 940 __le32 qos_flags;
941 struct iwl_ac_qos ac[AC_NUM]; 941 struct iwl_ac_qos ac[AC_NUM];
942} __attribute__ ((packed)); 942} __packed;
943 943
944/****************************************************************************** 944/******************************************************************************
945 * (3) 945 * (3)
@@ -1015,7 +1015,7 @@ struct iwl4965_keyinfo {
1015 u8 key_offset; 1015 u8 key_offset;
1016 u8 reserved2; 1016 u8 reserved2;
1017 u8 key[16]; /* 16-byte unicast decryption key */ 1017 u8 key[16]; /* 16-byte unicast decryption key */
1018} __attribute__ ((packed)); 1018} __packed;
1019 1019
1020/* 5000 */ 1020/* 5000 */
1021struct iwl_keyinfo { 1021struct iwl_keyinfo {
@@ -1029,7 +1029,7 @@ struct iwl_keyinfo {
1029 __le64 tx_secur_seq_cnt; 1029 __le64 tx_secur_seq_cnt;
1030 __le64 hw_tkip_mic_rx_key; 1030 __le64 hw_tkip_mic_rx_key;
1031 __le64 hw_tkip_mic_tx_key; 1031 __le64 hw_tkip_mic_tx_key;
1032} __attribute__ ((packed)); 1032} __packed;
1033 1033
1034/** 1034/**
1035 * struct sta_id_modify 1035 * struct sta_id_modify
@@ -1049,7 +1049,7 @@ struct sta_id_modify {
1049 u8 sta_id; 1049 u8 sta_id;
1050 u8 modify_mask; 1050 u8 modify_mask;
1051 __le16 reserved2; 1051 __le16 reserved2;
1052} __attribute__ ((packed)); 1052} __packed;
1053 1053
1054/* 1054/*
1055 * REPLY_ADD_STA = 0x18 (command) 1055 * REPLY_ADD_STA = 0x18 (command)
@@ -1103,7 +1103,7 @@ struct iwl3945_addsta_cmd {
1103 /* Starting Sequence Number for added block-ack support. 1103 /* Starting Sequence Number for added block-ack support.
1104 * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */ 1104 * Set modify_mask bit STA_MODIFY_ADDBA_TID_MSK to use this field. */
1105 __le16 add_immediate_ba_ssn; 1105 __le16 add_immediate_ba_ssn;
1106} __attribute__ ((packed)); 1106} __packed;
1107 1107
1108struct iwl4965_addsta_cmd { 1108struct iwl4965_addsta_cmd {
1109 u8 mode; /* 1: modify existing, 0: add new station */ 1109 u8 mode; /* 1: modify existing, 0: add new station */
@@ -1140,7 +1140,7 @@ struct iwl4965_addsta_cmd {
1140 __le16 sleep_tx_count; 1140 __le16 sleep_tx_count;
1141 1141
1142 __le16 reserved2; 1142 __le16 reserved2;
1143} __attribute__ ((packed)); 1143} __packed;
1144 1144
1145/* 5000 */ 1145/* 5000 */
1146struct iwl_addsta_cmd { 1146struct iwl_addsta_cmd {
@@ -1178,7 +1178,7 @@ struct iwl_addsta_cmd {
1178 __le16 sleep_tx_count; 1178 __le16 sleep_tx_count;
1179 1179
1180 __le16 reserved2; 1180 __le16 reserved2;
1181} __attribute__ ((packed)); 1181} __packed;
1182 1182
1183 1183
1184#define ADD_STA_SUCCESS_MSK 0x1 1184#define ADD_STA_SUCCESS_MSK 0x1
@@ -1190,7 +1190,7 @@ struct iwl_addsta_cmd {
1190 */ 1190 */
1191struct iwl_add_sta_resp { 1191struct iwl_add_sta_resp {
1192 u8 status; /* ADD_STA_* */ 1192 u8 status; /* ADD_STA_* */
1193} __attribute__ ((packed)); 1193} __packed;
1194 1194
1195#define REM_STA_SUCCESS_MSK 0x1 1195#define REM_STA_SUCCESS_MSK 0x1
1196/* 1196/*
@@ -1198,7 +1198,7 @@ struct iwl_add_sta_resp {
1198 */ 1198 */
1199struct iwl_rem_sta_resp { 1199struct iwl_rem_sta_resp {
1200 u8 status; 1200 u8 status;
1201} __attribute__ ((packed)); 1201} __packed;
1202 1202
1203/* 1203/*
1204 * REPLY_REM_STA = 0x19 (command) 1204 * REPLY_REM_STA = 0x19 (command)
@@ -1208,7 +1208,7 @@ struct iwl_rem_sta_cmd {
1208 u8 reserved[3]; 1208 u8 reserved[3];
1209 u8 addr[ETH_ALEN]; /* MAC addr of the first station */ 1209 u8 addr[ETH_ALEN]; /* MAC addr of the first station */
1210 u8 reserved2[2]; 1210 u8 reserved2[2];
1211} __attribute__ ((packed)); 1211} __packed;
1212 1212
1213/* 1213/*
1214 * REPLY_WEP_KEY = 0x20 1214 * REPLY_WEP_KEY = 0x20
@@ -1220,7 +1220,7 @@ struct iwl_wep_key {
1220 u8 key_size; 1220 u8 key_size;
1221 u8 reserved2[3]; 1221 u8 reserved2[3];
1222 u8 key[16]; 1222 u8 key[16];
1223} __attribute__ ((packed)); 1223} __packed;
1224 1224
1225struct iwl_wep_cmd { 1225struct iwl_wep_cmd {
1226 u8 num_keys; 1226 u8 num_keys;
@@ -1228,7 +1228,7 @@ struct iwl_wep_cmd {
1228 u8 flags; 1228 u8 flags;
1229 u8 reserved; 1229 u8 reserved;
1230 struct iwl_wep_key key[0]; 1230 struct iwl_wep_key key[0];
1231} __attribute__ ((packed)); 1231} __packed;
1232 1232
1233#define WEP_KEY_WEP_TYPE 1 1233#define WEP_KEY_WEP_TYPE 1
1234#define WEP_KEYS_MAX 4 1234#define WEP_KEYS_MAX 4
@@ -1282,7 +1282,7 @@ struct iwl3945_rx_frame_stats {
1282 __le16 sig_avg; 1282 __le16 sig_avg;
1283 __le16 noise_diff; 1283 __le16 noise_diff;
1284 u8 payload[0]; 1284 u8 payload[0];
1285} __attribute__ ((packed)); 1285} __packed;
1286 1286
1287struct iwl3945_rx_frame_hdr { 1287struct iwl3945_rx_frame_hdr {
1288 __le16 channel; 1288 __le16 channel;
@@ -1291,13 +1291,13 @@ struct iwl3945_rx_frame_hdr {
1291 u8 rate; 1291 u8 rate;
1292 __le16 len; 1292 __le16 len;
1293 u8 payload[0]; 1293 u8 payload[0];
1294} __attribute__ ((packed)); 1294} __packed;
1295 1295
1296struct iwl3945_rx_frame_end { 1296struct iwl3945_rx_frame_end {
1297 __le32 status; 1297 __le32 status;
1298 __le64 timestamp; 1298 __le64 timestamp;
1299 __le32 beacon_timestamp; 1299 __le32 beacon_timestamp;
1300} __attribute__ ((packed)); 1300} __packed;
1301 1301
1302/* 1302/*
1303 * REPLY_3945_RX = 0x1b (response only, not a command) 1303 * REPLY_3945_RX = 0x1b (response only, not a command)
@@ -1311,7 +1311,7 @@ struct iwl3945_rx_frame {
1311 struct iwl3945_rx_frame_stats stats; 1311 struct iwl3945_rx_frame_stats stats;
1312 struct iwl3945_rx_frame_hdr hdr; 1312 struct iwl3945_rx_frame_hdr hdr;
1313 struct iwl3945_rx_frame_end end; 1313 struct iwl3945_rx_frame_end end;
1314} __attribute__ ((packed)); 1314} __packed;
1315 1315
1316#define IWL39_RX_FRAME_SIZE (4 + sizeof(struct iwl3945_rx_frame)) 1316#define IWL39_RX_FRAME_SIZE (4 + sizeof(struct iwl3945_rx_frame))
1317 1317
@@ -1327,7 +1327,7 @@ struct iwl4965_rx_non_cfg_phy {
1327 __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */ 1327 __le16 agc_info; /* agc code 0:6, agc dB 7:13, reserved 14:15 */
1328 u8 rssi_info[6]; /* we use even entries, 0/2/4 for A/B/C rssi */ 1328 u8 rssi_info[6]; /* we use even entries, 0/2/4 for A/B/C rssi */
1329 u8 pad[0]; 1329 u8 pad[0];
1330} __attribute__ ((packed)); 1330} __packed;
1331 1331
1332 1332
1333#define IWL50_RX_RES_PHY_CNT 8 1333#define IWL50_RX_RES_PHY_CNT 8
@@ -1345,7 +1345,7 @@ struct iwl4965_rx_non_cfg_phy {
1345 1345
1346struct iwl5000_non_cfg_phy { 1346struct iwl5000_non_cfg_phy {
1347 __le32 non_cfg_phy[IWL50_RX_RES_PHY_CNT]; /* up to 8 phy entries */ 1347 __le32 non_cfg_phy[IWL50_RX_RES_PHY_CNT]; /* up to 8 phy entries */
1348} __attribute__ ((packed)); 1348} __packed;
1349 1349
1350 1350
1351/* 1351/*
@@ -1365,12 +1365,12 @@ struct iwl_rx_phy_res {
1365 __le32 rate_n_flags; /* RATE_MCS_* */ 1365 __le32 rate_n_flags; /* RATE_MCS_* */
1366 __le16 byte_count; /* frame's byte-count */ 1366 __le16 byte_count; /* frame's byte-count */
1367 __le16 reserved3; 1367 __le16 reserved3;
1368} __attribute__ ((packed)); 1368} __packed;
1369 1369
1370struct iwl4965_rx_mpdu_res_start { 1370struct iwl4965_rx_mpdu_res_start {
1371 __le16 byte_count; 1371 __le16 byte_count;
1372 __le16 reserved; 1372 __le16 reserved;
1373} __attribute__ ((packed)); 1373} __packed;
1374 1374
1375 1375
1376/****************************************************************************** 1376/******************************************************************************
@@ -1557,7 +1557,7 @@ struct iwl3945_tx_cmd {
1557 */ 1557 */
1558 u8 payload[0]; 1558 u8 payload[0];
1559 struct ieee80211_hdr hdr[0]; 1559 struct ieee80211_hdr hdr[0];
1560} __attribute__ ((packed)); 1560} __packed;
1561 1561
1562/* 1562/*
1563 * REPLY_TX = 0x1c (response) 1563 * REPLY_TX = 0x1c (response)
@@ -1569,7 +1569,7 @@ struct iwl3945_tx_resp {
1569 u8 rate; 1569 u8 rate;
1570 __le32 wireless_media_time; 1570 __le32 wireless_media_time;
1571 __le32 status; /* TX status */ 1571 __le32 status; /* TX status */
1572} __attribute__ ((packed)); 1572} __packed;
1573 1573
1574 1574
1575/* 1575/*
@@ -1581,7 +1581,7 @@ struct iwl_dram_scratch {
1581 u8 try_cnt; /* Tx attempts */ 1581 u8 try_cnt; /* Tx attempts */
1582 u8 bt_kill_cnt; /* Tx attempts blocked by Bluetooth device */ 1582 u8 bt_kill_cnt; /* Tx attempts blocked by Bluetooth device */
1583 __le16 reserved; 1583 __le16 reserved;
1584} __attribute__ ((packed)); 1584} __packed;
1585 1585
1586struct iwl_tx_cmd { 1586struct iwl_tx_cmd {
1587 /* 1587 /*
@@ -1660,7 +1660,7 @@ struct iwl_tx_cmd {
1660 */ 1660 */
1661 u8 payload[0]; 1661 u8 payload[0];
1662 struct ieee80211_hdr hdr[0]; 1662 struct ieee80211_hdr hdr[0];
1663} __attribute__ ((packed)); 1663} __packed;
1664 1664
1665/* TX command response is sent after *3945* transmission attempts. 1665/* TX command response is sent after *3945* transmission attempts.
1666 * 1666 *
@@ -1826,7 +1826,7 @@ enum {
1826struct agg_tx_status { 1826struct agg_tx_status {
1827 __le16 status; 1827 __le16 status;
1828 __le16 sequence; 1828 __le16 sequence;
1829} __attribute__ ((packed)); 1829} __packed;
1830 1830
1831struct iwl4965_tx_resp { 1831struct iwl4965_tx_resp {
1832 u8 frame_count; /* 1 no aggregation, >1 aggregation */ 1832 u8 frame_count; /* 1 no aggregation, >1 aggregation */
@@ -1863,7 +1863,7 @@ struct iwl4965_tx_resp {
1863 __le32 status; 1863 __le32 status;
1864 struct agg_tx_status agg_status[0]; /* for each agg frame */ 1864 struct agg_tx_status agg_status[0]; /* for each agg frame */
1865 } u; 1865 } u;
1866} __attribute__ ((packed)); 1866} __packed;
1867 1867
1868/* 1868/*
1869 * definitions for initial rate index field 1869 * definitions for initial rate index field
@@ -1927,7 +1927,7 @@ struct iwl5000_tx_resp {
1927 */ 1927 */
1928 struct agg_tx_status status; /* TX status (in aggregation - 1928 struct agg_tx_status status; /* TX status (in aggregation -
1929 * status of 1st frame) */ 1929 * status of 1st frame) */
1930} __attribute__ ((packed)); 1930} __packed;
1931/* 1931/*
1932 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command) 1932 * REPLY_COMPRESSED_BA = 0xc5 (response only, not a command)
1933 * 1933 *
@@ -1945,7 +1945,7 @@ struct iwl_compressed_ba_resp {
1945 __le64 bitmap; 1945 __le64 bitmap;
1946 __le16 scd_flow; 1946 __le16 scd_flow;
1947 __le16 scd_ssn; 1947 __le16 scd_ssn;
1948} __attribute__ ((packed)); 1948} __packed;
1949 1949
1950/* 1950/*
1951 * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response) 1951 * REPLY_TX_PWR_TABLE_CMD = 0x97 (command, has simple generic response)
@@ -1958,14 +1958,14 @@ struct iwl3945_txpowertable_cmd {
1958 u8 reserved; 1958 u8 reserved;
1959 __le16 channel; 1959 __le16 channel;
1960 struct iwl3945_power_per_rate power[IWL_MAX_RATES]; 1960 struct iwl3945_power_per_rate power[IWL_MAX_RATES];
1961} __attribute__ ((packed)); 1961} __packed;
1962 1962
1963struct iwl4965_txpowertable_cmd { 1963struct iwl4965_txpowertable_cmd {
1964 u8 band; /* 0: 5 GHz, 1: 2.4 GHz */ 1964 u8 band; /* 0: 5 GHz, 1: 2.4 GHz */
1965 u8 reserved; 1965 u8 reserved;
1966 __le16 channel; 1966 __le16 channel;
1967 struct iwl4965_tx_power_db tx_power; 1967 struct iwl4965_tx_power_db tx_power;
1968} __attribute__ ((packed)); 1968} __packed;
1969 1969
1970 1970
1971/** 1971/**
@@ -1987,13 +1987,13 @@ struct iwl3945_rate_scaling_info {
1987 __le16 rate_n_flags; 1987 __le16 rate_n_flags;
1988 u8 try_cnt; 1988 u8 try_cnt;
1989 u8 next_rate_index; 1989 u8 next_rate_index;
1990} __attribute__ ((packed)); 1990} __packed;
1991 1991
1992struct iwl3945_rate_scaling_cmd { 1992struct iwl3945_rate_scaling_cmd {
1993 u8 table_id; 1993 u8 table_id;
1994 u8 reserved[3]; 1994 u8 reserved[3];
1995 struct iwl3945_rate_scaling_info table[IWL_MAX_RATES]; 1995 struct iwl3945_rate_scaling_info table[IWL_MAX_RATES];
1996} __attribute__ ((packed)); 1996} __packed;
1997 1997
1998 1998
1999/*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */ 1999/*RS_NEW_API: only TLC_RTS remains and moved to bit 0 */
@@ -2040,7 +2040,7 @@ struct iwl_link_qual_general_params {
2040 * TX FIFOs above 3 use same value (typically 0) as TX FIFO 3. 2040 * TX FIFOs above 3 use same value (typically 0) as TX FIFO 3.
2041 */ 2041 */
2042 u8 start_rate_index[LINK_QUAL_AC_NUM]; 2042 u8 start_rate_index[LINK_QUAL_AC_NUM];
2043} __attribute__ ((packed)); 2043} __packed;
2044 2044
2045#define LINK_QUAL_AGG_TIME_LIMIT_DEF (4000) /* 4 milliseconds */ 2045#define LINK_QUAL_AGG_TIME_LIMIT_DEF (4000) /* 4 milliseconds */
2046#define LINK_QUAL_AGG_TIME_LIMIT_MAX (65535) 2046#define LINK_QUAL_AGG_TIME_LIMIT_MAX (65535)
@@ -2081,7 +2081,7 @@ struct iwl_link_qual_agg_params {
2081 u8 agg_frame_cnt_limit; 2081 u8 agg_frame_cnt_limit;
2082 2082
2083 __le32 reserved; 2083 __le32 reserved;
2084} __attribute__ ((packed)); 2084} __packed;
2085 2085
2086/* 2086/*
2087 * REPLY_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response) 2087 * REPLY_TX_LINK_QUALITY_CMD = 0x4e (command, has simple generic response)
@@ -2287,7 +2287,7 @@ struct iwl_link_quality_cmd {
2287 __le32 rate_n_flags; /* RATE_MCS_*, IWL_RATE_* */ 2287 __le32 rate_n_flags; /* RATE_MCS_*, IWL_RATE_* */
2288 } rs_table[LINK_QUAL_MAX_RETRY_NUM]; 2288 } rs_table[LINK_QUAL_MAX_RETRY_NUM];
2289 __le32 reserved2; 2289 __le32 reserved2;
2290} __attribute__ ((packed)); 2290} __packed;
2291 2291
2292/* 2292/*
2293 * BT configuration enable flags: 2293 * BT configuration enable flags:
@@ -2328,7 +2328,7 @@ struct iwl_bt_cmd {
2328 u8 reserved; 2328 u8 reserved;
2329 __le32 kill_ack_mask; 2329 __le32 kill_ack_mask;
2330 __le32 kill_cts_mask; 2330 __le32 kill_cts_mask;
2331} __attribute__ ((packed)); 2331} __packed;
2332 2332
2333/****************************************************************************** 2333/******************************************************************************
2334 * (6) 2334 * (6)
@@ -2353,7 +2353,7 @@ struct iwl_measure_channel {
2353 u8 channel; /* channel to measure */ 2353 u8 channel; /* channel to measure */
2354 u8 type; /* see enum iwl_measure_type */ 2354 u8 type; /* see enum iwl_measure_type */
2355 __le16 reserved; 2355 __le16 reserved;
2356} __attribute__ ((packed)); 2356} __packed;
2357 2357
2358/* 2358/*
2359 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (command) 2359 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (command)
@@ -2372,7 +2372,7 @@ struct iwl_spectrum_cmd {
2372 __le16 channel_count; /* minimum 1, maximum 10 */ 2372 __le16 channel_count; /* minimum 1, maximum 10 */
2373 __le16 reserved3; 2373 __le16 reserved3;
2374 struct iwl_measure_channel channels[10]; 2374 struct iwl_measure_channel channels[10];
2375} __attribute__ ((packed)); 2375} __packed;
2376 2376
2377/* 2377/*
2378 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (response) 2378 * REPLY_SPECTRUM_MEASUREMENT_CMD = 0x74 (response)
@@ -2383,7 +2383,7 @@ struct iwl_spectrum_resp {
2383 __le16 status; /* 0 - command will be handled 2383 __le16 status; /* 0 - command will be handled
2384 * 1 - cannot handle (conflicts with another 2384 * 1 - cannot handle (conflicts with another
2385 * measurement) */ 2385 * measurement) */
2386} __attribute__ ((packed)); 2386} __packed;
2387 2387
2388enum iwl_measurement_state { 2388enum iwl_measurement_state {
2389 IWL_MEASUREMENT_START = 0, 2389 IWL_MEASUREMENT_START = 0,
@@ -2406,13 +2406,13 @@ enum iwl_measurement_status {
2406struct iwl_measurement_histogram { 2406struct iwl_measurement_histogram {
2407 __le32 ofdm[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 0.8usec counts */ 2407 __le32 ofdm[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 0.8usec counts */
2408 __le32 cck[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 1usec counts */ 2408 __le32 cck[NUM_ELEMENTS_IN_HISTOGRAM]; /* in 1usec counts */
2409} __attribute__ ((packed)); 2409} __packed;
2410 2410
2411/* clear channel availability counters */ 2411/* clear channel availability counters */
2412struct iwl_measurement_cca_counters { 2412struct iwl_measurement_cca_counters {
2413 __le32 ofdm; 2413 __le32 ofdm;
2414 __le32 cck; 2414 __le32 cck;
2415} __attribute__ ((packed)); 2415} __packed;
2416 2416
2417enum iwl_measure_type { 2417enum iwl_measure_type {
2418 IWL_MEASURE_BASIC = (1 << 0), 2418 IWL_MEASURE_BASIC = (1 << 0),
@@ -2448,7 +2448,7 @@ struct iwl_spectrum_notification {
2448 struct iwl_measurement_histogram histogram; 2448 struct iwl_measurement_histogram histogram;
2449 __le32 stop_time; /* lower 32-bits of TSF */ 2449 __le32 stop_time; /* lower 32-bits of TSF */
2450 __le32 status; /* see iwl_measurement_status */ 2450 __le32 status; /* see iwl_measurement_status */
2451} __attribute__ ((packed)); 2451} __packed;
2452 2452
2453/****************************************************************************** 2453/******************************************************************************
2454 * (7) 2454 * (7)
@@ -2504,7 +2504,7 @@ struct iwl3945_powertable_cmd {
2504 __le32 rx_data_timeout; 2504 __le32 rx_data_timeout;
2505 __le32 tx_data_timeout; 2505 __le32 tx_data_timeout;
2506 __le32 sleep_interval[IWL_POWER_VEC_SIZE]; 2506 __le32 sleep_interval[IWL_POWER_VEC_SIZE];
2507} __attribute__ ((packed)); 2507} __packed;
2508 2508
2509struct iwl_powertable_cmd { 2509struct iwl_powertable_cmd {
2510 __le16 flags; 2510 __le16 flags;
@@ -2514,7 +2514,7 @@ struct iwl_powertable_cmd {
2514 __le32 tx_data_timeout; 2514 __le32 tx_data_timeout;
2515 __le32 sleep_interval[IWL_POWER_VEC_SIZE]; 2515 __le32 sleep_interval[IWL_POWER_VEC_SIZE];
2516 __le32 keep_alive_beacons; 2516 __le32 keep_alive_beacons;
2517} __attribute__ ((packed)); 2517} __packed;
2518 2518
2519/* 2519/*
2520 * PM_SLEEP_NOTIFICATION = 0x7A (notification only, not a command) 2520 * PM_SLEEP_NOTIFICATION = 0x7A (notification only, not a command)
@@ -2527,7 +2527,7 @@ struct iwl_sleep_notification {
2527 __le32 sleep_time; 2527 __le32 sleep_time;
2528 __le32 tsf_low; 2528 __le32 tsf_low;
2529 __le32 bcon_timer; 2529 __le32 bcon_timer;
2530} __attribute__ ((packed)); 2530} __packed;
2531 2531
2532/* Sleep states. 3945 and 4965 identical. */ 2532/* Sleep states. 3945 and 4965 identical. */
2533enum { 2533enum {
@@ -2552,14 +2552,14 @@ enum {
2552#define CARD_STATE_CMD_HALT 0x02 /* Power down permanently */ 2552#define CARD_STATE_CMD_HALT 0x02 /* Power down permanently */
2553struct iwl_card_state_cmd { 2553struct iwl_card_state_cmd {
2554 __le32 status; /* CARD_STATE_CMD_* request new power state */ 2554 __le32 status; /* CARD_STATE_CMD_* request new power state */
2555} __attribute__ ((packed)); 2555} __packed;
2556 2556
2557/* 2557/*
2558 * CARD_STATE_NOTIFICATION = 0xa1 (notification only, not a command) 2558 * CARD_STATE_NOTIFICATION = 0xa1 (notification only, not a command)
2559 */ 2559 */
2560struct iwl_card_state_notif { 2560struct iwl_card_state_notif {
2561 __le32 flags; 2561 __le32 flags;
2562} __attribute__ ((packed)); 2562} __packed;
2563 2563
2564#define HW_CARD_DISABLED 0x01 2564#define HW_CARD_DISABLED 0x01
2565#define SW_CARD_DISABLED 0x02 2565#define SW_CARD_DISABLED 0x02
@@ -2570,14 +2570,14 @@ struct iwl_ct_kill_config {
2570 __le32 reserved; 2570 __le32 reserved;
2571 __le32 critical_temperature_M; 2571 __le32 critical_temperature_M;
2572 __le32 critical_temperature_R; 2572 __le32 critical_temperature_R;
2573} __attribute__ ((packed)); 2573} __packed;
2574 2574
2575/* 1000, and 6x00 */ 2575/* 1000, and 6x00 */
2576struct iwl_ct_kill_throttling_config { 2576struct iwl_ct_kill_throttling_config {
2577 __le32 critical_temperature_exit; 2577 __le32 critical_temperature_exit;
2578 __le32 reserved; 2578 __le32 reserved;
2579 __le32 critical_temperature_enter; 2579 __le32 critical_temperature_enter;
2580} __attribute__ ((packed)); 2580} __packed;
2581 2581
2582/****************************************************************************** 2582/******************************************************************************
2583 * (8) 2583 * (8)
@@ -2622,7 +2622,7 @@ struct iwl3945_scan_channel {
2622 struct iwl3945_tx_power tpc; 2622 struct iwl3945_tx_power tpc;
2623 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */ 2623 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2624 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */ 2624 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2625} __attribute__ ((packed)); 2625} __packed;
2626 2626
2627/* set number of direct probes u8 type */ 2627/* set number of direct probes u8 type */
2628#define IWL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1)))) 2628#define IWL39_SCAN_PROBE_MASK(n) ((BIT(n) | (BIT(n) - BIT(1))))
@@ -2641,7 +2641,7 @@ struct iwl_scan_channel {
2641 u8 dsp_atten; /* gain for DSP */ 2641 u8 dsp_atten; /* gain for DSP */
2642 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */ 2642 __le16 active_dwell; /* in 1024-uSec TU (time units), typ 5-50 */
2643 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */ 2643 __le16 passive_dwell; /* in 1024-uSec TU (time units), typ 20-500 */
2644} __attribute__ ((packed)); 2644} __packed;
2645 2645
2646/* set number of direct probes __le32 type */ 2646/* set number of direct probes __le32 type */
2647#define IWL_SCAN_PROBE_MASK(n) cpu_to_le32((BIT(n) | (BIT(n) - BIT(1)))) 2647#define IWL_SCAN_PROBE_MASK(n) cpu_to_le32((BIT(n) | (BIT(n) - BIT(1))))
@@ -2658,7 +2658,7 @@ struct iwl_ssid_ie {
2658 u8 id; 2658 u8 id;
2659 u8 len; 2659 u8 len;
2660 u8 ssid[32]; 2660 u8 ssid[32];
2661} __attribute__ ((packed)); 2661} __packed;
2662 2662
2663#define PROBE_OPTION_MAX_3945 4 2663#define PROBE_OPTION_MAX_3945 4
2664#define PROBE_OPTION_MAX 20 2664#define PROBE_OPTION_MAX 20
@@ -2764,7 +2764,7 @@ struct iwl3945_scan_cmd {
2764 * before requesting another scan. 2764 * before requesting another scan.
2765 */ 2765 */
2766 u8 data[0]; 2766 u8 data[0];
2767} __attribute__ ((packed)); 2767} __packed;
2768 2768
2769struct iwl_scan_cmd { 2769struct iwl_scan_cmd {
2770 __le16 len; 2770 __le16 len;
@@ -2808,7 +2808,7 @@ struct iwl_scan_cmd {
2808 * before requesting another scan. 2808 * before requesting another scan.
2809 */ 2809 */
2810 u8 data[0]; 2810 u8 data[0];
2811} __attribute__ ((packed)); 2811} __packed;
2812 2812
2813/* Can abort will notify by complete notification with abort status. */ 2813/* Can abort will notify by complete notification with abort status. */
2814#define CAN_ABORT_STATUS cpu_to_le32(0x1) 2814#define CAN_ABORT_STATUS cpu_to_le32(0x1)
@@ -2820,7 +2820,7 @@ struct iwl_scan_cmd {
2820 */ 2820 */
2821struct iwl_scanreq_notification { 2821struct iwl_scanreq_notification {
2822 __le32 status; /* 1: okay, 2: cannot fulfill request */ 2822 __le32 status; /* 1: okay, 2: cannot fulfill request */
2823} __attribute__ ((packed)); 2823} __packed;
2824 2824
2825/* 2825/*
2826 * SCAN_START_NOTIFICATION = 0x82 (notification only, not a command) 2826 * SCAN_START_NOTIFICATION = 0x82 (notification only, not a command)
@@ -2833,7 +2833,7 @@ struct iwl_scanstart_notification {
2833 u8 band; 2833 u8 band;
2834 u8 reserved[2]; 2834 u8 reserved[2];
2835 __le32 status; 2835 __le32 status;
2836} __attribute__ ((packed)); 2836} __packed;
2837 2837
2838#define SCAN_OWNER_STATUS 0x1; 2838#define SCAN_OWNER_STATUS 0x1;
2839#define MEASURE_OWNER_STATUS 0x2; 2839#define MEASURE_OWNER_STATUS 0x2;
@@ -2849,7 +2849,7 @@ struct iwl_scanresults_notification {
2849 __le32 tsf_low; 2849 __le32 tsf_low;
2850 __le32 tsf_high; 2850 __le32 tsf_high;
2851 __le32 statistics[NUMBER_OF_STATISTICS]; 2851 __le32 statistics[NUMBER_OF_STATISTICS];
2852} __attribute__ ((packed)); 2852} __packed;
2853 2853
2854/* 2854/*
2855 * SCAN_COMPLETE_NOTIFICATION = 0x84 (notification only, not a command) 2855 * SCAN_COMPLETE_NOTIFICATION = 0x84 (notification only, not a command)
@@ -2861,7 +2861,7 @@ struct iwl_scancomplete_notification {
2861 u8 last_channel; 2861 u8 last_channel;
2862 __le32 tsf_low; 2862 __le32 tsf_low;
2863 __le32 tsf_high; 2863 __le32 tsf_high;
2864} __attribute__ ((packed)); 2864} __packed;
2865 2865
2866 2866
2867/****************************************************************************** 2867/******************************************************************************
@@ -2879,14 +2879,14 @@ struct iwl3945_beacon_notif {
2879 __le32 low_tsf; 2879 __le32 low_tsf;
2880 __le32 high_tsf; 2880 __le32 high_tsf;
2881 __le32 ibss_mgr_status; 2881 __le32 ibss_mgr_status;
2882} __attribute__ ((packed)); 2882} __packed;
2883 2883
2884struct iwl4965_beacon_notif { 2884struct iwl4965_beacon_notif {
2885 struct iwl4965_tx_resp beacon_notify_hdr; 2885 struct iwl4965_tx_resp beacon_notify_hdr;
2886 __le32 low_tsf; 2886 __le32 low_tsf;
2887 __le32 high_tsf; 2887 __le32 high_tsf;
2888 __le32 ibss_mgr_status; 2888 __le32 ibss_mgr_status;
2889} __attribute__ ((packed)); 2889} __packed;
2890 2890
2891/* 2891/*
2892 * REPLY_TX_BEACON = 0x91 (command, has simple generic response) 2892 * REPLY_TX_BEACON = 0x91 (command, has simple generic response)
@@ -2898,7 +2898,7 @@ struct iwl3945_tx_beacon_cmd {
2898 u8 tim_size; 2898 u8 tim_size;
2899 u8 reserved1; 2899 u8 reserved1;
2900 struct ieee80211_hdr frame[0]; /* beacon frame */ 2900 struct ieee80211_hdr frame[0]; /* beacon frame */
2901} __attribute__ ((packed)); 2901} __packed;
2902 2902
2903struct iwl_tx_beacon_cmd { 2903struct iwl_tx_beacon_cmd {
2904 struct iwl_tx_cmd tx; 2904 struct iwl_tx_cmd tx;
@@ -2906,7 +2906,7 @@ struct iwl_tx_beacon_cmd {
2906 u8 tim_size; 2906 u8 tim_size;
2907 u8 reserved1; 2907 u8 reserved1;
2908 struct ieee80211_hdr frame[0]; /* beacon frame */ 2908 struct ieee80211_hdr frame[0]; /* beacon frame */
2909} __attribute__ ((packed)); 2909} __packed;
2910 2910
2911/****************************************************************************** 2911/******************************************************************************
2912 * (10) 2912 * (10)
@@ -2932,7 +2932,7 @@ struct rate_histogram {
2932 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS]; 2932 __le32 b[SUP_RATE_11B_MAX_NUM_CHANNELS];
2933 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS]; 2933 __le32 g[SUP_RATE_11G_MAX_NUM_CHANNELS];
2934 } failed; 2934 } failed;
2935} __attribute__ ((packed)); 2935} __packed;
2936 2936
2937/* statistics command response */ 2937/* statistics command response */
2938 2938
@@ -2952,7 +2952,7 @@ struct iwl39_statistics_rx_phy {
2952 __le32 rxe_frame_limit_overrun; 2952 __le32 rxe_frame_limit_overrun;
2953 __le32 sent_ack_cnt; 2953 __le32 sent_ack_cnt;
2954 __le32 sent_cts_cnt; 2954 __le32 sent_cts_cnt;
2955} __attribute__ ((packed)); 2955} __packed;
2956 2956
2957struct iwl39_statistics_rx_non_phy { 2957struct iwl39_statistics_rx_non_phy {
2958 __le32 bogus_cts; /* CTS received when not expecting CTS */ 2958 __le32 bogus_cts; /* CTS received when not expecting CTS */
@@ -2963,13 +2963,13 @@ struct iwl39_statistics_rx_non_phy {
2963 * filtering process */ 2963 * filtering process */
2964 __le32 non_channel_beacons; /* beacons with our bss id but not on 2964 __le32 non_channel_beacons; /* beacons with our bss id but not on
2965 * our serving channel */ 2965 * our serving channel */
2966} __attribute__ ((packed)); 2966} __packed;
2967 2967
2968struct iwl39_statistics_rx { 2968struct iwl39_statistics_rx {
2969 struct iwl39_statistics_rx_phy ofdm; 2969 struct iwl39_statistics_rx_phy ofdm;
2970 struct iwl39_statistics_rx_phy cck; 2970 struct iwl39_statistics_rx_phy cck;
2971 struct iwl39_statistics_rx_non_phy general; 2971 struct iwl39_statistics_rx_non_phy general;
2972} __attribute__ ((packed)); 2972} __packed;
2973 2973
2974struct iwl39_statistics_tx { 2974struct iwl39_statistics_tx {
2975 __le32 preamble_cnt; 2975 __le32 preamble_cnt;
@@ -2981,20 +2981,20 @@ struct iwl39_statistics_tx {
2981 __le32 ack_timeout; 2981 __le32 ack_timeout;
2982 __le32 expected_ack_cnt; 2982 __le32 expected_ack_cnt;
2983 __le32 actual_ack_cnt; 2983 __le32 actual_ack_cnt;
2984} __attribute__ ((packed)); 2984} __packed;
2985 2985
2986struct statistics_dbg { 2986struct statistics_dbg {
2987 __le32 burst_check; 2987 __le32 burst_check;
2988 __le32 burst_count; 2988 __le32 burst_count;
2989 __le32 reserved[4]; 2989 __le32 reserved[4];
2990} __attribute__ ((packed)); 2990} __packed;
2991 2991
2992struct iwl39_statistics_div { 2992struct iwl39_statistics_div {
2993 __le32 tx_on_a; 2993 __le32 tx_on_a;
2994 __le32 tx_on_b; 2994 __le32 tx_on_b;
2995 __le32 exec_time; 2995 __le32 exec_time;
2996 __le32 probe_time; 2996 __le32 probe_time;
2997} __attribute__ ((packed)); 2997} __packed;
2998 2998
2999struct iwl39_statistics_general { 2999struct iwl39_statistics_general {
3000 __le32 temperature; 3000 __le32 temperature;
@@ -3004,7 +3004,7 @@ struct iwl39_statistics_general {
3004 __le32 slots_idle; 3004 __le32 slots_idle;
3005 __le32 ttl_timestamp; 3005 __le32 ttl_timestamp;
3006 struct iwl39_statistics_div div; 3006 struct iwl39_statistics_div div;
3007} __attribute__ ((packed)); 3007} __packed;
3008 3008
3009struct statistics_rx_phy { 3009struct statistics_rx_phy {
3010 __le32 ina_cnt; 3010 __le32 ina_cnt;
@@ -3027,7 +3027,7 @@ struct statistics_rx_phy {
3027 __le32 mh_format_err; 3027 __le32 mh_format_err;
3028 __le32 re_acq_main_rssi_sum; 3028 __le32 re_acq_main_rssi_sum;
3029 __le32 reserved3; 3029 __le32 reserved3;
3030} __attribute__ ((packed)); 3030} __packed;
3031 3031
3032struct statistics_rx_ht_phy { 3032struct statistics_rx_ht_phy {
3033 __le32 plcp_err; 3033 __le32 plcp_err;
@@ -3040,7 +3040,7 @@ struct statistics_rx_ht_phy {
3040 __le32 agg_mpdu_cnt; 3040 __le32 agg_mpdu_cnt;
3041 __le32 agg_cnt; 3041 __le32 agg_cnt;
3042 __le32 unsupport_mcs; 3042 __le32 unsupport_mcs;
3043} __attribute__ ((packed)); 3043} __packed;
3044 3044
3045#define INTERFERENCE_DATA_AVAILABLE cpu_to_le32(1) 3045#define INTERFERENCE_DATA_AVAILABLE cpu_to_le32(1)
3046 3046
@@ -3075,14 +3075,14 @@ struct statistics_rx_non_phy {
3075 __le32 beacon_energy_a; 3075 __le32 beacon_energy_a;
3076 __le32 beacon_energy_b; 3076 __le32 beacon_energy_b;
3077 __le32 beacon_energy_c; 3077 __le32 beacon_energy_c;
3078} __attribute__ ((packed)); 3078} __packed;
3079 3079
3080struct statistics_rx { 3080struct statistics_rx {
3081 struct statistics_rx_phy ofdm; 3081 struct statistics_rx_phy ofdm;
3082 struct statistics_rx_phy cck; 3082 struct statistics_rx_phy cck;
3083 struct statistics_rx_non_phy general; 3083 struct statistics_rx_non_phy general;
3084 struct statistics_rx_ht_phy ofdm_ht; 3084 struct statistics_rx_ht_phy ofdm_ht;
3085} __attribute__ ((packed)); 3085} __packed;
3086 3086
3087/** 3087/**
3088 * struct statistics_tx_power - current tx power 3088 * struct statistics_tx_power - current tx power
@@ -3096,7 +3096,7 @@ struct statistics_tx_power {
3096 u8 ant_b; 3096 u8 ant_b;
3097 u8 ant_c; 3097 u8 ant_c;
3098 u8 reserved; 3098 u8 reserved;
3099} __attribute__ ((packed)); 3099} __packed;
3100 3100
3101struct statistics_tx_non_phy_agg { 3101struct statistics_tx_non_phy_agg {
3102 __le32 ba_timeout; 3102 __le32 ba_timeout;
@@ -3109,7 +3109,7 @@ struct statistics_tx_non_phy_agg {
3109 __le32 underrun; 3109 __le32 underrun;
3110 __le32 bt_prio_kill; 3110 __le32 bt_prio_kill;
3111 __le32 rx_ba_rsp_cnt; 3111 __le32 rx_ba_rsp_cnt;
3112} __attribute__ ((packed)); 3112} __packed;
3113 3113
3114struct statistics_tx { 3114struct statistics_tx {
3115 __le32 preamble_cnt; 3115 __le32 preamble_cnt;
@@ -3134,7 +3134,7 @@ struct statistics_tx {
3134 */ 3134 */
3135 struct statistics_tx_power tx_power; 3135 struct statistics_tx_power tx_power;
3136 __le32 reserved1; 3136 __le32 reserved1;
3137} __attribute__ ((packed)); 3137} __packed;
3138 3138
3139 3139
3140struct statistics_div { 3140struct statistics_div {
@@ -3144,7 +3144,7 @@ struct statistics_div {
3144 __le32 probe_time; 3144 __le32 probe_time;
3145 __le32 reserved1; 3145 __le32 reserved1;
3146 __le32 reserved2; 3146 __le32 reserved2;
3147} __attribute__ ((packed)); 3147} __packed;
3148 3148
3149struct statistics_general { 3149struct statistics_general {
3150 __le32 temperature; /* radio temperature */ 3150 __le32 temperature; /* radio temperature */
@@ -3164,7 +3164,7 @@ struct statistics_general {
3164 __le32 num_of_sos_states; 3164 __le32 num_of_sos_states;
3165 __le32 reserved2; 3165 __le32 reserved2;
3166 __le32 reserved3; 3166 __le32 reserved3;
3167} __attribute__ ((packed)); 3167} __packed;
3168 3168
3169#define UCODE_STATISTICS_CLEAR_MSK (0x1 << 0) 3169#define UCODE_STATISTICS_CLEAR_MSK (0x1 << 0)
3170#define UCODE_STATISTICS_FREQUENCY_MSK (0x1 << 1) 3170#define UCODE_STATISTICS_FREQUENCY_MSK (0x1 << 1)
@@ -3189,7 +3189,7 @@ struct statistics_general {
3189#define IWL_STATS_CONF_DISABLE_NOTIF cpu_to_le32(0x2)/* see above */ 3189#define IWL_STATS_CONF_DISABLE_NOTIF cpu_to_le32(0x2)/* see above */
3190struct iwl_statistics_cmd { 3190struct iwl_statistics_cmd {
3191 __le32 configuration_flags; /* IWL_STATS_CONF_* */ 3191 __le32 configuration_flags; /* IWL_STATS_CONF_* */
3192} __attribute__ ((packed)); 3192} __packed;
3193 3193
3194/* 3194/*
3195 * STATISTICS_NOTIFICATION = 0x9d (notification only, not a command) 3195 * STATISTICS_NOTIFICATION = 0x9d (notification only, not a command)
@@ -3214,14 +3214,14 @@ struct iwl3945_notif_statistics {
3214 struct iwl39_statistics_rx rx; 3214 struct iwl39_statistics_rx rx;
3215 struct iwl39_statistics_tx tx; 3215 struct iwl39_statistics_tx tx;
3216 struct iwl39_statistics_general general; 3216 struct iwl39_statistics_general general;
3217} __attribute__ ((packed)); 3217} __packed;
3218 3218
3219struct iwl_notif_statistics { 3219struct iwl_notif_statistics {
3220 __le32 flag; 3220 __le32 flag;
3221 struct statistics_rx rx; 3221 struct statistics_rx rx;
3222 struct statistics_tx tx; 3222 struct statistics_tx tx;
3223 struct statistics_general general; 3223 struct statistics_general general;
3224} __attribute__ ((packed)); 3224} __packed;
3225 3225
3226 3226
3227/* 3227/*
@@ -3253,7 +3253,7 @@ struct iwl_missed_beacon_notif {
3253 __le32 total_missed_becons; 3253 __le32 total_missed_becons;
3254 __le32 num_expected_beacons; 3254 __le32 num_expected_beacons;
3255 __le32 num_recvd_beacons; 3255 __le32 num_recvd_beacons;
3256} __attribute__ ((packed)); 3256} __packed;
3257 3257
3258 3258
3259/****************************************************************************** 3259/******************************************************************************
@@ -3455,7 +3455,7 @@ struct iwl_missed_beacon_notif {
3455struct iwl_sensitivity_cmd { 3455struct iwl_sensitivity_cmd {
3456 __le16 control; /* always use "1" */ 3456 __le16 control; /* always use "1" */
3457 __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */ 3457 __le16 table[HD_TABLE_SIZE]; /* use HD_* as index */
3458} __attribute__ ((packed)); 3458} __packed;
3459 3459
3460 3460
3461/** 3461/**
@@ -3536,31 +3536,31 @@ struct iwl_calib_cfg_elmnt_s {
3536 __le32 send_res; 3536 __le32 send_res;
3537 __le32 apply_res; 3537 __le32 apply_res;
3538 __le32 reserved; 3538 __le32 reserved;
3539} __attribute__ ((packed)); 3539} __packed;
3540 3540
3541struct iwl_calib_cfg_status_s { 3541struct iwl_calib_cfg_status_s {
3542 struct iwl_calib_cfg_elmnt_s once; 3542 struct iwl_calib_cfg_elmnt_s once;
3543 struct iwl_calib_cfg_elmnt_s perd; 3543 struct iwl_calib_cfg_elmnt_s perd;
3544 __le32 flags; 3544 __le32 flags;
3545} __attribute__ ((packed)); 3545} __packed;
3546 3546
3547struct iwl_calib_cfg_cmd { 3547struct iwl_calib_cfg_cmd {
3548 struct iwl_calib_cfg_status_s ucd_calib_cfg; 3548 struct iwl_calib_cfg_status_s ucd_calib_cfg;
3549 struct iwl_calib_cfg_status_s drv_calib_cfg; 3549 struct iwl_calib_cfg_status_s drv_calib_cfg;
3550 __le32 reserved1; 3550 __le32 reserved1;
3551} __attribute__ ((packed)); 3551} __packed;
3552 3552
3553struct iwl_calib_hdr { 3553struct iwl_calib_hdr {
3554 u8 op_code; 3554 u8 op_code;
3555 u8 first_group; 3555 u8 first_group;
3556 u8 groups_num; 3556 u8 groups_num;
3557 u8 data_valid; 3557 u8 data_valid;
3558} __attribute__ ((packed)); 3558} __packed;
3559 3559
3560struct iwl_calib_cmd { 3560struct iwl_calib_cmd {
3561 struct iwl_calib_hdr hdr; 3561 struct iwl_calib_hdr hdr;
3562 u8 data[0]; 3562 u8 data[0];
3563} __attribute__ ((packed)); 3563} __packed;
3564 3564
3565/* IWL_PHY_CALIBRATE_DIFF_GAIN_CMD (7) */ 3565/* IWL_PHY_CALIBRATE_DIFF_GAIN_CMD (7) */
3566struct iwl_calib_diff_gain_cmd { 3566struct iwl_calib_diff_gain_cmd {
@@ -3569,14 +3569,14 @@ struct iwl_calib_diff_gain_cmd {
3569 s8 diff_gain_b; 3569 s8 diff_gain_b;
3570 s8 diff_gain_c; 3570 s8 diff_gain_c;
3571 u8 reserved1; 3571 u8 reserved1;
3572} __attribute__ ((packed)); 3572} __packed;
3573 3573
3574struct iwl_calib_xtal_freq_cmd { 3574struct iwl_calib_xtal_freq_cmd {
3575 struct iwl_calib_hdr hdr; 3575 struct iwl_calib_hdr hdr;
3576 u8 cap_pin1; 3576 u8 cap_pin1;
3577 u8 cap_pin2; 3577 u8 cap_pin2;
3578 u8 pad[2]; 3578 u8 pad[2];
3579} __attribute__ ((packed)); 3579} __packed;
3580 3580
3581/* IWL_PHY_CALIBRATE_CHAIN_NOISE_RESET_CMD */ 3581/* IWL_PHY_CALIBRATE_CHAIN_NOISE_RESET_CMD */
3582struct iwl_calib_chain_noise_reset_cmd { 3582struct iwl_calib_chain_noise_reset_cmd {
@@ -3590,7 +3590,7 @@ struct iwl_calib_chain_noise_gain_cmd {
3590 u8 delta_gain_1; 3590 u8 delta_gain_1;
3591 u8 delta_gain_2; 3591 u8 delta_gain_2;
3592 u8 pad[2]; 3592 u8 pad[2];
3593} __attribute__ ((packed)); 3593} __packed;
3594 3594
3595/****************************************************************************** 3595/******************************************************************************
3596 * (12) 3596 * (12)
@@ -3613,7 +3613,7 @@ struct iwl_led_cmd {
3613 u8 on; /* # intervals on while blinking; 3613 u8 on; /* # intervals on while blinking;
3614 * "0", regardless of "off", turns LED off */ 3614 * "0", regardless of "off", turns LED off */
3615 u8 reserved; 3615 u8 reserved;
3616} __attribute__ ((packed)); 3616} __packed;
3617 3617
3618/* 3618/*
3619 * station priority table entries 3619 * station priority table entries
@@ -3749,7 +3749,7 @@ struct iwl_wimax_coex_event_entry {
3749 u8 win_medium_prio; 3749 u8 win_medium_prio;
3750 u8 reserved; 3750 u8 reserved;
3751 u8 flags; 3751 u8 flags;
3752} __attribute__ ((packed)); 3752} __packed;
3753 3753
3754/* COEX flag masks */ 3754/* COEX flag masks */
3755 3755
@@ -3766,7 +3766,7 @@ struct iwl_wimax_coex_cmd {
3766 u8 flags; 3766 u8 flags;
3767 u8 reserved[3]; 3767 u8 reserved[3];
3768 struct iwl_wimax_coex_event_entry sta_prio[COEX_NUM_OF_EVENTS]; 3768 struct iwl_wimax_coex_event_entry sta_prio[COEX_NUM_OF_EVENTS];
3769} __attribute__ ((packed)); 3769} __packed;
3770 3770
3771/* 3771/*
3772 * Coexistence MEDIUM NOTIFICATION 3772 * Coexistence MEDIUM NOTIFICATION
@@ -3795,7 +3795,7 @@ struct iwl_wimax_coex_cmd {
3795struct iwl_coex_medium_notification { 3795struct iwl_coex_medium_notification {
3796 __le32 status; 3796 __le32 status;
3797 __le32 events; 3797 __le32 events;
3798} __attribute__ ((packed)); 3798} __packed;
3799 3799
3800/* 3800/*
3801 * Coexistence EVENT Command 3801 * Coexistence EVENT Command
@@ -3810,11 +3810,11 @@ struct iwl_coex_event_cmd {
3810 u8 flags; 3810 u8 flags;
3811 u8 event; 3811 u8 event;
3812 __le16 reserved; 3812 __le16 reserved;
3813} __attribute__ ((packed)); 3813} __packed;
3814 3814
3815struct iwl_coex_event_resp { 3815struct iwl_coex_event_resp {
3816 __le32 status; 3816 __le32 status;
3817} __attribute__ ((packed)); 3817} __packed;
3818 3818
3819 3819
3820/****************************************************************************** 3820/******************************************************************************
@@ -3858,7 +3858,7 @@ struct iwl_rx_packet {
3858 __le32 status; 3858 __le32 status;
3859 u8 raw[0]; 3859 u8 raw[0];
3860 } u; 3860 } u;
3861} __attribute__ ((packed)); 3861} __packed;
3862 3862
3863int iwl_agn_check_rxon_cmd(struct iwl_priv *priv); 3863int iwl_agn_check_rxon_cmd(struct iwl_priv *priv);
3864 3864
diff --git a/drivers/net/wireless/iwlwifi/iwl-dev.h b/drivers/net/wireless/iwlwifi/iwl-dev.h
index f3f3473c5c7e..a36a6ef45aae 100644
--- a/drivers/net/wireless/iwlwifi/iwl-dev.h
+++ b/drivers/net/wireless/iwlwifi/iwl-dev.h
@@ -157,7 +157,7 @@ struct iwl_queue {
157 * space more than this */ 157 * space more than this */
158 int high_mark; /* high watermark, stop queue if free 158 int high_mark; /* high watermark, stop queue if free
159 * space less than this */ 159 * space less than this */
160} __attribute__ ((packed)); 160} __packed;
161 161
162/* One for each TFD */ 162/* One for each TFD */
163struct iwl_tx_info { 163struct iwl_tx_info {
@@ -343,8 +343,8 @@ struct iwl_device_cmd {
343 struct iwl_tx_cmd tx; 343 struct iwl_tx_cmd tx;
344 struct iwl6000_channel_switch_cmd chswitch; 344 struct iwl6000_channel_switch_cmd chswitch;
345 u8 payload[DEF_CMD_PAYLOAD_SIZE]; 345 u8 payload[DEF_CMD_PAYLOAD_SIZE];
346 } __attribute__ ((packed)) cmd; 346 } __packed cmd;
347} __attribute__ ((packed)); 347} __packed;
348 348
349#define TFD_MAX_PAYLOAD_SIZE (sizeof(struct iwl_device_cmd)) 349#define TFD_MAX_PAYLOAD_SIZE (sizeof(struct iwl_device_cmd))
350 350
@@ -590,7 +590,7 @@ struct iwl_ucode_tlv {
590 __le16 alternative; /* see comment */ 590 __le16 alternative; /* see comment */
591 __le32 length; /* not including type/length fields */ 591 __le32 length; /* not including type/length fields */
592 u8 data[0]; 592 u8 data[0];
593} __attribute__ ((packed)); 593} __packed;
594 594
595#define IWL_TLV_UCODE_MAGIC 0x0a4c5749 595#define IWL_TLV_UCODE_MAGIC 0x0a4c5749
596 596
diff --git a/drivers/net/wireless/iwlwifi/iwl-eeprom.h b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
index 95aa202c85e3..5488006491a2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-eeprom.h
+++ b/drivers/net/wireless/iwlwifi/iwl-eeprom.h
@@ -118,7 +118,7 @@ enum {
118struct iwl_eeprom_channel { 118struct iwl_eeprom_channel {
119 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */ 119 u8 flags; /* EEPROM_CHANNEL_* flags copied from EEPROM */
120 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */ 120 s8 max_power_avg; /* max power (dBm) on this chnl, limit 31 */
121} __attribute__ ((packed)); 121} __packed;
122 122
123/** 123/**
124 * iwl_eeprom_enhanced_txpwr structure 124 * iwl_eeprom_enhanced_txpwr structure
@@ -144,7 +144,7 @@ struct iwl_eeprom_enhanced_txpwr {
144 s8 reserved; 144 s8 reserved;
145 s8 mimo2_max; 145 s8 mimo2_max;
146 s8 mimo3_max; 146 s8 mimo3_max;
147} __attribute__ ((packed)); 147} __packed;
148 148
149/* 3945 Specific */ 149/* 3945 Specific */
150#define EEPROM_3945_EEPROM_VERSION (0x2f) 150#define EEPROM_3945_EEPROM_VERSION (0x2f)
@@ -312,7 +312,7 @@ struct iwl_eeprom_calib_measure {
312 u8 gain_idx; /* Index into gain table */ 312 u8 gain_idx; /* Index into gain table */
313 u8 actual_pow; /* Measured RF output power, half-dBm */ 313 u8 actual_pow; /* Measured RF output power, half-dBm */
314 s8 pa_det; /* Power amp detector level (not used) */ 314 s8 pa_det; /* Power amp detector level (not used) */
315} __attribute__ ((packed)); 315} __packed;
316 316
317 317
318/* 318/*
@@ -328,7 +328,7 @@ struct iwl_eeprom_calib_ch_info {
328 struct iwl_eeprom_calib_measure 328 struct iwl_eeprom_calib_measure
329 measurements[EEPROM_TX_POWER_TX_CHAINS] 329 measurements[EEPROM_TX_POWER_TX_CHAINS]
330 [EEPROM_TX_POWER_MEASUREMENTS]; 330 [EEPROM_TX_POWER_MEASUREMENTS];
331} __attribute__ ((packed)); 331} __packed;
332 332
333/* 333/*
334 * txpower subband info. 334 * txpower subband info.
@@ -345,7 +345,7 @@ struct iwl_eeprom_calib_subband_info {
345 u8 ch_to; /* channel number of highest channel in subband */ 345 u8 ch_to; /* channel number of highest channel in subband */
346 struct iwl_eeprom_calib_ch_info ch1; 346 struct iwl_eeprom_calib_ch_info ch1;
347 struct iwl_eeprom_calib_ch_info ch2; 347 struct iwl_eeprom_calib_ch_info ch2;
348} __attribute__ ((packed)); 348} __packed;
349 349
350 350
351/* 351/*
@@ -374,7 +374,7 @@ struct iwl_eeprom_calib_info {
374 __le16 voltage; /* signed */ 374 __le16 voltage; /* signed */
375 struct iwl_eeprom_calib_subband_info 375 struct iwl_eeprom_calib_subband_info
376 band_info[EEPROM_TX_POWER_BANDS]; 376 band_info[EEPROM_TX_POWER_BANDS];
377} __attribute__ ((packed)); 377} __packed;
378 378
379 379
380#define ADDRESS_MSK 0x0000FFFF 380#define ADDRESS_MSK 0x0000FFFF
diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
index 113c3669b9ce..a3fcbb5f2c70 100644
--- a/drivers/net/wireless/iwlwifi/iwl-fh.h
+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
@@ -449,7 +449,7 @@ struct iwl_rb_status {
449 __le16 finished_rb_num; 449 __le16 finished_rb_num;
450 __le16 finished_fr_nam; 450 __le16 finished_fr_nam;
451 __le32 __unused; /* 3945 only */ 451 __le32 __unused; /* 3945 only */
452} __attribute__ ((packed)); 452} __packed;
453 453
454 454
455#define TFD_QUEUE_SIZE_MAX (256) 455#define TFD_QUEUE_SIZE_MAX (256)
@@ -475,7 +475,7 @@ static inline u8 iwl_get_dma_hi_addr(dma_addr_t addr)
475struct iwl_tfd_tb { 475struct iwl_tfd_tb {
476 __le32 lo; 476 __le32 lo;
477 __le16 hi_n_len; 477 __le16 hi_n_len;
478} __attribute__((packed)); 478} __packed;
479 479
480/** 480/**
481 * struct iwl_tfd 481 * struct iwl_tfd
@@ -510,7 +510,7 @@ struct iwl_tfd {
510 u8 num_tbs; 510 u8 num_tbs;
511 struct iwl_tfd_tb tbs[IWL_NUM_OF_TBS]; 511 struct iwl_tfd_tb tbs[IWL_NUM_OF_TBS];
512 __le32 __pad; 512 __le32 __pad;
513} __attribute__ ((packed)); 513} __packed;
514 514
515/* Keep Warm Size */ 515/* Keep Warm Size */
516#define IWL_KW_SIZE 0x1000 /* 4k */ 516#define IWL_KW_SIZE 0x1000 /* 4k */
diff --git a/drivers/net/wireless/iwlwifi/iwl-spectrum.h b/drivers/net/wireless/iwlwifi/iwl-spectrum.h
index af6babee2891..c4ca0b5d77da 100644
--- a/drivers/net/wireless/iwlwifi/iwl-spectrum.h
+++ b/drivers/net/wireless/iwlwifi/iwl-spectrum.h
@@ -42,7 +42,7 @@ struct ieee80211_basic_report {
42 __le64 start_time; 42 __le64 start_time;
43 __le16 duration; 43 __le16 duration;
44 u8 map; 44 u8 map;
45} __attribute__ ((packed)); 45} __packed;
46 46
47enum { /* ieee80211_measurement_request.mode */ 47enum { /* ieee80211_measurement_request.mode */
48 /* Bit 0 is reserved */ 48 /* Bit 0 is reserved */
@@ -63,13 +63,13 @@ struct ieee80211_measurement_params {
63 u8 channel; 63 u8 channel;
64 __le64 start_time; 64 __le64 start_time;
65 __le16 duration; 65 __le16 duration;
66} __attribute__ ((packed)); 66} __packed;
67 67
68struct ieee80211_info_element { 68struct ieee80211_info_element {
69 u8 id; 69 u8 id;
70 u8 len; 70 u8 len;
71 u8 data[0]; 71 u8 data[0];
72} __attribute__ ((packed)); 72} __packed;
73 73
74struct ieee80211_measurement_request { 74struct ieee80211_measurement_request {
75 struct ieee80211_info_element ie; 75 struct ieee80211_info_element ie;
@@ -77,7 +77,7 @@ struct ieee80211_measurement_request {
77 u8 mode; 77 u8 mode;
78 u8 type; 78 u8 type;
79 struct ieee80211_measurement_params params[0]; 79 struct ieee80211_measurement_params params[0];
80} __attribute__ ((packed)); 80} __packed;
81 81
82struct ieee80211_measurement_report { 82struct ieee80211_measurement_report {
83 struct ieee80211_info_element ie; 83 struct ieee80211_info_element ie;
@@ -87,6 +87,6 @@ struct ieee80211_measurement_report {
87 union { 87 union {
88 struct ieee80211_basic_report basic[0]; 88 struct ieee80211_basic_report basic[0];
89 } u; 89 } u;
90} __attribute__ ((packed)); 90} __packed;
91 91
92#endif 92#endif
diff --git a/drivers/net/wireless/iwmc3200wifi/commands.h b/drivers/net/wireless/iwmc3200wifi/commands.h
index 7e16bcf59978..6421689f5e8e 100644
--- a/drivers/net/wireless/iwmc3200wifi/commands.h
+++ b/drivers/net/wireless/iwmc3200wifi/commands.h
@@ -56,7 +56,7 @@
56 56
57struct iwm_umac_cmd_reset { 57struct iwm_umac_cmd_reset {
58 __le32 flags; 58 __le32 flags;
59} __attribute__ ((packed)); 59} __packed;
60 60
61#define UMAC_PARAM_TBL_ORD_FIX 0x0 61#define UMAC_PARAM_TBL_ORD_FIX 0x0
62#define UMAC_PARAM_TBL_ORD_VAR 0x1 62#define UMAC_PARAM_TBL_ORD_VAR 0x1
@@ -220,37 +220,37 @@ struct iwm_umac_cmd_set_param_fix {
220 __le16 tbl; 220 __le16 tbl;
221 __le16 key; 221 __le16 key;
222 __le32 value; 222 __le32 value;
223} __attribute__ ((packed)); 223} __packed;
224 224
225struct iwm_umac_cmd_set_param_var { 225struct iwm_umac_cmd_set_param_var {
226 __le16 tbl; 226 __le16 tbl;
227 __le16 key; 227 __le16 key;
228 __le16 len; 228 __le16 len;
229 __le16 reserved; 229 __le16 reserved;
230} __attribute__ ((packed)); 230} __packed;
231 231
232struct iwm_umac_cmd_get_param { 232struct iwm_umac_cmd_get_param {
233 __le16 tbl; 233 __le16 tbl;
234 __le16 key; 234 __le16 key;
235} __attribute__ ((packed)); 235} __packed;
236 236
237struct iwm_umac_cmd_get_param_resp { 237struct iwm_umac_cmd_get_param_resp {
238 __le16 tbl; 238 __le16 tbl;
239 __le16 key; 239 __le16 key;
240 __le16 len; 240 __le16 len;
241 __le16 reserved; 241 __le16 reserved;
242} __attribute__ ((packed)); 242} __packed;
243 243
244struct iwm_umac_cmd_eeprom_proxy_hdr { 244struct iwm_umac_cmd_eeprom_proxy_hdr {
245 __le32 type; 245 __le32 type;
246 __le32 offset; 246 __le32 offset;
247 __le32 len; 247 __le32 len;
248} __attribute__ ((packed)); 248} __packed;
249 249
250struct iwm_umac_cmd_eeprom_proxy { 250struct iwm_umac_cmd_eeprom_proxy {
251 struct iwm_umac_cmd_eeprom_proxy_hdr hdr; 251 struct iwm_umac_cmd_eeprom_proxy_hdr hdr;
252 u8 buf[0]; 252 u8 buf[0];
253} __attribute__ ((packed)); 253} __packed;
254 254
255#define IWM_UMAC_CMD_EEPROM_TYPE_READ 0x1 255#define IWM_UMAC_CMD_EEPROM_TYPE_READ 0x1
256#define IWM_UMAC_CMD_EEPROM_TYPE_WRITE 0x2 256#define IWM_UMAC_CMD_EEPROM_TYPE_WRITE 0x2
@@ -267,13 +267,13 @@ struct iwm_umac_channel_info {
267 u8 reserved; 267 u8 reserved;
268 u8 flags; 268 u8 flags;
269 __le32 channels_mask; 269 __le32 channels_mask;
270} __attribute__ ((packed)); 270} __packed;
271 271
272struct iwm_umac_cmd_get_channel_list { 272struct iwm_umac_cmd_get_channel_list {
273 __le16 count; 273 __le16 count;
274 __le16 reserved; 274 __le16 reserved;
275 struct iwm_umac_channel_info ch[0]; 275 struct iwm_umac_channel_info ch[0];
276} __attribute__ ((packed)); 276} __packed;
277 277
278 278
279/* UMAC WiFi interface commands */ 279/* UMAC WiFi interface commands */
@@ -304,7 +304,7 @@ struct iwm_umac_ssid {
304 u8 ssid_len; 304 u8 ssid_len;
305 u8 ssid[IEEE80211_MAX_SSID_LEN]; 305 u8 ssid[IEEE80211_MAX_SSID_LEN];
306 u8 reserved[3]; 306 u8 reserved[3];
307} __attribute__ ((packed)); 307} __packed;
308 308
309struct iwm_umac_cmd_scan_request { 309struct iwm_umac_cmd_scan_request {
310 struct iwm_umac_wifi_if hdr; 310 struct iwm_umac_wifi_if hdr;
@@ -314,7 +314,7 @@ struct iwm_umac_cmd_scan_request {
314 u8 timeout; /* In seconds */ 314 u8 timeout; /* In seconds */
315 u8 reserved; 315 u8 reserved;
316 struct iwm_umac_ssid ssids[UMAC_WIFI_IF_PROBE_OPTION_MAX]; 316 struct iwm_umac_ssid ssids[UMAC_WIFI_IF_PROBE_OPTION_MAX];
317} __attribute__ ((packed)); 317} __packed;
318 318
319#define UMAC_CIPHER_TYPE_NONE 0xFF 319#define UMAC_CIPHER_TYPE_NONE 0xFF
320#define UMAC_CIPHER_TYPE_USE_GROUPCAST 0x00 320#define UMAC_CIPHER_TYPE_USE_GROUPCAST 0x00
@@ -357,7 +357,7 @@ struct iwm_umac_security {
357 u8 ucast_cipher; 357 u8 ucast_cipher;
358 u8 mcast_cipher; 358 u8 mcast_cipher;
359 u8 flags; 359 u8 flags;
360} __attribute__ ((packed)); 360} __packed;
361 361
362struct iwm_umac_ibss { 362struct iwm_umac_ibss {
363 u8 beacon_interval; /* in millisecond */ 363 u8 beacon_interval; /* in millisecond */
@@ -366,7 +366,7 @@ struct iwm_umac_ibss {
366 u8 band; 366 u8 band;
367 u8 channel; 367 u8 channel;
368 u8 reserved[3]; 368 u8 reserved[3];
369} __attribute__ ((packed)); 369} __packed;
370 370
371#define UMAC_MODE_BSS 0 371#define UMAC_MODE_BSS 0
372#define UMAC_MODE_IBSS 1 372#define UMAC_MODE_IBSS 1
@@ -385,13 +385,13 @@ struct iwm_umac_profile {
385 __le16 flags; 385 __le16 flags;
386 u8 wireless_mode; 386 u8 wireless_mode;
387 u8 bss_num; 387 u8 bss_num;
388} __attribute__ ((packed)); 388} __packed;
389 389
390struct iwm_umac_invalidate_profile { 390struct iwm_umac_invalidate_profile {
391 struct iwm_umac_wifi_if hdr; 391 struct iwm_umac_wifi_if hdr;
392 u8 reason; 392 u8 reason;
393 u8 reserved[3]; 393 u8 reserved[3];
394} __attribute__ ((packed)); 394} __packed;
395 395
396/* Encryption key commands */ 396/* Encryption key commands */
397struct iwm_umac_key_wep40 { 397struct iwm_umac_key_wep40 {
@@ -400,7 +400,7 @@ struct iwm_umac_key_wep40 {
400 u8 key[WLAN_KEY_LEN_WEP40]; 400 u8 key[WLAN_KEY_LEN_WEP40];
401 u8 static_key; 401 u8 static_key;
402 u8 reserved[2]; 402 u8 reserved[2];
403} __attribute__ ((packed)); 403} __packed;
404 404
405struct iwm_umac_key_wep104 { 405struct iwm_umac_key_wep104 {
406 struct iwm_umac_wifi_if hdr; 406 struct iwm_umac_wifi_if hdr;
@@ -408,7 +408,7 @@ struct iwm_umac_key_wep104 {
408 u8 key[WLAN_KEY_LEN_WEP104]; 408 u8 key[WLAN_KEY_LEN_WEP104];
409 u8 static_key; 409 u8 static_key;
410 u8 reserved[2]; 410 u8 reserved[2];
411} __attribute__ ((packed)); 411} __packed;
412 412
413#define IWM_TKIP_KEY_SIZE 16 413#define IWM_TKIP_KEY_SIZE 16
414#define IWM_TKIP_MIC_SIZE 8 414#define IWM_TKIP_MIC_SIZE 8
@@ -420,7 +420,7 @@ struct iwm_umac_key_tkip {
420 u8 tkip_key[IWM_TKIP_KEY_SIZE]; 420 u8 tkip_key[IWM_TKIP_KEY_SIZE];
421 u8 mic_rx_key[IWM_TKIP_MIC_SIZE]; 421 u8 mic_rx_key[IWM_TKIP_MIC_SIZE];
422 u8 mic_tx_key[IWM_TKIP_MIC_SIZE]; 422 u8 mic_tx_key[IWM_TKIP_MIC_SIZE];
423} __attribute__ ((packed)); 423} __packed;
424 424
425struct iwm_umac_key_ccmp { 425struct iwm_umac_key_ccmp {
426 struct iwm_umac_wifi_if hdr; 426 struct iwm_umac_wifi_if hdr;
@@ -428,27 +428,27 @@ struct iwm_umac_key_ccmp {
428 u8 iv_count[6]; 428 u8 iv_count[6];
429 u8 reserved[2]; 429 u8 reserved[2];
430 u8 key[WLAN_KEY_LEN_CCMP]; 430 u8 key[WLAN_KEY_LEN_CCMP];
431} __attribute__ ((packed)); 431} __packed;
432 432
433struct iwm_umac_key_remove { 433struct iwm_umac_key_remove {
434 struct iwm_umac_wifi_if hdr; 434 struct iwm_umac_wifi_if hdr;
435 struct iwm_umac_key_hdr key_hdr; 435 struct iwm_umac_key_hdr key_hdr;
436} __attribute__ ((packed)); 436} __packed;
437 437
438struct iwm_umac_tx_key_id { 438struct iwm_umac_tx_key_id {
439 struct iwm_umac_wifi_if hdr; 439 struct iwm_umac_wifi_if hdr;
440 u8 key_idx; 440 u8 key_idx;
441 u8 reserved[3]; 441 u8 reserved[3];
442} __attribute__ ((packed)); 442} __packed;
443 443
444struct iwm_umac_pwr_trigger { 444struct iwm_umac_pwr_trigger {
445 struct iwm_umac_wifi_if hdr; 445 struct iwm_umac_wifi_if hdr;
446 __le32 reseved; 446 __le32 reseved;
447} __attribute__ ((packed)); 447} __packed;
448 448
449struct iwm_umac_cmd_stats_req { 449struct iwm_umac_cmd_stats_req {
450 __le32 flags; 450 __le32 flags;
451} __attribute__ ((packed)); 451} __packed;
452 452
453struct iwm_umac_cmd_stop_resume_tx { 453struct iwm_umac_cmd_stop_resume_tx {
454 u8 flags; 454 u8 flags;
@@ -456,7 +456,7 @@ struct iwm_umac_cmd_stop_resume_tx {
456 __le16 stop_resume_tid_msk; 456 __le16 stop_resume_tid_msk;
457 __le16 last_seq_num[IWM_UMAC_TID_NR]; 457 __le16 last_seq_num[IWM_UMAC_TID_NR];
458 u16 reserved; 458 u16 reserved;
459} __attribute__ ((packed)); 459} __packed;
460 460
461#define IWM_CMD_PMKID_ADD 1 461#define IWM_CMD_PMKID_ADD 1
462#define IWM_CMD_PMKID_DEL 2 462#define IWM_CMD_PMKID_DEL 2
@@ -468,7 +468,7 @@ struct iwm_umac_pmkid_update {
468 u8 bssid[ETH_ALEN]; 468 u8 bssid[ETH_ALEN];
469 __le16 reserved; 469 __le16 reserved;
470 u8 pmkid[WLAN_PMKID_LEN]; 470 u8 pmkid[WLAN_PMKID_LEN];
471} __attribute__ ((packed)); 471} __packed;
472 472
473/* LMAC commands */ 473/* LMAC commands */
474int iwm_read_mac(struct iwm_priv *iwm, u8 *mac); 474int iwm_read_mac(struct iwm_priv *iwm, u8 *mac);
diff --git a/drivers/net/wireless/iwmc3200wifi/iwm.h b/drivers/net/wireless/iwmc3200wifi/iwm.h
index 13266c3842f8..51d7efa15ae6 100644
--- a/drivers/net/wireless/iwmc3200wifi/iwm.h
+++ b/drivers/net/wireless/iwmc3200wifi/iwm.h
@@ -162,7 +162,7 @@ struct iwm_umac_key_hdr {
162 u8 mac[ETH_ALEN]; 162 u8 mac[ETH_ALEN];
163 u8 key_idx; 163 u8 key_idx;
164 u8 multicast; /* BCast encrypt & BCast decrypt of frames FROM mac */ 164 u8 multicast; /* BCast encrypt & BCast decrypt of frames FROM mac */
165} __attribute__ ((packed)); 165} __packed;
166 166
167struct iwm_key { 167struct iwm_key {
168 struct iwm_umac_key_hdr hdr; 168 struct iwm_umac_key_hdr hdr;
diff --git a/drivers/net/wireless/iwmc3200wifi/lmac.h b/drivers/net/wireless/iwmc3200wifi/lmac.h
index a855a99e49b8..5ddcdf8c70c0 100644
--- a/drivers/net/wireless/iwmc3200wifi/lmac.h
+++ b/drivers/net/wireless/iwmc3200wifi/lmac.h
@@ -43,7 +43,7 @@ struct iwm_lmac_hdr {
43 u8 id; 43 u8 id;
44 u8 flags; 44 u8 flags;
45 __le16 seq_num; 45 __le16 seq_num;
46} __attribute__ ((packed)); 46} __packed;
47 47
48/* LMAC commands */ 48/* LMAC commands */
49#define CALIB_CFG_FLAG_SEND_COMPLETE_NTFY_AFTER_MSK 0x1 49#define CALIB_CFG_FLAG_SEND_COMPLETE_NTFY_AFTER_MSK 0x1
@@ -54,23 +54,23 @@ struct iwm_lmac_cal_cfg_elt {
54 __le32 send_res; /* 1 for sending back results */ 54 __le32 send_res; /* 1 for sending back results */
55 __le32 apply_res; /* 1 for applying calibration results to HW */ 55 __le32 apply_res; /* 1 for applying calibration results to HW */
56 __le32 reserved; 56 __le32 reserved;
57} __attribute__ ((packed)); 57} __packed;
58 58
59struct iwm_lmac_cal_cfg_status { 59struct iwm_lmac_cal_cfg_status {
60 struct iwm_lmac_cal_cfg_elt init; 60 struct iwm_lmac_cal_cfg_elt init;
61 struct iwm_lmac_cal_cfg_elt periodic; 61 struct iwm_lmac_cal_cfg_elt periodic;
62 __le32 flags; /* CALIB_CFG_FLAG_SEND_COMPLETE_NTFY_AFTER_MSK */ 62 __le32 flags; /* CALIB_CFG_FLAG_SEND_COMPLETE_NTFY_AFTER_MSK */
63} __attribute__ ((packed)); 63} __packed;
64 64
65struct iwm_lmac_cal_cfg_cmd { 65struct iwm_lmac_cal_cfg_cmd {
66 struct iwm_lmac_cal_cfg_status ucode_cfg; 66 struct iwm_lmac_cal_cfg_status ucode_cfg;
67 struct iwm_lmac_cal_cfg_status driver_cfg; 67 struct iwm_lmac_cal_cfg_status driver_cfg;
68 __le32 reserved; 68 __le32 reserved;
69} __attribute__ ((packed)); 69} __packed;
70 70
71struct iwm_lmac_cal_cfg_resp { 71struct iwm_lmac_cal_cfg_resp {
72 __le32 status; 72 __le32 status;
73} __attribute__ ((packed)); 73} __packed;
74 74
75#define IWM_CARD_STATE_SW_HW_ENABLED 0x00 75#define IWM_CARD_STATE_SW_HW_ENABLED 0x00
76#define IWM_CARD_STATE_HW_DISABLED 0x01 76#define IWM_CARD_STATE_HW_DISABLED 0x01
@@ -80,7 +80,7 @@ struct iwm_lmac_cal_cfg_resp {
80 80
81struct iwm_lmac_card_state { 81struct iwm_lmac_card_state {
82 __le32 flags; 82 __le32 flags;
83} __attribute__ ((packed)); 83} __packed;
84 84
85/** 85/**
86 * COEX_PRIORITY_TABLE_CMD 86 * COEX_PRIORITY_TABLE_CMD
@@ -131,7 +131,7 @@ struct coex_event {
131 u8 win_med_prio; 131 u8 win_med_prio;
132 u8 reserved; 132 u8 reserved;
133 u8 flags; 133 u8 flags;
134} __attribute__ ((packed)); 134} __packed;
135 135
136#define COEX_FLAGS_STA_TABLE_VALID_MSK 0x1 136#define COEX_FLAGS_STA_TABLE_VALID_MSK 0x1
137#define COEX_FLAGS_UNASSOC_WAKEUP_UMASK_MSK 0x4 137#define COEX_FLAGS_UNASSOC_WAKEUP_UMASK_MSK 0x4
@@ -142,7 +142,7 @@ struct iwm_coex_prio_table_cmd {
142 u8 flags; 142 u8 flags;
143 u8 reserved[3]; 143 u8 reserved[3];
144 struct coex_event sta_prio[COEX_EVENTS_NUM]; 144 struct coex_event sta_prio[COEX_EVENTS_NUM];
145} __attribute__ ((packed)); 145} __packed;
146 146
147/* Coexistence definitions 147/* Coexistence definitions
148 * 148 *
@@ -192,7 +192,7 @@ struct iwm_ct_kill_cfg_cmd {
192 u32 exit_threshold; 192 u32 exit_threshold;
193 u32 reserved; 193 u32 reserved;
194 u32 entry_threshold; 194 u32 entry_threshold;
195} __attribute__ ((packed)); 195} __packed;
196 196
197 197
198/* LMAC OP CODES */ 198/* LMAC OP CODES */
@@ -428,7 +428,7 @@ struct iwm_lmac_calib_hdr {
428 u8 first_grp; 428 u8 first_grp;
429 u8 grp_num; 429 u8 grp_num;
430 u8 all_data_valid; 430 u8 all_data_valid;
431} __attribute__ ((packed)); 431} __packed;
432 432
433#define IWM_LMAC_CALIB_FREQ_GROUPS_NR 7 433#define IWM_LMAC_CALIB_FREQ_GROUPS_NR 7
434#define IWM_CALIB_FREQ_GROUPS_NR 5 434#define IWM_CALIB_FREQ_GROUPS_NR 5
@@ -437,20 +437,20 @@ struct iwm_lmac_calib_hdr {
437struct iwm_calib_rxiq_entry { 437struct iwm_calib_rxiq_entry {
438 u16 ptam_postdist_ars; 438 u16 ptam_postdist_ars;
439 u16 ptam_postdist_arc; 439 u16 ptam_postdist_arc;
440} __attribute__ ((packed)); 440} __packed;
441 441
442struct iwm_calib_rxiq_group { 442struct iwm_calib_rxiq_group {
443 struct iwm_calib_rxiq_entry mode[IWM_CALIB_DC_MODES_NR]; 443 struct iwm_calib_rxiq_entry mode[IWM_CALIB_DC_MODES_NR];
444} __attribute__ ((packed)); 444} __packed;
445 445
446struct iwm_lmac_calib_rxiq { 446struct iwm_lmac_calib_rxiq {
447 struct iwm_calib_rxiq_group group[IWM_LMAC_CALIB_FREQ_GROUPS_NR]; 447 struct iwm_calib_rxiq_group group[IWM_LMAC_CALIB_FREQ_GROUPS_NR];
448} __attribute__ ((packed)); 448} __packed;
449 449
450struct iwm_calib_rxiq { 450struct iwm_calib_rxiq {
451 struct iwm_lmac_calib_hdr hdr; 451 struct iwm_lmac_calib_hdr hdr;
452 struct iwm_calib_rxiq_group group[IWM_CALIB_FREQ_GROUPS_NR]; 452 struct iwm_calib_rxiq_group group[IWM_CALIB_FREQ_GROUPS_NR];
453} __attribute__ ((packed)); 453} __packed;
454 454
455#define LMAC_STA_ID_SEED 0x0f 455#define LMAC_STA_ID_SEED 0x0f
456#define LMAC_STA_ID_POS 0 456#define LMAC_STA_ID_POS 0
@@ -463,7 +463,7 @@ struct iwm_lmac_power_report {
463 u8 pa_integ_res_A[3]; 463 u8 pa_integ_res_A[3];
464 u8 pa_integ_res_B[3]; 464 u8 pa_integ_res_B[3];
465 u8 pa_integ_res_C[3]; 465 u8 pa_integ_res_C[3];
466} __attribute__ ((packed)); 466} __packed;
467 467
468struct iwm_lmac_tx_resp { 468struct iwm_lmac_tx_resp {
469 u8 frame_cnt; /* 1-no aggregation, greater then 1 - aggregation */ 469 u8 frame_cnt; /* 1-no aggregation, greater then 1 - aggregation */
@@ -479,6 +479,6 @@ struct iwm_lmac_tx_resp {
479 u8 ra_tid; 479 u8 ra_tid;
480 __le16 frame_ctl; 480 __le16 frame_ctl;
481 __le32 status; 481 __le32 status;
482} __attribute__ ((packed)); 482} __packed;
483 483
484#endif 484#endif
diff --git a/drivers/net/wireless/iwmc3200wifi/umac.h b/drivers/net/wireless/iwmc3200wifi/umac.h
index 0cbba3ecc813..4a137d334a42 100644
--- a/drivers/net/wireless/iwmc3200wifi/umac.h
+++ b/drivers/net/wireless/iwmc3200wifi/umac.h
@@ -42,19 +42,19 @@
42struct iwm_udma_in_hdr { 42struct iwm_udma_in_hdr {
43 __le32 cmd; 43 __le32 cmd;
44 __le32 size; 44 __le32 size;
45} __attribute__ ((packed)); 45} __packed;
46 46
47struct iwm_udma_out_nonwifi_hdr { 47struct iwm_udma_out_nonwifi_hdr {
48 __le32 cmd; 48 __le32 cmd;
49 __le32 addr; 49 __le32 addr;
50 __le32 op1_sz; 50 __le32 op1_sz;
51 __le32 op2; 51 __le32 op2;
52} __attribute__ ((packed)); 52} __packed;
53 53
54struct iwm_udma_out_wifi_hdr { 54struct iwm_udma_out_wifi_hdr {
55 __le32 cmd; 55 __le32 cmd;
56 __le32 meta_data; 56 __le32 meta_data;
57} __attribute__ ((packed)); 57} __packed;
58 58
59/* Sequence numbering */ 59/* Sequence numbering */
60#define UMAC_WIFI_SEQ_NUM_BASE 1 60#define UMAC_WIFI_SEQ_NUM_BASE 1
@@ -408,12 +408,12 @@ struct iwm_rx_ticket {
408 __le16 flags; 408 __le16 flags;
409 u8 payload_offset; /* includes: MAC header, pad, IV */ 409 u8 payload_offset; /* includes: MAC header, pad, IV */
410 u8 tail_len; /* includes: MIC, ICV, CRC (w/o STATUS) */ 410 u8 tail_len; /* includes: MIC, ICV, CRC (w/o STATUS) */
411} __attribute__ ((packed)); 411} __packed;
412 412
413struct iwm_rx_mpdu_hdr { 413struct iwm_rx_mpdu_hdr {
414 __le16 len; 414 __le16 len;
415 __le16 reserved; 415 __le16 reserved;
416} __attribute__ ((packed)); 416} __packed;
417 417
418/* UMAC SW WIFI API */ 418/* UMAC SW WIFI API */
419 419
@@ -421,31 +421,31 @@ struct iwm_dev_cmd_hdr {
421 u8 cmd; 421 u8 cmd;
422 u8 flags; 422 u8 flags;
423 __le16 seq_num; 423 __le16 seq_num;
424} __attribute__ ((packed)); 424} __packed;
425 425
426struct iwm_umac_fw_cmd_hdr { 426struct iwm_umac_fw_cmd_hdr {
427 __le32 meta_data; 427 __le32 meta_data;
428 struct iwm_dev_cmd_hdr cmd; 428 struct iwm_dev_cmd_hdr cmd;
429} __attribute__ ((packed)); 429} __packed;
430 430
431struct iwm_umac_wifi_out_hdr { 431struct iwm_umac_wifi_out_hdr {
432 struct iwm_udma_out_wifi_hdr hw_hdr; 432 struct iwm_udma_out_wifi_hdr hw_hdr;
433 struct iwm_umac_fw_cmd_hdr sw_hdr; 433 struct iwm_umac_fw_cmd_hdr sw_hdr;
434} __attribute__ ((packed)); 434} __packed;
435 435
436struct iwm_umac_nonwifi_out_hdr { 436struct iwm_umac_nonwifi_out_hdr {
437 struct iwm_udma_out_nonwifi_hdr hw_hdr; 437 struct iwm_udma_out_nonwifi_hdr hw_hdr;
438} __attribute__ ((packed)); 438} __packed;
439 439
440struct iwm_umac_wifi_in_hdr { 440struct iwm_umac_wifi_in_hdr {
441 struct iwm_udma_in_hdr hw_hdr; 441 struct iwm_udma_in_hdr hw_hdr;
442 struct iwm_umac_fw_cmd_hdr sw_hdr; 442 struct iwm_umac_fw_cmd_hdr sw_hdr;
443} __attribute__ ((packed)); 443} __packed;
444 444
445struct iwm_umac_nonwifi_in_hdr { 445struct iwm_umac_nonwifi_in_hdr {
446 struct iwm_udma_in_hdr hw_hdr; 446 struct iwm_udma_in_hdr hw_hdr;
447 __le32 time_stamp; 447 __le32 time_stamp;
448} __attribute__ ((packed)); 448} __packed;
449 449
450#define IWM_UMAC_PAGE_SIZE 0x200 450#define IWM_UMAC_PAGE_SIZE 0x200
451 451
@@ -521,7 +521,7 @@ struct iwm_umac_notif_wifi_if {
521 u8 status; 521 u8 status;
522 u8 flags; 522 u8 flags;
523 __le16 buf_size; 523 __le16 buf_size;
524} __attribute__ ((packed)); 524} __packed;
525 525
526#define UMAC_ROAM_REASON_FIRST_SELECTION 0x1 526#define UMAC_ROAM_REASON_FIRST_SELECTION 0x1
527#define UMAC_ROAM_REASON_AP_DEAUTH 0x2 527#define UMAC_ROAM_REASON_AP_DEAUTH 0x2
@@ -535,7 +535,7 @@ struct iwm_umac_notif_assoc_start {
535 __le32 roam_reason; 535 __le32 roam_reason;
536 u8 bssid[ETH_ALEN]; 536 u8 bssid[ETH_ALEN];
537 u8 reserved[2]; 537 u8 reserved[2];
538} __attribute__ ((packed)); 538} __packed;
539 539
540#define UMAC_ASSOC_COMPLETE_SUCCESS 0x0 540#define UMAC_ASSOC_COMPLETE_SUCCESS 0x0
541#define UMAC_ASSOC_COMPLETE_FAILURE 0x1 541#define UMAC_ASSOC_COMPLETE_FAILURE 0x1
@@ -546,7 +546,7 @@ struct iwm_umac_notif_assoc_complete {
546 u8 bssid[ETH_ALEN]; 546 u8 bssid[ETH_ALEN];
547 u8 band; 547 u8 band;
548 u8 channel; 548 u8 channel;
549} __attribute__ ((packed)); 549} __packed;
550 550
551#define UMAC_PROFILE_INVALID_ASSOC_TIMEOUT 0x0 551#define UMAC_PROFILE_INVALID_ASSOC_TIMEOUT 0x0
552#define UMAC_PROFILE_INVALID_ROAM_TIMEOUT 0x1 552#define UMAC_PROFILE_INVALID_ROAM_TIMEOUT 0x1
@@ -556,7 +556,7 @@ struct iwm_umac_notif_assoc_complete {
556struct iwm_umac_notif_profile_invalidate { 556struct iwm_umac_notif_profile_invalidate {
557 struct iwm_umac_notif_wifi_if mlme_hdr; 557 struct iwm_umac_notif_wifi_if mlme_hdr;
558 __le32 reason; 558 __le32 reason;
559} __attribute__ ((packed)); 559} __packed;
560 560
561#define UMAC_SCAN_RESULT_SUCCESS 0x0 561#define UMAC_SCAN_RESULT_SUCCESS 0x0
562#define UMAC_SCAN_RESULT_ABORTED 0x1 562#define UMAC_SCAN_RESULT_ABORTED 0x1
@@ -568,7 +568,7 @@ struct iwm_umac_notif_scan_complete {
568 __le32 type; 568 __le32 type;
569 __le32 result; 569 __le32 result;
570 u8 seq_num; 570 u8 seq_num;
571} __attribute__ ((packed)); 571} __packed;
572 572
573#define UMAC_OPCODE_ADD_MODIFY 0x0 573#define UMAC_OPCODE_ADD_MODIFY 0x0
574#define UMAC_OPCODE_REMOVE 0x1 574#define UMAC_OPCODE_REMOVE 0x1
@@ -582,7 +582,7 @@ struct iwm_umac_notif_sta_info {
582 u8 mac_addr[ETH_ALEN]; 582 u8 mac_addr[ETH_ALEN];
583 u8 sta_id; /* bits 0-3: station ID, bits 4-7: station color */ 583 u8 sta_id; /* bits 0-3: station ID, bits 4-7: station color */
584 u8 flags; 584 u8 flags;
585} __attribute__ ((packed)); 585} __packed;
586 586
587#define UMAC_BAND_2GHZ 0 587#define UMAC_BAND_2GHZ 0
588#define UMAC_BAND_5GHZ 1 588#define UMAC_BAND_5GHZ 1
@@ -601,7 +601,7 @@ struct iwm_umac_notif_bss_info {
601 s8 rssi; 601 s8 rssi;
602 u8 reserved; 602 u8 reserved;
603 u8 frame_buf[1]; 603 u8 frame_buf[1];
604} __attribute__ ((packed)); 604} __packed;
605 605
606#define IWM_BSS_REMOVE_INDEX_MSK 0x0fff 606#define IWM_BSS_REMOVE_INDEX_MSK 0x0fff
607#define IWM_BSS_REMOVE_FLAGS_MSK 0xfc00 607#define IWM_BSS_REMOVE_FLAGS_MSK 0xfc00
@@ -614,13 +614,13 @@ struct iwm_umac_notif_bss_removed {
614 struct iwm_umac_notif_wifi_if mlme_hdr; 614 struct iwm_umac_notif_wifi_if mlme_hdr;
615 __le32 count; 615 __le32 count;
616 __le16 entries[0]; 616 __le16 entries[0];
617} __attribute__ ((packed)); 617} __packed;
618 618
619struct iwm_umac_notif_mgt_frame { 619struct iwm_umac_notif_mgt_frame {
620 struct iwm_umac_notif_wifi_if mlme_hdr; 620 struct iwm_umac_notif_wifi_if mlme_hdr;
621 __le16 len; 621 __le16 len;
622 u8 frame[1]; 622 u8 frame[1];
623} __attribute__ ((packed)); 623} __packed;
624 624
625struct iwm_umac_notif_alive { 625struct iwm_umac_notif_alive {
626 struct iwm_umac_wifi_in_hdr hdr; 626 struct iwm_umac_wifi_in_hdr hdr;
@@ -630,13 +630,13 @@ struct iwm_umac_notif_alive {
630 __le16 reserved2; 630 __le16 reserved2;
631 __le16 page_grp_count; 631 __le16 page_grp_count;
632 __le32 page_grp_state[IWM_MACS_OUT_GROUPS]; 632 __le32 page_grp_state[IWM_MACS_OUT_GROUPS];
633} __attribute__ ((packed)); 633} __packed;
634 634
635struct iwm_umac_notif_init_complete { 635struct iwm_umac_notif_init_complete {
636 struct iwm_umac_wifi_in_hdr hdr; 636 struct iwm_umac_wifi_in_hdr hdr;
637 __le16 status; 637 __le16 status;
638 __le16 reserved; 638 __le16 reserved;
639} __attribute__ ((packed)); 639} __packed;
640 640
641/* error categories */ 641/* error categories */
642enum { 642enum {
@@ -667,12 +667,12 @@ struct iwm_fw_error_hdr {
667 __le32 dbm_buf_end; 667 __le32 dbm_buf_end;
668 __le32 dbm_buf_write_ptr; 668 __le32 dbm_buf_write_ptr;
669 __le32 dbm_buf_cycle_cnt; 669 __le32 dbm_buf_cycle_cnt;
670} __attribute__ ((packed)); 670} __packed;
671 671
672struct iwm_umac_notif_error { 672struct iwm_umac_notif_error {
673 struct iwm_umac_wifi_in_hdr hdr; 673 struct iwm_umac_wifi_in_hdr hdr;
674 struct iwm_fw_error_hdr err; 674 struct iwm_fw_error_hdr err;
675} __attribute__ ((packed)); 675} __packed;
676 676
677#define UMAC_DEALLOC_NTFY_CHANGES_CNT_POS 0 677#define UMAC_DEALLOC_NTFY_CHANGES_CNT_POS 0
678#define UMAC_DEALLOC_NTFY_CHANGES_CNT_SEED 0xff 678#define UMAC_DEALLOC_NTFY_CHANGES_CNT_SEED 0xff
@@ -687,20 +687,20 @@ struct iwm_umac_notif_page_dealloc {
687 struct iwm_umac_wifi_in_hdr hdr; 687 struct iwm_umac_wifi_in_hdr hdr;
688 __le32 changes; 688 __le32 changes;
689 __le32 grp_info[IWM_MACS_OUT_GROUPS]; 689 __le32 grp_info[IWM_MACS_OUT_GROUPS];
690} __attribute__ ((packed)); 690} __packed;
691 691
692struct iwm_umac_notif_wifi_status { 692struct iwm_umac_notif_wifi_status {
693 struct iwm_umac_wifi_in_hdr hdr; 693 struct iwm_umac_wifi_in_hdr hdr;
694 __le16 status; 694 __le16 status;
695 __le16 reserved; 695 __le16 reserved;
696} __attribute__ ((packed)); 696} __packed;
697 697
698struct iwm_umac_notif_rx_ticket { 698struct iwm_umac_notif_rx_ticket {
699 struct iwm_umac_wifi_in_hdr hdr; 699 struct iwm_umac_wifi_in_hdr hdr;
700 u8 num_tickets; 700 u8 num_tickets;
701 u8 reserved[3]; 701 u8 reserved[3];
702 struct iwm_rx_ticket tickets[1]; 702 struct iwm_rx_ticket tickets[1];
703} __attribute__ ((packed)); 703} __packed;
704 704
705/* Tx/Rx rates window (number of max of last update window per second) */ 705/* Tx/Rx rates window (number of max of last update window per second) */
706#define UMAC_NTF_RATE_SAMPLE_NR 4 706#define UMAC_NTF_RATE_SAMPLE_NR 4
@@ -758,7 +758,7 @@ struct iwm_umac_notif_stats {
758 __le32 roam_unassoc; 758 __le32 roam_unassoc;
759 __le32 roam_deauth; 759 __le32 roam_deauth;
760 __le32 roam_ap_loadblance; 760 __le32 roam_ap_loadblance;
761} __attribute__ ((packed)); 761} __packed;
762 762
763#define UMAC_STOP_TX_FLAG 0x1 763#define UMAC_STOP_TX_FLAG 0x1
764#define UMAC_RESUME_TX_FLAG 0x2 764#define UMAC_RESUME_TX_FLAG 0x2
@@ -770,7 +770,7 @@ struct iwm_umac_notif_stop_resume_tx {
770 u8 flags; /* UMAC_*_TX_FLAG_* */ 770 u8 flags; /* UMAC_*_TX_FLAG_* */
771 u8 sta_id; 771 u8 sta_id;
772 __le16 stop_resume_tid_msk; /* tid bitmask */ 772 __le16 stop_resume_tid_msk; /* tid bitmask */
773} __attribute__ ((packed)); 773} __packed;
774 774
775#define UMAC_MAX_NUM_PMKIDS 4 775#define UMAC_MAX_NUM_PMKIDS 4
776 776
@@ -779,7 +779,7 @@ struct iwm_umac_wifi_if {
779 u8 oid; 779 u8 oid;
780 u8 flags; 780 u8 flags;
781 __le16 buf_size; 781 __le16 buf_size;
782} __attribute__ ((packed)); 782} __packed;
783 783
784#define IWM_SEQ_NUM_HOST_MSK 0x0000 784#define IWM_SEQ_NUM_HOST_MSK 0x0000
785#define IWM_SEQ_NUM_UMAC_MSK 0x4000 785#define IWM_SEQ_NUM_UMAC_MSK 0x4000
diff --git a/drivers/net/wireless/libertas/host.h b/drivers/net/wireless/libertas/host.h
index 3809c0b49464..3bd5d3b6037a 100644
--- a/drivers/net/wireless/libertas/host.h
+++ b/drivers/net/wireless/libertas/host.h
@@ -326,7 +326,7 @@ struct txpd {
326 u8 pktdelay_2ms; 326 u8 pktdelay_2ms;
327 /* reserved */ 327 /* reserved */
328 u8 reserved1; 328 u8 reserved1;
329} __attribute__ ((packed)); 329} __packed;
330 330
331/* RxPD Descriptor */ 331/* RxPD Descriptor */
332struct rxpd { 332struct rxpd {
@@ -339,8 +339,8 @@ struct rxpd {
339 u8 bss_type; 339 u8 bss_type;
340 /* BSS number */ 340 /* BSS number */
341 u8 bss_num; 341 u8 bss_num;
342 } __attribute__ ((packed)) bss; 342 } __packed bss;
343 } __attribute__ ((packed)) u; 343 } __packed u;
344 344
345 /* SNR */ 345 /* SNR */
346 u8 snr; 346 u8 snr;
@@ -366,14 +366,14 @@ struct rxpd {
366 /* Pkt Priority */ 366 /* Pkt Priority */
367 u8 priority; 367 u8 priority;
368 u8 reserved[3]; 368 u8 reserved[3];
369} __attribute__ ((packed)); 369} __packed;
370 370
371struct cmd_header { 371struct cmd_header {
372 __le16 command; 372 __le16 command;
373 __le16 size; 373 __le16 size;
374 __le16 seqnum; 374 __le16 seqnum;
375 __le16 result; 375 __le16 result;
376} __attribute__ ((packed)); 376} __packed;
377 377
378/* Generic structure to hold all key types. */ 378/* Generic structure to hold all key types. */
379struct enc_key { 379struct enc_key {
@@ -387,7 +387,7 @@ struct enc_key {
387struct lbs_offset_value { 387struct lbs_offset_value {
388 u32 offset; 388 u32 offset;
389 u32 value; 389 u32 value;
390} __attribute__ ((packed)); 390} __packed;
391 391
392/* 392/*
393 * Define data structure for CMD_GET_HW_SPEC 393 * Define data structure for CMD_GET_HW_SPEC
@@ -426,7 +426,7 @@ struct cmd_ds_get_hw_spec {
426 426
427 /*FW/HW capability */ 427 /*FW/HW capability */
428 __le32 fwcapinfo; 428 __le32 fwcapinfo;
429} __attribute__ ((packed)); 429} __packed;
430 430
431struct cmd_ds_802_11_subscribe_event { 431struct cmd_ds_802_11_subscribe_event {
432 struct cmd_header hdr; 432 struct cmd_header hdr;
@@ -440,7 +440,7 @@ struct cmd_ds_802_11_subscribe_event {
440 * bump this up a bit. 440 * bump this up a bit.
441 */ 441 */
442 uint8_t tlv[128]; 442 uint8_t tlv[128];
443} __attribute__ ((packed)); 443} __packed;
444 444
445/* 445/*
446 * This scan handle Country Information IE(802.11d compliant) 446 * This scan handle Country Information IE(802.11d compliant)
@@ -452,7 +452,7 @@ struct cmd_ds_802_11_scan {
452 uint8_t bsstype; 452 uint8_t bsstype;
453 uint8_t bssid[ETH_ALEN]; 453 uint8_t bssid[ETH_ALEN];
454 uint8_t tlvbuffer[0]; 454 uint8_t tlvbuffer[0];
455} __attribute__ ((packed)); 455} __packed;
456 456
457struct cmd_ds_802_11_scan_rsp { 457struct cmd_ds_802_11_scan_rsp {
458 struct cmd_header hdr; 458 struct cmd_header hdr;
@@ -460,7 +460,7 @@ struct cmd_ds_802_11_scan_rsp {
460 __le16 bssdescriptsize; 460 __le16 bssdescriptsize;
461 uint8_t nr_sets; 461 uint8_t nr_sets;
462 uint8_t bssdesc_and_tlvbuffer[0]; 462 uint8_t bssdesc_and_tlvbuffer[0];
463} __attribute__ ((packed)); 463} __packed;
464 464
465struct cmd_ds_802_11_get_log { 465struct cmd_ds_802_11_get_log {
466 struct cmd_header hdr; 466 struct cmd_header hdr;
@@ -478,20 +478,20 @@ struct cmd_ds_802_11_get_log {
478 __le32 fcserror; 478 __le32 fcserror;
479 __le32 txframe; 479 __le32 txframe;
480 __le32 wepundecryptable; 480 __le32 wepundecryptable;
481} __attribute__ ((packed)); 481} __packed;
482 482
483struct cmd_ds_mac_control { 483struct cmd_ds_mac_control {
484 struct cmd_header hdr; 484 struct cmd_header hdr;
485 __le16 action; 485 __le16 action;
486 u16 reserved; 486 u16 reserved;
487} __attribute__ ((packed)); 487} __packed;
488 488
489struct cmd_ds_mac_multicast_adr { 489struct cmd_ds_mac_multicast_adr {
490 struct cmd_header hdr; 490 struct cmd_header hdr;
491 __le16 action; 491 __le16 action;
492 __le16 nr_of_adrs; 492 __le16 nr_of_adrs;
493 u8 maclist[ETH_ALEN * MRVDRV_MAX_MULTICAST_LIST_SIZE]; 493 u8 maclist[ETH_ALEN * MRVDRV_MAX_MULTICAST_LIST_SIZE];
494} __attribute__ ((packed)); 494} __packed;
495 495
496struct cmd_ds_802_11_authenticate { 496struct cmd_ds_802_11_authenticate {
497 struct cmd_header hdr; 497 struct cmd_header hdr;
@@ -499,14 +499,14 @@ struct cmd_ds_802_11_authenticate {
499 u8 bssid[ETH_ALEN]; 499 u8 bssid[ETH_ALEN];
500 u8 authtype; 500 u8 authtype;
501 u8 reserved[10]; 501 u8 reserved[10];
502} __attribute__ ((packed)); 502} __packed;
503 503
504struct cmd_ds_802_11_deauthenticate { 504struct cmd_ds_802_11_deauthenticate {
505 struct cmd_header hdr; 505 struct cmd_header hdr;
506 506
507 u8 macaddr[ETH_ALEN]; 507 u8 macaddr[ETH_ALEN];
508 __le16 reasoncode; 508 __le16 reasoncode;
509} __attribute__ ((packed)); 509} __packed;
510 510
511struct cmd_ds_802_11_associate { 511struct cmd_ds_802_11_associate {
512 struct cmd_header hdr; 512 struct cmd_header hdr;
@@ -517,7 +517,7 @@ struct cmd_ds_802_11_associate {
517 __le16 bcnperiod; 517 __le16 bcnperiod;
518 u8 dtimperiod; 518 u8 dtimperiod;
519 u8 iebuf[512]; /* Enough for required and most optional IEs */ 519 u8 iebuf[512]; /* Enough for required and most optional IEs */
520} __attribute__ ((packed)); 520} __packed;
521 521
522struct cmd_ds_802_11_associate_response { 522struct cmd_ds_802_11_associate_response {
523 struct cmd_header hdr; 523 struct cmd_header hdr;
@@ -526,7 +526,7 @@ struct cmd_ds_802_11_associate_response {
526 __le16 statuscode; 526 __le16 statuscode;
527 __le16 aid; 527 __le16 aid;
528 u8 iebuf[512]; 528 u8 iebuf[512];
529} __attribute__ ((packed)); 529} __packed;
530 530
531struct cmd_ds_802_11_set_wep { 531struct cmd_ds_802_11_set_wep {
532 struct cmd_header hdr; 532 struct cmd_header hdr;
@@ -540,7 +540,7 @@ struct cmd_ds_802_11_set_wep {
540 /* 40, 128bit or TXWEP */ 540 /* 40, 128bit or TXWEP */
541 uint8_t keytype[4]; 541 uint8_t keytype[4];
542 uint8_t keymaterial[4][16]; 542 uint8_t keymaterial[4][16];
543} __attribute__ ((packed)); 543} __packed;
544 544
545struct cmd_ds_802_11_snmp_mib { 545struct cmd_ds_802_11_snmp_mib {
546 struct cmd_header hdr; 546 struct cmd_header hdr;
@@ -549,40 +549,40 @@ struct cmd_ds_802_11_snmp_mib {
549 __le16 oid; 549 __le16 oid;
550 __le16 bufsize; 550 __le16 bufsize;
551 u8 value[128]; 551 u8 value[128];
552} __attribute__ ((packed)); 552} __packed;
553 553
554struct cmd_ds_mac_reg_access { 554struct cmd_ds_mac_reg_access {
555 __le16 action; 555 __le16 action;
556 __le16 offset; 556 __le16 offset;
557 __le32 value; 557 __le32 value;
558} __attribute__ ((packed)); 558} __packed;
559 559
560struct cmd_ds_bbp_reg_access { 560struct cmd_ds_bbp_reg_access {
561 __le16 action; 561 __le16 action;
562 __le16 offset; 562 __le16 offset;
563 u8 value; 563 u8 value;
564 u8 reserved[3]; 564 u8 reserved[3];
565} __attribute__ ((packed)); 565} __packed;
566 566
567struct cmd_ds_rf_reg_access { 567struct cmd_ds_rf_reg_access {
568 __le16 action; 568 __le16 action;
569 __le16 offset; 569 __le16 offset;
570 u8 value; 570 u8 value;
571 u8 reserved[3]; 571 u8 reserved[3];
572} __attribute__ ((packed)); 572} __packed;
573 573
574struct cmd_ds_802_11_radio_control { 574struct cmd_ds_802_11_radio_control {
575 struct cmd_header hdr; 575 struct cmd_header hdr;
576 576
577 __le16 action; 577 __le16 action;
578 __le16 control; 578 __le16 control;
579} __attribute__ ((packed)); 579} __packed;
580 580
581struct cmd_ds_802_11_beacon_control { 581struct cmd_ds_802_11_beacon_control {
582 __le16 action; 582 __le16 action;
583 __le16 beacon_enable; 583 __le16 beacon_enable;
584 __le16 beacon_period; 584 __le16 beacon_period;
585} __attribute__ ((packed)); 585} __packed;
586 586
587struct cmd_ds_802_11_sleep_params { 587struct cmd_ds_802_11_sleep_params {
588 struct cmd_header hdr; 588 struct cmd_header hdr;
@@ -607,7 +607,7 @@ struct cmd_ds_802_11_sleep_params {
607 607
608 /* reserved field, should be set to zero */ 608 /* reserved field, should be set to zero */
609 __le16 reserved; 609 __le16 reserved;
610} __attribute__ ((packed)); 610} __packed;
611 611
612struct cmd_ds_802_11_rf_channel { 612struct cmd_ds_802_11_rf_channel {
613 struct cmd_header hdr; 613 struct cmd_header hdr;
@@ -617,7 +617,7 @@ struct cmd_ds_802_11_rf_channel {
617 __le16 rftype; /* unused */ 617 __le16 rftype; /* unused */
618 __le16 reserved; /* unused */ 618 __le16 reserved; /* unused */
619 u8 channellist[32]; /* unused */ 619 u8 channellist[32]; /* unused */
620} __attribute__ ((packed)); 620} __packed;
621 621
622struct cmd_ds_802_11_rssi { 622struct cmd_ds_802_11_rssi {
623 /* weighting factor */ 623 /* weighting factor */
@@ -626,21 +626,21 @@ struct cmd_ds_802_11_rssi {
626 __le16 reserved_0; 626 __le16 reserved_0;
627 __le16 reserved_1; 627 __le16 reserved_1;
628 __le16 reserved_2; 628 __le16 reserved_2;
629} __attribute__ ((packed)); 629} __packed;
630 630
631struct cmd_ds_802_11_rssi_rsp { 631struct cmd_ds_802_11_rssi_rsp {
632 __le16 SNR; 632 __le16 SNR;
633 __le16 noisefloor; 633 __le16 noisefloor;
634 __le16 avgSNR; 634 __le16 avgSNR;
635 __le16 avgnoisefloor; 635 __le16 avgnoisefloor;
636} __attribute__ ((packed)); 636} __packed;
637 637
638struct cmd_ds_802_11_mac_address { 638struct cmd_ds_802_11_mac_address {
639 struct cmd_header hdr; 639 struct cmd_header hdr;
640 640
641 __le16 action; 641 __le16 action;
642 u8 macadd[ETH_ALEN]; 642 u8 macadd[ETH_ALEN];
643} __attribute__ ((packed)); 643} __packed;
644 644
645struct cmd_ds_802_11_rf_tx_power { 645struct cmd_ds_802_11_rf_tx_power {
646 struct cmd_header hdr; 646 struct cmd_header hdr;
@@ -649,26 +649,26 @@ struct cmd_ds_802_11_rf_tx_power {
649 __le16 curlevel; 649 __le16 curlevel;
650 s8 maxlevel; 650 s8 maxlevel;
651 s8 minlevel; 651 s8 minlevel;
652} __attribute__ ((packed)); 652} __packed;
653 653
654struct cmd_ds_802_11_monitor_mode { 654struct cmd_ds_802_11_monitor_mode {
655 __le16 action; 655 __le16 action;
656 __le16 mode; 656 __le16 mode;
657} __attribute__ ((packed)); 657} __packed;
658 658
659struct cmd_ds_set_boot2_ver { 659struct cmd_ds_set_boot2_ver {
660 struct cmd_header hdr; 660 struct cmd_header hdr;
661 661
662 __le16 action; 662 __le16 action;
663 __le16 version; 663 __le16 version;
664} __attribute__ ((packed)); 664} __packed;
665 665
666struct cmd_ds_802_11_fw_wake_method { 666struct cmd_ds_802_11_fw_wake_method {
667 struct cmd_header hdr; 667 struct cmd_header hdr;
668 668
669 __le16 action; 669 __le16 action;
670 __le16 method; 670 __le16 method;
671} __attribute__ ((packed)); 671} __packed;
672 672
673struct cmd_ds_802_11_ps_mode { 673struct cmd_ds_802_11_ps_mode {
674 __le16 action; 674 __le16 action;
@@ -676,7 +676,7 @@ struct cmd_ds_802_11_ps_mode {
676 __le16 multipledtim; 676 __le16 multipledtim;
677 __le16 reserved; 677 __le16 reserved;
678 __le16 locallisteninterval; 678 __le16 locallisteninterval;
679} __attribute__ ((packed)); 679} __packed;
680 680
681struct cmd_confirm_sleep { 681struct cmd_confirm_sleep {
682 struct cmd_header hdr; 682 struct cmd_header hdr;
@@ -686,7 +686,7 @@ struct cmd_confirm_sleep {
686 __le16 multipledtim; 686 __le16 multipledtim;
687 __le16 reserved; 687 __le16 reserved;
688 __le16 locallisteninterval; 688 __le16 locallisteninterval;
689} __attribute__ ((packed)); 689} __packed;
690 690
691struct cmd_ds_802_11_data_rate { 691struct cmd_ds_802_11_data_rate {
692 struct cmd_header hdr; 692 struct cmd_header hdr;
@@ -694,14 +694,14 @@ struct cmd_ds_802_11_data_rate {
694 __le16 action; 694 __le16 action;
695 __le16 reserved; 695 __le16 reserved;
696 u8 rates[MAX_RATES]; 696 u8 rates[MAX_RATES];
697} __attribute__ ((packed)); 697} __packed;
698 698
699struct cmd_ds_802_11_rate_adapt_rateset { 699struct cmd_ds_802_11_rate_adapt_rateset {
700 struct cmd_header hdr; 700 struct cmd_header hdr;
701 __le16 action; 701 __le16 action;
702 __le16 enablehwauto; 702 __le16 enablehwauto;
703 __le16 bitmap; 703 __le16 bitmap;
704} __attribute__ ((packed)); 704} __packed;
705 705
706struct cmd_ds_802_11_ad_hoc_start { 706struct cmd_ds_802_11_ad_hoc_start {
707 struct cmd_header hdr; 707 struct cmd_header hdr;
@@ -718,14 +718,14 @@ struct cmd_ds_802_11_ad_hoc_start {
718 __le16 capability; 718 __le16 capability;
719 u8 rates[MAX_RATES]; 719 u8 rates[MAX_RATES];
720 u8 tlv_memory_size_pad[100]; 720 u8 tlv_memory_size_pad[100];
721} __attribute__ ((packed)); 721} __packed;
722 722
723struct cmd_ds_802_11_ad_hoc_result { 723struct cmd_ds_802_11_ad_hoc_result {
724 struct cmd_header hdr; 724 struct cmd_header hdr;
725 725
726 u8 pad[3]; 726 u8 pad[3];
727 u8 bssid[ETH_ALEN]; 727 u8 bssid[ETH_ALEN];
728} __attribute__ ((packed)); 728} __packed;
729 729
730struct adhoc_bssdesc { 730struct adhoc_bssdesc {
731 u8 bssid[ETH_ALEN]; 731 u8 bssid[ETH_ALEN];
@@ -746,7 +746,7 @@ struct adhoc_bssdesc {
746 * Adhoc join command and will cause a binary layout mismatch with 746 * Adhoc join command and will cause a binary layout mismatch with
747 * the firmware 747 * the firmware
748 */ 748 */
749} __attribute__ ((packed)); 749} __packed;
750 750
751struct cmd_ds_802_11_ad_hoc_join { 751struct cmd_ds_802_11_ad_hoc_join {
752 struct cmd_header hdr; 752 struct cmd_header hdr;
@@ -754,18 +754,18 @@ struct cmd_ds_802_11_ad_hoc_join {
754 struct adhoc_bssdesc bss; 754 struct adhoc_bssdesc bss;
755 __le16 failtimeout; /* Reserved on v9 and later */ 755 __le16 failtimeout; /* Reserved on v9 and later */
756 __le16 probedelay; /* Reserved on v9 and later */ 756 __le16 probedelay; /* Reserved on v9 and later */
757} __attribute__ ((packed)); 757} __packed;
758 758
759struct cmd_ds_802_11_ad_hoc_stop { 759struct cmd_ds_802_11_ad_hoc_stop {
760 struct cmd_header hdr; 760 struct cmd_header hdr;
761} __attribute__ ((packed)); 761} __packed;
762 762
763struct cmd_ds_802_11_enable_rsn { 763struct cmd_ds_802_11_enable_rsn {
764 struct cmd_header hdr; 764 struct cmd_header hdr;
765 765
766 __le16 action; 766 __le16 action;
767 __le16 enable; 767 __le16 enable;
768} __attribute__ ((packed)); 768} __packed;
769 769
770struct MrvlIEtype_keyParamSet { 770struct MrvlIEtype_keyParamSet {
771 /* type ID */ 771 /* type ID */
@@ -785,7 +785,7 @@ struct MrvlIEtype_keyParamSet {
785 785
786 /* key material of size keylen */ 786 /* key material of size keylen */
787 u8 key[32]; 787 u8 key[32];
788} __attribute__ ((packed)); 788} __packed;
789 789
790#define MAX_WOL_RULES 16 790#define MAX_WOL_RULES 16
791 791
@@ -797,7 +797,7 @@ struct host_wol_rule {
797 __le16 reserve; 797 __le16 reserve;
798 __be32 sig_mask; 798 __be32 sig_mask;
799 __be32 signature; 799 __be32 signature;
800} __attribute__ ((packed)); 800} __packed;
801 801
802struct wol_config { 802struct wol_config {
803 uint8_t action; 803 uint8_t action;
@@ -805,7 +805,7 @@ struct wol_config {
805 uint8_t no_rules_in_cmd; 805 uint8_t no_rules_in_cmd;
806 uint8_t result; 806 uint8_t result;
807 struct host_wol_rule rule[MAX_WOL_RULES]; 807 struct host_wol_rule rule[MAX_WOL_RULES];
808} __attribute__ ((packed)); 808} __packed;
809 809
810struct cmd_ds_host_sleep { 810struct cmd_ds_host_sleep {
811 struct cmd_header hdr; 811 struct cmd_header hdr;
@@ -813,7 +813,7 @@ struct cmd_ds_host_sleep {
813 uint8_t gpio; 813 uint8_t gpio;
814 uint16_t gap; 814 uint16_t gap;
815 struct wol_config wol_conf; 815 struct wol_config wol_conf;
816} __attribute__ ((packed)); 816} __packed;
817 817
818 818
819 819
@@ -822,7 +822,7 @@ struct cmd_ds_802_11_key_material {
822 822
823 __le16 action; 823 __le16 action;
824 struct MrvlIEtype_keyParamSet keyParamSet[2]; 824 struct MrvlIEtype_keyParamSet keyParamSet[2];
825} __attribute__ ((packed)); 825} __packed;
826 826
827struct cmd_ds_802_11_eeprom_access { 827struct cmd_ds_802_11_eeprom_access {
828 struct cmd_header hdr; 828 struct cmd_header hdr;
@@ -832,7 +832,7 @@ struct cmd_ds_802_11_eeprom_access {
832 /* firmware says it returns a maximum of 20 bytes */ 832 /* firmware says it returns a maximum of 20 bytes */
833#define LBS_EEPROM_READ_LEN 20 833#define LBS_EEPROM_READ_LEN 20
834 u8 value[LBS_EEPROM_READ_LEN]; 834 u8 value[LBS_EEPROM_READ_LEN];
835} __attribute__ ((packed)); 835} __packed;
836 836
837struct cmd_ds_802_11_tpc_cfg { 837struct cmd_ds_802_11_tpc_cfg {
838 struct cmd_header hdr; 838 struct cmd_header hdr;
@@ -843,7 +843,7 @@ struct cmd_ds_802_11_tpc_cfg {
843 int8_t P1; 843 int8_t P1;
844 int8_t P2; 844 int8_t P2;
845 uint8_t usesnr; 845 uint8_t usesnr;
846} __attribute__ ((packed)); 846} __packed;
847 847
848 848
849struct cmd_ds_802_11_pa_cfg { 849struct cmd_ds_802_11_pa_cfg {
@@ -854,14 +854,14 @@ struct cmd_ds_802_11_pa_cfg {
854 int8_t P0; 854 int8_t P0;
855 int8_t P1; 855 int8_t P1;
856 int8_t P2; 856 int8_t P2;
857} __attribute__ ((packed)); 857} __packed;
858 858
859 859
860struct cmd_ds_802_11_led_ctrl { 860struct cmd_ds_802_11_led_ctrl {
861 __le16 action; 861 __le16 action;
862 __le16 numled; 862 __le16 numled;
863 u8 data[256]; 863 u8 data[256];
864} __attribute__ ((packed)); 864} __packed;
865 865
866struct cmd_ds_802_11_afc { 866struct cmd_ds_802_11_afc {
867 __le16 afc_auto; 867 __le16 afc_auto;
@@ -875,22 +875,22 @@ struct cmd_ds_802_11_afc {
875 __le16 carrier_offset; /* signed */ 875 __le16 carrier_offset; /* signed */
876 }; 876 };
877 }; 877 };
878} __attribute__ ((packed)); 878} __packed;
879 879
880struct cmd_tx_rate_query { 880struct cmd_tx_rate_query {
881 __le16 txrate; 881 __le16 txrate;
882} __attribute__ ((packed)); 882} __packed;
883 883
884struct cmd_ds_get_tsf { 884struct cmd_ds_get_tsf {
885 __le64 tsfvalue; 885 __le64 tsfvalue;
886} __attribute__ ((packed)); 886} __packed;
887 887
888struct cmd_ds_bt_access { 888struct cmd_ds_bt_access {
889 __le16 action; 889 __le16 action;
890 __le32 id; 890 __le32 id;
891 u8 addr1[ETH_ALEN]; 891 u8 addr1[ETH_ALEN];
892 u8 addr2[ETH_ALEN]; 892 u8 addr2[ETH_ALEN];
893} __attribute__ ((packed)); 893} __packed;
894 894
895struct cmd_ds_fwt_access { 895struct cmd_ds_fwt_access {
896 __le16 action; 896 __le16 action;
@@ -910,7 +910,7 @@ struct cmd_ds_fwt_access {
910 __le32 snr; 910 __le32 snr;
911 __le32 references; 911 __le32 references;
912 u8 prec[ETH_ALEN]; 912 u8 prec[ETH_ALEN];
913} __attribute__ ((packed)); 913} __packed;
914 914
915struct cmd_ds_mesh_config { 915struct cmd_ds_mesh_config {
916 struct cmd_header hdr; 916 struct cmd_header hdr;
@@ -920,14 +920,14 @@ struct cmd_ds_mesh_config {
920 __le16 type; 920 __le16 type;
921 __le16 length; 921 __le16 length;
922 u8 data[128]; /* last position reserved */ 922 u8 data[128]; /* last position reserved */
923} __attribute__ ((packed)); 923} __packed;
924 924
925struct cmd_ds_mesh_access { 925struct cmd_ds_mesh_access {
926 struct cmd_header hdr; 926 struct cmd_header hdr;
927 927
928 __le16 action; 928 __le16 action;
929 __le32 data[32]; /* last position reserved */ 929 __le32 data[32]; /* last position reserved */
930} __attribute__ ((packed)); 930} __packed;
931 931
932/* Number of stats counters returned by the firmware */ 932/* Number of stats counters returned by the firmware */
933#define MESH_STATS_NUM 8 933#define MESH_STATS_NUM 8
@@ -957,6 +957,6 @@ struct cmd_ds_command {
957 struct cmd_ds_fwt_access fwt; 957 struct cmd_ds_fwt_access fwt;
958 struct cmd_ds_802_11_beacon_control bcn_ctrl; 958 struct cmd_ds_802_11_beacon_control bcn_ctrl;
959 } params; 959 } params;
960} __attribute__ ((packed)); 960} __packed;
961 961
962#endif 962#endif
diff --git a/drivers/net/wireless/libertas/radiotap.h b/drivers/net/wireless/libertas/radiotap.h
index d16b26416e82..b3c8ea6d610e 100644
--- a/drivers/net/wireless/libertas/radiotap.h
+++ b/drivers/net/wireless/libertas/radiotap.h
@@ -6,7 +6,7 @@ struct tx_radiotap_hdr {
6 u8 txpower; 6 u8 txpower;
7 u8 rts_retries; 7 u8 rts_retries;
8 u8 data_retries; 8 u8 data_retries;
9} __attribute__ ((packed)); 9} __packed;
10 10
11#define TX_RADIOTAP_PRESENT ( \ 11#define TX_RADIOTAP_PRESENT ( \
12 (1 << IEEE80211_RADIOTAP_RATE) | \ 12 (1 << IEEE80211_RADIOTAP_RATE) | \
@@ -34,7 +34,7 @@ struct rx_radiotap_hdr {
34 u8 flags; 34 u8 flags;
35 u8 rate; 35 u8 rate;
36 u8 antsignal; 36 u8 antsignal;
37} __attribute__ ((packed)); 37} __packed;
38 38
39#define RX_RADIOTAP_PRESENT ( \ 39#define RX_RADIOTAP_PRESENT ( \
40 (1 << IEEE80211_RADIOTAP_FLAGS) | \ 40 (1 << IEEE80211_RADIOTAP_FLAGS) | \
diff --git a/drivers/net/wireless/libertas/rx.c b/drivers/net/wireless/libertas/rx.c
index 7a377f5b7662..1c63f8ce7349 100644
--- a/drivers/net/wireless/libertas/rx.c
+++ b/drivers/net/wireless/libertas/rx.c
@@ -15,7 +15,7 @@ struct eth803hdr {
15 u8 dest_addr[6]; 15 u8 dest_addr[6];
16 u8 src_addr[6]; 16 u8 src_addr[6];
17 u16 h803_len; 17 u16 h803_len;
18} __attribute__ ((packed)); 18} __packed;
19 19
20struct rfc1042hdr { 20struct rfc1042hdr {
21 u8 llc_dsap; 21 u8 llc_dsap;
@@ -23,17 +23,17 @@ struct rfc1042hdr {
23 u8 llc_ctrl; 23 u8 llc_ctrl;
24 u8 snap_oui[3]; 24 u8 snap_oui[3];
25 u16 snap_type; 25 u16 snap_type;
26} __attribute__ ((packed)); 26} __packed;
27 27
28struct rxpackethdr { 28struct rxpackethdr {
29 struct eth803hdr eth803_hdr; 29 struct eth803hdr eth803_hdr;
30 struct rfc1042hdr rfc1042_hdr; 30 struct rfc1042hdr rfc1042_hdr;
31} __attribute__ ((packed)); 31} __packed;
32 32
33struct rx80211packethdr { 33struct rx80211packethdr {
34 struct rxpd rx_pd; 34 struct rxpd rx_pd;
35 void *eth80211_hdr; 35 void *eth80211_hdr;
36} __attribute__ ((packed)); 36} __packed;
37 37
38static int process_rxed_802_11_packet(struct lbs_private *priv, 38static int process_rxed_802_11_packet(struct lbs_private *priv,
39 struct sk_buff *skb); 39 struct sk_buff *skb);
diff --git a/drivers/net/wireless/libertas/types.h b/drivers/net/wireless/libertas/types.h
index 3e72c86ceca8..462fbb4cb743 100644
--- a/drivers/net/wireless/libertas/types.h
+++ b/drivers/net/wireless/libertas/types.h
@@ -11,7 +11,7 @@
11struct ieee_ie_header { 11struct ieee_ie_header {
12 u8 id; 12 u8 id;
13 u8 len; 13 u8 len;
14} __attribute__ ((packed)); 14} __packed;
15 15
16struct ieee_ie_cf_param_set { 16struct ieee_ie_cf_param_set {
17 struct ieee_ie_header header; 17 struct ieee_ie_header header;
@@ -20,19 +20,19 @@ struct ieee_ie_cf_param_set {
20 u8 cfpperiod; 20 u8 cfpperiod;
21 __le16 cfpmaxduration; 21 __le16 cfpmaxduration;
22 __le16 cfpdurationremaining; 22 __le16 cfpdurationremaining;
23} __attribute__ ((packed)); 23} __packed;
24 24
25 25
26struct ieee_ie_ibss_param_set { 26struct ieee_ie_ibss_param_set {
27 struct ieee_ie_header header; 27 struct ieee_ie_header header;
28 28
29 __le16 atimwindow; 29 __le16 atimwindow;
30} __attribute__ ((packed)); 30} __packed;
31 31
32union ieee_ss_param_set { 32union ieee_ss_param_set {
33 struct ieee_ie_cf_param_set cf; 33 struct ieee_ie_cf_param_set cf;
34 struct ieee_ie_ibss_param_set ibss; 34 struct ieee_ie_ibss_param_set ibss;
35} __attribute__ ((packed)); 35} __packed;
36 36
37struct ieee_ie_fh_param_set { 37struct ieee_ie_fh_param_set {
38 struct ieee_ie_header header; 38 struct ieee_ie_header header;
@@ -41,18 +41,18 @@ struct ieee_ie_fh_param_set {
41 u8 hopset; 41 u8 hopset;
42 u8 hoppattern; 42 u8 hoppattern;
43 u8 hopindex; 43 u8 hopindex;
44} __attribute__ ((packed)); 44} __packed;
45 45
46struct ieee_ie_ds_param_set { 46struct ieee_ie_ds_param_set {
47 struct ieee_ie_header header; 47 struct ieee_ie_header header;
48 48
49 u8 channel; 49 u8 channel;
50} __attribute__ ((packed)); 50} __packed;
51 51
52union ieee_phy_param_set { 52union ieee_phy_param_set {
53 struct ieee_ie_fh_param_set fh; 53 struct ieee_ie_fh_param_set fh;
54 struct ieee_ie_ds_param_set ds; 54 struct ieee_ie_ds_param_set ds;
55} __attribute__ ((packed)); 55} __packed;
56 56
57/** TLV type ID definition */ 57/** TLV type ID definition */
58#define PROPRIETARY_TLV_BASE_ID 0x0100 58#define PROPRIETARY_TLV_BASE_ID 0x0100
@@ -100,28 +100,28 @@ union ieee_phy_param_set {
100struct mrvl_ie_header { 100struct mrvl_ie_header {
101 __le16 type; 101 __le16 type;
102 __le16 len; 102 __le16 len;
103} __attribute__ ((packed)); 103} __packed;
104 104
105struct mrvl_ie_data { 105struct mrvl_ie_data {
106 struct mrvl_ie_header header; 106 struct mrvl_ie_header header;
107 u8 Data[1]; 107 u8 Data[1];
108} __attribute__ ((packed)); 108} __packed;
109 109
110struct mrvl_ie_rates_param_set { 110struct mrvl_ie_rates_param_set {
111 struct mrvl_ie_header header; 111 struct mrvl_ie_header header;
112 u8 rates[1]; 112 u8 rates[1];
113} __attribute__ ((packed)); 113} __packed;
114 114
115struct mrvl_ie_ssid_param_set { 115struct mrvl_ie_ssid_param_set {
116 struct mrvl_ie_header header; 116 struct mrvl_ie_header header;
117 u8 ssid[1]; 117 u8 ssid[1];
118} __attribute__ ((packed)); 118} __packed;
119 119
120struct mrvl_ie_wildcard_ssid_param_set { 120struct mrvl_ie_wildcard_ssid_param_set {
121 struct mrvl_ie_header header; 121 struct mrvl_ie_header header;
122 u8 MaxSsidlength; 122 u8 MaxSsidlength;
123 u8 ssid[1]; 123 u8 ssid[1];
124} __attribute__ ((packed)); 124} __packed;
125 125
126struct chanscanmode { 126struct chanscanmode {
127#ifdef __BIG_ENDIAN_BITFIELD 127#ifdef __BIG_ENDIAN_BITFIELD
@@ -133,7 +133,7 @@ struct chanscanmode {
133 u8 disablechanfilt:1; 133 u8 disablechanfilt:1;
134 u8 reserved_2_7:6; 134 u8 reserved_2_7:6;
135#endif 135#endif
136} __attribute__ ((packed)); 136} __packed;
137 137
138struct chanscanparamset { 138struct chanscanparamset {
139 u8 radiotype; 139 u8 radiotype;
@@ -141,12 +141,12 @@ struct chanscanparamset {
141 struct chanscanmode chanscanmode; 141 struct chanscanmode chanscanmode;
142 __le16 minscantime; 142 __le16 minscantime;
143 __le16 maxscantime; 143 __le16 maxscantime;
144} __attribute__ ((packed)); 144} __packed;
145 145
146struct mrvl_ie_chanlist_param_set { 146struct mrvl_ie_chanlist_param_set {
147 struct mrvl_ie_header header; 147 struct mrvl_ie_header header;
148 struct chanscanparamset chanscanparam[1]; 148 struct chanscanparamset chanscanparam[1];
149} __attribute__ ((packed)); 149} __packed;
150 150
151struct mrvl_ie_cf_param_set { 151struct mrvl_ie_cf_param_set {
152 struct mrvl_ie_header header; 152 struct mrvl_ie_header header;
@@ -154,86 +154,86 @@ struct mrvl_ie_cf_param_set {
154 u8 cfpperiod; 154 u8 cfpperiod;
155 __le16 cfpmaxduration; 155 __le16 cfpmaxduration;
156 __le16 cfpdurationremaining; 156 __le16 cfpdurationremaining;
157} __attribute__ ((packed)); 157} __packed;
158 158
159struct mrvl_ie_ds_param_set { 159struct mrvl_ie_ds_param_set {
160 struct mrvl_ie_header header; 160 struct mrvl_ie_header header;
161 u8 channel; 161 u8 channel;
162} __attribute__ ((packed)); 162} __packed;
163 163
164struct mrvl_ie_rsn_param_set { 164struct mrvl_ie_rsn_param_set {
165 struct mrvl_ie_header header; 165 struct mrvl_ie_header header;
166 u8 rsnie[1]; 166 u8 rsnie[1];
167} __attribute__ ((packed)); 167} __packed;
168 168
169struct mrvl_ie_tsf_timestamp { 169struct mrvl_ie_tsf_timestamp {
170 struct mrvl_ie_header header; 170 struct mrvl_ie_header header;
171 __le64 tsftable[1]; 171 __le64 tsftable[1];
172} __attribute__ ((packed)); 172} __packed;
173 173
174/* v9 and later firmware only */ 174/* v9 and later firmware only */
175struct mrvl_ie_auth_type { 175struct mrvl_ie_auth_type {
176 struct mrvl_ie_header header; 176 struct mrvl_ie_header header;
177 __le16 auth; 177 __le16 auth;
178} __attribute__ ((packed)); 178} __packed;
179 179
180/** Local Power capability */ 180/** Local Power capability */
181struct mrvl_ie_power_capability { 181struct mrvl_ie_power_capability {
182 struct mrvl_ie_header header; 182 struct mrvl_ie_header header;
183 s8 minpower; 183 s8 minpower;
184 s8 maxpower; 184 s8 maxpower;
185} __attribute__ ((packed)); 185} __packed;
186 186
187/* used in CMD_802_11_SUBSCRIBE_EVENT for SNR, RSSI and Failure */ 187/* used in CMD_802_11_SUBSCRIBE_EVENT for SNR, RSSI and Failure */
188struct mrvl_ie_thresholds { 188struct mrvl_ie_thresholds {
189 struct mrvl_ie_header header; 189 struct mrvl_ie_header header;
190 u8 value; 190 u8 value;
191 u8 freq; 191 u8 freq;
192} __attribute__ ((packed)); 192} __packed;
193 193
194struct mrvl_ie_beacons_missed { 194struct mrvl_ie_beacons_missed {
195 struct mrvl_ie_header header; 195 struct mrvl_ie_header header;
196 u8 beaconmissed; 196 u8 beaconmissed;
197 u8 reserved; 197 u8 reserved;
198} __attribute__ ((packed)); 198} __packed;
199 199
200struct mrvl_ie_num_probes { 200struct mrvl_ie_num_probes {
201 struct mrvl_ie_header header; 201 struct mrvl_ie_header header;
202 __le16 numprobes; 202 __le16 numprobes;
203} __attribute__ ((packed)); 203} __packed;
204 204
205struct mrvl_ie_bcast_probe { 205struct mrvl_ie_bcast_probe {
206 struct mrvl_ie_header header; 206 struct mrvl_ie_header header;
207 __le16 bcastprobe; 207 __le16 bcastprobe;
208} __attribute__ ((packed)); 208} __packed;
209 209
210struct mrvl_ie_num_ssid_probe { 210struct mrvl_ie_num_ssid_probe {
211 struct mrvl_ie_header header; 211 struct mrvl_ie_header header;
212 __le16 numssidprobe; 212 __le16 numssidprobe;
213} __attribute__ ((packed)); 213} __packed;
214 214
215struct led_pin { 215struct led_pin {
216 u8 led; 216 u8 led;
217 u8 pin; 217 u8 pin;
218} __attribute__ ((packed)); 218} __packed;
219 219
220struct mrvl_ie_ledgpio { 220struct mrvl_ie_ledgpio {
221 struct mrvl_ie_header header; 221 struct mrvl_ie_header header;
222 struct led_pin ledpin[1]; 222 struct led_pin ledpin[1];
223} __attribute__ ((packed)); 223} __packed;
224 224
225struct led_bhv { 225struct led_bhv {
226 uint8_t firmwarestate; 226 uint8_t firmwarestate;
227 uint8_t led; 227 uint8_t led;
228 uint8_t ledstate; 228 uint8_t ledstate;
229 uint8_t ledarg; 229 uint8_t ledarg;
230} __attribute__ ((packed)); 230} __packed;
231 231
232 232
233struct mrvl_ie_ledbhv { 233struct mrvl_ie_ledbhv {
234 struct mrvl_ie_header header; 234 struct mrvl_ie_header header;
235 struct led_bhv ledbhv[1]; 235 struct led_bhv ledbhv[1];
236} __attribute__ ((packed)); 236} __packed;
237 237
238/* Meant to be packed as the value member of a struct ieee80211_info_element. 238/* Meant to be packed as the value member of a struct ieee80211_info_element.
239 * Note that the len member of the ieee80211_info_element varies depending on 239 * Note that the len member of the ieee80211_info_element varies depending on
@@ -248,12 +248,12 @@ struct mrvl_meshie_val {
248 uint8_t mesh_capability; 248 uint8_t mesh_capability;
249 uint8_t mesh_id_len; 249 uint8_t mesh_id_len;
250 uint8_t mesh_id[IEEE80211_MAX_SSID_LEN]; 250 uint8_t mesh_id[IEEE80211_MAX_SSID_LEN];
251} __attribute__ ((packed)); 251} __packed;
252 252
253struct mrvl_meshie { 253struct mrvl_meshie {
254 u8 id, len; 254 u8 id, len;
255 struct mrvl_meshie_val val; 255 struct mrvl_meshie_val val;
256} __attribute__ ((packed)); 256} __packed;
257 257
258struct mrvl_mesh_defaults { 258struct mrvl_mesh_defaults {
259 __le32 bootflag; 259 __le32 bootflag;
@@ -261,6 +261,6 @@ struct mrvl_mesh_defaults {
261 uint8_t reserved; 261 uint8_t reserved;
262 __le16 channel; 262 __le16 channel;
263 struct mrvl_meshie meshie; 263 struct mrvl_meshie meshie;
264} __attribute__ ((packed)); 264} __packed;
265 265
266#endif 266#endif
diff --git a/drivers/net/wireless/libertas_tf/libertas_tf.h b/drivers/net/wireless/libertas_tf/libertas_tf.h
index fbbaaae7a1ae..737eac92ef72 100644
--- a/drivers/net/wireless/libertas_tf/libertas_tf.h
+++ b/drivers/net/wireless/libertas_tf/libertas_tf.h
@@ -316,7 +316,7 @@ struct cmd_header {
316 __le16 size; 316 __le16 size;
317 __le16 seqnum; 317 __le16 seqnum;
318 __le16 result; 318 __le16 result;
319} __attribute__ ((packed)); 319} __packed;
320 320
321struct cmd_ctrl_node { 321struct cmd_ctrl_node {
322 struct list_head list; 322 struct list_head list;
@@ -369,7 +369,7 @@ struct cmd_ds_get_hw_spec {
369 369
370 /*FW/HW capability */ 370 /*FW/HW capability */
371 __le32 fwcapinfo; 371 __le32 fwcapinfo;
372} __attribute__ ((packed)); 372} __packed;
373 373
374struct cmd_ds_mac_control { 374struct cmd_ds_mac_control {
375 struct cmd_header hdr; 375 struct cmd_header hdr;
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
index 6f8cb3ee6fed..49a7dfb4809a 100644
--- a/drivers/net/wireless/mac80211_hwsim.c
+++ b/drivers/net/wireless/mac80211_hwsim.c
@@ -317,7 +317,7 @@ struct hwsim_radiotap_hdr {
317 u8 rt_rate; 317 u8 rt_rate;
318 __le16 rt_channel; 318 __le16 rt_channel;
319 __le16 rt_chbitmask; 319 __le16 rt_chbitmask;
320} __attribute__ ((packed)); 320} __packed;
321 321
322 322
323static netdev_tx_t hwsim_mon_xmit(struct sk_buff *skb, 323static netdev_tx_t hwsim_mon_xmit(struct sk_buff *skb,
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 808adb909095..60a819107a8c 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -426,7 +426,7 @@ struct mwl8k_cmd_pkt {
426 __u8 macid; 426 __u8 macid;
427 __le16 result; 427 __le16 result;
428 char payload[0]; 428 char payload[0];
429} __attribute__((packed)); 429} __packed;
430 430
431/* 431/*
432 * Firmware loading. 432 * Firmware loading.
@@ -632,7 +632,7 @@ struct mwl8k_dma_data {
632 __le16 fwlen; 632 __le16 fwlen;
633 struct ieee80211_hdr wh; 633 struct ieee80211_hdr wh;
634 char data[0]; 634 char data[0];
635} __attribute__((packed)); 635} __packed;
636 636
637/* Routines to add/remove DMA header from skb. */ 637/* Routines to add/remove DMA header from skb. */
638static inline void mwl8k_remove_dma_header(struct sk_buff *skb, __le16 qos) 638static inline void mwl8k_remove_dma_header(struct sk_buff *skb, __le16 qos)
@@ -711,7 +711,7 @@ struct mwl8k_rxd_8366_ap {
711 __u8 rx_status; 711 __u8 rx_status;
712 __u8 channel; 712 __u8 channel;
713 __u8 rx_ctrl; 713 __u8 rx_ctrl;
714} __attribute__((packed)); 714} __packed;
715 715
716#define MWL8K_8366_AP_RATE_INFO_MCS_FORMAT 0x80 716#define MWL8K_8366_AP_RATE_INFO_MCS_FORMAT 0x80
717#define MWL8K_8366_AP_RATE_INFO_40MHZ 0x40 717#define MWL8K_8366_AP_RATE_INFO_40MHZ 0x40
@@ -806,7 +806,7 @@ struct mwl8k_rxd_sta {
806 __u8 rx_ctrl; 806 __u8 rx_ctrl;
807 __u8 rx_status; 807 __u8 rx_status;
808 __u8 pad2[2]; 808 __u8 pad2[2];
809} __attribute__((packed)); 809} __packed;
810 810
811#define MWL8K_STA_RATE_INFO_SHORTPRE 0x8000 811#define MWL8K_STA_RATE_INFO_SHORTPRE 0x8000
812#define MWL8K_STA_RATE_INFO_ANTSELECT(x) (((x) >> 11) & 0x3) 812#define MWL8K_STA_RATE_INFO_ANTSELECT(x) (((x) >> 11) & 0x3)
@@ -1120,7 +1120,7 @@ struct mwl8k_tx_desc {
1120 __le16 rate_info; 1120 __le16 rate_info;
1121 __u8 peer_id; 1121 __u8 peer_id;
1122 __u8 tx_frag_cnt; 1122 __u8 tx_frag_cnt;
1123} __attribute__((packed)); 1123} __packed;
1124 1124
1125#define MWL8K_TX_DESCS 128 1125#define MWL8K_TX_DESCS 128
1126 1126
@@ -1666,7 +1666,7 @@ struct mwl8k_cmd_get_hw_spec_sta {
1666 __le32 caps2; 1666 __le32 caps2;
1667 __le32 num_tx_desc_per_queue; 1667 __le32 num_tx_desc_per_queue;
1668 __le32 total_rxd; 1668 __le32 total_rxd;
1669} __attribute__((packed)); 1669} __packed;
1670 1670
1671#define MWL8K_CAP_MAX_AMSDU 0x20000000 1671#define MWL8K_CAP_MAX_AMSDU 0x20000000
1672#define MWL8K_CAP_GREENFIELD 0x08000000 1672#define MWL8K_CAP_GREENFIELD 0x08000000
@@ -1810,7 +1810,7 @@ struct mwl8k_cmd_get_hw_spec_ap {
1810 __le32 wcbbase1; 1810 __le32 wcbbase1;
1811 __le32 wcbbase2; 1811 __le32 wcbbase2;
1812 __le32 wcbbase3; 1812 __le32 wcbbase3;
1813} __attribute__((packed)); 1813} __packed;
1814 1814
1815static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw) 1815static int mwl8k_cmd_get_hw_spec_ap(struct ieee80211_hw *hw)
1816{ 1816{
@@ -1883,7 +1883,7 @@ struct mwl8k_cmd_set_hw_spec {
1883 __le32 flags; 1883 __le32 flags;
1884 __le32 num_tx_desc_per_queue; 1884 __le32 num_tx_desc_per_queue;
1885 __le32 total_rxd; 1885 __le32 total_rxd;
1886} __attribute__((packed)); 1886} __packed;
1887 1887
1888#define MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT 0x00000080 1888#define MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT 0x00000080
1889#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP 0x00000020 1889#define MWL8K_SET_HW_SPEC_FLAG_HOSTFORM_PROBERESP 0x00000020
@@ -1985,7 +1985,7 @@ __mwl8k_cmd_mac_multicast_adr(struct ieee80211_hw *hw, int allmulti,
1985struct mwl8k_cmd_get_stat { 1985struct mwl8k_cmd_get_stat {
1986 struct mwl8k_cmd_pkt header; 1986 struct mwl8k_cmd_pkt header;
1987 __le32 stats[64]; 1987 __le32 stats[64];
1988} __attribute__((packed)); 1988} __packed;
1989 1989
1990#define MWL8K_STAT_ACK_FAILURE 9 1990#define MWL8K_STAT_ACK_FAILURE 9
1991#define MWL8K_STAT_RTS_FAILURE 12 1991#define MWL8K_STAT_RTS_FAILURE 12
@@ -2029,7 +2029,7 @@ struct mwl8k_cmd_radio_control {
2029 __le16 action; 2029 __le16 action;
2030 __le16 control; 2030 __le16 control;
2031 __le16 radio_on; 2031 __le16 radio_on;
2032} __attribute__((packed)); 2032} __packed;
2033 2033
2034static int 2034static int
2035mwl8k_cmd_radio_control(struct ieee80211_hw *hw, bool enable, bool force) 2035mwl8k_cmd_radio_control(struct ieee80211_hw *hw, bool enable, bool force)
@@ -2092,7 +2092,7 @@ struct mwl8k_cmd_rf_tx_power {
2092 __le16 current_level; 2092 __le16 current_level;
2093 __le16 reserved; 2093 __le16 reserved;
2094 __le16 power_level_list[MWL8K_TX_POWER_LEVEL_TOTAL]; 2094 __le16 power_level_list[MWL8K_TX_POWER_LEVEL_TOTAL];
2095} __attribute__((packed)); 2095} __packed;
2096 2096
2097static int mwl8k_cmd_rf_tx_power(struct ieee80211_hw *hw, int dBm) 2097static int mwl8k_cmd_rf_tx_power(struct ieee80211_hw *hw, int dBm)
2098{ 2098{
@@ -2121,7 +2121,7 @@ struct mwl8k_cmd_rf_antenna {
2121 struct mwl8k_cmd_pkt header; 2121 struct mwl8k_cmd_pkt header;
2122 __le16 antenna; 2122 __le16 antenna;
2123 __le16 mode; 2123 __le16 mode;
2124} __attribute__((packed)); 2124} __packed;
2125 2125
2126#define MWL8K_RF_ANTENNA_RX 1 2126#define MWL8K_RF_ANTENNA_RX 1
2127#define MWL8K_RF_ANTENNA_TX 2 2127#define MWL8K_RF_ANTENNA_TX 2
@@ -2182,7 +2182,7 @@ static int mwl8k_cmd_set_beacon(struct ieee80211_hw *hw,
2182 */ 2182 */
2183struct mwl8k_cmd_set_pre_scan { 2183struct mwl8k_cmd_set_pre_scan {
2184 struct mwl8k_cmd_pkt header; 2184 struct mwl8k_cmd_pkt header;
2185} __attribute__((packed)); 2185} __packed;
2186 2186
2187static int mwl8k_cmd_set_pre_scan(struct ieee80211_hw *hw) 2187static int mwl8k_cmd_set_pre_scan(struct ieee80211_hw *hw)
2188{ 2188{
@@ -2209,7 +2209,7 @@ struct mwl8k_cmd_set_post_scan {
2209 struct mwl8k_cmd_pkt header; 2209 struct mwl8k_cmd_pkt header;
2210 __le32 isibss; 2210 __le32 isibss;
2211 __u8 bssid[ETH_ALEN]; 2211 __u8 bssid[ETH_ALEN];
2212} __attribute__((packed)); 2212} __packed;
2213 2213
2214static int 2214static int
2215mwl8k_cmd_set_post_scan(struct ieee80211_hw *hw, const __u8 *mac) 2215mwl8k_cmd_set_post_scan(struct ieee80211_hw *hw, const __u8 *mac)
@@ -2240,7 +2240,7 @@ struct mwl8k_cmd_set_rf_channel {
2240 __le16 action; 2240 __le16 action;
2241 __u8 current_channel; 2241 __u8 current_channel;
2242 __le32 channel_flags; 2242 __le32 channel_flags;
2243} __attribute__((packed)); 2243} __packed;
2244 2244
2245static int mwl8k_cmd_set_rf_channel(struct ieee80211_hw *hw, 2245static int mwl8k_cmd_set_rf_channel(struct ieee80211_hw *hw,
2246 struct ieee80211_conf *conf) 2246 struct ieee80211_conf *conf)
@@ -2293,7 +2293,7 @@ struct mwl8k_cmd_update_set_aid {
2293 __u8 bssid[ETH_ALEN]; 2293 __u8 bssid[ETH_ALEN];
2294 __le16 protection_mode; 2294 __le16 protection_mode;
2295 __u8 supp_rates[14]; 2295 __u8 supp_rates[14];
2296} __attribute__((packed)); 2296} __packed;
2297 2297
2298static void legacy_rate_mask_to_array(u8 *rates, u32 mask) 2298static void legacy_rate_mask_to_array(u8 *rates, u32 mask)
2299{ 2299{
@@ -2364,7 +2364,7 @@ struct mwl8k_cmd_set_rate {
2364 /* Bitmap for supported MCS codes. */ 2364 /* Bitmap for supported MCS codes. */
2365 __u8 mcs_set[16]; 2365 __u8 mcs_set[16];
2366 __u8 reserved[16]; 2366 __u8 reserved[16];
2367} __attribute__((packed)); 2367} __packed;
2368 2368
2369static int 2369static int
2370mwl8k_cmd_set_rate(struct ieee80211_hw *hw, struct ieee80211_vif *vif, 2370mwl8k_cmd_set_rate(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
@@ -2397,7 +2397,7 @@ struct mwl8k_cmd_finalize_join {
2397 struct mwl8k_cmd_pkt header; 2397 struct mwl8k_cmd_pkt header;
2398 __le32 sleep_interval; /* Number of beacon periods to sleep */ 2398 __le32 sleep_interval; /* Number of beacon periods to sleep */
2399 __u8 beacon_data[MWL8K_FJ_BEACON_MAXLEN]; 2399 __u8 beacon_data[MWL8K_FJ_BEACON_MAXLEN];
2400} __attribute__((packed)); 2400} __packed;
2401 2401
2402static int mwl8k_cmd_finalize_join(struct ieee80211_hw *hw, void *frame, 2402static int mwl8k_cmd_finalize_join(struct ieee80211_hw *hw, void *frame,
2403 int framelen, int dtim) 2403 int framelen, int dtim)
@@ -2436,7 +2436,7 @@ struct mwl8k_cmd_set_rts_threshold {
2436 struct mwl8k_cmd_pkt header; 2436 struct mwl8k_cmd_pkt header;
2437 __le16 action; 2437 __le16 action;
2438 __le16 threshold; 2438 __le16 threshold;
2439} __attribute__((packed)); 2439} __packed;
2440 2440
2441static int 2441static int
2442mwl8k_cmd_set_rts_threshold(struct ieee80211_hw *hw, int rts_thresh) 2442mwl8k_cmd_set_rts_threshold(struct ieee80211_hw *hw, int rts_thresh)
@@ -2466,7 +2466,7 @@ struct mwl8k_cmd_set_slot {
2466 struct mwl8k_cmd_pkt header; 2466 struct mwl8k_cmd_pkt header;
2467 __le16 action; 2467 __le16 action;
2468 __u8 short_slot; 2468 __u8 short_slot;
2469} __attribute__((packed)); 2469} __packed;
2470 2470
2471static int mwl8k_cmd_set_slot(struct ieee80211_hw *hw, bool short_slot_time) 2471static int mwl8k_cmd_set_slot(struct ieee80211_hw *hw, bool short_slot_time)
2472{ 2472{
@@ -2528,7 +2528,7 @@ struct mwl8k_cmd_set_edca_params {
2528 __u8 txq; 2528 __u8 txq;
2529 } sta; 2529 } sta;
2530 }; 2530 };
2531} __attribute__((packed)); 2531} __packed;
2532 2532
2533#define MWL8K_SET_EDCA_CW 0x01 2533#define MWL8K_SET_EDCA_CW 0x01
2534#define MWL8K_SET_EDCA_TXOP 0x02 2534#define MWL8K_SET_EDCA_TXOP 0x02
@@ -2579,7 +2579,7 @@ mwl8k_cmd_set_edca_params(struct ieee80211_hw *hw, __u8 qnum,
2579struct mwl8k_cmd_set_wmm_mode { 2579struct mwl8k_cmd_set_wmm_mode {
2580 struct mwl8k_cmd_pkt header; 2580 struct mwl8k_cmd_pkt header;
2581 __le16 action; 2581 __le16 action;
2582} __attribute__((packed)); 2582} __packed;
2583 2583
2584static int mwl8k_cmd_set_wmm_mode(struct ieee80211_hw *hw, bool enable) 2584static int mwl8k_cmd_set_wmm_mode(struct ieee80211_hw *hw, bool enable)
2585{ 2585{
@@ -2612,7 +2612,7 @@ struct mwl8k_cmd_mimo_config {
2612 __le32 action; 2612 __le32 action;
2613 __u8 rx_antenna_map; 2613 __u8 rx_antenna_map;
2614 __u8 tx_antenna_map; 2614 __u8 tx_antenna_map;
2615} __attribute__((packed)); 2615} __packed;
2616 2616
2617static int mwl8k_cmd_mimo_config(struct ieee80211_hw *hw, __u8 rx, __u8 tx) 2617static int mwl8k_cmd_mimo_config(struct ieee80211_hw *hw, __u8 rx, __u8 tx)
2618{ 2618{
@@ -2652,7 +2652,7 @@ struct mwl8k_cmd_use_fixed_rate_sta {
2652 __le32 rate_type; 2652 __le32 rate_type;
2653 __le32 reserved1; 2653 __le32 reserved1;
2654 __le32 reserved2; 2654 __le32 reserved2;
2655} __attribute__((packed)); 2655} __packed;
2656 2656
2657#define MWL8K_USE_AUTO_RATE 0x0002 2657#define MWL8K_USE_AUTO_RATE 0x0002
2658#define MWL8K_UCAST_RATE 0 2658#define MWL8K_UCAST_RATE 0
@@ -2694,7 +2694,7 @@ struct mwl8k_cmd_use_fixed_rate_ap {
2694 u8 multicast_rate; 2694 u8 multicast_rate;
2695 u8 multicast_rate_type; 2695 u8 multicast_rate_type;
2696 u8 management_rate; 2696 u8 management_rate;
2697} __attribute__((packed)); 2697} __packed;
2698 2698
2699static int 2699static int
2700mwl8k_cmd_use_fixed_rate_ap(struct ieee80211_hw *hw, int mcast, int mgmt) 2700mwl8k_cmd_use_fixed_rate_ap(struct ieee80211_hw *hw, int mcast, int mgmt)
@@ -2724,7 +2724,7 @@ mwl8k_cmd_use_fixed_rate_ap(struct ieee80211_hw *hw, int mcast, int mgmt)
2724struct mwl8k_cmd_enable_sniffer { 2724struct mwl8k_cmd_enable_sniffer {
2725 struct mwl8k_cmd_pkt header; 2725 struct mwl8k_cmd_pkt header;
2726 __le32 action; 2726 __le32 action;
2727} __attribute__((packed)); 2727} __packed;
2728 2728
2729static int mwl8k_cmd_enable_sniffer(struct ieee80211_hw *hw, bool enable) 2729static int mwl8k_cmd_enable_sniffer(struct ieee80211_hw *hw, bool enable)
2730{ 2730{
@@ -2757,7 +2757,7 @@ struct mwl8k_cmd_set_mac_addr {
2757 } mbss; 2757 } mbss;
2758 __u8 mac_addr[ETH_ALEN]; 2758 __u8 mac_addr[ETH_ALEN];
2759 }; 2759 };
2760} __attribute__((packed)); 2760} __packed;
2761 2761
2762#define MWL8K_MAC_TYPE_PRIMARY_CLIENT 0 2762#define MWL8K_MAC_TYPE_PRIMARY_CLIENT 0
2763#define MWL8K_MAC_TYPE_SECONDARY_CLIENT 1 2763#define MWL8K_MAC_TYPE_SECONDARY_CLIENT 1
@@ -2812,7 +2812,7 @@ struct mwl8k_cmd_set_rate_adapt_mode {
2812 struct mwl8k_cmd_pkt header; 2812 struct mwl8k_cmd_pkt header;
2813 __le16 action; 2813 __le16 action;
2814 __le16 mode; 2814 __le16 mode;
2815} __attribute__((packed)); 2815} __packed;
2816 2816
2817static int mwl8k_cmd_set_rateadapt_mode(struct ieee80211_hw *hw, __u16 mode) 2817static int mwl8k_cmd_set_rateadapt_mode(struct ieee80211_hw *hw, __u16 mode)
2818{ 2818{
@@ -2840,7 +2840,7 @@ static int mwl8k_cmd_set_rateadapt_mode(struct ieee80211_hw *hw, __u16 mode)
2840struct mwl8k_cmd_bss_start { 2840struct mwl8k_cmd_bss_start {
2841 struct mwl8k_cmd_pkt header; 2841 struct mwl8k_cmd_pkt header;
2842 __le32 enable; 2842 __le32 enable;
2843} __attribute__((packed)); 2843} __packed;
2844 2844
2845static int mwl8k_cmd_bss_start(struct ieee80211_hw *hw, 2845static int mwl8k_cmd_bss_start(struct ieee80211_hw *hw,
2846 struct ieee80211_vif *vif, int enable) 2846 struct ieee80211_vif *vif, int enable)
@@ -2885,7 +2885,7 @@ struct mwl8k_cmd_set_new_stn {
2885 __u8 add_qos_info; 2885 __u8 add_qos_info;
2886 __u8 is_qos_sta; 2886 __u8 is_qos_sta;
2887 __le32 fw_sta_ptr; 2887 __le32 fw_sta_ptr;
2888} __attribute__((packed)); 2888} __packed;
2889 2889
2890#define MWL8K_STA_ACTION_ADD 0 2890#define MWL8K_STA_ACTION_ADD 0
2891#define MWL8K_STA_ACTION_REMOVE 2 2891#define MWL8K_STA_ACTION_REMOVE 2
@@ -2978,7 +2978,7 @@ struct ewc_ht_info {
2978 __le16 control1; 2978 __le16 control1;
2979 __le16 control2; 2979 __le16 control2;
2980 __le16 control3; 2980 __le16 control3;
2981} __attribute__((packed)); 2981} __packed;
2982 2982
2983struct peer_capability_info { 2983struct peer_capability_info {
2984 /* Peer type - AP vs. STA. */ 2984 /* Peer type - AP vs. STA. */
@@ -3007,7 +3007,7 @@ struct peer_capability_info {
3007 __u8 pad2; 3007 __u8 pad2;
3008 __u8 station_id; 3008 __u8 station_id;
3009 __le16 amsdu_enabled; 3009 __le16 amsdu_enabled;
3010} __attribute__((packed)); 3010} __packed;
3011 3011
3012struct mwl8k_cmd_update_stadb { 3012struct mwl8k_cmd_update_stadb {
3013 struct mwl8k_cmd_pkt header; 3013 struct mwl8k_cmd_pkt header;
@@ -3022,7 +3022,7 @@ struct mwl8k_cmd_update_stadb {
3022 3022
3023 /* Peer info - valid during add/update. */ 3023 /* Peer info - valid during add/update. */
3024 struct peer_capability_info peer_info; 3024 struct peer_capability_info peer_info;
3025} __attribute__((packed)); 3025} __packed;
3026 3026
3027#define MWL8K_STA_DB_MODIFY_ENTRY 1 3027#define MWL8K_STA_DB_MODIFY_ENTRY 1
3028#define MWL8K_STA_DB_DEL_ENTRY 2 3028#define MWL8K_STA_DB_DEL_ENTRY 2
diff --git a/drivers/net/wireless/orinoco/fw.c b/drivers/net/wireless/orinoco/fw.c
index 3e1947d097ca..259d75853984 100644
--- a/drivers/net/wireless/orinoco/fw.c
+++ b/drivers/net/wireless/orinoco/fw.c
@@ -49,7 +49,7 @@ struct orinoco_fw_header {
49 __le32 pri_offset; /* Offset to primary plug data */ 49 __le32 pri_offset; /* Offset to primary plug data */
50 __le32 compat_offset; /* Offset to compatibility data*/ 50 __le32 compat_offset; /* Offset to compatibility data*/
51 char signature[0]; /* FW signature length headersize-20 */ 51 char signature[0]; /* FW signature length headersize-20 */
52} __attribute__ ((packed)); 52} __packed;
53 53
54/* Check the range of various header entries. Return a pointer to a 54/* Check the range of various header entries. Return a pointer to a
55 * description of the problem, or NULL if everything checks out. */ 55 * description of the problem, or NULL if everything checks out. */
diff --git a/drivers/net/wireless/orinoco/hermes.h b/drivers/net/wireless/orinoco/hermes.h
index 9ca34e722b45..d9f18c11682a 100644
--- a/drivers/net/wireless/orinoco/hermes.h
+++ b/drivers/net/wireless/orinoco/hermes.h
@@ -205,7 +205,7 @@ struct hermes_tx_descriptor {
205 u8 retry_count; 205 u8 retry_count;
206 u8 tx_rate; 206 u8 tx_rate;
207 __le16 tx_control; 207 __le16 tx_control;
208} __attribute__ ((packed)); 208} __packed;
209 209
210#define HERMES_TXSTAT_RETRYERR (0x0001) 210#define HERMES_TXSTAT_RETRYERR (0x0001)
211#define HERMES_TXSTAT_AGEDERR (0x0002) 211#define HERMES_TXSTAT_AGEDERR (0x0002)
@@ -254,7 +254,7 @@ struct hermes_tallies_frame {
254 /* Those last are probably not available in very old firmwares */ 254 /* Those last are probably not available in very old firmwares */
255 __le16 RxDiscards_WEPICVError; 255 __le16 RxDiscards_WEPICVError;
256 __le16 RxDiscards_WEPExcluded; 256 __le16 RxDiscards_WEPExcluded;
257} __attribute__ ((packed)); 257} __packed;
258 258
259/* Grabbed from wlan-ng - Thanks Mark... - Jean II 259/* Grabbed from wlan-ng - Thanks Mark... - Jean II
260 * This is the result of a scan inquiry command */ 260 * This is the result of a scan inquiry command */
@@ -271,7 +271,7 @@ struct prism2_scan_apinfo {
271 u8 rates[10]; /* Bit rate supported */ 271 u8 rates[10]; /* Bit rate supported */
272 __le16 proberesp_rate; /* Data rate of the response frame */ 272 __le16 proberesp_rate; /* Data rate of the response frame */
273 __le16 atim; /* ATIM window time, Kus (hostscan only) */ 273 __le16 atim; /* ATIM window time, Kus (hostscan only) */
274} __attribute__ ((packed)); 274} __packed;
275 275
276/* Same stuff for the Lucent/Agere card. 276/* Same stuff for the Lucent/Agere card.
277 * Thanks to h1kari <h1kari AT dachb0den.com> - Jean II */ 277 * Thanks to h1kari <h1kari AT dachb0den.com> - Jean II */
@@ -285,7 +285,7 @@ struct agere_scan_apinfo {
285 /* bits: 0-ess, 1-ibss, 4-privacy [wep] */ 285 /* bits: 0-ess, 1-ibss, 4-privacy [wep] */
286 __le16 essid_len; /* ESSID length */ 286 __le16 essid_len; /* ESSID length */
287 u8 essid[32]; /* ESSID of the network */ 287 u8 essid[32]; /* ESSID of the network */
288} __attribute__ ((packed)); 288} __packed;
289 289
290/* Moustafa: Scan structure for Symbol cards */ 290/* Moustafa: Scan structure for Symbol cards */
291struct symbol_scan_apinfo { 291struct symbol_scan_apinfo {
@@ -303,7 +303,7 @@ struct symbol_scan_apinfo {
303 __le16 basic_rates; /* Basic rates bitmask */ 303 __le16 basic_rates; /* Basic rates bitmask */
304 u8 unknown2[6]; /* Always FF:FF:FF:FF:00:00 */ 304 u8 unknown2[6]; /* Always FF:FF:FF:FF:00:00 */
305 u8 unknown3[8]; /* Always 0, appeared in f/w 3.91-68 */ 305 u8 unknown3[8]; /* Always 0, appeared in f/w 3.91-68 */
306} __attribute__ ((packed)); 306} __packed;
307 307
308union hermes_scan_info { 308union hermes_scan_info {
309 struct agere_scan_apinfo a; 309 struct agere_scan_apinfo a;
@@ -343,7 +343,7 @@ struct agere_ext_scan_info {
343 __le16 beacon_interval; 343 __le16 beacon_interval;
344 __le16 capabilities; 344 __le16 capabilities;
345 u8 data[0]; 345 u8 data[0];
346} __attribute__ ((packed)); 346} __packed;
347 347
348#define HERMES_LINKSTATUS_NOT_CONNECTED (0x0000) 348#define HERMES_LINKSTATUS_NOT_CONNECTED (0x0000)
349#define HERMES_LINKSTATUS_CONNECTED (0x0001) 349#define HERMES_LINKSTATUS_CONNECTED (0x0001)
@@ -355,7 +355,7 @@ struct agere_ext_scan_info {
355 355
356struct hermes_linkstatus { 356struct hermes_linkstatus {
357 __le16 linkstatus; /* Link status */ 357 __le16 linkstatus; /* Link status */
358} __attribute__ ((packed)); 358} __packed;
359 359
360struct hermes_response { 360struct hermes_response {
361 u16 status, resp0, resp1, resp2; 361 u16 status, resp0, resp1, resp2;
@@ -365,11 +365,11 @@ struct hermes_response {
365struct hermes_idstring { 365struct hermes_idstring {
366 __le16 len; 366 __le16 len;
367 __le16 val[16]; 367 __le16 val[16];
368} __attribute__ ((packed)); 368} __packed;
369 369
370struct hermes_multicast { 370struct hermes_multicast {
371 u8 addr[HERMES_MAX_MULTICAST][ETH_ALEN]; 371 u8 addr[HERMES_MAX_MULTICAST][ETH_ALEN];
372} __attribute__ ((packed)); 372} __packed;
373 373
374/* Timeouts */ 374/* Timeouts */
375#define HERMES_BAP_BUSY_TIMEOUT (10000) /* In iterations of ~1us */ 375#define HERMES_BAP_BUSY_TIMEOUT (10000) /* In iterations of ~1us */
diff --git a/drivers/net/wireless/orinoco/hermes_dld.c b/drivers/net/wireless/orinoco/hermes_dld.c
index 6da85e75fce0..55741caa2b82 100644
--- a/drivers/net/wireless/orinoco/hermes_dld.c
+++ b/drivers/net/wireless/orinoco/hermes_dld.c
@@ -65,7 +65,7 @@ struct dblock {
65 __le32 addr; /* adapter address where to write the block */ 65 __le32 addr; /* adapter address where to write the block */
66 __le16 len; /* length of the data only, in bytes */ 66 __le16 len; /* length of the data only, in bytes */
67 char data[0]; /* data to be written */ 67 char data[0]; /* data to be written */
68} __attribute__ ((packed)); 68} __packed;
69 69
70/* 70/*
71 * Plug Data References are located in in the image after the last data 71 * Plug Data References are located in in the image after the last data
@@ -77,7 +77,7 @@ struct pdr {
77 __le32 addr; /* adapter address where to write the data */ 77 __le32 addr; /* adapter address where to write the data */
78 __le32 len; /* expected length of the data, in bytes */ 78 __le32 len; /* expected length of the data, in bytes */
79 char next[0]; /* next PDR starts here */ 79 char next[0]; /* next PDR starts here */
80} __attribute__ ((packed)); 80} __packed;
81 81
82/* 82/*
83 * Plug Data Items are located in the EEPROM read from the adapter by 83 * Plug Data Items are located in the EEPROM read from the adapter by
@@ -88,7 +88,7 @@ struct pdi {
88 __le16 len; /* length of ID and data, in words */ 88 __le16 len; /* length of ID and data, in words */
89 __le16 id; /* record ID */ 89 __le16 id; /* record ID */
90 char data[0]; /* plug data */ 90 char data[0]; /* plug data */
91} __attribute__ ((packed)); 91} __packed;
92 92
93/*** FW data block access functions ***/ 93/*** FW data block access functions ***/
94 94
@@ -317,7 +317,7 @@ static const struct { \
317 __le16 len; \ 317 __le16 len; \
318 __le16 id; \ 318 __le16 id; \
319 u8 val[length]; \ 319 u8 val[length]; \
320} __attribute__ ((packed)) default_pdr_data_##pid = { \ 320} __packed default_pdr_data_##pid = { \
321 cpu_to_le16((sizeof(default_pdr_data_##pid)/ \ 321 cpu_to_le16((sizeof(default_pdr_data_##pid)/ \
322 sizeof(__le16)) - 1), \ 322 sizeof(__le16)) - 1), \
323 cpu_to_le16(pid), \ 323 cpu_to_le16(pid), \
diff --git a/drivers/net/wireless/orinoco/hw.c b/drivers/net/wireless/orinoco/hw.c
index 6fbd78850123..077baa86756b 100644
--- a/drivers/net/wireless/orinoco/hw.c
+++ b/drivers/net/wireless/orinoco/hw.c
@@ -45,7 +45,7 @@ static const struct {
45/* Firmware version encoding */ 45/* Firmware version encoding */
46struct comp_id { 46struct comp_id {
47 u16 id, variant, major, minor; 47 u16 id, variant, major, minor;
48} __attribute__ ((packed)); 48} __packed;
49 49
50static inline fwtype_t determine_firmware_type(struct comp_id *nic_id) 50static inline fwtype_t determine_firmware_type(struct comp_id *nic_id)
51{ 51{
@@ -995,7 +995,7 @@ int __orinoco_hw_set_tkip_key(struct orinoco_private *priv, int key_idx,
995 u8 tx_mic[MIC_KEYLEN]; 995 u8 tx_mic[MIC_KEYLEN];
996 u8 rx_mic[MIC_KEYLEN]; 996 u8 rx_mic[MIC_KEYLEN];
997 u8 tsc[ORINOCO_SEQ_LEN]; 997 u8 tsc[ORINOCO_SEQ_LEN];
998 } __attribute__ ((packed)) buf; 998 } __packed buf;
999 hermes_t *hw = &priv->hw; 999 hermes_t *hw = &priv->hw;
1000 int ret; 1000 int ret;
1001 int err; 1001 int err;
@@ -1326,7 +1326,7 @@ int orinoco_hw_disassociate(struct orinoco_private *priv,
1326 struct { 1326 struct {
1327 u8 addr[ETH_ALEN]; 1327 u8 addr[ETH_ALEN];
1328 __le16 reason_code; 1328 __le16 reason_code;
1329 } __attribute__ ((packed)) buf; 1329 } __packed buf;
1330 1330
1331 /* Currently only supported by WPA enabled Agere fw */ 1331 /* Currently only supported by WPA enabled Agere fw */
1332 if (!priv->has_wpa) 1332 if (!priv->has_wpa)
diff --git a/drivers/net/wireless/orinoco/main.c b/drivers/net/wireless/orinoco/main.c
index ca71f08709bc..e8e2d0f4763d 100644
--- a/drivers/net/wireless/orinoco/main.c
+++ b/drivers/net/wireless/orinoco/main.c
@@ -172,7 +172,7 @@ struct hermes_txexc_data {
172 __le16 frame_ctl; 172 __le16 frame_ctl;
173 __le16 duration_id; 173 __le16 duration_id;
174 u8 addr1[ETH_ALEN]; 174 u8 addr1[ETH_ALEN];
175} __attribute__ ((packed)); 175} __packed;
176 176
177/* Rx frame header except compatibility 802.3 header */ 177/* Rx frame header except compatibility 802.3 header */
178struct hermes_rx_descriptor { 178struct hermes_rx_descriptor {
@@ -196,7 +196,7 @@ struct hermes_rx_descriptor {
196 196
197 /* Data length */ 197 /* Data length */
198 __le16 data_len; 198 __le16 data_len;
199} __attribute__ ((packed)); 199} __packed;
200 200
201struct orinoco_rx_data { 201struct orinoco_rx_data {
202 struct hermes_rx_descriptor *desc; 202 struct hermes_rx_descriptor *desc;
@@ -390,7 +390,7 @@ int orinoco_process_xmit_skb(struct sk_buff *skb,
390 struct header_struct { 390 struct header_struct {
391 struct ethhdr eth; /* 802.3 header */ 391 struct ethhdr eth; /* 802.3 header */
392 u8 encap[6]; /* 802.2 header */ 392 u8 encap[6]; /* 802.2 header */
393 } __attribute__ ((packed)) hdr; 393 } __packed hdr;
394 int len = skb->len + sizeof(encaps_hdr) - (2 * ETH_ALEN); 394 int len = skb->len + sizeof(encaps_hdr) - (2 * ETH_ALEN);
395 395
396 if (skb_headroom(skb) < ENCAPS_OVERHEAD) { 396 if (skb_headroom(skb) < ENCAPS_OVERHEAD) {
@@ -1170,7 +1170,7 @@ static void orinoco_join_ap(struct work_struct *work)
1170 struct join_req { 1170 struct join_req {
1171 u8 bssid[ETH_ALEN]; 1171 u8 bssid[ETH_ALEN];
1172 __le16 channel; 1172 __le16 channel;
1173 } __attribute__ ((packed)) req; 1173 } __packed req;
1174 const int atom_len = offsetof(struct prism2_scan_apinfo, atim); 1174 const int atom_len = offsetof(struct prism2_scan_apinfo, atim);
1175 struct prism2_scan_apinfo *atom = NULL; 1175 struct prism2_scan_apinfo *atom = NULL;
1176 int offset = 4; 1176 int offset = 4;
@@ -1410,7 +1410,7 @@ void __orinoco_ev_info(struct net_device *dev, hermes_t *hw)
1410 struct { 1410 struct {
1411 __le16 len; 1411 __le16 len;
1412 __le16 type; 1412 __le16 type;
1413 } __attribute__ ((packed)) info; 1413 } __packed info;
1414 int len, type; 1414 int len, type;
1415 int err; 1415 int err;
1416 1416
diff --git a/drivers/net/wireless/orinoco/orinoco.h b/drivers/net/wireless/orinoco/orinoco.h
index a6da86e0a70f..255710ef082a 100644
--- a/drivers/net/wireless/orinoco/orinoco.h
+++ b/drivers/net/wireless/orinoco/orinoco.h
@@ -32,7 +32,7 @@
32struct orinoco_key { 32struct orinoco_key {
33 __le16 len; /* always stored as little-endian */ 33 __le16 len; /* always stored as little-endian */
34 char data[ORINOCO_MAX_KEY_SIZE]; 34 char data[ORINOCO_MAX_KEY_SIZE];
35} __attribute__ ((packed)); 35} __packed;
36 36
37#define TKIP_KEYLEN 16 37#define TKIP_KEYLEN 16
38#define MIC_KEYLEN 8 38#define MIC_KEYLEN 8
diff --git a/drivers/net/wireless/orinoco/orinoco_usb.c b/drivers/net/wireless/orinoco/orinoco_usb.c
index 78f089baa8c9..11536ef17ba3 100644
--- a/drivers/net/wireless/orinoco/orinoco_usb.c
+++ b/drivers/net/wireless/orinoco/orinoco_usb.c
@@ -90,7 +90,7 @@ struct header_struct {
90 /* SNAP */ 90 /* SNAP */
91 u8 oui[3]; 91 u8 oui[3];
92 __be16 ethertype; 92 __be16 ethertype;
93} __attribute__ ((packed)); 93} __packed;
94 94
95struct ez_usb_fw { 95struct ez_usb_fw {
96 u16 size; 96 u16 size;
@@ -222,7 +222,7 @@ struct ezusb_packet {
222 __le16 hermes_len; 222 __le16 hermes_len;
223 __le16 hermes_rid; 223 __le16 hermes_rid;
224 u8 data[0]; 224 u8 data[0];
225} __attribute__ ((packed)); 225} __packed;
226 226
227/* Table of devices that work or may work with this driver */ 227/* Table of devices that work or may work with this driver */
228static struct usb_device_id ezusb_table[] = { 228static struct usb_device_id ezusb_table[] = {
diff --git a/drivers/net/wireless/orinoco/wext.c b/drivers/net/wireless/orinoco/wext.c
index 5775124e2aee..9f86a272cb78 100644
--- a/drivers/net/wireless/orinoco/wext.c
+++ b/drivers/net/wireless/orinoco/wext.c
@@ -128,7 +128,7 @@ static struct iw_statistics *orinoco_get_wireless_stats(struct net_device *dev)
128 } else { 128 } else {
129 struct { 129 struct {
130 __le16 qual, signal, noise, unused; 130 __le16 qual, signal, noise, unused;
131 } __attribute__ ((packed)) cq; 131 } __packed cq;
132 132
133 err = HERMES_READ_RECORD(hw, USER_BAP, 133 err = HERMES_READ_RECORD(hw, USER_BAP,
134 HERMES_RID_COMMSQUALITY, &cq); 134 HERMES_RID_COMMSQUALITY, &cq);
diff --git a/drivers/net/wireless/p54/net2280.h b/drivers/net/wireless/p54/net2280.h
index 4915d9d54203..e3ed893b5aaf 100644
--- a/drivers/net/wireless/p54/net2280.h
+++ b/drivers/net/wireless/p54/net2280.h
@@ -232,7 +232,7 @@ struct net2280_regs {
232#define GPIO2_INTERRUPT 2 232#define GPIO2_INTERRUPT 2
233#define GPIO1_INTERRUPT 1 233#define GPIO1_INTERRUPT 1
234#define GPIO0_INTERRUPT 0 234#define GPIO0_INTERRUPT 0
235} __attribute__ ((packed)); 235} __packed;
236 236
237/* usb control, BAR0 + 0x0080 */ 237/* usb control, BAR0 + 0x0080 */
238struct net2280_usb_regs { 238struct net2280_usb_regs {
@@ -296,7 +296,7 @@ struct net2280_usb_regs {
296#define FORCE_IMMEDIATE 7 296#define FORCE_IMMEDIATE 7
297#define OUR_USB_ADDRESS 0 297#define OUR_USB_ADDRESS 0
298 __le32 ourconfig; 298 __le32 ourconfig;
299} __attribute__ ((packed)); 299} __packed;
300 300
301/* pci control, BAR0 + 0x0100 */ 301/* pci control, BAR0 + 0x0100 */
302struct net2280_pci_regs { 302struct net2280_pci_regs {
@@ -323,7 +323,7 @@ struct net2280_pci_regs {
323#define PCI_ARBITER_CLEAR 2 323#define PCI_ARBITER_CLEAR 2
324#define PCI_EXTERNAL_ARBITER 1 324#define PCI_EXTERNAL_ARBITER 1
325#define PCI_HOST_MODE 0 325#define PCI_HOST_MODE 0
326} __attribute__ ((packed)); 326} __packed;
327 327
328/* dma control, BAR0 + 0x0180 ... array of four structs like this, 328/* dma control, BAR0 + 0x0180 ... array of four structs like this,
329 * for channels 0..3. see also struct net2280_dma: descriptor 329 * for channels 0..3. see also struct net2280_dma: descriptor
@@ -364,7 +364,7 @@ struct net2280_dma_regs { /* [11.7] */
364 __le32 dmaaddr; 364 __le32 dmaaddr;
365 __le32 dmadesc; 365 __le32 dmadesc;
366 u32 _unused1; 366 u32 _unused1;
367} __attribute__ ((packed)); 367} __packed;
368 368
369/* dedicated endpoint registers, BAR0 + 0x0200 */ 369/* dedicated endpoint registers, BAR0 + 0x0200 */
370 370
@@ -374,7 +374,7 @@ struct net2280_dep_regs { /* [11.8] */
374 /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */ 374 /* offset 0x0204, 0x0214, 0x224, 0x234, 0x244 */
375 __le32 dep_rsp; 375 __le32 dep_rsp;
376 u32 _unused[2]; 376 u32 _unused[2];
377} __attribute__ ((packed)); 377} __packed;
378 378
379/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs 379/* configurable endpoint registers, BAR0 + 0x0300 ... array of seven structs
380 * like this, for ep0 then the configurable endpoints A..F 380 * like this, for ep0 then the configurable endpoints A..F
@@ -437,16 +437,16 @@ struct net2280_ep_regs { /* [11.9] */
437 __le32 ep_avail; 437 __le32 ep_avail;
438 __le32 ep_data; 438 __le32 ep_data;
439 u32 _unused0[2]; 439 u32 _unused0[2];
440} __attribute__ ((packed)); 440} __packed;
441 441
442struct net2280_reg_write { 442struct net2280_reg_write {
443 __le16 port; 443 __le16 port;
444 __le32 addr; 444 __le32 addr;
445 __le32 val; 445 __le32 val;
446} __attribute__ ((packed)); 446} __packed;
447 447
448struct net2280_reg_read { 448struct net2280_reg_read {
449 __le16 port; 449 __le16 port;
450 __le32 addr; 450 __le32 addr;
451} __attribute__ ((packed)); 451} __packed;
452#endif /* NET2280_H */ 452#endif /* NET2280_H */
diff --git a/drivers/net/wireless/p54/p54pci.h b/drivers/net/wireless/p54/p54pci.h
index 2feead617a3b..ee9bc62a4fa2 100644
--- a/drivers/net/wireless/p54/p54pci.h
+++ b/drivers/net/wireless/p54/p54pci.h
@@ -65,7 +65,7 @@ struct p54p_csr {
65 u8 unused_6[1924]; 65 u8 unused_6[1924];
66 u8 cardbus_cis[0x800]; 66 u8 cardbus_cis[0x800];
67 u8 direct_mem_win[0x1000]; 67 u8 direct_mem_win[0x1000];
68} __attribute__ ((packed)); 68} __packed;
69 69
70/* usb backend only needs the register defines above */ 70/* usb backend only needs the register defines above */
71#ifndef P54USB_H 71#ifndef P54USB_H
@@ -74,7 +74,7 @@ struct p54p_desc {
74 __le32 device_addr; 74 __le32 device_addr;
75 __le16 len; 75 __le16 len;
76 __le16 flags; 76 __le16 flags;
77} __attribute__ ((packed)); 77} __packed;
78 78
79struct p54p_ring_control { 79struct p54p_ring_control {
80 __le32 host_idx[4]; 80 __le32 host_idx[4];
@@ -83,7 +83,7 @@ struct p54p_ring_control {
83 struct p54p_desc tx_data[32]; 83 struct p54p_desc tx_data[32];
84 struct p54p_desc rx_mgmt[4]; 84 struct p54p_desc rx_mgmt[4];
85 struct p54p_desc tx_mgmt[4]; 85 struct p54p_desc tx_mgmt[4];
86} __attribute__ ((packed)); 86} __packed;
87 87
88#define P54P_READ(r) (__force __le32)__raw_readl(&priv->map->r) 88#define P54P_READ(r) (__force __le32)__raw_readl(&priv->map->r)
89#define P54P_WRITE(r, val) __raw_writel((__force u32)(__le32)(val), &priv->map->r) 89#define P54P_WRITE(r, val) __raw_writel((__force u32)(__le32)(val), &priv->map->r)
diff --git a/drivers/net/wireless/p54/p54spi.h b/drivers/net/wireless/p54/p54spi.h
index 7fbe8d8fc67c..dfaa62aaeb07 100644
--- a/drivers/net/wireless/p54/p54spi.h
+++ b/drivers/net/wireless/p54/p54spi.h
@@ -96,7 +96,7 @@ struct p54s_dma_regs {
96 __le16 cmd; 96 __le16 cmd;
97 __le16 len; 97 __le16 len;
98 __le32 addr; 98 __le32 addr;
99} __attribute__ ((packed)); 99} __packed;
100 100
101struct p54s_tx_info { 101struct p54s_tx_info {
102 struct list_head tx_list; 102 struct list_head tx_list;
diff --git a/drivers/net/wireless/p54/p54usb.h b/drivers/net/wireless/p54/p54usb.h
index e935b79f7f75..ed4034ade59a 100644
--- a/drivers/net/wireless/p54/p54usb.h
+++ b/drivers/net/wireless/p54/p54usb.h
@@ -70,12 +70,12 @@ struct net2280_tx_hdr {
70 __le16 len; 70 __le16 len;
71 __le16 follower; /* ? */ 71 __le16 follower; /* ? */
72 u8 padding[8]; 72 u8 padding[8];
73} __attribute__((packed)); 73} __packed;
74 74
75struct lm87_tx_hdr { 75struct lm87_tx_hdr {
76 __le32 device_addr; 76 __le32 device_addr;
77 __le32 chksum; 77 __le32 chksum;
78} __attribute__((packed)); 78} __packed;
79 79
80/* Some flags for the isl hardware registers controlling DMA inside the 80/* Some flags for the isl hardware registers controlling DMA inside the
81 * chip */ 81 * chip */
@@ -103,7 +103,7 @@ struct x2_header {
103 __le32 fw_load_addr; 103 __le32 fw_load_addr;
104 __le32 fw_length; 104 __le32 fw_length;
105 __le32 crc; 105 __le32 crc;
106} __attribute__((packed)); 106} __packed;
107 107
108/* pipes 3 and 4 are not used by the driver */ 108/* pipes 3 and 4 are not used by the driver */
109#define P54U_PIPE_NUMBER 9 109#define P54U_PIPE_NUMBER 9
diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c
index 8d1190c0f062..13730a807002 100644
--- a/drivers/net/wireless/prism54/isl_ioctl.c
+++ b/drivers/net/wireless/prism54/isl_ioctl.c
@@ -2101,7 +2101,7 @@ struct ieee80211_beacon_phdr {
2101 u8 timestamp[8]; 2101 u8 timestamp[8];
2102 u16 beacon_int; 2102 u16 beacon_int;
2103 u16 capab_info; 2103 u16 capab_info;
2104} __attribute__ ((packed)); 2104} __packed;
2105 2105
2106#define WLAN_EID_GENERIC 0xdd 2106#define WLAN_EID_GENERIC 0xdd
2107static u8 wpa_oid[4] = { 0x00, 0x50, 0xf2, 1 }; 2107static u8 wpa_oid[4] = { 0x00, 0x50, 0xf2, 1 };
diff --git a/drivers/net/wireless/prism54/isl_oid.h b/drivers/net/wireless/prism54/isl_oid.h
index b7534c2869c8..59e31258d450 100644
--- a/drivers/net/wireless/prism54/isl_oid.h
+++ b/drivers/net/wireless/prism54/isl_oid.h
@@ -29,20 +29,20 @@
29struct obj_ssid { 29struct obj_ssid {
30 u8 length; 30 u8 length;
31 char octets[33]; 31 char octets[33];
32} __attribute__ ((packed)); 32} __packed;
33 33
34struct obj_key { 34struct obj_key {
35 u8 type; /* dot11_priv_t */ 35 u8 type; /* dot11_priv_t */
36 u8 length; 36 u8 length;
37 char key[32]; 37 char key[32];
38} __attribute__ ((packed)); 38} __packed;
39 39
40struct obj_mlme { 40struct obj_mlme {
41 u8 address[6]; 41 u8 address[6];
42 u16 id; 42 u16 id;
43 u16 state; 43 u16 state;
44 u16 code; 44 u16 code;
45} __attribute__ ((packed)); 45} __packed;
46 46
47struct obj_mlmeex { 47struct obj_mlmeex {
48 u8 address[6]; 48 u8 address[6];
@@ -51,12 +51,12 @@ struct obj_mlmeex {
51 u16 code; 51 u16 code;
52 u16 size; 52 u16 size;
53 u8 data[0]; 53 u8 data[0];
54} __attribute__ ((packed)); 54} __packed;
55 55
56struct obj_buffer { 56struct obj_buffer {
57 u32 size; 57 u32 size;
58 u32 addr; /* 32bit bus address */ 58 u32 addr; /* 32bit bus address */
59} __attribute__ ((packed)); 59} __packed;
60 60
61struct obj_bss { 61struct obj_bss {
62 u8 address[6]; 62 u8 address[6];
@@ -77,17 +77,17 @@ struct obj_bss {
77 short rates; 77 short rates;
78 short basic_rates; 78 short basic_rates;
79 int:16; /* padding */ 79 int:16; /* padding */
80} __attribute__ ((packed)); 80} __packed;
81 81
82struct obj_bsslist { 82struct obj_bsslist {
83 u32 nr; 83 u32 nr;
84 struct obj_bss bsslist[0]; 84 struct obj_bss bsslist[0];
85} __attribute__ ((packed)); 85} __packed;
86 86
87struct obj_frequencies { 87struct obj_frequencies {
88 u16 nr; 88 u16 nr;
89 u16 mhz[0]; 89 u16 mhz[0];
90} __attribute__ ((packed)); 90} __packed;
91 91
92struct obj_attachment { 92struct obj_attachment {
93 char type; 93 char type;
@@ -95,7 +95,7 @@ struct obj_attachment {
95 short id; 95 short id;
96 short size; 96 short size;
97 char data[0]; 97 char data[0];
98} __attribute__((packed)); 98} __packed;
99 99
100/* 100/*
101 * in case everything's ok, the inlined function below will be 101 * in case everything's ok, the inlined function below will be
diff --git a/drivers/net/wireless/prism54/islpci_eth.h b/drivers/net/wireless/prism54/islpci_eth.h
index 54f9a4b7bf9b..6ca30a5b7bfb 100644
--- a/drivers/net/wireless/prism54/islpci_eth.h
+++ b/drivers/net/wireless/prism54/islpci_eth.h
@@ -34,13 +34,13 @@ struct rfmon_header {
34 __le16 unk3; 34 __le16 unk3;
35 u8 rssi; 35 u8 rssi;
36 u8 padding[3]; 36 u8 padding[3];
37} __attribute__ ((packed)); 37} __packed;
38 38
39struct rx_annex_header { 39struct rx_annex_header {
40 u8 addr1[ETH_ALEN]; 40 u8 addr1[ETH_ALEN];
41 u8 addr2[ETH_ALEN]; 41 u8 addr2[ETH_ALEN];
42 struct rfmon_header rfmon; 42 struct rfmon_header rfmon;
43} __attribute__ ((packed)); 43} __packed;
44 44
45/* wlan-ng (and hopefully others) AVS header, version one. Fields in 45/* wlan-ng (and hopefully others) AVS header, version one. Fields in
46 * network byte order. */ 46 * network byte order. */
diff --git a/drivers/net/wireless/prism54/islpci_mgt.h b/drivers/net/wireless/prism54/islpci_mgt.h
index 0b27e50fe0d5..0db93db9b675 100644
--- a/drivers/net/wireless/prism54/islpci_mgt.h
+++ b/drivers/net/wireless/prism54/islpci_mgt.h
@@ -101,7 +101,7 @@ typedef struct {
101 u8 device_id; 101 u8 device_id;
102 u8 flags; 102 u8 flags;
103 u32 length; 103 u32 length;
104} __attribute__ ((packed)) 104} __packed
105pimfor_header_t; 105pimfor_header_t;
106 106
107/* A received and interrupt-processed management frame, either for 107/* A received and interrupt-processed management frame, either for
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index 4bd61ee627c0..989b0561c01b 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -238,19 +238,19 @@ struct ndis_80211_auth_request {
238 u8 bssid[6]; 238 u8 bssid[6];
239 u8 padding[2]; 239 u8 padding[2];
240 __le32 flags; 240 __le32 flags;
241} __attribute__((packed)); 241} __packed;
242 242
243struct ndis_80211_pmkid_candidate { 243struct ndis_80211_pmkid_candidate {
244 u8 bssid[6]; 244 u8 bssid[6];
245 u8 padding[2]; 245 u8 padding[2];
246 __le32 flags; 246 __le32 flags;
247} __attribute__((packed)); 247} __packed;
248 248
249struct ndis_80211_pmkid_cand_list { 249struct ndis_80211_pmkid_cand_list {
250 __le32 version; 250 __le32 version;
251 __le32 num_candidates; 251 __le32 num_candidates;
252 struct ndis_80211_pmkid_candidate candidate_list[0]; 252 struct ndis_80211_pmkid_candidate candidate_list[0];
253} __attribute__((packed)); 253} __packed;
254 254
255struct ndis_80211_status_indication { 255struct ndis_80211_status_indication {
256 __le32 status_type; 256 __le32 status_type;
@@ -260,19 +260,19 @@ struct ndis_80211_status_indication {
260 struct ndis_80211_auth_request auth_request[0]; 260 struct ndis_80211_auth_request auth_request[0];
261 struct ndis_80211_pmkid_cand_list cand_list; 261 struct ndis_80211_pmkid_cand_list cand_list;
262 } u; 262 } u;
263} __attribute__((packed)); 263} __packed;
264 264
265struct ndis_80211_ssid { 265struct ndis_80211_ssid {
266 __le32 length; 266 __le32 length;
267 u8 essid[NDIS_802_11_LENGTH_SSID]; 267 u8 essid[NDIS_802_11_LENGTH_SSID];
268} __attribute__((packed)); 268} __packed;
269 269
270struct ndis_80211_conf_freq_hop { 270struct ndis_80211_conf_freq_hop {
271 __le32 length; 271 __le32 length;
272 __le32 hop_pattern; 272 __le32 hop_pattern;
273 __le32 hop_set; 273 __le32 hop_set;
274 __le32 dwell_time; 274 __le32 dwell_time;
275} __attribute__((packed)); 275} __packed;
276 276
277struct ndis_80211_conf { 277struct ndis_80211_conf {
278 __le32 length; 278 __le32 length;
@@ -280,7 +280,7 @@ struct ndis_80211_conf {
280 __le32 atim_window; 280 __le32 atim_window;
281 __le32 ds_config; 281 __le32 ds_config;
282 struct ndis_80211_conf_freq_hop fh_config; 282 struct ndis_80211_conf_freq_hop fh_config;
283} __attribute__((packed)); 283} __packed;
284 284
285struct ndis_80211_bssid_ex { 285struct ndis_80211_bssid_ex {
286 __le32 length; 286 __le32 length;
@@ -295,25 +295,25 @@ struct ndis_80211_bssid_ex {
295 u8 rates[NDIS_802_11_LENGTH_RATES_EX]; 295 u8 rates[NDIS_802_11_LENGTH_RATES_EX];
296 __le32 ie_length; 296 __le32 ie_length;
297 u8 ies[0]; 297 u8 ies[0];
298} __attribute__((packed)); 298} __packed;
299 299
300struct ndis_80211_bssid_list_ex { 300struct ndis_80211_bssid_list_ex {
301 __le32 num_items; 301 __le32 num_items;
302 struct ndis_80211_bssid_ex bssid[0]; 302 struct ndis_80211_bssid_ex bssid[0];
303} __attribute__((packed)); 303} __packed;
304 304
305struct ndis_80211_fixed_ies { 305struct ndis_80211_fixed_ies {
306 u8 timestamp[8]; 306 u8 timestamp[8];
307 __le16 beacon_interval; 307 __le16 beacon_interval;
308 __le16 capabilities; 308 __le16 capabilities;
309} __attribute__((packed)); 309} __packed;
310 310
311struct ndis_80211_wep_key { 311struct ndis_80211_wep_key {
312 __le32 size; 312 __le32 size;
313 __le32 index; 313 __le32 index;
314 __le32 length; 314 __le32 length;
315 u8 material[32]; 315 u8 material[32];
316} __attribute__((packed)); 316} __packed;
317 317
318struct ndis_80211_key { 318struct ndis_80211_key {
319 __le32 size; 319 __le32 size;
@@ -323,14 +323,14 @@ struct ndis_80211_key {
323 u8 padding[6]; 323 u8 padding[6];
324 u8 rsc[8]; 324 u8 rsc[8];
325 u8 material[32]; 325 u8 material[32];
326} __attribute__((packed)); 326} __packed;
327 327
328struct ndis_80211_remove_key { 328struct ndis_80211_remove_key {
329 __le32 size; 329 __le32 size;
330 __le32 index; 330 __le32 index;
331 u8 bssid[6]; 331 u8 bssid[6];
332 u8 padding[2]; 332 u8 padding[2];
333} __attribute__((packed)); 333} __packed;
334 334
335struct ndis_config_param { 335struct ndis_config_param {
336 __le32 name_offs; 336 __le32 name_offs;
@@ -338,7 +338,7 @@ struct ndis_config_param {
338 __le32 type; 338 __le32 type;
339 __le32 value_offs; 339 __le32 value_offs;
340 __le32 value_length; 340 __le32 value_length;
341} __attribute__((packed)); 341} __packed;
342 342
343struct ndis_80211_assoc_info { 343struct ndis_80211_assoc_info {
344 __le32 length; 344 __le32 length;
@@ -358,12 +358,12 @@ struct ndis_80211_assoc_info {
358 } resp_ie; 358 } resp_ie;
359 __le32 resp_ie_length; 359 __le32 resp_ie_length;
360 __le32 offset_resp_ies; 360 __le32 offset_resp_ies;
361} __attribute__((packed)); 361} __packed;
362 362
363struct ndis_80211_auth_encr_pair { 363struct ndis_80211_auth_encr_pair {
364 __le32 auth_mode; 364 __le32 auth_mode;
365 __le32 encr_mode; 365 __le32 encr_mode;
366} __attribute__((packed)); 366} __packed;
367 367
368struct ndis_80211_capability { 368struct ndis_80211_capability {
369 __le32 length; 369 __le32 length;
@@ -371,7 +371,7 @@ struct ndis_80211_capability {
371 __le32 num_pmkids; 371 __le32 num_pmkids;
372 __le32 num_auth_encr_pair; 372 __le32 num_auth_encr_pair;
373 struct ndis_80211_auth_encr_pair auth_encr_pair[0]; 373 struct ndis_80211_auth_encr_pair auth_encr_pair[0];
374} __attribute__((packed)); 374} __packed;
375 375
376struct ndis_80211_bssid_info { 376struct ndis_80211_bssid_info {
377 u8 bssid[6]; 377 u8 bssid[6];
diff --git a/drivers/net/wireless/rt2x00/rt2800.h b/drivers/net/wireless/rt2x00/rt2800.h
index 2aa03751c341..0b17934cf6a9 100644
--- a/drivers/net/wireless/rt2x00/rt2800.h
+++ b/drivers/net/wireless/rt2x00/rt2800.h
@@ -1370,17 +1370,17 @@
1370struct mac_wcid_entry { 1370struct mac_wcid_entry {
1371 u8 mac[6]; 1371 u8 mac[6];
1372 u8 reserved[2]; 1372 u8 reserved[2];
1373} __attribute__ ((packed)); 1373} __packed;
1374 1374
1375struct hw_key_entry { 1375struct hw_key_entry {
1376 u8 key[16]; 1376 u8 key[16];
1377 u8 tx_mic[8]; 1377 u8 tx_mic[8];
1378 u8 rx_mic[8]; 1378 u8 rx_mic[8];
1379} __attribute__ ((packed)); 1379} __packed;
1380 1380
1381struct mac_iveiv_entry { 1381struct mac_iveiv_entry {
1382 u8 iv[8]; 1382 u8 iv[8];
1383} __attribute__ ((packed)); 1383} __packed;
1384 1384
1385/* 1385/*
1386 * MAC_WCID_ATTRIBUTE: 1386 * MAC_WCID_ATTRIBUTE:
diff --git a/drivers/net/wireless/rt2x00/rt61pci.h b/drivers/net/wireless/rt2x00/rt61pci.h
index df80f1af22a4..e2e728ab0b2e 100644
--- a/drivers/net/wireless/rt2x00/rt61pci.h
+++ b/drivers/net/wireless/rt2x00/rt61pci.h
@@ -153,13 +153,13 @@ struct hw_key_entry {
153 u8 key[16]; 153 u8 key[16];
154 u8 tx_mic[8]; 154 u8 tx_mic[8];
155 u8 rx_mic[8]; 155 u8 rx_mic[8];
156} __attribute__ ((packed)); 156} __packed;
157 157
158struct hw_pairwise_ta_entry { 158struct hw_pairwise_ta_entry {
159 u8 address[6]; 159 u8 address[6];
160 u8 cipher; 160 u8 cipher;
161 u8 reserved; 161 u8 reserved;
162} __attribute__ ((packed)); 162} __packed;
163 163
164/* 164/*
165 * Other on-chip shared memory space. 165 * Other on-chip shared memory space.
diff --git a/drivers/net/wireless/rt2x00/rt73usb.h b/drivers/net/wireless/rt2x00/rt73usb.h
index 7abe7eb14555..44d5b2bebd39 100644
--- a/drivers/net/wireless/rt2x00/rt73usb.h
+++ b/drivers/net/wireless/rt2x00/rt73usb.h
@@ -108,13 +108,13 @@ struct hw_key_entry {
108 u8 key[16]; 108 u8 key[16];
109 u8 tx_mic[8]; 109 u8 tx_mic[8];
110 u8 rx_mic[8]; 110 u8 rx_mic[8];
111} __attribute__ ((packed)); 111} __packed;
112 112
113struct hw_pairwise_ta_entry { 113struct hw_pairwise_ta_entry {
114 u8 address[6]; 114 u8 address[6];
115 u8 cipher; 115 u8 cipher;
116 u8 reserved; 116 u8 reserved;
117} __attribute__ ((packed)); 117} __packed;
118 118
119/* 119/*
120 * Since NULL frame won't be that long (256 byte), 120 * Since NULL frame won't be that long (256 byte),
diff --git a/drivers/net/wireless/rtl818x/rtl8180.h b/drivers/net/wireless/rtl818x/rtl8180.h
index 4baf0cf0826f..30523314da43 100644
--- a/drivers/net/wireless/rtl818x/rtl8180.h
+++ b/drivers/net/wireless/rtl818x/rtl8180.h
@@ -36,7 +36,7 @@ struct rtl8180_tx_desc {
36 u8 agc; 36 u8 agc;
37 u8 flags2; 37 u8 flags2;
38 u32 reserved[2]; 38 u32 reserved[2];
39} __attribute__ ((packed)); 39} __packed;
40 40
41struct rtl8180_rx_desc { 41struct rtl8180_rx_desc {
42 __le32 flags; 42 __le32 flags;
@@ -45,7 +45,7 @@ struct rtl8180_rx_desc {
45 __le32 rx_buf; 45 __le32 rx_buf;
46 __le64 tsft; 46 __le64 tsft;
47 }; 47 };
48} __attribute__ ((packed)); 48} __packed;
49 49
50struct rtl8180_tx_ring { 50struct rtl8180_tx_ring {
51 struct rtl8180_tx_desc *desc; 51 struct rtl8180_tx_desc *desc;
diff --git a/drivers/net/wireless/rtl818x/rtl8187.h b/drivers/net/wireless/rtl818x/rtl8187.h
index 6bb32112e65c..98878160a65a 100644
--- a/drivers/net/wireless/rtl818x/rtl8187.h
+++ b/drivers/net/wireless/rtl818x/rtl8187.h
@@ -47,7 +47,7 @@ struct rtl8187_rx_hdr {
47 u8 agc; 47 u8 agc;
48 u8 reserved; 48 u8 reserved;
49 __le64 mac_time; 49 __le64 mac_time;
50} __attribute__((packed)); 50} __packed;
51 51
52struct rtl8187b_rx_hdr { 52struct rtl8187b_rx_hdr {
53 __le32 flags; 53 __le32 flags;
@@ -59,7 +59,7 @@ struct rtl8187b_rx_hdr {
59 __le16 snr_long2end; 59 __le16 snr_long2end;
60 s8 pwdb_g12; 60 s8 pwdb_g12;
61 u8 fot; 61 u8 fot;
62} __attribute__((packed)); 62} __packed;
63 63
64/* {rtl8187,rtl8187b}_tx_info is in skb */ 64/* {rtl8187,rtl8187b}_tx_info is in skb */
65 65
@@ -68,7 +68,7 @@ struct rtl8187_tx_hdr {
68 __le16 rts_duration; 68 __le16 rts_duration;
69 __le16 len; 69 __le16 len;
70 __le32 retry; 70 __le32 retry;
71} __attribute__((packed)); 71} __packed;
72 72
73struct rtl8187b_tx_hdr { 73struct rtl8187b_tx_hdr {
74 __le32 flags; 74 __le32 flags;
@@ -80,7 +80,7 @@ struct rtl8187b_tx_hdr {
80 __le32 unused_3; 80 __le32 unused_3;
81 __le32 retry; 81 __le32 retry;
82 __le32 unused_4[2]; 82 __le32 unused_4[2];
83} __attribute__((packed)); 83} __packed;
84 84
85enum { 85enum {
86 DEVICE_RTL8187, 86 DEVICE_RTL8187,
diff --git a/drivers/net/wireless/rtl818x/rtl818x.h b/drivers/net/wireless/rtl818x/rtl818x.h
index 8522490d2e29..978519d1ff4c 100644
--- a/drivers/net/wireless/rtl818x/rtl818x.h
+++ b/drivers/net/wireless/rtl818x/rtl818x.h
@@ -185,7 +185,7 @@ struct rtl818x_csr {
185 u8 reserved_22[4]; 185 u8 reserved_22[4];
186 __le16 TALLY_CNT; 186 __le16 TALLY_CNT;
187 u8 TALLY_SEL; 187 u8 TALLY_SEL;
188} __attribute__((packed)); 188} __packed;
189 189
190struct rtl818x_rf_ops { 190struct rtl818x_rf_ops {
191 char *name; 191 char *name;
diff --git a/drivers/net/wireless/wl12xx/wl1251_acx.h b/drivers/net/wireless/wl12xx/wl1251_acx.h
index 26160c45784c..842df310d92a 100644
--- a/drivers/net/wireless/wl12xx/wl1251_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_acx.h
@@ -60,7 +60,7 @@ struct acx_error_counter {
60 /* the number of missed sequence numbers in the squentially */ 60 /* the number of missed sequence numbers in the squentially */
61 /* values of frames seq numbers */ 61 /* values of frames seq numbers */
62 u32 seq_num_miss; 62 u32 seq_num_miss;
63} __attribute__ ((packed)); 63} __packed;
64 64
65struct acx_revision { 65struct acx_revision {
66 struct acx_header header; 66 struct acx_header header;
@@ -89,7 +89,7 @@ struct acx_revision {
89 * bits 24 - 31: Chip ID - The WiLink chip ID. 89 * bits 24 - 31: Chip ID - The WiLink chip ID.
90 */ 90 */
91 u32 hw_version; 91 u32 hw_version;
92} __attribute__ ((packed)); 92} __packed;
93 93
94enum wl1251_psm_mode { 94enum wl1251_psm_mode {
95 /* Active mode */ 95 /* Active mode */
@@ -111,7 +111,7 @@ struct acx_sleep_auth {
111 /* 2 - ELP mode: Deep / Max sleep*/ 111 /* 2 - ELP mode: Deep / Max sleep*/
112 u8 sleep_auth; 112 u8 sleep_auth;
113 u8 padding[3]; 113 u8 padding[3];
114} __attribute__ ((packed)); 114} __packed;
115 115
116enum { 116enum {
117 HOSTIF_PCI_MASTER_HOST_INDIRECT, 117 HOSTIF_PCI_MASTER_HOST_INDIRECT,
@@ -159,7 +159,7 @@ struct acx_data_path_params {
159 * complete ring until an interrupt is generated. 159 * complete ring until an interrupt is generated.
160 */ 160 */
161 u32 tx_complete_timeout; 161 u32 tx_complete_timeout;
162} __attribute__ ((packed)); 162} __packed;
163 163
164 164
165struct acx_data_path_params_resp { 165struct acx_data_path_params_resp {
@@ -180,7 +180,7 @@ struct acx_data_path_params_resp {
180 u32 tx_control_addr; 180 u32 tx_control_addr;
181 181
182 u32 tx_complete_addr; 182 u32 tx_complete_addr;
183} __attribute__ ((packed)); 183} __packed;
184 184
185#define TX_MSDU_LIFETIME_MIN 0 185#define TX_MSDU_LIFETIME_MIN 0
186#define TX_MSDU_LIFETIME_MAX 3000 186#define TX_MSDU_LIFETIME_MAX 3000
@@ -197,7 +197,7 @@ struct acx_rx_msdu_lifetime {
197 * firmware discards the MSDU. 197 * firmware discards the MSDU.
198 */ 198 */
199 u32 lifetime; 199 u32 lifetime;
200} __attribute__ ((packed)); 200} __packed;
201 201
202/* 202/*
203 * RX Config Options Table 203 * RX Config Options Table
@@ -285,7 +285,7 @@ struct acx_rx_config {
285 285
286 u32 config_options; 286 u32 config_options;
287 u32 filter_options; 287 u32 filter_options;
288} __attribute__ ((packed)); 288} __packed;
289 289
290enum { 290enum {
291 QOS_AC_BE = 0, 291 QOS_AC_BE = 0,
@@ -325,13 +325,13 @@ struct acx_tx_queue_qos_config {
325 325
326 /* Lowest memory blocks guaranteed for this queue */ 326 /* Lowest memory blocks guaranteed for this queue */
327 u16 low_threshold; 327 u16 low_threshold;
328} __attribute__ ((packed)); 328} __packed;
329 329
330struct acx_packet_detection { 330struct acx_packet_detection {
331 struct acx_header header; 331 struct acx_header header;
332 332
333 u32 threshold; 333 u32 threshold;
334} __attribute__ ((packed)); 334} __packed;
335 335
336 336
337enum acx_slot_type { 337enum acx_slot_type {
@@ -349,7 +349,7 @@ struct acx_slot {
349 u8 wone_index; /* Reserved */ 349 u8 wone_index; /* Reserved */
350 u8 slot_time; 350 u8 slot_time;
351 u8 reserved[6]; 351 u8 reserved[6];
352} __attribute__ ((packed)); 352} __packed;
353 353
354 354
355#define ADDRESS_GROUP_MAX (8) 355#define ADDRESS_GROUP_MAX (8)
@@ -362,7 +362,7 @@ struct acx_dot11_grp_addr_tbl {
362 u8 num_groups; 362 u8 num_groups;
363 u8 pad[2]; 363 u8 pad[2];
364 u8 mac_table[ADDRESS_GROUP_MAX_LEN]; 364 u8 mac_table[ADDRESS_GROUP_MAX_LEN];
365} __attribute__ ((packed)); 365} __packed;
366 366
367 367
368#define RX_TIMEOUT_PS_POLL_MIN 0 368#define RX_TIMEOUT_PS_POLL_MIN 0
@@ -388,7 +388,7 @@ struct acx_rx_timeout {
388 * from an UPSD enabled queue. 388 * from an UPSD enabled queue.
389 */ 389 */
390 u16 upsd_timeout; 390 u16 upsd_timeout;
391} __attribute__ ((packed)); 391} __packed;
392 392
393#define RTS_THRESHOLD_MIN 0 393#define RTS_THRESHOLD_MIN 0
394#define RTS_THRESHOLD_MAX 4096 394#define RTS_THRESHOLD_MAX 4096
@@ -399,7 +399,7 @@ struct acx_rts_threshold {
399 399
400 u16 threshold; 400 u16 threshold;
401 u8 pad[2]; 401 u8 pad[2];
402} __attribute__ ((packed)); 402} __packed;
403 403
404struct acx_beacon_filter_option { 404struct acx_beacon_filter_option {
405 struct acx_header header; 405 struct acx_header header;
@@ -415,7 +415,7 @@ struct acx_beacon_filter_option {
415 */ 415 */
416 u8 max_num_beacons; 416 u8 max_num_beacons;
417 u8 pad[2]; 417 u8 pad[2];
418} __attribute__ ((packed)); 418} __packed;
419 419
420/* 420/*
421 * ACXBeaconFilterEntry (not 221) 421 * ACXBeaconFilterEntry (not 221)
@@ -461,7 +461,7 @@ struct acx_beacon_filter_ie_table {
461 u8 num_ie; 461 u8 num_ie;
462 u8 table[BEACON_FILTER_TABLE_MAX_SIZE]; 462 u8 table[BEACON_FILTER_TABLE_MAX_SIZE];
463 u8 pad[3]; 463 u8 pad[3];
464} __attribute__ ((packed)); 464} __packed;
465 465
466#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */ 466#define SYNCH_FAIL_DEFAULT_THRESHOLD 10 /* number of beacons */
467#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */ 467#define NO_BEACON_DEFAULT_TIMEOUT (500) /* in microseconds */
@@ -494,7 +494,7 @@ struct acx_bt_wlan_coex {
494 */ 494 */
495 u8 enable; 495 u8 enable;
496 u8 pad[3]; 496 u8 pad[3];
497} __attribute__ ((packed)); 497} __packed;
498 498
499#define PTA_ANTENNA_TYPE_DEF (0) 499#define PTA_ANTENNA_TYPE_DEF (0)
500#define PTA_BT_HP_MAXTIME_DEF (2000) 500#define PTA_BT_HP_MAXTIME_DEF (2000)
@@ -648,7 +648,7 @@ struct acx_bt_wlan_coex_param {
648 648
649 /* range: 0 - 20 default: 1 */ 649 /* range: 0 - 20 default: 1 */
650 u8 bt_hp_respected_num; 650 u8 bt_hp_respected_num;
651} __attribute__ ((packed)); 651} __packed;
652 652
653#define CCA_THRSH_ENABLE_ENERGY_D 0x140A 653#define CCA_THRSH_ENABLE_ENERGY_D 0x140A
654#define CCA_THRSH_DISABLE_ENERGY_D 0xFFEF 654#define CCA_THRSH_DISABLE_ENERGY_D 0xFFEF
@@ -660,7 +660,7 @@ struct acx_energy_detection {
660 u16 rx_cca_threshold; 660 u16 rx_cca_threshold;
661 u8 tx_energy_detection; 661 u8 tx_energy_detection;
662 u8 pad; 662 u8 pad;
663} __attribute__ ((packed)); 663} __packed;
664 664
665#define BCN_RX_TIMEOUT_DEF_VALUE 10000 665#define BCN_RX_TIMEOUT_DEF_VALUE 10000
666#define BROADCAST_RX_TIMEOUT_DEF_VALUE 20000 666#define BROADCAST_RX_TIMEOUT_DEF_VALUE 20000
@@ -679,14 +679,14 @@ struct acx_beacon_broadcast {
679 /* Consecutive PS Poll failures before updating the host */ 679 /* Consecutive PS Poll failures before updating the host */
680 u8 ps_poll_threshold; 680 u8 ps_poll_threshold;
681 u8 pad[2]; 681 u8 pad[2];
682} __attribute__ ((packed)); 682} __packed;
683 683
684struct acx_event_mask { 684struct acx_event_mask {
685 struct acx_header header; 685 struct acx_header header;
686 686
687 u32 event_mask; 687 u32 event_mask;
688 u32 high_event_mask; /* Unused */ 688 u32 high_event_mask; /* Unused */
689} __attribute__ ((packed)); 689} __packed;
690 690
691#define CFG_RX_FCS BIT(2) 691#define CFG_RX_FCS BIT(2)
692#define CFG_RX_ALL_GOOD BIT(3) 692#define CFG_RX_ALL_GOOD BIT(3)
@@ -729,7 +729,7 @@ struct acx_fw_gen_frame_rates {
729 u8 tx_ctrl_frame_mod; /* CCK_* or PBCC_* */ 729 u8 tx_ctrl_frame_mod; /* CCK_* or PBCC_* */
730 u8 tx_mgt_frame_rate; 730 u8 tx_mgt_frame_rate;
731 u8 tx_mgt_frame_mod; 731 u8 tx_mgt_frame_mod;
732} __attribute__ ((packed)); 732} __packed;
733 733
734/* STA MAC */ 734/* STA MAC */
735struct acx_dot11_station_id { 735struct acx_dot11_station_id {
@@ -737,28 +737,28 @@ struct acx_dot11_station_id {
737 737
738 u8 mac[ETH_ALEN]; 738 u8 mac[ETH_ALEN];
739 u8 pad[2]; 739 u8 pad[2];
740} __attribute__ ((packed)); 740} __packed;
741 741
742struct acx_feature_config { 742struct acx_feature_config {
743 struct acx_header header; 743 struct acx_header header;
744 744
745 u32 options; 745 u32 options;
746 u32 data_flow_options; 746 u32 data_flow_options;
747} __attribute__ ((packed)); 747} __packed;
748 748
749struct acx_current_tx_power { 749struct acx_current_tx_power {
750 struct acx_header header; 750 struct acx_header header;
751 751
752 u8 current_tx_power; 752 u8 current_tx_power;
753 u8 padding[3]; 753 u8 padding[3];
754} __attribute__ ((packed)); 754} __packed;
755 755
756struct acx_dot11_default_key { 756struct acx_dot11_default_key {
757 struct acx_header header; 757 struct acx_header header;
758 758
759 u8 id; 759 u8 id;
760 u8 pad[3]; 760 u8 pad[3];
761} __attribute__ ((packed)); 761} __packed;
762 762
763struct acx_tsf_info { 763struct acx_tsf_info {
764 struct acx_header header; 764 struct acx_header header;
@@ -769,7 +769,7 @@ struct acx_tsf_info {
769 u32 last_TBTT_lsb; 769 u32 last_TBTT_lsb;
770 u8 last_dtim_count; 770 u8 last_dtim_count;
771 u8 pad[3]; 771 u8 pad[3];
772} __attribute__ ((packed)); 772} __packed;
773 773
774enum acx_wake_up_event { 774enum acx_wake_up_event {
775 WAKE_UP_EVENT_BEACON_BITMAP = 0x01, /* Wake on every Beacon*/ 775 WAKE_UP_EVENT_BEACON_BITMAP = 0x01, /* Wake on every Beacon*/
@@ -785,7 +785,7 @@ struct acx_wake_up_condition {
785 u8 wake_up_event; /* Only one bit can be set */ 785 u8 wake_up_event; /* Only one bit can be set */
786 u8 listen_interval; 786 u8 listen_interval;
787 u8 pad[2]; 787 u8 pad[2];
788} __attribute__ ((packed)); 788} __packed;
789 789
790struct acx_aid { 790struct acx_aid {
791 struct acx_header header; 791 struct acx_header header;
@@ -795,7 +795,7 @@ struct acx_aid {
795 */ 795 */
796 u16 aid; 796 u16 aid;
797 u8 pad[2]; 797 u8 pad[2];
798} __attribute__ ((packed)); 798} __packed;
799 799
800enum acx_preamble_type { 800enum acx_preamble_type {
801 ACX_PREAMBLE_LONG = 0, 801 ACX_PREAMBLE_LONG = 0,
@@ -811,7 +811,7 @@ struct acx_preamble {
811 */ 811 */
812 u8 preamble; 812 u8 preamble;
813 u8 padding[3]; 813 u8 padding[3];
814} __attribute__ ((packed)); 814} __packed;
815 815
816enum acx_ctsprotect_type { 816enum acx_ctsprotect_type {
817 CTSPROTECT_DISABLE = 0, 817 CTSPROTECT_DISABLE = 0,
@@ -822,11 +822,11 @@ struct acx_ctsprotect {
822 struct acx_header header; 822 struct acx_header header;
823 u8 ctsprotect; 823 u8 ctsprotect;
824 u8 padding[3]; 824 u8 padding[3];
825} __attribute__ ((packed)); 825} __packed;
826 826
827struct acx_tx_statistics { 827struct acx_tx_statistics {
828 u32 internal_desc_overflow; 828 u32 internal_desc_overflow;
829} __attribute__ ((packed)); 829} __packed;
830 830
831struct acx_rx_statistics { 831struct acx_rx_statistics {
832 u32 out_of_mem; 832 u32 out_of_mem;
@@ -837,14 +837,14 @@ struct acx_rx_statistics {
837 u32 xfr_hint_trig; 837 u32 xfr_hint_trig;
838 u32 path_reset; 838 u32 path_reset;
839 u32 reset_counter; 839 u32 reset_counter;
840} __attribute__ ((packed)); 840} __packed;
841 841
842struct acx_dma_statistics { 842struct acx_dma_statistics {
843 u32 rx_requested; 843 u32 rx_requested;
844 u32 rx_errors; 844 u32 rx_errors;
845 u32 tx_requested; 845 u32 tx_requested;
846 u32 tx_errors; 846 u32 tx_errors;
847} __attribute__ ((packed)); 847} __packed;
848 848
849struct acx_isr_statistics { 849struct acx_isr_statistics {
850 /* host command complete */ 850 /* host command complete */
@@ -903,7 +903,7 @@ struct acx_isr_statistics {
903 903
904 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */ 904 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */
905 u32 low_rssi; 905 u32 low_rssi;
906} __attribute__ ((packed)); 906} __packed;
907 907
908struct acx_wep_statistics { 908struct acx_wep_statistics {
909 /* WEP address keys configured */ 909 /* WEP address keys configured */
@@ -925,7 +925,7 @@ struct acx_wep_statistics {
925 925
926 /* WEP decrypt interrupts */ 926 /* WEP decrypt interrupts */
927 u32 interrupt; 927 u32 interrupt;
928} __attribute__ ((packed)); 928} __packed;
929 929
930#define ACX_MISSED_BEACONS_SPREAD 10 930#define ACX_MISSED_BEACONS_SPREAD 10
931 931
@@ -985,12 +985,12 @@ struct acx_pwr_statistics {
985 985
986 /* the number of beacons in awake mode */ 986 /* the number of beacons in awake mode */
987 u32 rcvd_awake_beacons; 987 u32 rcvd_awake_beacons;
988} __attribute__ ((packed)); 988} __packed;
989 989
990struct acx_mic_statistics { 990struct acx_mic_statistics {
991 u32 rx_pkts; 991 u32 rx_pkts;
992 u32 calc_failure; 992 u32 calc_failure;
993} __attribute__ ((packed)); 993} __packed;
994 994
995struct acx_aes_statistics { 995struct acx_aes_statistics {
996 u32 encrypt_fail; 996 u32 encrypt_fail;
@@ -999,7 +999,7 @@ struct acx_aes_statistics {
999 u32 decrypt_packets; 999 u32 decrypt_packets;
1000 u32 encrypt_interrupt; 1000 u32 encrypt_interrupt;
1001 u32 decrypt_interrupt; 1001 u32 decrypt_interrupt;
1002} __attribute__ ((packed)); 1002} __packed;
1003 1003
1004struct acx_event_statistics { 1004struct acx_event_statistics {
1005 u32 heart_beat; 1005 u32 heart_beat;
@@ -1010,7 +1010,7 @@ struct acx_event_statistics {
1010 u32 oom_late; 1010 u32 oom_late;
1011 u32 phy_transmit_error; 1011 u32 phy_transmit_error;
1012 u32 tx_stuck; 1012 u32 tx_stuck;
1013} __attribute__ ((packed)); 1013} __packed;
1014 1014
1015struct acx_ps_statistics { 1015struct acx_ps_statistics {
1016 u32 pspoll_timeouts; 1016 u32 pspoll_timeouts;
@@ -1020,7 +1020,7 @@ struct acx_ps_statistics {
1020 u32 pspoll_max_apturn; 1020 u32 pspoll_max_apturn;
1021 u32 pspoll_utilization; 1021 u32 pspoll_utilization;
1022 u32 upsd_utilization; 1022 u32 upsd_utilization;
1023} __attribute__ ((packed)); 1023} __packed;
1024 1024
1025struct acx_rxpipe_statistics { 1025struct acx_rxpipe_statistics {
1026 u32 rx_prep_beacon_drop; 1026 u32 rx_prep_beacon_drop;
@@ -1028,7 +1028,7 @@ struct acx_rxpipe_statistics {
1028 u32 beacon_buffer_thres_host_int_trig_rx_data; 1028 u32 beacon_buffer_thres_host_int_trig_rx_data;
1029 u32 missed_beacon_host_int_trig_rx_data; 1029 u32 missed_beacon_host_int_trig_rx_data;
1030 u32 tx_xfr_host_int_trig_rx_data; 1030 u32 tx_xfr_host_int_trig_rx_data;
1031} __attribute__ ((packed)); 1031} __packed;
1032 1032
1033struct acx_statistics { 1033struct acx_statistics {
1034 struct acx_header header; 1034 struct acx_header header;
@@ -1044,7 +1044,7 @@ struct acx_statistics {
1044 struct acx_event_statistics event; 1044 struct acx_event_statistics event;
1045 struct acx_ps_statistics ps; 1045 struct acx_ps_statistics ps;
1046 struct acx_rxpipe_statistics rxpipe; 1046 struct acx_rxpipe_statistics rxpipe;
1047} __attribute__ ((packed)); 1047} __packed;
1048 1048
1049#define ACX_MAX_RATE_CLASSES 8 1049#define ACX_MAX_RATE_CLASSES 8
1050#define ACX_RATE_MASK_UNSPECIFIED 0 1050#define ACX_RATE_MASK_UNSPECIFIED 0
@@ -1063,7 +1063,7 @@ struct acx_rate_policy {
1063 1063
1064 u32 rate_class_cnt; 1064 u32 rate_class_cnt;
1065 struct acx_rate_class rate_class[ACX_MAX_RATE_CLASSES]; 1065 struct acx_rate_class rate_class[ACX_MAX_RATE_CLASSES];
1066} __attribute__ ((packed)); 1066} __packed;
1067 1067
1068struct wl1251_acx_memory { 1068struct wl1251_acx_memory {
1069 __le16 num_stations; /* number of STAs to be supported. */ 1069 __le16 num_stations; /* number of STAs to be supported. */
@@ -1082,7 +1082,7 @@ struct wl1251_acx_memory {
1082 u8 tx_min_mem_block_num; 1082 u8 tx_min_mem_block_num;
1083 u8 num_ssid_profiles; 1083 u8 num_ssid_profiles;
1084 __le16 debug_buffer_size; 1084 __le16 debug_buffer_size;
1085} __attribute__ ((packed)); 1085} __packed;
1086 1086
1087 1087
1088#define ACX_RX_DESC_MIN 1 1088#define ACX_RX_DESC_MIN 1
@@ -1094,7 +1094,7 @@ struct wl1251_acx_rx_queue_config {
1094 u8 type; 1094 u8 type;
1095 u8 priority; 1095 u8 priority;
1096 __le32 dma_address; 1096 __le32 dma_address;
1097} __attribute__ ((packed)); 1097} __packed;
1098 1098
1099#define ACX_TX_DESC_MIN 1 1099#define ACX_TX_DESC_MIN 1
1100#define ACX_TX_DESC_MAX 127 1100#define ACX_TX_DESC_MAX 127
@@ -1103,7 +1103,7 @@ struct wl1251_acx_tx_queue_config {
1103 u8 num_descs; 1103 u8 num_descs;
1104 u8 pad[2]; 1104 u8 pad[2];
1105 u8 attributes; 1105 u8 attributes;
1106} __attribute__ ((packed)); 1106} __packed;
1107 1107
1108#define MAX_TX_QUEUE_CONFIGS 5 1108#define MAX_TX_QUEUE_CONFIGS 5
1109#define MAX_TX_QUEUES 4 1109#define MAX_TX_QUEUES 4
@@ -1113,7 +1113,7 @@ struct wl1251_acx_config_memory {
1113 struct wl1251_acx_memory mem_config; 1113 struct wl1251_acx_memory mem_config;
1114 struct wl1251_acx_rx_queue_config rx_queue_config; 1114 struct wl1251_acx_rx_queue_config rx_queue_config;
1115 struct wl1251_acx_tx_queue_config tx_queue_config[MAX_TX_QUEUE_CONFIGS]; 1115 struct wl1251_acx_tx_queue_config tx_queue_config[MAX_TX_QUEUE_CONFIGS];
1116} __attribute__ ((packed)); 1116} __packed;
1117 1117
1118struct wl1251_acx_mem_map { 1118struct wl1251_acx_mem_map {
1119 struct acx_header header; 1119 struct acx_header header;
@@ -1147,7 +1147,7 @@ struct wl1251_acx_mem_map {
1147 1147
1148 /* Number of blocks FW allocated for RX packets */ 1148 /* Number of blocks FW allocated for RX packets */
1149 u32 num_rx_mem_blocks; 1149 u32 num_rx_mem_blocks;
1150} __attribute__ ((packed)); 1150} __packed;
1151 1151
1152 1152
1153struct wl1251_acx_wr_tbtt_and_dtim { 1153struct wl1251_acx_wr_tbtt_and_dtim {
@@ -1164,7 +1164,7 @@ struct wl1251_acx_wr_tbtt_and_dtim {
1164 */ 1164 */
1165 u8 dtim; 1165 u8 dtim;
1166 u8 padding; 1166 u8 padding;
1167} __attribute__ ((packed)); 1167} __packed;
1168 1168
1169struct wl1251_acx_ac_cfg { 1169struct wl1251_acx_ac_cfg {
1170 struct acx_header header; 1170 struct acx_header header;
@@ -1194,7 +1194,7 @@ struct wl1251_acx_ac_cfg {
1194 1194
1195 /* The TX Op Limit (in microseconds) for the access class. */ 1195 /* The TX Op Limit (in microseconds) for the access class. */
1196 u16 txop_limit; 1196 u16 txop_limit;
1197} __attribute__ ((packed)); 1197} __packed;
1198 1198
1199 1199
1200enum wl1251_acx_channel_type { 1200enum wl1251_acx_channel_type {
@@ -1245,7 +1245,7 @@ struct wl1251_acx_tid_cfg {
1245 1245
1246 /* not supported */ 1246 /* not supported */
1247 u32 apsdconf[2]; 1247 u32 apsdconf[2];
1248} __attribute__ ((packed)); 1248} __packed;
1249 1249
1250/************************************************************************* 1250/*************************************************************************
1251 1251
diff --git a/drivers/net/wireless/wl12xx/wl1251_cmd.h b/drivers/net/wireless/wl12xx/wl1251_cmd.h
index 4ad67cae94d2..7e70dd5a21b8 100644
--- a/drivers/net/wireless/wl12xx/wl1251_cmd.h
+++ b/drivers/net/wireless/wl12xx/wl1251_cmd.h
@@ -106,7 +106,7 @@ struct wl1251_cmd_header {
106 u16 status; 106 u16 status;
107 /* payload */ 107 /* payload */
108 u8 data[0]; 108 u8 data[0];
109} __attribute__ ((packed)); 109} __packed;
110 110
111struct wl1251_command { 111struct wl1251_command {
112 struct wl1251_cmd_header header; 112 struct wl1251_cmd_header header;
@@ -201,7 +201,7 @@ struct wl1251_scan_parameters {
201 u8 ssid_len; 201 u8 ssid_len;
202 u8 ssid[32]; 202 u8 ssid[32];
203 203
204} __attribute__ ((packed)); 204} __packed;
205 205
206struct wl1251_scan_ch_parameters { 206struct wl1251_scan_ch_parameters {
207 u32 min_duration; /* in TU */ 207 u32 min_duration; /* in TU */
@@ -218,7 +218,7 @@ struct wl1251_scan_ch_parameters {
218 u8 tx_power_att; 218 u8 tx_power_att;
219 u8 channel; 219 u8 channel;
220 u8 pad[3]; 220 u8 pad[3];
221} __attribute__ ((packed)); 221} __packed;
222 222
223/* SCAN parameters */ 223/* SCAN parameters */
224#define SCAN_MAX_NUM_OF_CHANNELS 16 224#define SCAN_MAX_NUM_OF_CHANNELS 16
@@ -228,7 +228,7 @@ struct wl1251_cmd_scan {
228 228
229 struct wl1251_scan_parameters params; 229 struct wl1251_scan_parameters params;
230 struct wl1251_scan_ch_parameters channels[SCAN_MAX_NUM_OF_CHANNELS]; 230 struct wl1251_scan_ch_parameters channels[SCAN_MAX_NUM_OF_CHANNELS];
231} __attribute__ ((packed)); 231} __packed;
232 232
233enum { 233enum {
234 BSS_TYPE_IBSS = 0, 234 BSS_TYPE_IBSS = 0,
@@ -276,14 +276,14 @@ struct cmd_join {
276 u8 tx_mgt_frame_rate; /* OBSOLETE */ 276 u8 tx_mgt_frame_rate; /* OBSOLETE */
277 u8 tx_mgt_frame_mod; /* OBSOLETE */ 277 u8 tx_mgt_frame_mod; /* OBSOLETE */
278 u8 reserved; 278 u8 reserved;
279} __attribute__ ((packed)); 279} __packed;
280 280
281struct cmd_enabledisable_path { 281struct cmd_enabledisable_path {
282 struct wl1251_cmd_header header; 282 struct wl1251_cmd_header header;
283 283
284 u8 channel; 284 u8 channel;
285 u8 padding[3]; 285 u8 padding[3];
286} __attribute__ ((packed)); 286} __packed;
287 287
288#define WL1251_MAX_TEMPLATE_SIZE 300 288#define WL1251_MAX_TEMPLATE_SIZE 300
289 289
@@ -292,7 +292,7 @@ struct wl1251_cmd_packet_template {
292 292
293 __le16 size; 293 __le16 size;
294 u8 data[0]; 294 u8 data[0];
295} __attribute__ ((packed)); 295} __packed;
296 296
297#define TIM_ELE_ID 5 297#define TIM_ELE_ID 5
298#define PARTIAL_VBM_MAX 251 298#define PARTIAL_VBM_MAX 251
@@ -304,7 +304,7 @@ struct wl1251_tim {
304 u8 dtim_period; 304 u8 dtim_period;
305 u8 bitmap_ctrl; 305 u8 bitmap_ctrl;
306 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */ 306 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */
307} __attribute__ ((packed)); 307} __packed;
308 308
309/* Virtual Bit Map update */ 309/* Virtual Bit Map update */
310struct wl1251_cmd_vbm_update { 310struct wl1251_cmd_vbm_update {
@@ -312,7 +312,7 @@ struct wl1251_cmd_vbm_update {
312 __le16 len; 312 __le16 len;
313 u8 padding[2]; 313 u8 padding[2];
314 struct wl1251_tim tim; 314 struct wl1251_tim tim;
315} __attribute__ ((packed)); 315} __packed;
316 316
317enum wl1251_cmd_ps_mode { 317enum wl1251_cmd_ps_mode {
318 STATION_ACTIVE_MODE, 318 STATION_ACTIVE_MODE,
@@ -333,7 +333,7 @@ struct wl1251_cmd_ps_params {
333 u8 hang_over_period; 333 u8 hang_over_period;
334 u16 null_data_rate; 334 u16 null_data_rate;
335 u8 pad[2]; 335 u8 pad[2];
336} __attribute__ ((packed)); 336} __packed;
337 337
338struct wl1251_cmd_trigger_scan_to { 338struct wl1251_cmd_trigger_scan_to {
339 struct wl1251_cmd_header header; 339 struct wl1251_cmd_header header;
@@ -411,7 +411,7 @@ struct wl1251_cmd_set_keys {
411 u8 key[MAX_KEY_SIZE]; 411 u8 key[MAX_KEY_SIZE];
412 u16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY]; 412 u16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY];
413 u32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; 413 u32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY];
414} __attribute__ ((packed)); 414} __packed;
415 415
416 416
417#endif /* __WL1251_CMD_H__ */ 417#endif /* __WL1251_CMD_H__ */
diff --git a/drivers/net/wireless/wl12xx/wl1251_event.h b/drivers/net/wireless/wl12xx/wl1251_event.h
index be0ac54d6246..f48a2b66bc5a 100644
--- a/drivers/net/wireless/wl12xx/wl1251_event.h
+++ b/drivers/net/wireless/wl12xx/wl1251_event.h
@@ -82,7 +82,7 @@ struct event_debug_report {
82 u32 report_1; 82 u32 report_1;
83 u32 report_2; 83 u32 report_2;
84 u32 report_3; 84 u32 report_3;
85} __attribute__ ((packed)); 85} __packed;
86 86
87struct event_mailbox { 87struct event_mailbox {
88 u32 events_vector; 88 u32 events_vector;
@@ -112,7 +112,7 @@ struct event_mailbox {
112 struct event_debug_report report; 112 struct event_debug_report report;
113 u8 average_snr_level; 113 u8 average_snr_level;
114 u8 padding[19]; 114 u8 padding[19];
115} __attribute__ ((packed)); 115} __packed;
116 116
117int wl1251_event_unmask(struct wl1251 *wl); 117int wl1251_event_unmask(struct wl1251 *wl);
118void wl1251_event_mbox_config(struct wl1251 *wl); 118void wl1251_event_mbox_config(struct wl1251 *wl);
diff --git a/drivers/net/wireless/wl12xx/wl1251_rx.h b/drivers/net/wireless/wl12xx/wl1251_rx.h
index 563a3fde40fb..da4e53406a0e 100644
--- a/drivers/net/wireless/wl12xx/wl1251_rx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_rx.h
@@ -117,7 +117,7 @@ struct wl1251_rx_descriptor {
117 s8 rssi; /* in dB */ 117 s8 rssi; /* in dB */
118 u8 rcpi; /* in dB */ 118 u8 rcpi; /* in dB */
119 u8 snr; /* in dB */ 119 u8 snr; /* in dB */
120} __attribute__ ((packed)); 120} __packed;
121 121
122void wl1251_rx(struct wl1251 *wl); 122void wl1251_rx(struct wl1251 *wl);
123 123
diff --git a/drivers/net/wireless/wl12xx/wl1251_tx.h b/drivers/net/wireless/wl12xx/wl1251_tx.h
index 55856c6bb97a..65c4be8c2e80 100644
--- a/drivers/net/wireless/wl12xx/wl1251_tx.h
+++ b/drivers/net/wireless/wl12xx/wl1251_tx.h
@@ -109,7 +109,7 @@ struct tx_control {
109 unsigned xfer_pad:1; 109 unsigned xfer_pad:1;
110 110
111 unsigned reserved:7; 111 unsigned reserved:7;
112} __attribute__ ((packed)); 112} __packed;
113 113
114 114
115struct tx_double_buffer_desc { 115struct tx_double_buffer_desc {
@@ -156,7 +156,7 @@ struct tx_double_buffer_desc {
156 u8 num_mem_blocks; 156 u8 num_mem_blocks;
157 157
158 u8 reserved; 158 u8 reserved;
159} __attribute__ ((packed)); 159} __packed;
160 160
161enum { 161enum {
162 TX_SUCCESS = 0, 162 TX_SUCCESS = 0,
@@ -208,7 +208,7 @@ struct tx_result {
208 208
209 /* See done_1 */ 209 /* See done_1 */
210 u8 done_2; 210 u8 done_2;
211} __attribute__ ((packed)); 211} __packed;
212 212
213static inline int wl1251_tx_get_queue(int queue) 213static inline int wl1251_tx_get_queue(int queue)
214{ 214{
diff --git a/drivers/net/wireless/wl12xx/wl1271.h b/drivers/net/wireless/wl12xx/wl1271.h
index 6f1b6b5640c0..9af14646c278 100644
--- a/drivers/net/wireless/wl12xx/wl1271.h
+++ b/drivers/net/wireless/wl12xx/wl1271.h
@@ -141,7 +141,7 @@ struct wl1271_nvs_file {
141 u8 dyn_radio_params[WL1271_NVS_FEM_COUNT] 141 u8 dyn_radio_params[WL1271_NVS_FEM_COUNT]
142 [WL1271_NVS_DYN_RADIO_PARAMS_SIZE_PADDED]; 142 [WL1271_NVS_DYN_RADIO_PARAMS_SIZE_PADDED];
143 u8 ini_spare[WL1271_NVS_INI_SPARE_SIZE]; 143 u8 ini_spare[WL1271_NVS_INI_SPARE_SIZE];
144} __attribute__ ((packed)); 144} __packed;
145 145
146/* 146/*
147 * Enable/disable 802.11a support for WL1273 147 * Enable/disable 802.11a support for WL1273
@@ -317,7 +317,7 @@ struct wl1271_fw_status {
317 __le32 tx_released_blks[NUM_TX_QUEUES]; 317 __le32 tx_released_blks[NUM_TX_QUEUES];
318 __le32 fw_localtime; 318 __le32 fw_localtime;
319 __le32 padding[2]; 319 __le32 padding[2];
320} __attribute__ ((packed)); 320} __packed;
321 321
322struct wl1271_rx_mem_pool_addr { 322struct wl1271_rx_mem_pool_addr {
323 u32 addr; 323 u32 addr;
diff --git a/drivers/net/wireless/wl12xx/wl1271_acx.h b/drivers/net/wireless/wl12xx/wl1271_acx.h
index 420e7e2fc021..4c87e601df2f 100644
--- a/drivers/net/wireless/wl12xx/wl1271_acx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_acx.h
@@ -75,7 +75,7 @@ struct acx_header {
75 75
76 /* payload length (not including headers */ 76 /* payload length (not including headers */
77 __le16 len; 77 __le16 len;
78} __attribute__ ((packed)); 78} __packed;
79 79
80struct acx_error_counter { 80struct acx_error_counter {
81 struct acx_header header; 81 struct acx_header header;
@@ -98,7 +98,7 @@ struct acx_error_counter {
98 /* the number of missed sequence numbers in the squentially */ 98 /* the number of missed sequence numbers in the squentially */
99 /* values of frames seq numbers */ 99 /* values of frames seq numbers */
100 __le32 seq_num_miss; 100 __le32 seq_num_miss;
101} __attribute__ ((packed)); 101} __packed;
102 102
103struct acx_revision { 103struct acx_revision {
104 struct acx_header header; 104 struct acx_header header;
@@ -127,7 +127,7 @@ struct acx_revision {
127 * bits 24 - 31: Chip ID - The WiLink chip ID. 127 * bits 24 - 31: Chip ID - The WiLink chip ID.
128 */ 128 */
129 __le32 hw_version; 129 __le32 hw_version;
130} __attribute__ ((packed)); 130} __packed;
131 131
132enum wl1271_psm_mode { 132enum wl1271_psm_mode {
133 /* Active mode */ 133 /* Active mode */
@@ -149,7 +149,7 @@ struct acx_sleep_auth {
149 /* 2 - ELP mode: Deep / Max sleep*/ 149 /* 2 - ELP mode: Deep / Max sleep*/
150 u8 sleep_auth; 150 u8 sleep_auth;
151 u8 padding[3]; 151 u8 padding[3];
152} __attribute__ ((packed)); 152} __packed;
153 153
154enum { 154enum {
155 HOSTIF_PCI_MASTER_HOST_INDIRECT, 155 HOSTIF_PCI_MASTER_HOST_INDIRECT,
@@ -187,7 +187,7 @@ struct acx_rx_msdu_lifetime {
187 * firmware discards the MSDU. 187 * firmware discards the MSDU.
188 */ 188 */
189 __le32 lifetime; 189 __le32 lifetime;
190} __attribute__ ((packed)); 190} __packed;
191 191
192/* 192/*
193 * RX Config Options Table 193 * RX Config Options Table
@@ -275,13 +275,13 @@ struct acx_rx_config {
275 275
276 __le32 config_options; 276 __le32 config_options;
277 __le32 filter_options; 277 __le32 filter_options;
278} __attribute__ ((packed)); 278} __packed;
279 279
280struct acx_packet_detection { 280struct acx_packet_detection {
281 struct acx_header header; 281 struct acx_header header;
282 282
283 __le32 threshold; 283 __le32 threshold;
284} __attribute__ ((packed)); 284} __packed;
285 285
286 286
287enum acx_slot_type { 287enum acx_slot_type {
@@ -299,7 +299,7 @@ struct acx_slot {
299 u8 wone_index; /* Reserved */ 299 u8 wone_index; /* Reserved */
300 u8 slot_time; 300 u8 slot_time;
301 u8 reserved[6]; 301 u8 reserved[6];
302} __attribute__ ((packed)); 302} __packed;
303 303
304 304
305#define ACX_MC_ADDRESS_GROUP_MAX (8) 305#define ACX_MC_ADDRESS_GROUP_MAX (8)
@@ -312,21 +312,21 @@ struct acx_dot11_grp_addr_tbl {
312 u8 num_groups; 312 u8 num_groups;
313 u8 pad[2]; 313 u8 pad[2];
314 u8 mac_table[ADDRESS_GROUP_MAX_LEN]; 314 u8 mac_table[ADDRESS_GROUP_MAX_LEN];
315} __attribute__ ((packed)); 315} __packed;
316 316
317struct acx_rx_timeout { 317struct acx_rx_timeout {
318 struct acx_header header; 318 struct acx_header header;
319 319
320 __le16 ps_poll_timeout; 320 __le16 ps_poll_timeout;
321 __le16 upsd_timeout; 321 __le16 upsd_timeout;
322} __attribute__ ((packed)); 322} __packed;
323 323
324struct acx_rts_threshold { 324struct acx_rts_threshold {
325 struct acx_header header; 325 struct acx_header header;
326 326
327 __le16 threshold; 327 __le16 threshold;
328 u8 pad[2]; 328 u8 pad[2];
329} __attribute__ ((packed)); 329} __packed;
330 330
331struct acx_beacon_filter_option { 331struct acx_beacon_filter_option {
332 struct acx_header header; 332 struct acx_header header;
@@ -342,7 +342,7 @@ struct acx_beacon_filter_option {
342 */ 342 */
343 u8 max_num_beacons; 343 u8 max_num_beacons;
344 u8 pad[2]; 344 u8 pad[2];
345} __attribute__ ((packed)); 345} __packed;
346 346
347/* 347/*
348 * ACXBeaconFilterEntry (not 221) 348 * ACXBeaconFilterEntry (not 221)
@@ -383,21 +383,21 @@ struct acx_beacon_filter_ie_table {
383 u8 num_ie; 383 u8 num_ie;
384 u8 pad[3]; 384 u8 pad[3];
385 u8 table[BEACON_FILTER_TABLE_MAX_SIZE]; 385 u8 table[BEACON_FILTER_TABLE_MAX_SIZE];
386} __attribute__ ((packed)); 386} __packed;
387 387
388struct acx_conn_monit_params { 388struct acx_conn_monit_params {
389 struct acx_header header; 389 struct acx_header header;
390 390
391 __le32 synch_fail_thold; /* number of beacons missed */ 391 __le32 synch_fail_thold; /* number of beacons missed */
392 __le32 bss_lose_timeout; /* number of TU's from synch fail */ 392 __le32 bss_lose_timeout; /* number of TU's from synch fail */
393} __attribute__ ((packed)); 393} __packed;
394 394
395struct acx_bt_wlan_coex { 395struct acx_bt_wlan_coex {
396 struct acx_header header; 396 struct acx_header header;
397 397
398 u8 enable; 398 u8 enable;
399 u8 pad[3]; 399 u8 pad[3];
400} __attribute__ ((packed)); 400} __packed;
401 401
402struct acx_bt_wlan_coex_param { 402struct acx_bt_wlan_coex_param {
403 struct acx_header header; 403 struct acx_header header;
@@ -405,7 +405,7 @@ struct acx_bt_wlan_coex_param {
405 __le32 params[CONF_SG_PARAMS_MAX]; 405 __le32 params[CONF_SG_PARAMS_MAX];
406 u8 param_idx; 406 u8 param_idx;
407 u8 padding[3]; 407 u8 padding[3];
408} __attribute__ ((packed)); 408} __packed;
409 409
410struct acx_dco_itrim_params { 410struct acx_dco_itrim_params {
411 struct acx_header header; 411 struct acx_header header;
@@ -413,7 +413,7 @@ struct acx_dco_itrim_params {
413 u8 enable; 413 u8 enable;
414 u8 padding[3]; 414 u8 padding[3];
415 __le32 timeout; 415 __le32 timeout;
416} __attribute__ ((packed)); 416} __packed;
417 417
418struct acx_energy_detection { 418struct acx_energy_detection {
419 struct acx_header header; 419 struct acx_header header;
@@ -422,7 +422,7 @@ struct acx_energy_detection {
422 __le16 rx_cca_threshold; 422 __le16 rx_cca_threshold;
423 u8 tx_energy_detection; 423 u8 tx_energy_detection;
424 u8 pad; 424 u8 pad;
425} __attribute__ ((packed)); 425} __packed;
426 426
427struct acx_beacon_broadcast { 427struct acx_beacon_broadcast {
428 struct acx_header header; 428 struct acx_header header;
@@ -436,14 +436,14 @@ struct acx_beacon_broadcast {
436 /* Consecutive PS Poll failures before updating the host */ 436 /* Consecutive PS Poll failures before updating the host */
437 u8 ps_poll_threshold; 437 u8 ps_poll_threshold;
438 u8 pad[2]; 438 u8 pad[2];
439} __attribute__ ((packed)); 439} __packed;
440 440
441struct acx_event_mask { 441struct acx_event_mask {
442 struct acx_header header; 442 struct acx_header header;
443 443
444 __le32 event_mask; 444 __le32 event_mask;
445 __le32 high_event_mask; /* Unused */ 445 __le32 high_event_mask; /* Unused */
446} __attribute__ ((packed)); 446} __packed;
447 447
448#define CFG_RX_FCS BIT(2) 448#define CFG_RX_FCS BIT(2)
449#define CFG_RX_ALL_GOOD BIT(3) 449#define CFG_RX_ALL_GOOD BIT(3)
@@ -488,14 +488,14 @@ struct acx_feature_config {
488 488
489 __le32 options; 489 __le32 options;
490 __le32 data_flow_options; 490 __le32 data_flow_options;
491} __attribute__ ((packed)); 491} __packed;
492 492
493struct acx_current_tx_power { 493struct acx_current_tx_power {
494 struct acx_header header; 494 struct acx_header header;
495 495
496 u8 current_tx_power; 496 u8 current_tx_power;
497 u8 padding[3]; 497 u8 padding[3];
498} __attribute__ ((packed)); 498} __packed;
499 499
500struct acx_wake_up_condition { 500struct acx_wake_up_condition {
501 struct acx_header header; 501 struct acx_header header;
@@ -503,7 +503,7 @@ struct acx_wake_up_condition {
503 u8 wake_up_event; /* Only one bit can be set */ 503 u8 wake_up_event; /* Only one bit can be set */
504 u8 listen_interval; 504 u8 listen_interval;
505 u8 pad[2]; 505 u8 pad[2];
506} __attribute__ ((packed)); 506} __packed;
507 507
508struct acx_aid { 508struct acx_aid {
509 struct acx_header header; 509 struct acx_header header;
@@ -513,7 +513,7 @@ struct acx_aid {
513 */ 513 */
514 __le16 aid; 514 __le16 aid;
515 u8 pad[2]; 515 u8 pad[2];
516} __attribute__ ((packed)); 516} __packed;
517 517
518enum acx_preamble_type { 518enum acx_preamble_type {
519 ACX_PREAMBLE_LONG = 0, 519 ACX_PREAMBLE_LONG = 0,
@@ -529,7 +529,7 @@ struct acx_preamble {
529 */ 529 */
530 u8 preamble; 530 u8 preamble;
531 u8 padding[3]; 531 u8 padding[3];
532} __attribute__ ((packed)); 532} __packed;
533 533
534enum acx_ctsprotect_type { 534enum acx_ctsprotect_type {
535 CTSPROTECT_DISABLE = 0, 535 CTSPROTECT_DISABLE = 0,
@@ -540,11 +540,11 @@ struct acx_ctsprotect {
540 struct acx_header header; 540 struct acx_header header;
541 u8 ctsprotect; 541 u8 ctsprotect;
542 u8 padding[3]; 542 u8 padding[3];
543} __attribute__ ((packed)); 543} __packed;
544 544
545struct acx_tx_statistics { 545struct acx_tx_statistics {
546 __le32 internal_desc_overflow; 546 __le32 internal_desc_overflow;
547} __attribute__ ((packed)); 547} __packed;
548 548
549struct acx_rx_statistics { 549struct acx_rx_statistics {
550 __le32 out_of_mem; 550 __le32 out_of_mem;
@@ -555,14 +555,14 @@ struct acx_rx_statistics {
555 __le32 xfr_hint_trig; 555 __le32 xfr_hint_trig;
556 __le32 path_reset; 556 __le32 path_reset;
557 __le32 reset_counter; 557 __le32 reset_counter;
558} __attribute__ ((packed)); 558} __packed;
559 559
560struct acx_dma_statistics { 560struct acx_dma_statistics {
561 __le32 rx_requested; 561 __le32 rx_requested;
562 __le32 rx_errors; 562 __le32 rx_errors;
563 __le32 tx_requested; 563 __le32 tx_requested;
564 __le32 tx_errors; 564 __le32 tx_errors;
565} __attribute__ ((packed)); 565} __packed;
566 566
567struct acx_isr_statistics { 567struct acx_isr_statistics {
568 /* host command complete */ 568 /* host command complete */
@@ -621,7 +621,7 @@ struct acx_isr_statistics {
621 621
622 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */ 622 /* (INT_STS_ND & INT_TRIG_LOW_RSSI) */
623 __le32 low_rssi; 623 __le32 low_rssi;
624} __attribute__ ((packed)); 624} __packed;
625 625
626struct acx_wep_statistics { 626struct acx_wep_statistics {
627 /* WEP address keys configured */ 627 /* WEP address keys configured */
@@ -643,7 +643,7 @@ struct acx_wep_statistics {
643 643
644 /* WEP decrypt interrupts */ 644 /* WEP decrypt interrupts */
645 __le32 interrupt; 645 __le32 interrupt;
646} __attribute__ ((packed)); 646} __packed;
647 647
648#define ACX_MISSED_BEACONS_SPREAD 10 648#define ACX_MISSED_BEACONS_SPREAD 10
649 649
@@ -703,12 +703,12 @@ struct acx_pwr_statistics {
703 703
704 /* the number of beacons in awake mode */ 704 /* the number of beacons in awake mode */
705 __le32 rcvd_awake_beacons; 705 __le32 rcvd_awake_beacons;
706} __attribute__ ((packed)); 706} __packed;
707 707
708struct acx_mic_statistics { 708struct acx_mic_statistics {
709 __le32 rx_pkts; 709 __le32 rx_pkts;
710 __le32 calc_failure; 710 __le32 calc_failure;
711} __attribute__ ((packed)); 711} __packed;
712 712
713struct acx_aes_statistics { 713struct acx_aes_statistics {
714 __le32 encrypt_fail; 714 __le32 encrypt_fail;
@@ -717,7 +717,7 @@ struct acx_aes_statistics {
717 __le32 decrypt_packets; 717 __le32 decrypt_packets;
718 __le32 encrypt_interrupt; 718 __le32 encrypt_interrupt;
719 __le32 decrypt_interrupt; 719 __le32 decrypt_interrupt;
720} __attribute__ ((packed)); 720} __packed;
721 721
722struct acx_event_statistics { 722struct acx_event_statistics {
723 __le32 heart_beat; 723 __le32 heart_beat;
@@ -728,7 +728,7 @@ struct acx_event_statistics {
728 __le32 oom_late; 728 __le32 oom_late;
729 __le32 phy_transmit_error; 729 __le32 phy_transmit_error;
730 __le32 tx_stuck; 730 __le32 tx_stuck;
731} __attribute__ ((packed)); 731} __packed;
732 732
733struct acx_ps_statistics { 733struct acx_ps_statistics {
734 __le32 pspoll_timeouts; 734 __le32 pspoll_timeouts;
@@ -738,7 +738,7 @@ struct acx_ps_statistics {
738 __le32 pspoll_max_apturn; 738 __le32 pspoll_max_apturn;
739 __le32 pspoll_utilization; 739 __le32 pspoll_utilization;
740 __le32 upsd_utilization; 740 __le32 upsd_utilization;
741} __attribute__ ((packed)); 741} __packed;
742 742
743struct acx_rxpipe_statistics { 743struct acx_rxpipe_statistics {
744 __le32 rx_prep_beacon_drop; 744 __le32 rx_prep_beacon_drop;
@@ -746,7 +746,7 @@ struct acx_rxpipe_statistics {
746 __le32 beacon_buffer_thres_host_int_trig_rx_data; 746 __le32 beacon_buffer_thres_host_int_trig_rx_data;
747 __le32 missed_beacon_host_int_trig_rx_data; 747 __le32 missed_beacon_host_int_trig_rx_data;
748 __le32 tx_xfr_host_int_trig_rx_data; 748 __le32 tx_xfr_host_int_trig_rx_data;
749} __attribute__ ((packed)); 749} __packed;
750 750
751struct acx_statistics { 751struct acx_statistics {
752 struct acx_header header; 752 struct acx_header header;
@@ -762,7 +762,7 @@ struct acx_statistics {
762 struct acx_event_statistics event; 762 struct acx_event_statistics event;
763 struct acx_ps_statistics ps; 763 struct acx_ps_statistics ps;
764 struct acx_rxpipe_statistics rxpipe; 764 struct acx_rxpipe_statistics rxpipe;
765} __attribute__ ((packed)); 765} __packed;
766 766
767struct acx_rate_class { 767struct acx_rate_class {
768 __le32 enabled_rates; 768 __le32 enabled_rates;
@@ -780,7 +780,7 @@ struct acx_rate_policy {
780 780
781 __le32 rate_class_cnt; 781 __le32 rate_class_cnt;
782 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES]; 782 struct acx_rate_class rate_class[CONF_TX_MAX_RATE_CLASSES];
783} __attribute__ ((packed)); 783} __packed;
784 784
785struct acx_ac_cfg { 785struct acx_ac_cfg {
786 struct acx_header header; 786 struct acx_header header;
@@ -790,7 +790,7 @@ struct acx_ac_cfg {
790 u8 aifsn; 790 u8 aifsn;
791 u8 reserved; 791 u8 reserved;
792 __le16 tx_op_limit; 792 __le16 tx_op_limit;
793} __attribute__ ((packed)); 793} __packed;
794 794
795struct acx_tid_config { 795struct acx_tid_config {
796 struct acx_header header; 796 struct acx_header header;
@@ -801,19 +801,19 @@ struct acx_tid_config {
801 u8 ack_policy; 801 u8 ack_policy;
802 u8 padding[3]; 802 u8 padding[3];
803 __le32 apsd_conf[2]; 803 __le32 apsd_conf[2];
804} __attribute__ ((packed)); 804} __packed;
805 805
806struct acx_frag_threshold { 806struct acx_frag_threshold {
807 struct acx_header header; 807 struct acx_header header;
808 __le16 frag_threshold; 808 __le16 frag_threshold;
809 u8 padding[2]; 809 u8 padding[2];
810} __attribute__ ((packed)); 810} __packed;
811 811
812struct acx_tx_config_options { 812struct acx_tx_config_options {
813 struct acx_header header; 813 struct acx_header header;
814 __le16 tx_compl_timeout; /* msec */ 814 __le16 tx_compl_timeout; /* msec */
815 __le16 tx_compl_threshold; /* number of packets */ 815 __le16 tx_compl_threshold; /* number of packets */
816} __attribute__ ((packed)); 816} __packed;
817 817
818#define ACX_RX_MEM_BLOCKS 70 818#define ACX_RX_MEM_BLOCKS 70
819#define ACX_TX_MIN_MEM_BLOCKS 40 819#define ACX_TX_MIN_MEM_BLOCKS 40
@@ -828,7 +828,7 @@ struct wl1271_acx_config_memory {
828 u8 num_stations; 828 u8 num_stations;
829 u8 num_ssid_profiles; 829 u8 num_ssid_profiles;
830 __le32 total_tx_descriptors; 830 __le32 total_tx_descriptors;
831} __attribute__ ((packed)); 831} __packed;
832 832
833struct wl1271_acx_mem_map { 833struct wl1271_acx_mem_map {
834 struct acx_header header; 834 struct acx_header header;
@@ -872,7 +872,7 @@ struct wl1271_acx_mem_map {
872 u8 *rx_cbuf; 872 u8 *rx_cbuf;
873 __le32 rx_ctrl; 873 __le32 rx_ctrl;
874 __le32 tx_ctrl; 874 __le32 tx_ctrl;
875} __attribute__ ((packed)); 875} __packed;
876 876
877struct wl1271_acx_rx_config_opt { 877struct wl1271_acx_rx_config_opt {
878 struct acx_header header; 878 struct acx_header header;
@@ -882,7 +882,7 @@ struct wl1271_acx_rx_config_opt {
882 __le16 timeout; 882 __le16 timeout;
883 u8 queue_type; 883 u8 queue_type;
884 u8 reserved; 884 u8 reserved;
885} __attribute__ ((packed)); 885} __packed;
886 886
887 887
888struct wl1271_acx_bet_enable { 888struct wl1271_acx_bet_enable {
@@ -891,7 +891,7 @@ struct wl1271_acx_bet_enable {
891 u8 enable; 891 u8 enable;
892 u8 max_consecutive; 892 u8 max_consecutive;
893 u8 padding[2]; 893 u8 padding[2];
894} __attribute__ ((packed)); 894} __packed;
895 895
896#define ACX_IPV4_VERSION 4 896#define ACX_IPV4_VERSION 4
897#define ACX_IPV6_VERSION 6 897#define ACX_IPV6_VERSION 6
@@ -905,7 +905,7 @@ struct wl1271_acx_arp_filter {
905 requests directed to this IP address will pass 905 requests directed to this IP address will pass
906 through. For IPv4, the first four bytes are 906 through. For IPv4, the first four bytes are
907 used. */ 907 used. */
908} __attribute__((packed)); 908} __packed;
909 909
910struct wl1271_acx_pm_config { 910struct wl1271_acx_pm_config {
911 struct acx_header header; 911 struct acx_header header;
@@ -913,14 +913,14 @@ struct wl1271_acx_pm_config {
913 __le32 host_clk_settling_time; 913 __le32 host_clk_settling_time;
914 u8 host_fast_wakeup_support; 914 u8 host_fast_wakeup_support;
915 u8 padding[3]; 915 u8 padding[3];
916} __attribute__ ((packed)); 916} __packed;
917 917
918struct wl1271_acx_keep_alive_mode { 918struct wl1271_acx_keep_alive_mode {
919 struct acx_header header; 919 struct acx_header header;
920 920
921 u8 enabled; 921 u8 enabled;
922 u8 padding[3]; 922 u8 padding[3];
923} __attribute__ ((packed)); 923} __packed;
924 924
925enum { 925enum {
926 ACX_KEEP_ALIVE_NO_TX = 0, 926 ACX_KEEP_ALIVE_NO_TX = 0,
@@ -940,7 +940,7 @@ struct wl1271_acx_keep_alive_config {
940 u8 tpl_validation; 940 u8 tpl_validation;
941 u8 trigger; 941 u8 trigger;
942 u8 padding; 942 u8 padding;
943} __attribute__ ((packed)); 943} __packed;
944 944
945enum { 945enum {
946 WL1271_ACX_TRIG_TYPE_LEVEL = 0, 946 WL1271_ACX_TRIG_TYPE_LEVEL = 0,
diff --git a/drivers/net/wireless/wl12xx/wl1271_cmd.h b/drivers/net/wireless/wl12xx/wl1271_cmd.h
index f2820b42a943..d88faf9d2642 100644
--- a/drivers/net/wireless/wl12xx/wl1271_cmd.h
+++ b/drivers/net/wireless/wl12xx/wl1271_cmd.h
@@ -136,14 +136,14 @@ struct wl1271_cmd_header {
136 __le16 status; 136 __le16 status;
137 /* payload */ 137 /* payload */
138 u8 data[0]; 138 u8 data[0];
139} __attribute__ ((packed)); 139} __packed;
140 140
141#define WL1271_CMD_MAX_PARAMS 572 141#define WL1271_CMD_MAX_PARAMS 572
142 142
143struct wl1271_command { 143struct wl1271_command {
144 struct wl1271_cmd_header header; 144 struct wl1271_cmd_header header;
145 u8 parameters[WL1271_CMD_MAX_PARAMS]; 145 u8 parameters[WL1271_CMD_MAX_PARAMS];
146} __attribute__ ((packed)); 146} __packed;
147 147
148enum { 148enum {
149 CMD_MAILBOX_IDLE = 0, 149 CMD_MAILBOX_IDLE = 0,
@@ -196,7 +196,7 @@ struct cmd_read_write_memory {
196 of this field is the Host in WRITE command or the Wilink in READ 196 of this field is the Host in WRITE command or the Wilink in READ
197 command. */ 197 command. */
198 u8 value[MAX_READ_SIZE]; 198 u8 value[MAX_READ_SIZE];
199} __attribute__ ((packed)); 199} __packed;
200 200
201#define CMDMBOX_HEADER_LEN 4 201#define CMDMBOX_HEADER_LEN 4
202#define CMDMBOX_INFO_ELEM_HEADER_LEN 4 202#define CMDMBOX_INFO_ELEM_HEADER_LEN 4
@@ -243,14 +243,14 @@ struct wl1271_cmd_join {
243 u8 ssid[IW_ESSID_MAX_SIZE]; 243 u8 ssid[IW_ESSID_MAX_SIZE];
244 u8 ctrl; /* JOIN_CMD_CTRL_* */ 244 u8 ctrl; /* JOIN_CMD_CTRL_* */
245 u8 reserved[3]; 245 u8 reserved[3];
246} __attribute__ ((packed)); 246} __packed;
247 247
248struct cmd_enabledisable_path { 248struct cmd_enabledisable_path {
249 struct wl1271_cmd_header header; 249 struct wl1271_cmd_header header;
250 250
251 u8 channel; 251 u8 channel;
252 u8 padding[3]; 252 u8 padding[3];
253} __attribute__ ((packed)); 253} __packed;
254 254
255#define WL1271_RATE_AUTOMATIC 0 255#define WL1271_RATE_AUTOMATIC 0
256 256
@@ -266,7 +266,7 @@ struct wl1271_cmd_template_set {
266 u8 aflags; 266 u8 aflags;
267 u8 reserved; 267 u8 reserved;
268 u8 template_data[WL1271_CMD_TEMPL_MAX_SIZE]; 268 u8 template_data[WL1271_CMD_TEMPL_MAX_SIZE];
269} __attribute__ ((packed)); 269} __packed;
270 270
271#define TIM_ELE_ID 5 271#define TIM_ELE_ID 5
272#define PARTIAL_VBM_MAX 251 272#define PARTIAL_VBM_MAX 251
@@ -278,7 +278,7 @@ struct wl1271_tim {
278 u8 dtim_period; 278 u8 dtim_period;
279 u8 bitmap_ctrl; 279 u8 bitmap_ctrl;
280 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */ 280 u8 pvb_field[PARTIAL_VBM_MAX]; /* Partial Virtual Bitmap */
281} __attribute__ ((packed)); 281} __packed;
282 282
283enum wl1271_cmd_ps_mode { 283enum wl1271_cmd_ps_mode {
284 STATION_ACTIVE_MODE, 284 STATION_ACTIVE_MODE,
@@ -298,7 +298,7 @@ struct wl1271_cmd_ps_params {
298 */ 298 */
299 u8 hang_over_period; 299 u8 hang_over_period;
300 __le32 null_data_rate; 300 __le32 null_data_rate;
301} __attribute__ ((packed)); 301} __packed;
302 302
303/* HW encryption keys */ 303/* HW encryption keys */
304#define NUM_ACCESS_CATEGORIES_COPY 4 304#define NUM_ACCESS_CATEGORIES_COPY 4
@@ -348,7 +348,7 @@ struct wl1271_cmd_set_keys {
348 u8 key[MAX_KEY_SIZE]; 348 u8 key[MAX_KEY_SIZE];
349 __le16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY]; 349 __le16 ac_seq_num16[NUM_ACCESS_CATEGORIES_COPY];
350 __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY]; 350 __le32 ac_seq_num32[NUM_ACCESS_CATEGORIES_COPY];
351} __attribute__ ((packed)); 351} __packed;
352 352
353 353
354#define WL1271_SCAN_MAX_CHANNELS 24 354#define WL1271_SCAN_MAX_CHANNELS 24
@@ -385,7 +385,7 @@ struct basic_scan_params {
385 u8 use_ssid_list; 385 u8 use_ssid_list;
386 u8 scan_tag; 386 u8 scan_tag;
387 u8 padding2; 387 u8 padding2;
388} __attribute__ ((packed)); 388} __packed;
389 389
390struct basic_scan_channel_params { 390struct basic_scan_channel_params {
391 /* Duration in TU to wait for frames on a channel for active scan */ 391 /* Duration in TU to wait for frames on a channel for active scan */
@@ -400,25 +400,25 @@ struct basic_scan_channel_params {
400 u8 dfs_candidate; 400 u8 dfs_candidate;
401 u8 activity_detected; 401 u8 activity_detected;
402 u8 pad; 402 u8 pad;
403} __attribute__ ((packed)); 403} __packed;
404 404
405struct wl1271_cmd_scan { 405struct wl1271_cmd_scan {
406 struct wl1271_cmd_header header; 406 struct wl1271_cmd_header header;
407 407
408 struct basic_scan_params params; 408 struct basic_scan_params params;
409 struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS]; 409 struct basic_scan_channel_params channels[WL1271_SCAN_MAX_CHANNELS];
410} __attribute__ ((packed)); 410} __packed;
411 411
412struct wl1271_cmd_trigger_scan_to { 412struct wl1271_cmd_trigger_scan_to {
413 struct wl1271_cmd_header header; 413 struct wl1271_cmd_header header;
414 414
415 __le32 timeout; 415 __le32 timeout;
416} __attribute__ ((packed)); 416} __packed;
417 417
418struct wl1271_cmd_test_header { 418struct wl1271_cmd_test_header {
419 u8 id; 419 u8 id;
420 u8 padding[3]; 420 u8 padding[3];
421} __attribute__ ((packed)); 421} __packed;
422 422
423enum wl1271_channel_tune_bands { 423enum wl1271_channel_tune_bands {
424 WL1271_CHANNEL_TUNE_BAND_2_4, 424 WL1271_CHANNEL_TUNE_BAND_2_4,
@@ -441,7 +441,7 @@ struct wl1271_general_parms_cmd {
441 441
442 u8 params[WL1271_NVS_GENERAL_PARAMS_SIZE]; 442 u8 params[WL1271_NVS_GENERAL_PARAMS_SIZE];
443 s8 reserved[23]; 443 s8 reserved[23];
444} __attribute__ ((packed)); 444} __packed;
445 445
446#define WL1271_STAT_RADIO_PARAMS_5_SIZE 29 446#define WL1271_STAT_RADIO_PARAMS_5_SIZE 29
447#define WL1271_DYN_RADIO_PARAMS_5_SIZE 104 447#define WL1271_DYN_RADIO_PARAMS_5_SIZE 104
@@ -457,7 +457,7 @@ struct wl1271_radio_parms_cmd {
457 u8 dyn_radio_params[WL1271_NVS_DYN_RADIO_PARAMS_SIZE]; 457 u8 dyn_radio_params[WL1271_NVS_DYN_RADIO_PARAMS_SIZE];
458 u8 reserved; 458 u8 reserved;
459 u8 dyn_radio_params_5[WL1271_DYN_RADIO_PARAMS_5_SIZE]; 459 u8 dyn_radio_params_5[WL1271_DYN_RADIO_PARAMS_5_SIZE];
460} __attribute__ ((packed)); 460} __packed;
461 461
462struct wl1271_cmd_cal_channel_tune { 462struct wl1271_cmd_cal_channel_tune {
463 struct wl1271_cmd_header header; 463 struct wl1271_cmd_header header;
@@ -468,7 +468,7 @@ struct wl1271_cmd_cal_channel_tune {
468 u8 channel; 468 u8 channel;
469 469
470 __le16 radio_status; 470 __le16 radio_status;
471} __attribute__ ((packed)); 471} __packed;
472 472
473struct wl1271_cmd_cal_update_ref_point { 473struct wl1271_cmd_cal_update_ref_point {
474 struct wl1271_cmd_header header; 474 struct wl1271_cmd_header header;
@@ -479,7 +479,7 @@ struct wl1271_cmd_cal_update_ref_point {
479 __le32 ref_detector; 479 __le32 ref_detector;
480 u8 sub_band; 480 u8 sub_band;
481 u8 padding[3]; 481 u8 padding[3];
482} __attribute__ ((packed)); 482} __packed;
483 483
484#define MAX_TLV_LENGTH 400 484#define MAX_TLV_LENGTH 400
485#define MAX_NVS_VERSION_LENGTH 12 485#define MAX_NVS_VERSION_LENGTH 12
@@ -501,7 +501,7 @@ struct wl1271_cmd_cal_p2g {
501 501
502 u8 sub_band_mask; 502 u8 sub_band_mask;
503 u8 padding2; 503 u8 padding2;
504} __attribute__ ((packed)); 504} __packed;
505 505
506 506
507/* 507/*
@@ -529,6 +529,6 @@ struct wl1271_cmd_disconnect {
529 u8 type; 529 u8 type;
530 530
531 u8 padding; 531 u8 padding;
532} __attribute__ ((packed)); 532} __packed;
533 533
534#endif /* __WL1271_CMD_H__ */ 534#endif /* __WL1271_CMD_H__ */
diff --git a/drivers/net/wireless/wl12xx/wl1271_event.h b/drivers/net/wireless/wl12xx/wl1271_event.h
index 58371008f270..43d5aeae1783 100644
--- a/drivers/net/wireless/wl12xx/wl1271_event.h
+++ b/drivers/net/wireless/wl12xx/wl1271_event.h
@@ -85,7 +85,7 @@ struct event_debug_report {
85 __le32 report_1; 85 __le32 report_1;
86 __le32 report_2; 86 __le32 report_2;
87 __le32 report_3; 87 __le32 report_3;
88} __attribute__ ((packed)); 88} __packed;
89 89
90#define NUM_OF_RSSI_SNR_TRIGGERS 8 90#define NUM_OF_RSSI_SNR_TRIGGERS 8
91 91
@@ -116,7 +116,7 @@ struct event_mailbox {
116 u8 ps_status; 116 u8 ps_status;
117 117
118 u8 reserved_5[29]; 118 u8 reserved_5[29];
119} __attribute__ ((packed)); 119} __packed;
120 120
121int wl1271_event_unmask(struct wl1271 *wl); 121int wl1271_event_unmask(struct wl1271 *wl);
122void wl1271_event_mbox_config(struct wl1271 *wl); 122void wl1271_event_mbox_config(struct wl1271 *wl);
diff --git a/drivers/net/wireless/wl12xx/wl1271_rx.h b/drivers/net/wireless/wl12xx/wl1271_rx.h
index b89be4758e78..13a232333b13 100644
--- a/drivers/net/wireless/wl12xx/wl1271_rx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_rx.h
@@ -113,7 +113,7 @@ struct wl1271_rx_descriptor {
113 u8 process_id; 113 u8 process_id;
114 u8 pad_len; 114 u8 pad_len;
115 u8 reserved; 115 u8 reserved;
116} __attribute__ ((packed)); 116} __packed;
117 117
118void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status); 118void wl1271_rx(struct wl1271 *wl, struct wl1271_fw_status *status);
119u8 wl1271_rate_to_idx(struct wl1271 *wl, int rate); 119u8 wl1271_rate_to_idx(struct wl1271 *wl, int rate);
diff --git a/drivers/net/wireless/wl12xx/wl1271_tx.h b/drivers/net/wireless/wl12xx/wl1271_tx.h
index 3b8b7ac253fd..91d0adb0ea40 100644
--- a/drivers/net/wireless/wl12xx/wl1271_tx.h
+++ b/drivers/net/wireless/wl12xx/wl1271_tx.h
@@ -80,7 +80,7 @@ struct wl1271_tx_hw_descr {
80 /* Identifier of the remote STA in IBSS, 1 in infra-BSS */ 80 /* Identifier of the remote STA in IBSS, 1 in infra-BSS */
81 u8 aid; 81 u8 aid;
82 u8 reserved; 82 u8 reserved;
83} __attribute__ ((packed)); 83} __packed;
84 84
85enum wl1271_tx_hw_res_status { 85enum wl1271_tx_hw_res_status {
86 TX_SUCCESS = 0, 86 TX_SUCCESS = 0,
@@ -115,13 +115,13 @@ struct wl1271_tx_hw_res_descr {
115 u8 rate_class_index; 115 u8 rate_class_index;
116 /* for 4-byte alignment. */ 116 /* for 4-byte alignment. */
117 u8 spare; 117 u8 spare;
118} __attribute__ ((packed)); 118} __packed;
119 119
120struct wl1271_tx_hw_res_if { 120struct wl1271_tx_hw_res_if {
121 __le32 tx_result_fw_counter; 121 __le32 tx_result_fw_counter;
122 __le32 tx_result_host_counter; 122 __le32 tx_result_host_counter;
123 struct wl1271_tx_hw_res_descr tx_results_queue[TX_HW_RESULT_QUEUE_LEN]; 123 struct wl1271_tx_hw_res_descr tx_results_queue[TX_HW_RESULT_QUEUE_LEN];
124} __attribute__ ((packed)); 124} __packed;
125 125
126static inline int wl1271_tx_get_queue(int queue) 126static inline int wl1271_tx_get_queue(int queue)
127{ 127{
diff --git a/drivers/net/wireless/wl12xx/wl12xx_80211.h b/drivers/net/wireless/wl12xx/wl12xx_80211.h
index 055d7bc6f592..184628027213 100644
--- a/drivers/net/wireless/wl12xx/wl12xx_80211.h
+++ b/drivers/net/wireless/wl12xx/wl12xx_80211.h
@@ -66,41 +66,41 @@ struct ieee80211_header {
66 u8 bssid[ETH_ALEN]; 66 u8 bssid[ETH_ALEN];
67 __le16 seq_ctl; 67 __le16 seq_ctl;
68 u8 payload[0]; 68 u8 payload[0];
69} __attribute__ ((packed)); 69} __packed;
70 70
71struct wl12xx_ie_header { 71struct wl12xx_ie_header {
72 u8 id; 72 u8 id;
73 u8 len; 73 u8 len;
74} __attribute__ ((packed)); 74} __packed;
75 75
76/* IEs */ 76/* IEs */
77 77
78struct wl12xx_ie_ssid { 78struct wl12xx_ie_ssid {
79 struct wl12xx_ie_header header; 79 struct wl12xx_ie_header header;
80 char ssid[IW_ESSID_MAX_SIZE]; 80 char ssid[IW_ESSID_MAX_SIZE];
81} __attribute__ ((packed)); 81} __packed;
82 82
83struct wl12xx_ie_rates { 83struct wl12xx_ie_rates {
84 struct wl12xx_ie_header header; 84 struct wl12xx_ie_header header;
85 u8 rates[MAX_SUPPORTED_RATES]; 85 u8 rates[MAX_SUPPORTED_RATES];
86} __attribute__ ((packed)); 86} __packed;
87 87
88struct wl12xx_ie_ds_params { 88struct wl12xx_ie_ds_params {
89 struct wl12xx_ie_header header; 89 struct wl12xx_ie_header header;
90 u8 channel; 90 u8 channel;
91} __attribute__ ((packed)); 91} __packed;
92 92
93struct country_triplet { 93struct country_triplet {
94 u8 channel; 94 u8 channel;
95 u8 num_channels; 95 u8 num_channels;
96 u8 max_tx_power; 96 u8 max_tx_power;
97} __attribute__ ((packed)); 97} __packed;
98 98
99struct wl12xx_ie_country { 99struct wl12xx_ie_country {
100 struct wl12xx_ie_header header; 100 struct wl12xx_ie_header header;
101 u8 country_string[COUNTRY_STRING_LEN]; 101 u8 country_string[COUNTRY_STRING_LEN];
102 struct country_triplet triplets[MAX_COUNTRY_TRIPLETS]; 102 struct country_triplet triplets[MAX_COUNTRY_TRIPLETS];
103} __attribute__ ((packed)); 103} __packed;
104 104
105 105
106/* Templates */ 106/* Templates */
@@ -115,30 +115,30 @@ struct wl12xx_beacon_template {
115 struct wl12xx_ie_rates ext_rates; 115 struct wl12xx_ie_rates ext_rates;
116 struct wl12xx_ie_ds_params ds_params; 116 struct wl12xx_ie_ds_params ds_params;
117 struct wl12xx_ie_country country; 117 struct wl12xx_ie_country country;
118} __attribute__ ((packed)); 118} __packed;
119 119
120struct wl12xx_null_data_template { 120struct wl12xx_null_data_template {
121 struct ieee80211_header header; 121 struct ieee80211_header header;
122} __attribute__ ((packed)); 122} __packed;
123 123
124struct wl12xx_ps_poll_template { 124struct wl12xx_ps_poll_template {
125 __le16 fc; 125 __le16 fc;
126 __le16 aid; 126 __le16 aid;
127 u8 bssid[ETH_ALEN]; 127 u8 bssid[ETH_ALEN];
128 u8 ta[ETH_ALEN]; 128 u8 ta[ETH_ALEN];
129} __attribute__ ((packed)); 129} __packed;
130 130
131struct wl12xx_qos_null_data_template { 131struct wl12xx_qos_null_data_template {
132 struct ieee80211_header header; 132 struct ieee80211_header header;
133 __le16 qos_ctl; 133 __le16 qos_ctl;
134} __attribute__ ((packed)); 134} __packed;
135 135
136struct wl12xx_probe_req_template { 136struct wl12xx_probe_req_template {
137 struct ieee80211_header header; 137 struct ieee80211_header header;
138 struct wl12xx_ie_ssid ssid; 138 struct wl12xx_ie_ssid ssid;
139 struct wl12xx_ie_rates rates; 139 struct wl12xx_ie_rates rates;
140 struct wl12xx_ie_rates ext_rates; 140 struct wl12xx_ie_rates ext_rates;
141} __attribute__ ((packed)); 141} __packed;
142 142
143 143
144struct wl12xx_probe_resp_template { 144struct wl12xx_probe_resp_template {
@@ -151,6 +151,6 @@ struct wl12xx_probe_resp_template {
151 struct wl12xx_ie_rates ext_rates; 151 struct wl12xx_ie_rates ext_rates;
152 struct wl12xx_ie_ds_params ds_params; 152 struct wl12xx_ie_ds_params ds_params;
153 struct wl12xx_ie_country country; 153 struct wl12xx_ie_country country;
154} __attribute__ ((packed)); 154} __packed;
155 155
156#endif 156#endif
diff --git a/drivers/net/wireless/wl3501.h b/drivers/net/wireless/wl3501.h
index 8816e371fd0e..3fbfd19818f1 100644
--- a/drivers/net/wireless/wl3501.h
+++ b/drivers/net/wireless/wl3501.h
@@ -231,12 +231,12 @@ struct iw_mgmt_info_element {
231 but sizeof(enum) > sizeof(u8) :-( */ 231 but sizeof(enum) > sizeof(u8) :-( */
232 u8 len; 232 u8 len;
233 u8 data[0]; 233 u8 data[0];
234} __attribute__ ((packed)); 234} __packed;
235 235
236struct iw_mgmt_essid_pset { 236struct iw_mgmt_essid_pset {
237 struct iw_mgmt_info_element el; 237 struct iw_mgmt_info_element el;
238 u8 essid[IW_ESSID_MAX_SIZE]; 238 u8 essid[IW_ESSID_MAX_SIZE];
239} __attribute__ ((packed)); 239} __packed;
240 240
241/* 241/*
242 * According to 802.11 Wireless Netowors, the definitive guide - O'Reilly 242 * According to 802.11 Wireless Netowors, the definitive guide - O'Reilly
@@ -247,12 +247,12 @@ struct iw_mgmt_essid_pset {
247struct iw_mgmt_data_rset { 247struct iw_mgmt_data_rset {
248 struct iw_mgmt_info_element el; 248 struct iw_mgmt_info_element el;
249 u8 data_rate_labels[IW_DATA_RATE_MAX_LABELS]; 249 u8 data_rate_labels[IW_DATA_RATE_MAX_LABELS];
250} __attribute__ ((packed)); 250} __packed;
251 251
252struct iw_mgmt_ds_pset { 252struct iw_mgmt_ds_pset {
253 struct iw_mgmt_info_element el; 253 struct iw_mgmt_info_element el;
254 u8 chan; 254 u8 chan;
255} __attribute__ ((packed)); 255} __packed;
256 256
257struct iw_mgmt_cf_pset { 257struct iw_mgmt_cf_pset {
258 struct iw_mgmt_info_element el; 258 struct iw_mgmt_info_element el;
@@ -260,12 +260,12 @@ struct iw_mgmt_cf_pset {
260 u8 cfp_period; 260 u8 cfp_period;
261 u16 cfp_max_duration; 261 u16 cfp_max_duration;
262 u16 cfp_dur_remaining; 262 u16 cfp_dur_remaining;
263} __attribute__ ((packed)); 263} __packed;
264 264
265struct iw_mgmt_ibss_pset { 265struct iw_mgmt_ibss_pset {
266 struct iw_mgmt_info_element el; 266 struct iw_mgmt_info_element el;
267 u16 atim_window; 267 u16 atim_window;
268} __attribute__ ((packed)); 268} __packed;
269 269
270struct wl3501_tx_hdr { 270struct wl3501_tx_hdr {
271 u16 tx_cnt; 271 u16 tx_cnt;
@@ -544,12 +544,12 @@ struct wl3501_80211_tx_plcp_hdr {
544 u8 service; 544 u8 service;
545 u16 len; 545 u16 len;
546 u16 crc16; 546 u16 crc16;
547} __attribute__ ((packed)); 547} __packed;
548 548
549struct wl3501_80211_tx_hdr { 549struct wl3501_80211_tx_hdr {
550 struct wl3501_80211_tx_plcp_hdr pclp_hdr; 550 struct wl3501_80211_tx_plcp_hdr pclp_hdr;
551 struct ieee80211_hdr mac_hdr; 551 struct ieee80211_hdr mac_hdr;
552} __attribute__ ((packed)); 552} __packed;
553 553
554/* 554/*
555 Reserve the beginning Tx space for descriptor use. 555 Reserve the beginning Tx space for descriptor use.
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.h b/drivers/net/wireless/zd1211rw/zd_mac.h
index 630c298a730e..e4c70e359ced 100644
--- a/drivers/net/wireless/zd1211rw/zd_mac.h
+++ b/drivers/net/wireless/zd1211rw/zd_mac.h
@@ -35,7 +35,7 @@ struct zd_ctrlset {
35 __le16 current_length; 35 __le16 current_length;
36 u8 service; 36 u8 service;
37 __le16 next_frame_length; 37 __le16 next_frame_length;
38} __attribute__((packed)); 38} __packed;
39 39
40#define ZD_CS_RESERVED_SIZE 25 40#define ZD_CS_RESERVED_SIZE 25
41 41
@@ -106,7 +106,7 @@ struct zd_ctrlset {
106struct rx_length_info { 106struct rx_length_info {
107 __le16 length[3]; 107 __le16 length[3];
108 __le16 tag; 108 __le16 tag;
109} __attribute__((packed)); 109} __packed;
110 110
111#define RX_LENGTH_INFO_TAG 0x697e 111#define RX_LENGTH_INFO_TAG 0x697e
112 112
@@ -117,7 +117,7 @@ struct rx_status {
117 u8 signal_quality_ofdm; 117 u8 signal_quality_ofdm;
118 u8 decryption_type; 118 u8 decryption_type;
119 u8 frame_status; 119 u8 frame_status;
120} __attribute__((packed)); 120} __packed;
121 121
122/* rx_status field decryption_type */ 122/* rx_status field decryption_type */
123#define ZD_RX_NO_WEP 0 123#define ZD_RX_NO_WEP 0
@@ -153,7 +153,7 @@ struct tx_status {
153 u8 mac[ETH_ALEN]; 153 u8 mac[ETH_ALEN];
154 u8 retry; 154 u8 retry;
155 u8 failure; 155 u8 failure;
156} __attribute__((packed)); 156} __packed;
157 157
158enum mac_flags { 158enum mac_flags {
159 MAC_FIXED_CHANNEL = 0x01, 159 MAC_FIXED_CHANNEL = 0x01,
@@ -225,7 +225,7 @@ enum {
225struct ofdm_plcp_header { 225struct ofdm_plcp_header {
226 u8 prefix[3]; 226 u8 prefix[3];
227 __le16 service; 227 __le16 service;
228} __attribute__((packed)); 228} __packed;
229 229
230static inline u8 zd_ofdm_plcp_header_rate(const struct ofdm_plcp_header *header) 230static inline u8 zd_ofdm_plcp_header_rate(const struct ofdm_plcp_header *header)
231{ 231{
@@ -252,7 +252,7 @@ struct cck_plcp_header {
252 u8 service; 252 u8 service;
253 __le16 length; 253 __le16 length;
254 __le16 crc16; 254 __le16 crc16;
255} __attribute__((packed)); 255} __packed;
256 256
257static inline u8 zd_cck_plcp_header_signal(const struct cck_plcp_header *header) 257static inline u8 zd_cck_plcp_header_signal(const struct cck_plcp_header *header)
258{ 258{
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.h b/drivers/net/wireless/zd1211rw/zd_usb.h
index 049f8b91f020..1b1655cb7cb4 100644
--- a/drivers/net/wireless/zd1211rw/zd_usb.h
+++ b/drivers/net/wireless/zd1211rw/zd_usb.h
@@ -79,17 +79,17 @@ enum control_requests {
79struct usb_req_read_regs { 79struct usb_req_read_regs {
80 __le16 id; 80 __le16 id;
81 __le16 addr[0]; 81 __le16 addr[0];
82} __attribute__((packed)); 82} __packed;
83 83
84struct reg_data { 84struct reg_data {
85 __le16 addr; 85 __le16 addr;
86 __le16 value; 86 __le16 value;
87} __attribute__((packed)); 87} __packed;
88 88
89struct usb_req_write_regs { 89struct usb_req_write_regs {
90 __le16 id; 90 __le16 id;
91 struct reg_data reg_writes[0]; 91 struct reg_data reg_writes[0];
92} __attribute__((packed)); 92} __packed;
93 93
94enum { 94enum {
95 RF_IF_LE = 0x02, 95 RF_IF_LE = 0x02,
@@ -106,7 +106,7 @@ struct usb_req_rfwrite {
106 /* RF2595: 24 */ 106 /* RF2595: 24 */
107 __le16 bit_values[0]; 107 __le16 bit_values[0];
108 /* (CR203 & ~(RF_IF_LE | RF_CLK | RF_DATA)) | (bit ? RF_DATA : 0) */ 108 /* (CR203 & ~(RF_IF_LE | RF_CLK | RF_DATA)) | (bit ? RF_DATA : 0) */
109} __attribute__((packed)); 109} __packed;
110 110
111/* USB interrupt */ 111/* USB interrupt */
112 112
@@ -123,12 +123,12 @@ enum usb_int_flags {
123struct usb_int_header { 123struct usb_int_header {
124 u8 type; /* must always be 1 */ 124 u8 type; /* must always be 1 */
125 u8 id; 125 u8 id;
126} __attribute__((packed)); 126} __packed;
127 127
128struct usb_int_regs { 128struct usb_int_regs {
129 struct usb_int_header hdr; 129 struct usb_int_header hdr;
130 struct reg_data regs[0]; 130 struct reg_data regs[0];
131} __attribute__((packed)); 131} __packed;
132 132
133struct usb_int_retry_fail { 133struct usb_int_retry_fail {
134 struct usb_int_header hdr; 134 struct usb_int_header hdr;
@@ -136,7 +136,7 @@ struct usb_int_retry_fail {
136 u8 _dummy; 136 u8 _dummy;
137 u8 addr[ETH_ALEN]; 137 u8 addr[ETH_ALEN];
138 u8 ibss_wakeup_dest; 138 u8 ibss_wakeup_dest;
139} __attribute__((packed)); 139} __packed;
140 140
141struct read_regs_int { 141struct read_regs_int {
142 struct completion completion; 142 struct completion completion;