unregister_netdev(dev);
        remove_proc_entry("driver/atmel", NULL);
        free_irq(dev->irq, dev);
 -      if (priv->firmware)
 -              kfree(priv->firmware);
 +      kfree(priv->firmware);
-       if (freeres) {
-               /* PCMCIA frees this stuff, so only for PCI */
-               release_region(dev->base_addr, 64);
-         }
+       release_region(dev->base_addr, 32);
        free_netdev(dev);
  }
  
        } 
  }
  
-  
- static void send_authentication_request(struct atmel_private *priv, u8 *challenge, int challenge_len)
+ 
+ static void send_authentication_request(struct atmel_private *priv, u16 system, u8 *challenge, int challenge_len)
  {
 -      struct ieee80211_hdr header;
 +      struct ieee80211_hdr_4addr header;
        struct auth_body auth;
        
        header.frame_ctl = cpu_to_le16(IEEE80211_FTYPE_MGMT | IEEE80211_STYPE_AUTH);