diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-01 23:55:21 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-01 23:55:21 -0500 |
commit | 116b23b0ed36f8d5b56d16ac50266fce8de904c1 (patch) | |
tree | 81f7c80bc2e691c327fe7572a4f9b517e47bb101 /drivers/net/wireless | |
parent | b6ef977b608b01e0f338afd9445cab5436c61e00 (diff) | |
parent | 9e1402ab89623f08c8dc06ec395e3214e1ec7848 (diff) |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6:
[PATCH] Fix an offset error when reading the CS89x0 ADD_PORT register
[PATCH] spidernet: poor network performance
[PATCH] Spidernet: remove ETH_ZLEN check in earlier patch
[PATCH] bonding: fix an oops when slave device does not provide get_stats
[PATCH] drivers/net: SAA9730: Fix build error
Revert "[PATCH] zd1211rw: Removed unneeded packed attributes"
[PATCH] zd1211rw: Fix of a locking bug
[PATCH] softmac: remove netif_tx_disable when scanning
[PATCH] ieee80211: Fix kernel panic when QoS is enabled
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_ieee80211.h | 2 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_mac.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.c | 26 | ||||
-rw-r--r-- | drivers/net/wireless/zd1211rw/zd_usb.h | 14 |
5 files changed, 24 insertions, 24 deletions
diff --git a/drivers/net/wireless/zd1211rw/zd_ieee80211.h b/drivers/net/wireless/zd1211rw/zd_ieee80211.h index f63245b0d966..36329890dfec 100644 --- a/drivers/net/wireless/zd1211rw/zd_ieee80211.h +++ b/drivers/net/wireless/zd1211rw/zd_ieee80211.h | |||
@@ -64,7 +64,7 @@ struct cck_plcp_header { | |||
64 | u8 service; | 64 | u8 service; |
65 | __le16 length; | 65 | __le16 length; |
66 | __le16 crc16; | 66 | __le16 crc16; |
67 | }; | 67 | } __attribute__((packed)); |
68 | 68 | ||
69 | static inline u8 zd_cck_plcp_header_rate(const struct cck_plcp_header *header) | 69 | static inline u8 zd_cck_plcp_header_rate(const struct cck_plcp_header *header) |
70 | { | 70 | { |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index a7d29bddb298..e5fedf968c19 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c | |||
@@ -721,7 +721,7 @@ struct zd_rt_hdr { | |||
721 | u8 rt_rate; | 721 | u8 rt_rate; |
722 | u16 rt_channel; | 722 | u16 rt_channel; |
723 | u16 rt_chbitmask; | 723 | u16 rt_chbitmask; |
724 | }; | 724 | } __attribute__((packed)); |
725 | 725 | ||
726 | static void fill_rt_header(void *buffer, struct zd_mac *mac, | 726 | static void fill_rt_header(void *buffer, struct zd_mac *mac, |
727 | const struct ieee80211_rx_stats *stats, | 727 | const struct ieee80211_rx_stats *stats, |
diff --git a/drivers/net/wireless/zd1211rw/zd_mac.h b/drivers/net/wireless/zd1211rw/zd_mac.h index b8ea3de7924a..e4dd40a6fec3 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.h +++ b/drivers/net/wireless/zd1211rw/zd_mac.h | |||
@@ -82,7 +82,7 @@ struct zd_ctrlset { | |||
82 | struct rx_length_info { | 82 | struct rx_length_info { |
83 | __le16 length[3]; | 83 | __le16 length[3]; |
84 | __le16 tag; | 84 | __le16 tag; |
85 | }; | 85 | } __attribute__((packed)); |
86 | 86 | ||
87 | #define RX_LENGTH_INFO_TAG 0x697e | 87 | #define RX_LENGTH_INFO_TAG 0x697e |
88 | 88 | ||
@@ -93,7 +93,7 @@ struct rx_status { | |||
93 | u8 signal_quality_ofdm; | 93 | u8 signal_quality_ofdm; |
94 | u8 decryption_type; | 94 | u8 decryption_type; |
95 | u8 frame_status; | 95 | u8 frame_status; |
96 | }; | 96 | } __attribute__((packed)); |
97 | 97 | ||
98 | /* rx_status field decryption_type */ | 98 | /* rx_status field decryption_type */ |
99 | #define ZD_RX_NO_WEP 0 | 99 | #define ZD_RX_NO_WEP 0 |
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index 3faaeb2b7c89..a15b09549245 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c | |||
@@ -366,15 +366,6 @@ error: | |||
366 | return r; | 366 | return r; |
367 | } | 367 | } |
368 | 368 | ||
369 | static void disable_read_regs_int(struct zd_usb *usb) | ||
370 | { | ||
371 | struct zd_usb_interrupt *intr = &usb->intr; | ||
372 | |||
373 | spin_lock(&intr->lock); | ||
374 | intr->read_regs_enabled = 0; | ||
375 | spin_unlock(&intr->lock); | ||
376 | } | ||
377 | |||
378 | #define urb_dev(urb) (&(urb)->dev->dev) | 369 | #define urb_dev(urb) (&(urb)->dev->dev) |
379 | 370 | ||
380 | static inline void handle_regs_int(struct urb *urb) | 371 | static inline void handle_regs_int(struct urb *urb) |
@@ -1156,10 +1147,19 @@ static void prepare_read_regs_int(struct zd_usb *usb) | |||
1156 | { | 1147 | { |
1157 | struct zd_usb_interrupt *intr = &usb->intr; | 1148 | struct zd_usb_interrupt *intr = &usb->intr; |
1158 | 1149 | ||
1159 | spin_lock(&intr->lock); | 1150 | spin_lock_irq(&intr->lock); |
1160 | intr->read_regs_enabled = 1; | 1151 | intr->read_regs_enabled = 1; |
1161 | INIT_COMPLETION(intr->read_regs.completion); | 1152 | INIT_COMPLETION(intr->read_regs.completion); |
1162 | spin_unlock(&intr->lock); | 1153 | spin_unlock_irq(&intr->lock); |
1154 | } | ||
1155 | |||
1156 | static void disable_read_regs_int(struct zd_usb *usb) | ||
1157 | { | ||
1158 | struct zd_usb_interrupt *intr = &usb->intr; | ||
1159 | |||
1160 | spin_lock_irq(&intr->lock); | ||
1161 | intr->read_regs_enabled = 0; | ||
1162 | spin_unlock_irq(&intr->lock); | ||
1163 | } | 1163 | } |
1164 | 1164 | ||
1165 | static int get_results(struct zd_usb *usb, u16 *values, | 1165 | static int get_results(struct zd_usb *usb, u16 *values, |
@@ -1171,7 +1171,7 @@ static int get_results(struct zd_usb *usb, u16 *values, | |||
1171 | struct read_regs_int *rr = &intr->read_regs; | 1171 | struct read_regs_int *rr = &intr->read_regs; |
1172 | struct usb_int_regs *regs = (struct usb_int_regs *)rr->buffer; | 1172 | struct usb_int_regs *regs = (struct usb_int_regs *)rr->buffer; |
1173 | 1173 | ||
1174 | spin_lock(&intr->lock); | 1174 | spin_lock_irq(&intr->lock); |
1175 | 1175 | ||
1176 | r = -EIO; | 1176 | r = -EIO; |
1177 | /* The created block size seems to be larger than expected. | 1177 | /* The created block size seems to be larger than expected. |
@@ -1204,7 +1204,7 @@ static int get_results(struct zd_usb *usb, u16 *values, | |||
1204 | 1204 | ||
1205 | r = 0; | 1205 | r = 0; |
1206 | error_unlock: | 1206 | error_unlock: |
1207 | spin_unlock(&intr->lock); | 1207 | spin_unlock_irq(&intr->lock); |
1208 | return r; | 1208 | return r; |
1209 | } | 1209 | } |
1210 | 1210 | ||
diff --git a/drivers/net/wireless/zd1211rw/zd_usb.h b/drivers/net/wireless/zd1211rw/zd_usb.h index e81a2d3cfffd..317d37c36679 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.h +++ b/drivers/net/wireless/zd1211rw/zd_usb.h | |||
@@ -74,17 +74,17 @@ enum control_requests { | |||
74 | struct usb_req_read_regs { | 74 | struct usb_req_read_regs { |
75 | __le16 id; | 75 | __le16 id; |
76 | __le16 addr[0]; | 76 | __le16 addr[0]; |
77 | }; | 77 | } __attribute__((packed)); |
78 | 78 | ||
79 | struct reg_data { | 79 | struct reg_data { |
80 | __le16 addr; | 80 | __le16 addr; |
81 | __le16 value; | 81 | __le16 value; |
82 | }; | 82 | } __attribute__((packed)); |
83 | 83 | ||
84 | struct usb_req_write_regs { | 84 | struct usb_req_write_regs { |
85 | __le16 id; | 85 | __le16 id; |
86 | struct reg_data reg_writes[0]; | 86 | struct reg_data reg_writes[0]; |
87 | }; | 87 | } __attribute__((packed)); |
88 | 88 | ||
89 | enum { | 89 | enum { |
90 | RF_IF_LE = 0x02, | 90 | RF_IF_LE = 0x02, |
@@ -101,7 +101,7 @@ struct usb_req_rfwrite { | |||
101 | /* RF2595: 24 */ | 101 | /* RF2595: 24 */ |
102 | __le16 bit_values[0]; | 102 | __le16 bit_values[0]; |
103 | /* (CR203 & ~(RF_IF_LE | RF_CLK | RF_DATA)) | (bit ? RF_DATA : 0) */ | 103 | /* (CR203 & ~(RF_IF_LE | RF_CLK | RF_DATA)) | (bit ? RF_DATA : 0) */ |
104 | }; | 104 | } __attribute__((packed)); |
105 | 105 | ||
106 | /* USB interrupt */ | 106 | /* USB interrupt */ |
107 | 107 | ||
@@ -118,12 +118,12 @@ enum usb_int_flags { | |||
118 | struct usb_int_header { | 118 | struct usb_int_header { |
119 | u8 type; /* must always be 1 */ | 119 | u8 type; /* must always be 1 */ |
120 | u8 id; | 120 | u8 id; |
121 | }; | 121 | } __attribute__((packed)); |
122 | 122 | ||
123 | struct usb_int_regs { | 123 | struct usb_int_regs { |
124 | struct usb_int_header hdr; | 124 | struct usb_int_header hdr; |
125 | struct reg_data regs[0]; | 125 | struct reg_data regs[0]; |
126 | }; | 126 | } __attribute__((packed)); |
127 | 127 | ||
128 | struct usb_int_retry_fail { | 128 | struct usb_int_retry_fail { |
129 | struct usb_int_header hdr; | 129 | struct usb_int_header hdr; |
@@ -131,7 +131,7 @@ struct usb_int_retry_fail { | |||
131 | u8 _dummy; | 131 | u8 _dummy; |
132 | u8 addr[ETH_ALEN]; | 132 | u8 addr[ETH_ALEN]; |
133 | u8 ibss_wakeup_dest; | 133 | u8 ibss_wakeup_dest; |
134 | }; | 134 | } __attribute__((packed)); |
135 | 135 | ||
136 | struct read_regs_int { | 136 | struct read_regs_int { |
137 | struct completion completion; | 137 | struct completion completion; |