Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 66777
b: refs/heads/master
c: d703e29
h: refs/heads/master
i:
  66775: c40e7e0
v: v3
  • Loading branch information
Michael Wu authored and David S. Miller committed Oct 10, 2007
1 parent d846eb2 commit 6fccda8
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 15 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f6ac0adf54ed3fc7fa47e66b92defcbdf37b44ab
refs/heads/master: d703e29a88c91f015aa691a195e8fd4426c4ec73
27 changes: 13 additions & 14 deletions trunk/drivers/net/wireless/adm8211.c
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,7 @@ static void adm8211_interrupt_tci(struct ieee80211_hw *dev)
for (dirty_tx = priv->dirty_tx; priv->cur_tx - dirty_tx; dirty_tx++) {
unsigned int entry = dirty_tx % priv->tx_ring_size;
u32 status = le32_to_cpu(priv->tx_ring[entry].status);
struct ieee80211_tx_status tx_status;
struct adm8211_tx_ring_info *info;
struct sk_buff *skb;

Expand All @@ -314,21 +315,19 @@ static void adm8211_interrupt_tci(struct ieee80211_hw *dev)
pci_unmap_single(priv->pdev, info->mapping,
info->skb->len, PCI_DMA_TODEVICE);

if (info->tx_control.flags & IEEE80211_TXCTL_REQ_TX_STATUS) {
struct ieee80211_tx_status tx_status = {{0}};
struct ieee80211_hdr *hdr;
size_t hdrlen = info->hdrlen;

skb_pull(skb, sizeof(struct adm8211_tx_hdr));
hdr = (struct ieee80211_hdr *)skb_push(skb, hdrlen);
memcpy(hdr, skb->cb, hdrlen);
memcpy(&tx_status.control, &info->tx_control,
sizeof(tx_status.control));
if (!(status & TDES0_STATUS_ES))
memset(&tx_status, 0, sizeof(tx_status));
skb_pull(skb, sizeof(struct adm8211_tx_hdr));
memcpy(skb_push(skb, info->hdrlen), skb->cb, info->hdrlen);
memcpy(&tx_status.control, &info->tx_control,
sizeof(tx_status.control));
if (!(tx_status.control.flags & IEEE80211_TXCTL_NO_ACK)) {
if (status & TDES0_STATUS_ES)
tx_status.excessive_retries = 1;
else
tx_status.flags |= IEEE80211_TX_STATUS_ACK;
ieee80211_tx_status_irqsafe(dev, skb, &tx_status);
} else
dev_kfree_skb_irq(skb);
}
ieee80211_tx_status_irqsafe(dev, skb, &tx_status);

info->skb = NULL;
}

Expand Down

0 comments on commit 6fccda8

Please sign in to comment.