Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
authorJohn W. Linville <linville@tuxdriver.com>
Wed, 1 Jan 2014 20:39:56 +0000 (15:39 -0500)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 1 Jan 2014 20:39:56 +0000 (15:39 -0500)
1  2 
MAINTAINERS
drivers/net/wireless/ath/ath9k/xmit.c
net/mac80211/iface.c

diff --combined MAINTAINERS
index 9bae7901162d29ea007ec467091d3a47802152af,f6e905216cc4794fc29363bce5245413e5c509b6..0d58ff5d2a6229d677fb447038b75ab9233d7ec5
@@@ -893,15 -893,20 +893,15 @@@ F:      arch/arm/include/asm/hardware/dec212
  F:    arch/arm/mach-footbridge/
  
  ARM/FREESCALE IMX / MXC ARM ARCHITECTURE
 +M:    Shawn Guo <shawn.guo@linaro.org>
  M:    Sascha Hauer <kernel@pengutronix.de>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 -T:    git git://git.pengutronix.de/git/imx/linux-2.6.git
 +T:    git git://git.linaro.org/people/shawnguo/linux-2.6.git
  F:    arch/arm/mach-imx/
 +F:    arch/arm/boot/dts/imx*
  F:    arch/arm/configs/imx*_defconfig
  
 -ARM/FREESCALE IMX6
 -M:    Shawn Guo <shawn.guo@linaro.org>
 -L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 -S:    Maintained
 -T:    git git://git.linaro.org/people/shawnguo/linux-2.6.git
 -F:    arch/arm/mach-imx/*imx6*
 -
  ARM/FREESCALE MXS ARM ARCHITECTURE
  M:    Shawn Guo <shawn.guo@linaro.org>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
@@@ -1430,7 -1435,7 +1430,7 @@@ F:      Documentation/aoe
  F:    drivers/block/aoe/
  
  ATHEROS ATH GENERIC UTILITIES
- M:    "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
+ M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/net/wireless/ath/*
  ATHEROS ATH5K WIRELESS DRIVER
  M:    Jiri Slaby <jirislaby@gmail.com>
  M:    Nick Kossifidis <mickflemm@gmail.com>
- M:    "Luis R. Rodriguez" <mcgrof@qca.qualcomm.com>
+ M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
  L:    linux-wireless@vger.kernel.org
  L:    ath5k-devel@lists.ath5k.org
  W:    http://wireless.kernel.org/en/users/Drivers/ath5k
@@@ -1918,8 -1923,7 +1918,8 @@@ S:      Maintaine
  F:    drivers/gpio/gpio-bt8xx.c
  
  BTRFS FILE SYSTEM
 -M:    Chris Mason <chris.mason@fusionio.com>
 +M:    Chris Mason <clm@fb.com>
 +M:    Josef Bacik <jbacik@fb.com>
  L:    linux-btrfs@vger.kernel.org
  W:    http://btrfs.wiki.kernel.org/
  Q:    http://patchwork.kernel.org/project/linux-btrfs/list/
@@@ -2008,7 -2012,6 +2008,7 @@@ L:      linux-can@vger.kernel.or
  W:    http://gitorious.org/linux-can
  T:    git git://gitorious.org/linux-can/linux-can-next.git
  S:    Maintained
 +F:    Documentation/networking/can.txt
  F:    net/can/
  F:    include/linux/can/core.h
  F:    include/uapi/linux/can.h
@@@ -2123,17 -2126,11 +2123,17 @@@ S:   Maintaine
  F:    Documentation/zh_CN/
  
  CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
 -M:    Alexander Shishkin <alexander.shishkin@linux.intel.com>
 +M:    Peter Chen <Peter.Chen@freescale.com>
 +T:    git://github.com/hzpeterchen/linux-usb.git
  L:    linux-usb@vger.kernel.org
  S:    Maintained
  F:    drivers/usb/chipidea/
  
 +CHROME HARDWARE PLATFORM SUPPORT
 +M:    Olof Johansson <olof@lixom.net>
 +S:    Maintained
 +F:    drivers/platform/chrome/
 +
  CISCO VIC ETHERNET NIC DRIVER
  M:    Christian Benvenuti <benve@cisco.com>
  M:    Sujith Sankar <ssujith@cisco.com>
@@@ -3751,11 -3748,9 +3751,11 @@@ F:    include/uapi/linux/gigaset_dev.
  
  GPIO SUBSYSTEM
  M:    Linus Walleij <linus.walleij@linaro.org>
 -S:    Maintained
 +M:    Alexandre Courbot <gnurou@gmail.com>
  L:    linux-gpio@vger.kernel.org
 -F:    Documentation/gpio.txt
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio.git
 +S:    Maintained
 +F:    Documentation/gpio/
  F:    drivers/gpio/
  F:    include/linux/gpio*
  F:    include/asm-generic/gpio.h
@@@ -4032,26 -4027,12 +4032,26 @@@ W:   http://artax.karlin.mff.cuni.cz/~mik
  S:    Maintained
  F:    fs/hpfs/
  
 +HSI SUBSYSTEM
 +M:    Sebastian Reichel <sre@debian.org>
 +S:    Maintained
 +F:    Documentation/ABI/testing/sysfs-bus-hsi
 +F:    drivers/hsi/
 +F:    include/linux/hsi/
 +F:    include/uapi/linux/hsi/
 +
  HSO 3G MODEM DRIVER
  M:    Jan Dumon <j.dumon@option.com>
  W:    http://www.pharscape.org
  S:    Maintained
  F:    drivers/net/usb/hso.c
  
 +HSR NETWORK PROTOCOL
 +M:    Arvid Brodin <arvid.brodin@alten.se>
 +L:    netdev@vger.kernel.org
 +S:    Maintained
 +F:    net/hsr/
 +
  HTCPEN TOUCHSCREEN DRIVER
  M:    Pau Oliva Fora <pof@eslack.org>
  L:    linux-input@vger.kernel.org
@@@ -4073,7 -4054,6 +4073,7 @@@ F:      arch/x86/include/uapi/asm/hyperv.
  F:    arch/x86/kernel/cpu/mshyperv.c
  F:    drivers/hid/hid-hyperv.c
  F:    drivers/hv/
 +F:    drivers/input/serio/hyperv-keyboard.c
  F:    drivers/net/hyperv/
  F:    drivers/scsi/storvsc_drv.c
  F:    drivers/video/hyperv_fb.c
@@@ -4458,8 -4438,10 +4458,8 @@@ M:     Bruce Allan <bruce.w.allan@intel.com
  M:    Carolyn Wyborny <carolyn.wyborny@intel.com>
  M:    Don Skidmore <donald.c.skidmore@intel.com>
  M:    Greg Rose <gregory.v.rose@intel.com>
 -M:    Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
  M:    Alex Duyck <alexander.h.duyck@intel.com>
  M:    John Ronciak <john.ronciak@intel.com>
 -M:    Tushar Dave <tushar.n.dave@intel.com>
  L:    e1000-devel@lists.sourceforge.net
  W:    http://www.intel.com/support/feedback.htm
  W:    http://e1000.sourceforge.net/
@@@ -5262,7 -5244,7 +5262,7 @@@ S:      Maintaine
  F:    Documentation/lockdep*.txt
  F:    Documentation/lockstat.txt
  F:    include/linux/lockdep.h
 -F:    kernel/lockdep*
 +F:    kernel/locking/
  
  LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
  M:    "Richard Russon (FlatCap)" <ldm@flatcap.org>
@@@ -5903,21 -5885,12 +5903,21 @@@ M:   Steffen Klassert <steffen.klassert@s
  M:    Herbert Xu <herbert@gondor.apana.org.au>
  M:    "David S. Miller" <davem@davemloft.net>
  L:    netdev@vger.kernel.org
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next.git
  S:    Maintained
  F:    net/xfrm/
  F:    net/key/
  F:    net/ipv4/xfrm*
 +F:    net/ipv4/esp4.c
 +F:    net/ipv4/ah4.c
 +F:    net/ipv4/ipcomp.c
 +F:    net/ipv4/ip_vti.c
  F:    net/ipv6/xfrm*
 +F:    net/ipv6/esp6.c
 +F:    net/ipv6/ah6.c
 +F:    net/ipv6/ipcomp6.c
 +F:    net/ipv6/ip6_vti.c
  F:    include/uapi/linux/xfrm.h
  F:    include/net/xfrm.h
  
@@@ -5983,10 -5956,10 +5983,10 @@@ F:   drivers/nfc
  F:    include/linux/platform_data/pn544.h
  
  NFS, SUNRPC, AND LOCKD CLIENTS
 -M:    Trond Myklebust <Trond.Myklebust@netapp.com>
 +M:    Trond Myklebust <trond.myklebust@primarydata.com>
  L:    linux-nfs@vger.kernel.org
  W:    http://client.linux-nfs.org
 -T:    git git://git.linux-nfs.org/pub/linux/nfs-2.6.git
 +T:    git git://git.linux-nfs.org/projects/trondmy/linux-nfs.git
  S:    Maintained
  F:    fs/lockd/
  F:    fs/nfs/
@@@ -6253,8 -6226,8 +6253,8 @@@ OPEN FIRMWARE AND FLATTENED DEVICE TRE
  M:    Rob Herring <rob.herring@calxeda.com>
  M:    Pawel Moll <pawel.moll@arm.com>
  M:    Mark Rutland <mark.rutland@arm.com>
 -M:    Stephen Warren <swarren@wwwdotorg.org>
  M:    Ian Campbell <ijc+devicetree@hellion.org.uk>
 +M:    Kumar Gala <galak@codeaurora.org>
  L:    devicetree@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/
@@@ -6464,52 -6437,19 +6464,52 @@@ F:   drivers/pci
  F:    include/linux/pci*
  F:    arch/x86/pci/
  
 +PCI DRIVER FOR IMX6
 +M:    Richard Zhu <r65037@freescale.com>
 +M:    Shawn Guo <shawn.guo@linaro.org>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/pci/host/*imx6*
 +
 +PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
 +M:    Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 +M:    Jason Cooper <jason@lakedaemon.net>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +S:    Maintained
 +F:    drivers/pci/host/*mvebu*
 +
  PCI DRIVER FOR NVIDIA TEGRA
  M:    Thierry Reding <thierry.reding@gmail.com>
  L:    linux-tegra@vger.kernel.org
 +L:    linux-pci@vger.kernel.org
  S:    Supported
  F:    Documentation/devicetree/bindings/pci/nvidia,tegra20-pcie.txt
  F:    drivers/pci/host/pci-tegra.c
  
 +PCI DRIVER FOR RENESAS R-CAR
 +M:    Simon Horman <horms@verge.net.au>
 +L:    linux-pci@vger.kernel.org
 +L:    linux-sh@vger.kernel.org
 +S:    Maintained
 +F:    drivers/pci/host/*rcar*
 +
  PCI DRIVER FOR SAMSUNG EXYNOS
  M:    Jingoo Han <jg1.han@samsung.com>
  L:    linux-pci@vger.kernel.org
 +L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
 +L:    linux-samsung-soc@vger.kernel.org (moderated for non-subscribers)
  S:    Maintained
  F:    drivers/pci/host/pci-exynos.c
  
 +PCI DRIVER FOR SYNOPSIS DESIGNWARE
 +M:    Mohit Kumar <mohit.kumar@st.com>
 +M:    Jingoo Han <jg1.han@samsung.com>
 +L:    linux-pci@vger.kernel.org
 +S:    Maintained
 +F:    drivers/pci/host/*designware*
 +
  PCMCIA SUBSYSTEM
  P:    Linux PCMCIA Team
  L:    linux-pcmcia@lists.infradead.org
@@@ -7436,6 -7376,7 +7436,6 @@@ S:      Maintaine
  F:    kernel/sched/
  F:    include/linux/sched.h
  F:    include/uapi/linux/sched.h
 -F:    kernel/wait.c
  F:    include/linux/wait.h
  
  SCORE ARCHITECTURE
@@@ -7571,10 -7512,9 +7571,10 @@@ SELINUX SECURITY MODUL
  M:    Stephen Smalley <sds@tycho.nsa.gov>
  M:    James Morris <james.l.morris@oracle.com>
  M:    Eric Paris <eparis@parisplace.org>
 +M:    Paul Moore <paul@paul-moore.com>
  L:    selinux@tycho.nsa.gov (subscribers-only, general discussion)
  W:    http://selinuxproject.org
 -T:    git git://git.infradead.org/users/eparis/selinux.git
 +T:    git git://git.infradead.org/users/pcmoore/selinux
  S:    Supported
  F:    include/linux/selinux*
  F:    security/selinux/
@@@ -8720,7 -8660,6 +8720,7 @@@ F:      drivers/media/usb/tm6000
  TPM DEVICE DRIVER
  M:    Leonidas Da Silva Barbosa <leosilva@linux.vnet.ibm.com>
  M:    Ashley Lai <ashley@ashleylai.com>
 +M:    Peter Huewe <peterhuewe@gmx.de>
  M:    Rajiv Andrade <mail@srajiv.net>
  W:    http://tpmdd.sourceforge.net
  M:    Marcel Selhorst <tpmdd@selhorst.net>
@@@ -9579,8 -9518,8 +9579,8 @@@ F:      drivers/xen/*swiotlb
  
  XFS FILESYSTEM
  P:    Silicon Graphics Inc
 +M:    Dave Chinner <dchinner@fromorbit.com>
  M:    Ben Myers <bpm@sgi.com>
 -M:    Alex Elder <elder@kernel.org>
  M:    xfs@oss.sgi.com
  L:    xfs@oss.sgi.com
  W:    http://oss.sgi.com/projects/xfs
index a907bc94800d323090a7e4d401d6ba4dab9a8835,475433288bbe4d2097d9bba9472a49c9bd6e5ee8..9d735c55a0f39cf4056685259f6c8bb6f187019b
@@@ -174,14 -174,7 +174,7 @@@ static void ath_txq_skb_done(struct ath
  static struct ath_atx_tid *
  ath_get_skb_tid(struct ath_softc *sc, struct ath_node *an, struct sk_buff *skb)
  {
-       struct ieee80211_hdr *hdr;
-       u8 tidno = 0;
-       hdr = (struct ieee80211_hdr *) skb->data;
-       if (ieee80211_is_data_qos(hdr->frame_control))
-               tidno = ieee80211_get_qos_ctl(hdr)[0];
-       tidno &= IEEE80211_QOS_CTL_TID_MASK;
+       u8 tidno = skb->priority & IEEE80211_QOS_CTL_TID_MASK;
        return ATH_AN_2_TID(an, tidno);
  }
  
@@@ -1276,10 -1269,6 +1269,10 @@@ static void ath_tx_fill_desc(struct ath
                                if (!rts_thresh || (len > rts_thresh))
                                        rts = true;
                        }
 +
 +                      if (!aggr)
 +                              len = fi->framelen;
 +
                        ath_buf_set_rate(sc, bf, &info, len, rts);
                }
  
diff --combined net/mac80211/iface.c
index a4f98123d0bf20b7bc49540cf9fb9225218e6ba7,3d2168c3269ef40b10fa28c50496f369f8158af4..d624ed49a7d9322e5615249ece049785e950e384
@@@ -786,10 -786,8 +786,8 @@@ static void ieee80211_do_stop(struct ie
         * This is relevant only in WDS mode, in all other modes we've
         * already removed all stations when disconnecting or similar,
         * so warn otherwise.
-        *
-        * We call sta_info_flush_cleanup() later, to combine RCU waits.
         */
-       flushed = sta_info_flush_defer(sdata);
+       flushed = sta_info_flush(sdata);
        WARN_ON_ONCE((sdata->vif.type != NL80211_IFTYPE_WDS && flushed > 0) ||
                     (sdata->vif.type == NL80211_IFTYPE_WDS && flushed != 1));
  
                cancel_work_sync(&sdata->work);
                /*
                 * When we get here, the interface is marked down.
+                * Free the remaining keys, if there are any
+                * (shouldn't be, except maybe in WDS mode?)
                 *
-                * sta_info_flush_cleanup() requires rcu_barrier()
-                * first to wait for the station call_rcu() calls
-                * to complete, and we also need synchronize_rcu()
-                * to wait for the RX path in case it is using the
-                * interface and enqueuing frames at this very time on
+                * Force the key freeing to always synchronize_net()
+                * to wait for the RX path in case it is using this
+                * interface enqueuing frames * at this very time on
                 * another CPU.
                 */
-               synchronize_rcu();
-               rcu_barrier();
-               sta_info_flush_cleanup(sdata);
-               /*
-                * Free all remaining keys, there shouldn't be any,
-                * except maybe in WDS mode?
-                */
-               ieee80211_free_keys(sdata);
+               ieee80211_free_keys(sdata, true);
  
                /* fall through */
        case NL80211_IFTYPE_AP:
@@@ -1018,17 -1008,6 +1008,6 @@@ static void ieee80211_set_multicast_lis
                        atomic_dec(&local->iff_promiscs);
                sdata->flags ^= IEEE80211_SDATA_PROMISC;
        }
-       /*
-        * TODO: If somebody needs this on AP interfaces,
-        *       it can be enabled easily but multicast
-        *       addresses from VLANs need to be synced.
-        */
-       if (sdata->vif.type != NL80211_IFTYPE_MONITOR &&
-           sdata->vif.type != NL80211_IFTYPE_AP_VLAN &&
-           sdata->vif.type != NL80211_IFTYPE_AP)
-               drv_set_multicast_list(local, sdata, &dev->mc);
        spin_lock_bh(&local->filter_lock);
        __hw_addr_sync(&local->mc_list, &dev->mc, dev->addr_len);
        spin_unlock_bh(&local->filter_lock);
@@@ -1044,7 -1023,7 +1023,7 @@@ static void ieee80211_teardown_sdata(st
        int i;
  
        /* free extra data */
-       ieee80211_free_keys(sdata);
+       ieee80211_free_keys(sdata, false);
  
        ieee80211_debugfs_remove_netdev(sdata);
  
@@@ -1497,8 -1476,8 +1476,8 @@@ static void ieee80211_assign_perm_addr(
                        bool used = false;
  
                        list_for_each_entry(sdata, &local->interfaces, list) {
 -                              if (memcmp(local->hw.wiphy->addresses[i].addr,
 -                                         sdata->vif.addr, ETH_ALEN) == 0) {
 +                              if (ether_addr_equal(local->hw.wiphy->addresses[i].addr,
 +                                                   sdata->vif.addr)) {
                                        used = true;
                                        break;
                                }
                        val += inc;
  
                        list_for_each_entry(sdata, &local->interfaces, list) {
 -                              if (memcmp(tmp_addr, sdata->vif.addr,
 -                                                      ETH_ALEN) == 0) {
 +                              if (ether_addr_equal(tmp_addr, sdata->vif.addr)) {
                                        used = true;
                                        break;
                                }
        mutex_unlock(&local->iflist_mtx);
  }
  
- static void ieee80211_cleanup_sdata_stas_wk(struct work_struct *wk)
- {
-       struct ieee80211_sub_if_data *sdata;
-       sdata = container_of(wk, struct ieee80211_sub_if_data, cleanup_stations_wk);
-       ieee80211_cleanup_sdata_stas(sdata);
- }
  int ieee80211_if_add(struct ieee80211_local *local, const char *name,
                     struct wireless_dev **new_wdev, enum nl80211_iftype type,
                     struct vif_params *params)
  
        INIT_LIST_HEAD(&sdata->key_list);
  
-       spin_lock_init(&sdata->cleanup_stations_lock);
-       INIT_LIST_HEAD(&sdata->cleanup_stations);
-       INIT_WORK(&sdata->cleanup_stations_wk, ieee80211_cleanup_sdata_stas_wk);
        INIT_DELAYED_WORK(&sdata->dfs_cac_timer_work,
                          ieee80211_dfs_cac_timer_work);
        INIT_DELAYED_WORK(&sdata->dec_tailroom_needed_wk,