diff --git a/net/wireless/core.c b/net/wireless/core.c
index 83ec719..c6813be 100644
--- a/net/wireless/core.c
+++ b/net/wireless/core.c
@@ -171,12 +171,6 @@
 	return drv;
 }
 
-void cfg80211_put_dev(struct cfg80211_registered_device *drv)
-{
-	BUG_ON(IS_ERR(drv));
-	mutex_unlock(&drv->mtx);
-}
-
 /* requires cfg80211_mutex to be held */
 int cfg80211_dev_rename(struct cfg80211_registered_device *rdev,
 			char *newname)
diff --git a/net/wireless/core.h b/net/wireless/core.h
index 4554453..92da612b 100644
--- a/net/wireless/core.h
+++ b/net/wireless/core.h
@@ -146,7 +146,7 @@
  * If successful, it returns non-NULL and also locks
  * the driver's mutex!
  *
- * This means that you need to call cfg80211_put_dev()
+ * This means that you need to call cfg80211_unlock_rdev()
  * before being allowed to acquire &cfg80211_mutex!
  *
  * This is necessary because we need to lock the global
@@ -170,7 +170,11 @@
 extern struct cfg80211_registered_device *
 cfg80211_get_dev_from_ifindex(int ifindex);
 
-extern void cfg80211_put_dev(struct cfg80211_registered_device *drv);
+static inline void cfg80211_unlock_rdev(struct cfg80211_registered_device *drv)
+{
+	BUG_ON(IS_ERR(drv) || !drv);
+	mutex_unlock(&drv->mtx);
+}
 
 /* free object */
 extern void cfg80211_dev_free(struct cfg80211_registered_device *drv);
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 44c520c..df22048 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -411,14 +411,14 @@
 	if (nl80211_send_wiphy(msg, info->snd_pid, info->snd_seq, 0, dev) < 0)
 		goto out_free;
 
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
 
 	return genlmsg_unicast(msg, info->snd_pid);
 
  out_free:
 	nlmsg_free(msg);
  out_err:
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
 	return -ENOBUFS;
 }
 
@@ -737,7 +737,7 @@
 		goto out_free;
 
 	dev_put(netdev);
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
 
 	return genlmsg_unicast(msg, info->snd_pid);
 
@@ -745,7 +745,7 @@
 	nlmsg_free(msg);
  out_err:
 	dev_put(netdev);
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
 	return -ENOBUFS;
 }
 
@@ -853,7 +853,7 @@
 
  unlock:
 	dev_put(dev);
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
  unlock_rtnl:
 	rtnl_unlock();
 	return err;
@@ -906,7 +906,7 @@
 		type, err ? NULL : &flags, &params);
 
  unlock:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
  unlock_rtnl:
 	rtnl_unlock();
 	return err;
@@ -934,7 +934,7 @@
 	err = drv->ops->del_virtual_intf(&drv->wiphy, ifindex);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
  unlock_rtnl:
 	rtnl_unlock();
 	return err;
@@ -1037,7 +1037,7 @@
 	err = -ENOBUFS;
 	nlmsg_free(msg);
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  unlock_rtnl:
 	rtnl_unlock();
@@ -1097,7 +1097,7 @@
 #endif
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 
  unlock_rtnl:
@@ -1163,7 +1163,7 @@
 	err = drv->ops->add_key(&drv->wiphy, dev, key_idx, mac_addr, &params);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  unlock_rtnl:
 	rtnl_unlock();
@@ -1211,7 +1211,7 @@
 #endif
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 
  unlock_rtnl:
@@ -1306,7 +1306,7 @@
 	err = call(&drv->wiphy, dev, &params);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  unlock_rtnl:
 	rtnl_unlock();
@@ -1338,7 +1338,7 @@
 	err = drv->ops->del_beacon(&drv->wiphy, dev);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  unlock_rtnl:
 	rtnl_unlock();
@@ -1572,7 +1572,7 @@
 	cb->args[1] = sta_idx;
 	err = skb->len;
  out_err:
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
  out_rtnl:
 	rtnl_unlock();
 
