diff options
Diffstat (limited to 'drivers/net/wireless/rt2x00/rt73usb.c')
-rw-r--r-- | drivers/net/wireless/rt2x00/rt73usb.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/net/wireless/rt2x00/rt73usb.c b/drivers/net/wireless/rt2x00/rt73usb.c index bd9a53e5fd9f..4ab38c3641cc 100644 --- a/drivers/net/wireless/rt2x00/rt73usb.c +++ b/drivers/net/wireless/rt2x00/rt73usb.c | |||
@@ -1442,7 +1442,7 @@ static void rt73usb_write_tx_desc(struct rt2x00_dev *rt2x00dev, | |||
1442 | struct txentry_desc *txdesc) | 1442 | struct txentry_desc *txdesc) |
1443 | { | 1443 | { |
1444 | struct skb_frame_desc *skbdesc = get_skb_frame_desc(skb); | 1444 | struct skb_frame_desc *skbdesc = get_skb_frame_desc(skb); |
1445 | __le32 *txd = (__le32 *)(skb->data - TXD_DESC_SIZE); | 1445 | __le32 *txd = (__le32 *) skb->data; |
1446 | u32 word; | 1446 | u32 word; |
1447 | 1447 | ||
1448 | /* | 1448 | /* |
@@ -1505,6 +1505,7 @@ static void rt73usb_write_tx_desc(struct rt2x00_dev *rt2x00dev, | |||
1505 | /* | 1505 | /* |
1506 | * Register descriptor details in skb frame descriptor. | 1506 | * Register descriptor details in skb frame descriptor. |
1507 | */ | 1507 | */ |
1508 | skbdesc->flags |= SKBDESC_DESC_IN_SKB; | ||
1508 | skbdesc->desc = txd; | 1509 | skbdesc->desc = txd; |
1509 | skbdesc->desc_len = TXD_DESC_SIZE; | 1510 | skbdesc->desc_len = TXD_DESC_SIZE; |
1510 | } | 1511 | } |
@@ -1528,6 +1529,12 @@ static void rt73usb_write_beacon(struct queue_entry *entry, | |||
1528 | rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg); | 1529 | rt2x00usb_register_write(rt2x00dev, TXRX_CSR9, reg); |
1529 | 1530 | ||
1530 | /* | 1531 | /* |
1532 | * Add space for the descriptor in front of the skb. | ||
1533 | */ | ||
1534 | skb_push(entry->skb, TXD_DESC_SIZE); | ||
1535 | memset(entry->skb->data, 0, TXD_DESC_SIZE); | ||
1536 | |||
1537 | /* | ||
1531 | * Write the TX descriptor for the beacon. | 1538 | * Write the TX descriptor for the beacon. |
1532 | */ | 1539 | */ |
1533 | rt73usb_write_tx_desc(rt2x00dev, entry->skb, txdesc); | 1540 | rt73usb_write_tx_desc(rt2x00dev, entry->skb, txdesc); |
@@ -1538,11 +1545,6 @@ static void rt73usb_write_beacon(struct queue_entry *entry, | |||
1538 | rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_BEACON, entry->skb); | 1545 | rt2x00debug_dump_frame(rt2x00dev, DUMP_FRAME_BEACON, entry->skb); |
1539 | 1546 | ||
1540 | /* | 1547 | /* |
1541 | * Take the descriptor in front of the skb into account. | ||
1542 | */ | ||
1543 | skb_push(entry->skb, TXD_DESC_SIZE); | ||
1544 | |||
1545 | /* | ||
1546 | * Write entire beacon with descriptor to register. | 1548 | * Write entire beacon with descriptor to register. |
1547 | */ | 1549 | */ |
1548 | beacon_base = HW_BEACON_OFFSET(entry->entry_idx); | 1550 | beacon_base = HW_BEACON_OFFSET(entry->entry_idx); |