--- a/drivers/gpu/drm/i915/i915_gem.c
+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -4185,9 +4185,14 @@ i915_gem_init_hw(struct drm_device *dev)
+@@ -4178,9 +4178,14 @@ i915_gem_init_hw(struct drm_device *dev)
drm_i915_private_t *dev_priv = dev->dev_private;
int ret;
static long i915_gem_purge(struct drm_i915_private *dev_priv, long target);
static long i915_gem_shrink_all(struct drm_i915_private *dev_priv);
static void i915_gem_object_truncate(struct drm_i915_gem_object *obj);
-@@ -4397,8 +4402,12 @@ i915_gem_load(struct drm_device *dev)
+@@ -4390,8 +4395,12 @@ i915_gem_load(struct drm_device *dev)
dev_priv->mm.interruptible = true;
dev_priv->mm.inactive_shrinker.seeks = DEFAULT_SEEKS;
register_shrinker(&dev_priv->mm.inactive_shrinker);
}
-@@ -4621,8 +4630,14 @@ static bool mutex_is_locked_by(struct mu
+@@ -4614,8 +4623,14 @@ static bool mutex_is_locked_by(struct mu
#endif
}
{
struct drm_i915_private *dev_priv =
container_of(shrinker,
-@@ -4631,7 +4646,12 @@ i915_gem_inactive_count(struct shrinker
+@@ -4624,7 +4639,12 @@ i915_gem_inactive_count(struct shrinker
struct drm_device *dev = dev_priv->dev;
struct drm_i915_gem_object *obj;
bool unlock = true;
if (!mutex_trylock(&dev->struct_mutex)) {
if (!mutex_is_locked_by(&dev->struct_mutex, current))
-@@ -4643,6 +4663,17 @@ i915_gem_inactive_count(struct shrinker
+@@ -4636,6 +4656,17 @@ i915_gem_inactive_count(struct shrinker
unlock = false;
}
count = 0;
list_for_each_entry(obj, &dev_priv->mm.unbound_list, global_list)
if (obj->pages_pin_count == 0)
-@@ -4656,6 +4687,7 @@ i915_gem_inactive_count(struct shrinker
+@@ -4649,6 +4680,7 @@ i915_gem_inactive_count(struct shrinker
return count;
}
static unsigned long
i915_gem_inactive_scan(struct shrinker *shrinker, struct shrink_control *sc)
{
-@@ -4689,3 +4721,4 @@ i915_gem_inactive_scan(struct shrinker *
+@@ -4682,3 +4714,4 @@ i915_gem_inactive_scan(struct shrinker *
mutex_unlock(&dev->struct_mutex);
return freed;
}
--- a/drivers/net/wireless/ipw2x00/ipw2200.c
+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
-@@ -11680,7 +11680,7 @@ static int ipw_prom_alloc(struct ipw_pri
+@@ -11681,7 +11681,7 @@ static int ipw_prom_alloc(struct ipw_pri
memcpy(priv->prom_net_dev->dev_addr, priv->mac_addr, ETH_ALEN);
priv->prom_net_dev->type = ARPHRD_IEEE80211_RADIOTAP;
priv->prom_priv->ieee->iw_mode = IW_MODE_MONITOR;
SET_NETDEV_DEV(priv->prom_net_dev, &priv->pci_dev->dev);
-@@ -11818,7 +11818,7 @@ static int ipw_pci_probe(struct pci_dev
+@@ -11819,7 +11819,7 @@ static int ipw_pci_probe(struct pci_dev
priv->ieee->perfect_rssi = -20;
priv->ieee->worst_rssi = -85;
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -1571,6 +1571,7 @@ static int nl80211_dump_wiphy(struct sk_
- &cb->args[2],
- &cb->args[3]);
+@@ -1597,6 +1597,7 @@ static int nl80211_dump_wiphy(struct sk_
+ cb->nlh->nlmsg_seq,
+ NLM_F_MULTI, state);
if (ret < 0) {
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)
/*
* If sending the wiphy data didn't fit (ENOBUFS
* or EMSGSIZE returned), this SKB is still
-@@ -1591,6 +1592,7 @@ static int nl80211_dump_wiphy(struct sk_
+@@ -1617,6 +1618,7 @@ static int nl80211_dump_wiphy(struct sk_
rtnl_unlock();
return 1;
}
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
-@@ -1370,7 +1370,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -1376,7 +1376,9 @@ static struct usb_driver ath9k_hif_usb_d
.reset_resume = ath9k_hif_usb_resume,
#endif
.id_table = ath9k_hif_usb_ids,
--- a/include/net/cfg80211.h
+++ b/include/net/cfg80211.h
-@@ -2615,6 +2615,9 @@ struct wiphy_wowlan_support {
+@@ -2645,6 +2645,9 @@ struct wiphy_wowlan_support {
struct wiphy {
/* assign these fields before you register the wiphy */
iwl_pcie_free_ict(trans);
pci_disable_msi(trans_pcie->pci_dev);
-@@ -1581,9 +1590,16 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
+@@ -1582,9 +1591,16 @@ struct iwl_trans *iwl_trans_pcie_alloc(s
if (iwl_pcie_alloc_ict(trans))
goto out_free_cmd_pool;
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
-@@ -6063,13 +6063,24 @@ static void wlcore_nvs_cb(const struct f
+@@ -5931,13 +5931,24 @@ static void wlcore_nvs_cb(const struct f
wl->platform_quirks = pdata->platform_quirks;
wl->if_ops = pdev_data->if_ops;
if (ret < 0) {
wl1271_error("request_irq() failed: %d", ret);
goto out_free_nvs;
-@@ -6138,7 +6149,11 @@ out_unreg:
+@@ -5983,7 +5994,11 @@ out_unreg:
wl1271_unregister_hw(wl);
out_irq:
out_free_nvs:
kfree(wl->nvs);
-@@ -6184,7 +6199,12 @@ int wlcore_remove(struct platform_device
+@@ -6029,7 +6044,12 @@ int wlcore_remove(struct platform_device
disable_irq_wake(wl->irq);
}
wl1271_unregister_hw(wl);
--- a/drivers/net/wireless/ath/ath9k/pci.c
+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -339,6 +339,9 @@ static int ath_pci_resume(struct device
+@@ -411,6 +411,9 @@ static int ath_pci_resume(struct device
return 0;
}
static SIMPLE_DEV_PM_OPS(ath9k_pm_ops, ath_pci_suspend, ath_pci_resume);
#define ATH9K_PM_OPS (&ath9k_pm_ops)
-@@ -357,7 +360,12 @@ static struct pci_driver ath_pci_driver
+@@ -429,7 +432,12 @@ static struct pci_driver ath_pci_driver
.id_table = ath_pci_id_table,
.probe = ath_pci_probe,
.remove = ath_pci_remove,
--- a/drivers/net/wireless/ti/wlcore/main.c
+++ b/drivers/net/wireless/ti/wlcore/main.c
-@@ -2952,11 +2952,20 @@ struct wl1271_filter_params {
+@@ -2939,11 +2939,20 @@ struct wl1271_filter_params {
u8 mc_list[ACX_MC_ADDRESS_GROUP_MAX][ETH_ALEN];
};
fp = kzalloc(sizeof(*fp), GFP_ATOMIC);
if (!fp) {
-@@ -2965,16 +2974,40 @@ static u64 wl1271_op_prepare_multicast(s
+@@ -2952,16 +2961,40 @@ static u64 wl1271_op_prepare_multicast(s
}
/* update multicast filtering parameters */
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -2660,14 +2660,24 @@ struct ieee80211_ops {
+@@ -2662,14 +2662,24 @@ struct ieee80211_ops {
void (*stop_ap)(struct ieee80211_hw *hw, struct ieee80211_vif *vif);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
--- a/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
+++ b/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
-@@ -70,7 +70,7 @@ static bool
+@@ -70,7 +70,7 @@ bool
brcmf_pm_resume_error(struct brcmf_sdio_dev *sdiodev)
{
bool is_err = false;
#endif
return is_err;
@@ -79,7 +79,7 @@ brcmf_pm_resume_error(struct brcmf_sdio_
- static void
+ void
brcmf_pm_resume_wait(struct brcmf_sdio_dev *sdiodev, wait_queue_head_t *wq)
{
-#ifdef CONFIG_PM_SLEEP
int retry = 0;
while (atomic_read(&sdiodev->suspend) && retry++ != 30)
wait_event_timeout(*wq, false, HZ/100);
-@@ -516,7 +516,7 @@ static void brcmf_ops_sdio_remove(struct
+@@ -406,7 +406,7 @@ static void brcmf_ops_sdio_remove(struct
brcmf_dbg(SDIO, "Exit\n");
}
static int brcmf_sdio_suspend(struct device *dev)
{
mmc_pm_flag_t sdio_flags;
-@@ -566,7 +566,7 @@ static struct sdio_driver brcmf_sdmmc_dr
+@@ -456,7 +456,7 @@ static struct sdio_driver brcmf_sdmmc_dr
.remove = brcmf_ops_sdio_remove,
.name = BRCMFMAC_SDIO_PDATA_NAME,
.id_table = brcmf_sdmmc_ids,
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -2258,7 +2258,7 @@ static int nl80211_valid_4addr(struct cf
+@@ -2296,7 +2296,7 @@ static int nl80211_valid_4addr(struct cf
enum nl80211_iftype iftype)
{
if (!use_4addr) {
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -5668,7 +5668,9 @@ static int nl80211_dump_scan(struct sk_b
+@@ -5703,7 +5703,9 @@ static int nl80211_dump_scan(struct sk_b
spin_lock_bh(&rdev->bss_lock);
cfg80211_bss_expire(rdev);
--- a/drivers/net/wireless/mwifiex/init.c
+++ b/drivers/net/wireless/mwifiex/init.c
-@@ -285,8 +285,10 @@ void mwifiex_set_trans_start(struct net_
+@@ -288,8 +288,10 @@ void mwifiex_set_trans_start(struct net_
{
int i;
--- a/drivers/bluetooth/ath3k.c
+++ b/drivers/bluetooth/ath3k.c
-@@ -473,7 +473,9 @@ static struct usb_driver ath3k_driver =
+@@ -475,7 +475,9 @@ static struct usb_driver ath3k_driver =
.probe = ath3k_probe,
.disconnect = ath3k_disconnect,
.id_table = ath3k_table,
--- a/drivers/bluetooth/btusb.c
+++ b/drivers/bluetooth/btusb.c
-@@ -1623,7 +1623,9 @@ static struct usb_driver btusb_driver =
+@@ -1624,7 +1624,9 @@ static struct usb_driver btusb_driver =
#endif
.id_table = btusb_table,
.supports_autosuspend = 1,
--- a/drivers/net/wireless/ath/ath9k/hif_usb.c
+++ b/drivers/net/wireless/ath/ath9k/hif_usb.c
-@@ -1373,7 +1373,9 @@ static struct usb_driver ath9k_hif_usb_d
+@@ -1379,7 +1379,9 @@ static struct usb_driver ath9k_hif_usb_d
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27))
.soft_unbind = 1,
#endif
--- a/drivers/net/wireless/rt2x00/rt73usb.c
+++ b/drivers/net/wireless/rt2x00/rt73usb.c
-@@ -2547,7 +2547,9 @@ static struct usb_driver rt73usb_driver
+@@ -2548,7 +2548,9 @@ static struct usb_driver rt73usb_driver
.suspend = rt2x00usb_suspend,
.resume = rt2x00usb_resume,
.reset_resume = rt2x00usb_resume,
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
-@@ -7775,7 +7775,7 @@ static int nl80211_parse_wowlan_tcp(stru
+@@ -7815,7 +7815,7 @@ static int nl80211_parse_wowlan_tcp(stru
port = nla_get_u16(tb[NL80211_WOWLAN_TCP_SRC_PORT]);
else
port = 0;