Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
David S. Miller [Fri, 24 Jul 2009 02:03:51 +0000 (19:03 -0700)]
Conflicts:
drivers/net/wireless/iwmc3200wifi/netdev.c
net/wireless/scan.c

32 files changed:
1  2 
Documentation/connector/cn_test.c
Documentation/connector/ucon.c
MAINTAINERS
drivers/connector/cn_queue.c
drivers/connector/connector.c
drivers/net/arm/at91_ether.c
drivers/net/benet/be_main.c
drivers/net/bnx2x_link.c
drivers/net/can/sja1000/sja1000.c
drivers/net/gianfar.c
drivers/net/hamradio/6pack.c
drivers/net/ixgbe/ixgbe.h
drivers/net/ixgbe/ixgbe_main.c
drivers/net/jazzsonic.c
drivers/net/pcmcia/3c589_cs.c
drivers/net/ucc_geth.c
drivers/net/wireless/ath/ath5k/base.c
drivers/net/wireless/ath/regd.c
drivers/net/wireless/iwlwifi/iwl-agn.c
drivers/net/wireless/iwlwifi/iwl-tx.c
drivers/net/wireless/iwlwifi/iwl3945-base.c
drivers/net/wireless/iwmc3200wifi/netdev.c
drivers/net/wireless/mac80211_hwsim.c
drivers/net/wireless/p54/p54spi.c
drivers/net/wireless/rt2x00/rt2500usb.c
include/linux/rfkill.h
net/ipv4/tcp_output.c
net/mac80211/Kconfig
net/mac80211/tx.c
net/rfkill/core.c
net/wireless/nl80211.c
net/wireless/scan.c

Simple merge
Simple merge
diff --cc MAINTAINERS
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -156,10 -151,8 +156,10 @@@ void iwm_if_free(struct iwm_priv *iwm
                return;
  
        free_netdev(iwm_to_ndev(iwm));
-       iwm_wdev_free(iwm);
        iwm_priv_deinit(iwm);
 +      kfree(iwm->umac_profile);
 +      iwm->umac_profile = NULL;
+       iwm_wdev_free(iwm);
  }
  
  int iwm_if_add(struct iwm_priv *iwm)
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
@@@ -1035,9 -1022,10 +1035,10 @@@ static int nl80211_get_key(struct sk_bu
  
   nla_put_failure:
        err = -ENOBUFS;
+  free_msg:
        nlmsg_free(msg);
   out:
 -      cfg80211_put_dev(drv);
 +      cfg80211_unlock_rdev(rdev);
        dev_put(dev);
   unlock_rtnl:
        rtnl_unlock();
@@@ -48,10 -35,8 +48,8 @@@ void __cfg80211_scan_done(struct work_s
        else
                nl80211_send_scan_done(wiphy_to_dev(request->wiphy), dev);
  
-       wiphy_to_dev(request->wiphy)->scan_req = NULL;
  #ifdef CONFIG_WIRELESS_EXT
 -      if (!aborted) {
 +      if (!request->aborted) {
                memset(&wrqu, 0, sizeof(wrqu));
  
                wireless_send_event(dev, SIOCGIWSCAN, &wrqu, NULL);
        dev_put(dev);
  
   out:
 +      cfg80211_unlock_rdev(rdev);
+       wiphy_to_dev(request->wiphy)->scan_req = NULL;
        kfree(request);
  }
 +
 +void cfg80211_scan_done(struct cfg80211_scan_request *request, bool aborted)
 +{
 +      struct net_device *dev = dev_get_by_index(&init_net, request->ifidx);
 +      if (WARN_ON(!dev)) {
 +              kfree(request);
 +              return;
 +      }
 +
 +      WARN_ON(request != wiphy_to_dev(request->wiphy)->scan_req);
 +
 +      request->aborted = aborted;
 +      schedule_work(&wiphy_to_dev(request->wiphy)->scan_done_wk);
 +      dev_put(dev);
 +}
  EXPORT_SYMBOL(cfg80211_scan_done);
  
  static void bss_release(struct kref *ref)