commit cb371265c2f1a0dd0cee03bd7fff413d671c53f0
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Dec 9 14:03:42 2015 -0500

    Linux 4.1.14

commit a52ec6de6d1638e8c203d7188c55627f75371612
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Dec 8 14:13:19 2015 +0800

    netlink: Add missing goto statement to netlink_insert
    
    The backport of 1f770c0a09da855a2b51af6d19de97fb955eca85 ("netlink:
    Fix autobind race condition that leads to zero port ID") missed a
    goto statement, which causes netlink to break subtly.
    
    This was discovered by Stefan Priebe <s.priebe@profihost.ag>.
    
    Fixes: 4e2776241766 ("netlink: Fix autobind race condition that...")
    Reported-by: Stefan Priebe <s.priebe@profihost.ag>
    Reported-by: Philipp Hahn <pmhahn@pmhahn.de>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f11689e161c77fa0bcda8a5aa3b4829c7da7fab
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Fri Nov 6 12:08:48 2015 +0100

    KVM: s390: enable SIMD only when no VCPUs were created
    
    commit 5967c17b118a2bd1dd1d554cc4eee16233e52bec upstream.
    
    We should never allow to enable/disable any facilities for the guest
    when other VCPUs were already created.
    
    kvm_arch_vcpu_(load|put) relies on SIMD not changing during runtime.
    If somebody would create and run VCPUs and then decides to enable
    SIMD, undefined behaviour could be possible (e.g. vector save area
    not being set up).
    
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5051ab9f8dbc131c01acc79c0a8b010e0651fbbe
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Sun Sep 27 16:45:01 2015 -0400

    staging/lustre: use jiffies for lp_last_query times
    
    commit 9f088dba3cc267ea11ec0da318cd0175575b5f9b upstream.
    
    The recently introduced lnet_peer_set_alive() function uses
    get_seconds() to read the current time into a shared variable,
    but all other uses of that variable compare it to jiffies values.
    
    This changes the current use to jiffies as well for consistency.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: af3fa7c71bf ("staging/lustre/lnet: peer aliveness status and NI status")
    Cc: Liang Zhen <liang.zhen@intel.com>
    Cc: James Simmons <uja.ornl@gmail.com>
    Cc: Isaac Huang <he.huang@intel.com>
    Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84390caa6331908d76aa63b8eda0e69f557dda06
Author: Rajmohan Mani <rajmohan.mani@intel.com>
Date:   Wed Nov 18 10:48:20 2015 +0200

    xhci: Workaround to get Intel xHCI reset working more reliably
    
    commit a5964396190d0c40dd549c23848c282fffa5d1f2 upstream.
    
    Existing Intel xHCI controllers require a delay of 1 mS,
    after setting the CMD_RESET bit in command register, before
    accessing any HC registers. This allows the HC to complete
    the reset operation and be ready for HC register access.
    Without this delay, the subsequent HC register access,
    may result in a system hang, very rarely.
    
    Verified CherryView / Braswell platforms go through over
    5000 warm reboot cycles (which was not possible without
    this patch), without any xHCI reset hang.
    
    Signed-off-by: Rajmohan Mani <rajmohan.mani@intel.com>
    Tested-by: Joe Lawrence <joe.lawrence@stratus.com>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff4fcbdf43bc4ae760ef1e7782e233156ed90a75
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Wed Nov 11 08:03:54 2015 -0500

    tty: Fix tty_send_xchar() lock order inversion
    
    commit ee0c1a65cf95230d5eb3d9de94fd2ead9a428c67 upstream.
    
    The correct lock order is atomic_write_lock => termios_rwsem, as
    established by tty_write() => n_tty_write().
    
    Fixes: c274f6ef1c666 ("tty: Hold termios_rwsem for tcflow(TCIxxx)")
    Reported-and-Tested-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d0fe5721d2725e58429a9b54149a20f9f590451
Author: Peter Hurley <peter@hurleysoftware.com>
Date:   Sun Nov 8 08:52:31 2015 -0500

    tty: audit: Fix audit source
    
    commit 6b2a3d628aa752f0ab825fc6d4d07b09e274d1c1 upstream.
    
    The data to audit/record is in the 'from' buffer (ie., the input
    read buffer).
    
    Fixes: 72586c6061ab ("n_tty: Fix auditing support for cannonical mode")
    Cc: Miloslav Trmač <mitr@redhat.com>
    Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
    Acked-by: Laura Abbott <labbott@fedoraproject.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4676cd7863ab38502bd7b93854a8924446372d78
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Sun Nov 15 22:39:08 2015 +0100

    ALSA: usb-audio: work around CH345 input SysEx corruption
    
    commit a91e627e3f0ed820b11d86cdc04df38f65f33a70 upstream.
    
    One of the many faults of the QinHeng CH345 USB MIDI interface chip is
    that it does not handle received SysEx messages correctly -- every second
    event packet has a wrong code index number, which is the one from the last
    seen message, instead of 4.  For example, the two messages "FE F0 01 02 03
    04 05 06 07 08 09 0A 0B 0C 0D 0E F7" result in the following event
    packets:
    
    correct:       CH345:
    0F FE 00 00    0F FE 00 00
    04 F0 01 02    04 F0 01 02
    04 03 04 05    0F 03 04 05
    04 06 07 08    04 06 07 08
    04 09 0A 0B    0F 09 0A 0B
    04 0C 0D 0E    04 0C 0D 0E
    05 F7 00 00    05 F7 00 00
    
    A class-compliant driver must interpret an event packet with CIN 15 as
    having a single data byte, so the other two bytes would be ignored.  The
    message received by the host would then be missing two bytes out of six;
    in this example, "F0 01 02 03 06 07 08 09 0C 0D 0E F7".
    
    These corrupted SysEx event packages contain only data bytes, while the
    CH345 uses event packets with a correct CIN value only for messages with
    a status byte, so it is possible to distinguish between these two cases by
    checking for the presence of this status byte.
    
    (Other bugs in the CH345's input handling, such as the corruption resulting
    from running status, cannot be worked around.)
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96c9346aee41d4fb14fa0ab6fdd81b187f496311
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Sun Nov 15 22:38:29 2015 +0100

    ALSA: usb-audio: prevent CH345 multiport output SysEx corruption
    
    commit 1ca8b201309d842642f221db7f02f71c0af5be2d upstream.
    
    The CH345 USB MIDI chip has two output ports.  However, they are
    multiplexed through one pin, and the number of ports cannot be reduced
    even for hardware that implements only one connector, so for those
    devices, data sent to either port ends up on the same hardware output.
    This becomes a problem when both ports are used at the same time, as
    longer MIDI commands (such as SysEx messages) are likely to be
    interrupted by messages from the other port, and thus to get lost.
    
    It would not be possible for the driver to detect how many ports the
    device actually has, except that in practice, _all_ devices built with
    the CH345 have only one port.  So we can just ignore the device's
    descriptors, and hardcode one output port.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 237508eb5ac73c95b51229d9bbcf152da9354156
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Sun Nov 15 22:37:44 2015 +0100

    ALSA: usb-audio: add packet size quirk for the Medeli DD305
    
    commit 98d362becb6621bebdda7ed0eac7ad7ec6c37898 upstream.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52066c02fc214cd83d0354b98fb12dbe2199095f
Author: Bjørn Mork <bjorn@mork.no>
Date:   Wed Nov 18 21:12:33 2015 +0100

    USB: option: add XS Stick W100-2 from 4G Systems
    
    commit 638148e20c7f8f6e95017fdc13bce8549a6925e0 upstream.
    
    Thomas reports
    "
    4gsystems sells two total different LTE-surfsticks under the same name.
    ..
    The newer version of XS Stick W100 is from "omega"
    ..
    Under windows the driver switches to the same ID, and uses MI03\6 for
    network and MI01\6 for modem.
    ..
    echo "1c9e 9b01" > /sys/bus/usb/drivers/qmi_wwan/new_id
    echo "1c9e 9b01" > /sys/bus/usb-serial/drivers/option1/new_id
    
    T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  4 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1c9e ProdID=9b01 Rev=02.32
    S:  Manufacturer=USB Modem
    S:  Product=USB Modem
    S:  SerialNumber=
    C:  #Ifs= 5 Cfg#= 1 Atr=80 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 1 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
    I:  If#= 3 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
    I:  If#= 4 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
    
    Now all important things are there:
    
    wwp0s29f7u2i3 (net), ttyUSB2 (at), cdc-wdm0 (qmi), ttyUSB1 (at)
    
    There is also ttyUSB0, but it is not usable, at least not for at.
    
    The device works well with qmi and ModemManager-NetworkManager.
    "
    
    Reported-by: Thomas Schäfer <tschaefer@t-online.de>
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31fe65f261093ab3b6ded26a9b53645c3309beb7
Author: Aleksander Morgado <aleksander@aleksander.es>
Date:   Wed Nov 11 19:51:40 2015 +0100

    USB: serial: option: add support for Novatel MiFi USB620L
    
    commit e07af133c3e2716db25e3e1e1d9f10c2088e9c1a upstream.
    
    Also known as Verizon U620L.
    
    The device is modeswitched from 1410:9020 to 1410:9022 by selecting the
    4th USB configuration:
    
     $ sudo usb_modeswitch –v 0x1410 –p 0x9020 –u 4
    
    This configuration provides a ECM interface as well as TTYs ('Enterprise
    Mode' according to the U620 Linux integration guide).
    
    Signed-off-by: Aleksander Morgado <aleksander@aleksander.es>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea7f479eb3467ca2db0798a1daf3540493eca8a5
Author: David Woodhouse <dwmw2@infradead.org>
Date:   Sat Nov 14 16:49:30 2015 +0000

    USB: ti_usb_3410_5052: Add Honeywell HGI80 ID
    
    commit 1bcb49e663f88bccee35b8688e6a3da2bea31fd4 upstream.
    
    The Honeywell HGI80 is a wireless interface to the evohome connected
    thermostat. It uses a TI 3410 USB-serial port.
    
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6418b4c85b6f2e1f8c1162f0ba2c30c74655c35c
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Fri Oct 23 09:53:50 2015 +0200

    usb: musb: core: fix order of arguments to ulpi write callback
    
    commit 705e63d2b29c8bbf091119084544d353bda70393 upstream.
    
    There is a bit of a mess in the order of arguments to the ulpi write
    callback. There is
    
    	int ulpi_write(struct ulpi *ulpi, u8 addr, u8 val)
    
    in drivers/usb/common/ulpi.c;
    
    	struct usb_phy_io_ops {
    		...
    		int (*write)(struct usb_phy *x, u32 val, u32 reg);
    	}
    
    in include/linux/usb/phy.h.
    
    The callback registered by the musb driver has to comply to the latter,
    but up to now had "offset" first which effectively made the function
    broken for correct users. So flip the order and while at it also
    switch to the parameter names of struct usb_phy_io_ops's write.
    
    Fixes: ffb865b1e460 ("usb: musb: add ulpi access operations")
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 794ffe19dbb74f207e593cb38b3f0c9db5cbb736
Author: Bjørn Mork <bjorn@mork.no>
Date:   Mon Nov 16 13:15:46 2015 +0100

    USB: qcserial: Fix support for HP lt4112 LTE/HSPA+ Gobi 4G Modem
    
    commit 59536da34513c594af2a6fd35ba65ea45b6960a1 upstream.
    
    The DEVICE_HWI type was added under the faulty assumption that Huawei
    devices based on Qualcomm chipsets and firmware use the static USB
    interface numbering known from Gobi devices.  But this model does
    not apply to Huawei devices like the HP branded lt4112 (Huawei me906e).
    Huawei firmwares will dynamically assign interface numbers. Functions
    are renumbered when the firmware is reconfigured.
    
    Fix by changing the DEVICE_HWI type to use a simplified version
    of Huawei's subclass + protocol scheme: Blacklisting known network
    interface combinations and assuming the rest are serial.
    
    Reported-and-tested-by: Muri Nicanor <muri+libqmi@immerda.ch>
    Tested-by: Martin Hauke <mardnh@gmx.de>
    Fixes: e7181d005e84 ("USB: qcserial: Add support for HP lt4112 LTE/HSPA+ Gobi 4G Modem")
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93414949d3eba5e70ee931c389508ce09cc56607
Author: Petr Å tetiar <ynezz@true.cz>
Date:   Tue Nov 3 11:25:28 2015 +0100

    USB: qcserial: Add support for Quectel EC20 Mini PCIe module
    
    commit 9d5b5ed796d7afd7e8d2ac4b4fb77c6a49463f4b upstream.
    
    It seems like this device has same vendor and product IDs as G2K
    devices, but it has different number of interfaces(4 vs 5) and also
    different interface layout which makes it currently unusable:
    
    	usbcore: registered new interface driver qcserial
    	usbserial: USB Serial support registered for Qualcomm USB modem
    	usb 2-1.2: unknown number of interfaces: 5
    
    lsusb output:
    
    	Bus 002 Device 003: ID 05c6:9215 Qualcomm, Inc. Acer Gobi 2000 Wireless
    	Device Descriptor:
    	  bLength                18
    	  bDescriptorType         1
    	  bcdUSB               2.00
    	  bDeviceClass            0 (Defined at Interface level)
    	  bDeviceSubClass         0
    	  bDeviceProtocol         0
    	  bMaxPacketSize0        64
    	  idVendor           0x05c6 Qualcomm, Inc.
    	  idProduct          0x9215 Acer Gobi 2000 Wireless Modem
    	  bcdDevice            2.32
    	  iManufacturer           1 Quectel
    	  iProduct                2 Quectel LTE Module
    	  iSerial                 0
    	  bNumConfigurations      1
    	  Configuration Descriptor:
    	    bLength                 9
    	    bDescriptorType         2
    	    wTotalLength          209
    	    bNumInterfaces          5
    	    bConfigurationValue     1
    	    iConfiguration          0
    	    bmAttributes         0xa0
    	      (Bus Powered)
    	      Remote Wakeup
    	    MaxPower              500mA
    
    Signed-off-by: Petr Å tetiar <ynezz@true.cz>
    [johan: rename define and add comment ]
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 058b97489fc05b9aa19456c83084104e6bfbfc72
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Mon Nov 2 10:27:00 2015 +0100

    usblp: do not set TASK_INTERRUPTIBLE before lock
    
    commit 19cd80a214821f4b558560ebd76bfb2c38b4f3d8 upstream.
    
    It is not permitted to set task state before lock. usblp_wwait sets
    the state to TASK_INTERRUPTIBLE and calls mutex_lock_interruptible.
    Upon return from that function, the state will be TASK_RUNNING again.
    
    This is clearly a bug and a warning is generated with LOCKDEP too:
    WARNING: CPU: 1 PID: 5109 at kernel/sched/core.c:7404 __might_sleep+0x7d/0x90()
    do not call blocking ops when !TASK_RUNNING; state=1 set at [<ffffffffa0c588d0>] usblp_wwait+0xa0/0x310 [usblp]
    Modules linked in: ...
    CPU: 1 PID: 5109 Comm: captmon Tainted: G        W       4.2.5-0.gef2823b-default #1
    Hardware name: LENOVO 23252SG/23252SG, BIOS G2ET33WW (1.13 ) 07/24/2012
     ffffffff81a4edce ffff880236ec7ba8 ffffffff81716651 0000000000000000
     ffff880236ec7bf8 ffff880236ec7be8 ffffffff8106e146 0000000000000282
     ffffffff81a50119 000000000000028b 0000000000000000 ffff8802dab7c508
    Call Trace:
    ...
     [<ffffffff8106e1c6>] warn_slowpath_fmt+0x46/0x50
     [<ffffffff8109a8bd>] __might_sleep+0x7d/0x90
     [<ffffffff8171b20f>] mutex_lock_interruptible_nested+0x2f/0x4b0
     [<ffffffffa0c588fc>] usblp_wwait+0xcc/0x310 [usblp]
     [<ffffffffa0c58bb2>] usblp_write+0x72/0x350 [usblp]
     [<ffffffff8121ed98>] __vfs_write+0x28/0xf0
    ...
    
    Commit 7f477358e2384c54b190cc3b6ce28277050a041b (usblp: Implement the
    ENOSPC convention) moved the set prior locking. So move it back after
    the lock.
    
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Fixes: 7f477358e2 ("usblp: Implement the ENOSPC convention")
    Acked-By: Pete Zaitcev <zaitcev@yahoo.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81f136ae6cac5c2fd92136bd530cd69a42dbddfa
Author: Jonas Gorski <jogo@openwrt.org>
Date:   Sun Aug 23 15:01:08 2015 +0200

    usb: ehci-orion: fix probe for !GENERIC_PHY
    
    commit db1319e166c5e872c4be54eac4e47454133708cf upstream.
    
    Commit d445913ce0ab7f ("usb: ehci-orion: add optional PHY support")
    added support for optional phys, but devm_phy_optional_get returns
    -ENOSYS if GENERIC_PHY is not enabled.
    
    This causes probe failures, even when there are no phys specified:
    
    [    1.443365] orion-ehci f1058000.usb: init f1058000.usb fail, -38
    [    1.449403] orion-ehci: probe of f1058000.usb failed with error -38
    
    Similar to dwc3, treat -ENOSYS as no phy.
    
    Fixes: d445913ce0ab7f ("usb: ehci-orion: add optional PHY support")
    
    Signed-off-by: Jonas Gorski <jogo@openwrt.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3577eb6d02c3f5bf751f60f125e34c2197605c65
Author: Jurgen Kramer <gtmkramer@xs4all.nl>
Date:   Mon Nov 9 12:13:55 2015 +0100

    ALSA: usb: Add native DSD support for Aune X1S
    
    commit 16771c7c704769c5f3d70c024630b6e5b3eafa67 upstream.
    
    This patch adds native DSD support for the Aune X1S 32BIT/384 DSD DAC
    
    Signed-off-by: Jurgen Kramer <gtmkramer@xs4all.nl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fca6d6f19873f5070f191046134cc2645308b385
Author: Peter Chen <peter.chen@freescale.com>
Date:   Wed Sep 16 09:40:51 2015 +0800

    usb: chipidea: imx: refine clock operations to adapt for all platforms
    
    commit ae3e57ae26cdcc85728bb566f999bcb9a7cc6954 upstream.
    
    Some i.mx platforms need three clocks to let controller work, but
    others only need one, refine clock operation to adapt for all
    platforms, it fixes a regression found at i.mx27.
    
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 697fdbae08daee5004883a928618dcd086d25d72
Author: John Youn <John.Youn@synopsys.com>
Date:   Sat Sep 26 00:11:15 2015 -0700

    usb: dwc3: pci: Add platform data for Synopsys HAPS
    
    commit bb7f3d6d323a56b9c3b3e727380d1395a7f10107 upstream.
    
    Add platform data and set usb3_lpm_capable and has_lpm_erratum.
    
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee7683c9fe19be73f9833c8e9ede856fc10dec6e
Author: John Youn <John.Youn@synopsys.com>
Date:   Fri Sep 4 19:15:10 2015 -0700

    usb: dwc3: Support Synopsys USB 3.1 IP
    
    commit 690fb3718a70c66004342f6f5e2e8a5f95b977db upstream.
    
    This patch allows the dwc3 driver to run on the new Synopsys USB 3.1
    IP core, albeit in USB 3.0 mode only.
    
    The Synopsys USB 3.1 IP (DWC_usb31) retains mostly the same register
    interface and programming model as the existing USB 3.0 controller IP
    (DWC_usb3). However the GSNPSID and version numbers are different.
    
    Add checking for the new ID to pass driver probe.
    
    Also, since the DWC_usb31 version number is lower in value than the
    full GSNPSID of the DWC_usb3 IP, we set the high bit to identify
    DWC_usb31 and to ensure the values are higher.
    
    Finally, add a documentation note about the revision numbering scheme.
    Any future revision checks (for STARS, workarounds, and new features)
    should take into consideration how it applies to both the 3.1/3.0 IP.
    
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9426f37e18d0841732906aa0d478c135d439a513
Author: John Youn <John.Youn@synopsys.com>
Date:   Fri Aug 7 11:47:25 2015 -0700

    usb: dwc3: pci: Add the PCI Product ID for Synopsys USB 3.1
    
    commit e8095a25364a30216ad40dbe8893ed5c3c235949 upstream.
    
    This adds the PCI product ID for the Synopsys USB 3.1 IP core
    (DWC_usb31) on a HAPS-based PCI development platform.
    
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 443635f85070a57047c5fdc3b24e5454bda71052
Author: John Youn <John.Youn@synopsys.com>
Date:   Fri Aug 7 11:04:14 2015 -0700

    usb: dwc3: pci: Add the Synopsys HAPS AXI Product ID
    
    commit 41adc59caece02aa2e988a0e8f9fe8e6f426f82e upstream.
    
    This ID is for the Synopsys DWC_usb3 core with AXI interface on PCIe
    HAPS platform. This core has the debug registers mapped at a separate
    BAR in order to support enhanced hibernation.
    
    Signed-off-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13ba3569a6693d05c345590cee38ac3593f36640
Author: Li Jun <B47624@freescale.com>
Date:   Fri Dec 12 09:11:42 2014 +0800

    usb: chipidea: otg: gadget module load and unload support
    
    commit 85da852df66e5e0d3aba761b0fece7c958ff0685 upstream.
    
    This patch is to support load and unload gadget driver in full OTG mode.
    
    Signed-off-by: Li Jun <jun.li@freescale.com>
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Tested-by: Jiada Wang <jiada_wang@mentor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d23ccdaf7fce2f728db596f32b991b048be6f694
Author: Ben McCauley <ben.mccauley@garmin.com>
Date:   Mon Nov 16 10:47:24 2015 -0600

    usb: dwc3: gadget: let us set lower max_speed
    
    commit b9e51b2b1fda19143f48d182ed7a2943f21e1ae4 upstream.
    
    In some SoCs, dwc3 is implemented as a USB2.0 only
    core, meaning that it can't ever achieve SuperSpeed.
    
    Currect driver always sets gadget.max_speed to
    USB_SPEED_SUPER unconditionally. This can causes
    issues to some Host stacks where the host will issue
    a GetBOS() request and we will reply with a BOS
    containing Superspeed Capability Descriptor.
    
    At least Windows seems to be upset by this fact and
    prints a warning that we should connect $this device
    to another port.
    
    [ balbi@ti.com : rewrote entire commit, including
    source code comment to make a lot clearer what the
    problem is ]
    
    Signed-off-by: Ben McCauley <ben.mccauley@garmin.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ea7903e91418e5adde88c40fb65ba8047e77f67
Author: Douglas Gilbert <dgilbert@interlog.com>
Date:   Mon Nov 16 19:22:08 2015 +0100

    usb: gadget: atmel_usba_udc: Expose correct device speed
    
    commit d134c48d889ddceadf4c990e6f3df16b816ed5d4 upstream.
    
    Following changes that appeared in lk 4.0.0, the gadget udc driver for
    some ARM based Atmel SoCs (e.g. at91sam9x5 and sama5d3 families)
    incorrectly deduced full-speed USB link speed even when the hardware
    had negotiated a high-speed link. The fix is to make sure that the
    UDPHS Interrupt Enable Register value does not mask the SPEED bit
    in the Interrupt Status Register.
    
    For a mass storage gadget this problem lead to failures when the host
    had a USB 3 port with the xhci_hcd driver. If the host was a USB 2
    port using the ehci_hcd driver then the mass storage gadget worked
    (but probably at a lower speed than it should have).
    
    Signed-off-by: Douglas Gilbert <dgilbert@interlog.com>
    Reviewed-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Fixes: 9870d895ad87 ("usb: atmel_usba_udc: Mask status with enabled irqs")
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ea81ff2449fe9f22c5fdaca530a17a7b0f4b25a
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Aug 31 19:48:28 2015 +0300

    Revert "usb: dwc3: gadget: drop unnecessary loop when cleaning up TRBs"
    
    commit d115d7050a0d2c4967532f18c9cb522fea6b7280 upstream.
    
    This reverts commit 8f2c9544aba636134303105ecb164190a39dece4.
    
    As it breaks g_ether on my Baytrail FFRD8 device. Everything starts out
    fine, but after a bit of data has been transferred it just stops
    flowing.
    
    Note that I do get a bunch of these "NOHZ: local_softirq_pending 08"
    when booting the machine, but I'm not really sure if they're related
    to this problem.
    
    Cc: Felipe Balbi <balbi@ti.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: linux-usb@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c122e95e73cfafcea67c821240ff828cc57c6cf
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Thu Nov 5 09:38:15 2015 +0100

    KVM: s390: avoid memory overwrites on emergency signal injection
    
    commit b85de33a1a3433487b6a721cfdce25ec8673e622 upstream.
    
    Commit 383d0b050106 ("KVM: s390: handle pending local interrupts via
    bitmap") introduced a possible memory overwrite from user space.
    
    User space could pass an invalid emergency signal code (sending VCPU)
    and therefore exceed the bitmap. Let's take care of this case and
    check that the id is in the valid range.
    
    Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 22b017c37086e870866aaba204534c41a4a7e816
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Thu Nov 5 09:06:06 2015 +0100

    KVM: s390: fix wrong lookup of VCPUs by array index
    
    commit 152e9f65d66f0a3891efc3869440becc0e7ff53f upstream.
    
    For now, VCPUs were always created sequentially with incrementing
    VCPU ids. Therefore, the index in the VCPUs array matched the id.
    
    As sequential creation might change with cpu hotplug, let's use
    the correct lookup function to find a VCPU by id, not array index.
    
    Let's also use kvm_lookup_vcpu() for validation of the sending VCPU
    on external call injection.
    
    Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af2bcce2e22c7d59816e890d67ab1af91fe0d95a
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Thu Nov 5 09:03:50 2015 +0100

    KVM: Provide function for VCPU lookup by id
    
    commit db27a7a37aa0b1f8b373f8b0fb72a2ccaafb85b7 upstream.
    
    Let's provide a function to lookup a VCPU by id.
    
    Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Reviewed-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    [split patch from refactoring patch]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ba8381fd8653d7438cdd3fe3e7fc4d9004b7c27
Author: David Hildenbrand <dahi@linux.vnet.ibm.com>
Date:   Mon Oct 26 08:41:29 2015 +0100

    KVM: s390: SCA must not cross page boundaries
    
    commit c5c2c393468576bad6d10b2b5fefff8cd25df3f4 upstream.
    
    We seemed to have missed a few corner cases in commit f6c137ff00a4
    ("KVM: s390: randomize sca address").
    
    The SCA has a maximum size of 2112 bytes. By setting the sca_offset to
    some unlucky numbers, we exceed the page.
    
    0x7c0 (1984) -> Fits exactly
    0x7d0 (2000) -> 16 bytes out
    0x7e0 (2016) -> 32 bytes out
    0x7f0 (2032) -> 48 bytes out
    
    One VCPU entry is 32 bytes long.
    
    For the last two cases, we actually write data to the other page.
    1. The address of the VCPU.
    2. Injection/delivery/clearing of SIGP externall calls via SIGP IF.
    
    Especially the 2. happens regularly. So this could produce two problems:
    1. The guest losing/getting external calls.
    2. Random memory overwrites in the host.
    
    So this problem happens on every 127 + 128 created VM with 64 VCPUs.
    
    Acked-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com>
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72c82827d94a0c05d709a2019de0f2225ca2ca40
Author: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
Date:   Tue Nov 3 11:51:33 2015 +0530

    ath10k: fix invalid NSS for 4x4 devices
    
    commit f680f70adbeab28b35f849016b964dd645db6237 upstream.
    
    The number of spatial streams that are derived from chain mask
    for 4x4 devices is using wrong bitmask and conditional check.
    This is affecting downlink throughput for QCA99x0 devices. Earlier
    cfg_tx_chainmask is not filled by default until user configured it
    and so get_nss_from_chainmask never be called. This issue is exposed
    by recent commit 166de3f1895d ("ath10k: remove supported chain mask").
    By default maximum supported chain mask is filled in cfg_tx_chainmask.
    
    Fixes: 5572a95b4b ("ath10k: apply chainmask settings to vdev on creation")
    Signed-off-by: Rajkumar Manoharan <rmanohar@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3a80fbec20ffa27f71295d24ce456934ad8c7a7
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Mon Oct 26 21:42:33 2015 +0000

    arm64: page-align sections for DEBUG_RODATA
    
    commit cb083816ab5ac3d10a9417527f07fc5962cc3808 upstream.
    
    A kernel built with DEBUG_RO_DATA && !CONFIG_DEBUG_ALIGN_RODATA doesn't
    have .text aligned to a page boundary, though fixup_executable works at
    page-granularity thanks to its use of create_mapping. If .text is not
    page-aligned, the first page it exists in may be marked non-executable,
    leading to failures when an attempt is made to execute code in said
    page.
    
    This patch upgrades ALIGN_DEBUG_RO and ALIGN_DEBUG_RO_MIN to force page
    alignment for DEBUG_RO_DATA && !CONFIG_DEBUG_ALIGN_RODATA kernels,
    ensuring that all sections with specific RWX permission requirements are
    mapped with the correct permissions.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Reported-by: Jeremy Linton <jeremy.linton@arm.com>
    Reviewed-by: Laura Abbott <laura@labbott.name>
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Suzuki Poulose <suzuki.poulose@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Fixes: da141706aea52c1a ("arm64: add better page protections to arm64")
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a95468b014b7389e858b847449bb56cb7c4857a4
Author: Robin Murphy <robin.murphy@arm.com>
Date:   Thu Oct 22 15:41:52 2015 +0100

    arm64: Fix compat register mappings
    
    commit 5accd17d0eb523350c9ef754d655e379c9bb93b3 upstream.
    
    For reasons not entirely apparent, but now enshrined in history, the
    architectural mapping of AArch32 banked registers to AArch64 registers
    actually orders SP_<mode> and LR_<mode> backwards compared to the
    intuitive r13/r14 order, for all modes except FIQ.
    
    Fix the compat_<reg>_<mode> macros accordingly, in the hope of avoiding
    subtle bugs with KVM and AArch32 guests.
    
    Signed-off-by: Robin Murphy <robin.murphy@arm.com>
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 39851b0e4e62065a24ef2d96c7e32f6e4a5bc581
Author: Mirza Krak <mirza.krak@hostmobility.com>
Date:   Tue Nov 10 14:59:34 2015 +0100

    can: sja1000: clear interrupts on start
    
    commit 7cecd9ab80f43972c056dc068338f7bcc407b71c upstream.
    
    According to SJA1000 data sheet error-warning (EI) interrupt is not
    cleared by setting the controller in to reset-mode.
    
    Then if we have the following case:
    - system is suspended (echo mem > /sys/power/state) and SJA1000 is left
      in operating state
    - A bus error condition occurs which activates EI interrupt, system is
      still suspended which means EI interrupt will be not be handled nor
      cleared.
    
    If the above two events occur, on resume there is no way to return the
    SJA1000 to operating state, except to cycle power to it.
    
    By simply reading the IR register on start we will clear any previous
    conditions that could be present.
    
    Signed-off-by: Mirza Krak <mirza.krak@hostmobility.com>
    Reported-by: Christian Magnusson <Christian.Magnusson@semcon.com>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 85f576c6806ee1a73be10b67b57a2a8f33a5611c
Author: Marek Vasut <marex@denx.de>
Date:   Fri Oct 30 13:48:19 2015 +0100

    can: Use correct type in sizeof() in nla_put()
    
    commit 562b103a21974c2f9cd67514d110f918bb3e1796 upstream.
    
    The sizeof() is invoked on an incorrect variable, likely due to some
    copy-paste error, and this might result in memory corruption. Fix this.
    
    Signed-off-by: Marek Vasut <marex@denx.de>
    Cc: Wolfgang Grandegger <wg@grandegger.com>
    Cc: netdev@vger.kernel.org
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4815c10674240ee535ddcb19c408ba13102d9e6
Author: Johan Hedberg <johan.hedberg@intel.com>
Date:   Mon Oct 19 10:51:47 2015 +0300

    Bluetooth: Fix removing connection parameters when unpairing
    
    commit a6ad2a6b9cc1d9d791aee5462cfb8528f366f1d4 upstream.
    
    The commit 89cbb0638e9b7 introduced support for deferred connection
    parameter removal when unpairing by removing them only once an
    existing connection gets disconnected. However, it failed to address
    the scenario when we're *not* connected and do an unpair operation.
    
    What makes things worse is that most user space BlueZ versions will
    first issue a disconnect request and only then unpair, meaning the
    buggy code will be triggered every time. This effectively causes the
    kernel to resume scanning and reconnect to a device for which we've
    removed all keys and GATT database information.
    
    This patch fixes the issue by adding the missing call to the
    hci_conn_params_del() function to a branch which handles the case of
    no existing connection.
    
    Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1475c6b60a079251d440140bb51fb6ddf1a5a6e
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Fri Oct 16 11:45:26 2015 +0300

    Bluetooth: ath3k: Add support of AR3012 0cf3:817b device
    
    commit 18e0afab8ce3f1230ce3fef52b2e73374fd9c0e7 upstream.
    
    T: Bus=04 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
    D: Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
    P: Vendor=0cf3 ProdID=817b Rev=00.02
    C: #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I: If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I: If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    
    BugLink: https://bugs.launchpad.net/bugs/1506615
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d53162cb4dc127247c05c720b0245370f231a047
Author: Dmitry Tunin <hanipouspilot@gmail.com>
Date:   Mon Oct 5 19:29:33 2015 +0300

    Bluetooth: ath3k: Add new AR3012 0930:021c id
    
    commit cd355ff071cd37e7197eccf9216770b2b29369f7 upstream.
    
    This adapter works with the existing linux-firmware.
    
    T:  Bus=01 Lev=01 Prnt=01 Port=03 Cnt=02 Dev#=  3 Spd=12  MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0930 ProdID=021c Rev=00.01
    C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    
    BugLink: https://bugs.launchpad.net/bugs/1502781
    
    Signed-off-by: Dmitry Tunin <hanipouspilot@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fb2de67b1600cd3c085c150ba23a1440ae85a77
Author: David Herrmann <dh.herrmann@gmail.com>
Date:   Mon Sep 7 12:05:41 2015 +0200

    Bluetooth: hidp: fix device disconnect on idle timeout
    
    commit 660f0fc07d21114549c1862e67e78b1cf0c90c29 upstream.
    
    The HIDP specs define an idle-timeout which automatically disconnects a
    device. This has always been implemented in the HIDP layer and forced a
    synchronous shutdown of the hidp-scheduler. This works just fine, but
    lacks a forced disconnect on the underlying l2cap channels. This has been
    broken since:
    
        commit 5205185d461d5902325e457ca80bd421127b7308
        Author: David Herrmann <dh.herrmann@gmail.com>
        Date:   Sat Apr 6 20:28:47 2013 +0200
    
            Bluetooth: hidp: remove old session-management
    
    The old session-management always forced an l2cap error on the ctrl/intr
    channels when shutting down. The new session-management skips this, as we
    don't want to enforce channel policy on the caller. In other words, if
    user-space removes an HIDP device, the underlying channels (which are
    *owned* and *referenced* by user-space) are still left active. User-space
    needs to call shutdown(2) or close(2) to release them.
    
    Unfortunately, this does not work with idle-timeouts. There is no way to
    signal user-space that the HIDP layer has been stopped. The API simply
    does not support any event-passing except for poll(2). Hence, we restore
    old behavior and force EUNATCH on the sockets if the HIDP layer is
    disconnected due to idle-timeouts (behavior of explicit disconnects
    remains unmodified). User-space can still call
    
        getsockopt(..., SO_ERROR, ...)
    
    ..to retrieve the EUNATCH error and clear sk_err. Hence, the channels can
    still be re-used (which nobody does so far, though). Therefore, the API
    still supports the new behavior, but with this patch it's also compatible
    to the old implicit channel shutdown.
    
    Reported-by: Mark Haun <haunma@keteu.org>
    Reported-by: Luiz Augusto von Dentz <luiz.dentz@gmail.com>
    Signed-off-by: David Herrmann <dh.herrmann@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit adb2ed85a10effa1d22ee849468f38663e5bd3bf
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Sun Oct 18 22:14:48 2015 -0500

    staging: rtl8712: Add device ID for Sitecom WLA2100
    
    commit 1e6e63283691a2a9048a35d9c6c59cf0abd342e4 upstream.
    
    This adds the USB ID for the Sitecom WLA2100. The Windows 10 inf file
    was checked to verify that the addition is correct.
    
    Reported-by: Frans van de Wiel <fvdw@fvdw.eu>
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Cc: Frans van de Wiel <fvdw@fvdw.eu>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0b69c7d6e11c481e5e597f5641dd883cdfcf89c
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Sep 21 19:19:53 2015 +0300

    mwifiex: fix mwifiex_rdeeprom_read()
    
    commit 1f9c6e1bc1ba5f8a10fcd6e99d170954d7c6d382 upstream.
    
    There were several bugs here.
    
    1)  The done label was in the wrong place so we didn't copy any
        information out when there was no command given.
    
    2)  We were using PAGE_SIZE as the size of the buffer instead of
        "PAGE_SIZE - pos".
    
    3)  snprintf() returns the number of characters that would have been
        printed if there were enough space.  If there was not enough space
        (and we had fixed the memory corruption bug #2) then it would result
        in an information leak when we do simple_read_from_buffer().  I've
        changed it to use scnprintf() instead.
    
    I also removed the initialization at the start of the function, because
    I thought it made the code a little more clear.
    
    Fixes: 5e6e3a92b9a4 ('wireless: mwifiex: initial commit for Marvell mwifiex driver')
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Amitkumar Karwar <akarwar@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c306d85f13d6d2504a44a39bb420e992a45d072
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Sep 18 09:29:04 2015 -0700

    mfd: twl6040: Fix deferred probe handling for clk32k
    
    commit 75c08f17ec87c2d742487bb87408d6feebc526bd upstream.
    
    Commit 68bab8662f49 ("mfd: twl6040: Optional clk32k clock handling")
    added clock handling for the 32k clock from palmas-clk. However, that
    patch did not consider a typical situation where twl6040 is built-in,
    and palmas-clk is a loadable module like we have in omap2plus_defconfig.
    
    If palmas-clk is not loaded before twl6040 probes, we will get a
    "clk32k is not handled" warning during booting. This means that any
    drivers relying on this clock will mysteriously fail, including
    omap5-uevm WLAN and audio.
    
    Note that for WLAN, we probably should also eventually get
    the clk32kgaudio for MMC3 directly as that's shared between
    audio and WLAN SDIO at least for omap5-uevm. It seems the
    WLAN chip cannot get it as otherwise MMC3 won't get properly
    probed.
    
    Fixes: 68bab8662f49 ("mfd: twl6040: Optional clk32k clock handling")
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Reviewed-by: Felipe Balbi <balbi@ti.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b5167fa51be69e5770c34aebb21bc42c7f76f59
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Fri Oct 23 11:36:01 2015 +0200

    clk: versatile-icst: fix memory leak
    
    commit 7bdccef34fc67d3fce6778a018601dd41e43c5ce upstream.
    
    A static code checker found a memory leak in the Versatile
    ICST code. Fix it.
    
    Fixes: a183da637c52 "clk: versatile: respect parent rate in ICST clock"
    Reported-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 669b3319d0817b4f10db614b7ab68624d24be9d9
Author: Ingo Molnar <mingo@kernel.org>
Date:   Wed Sep 30 15:59:17 2015 +0200

    fs/proc, core/debug: Don't expose absolute kernel addresses via wchan
    
    commit b2f73922d119686323f14fbbe46587f863852328 upstream.
    
    So the /proc/PID/stat 'wchan' field (the 30th field, which contains
    the absolute kernel address of the kernel function a task is blocked in)
    leaks absolute kernel addresses to unprivileged user-space:
    
            seq_put_decimal_ull(m, ' ', wchan);
    
    The absolute address might also leak via /proc/PID/wchan as well, if
    KALLSYMS is turned off or if the symbol lookup fails for some reason:
    
    static int proc_pid_wchan(struct seq_file *m, struct pid_namespace *ns,
                              struct pid *pid, struct task_struct *task)
    {
            unsigned long wchan;
            char symname[KSYM_NAME_LEN];
    
            wchan = get_wchan(task);
    
            if (lookup_symbol_name(wchan, symname) < 0) {
                    if (!ptrace_may_access(task, PTRACE_MODE_READ))
                            return 0;
                    seq_printf(m, "%lu", wchan);
            } else {
                    seq_printf(m, "%s", symname);
            }
    
            return 0;
    }
    
    This isn't ideal, because for example it trivially leaks the KASLR offset
    to any local attacker:
    
      fomalhaut:~> printf "%016lx\n" $(cat /proc/$$/stat | cut -d' ' -f35)
      ffffffff8123b380
    
    Most real-life uses of wchan are symbolic:
    
      ps -eo pid:10,tid:10,wchan:30,comm
    
    and procps uses /proc/PID/wchan, not the absolute address in /proc/PID/stat:
    
      triton:~/tip> strace -f ps -eo pid:10,tid:10,wchan:30,comm 2>&1 | grep wchan | tail -1
      open("/proc/30833/wchan", O_RDONLY)     = 6
    
    There's one compatibility quirk here: procps relies on whether the
    absolute value is non-zero - and we can provide that functionality
    by outputing "0" or "1" depending on whether the task is blocked
    (whether there's a wchan address).
    
    These days there appears to be very little legitimate reason
    user-space would be interested in  the absolute address. The
    absolute address is mostly historic: from the days when we
    didn't have kallsyms and user-space procps had to do the
    decoding itself via the System.map.
    
    So this patch sets all numeric output to "0" or "1" and keeps only
    symbolic output, in /proc/PID/wchan.
    
    ( The absolute sleep address can generally still be profiled via
      perf, by tasks with sufficient privileges. )
    
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Acked-by: Kees Cook <keescook@chromium.org>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Alexander Potapenko <glider@google.com>
    Cc: Andrey Konovalov <andreyknvl@google.com>
    Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Kostya Serebryany <kcc@google.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Sasha Levin <sasha.levin@oracle.com>
    Cc: kasan-dev <kasan-dev@googlegroups.com>
    Cc: linux-kernel@vger.kernel.org
    Link: http://lkml.kernel.org/r/20150930135917.GA3285@gmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4a0135c37a55136dda22928bcdd50344537eca6
Author: Maxime Ripard <maxime.ripard@free-electrons.com>
Date:   Fri Sep 25 18:09:35 2015 +0200

    net: mvneta: Fix CPU_MAP registers initialisation
    
    commit 2502d0ef272da7058ef303b849a2c8dc324c2e2e upstream.
    
    The CPU_MAP register is duplicated for each CPUs at different addresses,
    each instance being at a different address.
    
    However, the code so far was using CONFIG_NR_CPUS to initialise the CPU_MAP
    registers for each registers, while the SoCs embed at most 4 CPUs.
    
    This is especially an issue with multi_v7_defconfig, where CONFIG_NR_CPUS
    is currently set to 16, resulting in writes to registers that are not
    CPU_MAP.
    
    Fixes: c5aff18204da ("net: mvneta: driver for Marvell Armada 370/XP network unit")
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 158b78a4a0c7c967682bb15d95dd7c1585b76d9b
Author: Oren Givon <oren.givon@intel.com>
Date:   Wed Oct 28 12:32:20 2015 +0200

    iwlwifi: Add new PCI IDs for the 8260 series
    
    commit 4ab75944c4b324c1f5f01dbd4c4d122d2b9da187 upstream.
    
    Add some new PCI IDs for the 8260 series which were missing.
    The following sub-system IDs were added:
    0x0130, 0x1130, 0x0132, 0x1132, 0x1150, 0x8110, 0x9110, 0x8130,
    0x9130, 0x8132, 0x9132, 0x8150, 0x9150, 0x0044, 0x0930
    
    Signed-off-by: Oren Givon <oren.givon@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 964e8570ae6e2b61a39b669f769042cf861a8da3
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Wed Oct 21 19:55:32 2015 +0300

    iwlwifi: pcie: fix (again) prepare card flow
    
    commit 03a19cbb91994212be72ce15ac3406fa9f8ba079 upstream.
    
    The hardware bug in the commit mentioned below forces us
    not to re-enable the clock gating in the Host Cluster.
    The impact on the power consumption is minimal and it allows
    the WAKE_ME interrupt to propagate.
    
    Fixes: c9fdec9f3970 ("iwlwifi: pcie: fix prepare card flow")
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 345e7449e059f9f6f12606dfb00c7788ee8b1cb6
Author: Christophe Ricard <christophe.ricard@gmail.com>
Date:   Sun Oct 25 22:54:22 2015 +0100

    NFC: nci: extract pipe value using NCI_HCP_MSG_GET_PIPE
    
    commit e65917b6d54f8b47d8293ea96adfa604fd46cf0d upstream.
    
    When receiving data in nci_hci_msg_rx_work, extract pipe
    value using NCI_HCP_MSG_GET_PIPE macro.
    
    Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e5c139309481f323ecf4a73db09e7b56ea4e08b
Author: Christophe Ricard <christophe.ricard@gmail.com>
Date:   Sun Oct 25 22:54:21 2015 +0100

    NFC: nci: Fix improper management of HCI return code
    
    commit d8cd37ed2fc871c66b4c79c59f651dc2cdf7091c upstream.
    
    When sending HCI data over NCI, HCI return code is part
    of the NCI data. In order to get correctly the HCI return
    code, we assume the NCI communication is successful and
    extract the return code for the nci_hci functions return code.
    
    This is done because nci_to_errno does not match hci return
    code value.
    
    Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2854c585c3a4ab7d3a527758f39ff7dae00bd951
Author: Christophe Ricard <christophe.ricard@gmail.com>
Date:   Sun Oct 25 22:54:20 2015 +0100

    NFC: nci: Fix incorrect data chaining when sending data
    
    commit 500c4ef02277eaadbfe20537f963b6221f6ac007 upstream.
    
    When sending HCI data over NCI, cmd information should be
    present only on the first packet.
    Each packet shall be specifically allocated and sent to the
    NCI layer.
    
    Signed-off-by: Christophe Ricard <christophe-h.ricard@st.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 95457aee1b0e4cd37cf75823b2e13df16b20729e
Author: Ola Olsson <ola1olsson@gmail.com>
Date:   Thu Oct 29 07:04:58 2015 +0100

    nl80211: Fix potential memory leak from parse_acl_data
    
    commit 4baf6bea37247e59f1971e8009d13aeda95edba2 upstream.
    
    If parse_acl_data succeeds but the subsequent parsing of smps
    attributes fails, there will be a memory leak due to early returns.
    Fix that by moving the ACL parsing later.
    
    Fixes: 18998c381b19b ("cfg80211: allow requesting SMPS mode on ap start")
    Signed-off-by: Ola Olsson <ola.olsson@sonymobile.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9da175204e4b721d1b7850337b2c1c76bdc95493
Author: Janusz.Dziedzic@tieto.com <Janusz.Dziedzic@tieto.com>
Date:   Tue Oct 27 08:35:11 2015 +0100

    mac80211: fix divide by zero when NOA update
    
    commit 519ee6918b91abdc4bc9720deae17599a109eb40 upstream.
    
    In case of one shot NOA the interval can be 0, catch that
    instead of potentially (depending on the driver) crashing
    like this:
    
    divide error: 0000 [#1] SMP
    [...]
    Call Trace:
    <IRQ>
    [<ffffffffc08e891c>] ieee80211_extend_absent_time+0x6c/0xb0 [mac80211]
    [<ffffffffc08e8a17>] ieee80211_update_p2p_noa+0xb7/0xe0 [mac80211]
    [<ffffffffc069cc30>] ath9k_p2p_ps_timer+0x170/0x190 [ath9k]
    [<ffffffffc070adf8>] ath_gen_timer_isr+0xc8/0xf0 [ath9k_hw]
    [<ffffffffc0691156>] ath9k_tasklet+0x296/0x2f0 [ath9k]
    [<ffffffff8107ad65>] tasklet_action+0xe5/0xf0
    [...]
    
    Signed-off-by: Janusz Dziedzic <janusz.dziedzic@tieto.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b45a2ff53cf39b31f69c7b6e34ffabe5f8c723c3
Author: Arik Nemtsov <arik@wizery.com>
Date:   Sun Oct 25 10:59:41 2015 +0200

    mac80211: allow null chandef in tracing
    
    commit 254d3dfe445f94a764e399ca12e04365ac9413ed upstream.
    
    In TDLS channel-switch operations the chandef can sometimes be NULL.
    Avoid an oops in the trace code for these cases and just print a
    chandef full of zeros.
    
    Fixes: a7a6bdd0670fe ("mac80211: introduce TDLS channel switch ops")
    Signed-off-by: Arik Nemtsov <arikx.nemtsov@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f1a112cce43b4901894ac01380261b2fac10a69e
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Aug 28 10:52:53 2015 +0200

    mac80211: fix driver RSSI event calculations
    
    commit 8ec6d97871f37e4743678ea4a455bd59580aa0f4 upstream.
    
    The ifmgd->ave_beacon_signal value cannot be taken as is for
    comparisons, it must be divided by since it's represented
    like that for better accuracy of the EWMA calculations. This
    would lead to invalid driver RSSI events. Fix the used value.
    
    Fixes: 615f7b9bb1f8 ("mac80211: add driver RSSI threshold events")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 64e2fe7afcb55788bc888290b1ab60ebcfa0a714
Author: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Date:   Sun Oct 25 10:59:38 2015 +0200

    mac80211: Fix local deauth while associating
    
    commit a64cba3c5330704a034bd3179270b8d04daf6987 upstream.
    
    Local request to deauthenticate wasn't handled while associating, thus
    the association could continue even when the user space required to
    disconnect.
    
    Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d6f199d3189a8cc1d8915fae52aa12dd0caec1ea
Author: Andrew Cooper <andrew.cooper3@citrix.com>
Date:   Wed Jun 3 10:31:14 2015 +0100

    x86/cpu: Fix SMAP check in PVOPS environments
    
    commit 581b7f158fe0383b492acd1ce3fb4e99d4e57808 upstream.
    
    There appears to be no formal statement of what pv_irq_ops.save_fl() is
    supposed to return precisely.  Native returns the full flags, while lguest and
    Xen only return the Interrupt Flag, and both have comments by the
    implementations stating that only the Interrupt Flag is looked at.  This may
    have been true when initially implemented, but no longer is.
    
    To make matters worse, the Xen PVOP leaves the upper bits undefined, making
    the BUG_ON() undefined behaviour.  Experimentally, this now trips for 32bit PV
    guests on Broadwell hardware.  The BUG_ON() is consistent for an individual
    build, but not consistent for all builds.  It has also been a sitting timebomb
    since SMAP support was introduced.
    
    Use native_save_fl() instead, which will obtain an accurate view of the AC
    flag.
    
    Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Reviewed-by: David Vrabel <david.vrabel@citrix.com>
    Tested-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Rusty Russell <rusty@rustcorp.com.au>
    Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: <lguest@lists.ozlabs.org>
    Cc: Xen-devel <xen-devel@lists.xen.org>
    Link: http://lkml.kernel.org/r/1433323874-6927-1-git-send-email-andrew.cooper3@citrix.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fe1b81c583f0690ce66ebd8caf0e4b4fc27d00d1
Author: Borislav Petkov <bp@suse.de>
Date:   Thu Nov 5 16:57:56 2015 +0100

    x86/cpu: Call verify_cpu() after having entered long mode too
    
    commit 04633df0c43d710e5f696b06539c100898678235 upstream.
    
    When we get loaded by a 64-bit bootloader, kernel entry point is
    startup_64 in head_64.S. We don't trust any and all bootloaders because
    some will fiddle with CPU configuration so we go ahead and massage each
    CPU into sanity again.
    
    For example, some dell BIOSes have this XD disable feature which set
    IA32_MISC_ENABLE[34] and disable NX. This might be some dumb workaround
    for other OSes but Linux sure doesn't need it.
    
    A similar thing is present in the Surface 3 firmware - see
    https://bugzilla.kernel.org/show_bug.cgi?id=106051 - which sets this bit
    only on the BSP:
    
      # rdmsr -a 0x1a0
      400850089
      850089
      850089
      850089
    
    I know, right?!
    
    There's not even an off switch in there.
    
    So fix all those cases by sanitizing the 64-bit entry point too. For
    that, make verify_cpu() callable in 64-bit mode also.
    
    Requested-and-debugged-by: "H. Peter Anvin" <hpa@zytor.com>
    Reported-and-tested-by: Bastien Nocera <bugzilla@hadess.net>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1446739076-21303-1-git-send-email-bp@alien8.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e4438be9feaa0f9edb212bbd39148e42f7fb68e1
Author: Krzysztof Mazur <krzysiek@podlesie.net>
Date:   Fri Nov 6 14:18:36 2015 +0100

    x86/setup: Fix low identity map for >= 2GB kernel range
    
    commit 68accac392d859d24adcf1be3a90e41f978bd54c upstream.
    
    The commit f5f3497cad8c extended the low identity mapping. However, if
    the kernel uses more than 2 GB (VMSPLIT_2G_OPT or VMSPLIT_1G memory
    split), the normal memory mapping is overwritten by the low identity
    mapping causing a crash. To avoid overwritting, limit the low identity
    map to cover only memory before kernel range (PAGE_OFFSET).
    
    Fixes: f5f3497cad8c "x86/setup: Extend low identity map to cover whole kernel range
    Signed-off-by: Krzysztof Mazur <krzysiek@podlesie.net>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Laszlo Ersek <lersek@redhat.com>
    Cc: Matt Fleming <matt.fleming@intel.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Link: http://lkml.kernel.org/r/1446815916-22105-1-git-send-email-krzysiek@podlesie.net
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f53827c8129b9d26765f42c38fb91aa3ab753be2
Author: Paolo Bonzini <pbonzini@redhat.com>
Date:   Wed Oct 14 13:30:45 2015 +0200

    x86/setup: Extend low identity map to cover whole kernel range
    
    commit f5f3497cad8c8416a74b9aaceb127908755d020a upstream.
    
    On 32-bit systems, the initial_page_table is reused by
    efi_call_phys_prolog as an identity map to call
    SetVirtualAddressMap.  efi_call_phys_prolog takes care of
    converting the current CPU's GDT to a physical address too.
    
    For PAE kernels the identity mapping is achieved by aliasing the
    first PDPE for the kernel memory mapping into the first PDPE
    of initial_page_table.  This makes the EFI stub's trick "just work".
    
    However, for non-PAE kernels there is no guarantee that the identity
    mapping in the initial_page_table extends as far as the GDT; in this
    case, accesses to the GDT will cause a page fault (which quickly becomes
    a triple fault).  Fix this by copying the kernel mappings from
    swapper_pg_dir to initial_page_table twice, both at PAGE_OFFSET and at
    identity mapping.
    
    For some reason, this is only reproducible with QEMU's dynamic translation
    mode, and not for example with KVM.  However, even under KVM one can clearly
    see that the page table is bogus:
    
        $ qemu-system-i386 -pflash OVMF.fd -M q35 vmlinuz0 -s -S -daemonize
        $ gdb
        (gdb) target remote localhost:1234
        (gdb) hb *0x02858f6f
        Hardware assisted breakpoint 1 at 0x2858f6f
        (gdb) c
        Continuing.
    
        Breakpoint 1, 0x02858f6f in ?? ()
        (gdb) monitor info registers
        ...
        GDT=     0724e000 000000ff
        IDT=     fffbb000 000007ff
        CR0=0005003b CR2=ff896000 CR3=032b7000 CR4=00000690
        ...
    
    The page directory is sane:
    
        (gdb) x/4wx 0x32b7000
        0x32b7000:	0x03398063	0x03399063	0x0339a063	0x0339b063
        (gdb) x/4wx 0x3398000
        0x3398000:	0x00000163	0x00001163	0x00002163	0x00003163
        (gdb) x/4wx 0x3399000
        0x3399000:	0x00400003	0x00401003	0x00402003	0x00403003
    
    but our particular page directory entry is empty:
    
        (gdb) x/1wx 0x32b7000 + (0x724e000 >> 22) * 4
        0x32b7070:	0x00000000
    
    [ It appears that you can skate past this issue if you don't receive
      any interrupts while the bogus GDT pointer is loaded, or if you avoid
      reloading the segment registers in general.
    
      Andy Lutomirski provides some additional insight:
    
       "AFAICT it's entirely permissible for the GDTR and/or LDT
        descriptor to point to unmapped memory.  Any attempt to use them
        (segment loads, interrupts, IRET, etc) will try to access that memory
        as if the access came from CPL 0 and, if the access fails, will
        generate a valid page fault with CR2 pointing into the GDT or
        LDT."
    
      Up until commit 23a0d4e8fa6d ("efi: Disable interrupts around EFI
      calls, not in the epilog/prolog calls") interrupts were disabled
      around the prolog and epilog calls, and the functional GDT was
      re-installed before interrupts were re-enabled.
    
      Which explains why no one has hit this issue until now. ]
    
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Reported-by: Laszlo Ersek <lersek@redhat.com>
    Cc: <stable@vger.kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@kernel.org>
    Cc: Andy Lutomirski <luto@amacapital.net>
    Signed-off-by: Matt Fleming <matt.fleming@intel.com>
    [ Updated changelog. ]
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b62c38079ebaa36c0ccd77647fd1fdd46315bc98
Author: Eric Northup <digitaleric@google.com>
Date:   Tue Nov 3 18:03:53 2015 +0100

    KVM: x86: work around infinite loop in microcode when #AC is delivered
    
    commit 54a20552e1eae07aa240fa370a0293e006b5faed upstream.
    
    It was found that a guest can DoS a host by triggering an infinite
    stream of "alignment check" (#AC) exceptions.  This causes the
    microcode to enter an infinite loop where the core never receives
    another interrupt.  The host kernel panics pretty quickly due to the
    effects (CVE-2015-5307).
    
    Signed-off-by: Eric Northup <digitaleric@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5f45ba87a1d13f68a480a75e1ef3b4c801d2283
Author: Radim Krčmář <rkrcmar@redhat.com>
Date:   Thu Oct 8 20:23:33 2015 +0200

    kvm: x86: set KVM_REQ_EVENT when updating IRR
    
    commit c77f3fab441c3e466b4c3601a475fc31ce156b06 upstream.
    
    After moving PIR to IRR, the interrupt needs to be delivered manually.
    
    Reported-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6294fbb5243d83ecb0be7c2a0336eefad70d5e18
Author: James Hogan <james.hogan@imgtec.com>
Date:   Wed Nov 11 14:21:20 2015 +0000

    MIPS: KVM: Uninit VCPU in vcpu_create error path
    
    commit 585bb8f9a5e592f2ce7abbe5ed3112d5438d2754 upstream.
    
    If either of the memory allocations in kvm_arch_vcpu_create() fail, the
    vcpu which has been allocated and kvm_vcpu_init'd doesn't get uninit'd
    in the error handling path. Add a call to kvm_vcpu_uninit() to fix this.
    
    Fixes: 669e846e6c4e ("KVM/MIPS32: MIPS arch specific APIs for KVM")
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99caef3188117f9f097a103dff1c1e2a224e6b92
Author: James Hogan <james.hogan@imgtec.com>
Date:   Wed Nov 11 14:21:19 2015 +0000

    MIPS: KVM: Fix CACHE immediate offset sign extension
    
    commit c5c2a3b998f1ff5a586f9d37e154070b8d550d17 upstream.
    
    The immediate field of the CACHE instruction is signed, so ensure that
    it gets sign extended by casting it to an int16_t rather than just
    masking the low 16 bits.
    
    Fixes: e685c689f3a8 ("KVM/MIPS32: Privileged instruction/target branch emulation.")
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 331066063527962063ca866bafd8e2c9b95950c0
Author: James Hogan <james.hogan@imgtec.com>
Date:   Wed Nov 11 14:21:18 2015 +0000

    MIPS: KVM: Fix ASID restoration logic
    
    commit 002374f371bd02df864cce1fe85d90dc5b292837 upstream.
    
    ASID restoration on guest resume should determine the guest execution
    mode based on the guest Status register rather than bit 30 of the guest
    PC.
    
    Fix the two places in locore.S that do this, loading the guest status
    from the cop0 area. Note, this assembly is specific to the trap &
    emulate implementation of KVM, so it doesn't need to check the
    supervisor bit as that mode is not implemented in the guest.
    
    Fixes: b680f70fc111 ("KVM/MIPS32: Entry point for trampolining to...")
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Gleb Natapov <gleb@kernel.org>
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86006fae34f3e49755cc78c8147e01ac55cd7226
Author: Hauke Mehrtens <hauke@hauke-m.de>
Date:   Sun Oct 25 23:21:42 2015 +0100

    MIPS: lantiq: add clk_round_rate()
    
    commit 4e7d30dba493b60a80e9b590add1b4402265cc83 upstream.
    
    This adds a basic implementation of clk_round_rate()
    The clk_round_rate() function is called by multiple drivers and
    subsystems now and the lantiq clk driver is supposed to export this,
    but doesn't do so, this causes linking problems like this one:
    ERROR: "clk_round_rate" [drivers/media/v4l2-core/videodev.ko] undefined!
    
    Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
    Acked-by: John Crispin <blogic@openwrt.org>
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11358/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18f6d80c7e3bd107b346ebbba3268efc727bc9a3
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Oct 12 15:46:08 2015 +0200

    ARM: pxa: remove incorrect __init annotation on pxa27x_set_pwrmode
    
    commit 54c09889bff6d99c8733eed4a26c9391b177c88b upstream.
    
    The z2 machine calls pxa27x_set_pwrmode() in order to power off
    the machine, but this function gets discarded early at boot because
    it is marked __init, as pointed out by kbuild:
    
    WARNING: vmlinux.o(.text+0x145c4): Section mismatch in reference from the function z2_power_off() to the function .init.text:pxa27x_set_pwrmode()
    The function z2_power_off() references
    the function __init pxa27x_set_pwrmode().
    This is often because z2_power_off lacks a __init
    annotation or the annotation of pxa27x_set_pwrmode is wrong.
    
    This removes the __init section modifier to fix rebooting and the
    build error.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Fixes: ba4a90a6d86a ("ARM: pxa/z2: fix building error of pxa27x_cpu_suspend() no longer available")
    Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6bafb3e3e48827d634624ee25395a396aa675279
Author: Tony Lindgren <tony@atomide.com>
Date:   Fri Oct 16 12:32:32 2015 -0700

    ARM: dts: Fix WLAN regression on omap5-uevm
    
    commit 0efc898a9bea7a2e8e583c6efab0e19dc7093078 upstream.
    
    Commit 99f84cae43df ("ARM: dts: add wl12xx/wl18xx bindings") added
    device tree bindings for the TI WLAN SDIO on many omap variants.
    
    I recall wondering how come omap5-uevm did not have the WLAN
    added and this issue has been bugging me for a while now, and
    I finally tracked it down to a bad pinmux regression, and a missing
    deferred probe handling for the 32k clock from palmas that's
    requested by twl6040.
    
    Basically 392adaf796b9 ("ARM: dts: omap5-evm: Add mcspi data")
    added pin muxing for mcspi4 that conflicts with the onboard
    WLAN. While some omap5-uevm don't have WLAN populated, the
    pins are not reused for other devices. And as the SDIO bus
    should be probed, let's try to enable WLAN by default.
    
    Let's fix the regression and add the WLAN configuration as
    done for the other boards in 99f84cae43df ("ARM: dts: add
    wl12xx/wl18xx bindings"). And let's use the new MMC pwrseq for
    the 32k clock as suggested by Javier Martinez Canillas
    <javier@dowhile0.org>.
    
    Note that without a related deferred probe fix for twl6040,
    the 32k clock is not initialized if palmas-clk is a module
    and twl6040 is built-in.
    
    Let's also use the generic "non-removable" instead of the
    legacy "ti,non-removable" property while at it.
    
    And finally, note that omap5 seems to require WAKEUP_EN for
    the WLAN GPIO interrupt.
    
    Fixes: 392adaf796b9 ("ARM: dts: omap5-evm: Add mcspi data")
    Cc: Sourav Poddar <sourav.poddar@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3b389e9e73e0c5cc15d6e002129fc8b85aa700b6
Author: Patrick Doyle <pdoyle@irobot.com>
Date:   Fri Oct 16 12:39:05 2015 +0200

    ARM: at91: pm: at91_pm_suspend_in_sram() must be 8-byte aligned
    
    commit 5fcf8d1a0e84792b2bc44922c5d833dab96a9c1e upstream.
    
    fncpy() requires that the source and the destination are both 8-byte
    aligned.
    
    Signed-off-by: Patrick Doyle <pdoyle@irobot.com>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Fixes: d94e688cae56 ("ARM: at91/pm: move the copying the sram function to the sram initialization phase")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f62287e6ecac096ba276f1905c7661ba8e59318
Author: Holger Busse <h.busse@kathrein-sachsen.de>
Date:   Wed Aug 26 10:45:45 2015 +0200

    ARM: at91/dt: corrections to i2c1 declaration to sama5d4
    
    commit d1a9c24ad16ab2b26f1574bc3f2c165a7beff5df upstream.
    
    Correcting the dma declaration for i2c1 dma.
    
    Signed-off-by: Holger Busse <h.busse@kathrein-sachsen.de>
    Signed-off-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Fixes: 4cc7cdf35c5f ("ARM: at91/dt: add i2c1 declaration to sama5d4")
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a5cc0ec03eafaa174b11ec570a7330dca850ebf
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Tue Jun 30 17:15:50 2015 +0300

    ARM: tegra: paz00: use con_id's to refer GPIO's in gpiod_lookup table
    
    commit e77b675f8786f38d40fc1562e1275875daf67fef upstream.
    
    Commit 72daceb9a10a ("net: rfkill: gpio: Add default GPIO driver mappings
    for ACPI") removed possibility to request GPIO by table index for non-ACPI
    platforms without changing its users. As result "shutdown" GPIO request
    will fail if request for "reset" GPIO succeeded or "reset" will be
    requested instead of "shutdown" if "reset" wasn't defined. Fix it by
    making gpiod_lookup_table use con_id's instead of indexes.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Fixes: 72daceb (net: rfkill: gpio: Add default GPIO driver mappings for ACPI)
    Acked-by: Alexandre Courbot <acourbot@nvidia.com>
    Reviewed-by: Marc Dietrich <marvin24@gmx.de>
    Tested-by: Marc Dietrich <marvin24@gmx.de>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ef017078d1f2791228828db8fb0bcf1502fd2b8
Author: Peter Chen <peter.chen@freescale.com>
Date:   Wed Sep 16 09:35:06 2015 +0800

    ARM: dts: imx27.dtsi: change the clock information for usb
    
    commit facf47ee6b4d07d43c3bfd6f0762f1b28f64703a upstream.
    
    For imx27, it needs three clocks to let the controller work,
    the old code is wrong, and usbmisc has not included clock handling
    code any more. Without this patch, it will cause below data
    abort when accessing usbmisc registers.
    
    usbcore: registered new interface driver usb-storage
    Unhandled fault: external abort on non-linefetch (0x008) at 0xf4424600
    pgd = c0004000
    [f4424600] *pgd=10000452(bad)
    Internal error: : 8 [#1] PREEMPT ARM
    Modules linked in:
    CPU: 0 PID: 1 Comm: swapper Not tainted 4.1.0-next-20150701-dirty #3089
    Hardware name: Freescale i.MX27 (Device Tree Support)
    task: c7832b60 ti: c783e000 task.ti: c783e000
    PC is at usbmisc_imx27_init+0x4c/0xbc
    LR is at usbmisc_imx27_init+0x40/0xbc
    pc : [<c03cb5c0>]    lr : [<c03cb5b4>]    psr: 60000093
    sp : c783fe08  ip : 00000000  fp : 00000000
    r10: c0576434  r9 : 0000009c  r8 : c7a773a0
    r7 : 01000000  r6 : 60000013  r5 : c7a776f0  r4 : c7a773f0
    r3 : f4424600  r2 : 00000000  r1 : 00000001  r0 : 00000001
    Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
    Control: 0005317f  Table: a0004000  DAC: 00000017
    Process swapper (pid: 1, stack limit = 0xc783e190)
    Stack: (0xc783fe08 to 0xc7840000)
    
    Signed-off-by: Peter Chen <peter.chen@freescale.com>
    Reported-by: Fabio Estevam <fabio.estevam@freescale.com>
    Tested-by: Fabio Estevam <fabio.estevam@freescale.com>
    Acked-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad13ada66d59097dae89f5941892440f84eeea1d
Author: Peter Ujfalusi <peter.ujfalusi@ti.com>
Date:   Wed Oct 14 14:42:43 2015 +0300

    ARM: common: edma: Fix channel parameter for irq callbacks
    
    commit 696d8b70c09dd421c4d037fab04341e5b30585cf upstream.
    
    In case when the interrupt happened for the second eDMA the channel
    number was incorrectly passed to the client driver.
    
    Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1c6e3d704033ec56c158c25af29246892d2aed9
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Fri Aug 28 09:42:09 2015 +0100

    ARM: 8427/1: dma-mapping: add support for offset parameter in dma_mmap()
    
    commit 7e31210349e9e03a9a4dff31ab5f2bc83e8e84f5 upstream.
    
    IOMMU-based dma_mmap() implementation lacked proper support for offset
    parameter used in mmap call (it always assumed that mapping starts from
    offset zero). This patch adds support for offset parameter to IOMMU-based
    implementation.
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19c61dfda03fe9d8290366f55d765a83ce459394
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Fri Aug 28 09:41:39 2015 +0100

    ARM: 8426/1: dma-mapping: add missing range check in dma_mmap()
    
    commit 371f0f085f629fc0f66695f572373ca4445a67ad upstream.
    
    dma_mmap() function in IOMMU-based dma-mapping implementation lacked
    a check for valid range of mmap parameters (offset and buffer size), what
    might have caused access beyond the allocated buffer. This patch fixes
    this issue.
    
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd5efc80af05cfd7ae77bb3229a35cc9bc09615d
Author: Sasha Levin <sasha.levin@oracle.com>
Date:   Tue Sep 8 10:53:40 2015 -0400

    RDS: verify the underlying transport exists before creating a connection
    
    [ Upstream commit 74e98eb085889b0d2d4908f59f6e00026063014f ]
    
    There was no verification that an underlying transport exists when creating
    a connection, this would cause dereferencing a NULL ptr.
    
    It might happen on sockets that weren't properly bound before attempting to
    send a message, which will cause a NULL ptr deref:
    
    [135546.047719] kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC KASAN
    [135546.051270] Modules linked in:
    [135546.051781] CPU: 4 PID: 15650 Comm: trinity-c4 Not tainted 4.2.0-next-20150902-sasha-00041-gbaa1222-dirty #2527
    [135546.053217] task: ffff8800835bc000 ti: ffff8800bc708000 task.ti: ffff8800bc708000
    [135546.054291] RIP: __rds_conn_create (net/rds/connection.c:194)
    [135546.055666] RSP: 0018:ffff8800bc70fab0  EFLAGS: 00010202
    [135546.056457] RAX: dffffc0000000000 RBX: 0000000000000f2c RCX: ffff8800835bc000
    [135546.057494] RDX: 0000000000000007 RSI: ffff8800835bccd8 RDI: 0000000000000038
    [135546.058530] RBP: ffff8800bc70fb18 R08: 0000000000000001 R09: 0000000000000000
    [135546.059556] R10: ffffed014d7a3a23 R11: ffffed014d7a3a21 R12: 0000000000000000
    [135546.060614] R13: 0000000000000001 R14: ffff8801ec3d0000 R15: 0000000000000000
    [135546.061668] FS:  00007faad4ffb700(0000) GS:ffff880252000000(0000) knlGS:0000000000000000
    [135546.062836] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
    [135546.063682] CR2: 000000000000846a CR3: 000000009d137000 CR4: 00000000000006a0
    [135546.064723] Stack:
    [135546.065048]  ffffffffafe2055c ffffffffafe23fc1 ffffed00493097bf ffff8801ec3d0008
    [135546.066247]  0000000000000000 00000000000000d0 0000000000000000 ac194a24c0586342
    [135546.067438]  1ffff100178e1f78 ffff880320581b00 ffff8800bc70fdd0 ffff880320581b00
    [135546.068629] Call Trace:
    [135546.069028] ? __rds_conn_create (include/linux/rcupdate.h:856 net/rds/connection.c:134)
    [135546.069989] ? rds_message_copy_from_user (net/rds/message.c:298)
    [135546.071021] rds_conn_create_outgoing (net/rds/connection.c:278)
    [135546.071981] rds_sendmsg (net/rds/send.c:1058)
    [135546.072858] ? perf_trace_lock (include/trace/events/lock.h:38)
    [135546.073744] ? lockdep_init (kernel/locking/lockdep.c:3298)
    [135546.074577] ? rds_send_drop_to (net/rds/send.c:976)
    [135546.075508] ? __might_fault (./arch/x86/include/asm/current.h:14 mm/memory.c:3795)
    [135546.076349] ? __might_fault (mm/memory.c:3795)
    [135546.077179] ? rds_send_drop_to (net/rds/send.c:976)
    [135546.078114] sock_sendmsg (net/socket.c:611 net/socket.c:620)
    [135546.078856] SYSC_sendto (net/socket.c:1657)
    [135546.079596] ? SYSC_connect (net/socket.c:1628)
    [135546.080510] ? trace_dump_stack (kernel/trace/trace.c:1926)
    [135546.081397] ? ring_buffer_unlock_commit (kernel/trace/ring_buffer.c:2479 kernel/trace/ring_buffer.c:2558 kernel/trace/ring_buffer.c:2674)
    [135546.082390] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
    [135546.083410] ? trace_event_raw_event_sys_enter (include/trace/events/syscalls.h:16)
    [135546.084481] ? do_audit_syscall_entry (include/trace/events/syscalls.h:16)
    [135546.085438] ? trace_buffer_unlock_commit (kernel/trace/trace.c:1749)
    [135546.085515] rds_ib_laddr_check(): addr 36.74.25.172 ret -99 node type -1
    
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 152964690b41b91049d00eb8aea1d25880cd13f0
Author: Jason Wang <jasowang@redhat.com>
Date:   Wed Aug 5 10:34:04 2015 +0800

    virtio-net: drop NETIF_F_FRAGLIST
    
    [ Upstream commit 48900cb6af4282fa0fb6ff4d72a81aa3dadb5c39 ]
    
    virtio declares support for NETIF_F_FRAGLIST, but assumes
    that there are at most MAX_SKB_FRAGS + 2 fragments which isn't
    always true with a fraglist.
    
    A longer fraglist in the skb will make the call to skb_to_sgvec overflow
    the sg array, leading to memory corruption.
    
    Drop NETIF_F_FRAGLIST so we only get what we can handle.
    
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6fac8c7fff3d816729ad16327837ba3216d48c9
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 9 17:51:23 2015 -0800

    net: fix a race in dst_release()
    
    [ Upstream commit d69bbf88c8d0b367cf3e3a052f6daadf630ee566 ]
    
    Only cpu seeing dst refcount going to 0 can safely
    dereference dst->flags.
    
    Otherwise an other cpu might already have freed the dst.
    
    Fixes: 27b75c95f10d ("net: avoid RCU for NOCACHE dst")
    Reported-by: Greg Thelen <gthelen@google.com>
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 97c28b72a5ceb80e193910cbed068b44c951bd94
Author: Francesco Ruggeri <fruggeri@aristanetworks.com>
Date:   Thu Nov 5 08:16:14 2015 -0800

    packet: race condition in packet_bind
    
    [ Upstream commit 30f7ea1c2b5f5fb7462c5ae44fe2e40cb2d6a474 ]
    
    There is a race conditions between packet_notifier and packet_bind{_spkt}.
    
    It happens if packet_notifier(NETDEV_UNREGISTER) executes between the
    time packet_bind{_spkt} takes a reference on the new netdevice and the
    time packet_do_bind sets po->ifindex.
    In this case the notification can be missed.
    If this happens during a dev_change_net_namespace this can result in the
    netdevice to be moved to the new namespace while the packet_sock in the
    old namespace still holds a reference on it. When the netdevice is later
    deleted in the new namespace the deletion hangs since the packet_sock
    is not found in the new namespace' &net->packet.sklist.
    It can be reproduced with the script below.
    
    This patch makes packet_do_bind check again for the presence of the
    netdevice in the packet_sock's namespace after the synchronize_net
    in unregister_prot_hook.
    More in general it also uses the rcu lock for the duration of the bind
    to stop dev_change_net_namespace/rollback_registered_many from
    going past the synchronize_net following unlist_netdevice, so that
    no NETDEV_UNREGISTER notifications can happen on the new netdevice
    while the bind is executing. In order to do this some code from
    packet_bind{_spkt} is consolidated into packet_do_dev.
    
    import socket, os, time, sys
    proto=7
    realDev='em1'
    vlanId=400
    if len(sys.argv) > 1:
       vlanId=int(sys.argv[1])
    dev='vlan%d' % vlanId
    
    os.system('taskset -p 0x10 %d' % os.getpid())
    
    s = socket.socket(socket.PF_PACKET, socket.SOCK_RAW, proto)
    os.system('ip link add link %s name %s type vlan id %d' %
              (realDev, dev, vlanId))
    os.system('ip netns add dummy')
    
    pid=os.fork()
    
    if pid == 0:
       # dev should be moved while packet_do_bind is in synchronize net
       os.system('taskset -p 0x20000 %d' % os.getpid())
       os.system('ip link set %s netns dummy' % dev)
       os.system('ip netns exec dummy ip link del %s' % dev)
       s.close()
       sys.exit(0)
    
    time.sleep(.004)
    try:
       s.bind(('%s' % dev, proto+1))
    except:
       print 'Could not bind socket'
       s.close()
       os.system('ip netns del dummy')
       sys.exit(0)
    
    os.waitpid(pid, 0)
    s.close()
    os.system('ip netns del dummy')
    sys.exit(0)
    
    Signed-off-by: Francesco Ruggeri <fruggeri@arista.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4e98bdeb671acafd85072f745eaf85cafe452a1
Author: WANG Cong <xiyou.wangcong@gmail.com>
Date:   Tue Nov 3 14:32:57 2015 -0800

    ipv4: disable BH when changing ip local port range
    
    [ Upstream commit 4ee3bd4a8c7463cdef0b82ebc33fc94a9170a7e0 ]
    
    This fixes the following lockdep warning:
    
     [ INFO: inconsistent lock state ]
     4.3.0-rc7+ #1197 Not tainted
     ---------------------------------
     inconsistent {IN-SOFTIRQ-R} -> {SOFTIRQ-ON-W} usage.
     sysctl/1019 [HC0[0]:SC0[0]:HE1:SE1] takes:
      (&(&net->ipv4.ip_local_ports.lock)->seqcount){+.+-..}, at: [<ffffffff81921de7>] ipv4_local_port_range+0xb4/0x12a
     {IN-SOFTIRQ-R} state was registered at:
       [<ffffffff810bd682>] __lock_acquire+0x2f6/0xdf0
       [<ffffffff810be6d5>] lock_acquire+0x11c/0x1a4
       [<ffffffff818e599c>] inet_get_local_port_range+0x4e/0xae
       [<ffffffff8166e8e3>] udp_flow_src_port.constprop.40+0x23/0x116
       [<ffffffff81671cb9>] vxlan_xmit_one+0x219/0xa6a
       [<ffffffff81672f75>] vxlan_xmit+0xa6b/0xaa5
       [<ffffffff817f2deb>] dev_hard_start_xmit+0x2ae/0x465
       [<ffffffff817f35ed>] __dev_queue_xmit+0x531/0x633
       [<ffffffff817f3702>] dev_queue_xmit_sk+0x13/0x15
       [<ffffffff818004a5>] neigh_resolve_output+0x12f/0x14d
       [<ffffffff81959cfa>] ip6_finish_output2+0x344/0x39f
       [<ffffffff8195bf58>] ip6_finish_output+0x88/0x8e
       [<ffffffff8195bfef>] ip6_output+0x91/0xe5
       [<ffffffff819792ae>] dst_output_sk+0x47/0x4c
       [<ffffffff81979392>] NF_HOOK_THRESH.constprop.30+0x38/0x82
       [<ffffffff8197981e>] mld_sendpack+0x189/0x266
       [<ffffffff8197b28b>] mld_ifc_timer_expire+0x1ef/0x223
       [<ffffffff810de581>] call_timer_fn+0xfb/0x28c
       [<ffffffff810ded1e>] run_timer_softirq+0x1c7/0x1f1
    
    Fixes: b8f1a55639e6 ("udp: Add function to make source port for UDP tunnels")
    Cc: Tom Herbert <tom@herbertland.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 174888f27748daf5901ca7d181a8cea01dd2cdcc
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Wed Nov 4 14:47:53 2015 +0100

    ipv6: clean up dev_snmp6 proc entry when we fail to initialize inet6_dev
    
    [ Upstream commit 2a189f9e57650e9f310ddf4aad75d66c1233a064 ]
    
    In ipv6_add_dev, when addrconf_sysctl_register fails, we do not clean up
    the dev_snmp6 entry that we have already registered for this device.
    Call snmp6_unregister_dev in this case.
    
    Fixes: a317a2f19da7d ("ipv6: fail early when creating netdev named all or default")
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4db9971168297eca9f8ba93e1d25e8fbc26944ba
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 2 07:50:07 2015 -0800

    net: avoid NULL deref in inet_ctl_sock_destroy()
    
    [ Upstream commit 8fa677d2706d325d71dab91bf6e6512c05214e37 ]
    
    Under low memory conditions, tcp_sk_init() and icmp_sk_init()
    can both iterate on all possible cpus and call inet_ctl_sock_destroy(),
    with eventual NULL pointer.
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20975f42a7933b489c0ef463e913c9742cfe2235
Author: Martin Habets <mhabets@solarflare.com>
Date:   Mon Nov 2 12:51:31 2015 +0000

    sfc: push partner queue for skb->xmit_more
    
    [ Upstream commit b2663a4f30e85ec606b806f5135413e6d5c78d1e ]
    
    When the IP stack passes SKBs the sfc driver puts them in 2 different TX
    queues (called partners), one for checksummed and one for not checksummed.
    If the SKB has xmit_more set the driver will delay pushing the work to the
    NIC.
    
    When later it does decide to push the buffers this patch ensures it also
    pushes the partner queue, if that also has any delayed work. Before this
    fix the work in the partner queue would be left for a long time and cause
    a netdev watchdog.
    
    Fixes: 70b33fb ("sfc: add support for skb->xmit_more")
    Reported-by: Jianlin Shi <jishi@redhat.com>
    Signed-off-by: Martin Habets <mhabets@solarflare.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 44fec2292efaa6765c49e27deb102c9def8f745d
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Nov 2 17:08:19 2015 -0800

    sit: fix sit0 percpu double allocations
    
    [ Upstream commit 4ece9009774596ee3df0acba65a324b7ea79387c ]
    
    sit0 device allocates its percpu storage twice :
    - One time in ipip6_tunnel_init()
    - One time in ipip6_fb_tunnel_init()
    
    Thus we leak 48 bytes per possible cpu per network namespace dismantle.
    
    ipip6_fb_tunnel_init() can be much simpler and does not
    return an error, and should be called after register_netdev()
    
    Note that ipip6_tunnel_clone_6rd() also needs to be called
    after register_netdev() (calling ipip6_tunnel_init())
    
    Fixes: ebe084aafb7e ("sit: Use ipip6_tunnel_init as the ndo_init function.")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dcbca575d68df4cc48dca7f6cd0b4887b5495a5c
Author: Ani Sinha <ani@arista.com>
Date:   Fri Oct 30 16:54:31 2015 -0700

    ipmr: fix possible race resulting from improper usage of IP_INC_STATS_BH() in preemptible context.
    
    [ Upstream commit 44f49dd8b5a606870a1f21101522a0f9c4414784 ]
    
    Fixes the following kernel BUG :
    
    BUG: using __this_cpu_add() in preemptible [00000000] code: bash/2758
    caller is __this_cpu_preempt_check+0x13/0x15
    CPU: 0 PID: 2758 Comm: bash Tainted: P           O   3.18.19 #2
     ffffffff8170eaca ffff880110d1b788 ffffffff81482b2a 0000000000000000
     0000000000000000 ffff880110d1b7b8 ffffffff812010ae ffff880007cab800
     ffff88001a060800 ffff88013a899108 ffff880108b84240 ffff880110d1b7c8
    Call Trace:
    [<ffffffff81482b2a>] dump_stack+0x52/0x80
    [<ffffffff812010ae>] check_preemption_disabled+0xce/0xe1
    [<ffffffff812010d4>] __this_cpu_preempt_check+0x13/0x15
    [<ffffffff81419d60>] ipmr_queue_xmit+0x647/0x70c
    [<ffffffff8141a154>] ip_mr_forward+0x32f/0x34e
    [<ffffffff8141af76>] ip_mroute_setsockopt+0xe03/0x108c
    [<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
    [<ffffffff810e6974>] ? pollwake+0x4d/0x51
    [<ffffffff81058ac0>] ? default_wake_function+0x0/0xf
    [<ffffffff810553fc>] ? get_parent_ip+0x11/0x42
    [<ffffffff810613d9>] ? __wake_up_common+0x45/0x77
    [<ffffffff81486ea9>] ? _raw_spin_unlock_irqrestore+0x1d/0x32
    [<ffffffff810618bc>] ? __wake_up_sync_key+0x4a/0x53
    [<ffffffff8139a519>] ? sock_def_readable+0x71/0x75
    [<ffffffff813dd226>] do_ip_setsockopt+0x9d/0xb55
    [<ffffffff81429818>] ? unix_seqpacket_sendmsg+0x3f/0x41
    [<ffffffff813963fe>] ? sock_sendmsg+0x6d/0x86
    [<ffffffff813959d4>] ? sockfd_lookup_light+0x12/0x5d
    [<ffffffff8139650a>] ? SyS_sendto+0xf3/0x11b
    [<ffffffff810d5738>] ? new_sync_read+0x82/0xaa
    [<ffffffff813ddd19>] compat_ip_setsockopt+0x3b/0x99
    [<ffffffff813fb24a>] compat_raw_setsockopt+0x11/0x32
    [<ffffffff81399052>] compat_sock_common_setsockopt+0x18/0x1f
    [<ffffffff813c4d05>] compat_SyS_setsockopt+0x1a9/0x1cf
    [<ffffffff813c4149>] compat_SyS_socketcall+0x180/0x1e3
    [<ffffffff81488ea1>] cstar_dispatch+0x7/0x1e
    
    Signed-off-by: Ani Sinha <ani@arista.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd963c7aeb1f8059ea931afab2aa4ba5f09eb496
Author: Phil Reid <preid@electromag.com.au>
Date:   Fri Oct 30 16:43:55 2015 +0800

    stmmac: Correctly report PTP capabilities.
    
    [ Upstream commit e6dbe1eb2db0d7a14991c06278dd3030c45fb825 ]
    
    priv->hwts_*_en indicate if timestamping is enabled/disabled at run
    time. But  priv->dma_cap.time_stamp  and priv->dma_cap.atime_stamp
    indicates HW is support for PTPv1/PTPv2.
    
    Signed-off-by: Phil Reid <preid@electromag.com.au>
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef3ab7c8ef69a799b6c6156a2ae564b0114a76b9
Author: Jon Paul Maloy <jon.maloy@ericsson.com>
Date:   Wed Oct 28 13:09:53 2015 -0400

    tipc: linearize arriving NAME_DISTR and LINK_PROTO buffers
    
    [ Upstream commit 5cbb28a4bf65c7e4daa6c25b651fed8eb888c620 ]
    
    Testing of the new UDP bearer has revealed that reception of
    NAME_DISTRIBUTOR, LINK_PROTOCOL/RESET and LINK_PROTOCOL/ACTIVATE
    message buffers is not prepared for the case that those may be
    non-linear.
    
    We now linearize all such buffers before they are delivered up to the
    generic reception layer.
    
    In order for the commit to apply cleanly to 'net' and 'stable', we do
    the change in the function tipc_udp_recv() for now. Later, we will post
    a commit to 'net-next' moving the linearization to generic code, in
    tipc_named_rcv() and tipc_link_proto_rcv().
    
    Fixes: commit d0f91938bede ("tipc: add ip/udp media type")
    Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bf346548c66e5ba077a709ccfa11d512e14b8498
Author: Carol L Soto <clsoto@linux.vnet.ibm.com>
Date:   Tue Oct 27 17:36:20 2015 +0200

    net/mlx4: Copy/set only sizeof struct mlx4_eqe bytes
    
    [ Upstream commit c02b05011fadf8e409e41910217ca689f2fc9d91 ]
    
    When doing memcpy/memset of EQEs, we should use sizeof struct
    mlx4_eqe as the base size and not caps.eqe_size which could be bigger.
    
    If caps.eqe_size is bigger than the struct mlx4_eqe then we corrupt
    data in the master context.
    
    When using a 64 byte stride, the memcpy copied over 63 bytes to the
    slave_eq structure.  This resulted in copying over the entire eqe of
    interest, including its ownership bit -- and also 31 bytes of garbage
    into the next WQE in the slave EQ -- which did NOT include the ownership
    bit (and therefore had no impact).
    
    However, once the stride is increased to 128, we are overwriting the
    ownership bits of *three* eqes in the slave_eq struct.  This results
    in an incorrect ownership bit for those eqes, which causes the eq to
    seem to be full. The issue therefore surfaced only once 128-byte EQEs
    started being used in SRIOV and (overarchitectures that have 128/256
    byte cache-lines such as PPC) - e.g after commit 77507aa249ae
    "net/mlx4_core: Enable CQE/EQE stride support".
    
    Fixes: 08ff32352d6f ('mlx4: 64-byte CQE/EQE support')
    Signed-off-by: Carol L Soto <clsoto@linux.vnet.ibm.com>
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d5b34f8f87376c530b006195e398a58364451af
Author: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Date:   Mon Oct 26 12:46:37 2015 -0400

    RDS-TCP: Recover correctly from pskb_pull()/pksb_trim() failure in rds_tcp_data_recv
    
    [ Upstream commit 8ce675ff39b9958d1c10f86cf58e357efaafc856 ]
    
    Either of pskb_pull() or pskb_trim() may fail under low memory conditions.
    If rds_tcp_data_recv() ignores such failures, the application will
    receive corrupted data because the skb has not been correctly
    carved to the RDS datagram size.
    
    Avoid this by handling pskb_pull/pskb_trim failure in the same
    manner as the skb_clone failure: bail out of rds_tcp_data_recv(), and
    retry via the deferred call to rds_send_worker() that gets set up on
    ENOMEM from rds_tcp_read_sock()
    
    Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
    Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a8cf2fa6a557924d9d3d3ed67bd4afeeac37b91b
Author: Alexander Duyck <aduyck@mirantis.com>
Date:   Tue Oct 27 15:06:45 2015 -0700

    fib_trie: leaf_walk_rcu should not compute key if key is less than pn->key
    
    [ Upstream commit c2229fe1430d4e1c70e36520229dd64a87802b20 ]
    
    We were computing the child index in cases where the key value we were
    looking for was actually less than the base key of the tnode.  As a result
    we were getting incorrect index values that would cause us to skip over
    some children.
    
    To fix this I have added a test that will force us to use child index 0 if
    the key we are looking for is less than the key of the current tnode.
    
    Fixes: 8be33e955cb9 ("fib_trie: Fib walk rcu should take a tnode and key instead of a trie and a leaf")
    Reported-by: Brian Rak <brak@gameservers.com>
    Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 199bcc1dc5bd32e70e104a42c56857c1062714f7
Author: Eric Dumazet <edumazet@google.com>
Date:   Sat Oct 24 05:47:44 2015 -0700

    ipv6: gre: support SIT encapsulation
    
    [ Upstream commit 7e3b6e7423d5f994257c1de88e06b509673fdbcf ]
    
    gre_gso_segment() chokes if SIT frames were aggregated by GRO engine.
    
    Fixes: 61c1db7fae21e ("ipv6: sit: add GSO/TSO support")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b4158226f16fb48eb25ad8882888e45b4465bd83
Author: Guillaume Nault <g.nault@alphalink.fr>
Date:   Thu Oct 22 16:57:10 2015 +0200

    ppp: fix pppoe_dev deletion condition in pppoe_release()
    
    [ Upstream commit 1acea4f6ce1b1c0941438aca75dd2e5c6b09db60 ]
    
    We can't rely on PPPOX_ZOMBIE to decide whether to clear po->pppoe_dev.
    PPPOX_ZOMBIE can be set by pppoe_disc_rcv() even when po->pppoe_dev is
    NULL. So we have no guarantee that (sk->sk_state & PPPOX_ZOMBIE) implies
    (po->pppoe_dev != NULL).
    Since we're releasing a PPPoE socket, we want to release the pppoe_dev
    if it exists and reset sk_state to PPPOX_DEAD, no matter the previous
    value of sk_state. So we can just check for po->pppoe_dev and avoid any
    assumption on sk->sk_state.
    
    Fixes: 2b018d57ff18 ("pppoe: drop PPPOX_ZOMBIEs in pppoe_release")
    Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 728109e9d679faf2d50378109fc9b8fd1a8c3ae7
Author: Jason Wang <jasowang@redhat.com>
Date:   Fri Oct 23 00:57:05 2015 -0400

    macvtap: unbreak receiving of gro skb with frag list
    
    [ Upstream commit f23d538bc24a83c16127c2eb82c9cf1adc2b5149 ]
    
    We don't have fraglist support in TAP_FEATURES. This will lead
    software segmentation of gro skb with frag list. Fixes by having
    frag list support in TAP_FEATURES.
    
    With this patch single session of netperf receiving were restored from
    about 5Gb/s to about 12Gb/s on mlx4.
    
    Fixes a567dd6252 ("macvtap: simplify usage of tap_features")
    Cc: Vlad Yasevich <vyasevic@redhat.com>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Jason Wang <jasowang@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f06dd3b4658175f5c9e9331d35e31abe33ac00c3
Author: Bjørn Mork <bjorn@mork.no>
Date:   Thu Oct 22 14:15:58 2015 +0200

    qmi_wwan: add Sierra Wireless MC74xx/EM74xx
    
    [ Upstream commit 0db65fcfcded76fe4f74e3ca9f4e2baf67b683ef ]
    
    New device IDs shamelessly lifted from the vendor driver.
    
    Signed-off-by: Bjørn Mork <bjorn@mork.no>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d45ed6c1ff20d3640a31f03816ca2d48fb7d6f22
Author: Jon Paul Maloy <jon.maloy@ericsson.com>
Date:   Mon Oct 19 11:33:00 2015 -0400

    tipc: allow non-linear first fragment buffer
    
    [ Upstream commit 45c8b7b175ceb2d542e0fe15247377bf3bce29ec ]
    
    The current code for message reassembly is erroneously assuming that
    the the first arriving fragment buffer always is linear, and then goes
    ahead resetting the fragment list of that buffer in anticipation of
    more arriving fragments.
    
    However, if the buffer already happens to be non-linear, we will
    inadvertently drop the already attached fragment list, and later
    on trig a BUG() in __pskb_pull_tail().
    
    We see this happen when running fragmented TIPC multicast across UDP,
    something made possible since
    commit d0f91938bede ("tipc: add ip/udp media type")
    
    We fix this by not resetting the fragment list when the buffer is non-
    linear, and by initiatlizing our private fragment list tail pointer to
    the tail of the existing fragment list.
    
    Fixes: commit d0f91938bede ("tipc: add ip/udp media type")
    Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c98797fc8ff4cf4122a98cd7365c25c598c090e
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Mon Oct 19 13:16:49 2015 +0300

    irda: precedence bug in irlmp_seq_hb_idx()
    
    [ Upstream commit 50010c20597d14667eff0fdb628309986f195230 ]
    
    This is decrementing the pointer, instead of the value stored in the
    pointer.  KASan detects it as an out of bounds reference.
    
    Reported-by: "Berry Cheng 程君(成淼)" <chengmiao.cj@alibaba-inc.com>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>