All of lore.kernel.org
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger@lwfinger.net>
To: "João Paulo Rechi Vita" <jprvita@gmail.com>,
	linux-wireless <linux-wireless@vger.kernel.org>
Cc: Vincent Fann <vincent_fann@realtek.com>,
	Shao Fu <shaofu@realtek.com>, Kalle Valo <kvalo@codeaurora.org>,
	Stable <stable@vger.kernel.org>,
	Daniel Drake <drake@endlessm.com>
Subject: Re: rtl8821ae bisected regression between 4.1 and 4.2
Date: Thu, 1 Oct 2015 10:42:13 -0500	[thread overview]
Message-ID: <560D5455.8060400@lwfinger.net> (raw)
In-Reply-To: <CA+A7VXW02GyRaFYw34CSim=WJrvF_fff5oK73JT1+bhRbv_B9g@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1646 bytes --]

On 10/01/2015 08:17 AM, João Paulo Rechi Vita wrote:
> Hello linux-wirelless (cc'ing stable since the original patch had
> cc:stable as well),
>
> I'm experiencing a CPU soft lockup while downloading when rtl8821ae is
> loaded (even when downloading through other adapters) on a vanilla 4.2
> kernel. The problem did not happen on vanilla 4.1. Bisecting shows the
> first bad commit being "rtlwifi: Remove the clear interrupt routine
> from all drivers" (1277fa2ab2f9a624a4b0177119ca13b5fd65edd0).
> Reverting that commit makes the problem go away.
>
> The system is perfectly stable until I start downloading, when the UI
> becomes unresponsive, sometimes leading to a complete freeze. When the
> system does not completely freezes and I'm able to kill the download,
> everything seems to go back to normal after killing it, and I am able
> to continue to use the computer as long as I do not download anything.
> Most of the time either a soft or a hard lockup is detected, but not
> always, although the freeze always occurs.
>
> This is the kernel log with lockdep enabled (although sometimes the
> problem does not occur with lockdep enabled):
> https://gist.github.com/jprvita/3aa2c0c9a66793e1fad1
>
> I have the laptop where this happens as a test machine sitting on my
> desk, so I'm available to test any patches or gather more information
> if needed. Please advise on how I can help debugging this further.

I cannot duplicate your result, and neither can the Realtek team; however, I 
have prepared and attached a patch to temporarily re-add the interrupt clear 
routine for rtl8821ae. Please try it and report the results.

Larry



[-- Attachment #2: 0001-rtlwifi-rtl8821ae-Trial-patch-to-reinstall-interrupt.patch --]
[-- Type: text/x-patch, Size: 1523 bytes --]

>From 97ecd2789dc71b158467fc57d0326641a4581f0d Mon Sep 17 00:00:00 2001
From: Larry Finger <Larry.Finger@lwfinger.net>
Date: Thu, 1 Oct 2015 10:37:49 -0500
Subject: [PATCH] rtlwifi: rtl8821ae: Trial patch to reinstall interrupt clear
 routine

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
---
 drivers/net/wireless/rtlwifi/rtl8821ae/hw.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
index b7f18e21..6d2caa8 100644
--- a/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
+++ b/drivers/net/wireless/rtlwifi/rtl8821ae/hw.c
@@ -2253,11 +2253,27 @@ void rtl8821ae_set_qos(struct ieee80211_hw *hw, int aci)
 	}
 }
 
+static void rtl8821ae_clear_interrupt(struct ieee80211_hw *hw)
+{
+	struct rtl_priv *rtlpriv = rtl_priv(hw);
+	u32 tmp = rtl_read_dword(rtlpriv, REG_HISR);
+
+	rtl_write_dword(rtlpriv, REG_HISR, tmp);
+
+	tmp = rtl_read_dword(rtlpriv, REG_HISRE);
+	rtl_write_dword(rtlpriv, REG_HISRE, tmp);
+
+	tmp = rtl_read_dword(rtlpriv, REG_HSISR);
+	rtl_write_dword(rtlpriv, REG_HSISR, tmp);
+}
+
 void rtl8821ae_enable_interrupt(struct ieee80211_hw *hw)
 {
 	struct rtl_priv *rtlpriv = rtl_priv(hw);
 	struct rtl_pci *rtlpci = rtl_pcidev(rtl_pcipriv(hw));
 
+	rtl8821ae_clear_interrupt(hw);/*clear it here first*/
+
 	rtl_write_dword(rtlpriv, REG_HIMR, rtlpci->irq_mask[0] & 0xFFFFFFFF);
 	rtl_write_dword(rtlpriv, REG_HIMRE, rtlpci->irq_mask[1] & 0xFFFFFFFF);
 	rtlpci->irq_enabled = true;
-- 
2.1.4


  reply	other threads:[~2015-10-01 15:42 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-01 13:17 rtl8821ae bisected regression between 4.1 and 4.2 João Paulo Rechi Vita
2015-10-01 15:42 ` Larry Finger [this message]
2015-10-01 21:07   ` João Paulo Rechi Vita

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=560D5455.8060400@lwfinger.net \
    --to=larry.finger@lwfinger.net \
    --cc=drake@endlessm.com \
    --cc=jprvita@gmail.com \
    --cc=kvalo@codeaurora.org \
    --cc=linux-wireless@vger.kernel.org \
    --cc=shaofu@realtek.com \
    --cc=stable@vger.kernel.org \
    --cc=vincent_fann@realtek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.