On Monday 11 February 2008 03:14:57 David Cohen wrote:
> On Feb 10, 2008 9:40 PM, Pavel Roskin <[EMAIL PROTECTED]> wrote:
> > On Sun, 2008-02-10 at 17:28 -0400, David Cohen wrote:
> > > Hi all,
> > >
> > > I'm here again reporting another possible problem with my wireless
> > > card and b43 driver. Please don't bite me this time, I promise I'm
> > > sending all useful inputs :D
> > > Well, the problem is:
> > >  - After boot my laptop, the wireless card is not connected to my wifi
> > > network. But if I just type "sudo iwlist scan", then it connects.
> > >  - The same problem does not occur if I use ndiswrapper or another 
> > > laptops.
> >
> > I believe it's a feature of mac80211.  It only scans for APs under some
> > circumstances.  Setting ESSID triggers scanning.  I suggest that you do
> > it in this order:
> >
> > bring the interface up
> > set the WEP key
> > set the ESSID
> 
> Hi,
> 
> I tried this, but it didn't work also.
> 
> >
> > By the way, your AP is set for "shared key" authentication.  It delays
> > authentication because mac80211 tries "open system" first and fails.
> 
> I can wait for 5 minutes and it still doesn't authenticate.
> The weird point is it does not occur with ndiswrapper or with other
> linux laptop.
> 
> > Even without that step, shared key authentication needs 4 packets to be
> > sent, rather than 2 for open system authentication.  It's believed that
> > "shared key" is even less secure than "open system".  See e.g.
> > http://www.networkworld.com/research/2002/0909wepprimer.html
> 
> It's just a home network :) . But thanks anyway, it's useful to know.
> 
> Regards,
> 
> David Cohen

Can you try this patch?


Index: wireless-2.6/net/mac80211/ieee80211.c
===================================================================
--- wireless-2.6.orig/net/mac80211/ieee80211.c  2008-02-08 22:54:22.000000000 
+0100
+++ wireless-2.6/net/mac80211/ieee80211.c       2008-02-10 14:07:23.000000000 
+0100
@@ -172,12 +172,13 @@ static inline int identical_mac_addr_all
 static int ieee80211_open(struct net_device *dev)
 {
        struct ieee80211_sub_if_data *sdata, *nsdata;
        struct ieee80211_local *local = wdev_priv(dev->ieee80211_ptr);
        struct ieee80211_if_init_conf conf;
        int res;
+       bool need_hw_reconfig = 0;
 
        sdata = IEEE80211_DEV_TO_SUB_IF(dev);
 
        /* we hold the RTNL here so can safely walk the list */
        list_for_each_entry(nsdata, &local->interfaces, list) {
                struct net_device *ndev = nsdata->dev;
@@ -225,13 +226,13 @@ static int ieee80211_open(struct net_dev
        if (local->open_count == 0) {
                res = 0;
                if (local->ops->start)
                        res = local->ops->start(local_to_hw(local));
                if (res)
                        return res;
-               ieee80211_hw_config(local);
+               need_hw_reconfig = 1;
                ieee80211_led_radio(local, local->hw.conf.radio_enabled);
        }
 
        switch (sdata->vif.type) {
        case IEEE80211_IF_TYPE_VLAN:
                list_add(&sdata->u.vlan.list, &sdata->u.vlan.ap->u.ap.vlans);
@@ -302,12 +303,14 @@ static int ieee80211_open(struct net_dev
                atomic_inc(&local->iff_allmultis);
 
        if (sdata->flags & IEEE80211_SDATA_PROMISC)
                atomic_inc(&local->iff_promiscs);
 
        local->open_count++;
+       if (need_hw_reconfig)
+               ieee80211_hw_config(local);
 
        netif_start_queue(dev);
 
        return 0;
 }

-- 
Greetings Michael.
_______________________________________________
Bcm43xx-dev mailing list
Bcm43xx-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to