diff options
author | John W. Linville <linville@tuxdriver.com> | 2011-01-05 16:06:25 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-01-05 16:06:25 -0500 |
commit | c96e96354a6c9456cdf1f150eca504e2ea35301e (patch) | |
tree | 751bec601fb8152116b8e31e0f1f83d687a37d6f /drivers/net/wireless/rtlwifi/pci.c | |
parent | dbbe68bb12b34f3e450da7a73c20e6fa1f85d63a (diff) | |
parent | 33af88138b859f515b365a074e0a014d7cdbf846 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
net/bluetooth/Makefile
Diffstat (limited to 'drivers/net/wireless/rtlwifi/pci.c')
-rw-r--r-- | drivers/net/wireless/rtlwifi/pci.c | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c index bf3b5748ee19..0fa36aa6701a 100644 --- a/drivers/net/wireless/rtlwifi/pci.c +++ b/drivers/net/wireless/rtlwifi/pci.c | |||
@@ -612,10 +612,22 @@ static void _rtl_pci_rx_interrupt(struct ieee80211_hw *hw) | |||
612 | num_rx_inperiod++; | 612 | num_rx_inperiod++; |
613 | } | 613 | } |
614 | 614 | ||
615 | if (unlikely(!rtl_action_proc(hw, skb, false))) | 615 | if (unlikely(!rtl_action_proc(hw, skb, |
616 | false))) { | ||
616 | dev_kfree_skb_any(skb); | 617 | dev_kfree_skb_any(skb); |
617 | else | 618 | } else { |
618 | ieee80211_rx_irqsafe(hw, skb); | 619 | struct sk_buff *uskb = NULL; |
620 | u8 *pdata; | ||
621 | uskb = dev_alloc_skb(skb->len + 128); | ||
622 | memcpy(IEEE80211_SKB_RXCB(uskb), | ||
623 | &rx_status, | ||
624 | sizeof(rx_status)); | ||
625 | pdata = (u8 *)skb_put(uskb, skb->len); | ||
626 | memcpy(pdata, skb->data, skb->len); | ||
627 | dev_kfree_skb_any(skb); | ||
628 | |||
629 | ieee80211_rx_irqsafe(hw, uskb); | ||
630 | } | ||
619 | } else { | 631 | } else { |
620 | dev_kfree_skb_any(skb); | 632 | dev_kfree_skb_any(skb); |
621 | } | 633 | } |
@@ -1608,7 +1620,7 @@ static bool _rtl_pci_find_adapter(struct pci_dev *pdev, | |||
1608 | pcipriv->ndis_adapter.pcibridge_funcnum = | 1620 | pcipriv->ndis_adapter.pcibridge_funcnum = |
1609 | PCI_FUNC(bridge_pdev->devfn); | 1621 | PCI_FUNC(bridge_pdev->devfn); |
1610 | pcipriv->ndis_adapter.pcibridge_pciehdr_offset = | 1622 | pcipriv->ndis_adapter.pcibridge_pciehdr_offset = |
1611 | bridge_pdev->pcie_cap; | 1623 | pci_pcie_cap(bridge_pdev); |
1612 | pcipriv->ndis_adapter.pcicfg_addrport = | 1624 | pcipriv->ndis_adapter.pcicfg_addrport = |
1613 | (pcipriv->ndis_adapter.pcibridge_busnum << 16) | | 1625 | (pcipriv->ndis_adapter.pcibridge_busnum << 16) | |
1614 | (pcipriv->ndis_adapter.pcibridge_devnum << 11) | | 1626 | (pcipriv->ndis_adapter.pcibridge_devnum << 11) | |