On 01/15/2015 06:00 AM, Kalle Valo wrote:
Hi Troy,

please avoid top-posting.

谭杭波 <[email protected]> writes:

You can find get_available_desc here:

diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/
pci.c
index e25faac..a62170e 100644
--- a/drivers/net/wireless/rtlwifi/pci.c
+++ b/drivers/net/wireless/rtlwifi/pci.c
@@ -578,6 +578,13 @@ static void _rtl_pci_tx_isr(struct ieee80211_hw *hw, int
prio)
                 else
                         entry = (u8 *)(&ring->desc[ring->idx]);

+               if (rtlpriv->cfg->ops->get_available_desc &&
+                   rtlpriv->cfg->ops->get_available_desc(hw, prio) <= 1) {
+                       RT_TRACE(rtlpriv, (COMP_INTR | COMP_SEND), DBG_DMESG,
+                                "no available desc!\n");
+                       return;
+               }

I don't see rtlpriv->cfg->ops->get_available_desc set here, only being
called?

Only one of the drivers (rtl8192ee) needs to implement that routine, which is the reason it is checked for non-NULL before it is called. The implementation is in patch 3 in file rtl8192ee/sw.c where it says:

@@ -241,6 +239,7 @@ static struct rtl_hal_ops rtl8192ee_hal_ops = {
        .set_desc = rtl92ee_set_desc,
        .get_desc = rtl92ee_get_desc,
        .is_tx_desc_closed = rtl92ee_is_tx_desc_closed,
+       .get_available_desc = rtl92ee_get_available_desc,
        .tx_polling = rtl92ee_tx_polling,
        .enable_hw_sec = rtl92ee_enable_hw_security_config,
        .init_sw_leds = rtl92ee_init_sw_leds,

Larry



--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to