[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <f7848160910301622t2cf43b5bo5ffeda03ec2cdbfe@mail.gmail.com>
Date: Fri, 30 Oct 2009 19:22:27 -0400
From: Parag Warudkar <parag.lkml@...il.com>
To: Johannes Berg <johannes@...solutions.net>
Cc: LKML <linux-kernel@...r.kernel.org>, linux-wireless@...r.kernel.org
Subject: Re: OOPS in cfg80211_conn_work
On Friday, October 30, 2009, Johannes Berg <johannes@...solutions.net> wrote:
> On Fri, 2009-10-30 at 06:57 -0400, Parag Warudkar wrote:
>>
>> On Fri, 30 Oct 2009, Johannes Berg wrote:
>>
>> > On Thu, 2009-10-29 at 19:17 -0400, Parag Warudkar wrote:
>> > > Oct 29 18:59:06 parag-laptop kernel: [ 143.180037] wlan0:
>> > > deauthenticating from 00:16:01:d6:6f:12 by local choice (reason=3)
>> > > Oct 29 18:59:06 parag-laptop kernel: [ 143.181137] wlan0: direct
>> > > probe to AP 00:16:01:d6:6f:12 (try 1)
>> >
>> > sorry, I can't read this log. please provide a non-wrapped version
>> >
>> How does this look? (Sorry sent it in a rush earlier.)
>> Below also is a disassembly of cfg80211_conn_work.
>
> Thanks. I was going to ask for disassembly but you preempted me, I like
> that :)
>
> Since you say you can easily reproduce this, can you try the patch
> below?
>
> johannes
>
> ---
> net/wireless/sme.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> --- wireless-testing.orig/net/wireless/sme.c 2009-10-30 12:48:09.000000000 +0100
> +++ wireless-testing/net/wireless/sme.c 2009-10-30 12:48:41.000000000 +0100
> @@ -165,7 +165,7 @@ void cfg80211_conn_work(struct work_stru
> struct cfg80211_registered_device *rdev =
> container_of(work, struct cfg80211_registered_device, conn_work);
> struct wireless_dev *wdev;
> - u8 bssid[ETH_ALEN];
> + u8 bssid_buf[ETH_ALEN], *bssid = NULL;
>
> rtnl_lock();
> cfg80211_lock_rdev(rdev);
> @@ -181,7 +181,10 @@ void cfg80211_conn_work(struct work_stru
> wdev_unlock(wdev);
> continue;
> }
> - memcpy(bssid, wdev->conn->params.bssid, ETH_ALEN);
> + if (wdev->conn->params.bssid) {
> + memcpy(bssid_buf, wdev->conn->params.bssid, ETH_ALEN);
> + bssid = bssid_buf;
> + }
> if (cfg80211_conn_do_work(wdev))
> __cfg80211_connect_result(
> wdev->netdev, bssid,
>
>
Seems to have fixed it.
Thanks Johannes.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists