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