@@ -1624,7 +1624,7 @@
  out_free:
 	nlmsg_free(msg);
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -1760,7 +1760,7 @@
  out:
 	if (params.vlan)
 		dev_put(params.vlan);
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -1865,7 +1865,7 @@
  out:
 	if (params.vlan)
 		dev_put(params.vlan);
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -1904,7 +1904,7 @@
 	err = drv->ops->del_station(&drv->wiphy, dev, mac_addr);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2035,7 +2035,7 @@
 	cb->args[1] = path_idx;
 	err = skb->len;
  out_err:
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
  out_rtnl:
 	rtnl_unlock();
 
@@ -2093,7 +2093,7 @@
  out_free:
 	nlmsg_free(msg);
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2142,7 +2142,7 @@
 	err = drv->ops->change_mpath(&drv->wiphy, dev, dst, next_hop);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2190,7 +2190,7 @@
 	err = drv->ops->add_mpath(&drv->wiphy, dev, dst, next_hop);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2222,7 +2222,7 @@
 	err = drv->ops->del_mpath(&drv->wiphy, dev, dst);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2278,7 +2278,7 @@
 	err = drv->ops->change_bss(&drv->wiphy, dev, &params);
 
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2444,7 +2444,7 @@
 	err = -EMSGSIZE;
  out:
 	/* Cleanup */
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2550,7 +2550,7 @@
 
  out:
 	/* cleanup */
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -2890,7 +2890,7 @@
 		kfree(request);
 	}
  out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
  out_rtnl:
 	rtnl_unlock();
@@ -3007,7 +3007,7 @@
 
 	cb->args[1] = idx;
 	err = skb->len;
-	cfg80211_put_dev(dev);
+	cfg80211_unlock_rdev(dev);
  out_put_netdev:
 	dev_put(netdev);
 
@@ -3112,7 +3112,7 @@
 				 ssid, ssid_len, ie, ie_len);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3259,7 +3259,7 @@
 					  &crypto);
 
 out:
-	cfg80211_put_dev(rdev);
+	cfg80211_unlock_rdev(rdev);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3321,7 +3321,7 @@
 	err = cfg80211_mlme_deauth(drv, dev, bssid, ie, ie_len, reason_code);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3383,7 +3383,7 @@
 	err = cfg80211_mlme_disassoc(drv, dev, bssid, ie, ie_len, reason_code);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3464,7 +3464,7 @@
 	err = cfg80211_join_ibss(drv, dev, &ibss);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3501,7 +3501,7 @@
 	err = cfg80211_leave_ibss(drv, dev, false);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3538,7 +3538,7 @@
 		rdev->testmode_info = NULL;
 	}
 
-	cfg80211_put_dev(rdev);
+	cfg80211_unlock_rdev(rdev);
 
  unlock_rtnl:
 	rtnl_unlock();
@@ -3707,7 +3707,7 @@
 	err = cfg80211_connect(drv, dev, &connect);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
@@ -3748,7 +3748,7 @@
 	err = cfg80211_disconnect(drv, dev, reason, true);
 
 out:
-	cfg80211_put_dev(drv);
+	cfg80211_unlock_rdev(drv);
 	dev_put(dev);
 unlock_rtnl:
 	rtnl_unlock();
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 9253994..1625faf 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -28,8 +28,6 @@
 	if (!dev)
 		goto out;
 
-	WARN_ON(request != wiphy_to_dev(request->wiphy)->scan_req);
-
 	/*
 	 * This must be before sending the other events!
 	 * Otherwise, wpa_supplicant gets completely confused with
@@ -636,7 +634,7 @@
 	} else
 		nl80211_send_scan_start(rdev, dev);
  out:
-	cfg80211_put_dev(rdev);
+	cfg80211_unlock_rdev(rdev);
 	return err;
 }
 EXPORT_SYMBOL_GPL(cfg80211_wext_siwscan);
@@ -945,7 +943,7 @@
 	}
 
  out:
-	cfg80211_put_dev(rdev);
+	cfg80211_unlock_rdev(rdev);
 	return res;
 }
 EXPORT_SYMBOL_GPL(cfg80211_wext_giwscan);
