commit b36eba9b4dd4344ed51b8f644049aeac606ccff2
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Sun Apr 3 18:27:20 2016 -0400

    Linux 3.18.30
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 57cec70519450cdba5c3c90cf3391b615830d1f4
Author: Will Deacon <will.deacon@arm.com>
Date:   Wed Feb 25 12:10:35 2015 +0000

    arm64: psci: move psci firmware calls out of line
    
    [ Upstream commit f5e0a12ca2d939e47995f73428d9bf1ad372b289 ]
    
    An arm64 allmodconfig fails to build with GCC 5 due to __asmeq
    assertions in the PSCI firmware calling code firing due to mcount
    preambles breaking our assumptions about register allocation of function
    arguments:
    
      /tmp/ccDqJsJ6.s: Assembler messages:
      /tmp/ccDqJsJ6.s:60: Error: .err encountered
      /tmp/ccDqJsJ6.s:61: Error: .err encountered
      /tmp/ccDqJsJ6.s:62: Error: .err encountered
      /tmp/ccDqJsJ6.s:99: Error: .err encountered
      /tmp/ccDqJsJ6.s:100: Error: .err encountered
      /tmp/ccDqJsJ6.s:101: Error: .err encountered
    
    This patch fixes the issue by moving the PSCI calls out-of-line into
    their own assembly files, which are safe from the compiler's meddling
    fingers.
    
    Reported-by: Andy Whitcroft <apw@canonical.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1267e34aa05252245591b6e47857fcb87ef7bd01
Author: Markos Chandras <markos.chandras@imgtec.com>
Date:   Wed Jul 1 09:31:14 2015 +0100

    Revert "MIPS: Kconfig: Disable SMP/CPS for 64-bit"
    
    [ Upstream commit 1c885357da2d3cf62132e611c0beaf4cdf607dd9 ]
    
    This reverts commit 6ca716f2e5571d25a3899c6c5c91ff72ea6d6f5e.
    
    SMP/CPS is now supported on 64bit cores.
    
    Cc: <stable@vger.kernel.org> # 4.1
    Reviewed-by: Paul Burton <paul.burton@imgtec.com>
    Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/10592/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 5a5e080e815ec7f2d4ffb7568e23c13dd39093a6
Author: James Hogan <james.hogan@imgtec.com>
Date:   Tue Mar 8 16:47:53 2016 +0000

    ld-version: Fix awk regex compile failure
    
    [ Upstream commit 4b7b1ef2c2f83d702272555e8adb839a50ba0f8e ]
    
    The ld-version.sh script fails on some versions of awk with the
    following error, resulting in build failures for MIPS:
    
    awk: scripts/ld-version.sh: line 4: regular expression compile failed (missing '(')
    
    This is due to the regular expression ".*)", meant to strip off the
    beginning of the ld version string up to the close bracket, however
    brackets have a meaning in regular expressions, so lets escape it so
    that awk doesn't expect a corresponding open bracket.
    
    Fixes: ccbef1674a15 ("Kbuild, lto: add ld-version and ld-ifversion ...")
    Reported-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Tested-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Cc: Michal Marek <mmarek@suse.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kbuild@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # 4.4.x-
    Patchwork: https://patchwork.linux-mips.org/patch/12838/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3a4377e41c203bd62b26c2962d3b0bec2c8d1ed9
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Wed Mar 9 11:58:41 2016 -0500

    tracing: Fix check for cpu online when event is disabled
    
    [ Upstream commit dc17147de328a74bbdee67c1bf37d2f1992de756 ]
    
    Commit f37755490fe9b ("tracepoints: Do not trace when cpu is offline") added
    a check to make sure that tracepoints only get called when the cpu is
    online, as it uses rcu_read_lock_sched() for protection.
    
    Commit 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints
    are disabled") added lockdep checks (including rcu checks) for events that
    are not enabled to catch possible RCU issues that would only be triggered if
    a trace event was enabled. Commit f37755490fe9b only stopped the warnings
    when the trace event was enabled but did not prevent warnings if the trace
    event was called when disabled.
    
    To fix this, the cpu online check is moved to where the condition is added
    to the trace event. This will place the cpu online check in all places that
    it may be used now and in the future.
    
    Cc: stable@vger.kernel.org # v3.18+
    Fixes: f37755490fe9b ("tracepoints: Do not trace when cpu is offline")
    Fixes: 3a630178fd5f3 ("tracing: generate RCU warnings even when tracepoints are disabled")
    Reported-by: Sudeep Holla <sudeep.holla@arm.com>
    Tested-by: Sudeep Holla <sudeep.holla@arm.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a077ab0b8d5e9da786a89667ce7ae7e396655b56
