From: Larry Finger <Larry.Finger@lwfinger.net>
To: Alexandre Oliva <oliva@gnu.org>, linux-wireless@vger.kernel.org
Subject: Re: RTL8187B is racy
Date: Tue, 22 Oct 2013 10:32:36 -0500 [thread overview]
Message-ID: <52669A94.3070600@lwfinger.net> (raw)
In-Reply-To: <or61sq3q4e.fsf@livre.home>
On 10/21/2013 11:07 PM, Alexandre Oliva wrote:
> It's been at least a year since I first noticed that, on WiFi-busy
> environments such as airports, hotels and Free Software conferences, my
> Yeeloong laptop with a RTL8187B WiFi card will freeze or oops shortly
> after I enable WiFi. This problem doesn't seem to happen when I'm at
> home, probably because of the low WiFi traffic. The problem occurs
> while running 3.11.* and 3.10.* kernels, but not 3.4.* or 3.0.*.
>
> I couldn't find any changes to the rtl8187 module that explain this
> misbehavior, so I suspect it's some new source of parallelism in the
> mac80211 layer that has exposed the lack of synchronization in uses of
> rx_queue and b_tx_status.queue. Indeed, I found many uses of these
> queues that don't take locks to ensure consistency. Unfortunately,
> adding spin locks around all uses causes harder freezes and/or complains
> about scheduling in atomic contexts, depending on which race I hit
> first. Without any changes, the problem I get most often is a crash
> within rtl8187b_status_cb, when skb_unlink attempts to dereference a
> NULL pointer. Testing skb->prev and skb->next before entering the
> branch where the skb is removed seemed to make the error a little bit
> less frequent, but surely not enough for the machine to remain up for
> very long while WiFi is enabled.
>
> Is this a known problem? Any suggestions on what I could try next to
> fix the problem?
No, the problem has not previously been reported. From your description of the
situation where it happens, the problem requires a lot of same channel, same AP
traffic. I will try to duplicate that condition here. Although I have an
RTL8187B device, I seldom use it as the case on the USB stick is falling apart.
I will need to do some repair on it so that it holds together.
After inspecting the code in rtl8187b_status_cb, I did notice that it does a lot
of things that should be done by mac80211. As you have been testing code
modifications, I assume that you will be able to test any patches that I generate.
Larry
next prev parent reply other threads:[~2013-10-22 15:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-22 4:07 RTL8187B is racy Alexandre Oliva
2013-10-22 15:32 ` Larry Finger [this message]
2013-10-22 19:30 ` Alexandre Oliva
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=52669A94.3070600@lwfinger.net \
--to=larry.finger@lwfinger.net \
--cc=linux-wireless@vger.kernel.org \
--cc=oliva@gnu.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox