diff options
-rw-r--r-- | drivers/net/wireless/airo.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index be9aa4efeca5..24fa0d62efe4 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c | |||
@@ -4365,14 +4365,10 @@ static int transmit_802_11_packet(struct airo_info *ai, int len, char *pPacket) | |||
4365 | Cmd cmd; | 4365 | Cmd cmd; |
4366 | Resp rsp; | 4366 | Resp rsp; |
4367 | int hdrlen; | 4367 | int hdrlen; |
4368 | struct { | 4368 | static u8 tail[(30-10) + 2 + 6] = {[30-10] = 6}; |
4369 | u8 addr4[ETH_ALEN]; | 4369 | /* padding of header to full size + le16 gaplen (6) + gaplen bytes */ |
4370 | u16 gaplen; | ||
4371 | u8 gap[6]; | ||
4372 | } gap; | ||
4373 | u16 txFid = len; | 4370 | u16 txFid = len; |
4374 | len >>= 16; | 4371 | len >>= 16; |
4375 | gap.gaplen = 6; | ||
4376 | 4372 | ||
4377 | fc = le16_to_cpu(*(const u16*)pPacket); | 4373 | fc = le16_to_cpu(*(const u16*)pPacket); |
4378 | switch (fc & 0xc) { | 4374 | switch (fc & 0xc) { |
@@ -4405,8 +4401,7 @@ static int transmit_802_11_packet(struct airo_info *ai, int len, char *pPacket) | |||
4405 | bap_write(ai, &payloadLen, sizeof(payloadLen),BAP1); | 4401 | bap_write(ai, &payloadLen, sizeof(payloadLen),BAP1); |
4406 | if (bap_setup(ai, txFid, 0x0014, BAP1) != SUCCESS) return ERROR; | 4402 | if (bap_setup(ai, txFid, 0x0014, BAP1) != SUCCESS) return ERROR; |
4407 | bap_write(ai, (const u16*)pPacket, hdrlen, BAP1); | 4403 | bap_write(ai, (const u16*)pPacket, hdrlen, BAP1); |
4408 | bap_write(ai, hdrlen == 30 ? | 4404 | bap_write(ai, (u16 *)(tail + (hdrlen - 10)), 38 - hdrlen, BAP1); |
4409 | (const u16*)&gap.gaplen : (const u16*)&gap, 38 - hdrlen, BAP1); | ||
4410 | 4405 | ||
4411 | bap_write(ai, (const u16*)(pPacket + hdrlen), len - hdrlen, BAP1); | 4406 | bap_write(ai, (const u16*)(pPacket + hdrlen), len - hdrlen, BAP1); |
4412 | // issue the transmit command | 4407 | // issue the transmit command |