Author: Alex Deucher <alexander.deucher@amd.com>
Date:   Tue Mar 8 11:31:00 2016 -0500

    Revert "drm/radeon/pm: adjust display configuration after powerstate"
    
    [ Upstream commit d74e766e1916d0e09b86e4b5b9d0f819628fd546 ]
    
    This reverts commit 39d4275058baf53e89203407bf3841ff2c74fa32.
    
    This caused a regression on some older hardware.
    
    bug:
    https://bugzilla.kernel.org/show_bug.cgi?id=113891
    
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 306cc4da64fe0782ab5a984e888e7476be268d6d
Author: Radim Krčmář <rkrcmar@redhat.com>
Date:   Fri Mar 4 15:08:42 2016 +0100

    KVM: VMX: disable PEBS before a guest entry
    
    [ Upstream commit 7099e2e1f4d9051f31bbfa5803adf954bb5d76ef ]
    
    Linux guests on Haswell (and also SandyBridge and Broadwell, at least)
    would crash if you decided to run a host command that uses PEBS, like
      perf record -e 'cpu/mem-stores/pp' -a
    
    This happens because KVM is using VMX MSR switching to disable PEBS, but
    SDM [2015-12] 18.4.4.4 Re-configuring PEBS Facilities explains why it
    isn't safe:
      When software needs to reconfigure PEBS facilities, it should allow a
      quiescent period between stopping the prior event counting and setting
      up a new PEBS event. The quiescent period is to allow any latent
      residual PEBS records to complete its capture at their previously
      specified buffer address (provided by IA32_DS_AREA).
    
    There might not be a quiescent period after the MSR switch, so a CPU
    ends up using host's MSR_IA32_DS_AREA to access an area in guest's
    memory.  (Or MSR switching is just buggy on some models.)
    
    The guest can learn something about the host this way:
    If the guest doesn't map address pointed by MSR_IA32_DS_AREA, it results
    in #PF where we leak host's MSR_IA32_DS_AREA through CR2.
    
    After that, a malicious guest can map and configure memory where
    MSR_IA32_DS_AREA is pointing and can therefore get an output from
    host's tracing.
    
    This is not a critical leak as the host must initiate with PEBS tracing
    and I have not been able to get a record from more than one instruction
    before vmentry in vmx_vcpu_run() (that place has most registers already
    overwritten with guest's).
    
    We could disable PEBS just few instructions before vmentry, but
    disabling it earlier shouldn't affect host tracing too much.
    We also don't need to switch MSR_IA32_PEBS_ENABLE on VMENTRY, but that
    optimization isn't worth its code, IMO.
    
    (If you are implementing PEBS for guests, be sure to handle the case
     where both host and guest enable PEBS, because this patch doesn't.)
    
    Fixes: 26a4f3c08de4 ("perf/x86: disable PEBS on a guest entry.")
    Cc: <stable@vger.kernel.org>
    Reported-by: Jiří Olša <jolsa@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c518a1b39eda7356aebfd514cd8164ed909d995f
Author: Paul Mackerras <paulus@samba.org>
Date:   Sat Mar 5 19:34:39 2016 +1100

    KVM: PPC: Book3S HV: Sanitize special-purpose register values on guest exit
    
    [ Upstream commit ccec44563b18a0ce90e2d4f332784b3cb25c8e9c ]
    
    Thomas Huth discovered that a guest could cause a hard hang of a
    host CPU by setting the Instruction Authority Mask Register (IAMR)
    to a suitable value.  It turns out that this is because when the
    code was added to context-switch the new special-purpose registers
    (SPRs) that were added in POWER8, we forgot to add code to ensure
    that they were restored to a sane value on guest exit.
    
    This adds code to set those registers where a bad value could
    compromise the execution of the host kernel to a suitable neutral
    value on guest exit.
    
    Cc: stable@vger.kernel.org # v3.14+
    Fixes: b005255e12a3
    Reported-by: Thomas Huth <thuth@redhat.com>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: Paul Mackerras <paulus@samba.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 05ec9a3e09d5d076f028ff491d20dde6bd679ccb
Author: Mugunthan V N <mugunthanvnm@ti.com>
Date:   Mon Mar 7 01:41:22 2016 -0700

    ARM: dts: dra7: do not gate cpsw clock due to errata i877
    
    [ Upstream commit 0f514e690740e54815441a87708c3326f8aa8709 ]
    
    Errata id: i877
    
    Description:
    ------------
    The RGMII 1000 Mbps Transmit timing is based on the output clock
    (rgmiin_txc) being driven relative to the rising edge of an internal
    clock and the output control/data (rgmiin_txctl/txd) being driven relative
    to the falling edge of an internal clock source. If the internal clock
    source is allowed to be static low (i.e., disabled) for an extended period
    of time then when the clock is actually enabled the timing delta between
    the rising edge and falling edge can change over the lifetime of the
    device. This can result in the device switching characteristics degrading
    over time, and eventually failing to meet the Data Manual Delay Time/Skew
    specs.
    To maintain RGMII 1000 Mbps IO Timings, SW should minimize the
    duration that the Ethernet internal clock source is disabled. Note that
    the device reset state for the Ethernet clock is "disabled".
    Other RGMII modes (10 Mbps, 100Mbps) are not affected
    
    Workaround:
    -----------
    If the SoC Ethernet interface(s) are used in RGMII mode at 1000 Mbps,
    SW should minimize the time the Ethernet internal clock source is disabled
    to a maximum of 200 hours in a device life cycle. This is done by enabling
    the clock as early as possible in IPL (QNX) or SPL/u-boot (Linux/Android)
    by setting the register CM_GMAC_CLKSTCTRL[1:0]CLKTRCTRL = 0x2:SW_WKUP.
    
    So, do not allow to gate the cpsw clocks using ti,no-idle property in
    cpsw node assuming 1000 Mbps is being used all the time. If someone does
    not need 1000 Mbps and wants to gate clocks to cpsw, this property needs
    to be deleted in their respective board files.
    
    Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Paul Walmsley <paul@pwsan.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 2497fc12b9810c7afac1c8c7e019079dd0bd632b
Author: Mugunthan V N <mugunthanvnm@ti.com>
Date:   Tue Oct 21 15:31:00 2014 +0530

    ARM: dts: dra7: Add CPSW and MDIO module nodes for dra7
    
    [ Upstream commit ef9c5b690079233a042887cd07279aac5ec692a8 ]
    
    Add CPSW and MDIO related device tree data for DRA7XX and made as status
    disabled. Phy-id, pinmux for active and sleep state needs to be added in
    board dts files and enable the CPSW device.
    
    Signed-off-by: Mugunthan V N <mugunthanvnm@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a302f98efd169ea0df9ee876b92cebcfcc0a8e4f
Author: Nicholas Bellinger <nab@linux-iscsi.org>
Date:   Sat Mar 5 20:00:12 2016 -0800

    target: Drop incorrect ABORT_TASK put for completed commands
    
    [ Upstream commit 7f54ab5ff52fb0b91569bc69c4a6bc5cac1b768d ]
    
    This patch fixes a recent ABORT_TASK regression associated
    with commit febe562c, where a left-over target_put_sess_cmd()
    would still be called when __target_check_io_state() detected
    a command has already been completed, and explicit ABORT must
    be avoided.
    
    Note commit febe562c dropped the local kref_get_unless_zero()
    check in core_tmr_abort_task(), but did not drop this extra
    corresponding target_put_sess_cmd() in the failure path.
    
    So go ahead and drop this now bogus target_put_sess_cmd(),
    and avoid this potential use-after-free.
    
    Reported-by: Dan Lane <dracodan@gmail.com>
    Cc: Quinn Tran <quinn.tran@qlogic.com>
    Cc: Himanshu Madhani <himanshu.madhani@qlogic.com>
    Cc: Sagi Grimberg <sagig@mellanox.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Andy Grover <agrover@redhat.com>
    Cc: Mike Christie <mchristi@redhat.com>
    Cc: stable@vger.kernel.org # 3.14+
    Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit a91db6218af2ecc7ae69ec6e40b9f53edb816577
Author: Konstantin Khlebnikov <koct9i@gmail.com>
Date:   Sun Jan 31 16:21:29 2016 +0300

    ovl: copy new uid/gid into overlayfs runtime inode
    
    [ Upstream commit b81de061fa59f17d2730aabb1b84419ef3913810 ]
    
    Overlayfs must update uid/gid after chown, otherwise functions
    like inode_owner_or_capable() will check user against stale uid.
    Catched by xfstests generic/087, it chowns file and calls utimes.
    
    Signed-off-by: Konstantin Khlebnikov <koct9i@gmail.com>
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit c190fea9a4f9669b424b6cbacc8b463574dd754f
Author: Rui Wang <rui.y.wang@intel.com>
Date:   Fri Jan 8 23:09:59 2016 +0800

    ovl: fix getcwd() failure after unsuccessful rmdir
    
    [ Upstream commit ce9113bbcbf45a57c082d6603b9a9f342be3ef74 ]
    
    ovl_remove_upper() should do d_drop() only after it successfully
    removes the dir, otherwise a subsequent getcwd() system call will
    fail, breaking userspace programs.
    
    This is to fix: https://bugzilla.kernel.org/show_bug.cgi?id=110491
    
    Signed-off-by: Rui Wang <rui.y.wang@intel.com>
    Reviewed-by: Konstantin Khlebnikov <koct9i@gmail.com>
    Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 1c767580d56097105f1e45bc9b71582599ea5638
Author: Jouni Malinen <jouni@qca.qualcomm.com>
Date:   Tue Mar 1 00:29:00 2016 +0200

    mac80211: Fix Public Action frame RX in AP mode
    
    [ Upstream commit 1ec7bae8bec9b72e347e01330c745ab5cdd66f0e ]
    
    Public Action frames use special rules for how the BSSID field (Address
    3) is set. A wildcard BSSID is used in cases where the transmitter and
    recipient are not members of the same BSS. As such, we need to accept
    Public Action frames with wildcard BSSID.
    
    Commit db8e17324553 ("mac80211: ignore frames between TDLS peers when
    operating as AP") added a rule that drops Action frames to TDLS-peers
    based on an Action frame having different DA (Address 1) and BSSID
    (Address 3) values. This is not correct since it misses the possibility
    of BSSID being a wildcard BSSID in which case the Address 1 would not
    necessarily match.
    
    Fix this by allowing mac80211 to accept wildcard BSSID in an Action
    frame when in AP mode.
    
    Fixes: db8e17324553 ("mac80211: ignore frames between TDLS peers when operating as AP")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 0e774b0d3d6c8f2c85b7e66bb7fdacdf065da7ee
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 29 18:01:18 2016 +0100

    ASoC: wm_adsp: Fix enum ctl accesses in a wrong type
    
    [ Upstream commit 15c665700bf6f4543f003ac0fbb1e9ec692e93f2 ]
    
    The firmware ctls like "DSP1 Firmware" in wm_adsp codec driver are
    enum, while the current driver accesses wrongly via
    value.integer.value[].  They have to be via value.enumerated.item[]
    instead.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8ace594ea7c69d8da65f0d056030a0cb6fdc4c81
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 29 18:01:15 2016 +0100

    ASoC: wm8994: Fix enum ctl accesses in a wrong type
    
    [ Upstream commit 8019c0b37cd5a87107808300a496388b777225bf ]
    
    The DRC Mode like "AIF1DRC1 Mode" and EQ Mode like "AIF1.1 EQ Mode" in
    wm8994 codec driver are enum ctls, while the current driver accesses
    wrongly via value.integer.value[].  They have to be via
    value.enumerated.item[] instead.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit d6a1481f7411425041271c3084f3c2e399dc6526
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 29 18:01:12 2016 +0100

    ASoC: wm8958: Fix enum ctl accesses in a wrong type
    
    [ Upstream commit d0784829ae3b0beeb69b476f017d5c8a2eb95198 ]
    
    "MBC Mode", "VSS Mode", "VSS HPF Mode" and "Enhanced EQ Mode" ctls in
    wm8958 codec driver are enum, while the current driver accesses
    wrongly via value.integer.value[].  They have to be via
    value.enumerated.item[] instead.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit bb431546329c853234bd5e2c5be83bbbcfbbdf45
Author: Maximilain Schneider <max@schneidersoft.net>
Date:   Tue Feb 23 01:17:28 2016 +0000

    can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
    
    [ Upstream commit e9a2d81b1761093386a0bb8a4f51642ac785ef63 ]
    
    gs_destroy_candev() erroneously calls kfree() on a struct gs_can *, which is
    allocated through alloc_candev() and should instead be freed using
    free_candev() alone.
    
    The inappropriate use of kfree() causes the kernel to hang when
    gs_destroy_candev() is called.
    
    Only the struct gs_usb * which is allocated through kzalloc() should be freed
    using kfree() when the device is disconnected.
    
    Signed-off-by: Maximilian Schneider <max@schneidersoft.net>
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit cd9cd1897ee4a25d347f487931d79d2d8694e52f
Author: Felix Fietkau <nbd@openwrt.org>
Date:   Thu Feb 18 19:49:18 2016 +0100

    mac80211: minstrel_ht: set default tx aggregation timeout to 0
    
    [ Upstream commit 7a36b930e6ed4702c866dc74a5ad07318a57c688 ]
    
    The value 5000 was put here with the addition of the timeout field to
    ieee80211_start_tx_ba_session. It was originally added in mac80211 to
    save resources for drivers like iwlwifi, which only supports a limited
    number of concurrent aggregation sessions.
    
    Since iwlwifi does not use minstrel_ht and other drivers don't need
    this, 0 is a better default - especially since there have been
    recent reports of aggregation setup related issues reproduced with
    ath9k. This should improve stability without causing any adverse
    effects.
    
    Cc: stable@vger.kernel.org
    Acked-by: Avery Pennarun <apenwarr@gmail.com>
    Signed-off-by: Felix Fietkau <nbd@openwrt.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 8d6519ee0630070cdde63df5f75e2b5d4c83ea9e
Author: Liad Kaufman <liad.kaufman@intel.com>
Date:   Sun Feb 14 15:32:58 2016 +0200

    iwlwifi: mvm: inc pending frames counter also when txing non-sta
    
    [ Upstream commit fb896c44f88a75843a072cd6961b1615732f7811 ]
    
    Until this patch, when TXing non-sta the pending_frames counter
    wasn't increased, but it WAS decreased in
    iwl_mvm_rx_tx_cmd_single(), what makes it negative in certain
    conditions. This in turn caused much trouble when we need to
    remove the station since we won't be waiting forever until
    pending_frames gets 0. In certain cases, we were exhausting
    the station table even in BSS mode, because we had a lot of
    stale stations.
    
    Increase the counter also in iwl_mvm_tx_skb_non_sta() after a
    successful TX to avoid this outcome.
    
    CC: <stable@vger.kernel.org> [3.18+]
    Signed-off-by: Liad Kaufman <liad.kaufman@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 9fea93e6f0ffb4b9f9f852e66720852a3a8cf06d
Author: Chris Bainbridge <chris.bainbridge@gmail.com>
Date:   Wed Jan 27 15:46:18 2016 +0000

    mac80211: fix use of uninitialised values in RX aggregation
    
    [ Upstream commit f39ea2690bd61efec97622c48323f40ed6e16317 ]
    
    Use kzalloc instead of kmalloc for struct tid_ampdu_rx to
    initialize the "removed" field (all others are initialized
    manually). That fixes:
    
    UBSAN: Undefined behaviour in net/mac80211/rx.c:932:29
    load of value 2 is not a valid value for type '_Bool'
    CPU: 3 PID: 1134 Comm: kworker/u16:7 Not tainted 4.5.0-rc1+ #265
    Workqueue: phy0 rt2x00usb_work_rxdone
     0000000000000004 ffff880254a7ba50 ffffffff8181d866 0000000000000007
     ffff880254a7ba78 ffff880254a7ba68 ffffffff8188422d ffffffff8379b500
     ffff880254a7bab8 ffffffff81884747 0000000000000202 0000000348620032
    Call Trace:
     [<ffffffff8181d866>] dump_stack+0x45/0x5f
     [<ffffffff8188422d>] ubsan_epilogue+0xd/0x40
     [<ffffffff81884747>] __ubsan_handle_load_invalid_value+0x67/0x70
     [<ffffffff82227b4d>] ieee80211_sta_reorder_release.isra.16+0x5ed/0x730
     [<ffffffff8222ca14>] ieee80211_prepare_and_rx_handle+0xd04/0x1c00
     [<ffffffff8222db03>] __ieee80211_rx_handle_packet+0x1f3/0x750
     [<ffffffff8222e4a7>] ieee80211_rx_napi+0x447/0x990
    
    While at it, convert to use sizeof(*tid_agg_rx) instead.
    
    Fixes: 788211d81bfdf ("mac80211: fix RX A-MPDU session reorder timer deletion")
    Cc: stable@vger.kernel.org
    Signed-off-by: Chris Bainbridge <chris.bainbridge@gmail.com>
    [reword commit message, use sizeof(*tid_agg_rx)]
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 103ed77bd8c215adf4894160ced9e92430b793ab
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Jan 27 13:29:34 2016 +0100

    cfg80211/wext: fix message ordering
    
    [ Upstream commit cb150b9d23be6ee7f3a0fff29784f1c5b5ac514d ]
    
    Since cfg80211 frequently takes actions from its netdev notifier
    call, wireless extensions messages could still be ordered badly
    since the wext netdev notifier, since wext is built into the
    kernel, runs before the cfg80211 netdev notifier. For example,
    the following can happen:
    
    5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
        link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
    5: wlan1: <BROADCAST,MULTICAST,UP>
        link/ether
    
    when setting the interface down causes the wext message.
    
    To also fix this, export the wireless_nlevent_flush() function
    and also call it from the cfg80211 notifier.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>

commit 3cd0bea64f469daaad760b8c05ced3494e44a893
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Jan 27 12:37:52 2016 +0100

    wext: fix message delay/ordering
    
    [ Upstream commit 8bf862739a7786ae72409220914df960a0aa80d8 ]
    
    Beniamino reported that he was getting an RTM_NEWLINK message for a
    given interface, after the RTM_DELLINK for it. It turns out that the
    message is a wireless extensions message, which was sent because the
    interface had been connected and disconnection while it was deleted
    caused a wext message.
    
    For its netlink messages, wext uses RTM_NEWLINK, but the message is
    without all the regular rtnetlink attributes, so "ip monitor link"
    prints just rudimentary information:
    
    5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
        link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
    Deleted 5: wlan1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default
        link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ff
    5: wlan1: <BROADCAST,MULTICAST,UP>
        link/ether
    (from my hwsim reproduction)
    
    This can cause userspace to get confused since it doesn't expect an
    RTM_NEWLINK message after RTM_DELLINK.
    
    The reason for this is that wext schedules a worker to send out the
    messages, and the scheduling delay can cause the messages to get out
    to userspace in different order.
    
    To fix this, have wext register a netdevice notifier and flush out
    any pending messages when netdevice state changes. This fixes any
    ordering whenever the original message wasn't sent by a notifier
    itself.
    
    Cc: stable@vger.kernel.org
    Reported-by: Beniamino Galvani <bgalvani@redhat.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>