2011-05-23 13:54:00

by Mike McCormack

[permalink] [raw]
Subject: [PATCH 1/8] rtlwifi: Synchronize IRQ after disabling it

This make sure any IRQ handlers running on other CPUs complete.

Signed-off-by: Mike McCormack <[email protected]>
---
drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
index 4a56138..87b8a79 100644
--- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
@@ -1196,6 +1196,7 @@ void rtl92ce_disable_interrupt(struct ieee80211_hw *hw)
rtl_write_dword(rtlpriv, REG_HIMR, IMR8190_DISABLED);
rtl_write_dword(rtlpriv, REG_HIMRE, IMR8190_DISABLED);
rtlpci->irq_enabled = false;
+ synchronize_irq(rtlpci->pdev->irq);
}

static void _rtl92ce_poweroff_adapter(struct ieee80211_hw *hw)
--
1.7.4.1




2011-05-23 19:45:35

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 1/8] rtlwifi: Synchronize IRQ after disabling it

On 05/23/2011 08:53 AM, Mike McCormack wrote:
> This make sure any IRQ handlers running on other CPUs complete.
>
> Signed-off-by: Mike McCormack<[email protected]>
> ---
> drivers/net/wireless/rtlwifi/rtl8192ce/hw.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
> index 4a56138..87b8a79 100644
> --- a/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
> +++ b/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
> @@ -1196,6 +1196,7 @@ void rtl92ce_disable_interrupt(struct ieee80211_hw *hw)
> rtl_write_dword(rtlpriv, REG_HIMR, IMR8190_DISABLED);
> rtl_write_dword(rtlpriv, REG_HIMRE, IMR8190_DISABLED);
> rtlpci->irq_enabled = false;
> + synchronize_irq(rtlpci->pdev->irq);
> }
>
> static void _rtl92ce_poweroff_adapter(struct ieee80211_hw *hw)

Signed-off-by: Larry Finger <[email protected]>

There is a similar construct in rtl8192se, but I will submit that patch.

Larry