From 0a1c49d42cec55ce053483d294ddf3a01eb5d8c4 Mon Sep 17 00:00:00 2001 From: "Luis R. Rodriguez" Date: Tue, 14 Jun 2011 11:34:34 -0700 Subject: [PATCH] compat-wireless: refresh patches for next-20110614 Signed-off-by: Luis R. Rodriguez --- patches/01-netdev.patch | 16 +++++++------- patches/02-ksize.patch | 4 ++-- patches/03-rfkill.patch | 5 +++-- patches/04-netns.patch | 2 +- patches/06-header-changes.patch | 2 +- patches/08-rename-config-options.patch | 12 +++++----- patches/11-dev-pm-ops.patch | 24 ++++++++++---------- patches/16-bluetooth.patch | 18 +++++++-------- patches/17-netdev-queue.patch | 4 ++-- patches/21-capi-proc_fops.patch | 6 ++--- patches/22-multiqueue.patch | 4 ++-- patches/25-multicast-list_head.patch | 28 ++++++++++++------------ patches/26-sdio-quirks.patch | 8 +++---- patches/29-sdio_no_suspend.patch | 4 ++-- patches/31-backport-sk_add_backlog.patch | 2 +- patches/40-netdev-hw-features.patch | 6 ++--- 16 files changed, 73 insertions(+), 72 deletions(-) diff --git a/patches/01-netdev.patch b/patches/01-netdev.patch index 3b5e33aef3ec..50998e2c71bb 100644 --- a/patches/01-netdev.patch +++ b/patches/01-netdev.patch @@ -92,11 +92,11 @@ without creating a headache on maintenance of the pathes. ndev->needed_tailroom = IEEE80211_ENCRYPT_TAILROOM; +#endif - ieee80211_assign_perm_addr(local, ndev, type); - memcpy(ndev->dev_addr, ndev->perm_addr, ETH_ALEN); + ret = dev_alloc_name(ndev, ndev->name); + if (ret < 0) --- a/drivers/net/b44.c +++ b/drivers/net/b44.c -@@ -2164,7 +2164,7 @@ static int __devinit b44_init_one(struct +@@ -2165,7 +2165,7 @@ static int __devinit b44_init_one(struct bp->rx_pending = B44_DEF_RX_RING_PENDING; bp->tx_pending = B44_DEF_TX_RING_PENDING; @@ -217,7 +217,7 @@ without creating a headache on maintenance of the pathes. wdev->netdev = ndev; --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c -@@ -826,7 +826,7 @@ struct lbs_private *lbs_add_card(void *c +@@ -827,7 +827,7 @@ struct lbs_private *lbs_add_card(void *c wdev->netdev = dev; priv->dev = dev; @@ -228,7 +228,7 @@ without creating a headache on maintenance of the pathes. dev->flags |= IFF_BROADCAST | IFF_MULTICAST; --- a/drivers/net/wireless/libertas/mesh.c +++ b/drivers/net/wireless/libertas/mesh.c -@@ -387,7 +387,7 @@ int lbs_add_mesh(struct lbs_private *pri +@@ -388,7 +388,7 @@ int lbs_add_mesh(struct lbs_private *pri mesh_dev->ml_priv = priv; priv->mesh_dev = mesh_dev; @@ -256,7 +256,7 @@ without creating a headache on maintenance of the pathes. #define LBS_DEB_LEAVE 0x00000002 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c -@@ -1200,7 +1200,7 @@ static const struct net_device_ops hwsim +@@ -1228,7 +1228,7 @@ static const struct net_device_ops hwsim static void hwsim_mon_setup(struct net_device *dev) { @@ -267,7 +267,7 @@ without creating a headache on maintenance of the pathes. dev->tx_queue_len = 0; --- a/drivers/net/wireless/mwifiex/main.c +++ b/drivers/net/wireless/mwifiex/main.c -@@ -668,7 +668,7 @@ static const struct net_device_ops mwifi +@@ -652,7 +652,7 @@ static const struct net_device_ops mwifi static void mwifiex_init_priv_params(struct mwifiex_private *priv, struct net_device *dev) { @@ -336,7 +336,7 @@ without creating a headache on maintenance of the pathes. atl1e_set_ethtool_ops(netdev); --- a/drivers/net/atl1c/atl1c_main.c +++ b/drivers/net/atl1c/atl1c_main.c -@@ -2598,7 +2598,7 @@ static int atl1c_init_netdev(struct net_ +@@ -2600,7 +2600,7 @@ static int atl1c_init_netdev(struct net_ pci_set_drvdata(pdev, netdev); netdev->irq = pdev->irq; diff --git a/patches/02-ksize.patch b/patches/02-ksize.patch index 4b97319f33f4..cd42d9fed39e 100644 --- a/patches/02-ksize.patch +++ b/patches/02-ksize.patch @@ -37,7 +37,7 @@ of the situation. priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC); --- a/net/wireless/scan.c +++ b/net/wireless/scan.c -@@ -502,9 +502,14 @@ cfg80211_bss_update(struct cfg80211_regi +@@ -507,9 +507,14 @@ cfg80211_bss_update(struct cfg80211_regi size_t used = dev->wiphy.bss_priv_size + sizeof(*res); size_t ielen = res->pub.len_proberesp_ies; @@ -52,7 +52,7 @@ of the situation. memcpy(found->pub.proberesp_ies, res->pub.proberesp_ies, ielen); found->pub.len_proberesp_ies = ielen; -@@ -538,9 +543,14 @@ cfg80211_bss_update(struct cfg80211_regi +@@ -543,9 +548,14 @@ cfg80211_bss_update(struct cfg80211_regi (found->pub.information_elements == found->pub.beacon_ies); diff --git a/patches/03-rfkill.patch b/patches/03-rfkill.patch index a13dd9a7a589..88f022d619ea 100644 --- a/patches/03-rfkill.patch +++ b/patches/03-rfkill.patch @@ -30,7 +30,7 @@ This would do the policing from within mac80211. --- a/net/rfkill/Makefile +++ b/net/rfkill/Makefile -@@ -2,7 +2,7 @@ +@@ -2,8 +2,8 @@ # Makefile for the RF switch subsystem. # @@ -41,6 +41,7 @@ This would do the policing from within mac80211. +rfkill_backport-$(CONFIG_RFKILL_BACKPORT_INPUT) += input.o +obj-$(CONFIG_RFKILL_BACKPORT) += rfkill_backport.o obj-$(CONFIG_RFKILL_REGULATOR) += rfkill-regulator.o + obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o --- a/net/rfkill/input.c +++ b/net/rfkill/input.c @@ -232,7 +232,7 @@ static int rfkill_connect(struct input_h @@ -54,7 +55,7 @@ This would do the policing from within mac80211. error = input_register_handle(handle); --- a/net/rfkill/core.c +++ b/net/rfkill/core.c -@@ -658,7 +658,7 @@ static int rfkill_resume(struct device * +@@ -805,7 +805,7 @@ static int rfkill_resume(struct device * } static struct class rfkill_class = { diff --git a/patches/04-netns.patch b/patches/04-netns.patch index b4c5f0782ff3..d7faf4baa6d2 100644 --- a/patches/04-netns.patch +++ b/patches/04-netns.patch @@ -6,7 +6,7 @@ files... --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -4593,7 +4593,9 @@ static int nl80211_wiphy_netns(struct sk +@@ -4657,7 +4657,9 @@ static int nl80211_wiphy_netns(struct sk if (!net_eq(wiphy_net(&rdev->wiphy), net)) err = cfg80211_switch_netns(rdev, net); diff --git a/patches/06-header-changes.patch b/patches/06-header-changes.patch index 6e4ae5670ca3..f311c406e801 100644 --- a/patches/06-header-changes.patch +++ b/patches/06-header-changes.patch @@ -40,7 +40,7 @@ cases. #include --- a/drivers/net/wireless/wl1251/spi.c +++ b/drivers/net/wireless/wl1251/spi.c -@@ -23,6 +23,9 @@ +@@ -24,6 +24,9 @@ #include #include #include diff --git a/patches/08-rename-config-options.patch b/patches/08-rename-config-options.patch index 3fa9c41b03f0..0eb1fb22fffd 100644 --- a/patches/08-rename-config-options.patch +++ b/patches/08-rename-config-options.patch @@ -35,18 +35,18 @@ CONFIG_BT_HIDP does not build with older kernel versions. iwl4965-objs += iwl-4965-lib.o iwl-4965-rx.o iwl-4965-calib.o --- a/drivers/net/wireless/iwlegacy/iwl-dev.h +++ b/drivers/net/wireless/iwlegacy/iwl-dev.h -@@ -1211,7 +1211,7 @@ struct iwl_priv { +@@ -1163,7 +1163,7 @@ struct iwl_priv { } _3945; #endif -#if defined(CONFIG_IWL4965) || defined(CONFIG_IWL4965_MODULE) +#if defined(CONFIG_COMPAT_IWL4965) || defined(CONFIG_COMPAT_IWL4965_MODULE) struct { - /* - * reporting the number of tids has AGG on. 0 means + struct iwl_rx_phy_res last_phy_res; + bool last_phy_res_valid; --- a/drivers/net/wireless/iwlegacy/iwl4965-base.c +++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c -@@ -3563,10 +3563,10 @@ void iwl4965_txq_set_sched(struct iwl_pr +@@ -3212,10 +3212,10 @@ void iwl4965_txq_set_sched(struct iwl_pr /* Hardware specific file defines the PCI IDs table for that hardware module */ static DEFINE_PCI_DEVICE_TABLE(iwl4965_hw_card_ids) = { @@ -69,7 +69,7 @@ CONFIG_BT_HIDP does not build with older kernel versions. zd_rf_al2230.o zd_rf_rf2959.o \ --- a/include/net/bluetooth/bluetooth.h +++ b/include/net/bluetooth/bluetooth.h -@@ -213,7 +213,7 @@ extern void bt_sysfs_cleanup(void); +@@ -214,7 +214,7 @@ extern void bt_sysfs_cleanup(void); extern struct dentry *bt_debugfs; @@ -78,7 +78,7 @@ CONFIG_BT_HIDP does not build with older kernel versions. int l2cap_init(void); void l2cap_exit(void); #else -@@ -227,7 +227,7 @@ static inline void l2cap_exit(void) +@@ -228,7 +228,7 @@ static inline void l2cap_exit(void) } #endif diff --git a/patches/11-dev-pm-ops.patch b/patches/11-dev-pm-ops.patch index 5fe39992f907..acf2dc8c10cd 100644 --- a/patches/11-dev-pm-ops.patch +++ b/patches/11-dev-pm-ops.patch @@ -9,7 +9,7 @@ calls on compat code with only slight modifications. --- a/drivers/net/atl1c/atl1c_main.c +++ b/drivers/net/atl1c/atl1c_main.c -@@ -2878,6 +2878,9 @@ static struct pci_error_handlers atl1c_e +@@ -2880,6 +2880,9 @@ static struct pci_error_handlers atl1c_e static SIMPLE_DEV_PM_OPS(atl1c_pm_ops, atl1c_suspend, atl1c_resume); @@ -19,7 +19,7 @@ calls on compat code with only slight modifications. static struct pci_driver atl1c_driver = { .name = atl1c_driver_name, .id_table = atl1c_pci_tbl, -@@ -2885,7 +2888,12 @@ static struct pci_driver atl1c_driver = +@@ -2887,7 +2890,12 @@ static struct pci_driver atl1c_driver = .remove = __devexit_p(atl1c_remove), .shutdown = atl1c_shutdown, .err_handler = &atl1c_err_handler, @@ -119,7 +119,7 @@ calls on compat code with only slight modifications. int ath_pci_init(void) --- a/drivers/net/wireless/libertas/if_spi.c +++ b/drivers/net/wireless/libertas/if_spi.c -@@ -1253,6 +1253,7 @@ static int __devexit libertas_spi_remove +@@ -1255,6 +1255,7 @@ static int __devexit libertas_spi_remove return 0; } @@ -127,7 +127,7 @@ calls on compat code with only slight modifications. static int if_spi_suspend(struct device *dev) { struct spi_device *spi = to_spi_device(dev); -@@ -1286,6 +1287,7 @@ static const struct dev_pm_ops if_spi_pm +@@ -1288,6 +1289,7 @@ static const struct dev_pm_ops if_spi_pm .suspend = if_spi_suspend, .resume = if_spi_resume, }; @@ -135,7 +135,7 @@ calls on compat code with only slight modifications. static struct spi_driver libertas_spi_driver = { .probe = if_spi_probe, -@@ -1294,7 +1296,9 @@ static struct spi_driver libertas_spi_dr +@@ -1296,7 +1298,9 @@ static struct spi_driver libertas_spi_dr .name = "libertas_spi", .bus = &spi_bus_type, .owner = THIS_MODULE, @@ -147,7 +147,7 @@ calls on compat code with only slight modifications. --- a/drivers/net/wireless/iwlegacy/iwl-core.c +++ b/drivers/net/wireless/iwlegacy/iwl-core.c -@@ -2050,15 +2050,17 @@ int iwl_legacy_pci_resume(struct device +@@ -2015,15 +2015,17 @@ int iwl_legacy_pci_resume(struct device } EXPORT_SYMBOL(iwl_legacy_pci_resume); @@ -175,7 +175,7 @@ calls on compat code with only slight modifications. --- a/drivers/net/wireless/iwlegacy/iwl-core.h +++ b/drivers/net/wireless/iwlegacy/iwl-core.h -@@ -507,7 +507,12 @@ __le32 iwl_legacy_add_beacon_time(struct +@@ -498,7 +498,12 @@ __le32 iwl_legacy_add_beacon_time(struct #ifdef CONFIG_PM int iwl_legacy_pci_suspend(struct device *device); int iwl_legacy_pci_resume(struct device *device); @@ -190,7 +190,7 @@ calls on compat code with only slight modifications. --- a/drivers/net/wireless/iwlegacy/iwl3945-base.c +++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c -@@ -4236,7 +4236,12 @@ static struct pci_driver iwl3945_driver +@@ -3961,7 +3961,12 @@ static struct pci_driver iwl3945_driver .id_table = iwl3945_hw_card_ids, .probe = iwl3945_pci_probe, .remove = __devexit_p(iwl3945_pci_remove), @@ -205,7 +205,7 @@ calls on compat code with only slight modifications. static int __init iwl3945_init(void) --- a/drivers/net/wireless/iwlegacy/iwl4965-base.c +++ b/drivers/net/wireless/iwlegacy/iwl4965-base.c -@@ -3577,7 +3577,12 @@ static struct pci_driver iwl4965_driver +@@ -3226,7 +3226,12 @@ static struct pci_driver iwl4965_driver .id_table = iwl4965_hw_card_ids, .probe = iwl4965_pci_probe, .remove = __devexit_p(iwl4965_pci_remove), @@ -220,7 +220,7 @@ calls on compat code with only slight modifications. static int __init iwl4965_init(void) --- a/drivers/net/wireless/iwlwifi/iwl-agn.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn.c -@@ -3919,7 +3919,12 @@ static struct pci_driver iwl_driver = { +@@ -4001,7 +4001,12 @@ static struct pci_driver iwl_driver = { .id_table = iwl_hw_card_ids, .probe = iwl_pci_probe, .remove = __devexit_p(iwl_pci_remove), @@ -235,7 +235,7 @@ calls on compat code with only slight modifications. static int __init iwl_init(void) --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c -@@ -2021,13 +2021,9 @@ int iwl_pci_resume(struct device *device +@@ -2014,13 +2014,9 @@ int iwl_pci_resume(struct device *device return 0; } @@ -255,7 +255,7 @@ calls on compat code with only slight modifications. #endif /* CONFIG_PM */ --- a/drivers/net/wireless/iwlwifi/iwl-core.h +++ b/drivers/net/wireless/iwlwifi/iwl-core.h -@@ -504,7 +504,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr +@@ -502,7 +502,12 @@ __le32 iwl_add_beacon_time(struct iwl_pr #ifdef CONFIG_PM int iwl_pci_suspend(struct device *device); int iwl_pci_resume(struct device *device); diff --git a/patches/16-bluetooth.patch b/patches/16-bluetooth.patch index 6b99d12cd0a6..95a09f41eb53 100644 --- a/patches/16-bluetooth.patch +++ b/patches/16-bluetooth.patch @@ -17,7 +17,7 @@ here still, but for now we keep this here. tty_driver_flush_buffer(tty); return 0; -@@ -403,7 +408,9 @@ static int hci_uart_register_dev(struct +@@ -398,7 +403,9 @@ static int hci_uart_register_dev(struct hdev->flush = hci_uart_flush; hdev->send = hci_uart_send_frame; hdev->destruct = hci_uart_destruct; @@ -27,7 +27,7 @@ here still, but for now we keep this here. hdev->owner = THIS_MODULE; -@@ -503,7 +510,11 @@ static int hci_uart_tty_ioctl(struct tty +@@ -498,7 +505,11 @@ static int hci_uart_tty_ioctl(struct tty return hu->hdev_flags; default: @@ -80,7 +80,7 @@ here still, but for now we keep this here. err = put_user(amount, (int __user *) arg); --- a/net/bluetooth/cmtp/capi.c +++ b/net/bluetooth/cmtp/capi.c -@@ -385,7 +385,11 @@ static void cmtp_reset_ctr(struct capi_c +@@ -384,7 +384,11 @@ static void cmtp_reset_ctr(struct capi_c BT_DBG("ctrl %p", ctrl); @@ -518,7 +518,7 @@ here still, but for now we keep this here. struct rfcomm_dlc *dlc = dev->dlc; --- a/net/bluetooth/sco.c +++ b/net/bluetooth/sco.c -@@ -429,8 +429,12 @@ static struct sock *sco_sock_alloc(struc +@@ -438,8 +438,12 @@ static struct sock *sco_sock_alloc(struc return sk; } @@ -531,7 +531,7 @@ here still, but for now we keep this here. { struct sock *sk; -@@ -646,7 +650,11 @@ static int sco_sock_sendmsg(struct kiocb +@@ -655,7 +659,11 @@ static int sco_sock_sendmsg(struct kiocb return err; } @@ -590,7 +590,7 @@ here still, but for now we keep this here. --- a/net/bluetooth/l2cap_sock.c +++ b/net/bluetooth/l2cap_sock.c -@@ -579,7 +579,14 @@ static int l2cap_sock_setsockopt_old(str +@@ -557,7 +557,14 @@ static int l2cap_sock_setsockopt_old(str return err; } @@ -605,7 +605,7 @@ here still, but for now we keep this here. { struct sock *sk = sock->sk; struct l2cap_chan *chan = l2cap_pi(sk)->chan; -@@ -1027,8 +1034,12 @@ struct sock *l2cap_sock_alloc(struct net +@@ -950,8 +957,12 @@ static struct sock *l2cap_sock_alloc(str return sk; } @@ -617,8 +617,8 @@ here still, but for now we keep this here. +#endif { struct sock *sk; - struct l2cap_chan *chan; -@@ -1041,7 +1052,11 @@ static int l2cap_sock_create(struct net + +@@ -963,7 +974,11 @@ static int l2cap_sock_create(struct net sock->type != SOCK_DGRAM && sock->type != SOCK_RAW) return -ESOCKTNOSUPPORT; diff --git a/patches/17-netdev-queue.patch b/patches/17-netdev-queue.patch index 9343db57d5f5..5c6090bc62af 100644 --- a/patches/17-netdev-queue.patch +++ b/patches/17-netdev-queue.patch @@ -14,7 +14,7 @@ The patch that introduced this on mac80211 was: --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -1226,6 +1226,7 @@ void ieee80211_if_remove(struct ieee8021 +@@ -1230,6 +1230,7 @@ void ieee80211_if_remove(struct ieee8021 * Remove all interfaces, may only be called at hardware unregistration * time because it doesn't do RCU-safe list removals. */ @@ -22,7 +22,7 @@ The patch that introduced this on mac80211 was: void ieee80211_remove_interfaces(struct ieee80211_local *local) { struct ieee80211_sub_if_data *sdata, *tmp; -@@ -1243,6 +1244,22 @@ void ieee80211_remove_interfaces(struct +@@ -1247,6 +1248,22 @@ void ieee80211_remove_interfaces(struct unregister_netdevice_many(&unreg_list); list_del(&unreg_list); } diff --git a/patches/21-capi-proc_fops.patch b/patches/21-capi-proc_fops.patch index 9cd9f4cd0966..2f2ca7de5e7b 100644 --- a/patches/21-capi-proc_fops.patch +++ b/patches/21-capi-proc_fops.patch @@ -14,7 +14,7 @@ proc_fops: convert drivers/isdn/ to seq_file #include #include #include -@@ -522,6 +524,7 @@ static char *cmtp_procinfo(struct capi_c +@@ -521,6 +523,7 @@ static char *cmtp_procinfo(struct capi_c return "CAPI Message Transport Protocol"; } @@ -22,7 +22,7 @@ proc_fops: convert drivers/isdn/ to seq_file static int cmtp_proc_show(struct seq_file *m, void *v) { struct capi_ctr *ctrl = m->private; -@@ -554,6 +557,36 @@ static const struct file_operations cmtp +@@ -553,6 +556,36 @@ static const struct file_operations cmtp .release = single_release, }; @@ -59,7 +59,7 @@ proc_fops: convert drivers/isdn/ to seq_file int cmtp_attach_device(struct cmtp_session *session) { unsigned char buf[4]; -@@ -592,7 +625,11 @@ int cmtp_attach_device(struct cmtp_sessi +@@ -591,7 +624,11 @@ int cmtp_attach_device(struct cmtp_sessi session->ctrl.send_message = cmtp_send_message; session->ctrl.procinfo = cmtp_procinfo; diff --git a/patches/22-multiqueue.patch b/patches/22-multiqueue.patch index c61d19e5476a..8f8c563f3ea1 100644 --- a/patches/22-multiqueue.patch +++ b/patches/22-multiqueue.patch @@ -96,7 +96,7 @@ queue by using skb_set_queue_mapping(skb, 0) through ieee80211_tx_skb() --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -1591,6 +1591,10 @@ static void ieee80211_xmit(struct ieee80 +@@ -1596,6 +1596,10 @@ static void ieee80211_xmit(struct ieee80 return; } @@ -107,7 +107,7 @@ queue by using skb_set_queue_mapping(skb, 0) through ieee80211_tx_skb() ieee80211_set_qos_hdr(local, skb); ieee80211_tx(sdata, skb, false); rcu_read_unlock(); -@@ -2084,7 +2088,14 @@ void ieee80211_tx_pending(unsigned long +@@ -2089,7 +2093,14 @@ void ieee80211_tx_pending(unsigned long if (skb_queue_empty(&local->pending[i])) list_for_each_entry_rcu(sdata, &local->interfaces, list) diff --git a/patches/25-multicast-list_head.patch b/patches/25-multicast-list_head.patch index 90dc9b4cd813..f1227e8b6bfa 100644 --- a/patches/25-multicast-list_head.patch +++ b/patches/25-multicast-list_head.patch @@ -69,7 +69,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } --- a/drivers/net/b44.c +++ b/drivers/net/b44.c -@@ -1688,7 +1688,11 @@ static int __b44_load_mcast(struct b44 * +@@ -1689,7 +1689,11 @@ static int __b44_load_mcast(struct b44 * netdev_for_each_mc_addr(ha, dev) { if (i == num_ents) break; @@ -83,7 +83,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } --- a/drivers/net/wireless/adm8211.c +++ b/drivers/net/wireless/adm8211.c -@@ -1317,19 +1317,37 @@ static void adm8211_bss_info_changed(str +@@ -1318,19 +1318,37 @@ static void adm8211_bss_info_changed(str } static u64 adm8211_prepare_multicast(struct ieee80211_hw *hw, @@ -217,7 +217,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } --- a/drivers/net/wireless/libertas/main.c +++ b/drivers/net/wireless/libertas/main.c -@@ -235,18 +235,34 @@ static int lbs_add_mcast_addrs(struct cm +@@ -236,18 +236,34 @@ static int lbs_add_mcast_addrs(struct cm netif_addr_lock_bh(dev); cnt = netdev_mc_count(dev); netdev_for_each_mc_addr(ha, dev) { @@ -254,7 +254,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } --- a/drivers/net/wireless/libertas_tf/main.c +++ b/drivers/net/wireless/libertas_tf/main.c -@@ -417,20 +417,36 @@ static int lbtf_op_config(struct ieee802 +@@ -418,20 +418,36 @@ static int lbtf_op_config(struct ieee802 } static u64 lbtf_op_prepare_multicast(struct ieee80211_hw *hw, @@ -325,7 +325,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 p += sprintf(p, "num_tx_bytes = %lu\n", priv->stats.tx_bytes); --- a/drivers/net/wireless/mwl8k.c +++ b/drivers/net/wireless/mwl8k.c -@@ -2537,15 +2537,21 @@ struct mwl8k_cmd_mac_multicast_adr { +@@ -2538,15 +2538,21 @@ struct mwl8k_cmd_mac_multicast_adr { static struct mwl8k_cmd_pkt * __mwl8k_cmd_mac_multicast_adr(struct ieee80211_hw *hw, int allmulti, @@ -347,7 +347,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 if (allmulti || mc_count > priv->num_mcaddrs) { allmulti = 1; -@@ -2566,13 +2572,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee +@@ -2567,13 +2573,27 @@ __mwl8k_cmd_mac_multicast_adr(struct iee if (allmulti) { cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST); } else if (mc_count) { @@ -375,7 +375,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } } -@@ -4723,7 +4743,11 @@ mwl8k_bss_info_changed(struct ieee80211_ +@@ -4724,7 +4744,11 @@ mwl8k_bss_info_changed(struct ieee80211_ } static u64 mwl8k_prepare_multicast(struct ieee80211_hw *hw, @@ -387,7 +387,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 { struct mwl8k_cmd_pkt *cmd; -@@ -4734,7 +4758,11 @@ static u64 mwl8k_prepare_multicast(struc +@@ -4735,7 +4759,11 @@ static u64 mwl8k_prepare_multicast(struc * we'll end up throwing this packet away and creating a new * one in mwl8k_configure_filter(). */ @@ -399,7 +399,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 return (unsigned long)cmd; } -@@ -4856,7 +4884,11 @@ static void mwl8k_configure_filter(struc +@@ -4857,7 +4885,11 @@ static void mwl8k_configure_filter(struc */ if (*total_flags & FIF_ALLMULTI) { kfree(cmd); @@ -498,7 +498,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 --- a/drivers/net/wireless/rtl818x/rtl8180/dev.c +++ b/drivers/net/wireless/rtl818x/rtl8180/dev.c -@@ -811,10 +811,19 @@ static void rtl8180_bss_info_changed(str +@@ -812,10 +812,19 @@ static void rtl8180_bss_info_changed(str } } @@ -540,7 +540,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 static void rtl8187_configure_filter(struct ieee80211_hw *dev, --- a/drivers/net/wireless/wl12xx/main.c +++ b/drivers/net/wireless/wl12xx/main.c -@@ -2085,11 +2085,20 @@ struct wl1271_filter_params { +@@ -2086,11 +2086,20 @@ struct wl1271_filter_params { u8 mc_list[ACX_MC_ADDRESS_GROUP_MAX][ETH_ALEN]; }; @@ -561,7 +561,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 struct wl1271 *wl = hw->priv; if (unlikely(wl->state == WL1271_STATE_OFF)) -@@ -2102,16 +2111,40 @@ static u64 wl1271_op_prepare_multicast(s +@@ -2103,16 +2112,40 @@ static u64 wl1271_op_prepare_multicast(s } /* update multicast filtering parameters */ @@ -641,7 +641,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 return hash.low | ((u64)hash.high << 32); --- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c +++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c -@@ -714,7 +714,11 @@ static void _dhd_set_multicast_list(dhd_ +@@ -718,7 +718,11 @@ static void _dhd_set_multicast_list(dhd_ netdev_for_each_mc_addr(ha, dev) { if (!cnt) break; @@ -655,7 +655,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856 } --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1882,7 +1882,11 @@ struct ieee80211_ops { +@@ -1883,7 +1883,11 @@ struct ieee80211_ops { struct ieee80211_bss_conf *info, u32 changed); u64 (*prepare_multicast)(struct ieee80211_hw *hw, diff --git a/patches/26-sdio-quirks.patch b/patches/26-sdio-quirks.patch index 57df7b537c56..a7fc6fe9f70a 100644 --- a/patches/26-sdio-quirks.patch +++ b/patches/26-sdio-quirks.patch @@ -2,15 +2,15 @@ The quirks attribute is not available on older kernels. --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c -@@ -1012,6 +1012,7 @@ static int if_sdio_probe(struct sdio_fun +@@ -1039,6 +1039,7 @@ static int if_sdio_probe(struct sdio_fun if (ret) - goto disable; + goto release; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) /* For 1-bit transfers to the 8686 model, we need to enable the * interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0 * bit to allow access to non-vendor registers. */ -@@ -1030,6 +1031,7 @@ static int if_sdio_probe(struct sdio_fun +@@ -1057,6 +1058,7 @@ static int if_sdio_probe(struct sdio_fun if (ret) goto release_int; } @@ -20,7 +20,7 @@ The quirks attribute is not available on older kernels. if (ret) --- a/drivers/net/wireless/mwifiex/sdio.c +++ b/drivers/net/wireless/mwifiex/sdio.c -@@ -60,7 +60,9 @@ mwifiex_sdio_probe(struct sdio_func *fun +@@ -77,7 +77,9 @@ mwifiex_sdio_probe(struct sdio_func *fun card->func = func; diff --git a/patches/29-sdio_no_suspend.patch b/patches/29-sdio_no_suspend.patch index 8a2c4dd5b625..d6a67132f482 100644 --- a/patches/29-sdio_no_suspend.patch +++ b/patches/29-sdio_no_suspend.patch @@ -5,7 +5,7 @@ suspend and resume that are not backported. --- a/drivers/net/wireless/libertas/if_sdio.c +++ b/drivers/net/wireless/libertas/if_sdio.c -@@ -1198,6 +1198,7 @@ static void if_sdio_remove(struct sdio_f +@@ -1241,6 +1241,7 @@ static void if_sdio_remove(struct sdio_f lbs_deb_leave(LBS_DEB_SDIO); } @@ -13,7 +13,7 @@ suspend and resume that are not backported. static int if_sdio_suspend(struct device *dev) { struct sdio_func *func = dev_to_sdio_func(dev); -@@ -1251,15 +1252,18 @@ static const struct dev_pm_ops if_sdio_p +@@ -1294,15 +1295,18 @@ static const struct dev_pm_ops if_sdio_p .suspend = if_sdio_suspend, .resume = if_sdio_resume, }; diff --git a/patches/31-backport-sk_add_backlog.patch b/patches/31-backport-sk_add_backlog.patch index fb722445e8fe..ee904b60565f 100644 --- a/patches/31-backport-sk_add_backlog.patch +++ b/patches/31-backport-sk_add_backlog.patch @@ -9,7 +9,7 @@ backlog. --- a/net/bluetooth/l2cap_core.c +++ b/net/bluetooth/l2cap_core.c -@@ -3698,8 +3698,12 @@ static inline int l2cap_data_channel(str +@@ -3905,8 +3905,12 @@ static inline int l2cap_data_channel(str if (!sock_owned_by_user(sk)) { l2cap_ertm_data_rcv(sk, skb); } else { diff --git a/patches/40-netdev-hw-features.patch b/patches/40-netdev-hw-features.patch index 14d6dd7a8119..7e5e9c522aaf 100644 --- a/patches/40-netdev-hw-features.patch +++ b/patches/40-netdev-hw-features.patch @@ -80,7 +80,7 @@ Date: Thu Apr 7 07:32:18 2011 +0000 atl1c_up(adapter); clear_bit(__AT_RESETTING, &adapter->flags); if (adapter->hw.ctrl_flags & ATL1C_FPGA_VERSION) { -@@ -2586,7 +2599,9 @@ static const struct net_device_ops atl1c +@@ -2588,7 +2601,9 @@ static const struct net_device_ops atl1c .ndo_set_mac_address = atl1c_set_mac_addr, .ndo_set_multicast_list = atl1c_set_multi, .ndo_change_mtu = atl1c_change_mtu, @@ -90,7 +90,7 @@ Date: Thu Apr 7 07:32:18 2011 +0000 .ndo_do_ioctl = atl1c_ioctl, .ndo_tx_timeout = atl1c_tx_timeout, .ndo_get_stats = atl1c_get_stats, -@@ -2607,6 +2622,7 @@ static int atl1c_init_netdev(struct net_ +@@ -2609,6 +2624,7 @@ static int atl1c_init_netdev(struct net_ atl1c_set_ethtool_ops(netdev); /* TODO: add when ready */ @@ -98,7 +98,7 @@ Date: Thu Apr 7 07:32:18 2011 +0000 netdev->hw_features = NETIF_F_SG | NETIF_F_HW_CSUM | NETIF_F_HW_VLAN_TX | -@@ -2614,6 +2630,14 @@ static int atl1c_init_netdev(struct net_ +@@ -2616,6 +2632,14 @@ static int atl1c_init_netdev(struct net_ NETIF_F_TSO6; netdev->features = netdev->hw_features | NETIF_F_HW_VLAN_RX; -- 2.30.2