OK thank you - I have the new 2.6.20 source from kernel.org - and I was
going to apply your combined patch to it as well. Is this fine?




On Mon, 2007-02-05 at 13:52 -0600, Larry Finger wrote:
> Erik Chakravarty wrote:
> > Apple PowerBook 5,4
> > BCM4306
> > Linux 2.6.20-6
> > 
> > After my machine resumes from suspend, I can see that the wireless
> > interface eth11 is up, but it is not connected.
> > 
> > iwconfig shows that all the settings are as they were before - the essid
> > is correctly set etc.
> > 
> > However, I cannot get an IP address from the DHCP server nor ping any
> > machine if I set an IP manually, until I have run
> > 
> > 'iwconfig eth1 essid ....'
> > 
> > to set the router's essid again.
> > 
> > Is this a bcm43xx bug?
> 
> Please try this patch. It forces a reassociation after the resume.
> 
> Larry
> 
> ========
> 
> 
> Index: linux-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> ===================================================================
> --- linux-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> +++ linux-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c
> @@ -4275,6 +4275,7 @@ static int bcm43xx_resume(struct pci_dev
>  {
>       struct net_device *net_dev = pci_get_drvdata(pdev);
>       struct bcm43xx_private *bcm = bcm43xx_priv(net_dev);
> +     struct ieee80211softmac_device *mac = ieee80211_priv(net_dev);
>       int err = 0;
> 
>       dprintk(KERN_INFO PFX "Resuming...\n");
> @@ -4296,6 +4297,9 @@ static int bcm43xx_resume(struct pci_dev
>       }
>       netif_device_attach(net_dev);
> 
> +     if (mac->associnfo.associated)
> +             ieee80211softmac_try_reassoc(mac);
> +
>       dprintk(KERN_INFO PFX "Device resumed.\n");
> 
>       return 0;
> Index: linux-2.6/include/net/ieee80211softmac.h
> ===================================================================
> --- linux-2.6.orig/include/net/ieee80211softmac.h
> +++ linux-2.6/include/net/ieee80211softmac.h
> @@ -254,6 +254,7 @@ struct ieee80211softmac_device {
>  };
> 
>  extern void ieee80211softmac_scan_finished(struct ieee80211softmac_device 
> *sm);
> +extern void ieee80211softmac_try_reassoc(struct ieee80211softmac_device 
> *mac);
> 
>  static inline void * ieee80211softmac_priv(struct net_device *dev)
>  {
> Index: linux-2.6/net/ieee80211/softmac/ieee80211softmac_assoc.c
> ===================================================================
> --- linux-2.6.orig/net/ieee80211/softmac/ieee80211softmac_assoc.c
> +++ linux-2.6/net/ieee80211/softmac/ieee80211softmac_assoc.c
> @@ -441,6 +441,7 @@ ieee80211softmac_try_reassoc(struct ieee
>       schedule_delayed_work(&mac->associnfo.work, 0);
>       spin_unlock_irqrestore(&mac->lock, flags);
>  }
> +EXPORT_SYMBOL_GPL(ieee80211softmac_try_reassoc);
> 
>  int
>  ieee80211softmac_handle_disassoc(struct net_device * dev,
> 
> ============
> 
> Larry
> 

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to