On 06-12-15 16:39 Chris wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi there,
> 
> I'll apologise now, this is the first kernel-related issue i've ever
> experienced, so I may be doing this wrong or missing something :).
> 
> I recently downloaded and compiled 2.6.20-rc1 and set it up nicely with
> my zd1211 card (Addon ADD-GWU180) and now the kernel oops's on boot in
> normal mode, or when issuing "iwconfig eth1 essid essid_name" in
> recovery mode. From the information it spews out at the time, it looks
> like possibly a ieee80211softmac issue, but it doesn't happen with an
> rt2570 card, and I thought it best to check with you first.
> 
> Hopefully all the information you need is included below, if not, i'll
> be happy to provide anything else you need.
> 
> Thanks in advance.

This is a bug resulting from the changes in the API. I have fixed
that last Sunday.

Here is the patch:

[PATCH] ieee80211softmac: Fix direct calls to ieee80211softmac_assoc_work

The signature of work functions changed recently from a context
pointer to the work structure pointer. This caused a problem in
the ieee80211softmac code, because the work function has  been
called directly with a parameter explicitly casted to (void*).
This compiled correctly but resulted in a softlock, because the
mutex_lock has been executed at the wrong memory address. The
patch fixes the problem. Softmac works again.

Signed-off-by: Ulrich Kunitz <[EMAIL PROTECTED]>
---
 net/ieee80211/softmac/ieee80211softmac_assoc.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/net/ieee80211/softmac/ieee80211softmac_assoc.c 
b/net/ieee80211/softmac/ieee80211softmac_assoc.c
index eec1a1d..a824852 100644
--- a/net/ieee80211/softmac/ieee80211softmac_assoc.c
+++ b/net/ieee80211/softmac/ieee80211softmac_assoc.c
@@ -167,7 +167,7 @@ static void
 ieee80211softmac_assoc_notify_scan(struct net_device *dev, int event_type, 
void *context)
 {
        struct ieee80211softmac_device *mac = ieee80211_priv(dev);
-       ieee80211softmac_assoc_work((void*)mac);
+       ieee80211softmac_assoc_work(&mac->associnfo.work.work);
 }
 
 static void
@@ -177,7 +177,7 @@ ieee80211softmac_assoc_notify_auth(struc
 
        switch (event_type) {
        case IEEE80211SOFTMAC_EVENT_AUTHENTICATED:
-               ieee80211softmac_assoc_work((void*)mac);
+               ieee80211softmac_assoc_work(&mac->associnfo.work.work);
                break;
        case IEEE80211SOFTMAC_EVENT_AUTH_FAILED:
        case IEEE80211SOFTMAC_EVENT_AUTH_TIMEOUT:
@@ -438,7 +438,7 @@ ieee80211softmac_try_reassoc(struct ieee
 
        spin_lock_irqsave(&mac->lock, flags);
        mac->associnfo.associating = 1;
-       schedule_work(&mac->associnfo.work);
+       schedule_delayed_work(&mac->associnfo.work, 0);
        spin_unlock_irqrestore(&mac->lock, flags);
 }
 
-- 
1.4.1

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Zd1211-devs mailing list - http://zd1211.ath.cx/
Unsubscribe: https://lists.sourceforge.net/lists/listinfo/zd1211-devs

Reply via email to