commit 6e0f6268e3d1095a1800da36261d40ac53a7100c
Author: Sasha Levin <alexander.levin@verizon.com>
Date:   Mon Aug 8 22:12:59 2016 -0400

    Linux 3.18.39
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit dcb5a62d60438aa5a47b2659e8d170622941c27e
Author: Lukas Wunner <lukas@wunner.de>
Date:   Sun Jun 12 12:31:53 2016 +0200

    x86/quirks: Reintroduce scanning of secondary buses
    
    [ Upstream commit 850c321027c2e31d0afc71588974719a4b565550 ]
    
    We used to scan secondary buses until the following commit that
    was applied in 2009:
    
      8659c406ade3 ("x86: only scan the root bus in early PCI quirks")
    
    which commit constrained early quirks to the root bus only. Its
    motivation was to prevent application of the nvidia_bugs quirk
    on secondary buses.
    
    We're about to add a quirk to reset the Broadcom 4331 wireless card on
    2011/2012 Macs, which is located on a secondary bus behind a PCIe root
    port. To facilitate that, reintroduce scanning of secondary buses.
    
    The commit message of 8659c406ade3 notes that scanning only the root bus
    "saves quite some unnecessary scanning work". The algorithm used prior
    to 8659c406ade3 was particularly time consuming because it scanned
    buses 0 to 31 brute force. To avoid lengthening boot time, employ a
    recursive strategy which only scans buses that are actually reachable
    from the root bus.
    
    Yinghai Lu pointed out that the secondary bus number read from a
    bridge's config space may be invalid, in particular a value of 0 would
    cause an infinite loop. The PCI core goes beyond that and recurses to a
    child bus only if its bus number is greater than the parent bus number
    (see pci_scan_bridge()). Since the root bus is numbered 0, this implies
    that secondary buses may not be 0. Do the same on early scanning.
    
    If this algorithm is found to significantly impact boot time or cause
    infinite loops on broken hardware, it would be possible to limit its
    recursion depth: The Broadcom 4331 quirk applies at depth 1, all others
    at depth 0, so the bus need not be scanned deeper than that for now. An
    alternative approach would be to revert to scanning only the root bus,
    and apply the Broadcom 4331 quirk to the root ports 8086:1c12, 8086:1e12
    and 8086:1e16. Apple always positioned the card behind either of these
    three ports. The quirk would then check presence of the card in slot 0
    below the root port and do its deed.
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: linux-pci@vger.kernel.org
    Link: http://lkml.kernel.org/r/f0daa70dac1a9b2483abdb31887173eb6ab77bdf.1465690253.git.lukas@wunner.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 927dc15e3c07ce4fba29b06e470b83f4723eb23e
Author: Lukas Wunner <lukas@wunner.de>
Date:   Sun Jun 12 12:31:53 2016 +0200

    x86/quirks: Apply nvidia_bugs quirk only on root bus
    
    [ Upstream commit 447d29d1d3aed839e74c2401ef63387780ac51ed ]
    
    Since the following commit:
    
      8659c406ade3 ("x86: only scan the root bus in early PCI quirks")
    
    ... early quirks are only applied to devices on the root bus.
    
    The motivation was to prevent application of the nvidia_bugs quirk on
    secondary buses.
    
    We're about to reintroduce scanning of secondary buses for a quirk to
    reset the Broadcom 4331 wireless card on 2011/2012 Macs. To prevent
    regressions, open code the requirement to apply nvidia_bugs only on the
    root bus.
    
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Link: http://lkml.kernel.org/r/4d5477c1d76b2f0387a780f2142bbcdd9fee869b.1465690253.git.lukas@wunner.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 9c5125ac23143c28f7b4cc1530a4dd06a83c086e
Author: Jiri Slaby <jslaby@suse.cz>
Date:   Wed Jul 20 15:45:08 2016 -0700

    pps: do not crash when failed to register
    
    [ Upstream commit 368301f2fe4b07e5fb71dba3cc566bc59eb6705f ]
    
    With this command sequence:
    
      modprobe plip
      modprobe pps_parport
      rmmod pps_parport
    
    the partport_pps modules causes this crash:
    
      BUG: unable to handle kernel NULL pointer dereference at (null)
      IP: parport_detach+0x1d/0x60 [pps_parport]
      Oops: 0000 [#1] SMP
      ...
      Call Trace:
        parport_unregister_driver+0x65/0xc0 [parport]
        SyS_delete_module+0x187/0x210
    
    The sequence that builds up to this is:
    
     1) plip is loaded and takes the parport device for exclusive use:
    
        plip0: Parallel port at 0x378, using IRQ 7.
    
     2) pps_parport then fails to grab the device:
    
        pps_parport: parallel port PPS client
        parport0: cannot grant exclusive access for device pps_parport
        pps_parport: couldn't register with parport0
    
     3) rmmod of pps_parport is then killed because it tries to access
        pardev->name, but pardev (taken from port->cad) is NULL.
    
    So add a check for NULL in the test there too.
    
    Link: http://lkml.kernel.org/r/20160714115245.12651-1-jslaby@suse.cz
    Signed-off-by: Jiri Slaby <jslaby@suse.cz>
    Acked-by: Rodolfo Giometti <giometti@enneenne.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit b863398c0f636e43fac9a9cb5b7632a0e05ef572
Author: Andrey Ryabinin <aryabinin@virtuozzo.com>
Date:   Wed Jul 20 15:45:00 2016 -0700

    radix-tree: fix radix_tree_iter_retry() for tagged iterators.
    
    [ Upstream commit 3cb9185c67304b2a7ea9be73e7d13df6fb2793a1 ]
    
    radix_tree_iter_retry() resets slot to NULL, but it doesn't reset tags.
    Then NULL slot and non-zero iter.tags passed to radix_tree_next_slot()
    leading to crash:
    
      RIP: radix_tree_next_slot include/linux/radix-tree.h:473
        find_get_pages_tag+0x334/0x930 mm/filemap.c:1452
      ....
      Call Trace:
        pagevec_lookup_tag+0x3a/0x80 mm/swap.c:960
        mpage_prepare_extent_to_map+0x321/0xa90 fs/ext4/inode.c:2516
        ext4_writepages+0x10be/0x2b20 fs/ext4/inode.c:2736
        do_writepages+0x97/0x100 mm/page-writeback.c:2364
        __filemap_fdatawrite_range+0x248/0x2e0 mm/filemap.c:300
        filemap_write_and_wait_range+0x121/0x1b0 mm/filemap.c:490
        ext4_sync_file+0x34d/0xdb0 fs/ext4/fsync.c:115
        vfs_fsync_range+0x10a/0x250 fs/sync.c:195
        vfs_fsync fs/sync.c:209
        do_fsync+0x42/0x70 fs/sync.c:219
        SYSC_fdatasync fs/sync.c:232
        SyS_fdatasync+0x19/0x20 fs/sync.c:230
        entry_SYSCALL_64_fastpath+0x23/0xc1 arch/x86/entry/entry_64.S:207
    
    We must reset iterator's tags to bail out from radix_tree_next_slot()
    and go to the slow-path in radix_tree_next_chunk().
    
    Fixes: 46437f9a554f ("radix-tree: fix race in gang lookup")
    Link: http://lkml.kernel.org/r/1468495196-10604-1-git-send-email-aryabinin@virtuozzo.com
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Konstantin Khlebnikov <koct9i@gmail.com>
    Cc: Matthew Wilcox <willy@linux.intel.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8777c9f654637d56f4c4ca54eb1bc7c609b70085
Author: Ilya Dryomov <idryomov@gmail.com>
Date:   Tue Jul 19 03:50:28 2016 +0200

    libceph: apply new_state before new_up_client on incrementals
    
    [ Upstream commit 930c532869774ebf8af9efe9484c597f896a7d46 ]
    
    Currently, osd_weight and osd_state fields are updated in the encoding
    order.  This is wrong, because an incremental map may look like e.g.
    
        new_up_client: { osd=6, addr=... } # set osd_state and addr
        new_state: { osd=6, xorstate=EXISTS } # clear osd_state
    
    Suppose osd6's current osd_state is EXISTS (i.e. osd6 is down).  After
    applying new_up_client, osd_state is changed to EXISTS | UP.  Carrying
    on with the new_state update, we flip EXISTS and leave osd6 in a weird
    "!EXISTS but UP" state.  A non-existent OSD is considered down by the
    mapping code
    
    2087    for (i = 0; i < pg->pg_temp.len; i++) {
    2088            if (ceph_osd_is_down(osdmap, pg->pg_temp.osds[i])) {
    2089                    if (ceph_can_shift_osds(pi))
    2090                            continue;
    2091
    2092                    temp->osds[temp->size++] = CRUSH_ITEM_NONE;
    
    and so requests get directed to the second OSD in the set instead of
    the first, resulting in OSD-side errors like:
    
    [WRN] : client.4239 192.168.122.21:0/2444980242 misdirected client.4239.1:2827 pg 2.5df899f2 to osd.4 not [1,4,6] in e680/680
    
    and hung rbds on the client:
    
    [  493.566367] rbd: rbd0: write 400000 at 11cc00000 (0)
    [  493.566805] rbd: rbd0:   result -6 xferred 400000
    [  493.567011] blk_update_request: I/O error, dev rbd0, sector 9330688
    
    The fix is to decouple application from the decoding and:
    - apply new_weight first
    - apply new_state before new_up_client
    - twiddle osd_state flags if marking in
    - clear out some of the state if osd is destroyed
    
    Fixes: http://tracker.ceph.com/issues/14901
    
    Cc: stable@vger.kernel.org # 3.15+: 6dd74e44dc1d: libceph: set 'exists' flag for newly up osd
    Cc: stable@vger.kernel.org # 3.15+
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Reviewed-by: Josh Durgin <jdurgin@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a717682647ed68a511260345d3aadb6a9b3c838a
Author: Yan, Zheng <zyan@redhat.com>
Date:   Fri Aug 28 17:59:35 2015 +0800

    libceph: set 'exists' flag for newly up osd
    
    [ Upstream commit 6dd74e44dc1df85f125982a8d6591bc4a76c9f5d ]
    
    Signed-off-by: Yan, Zheng <zyan@redhat.com>
    Reviewed-by: Sage Weil <sage@redhat.com>
    Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 5eaee47bcdf4f17e2bdd6105f12b6d5e567e72c4
Author: Maxim Patlasov <mpatlasov@virtuozzo.com>
Date:   Thu Jul 21 18:24:26 2016 -0700

    ovl: verify upper dentry in ovl_remove_and_whiteout()
    
    [ Upstream commit cfc9fde0b07c3b44b570057c5f93dda59dca1c94 ]
    
    The upper dentry may become stale before we call ovl_lock_rename_workdir.
    For example, someone could (mistakenly or maliciously) manually unlink(2)
    it directly from upperdir.
    
    To ensure it is not stale, let's lookup it after ovl_lock_rename_workdir
    and and check if it matches the upper dentry.
    
    Essentially, it is the same problem and similar solution as in
    commit 11f3710417d0 ("ovl: verify upper dentry before unlink and rename").
    
    Signed-off-by: Maxim Patlasov <mpatlasov@virtuozzo.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a9d39310cf41fe1306c18730c98ca2c3355fcb0c
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Mon Jun 27 14:12:34 2016 -0700

    tty/vt/keyboard: fix OOB access in do_compute_shiftstate()
    
    [ Upstream commit 510cccb5b0c8868a2b302a0ab524da7912da648b ]
    
    The size of individual keymap in drivers/tty/vt/keyboard.c is NR_KEYS,
    which is currently 256, whereas number of keys/buttons in input device (and
    therefor in key_down) is much larger - KEY_CNT - 768, and that can cause
    out-of-bound access when we do
    
            sym = U(key_maps[0][k]);
    
    with large 'k'.
    
    To fix it we should not attempt iterating beyond smaller of NR_KEYS and
    KEY_CNT.
    
    Also while at it let's switch to for_each_set_bit() instead of open-coding
    it.
    
    Reported-by: Sasha Levin <sasha.levin@oracle.com>
    Reviewed-by: Guenter Roeck <linux@roeck-us.net>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit e18fa5ad02a5920c8582c6e0401ba4f570ede8a0
Author: Taras Kondratiuk <takondra@cisco.com>
Date:   Wed Jul 13 22:05:38 2016 +0000

    mmc: block: fix packed command header endianness
    
    [ Upstream commit f68381a70bb2b26c31b13fdaf67c778f92fd32b4 ]
    
    The code that fills packed command header assumes that CPU runs in
    little-endian mode. Hence the header is malformed in big-endian mode
    and causes MMC data transfer errors:
    
    [  563.200828] mmcblk0: error -110 transferring data, sector 2048, nr 8, cmd response 0x900, card status 0xc40
    [  563.219647] mmcblk0: packed cmd failed, nr 2, sectors 16, failure index: -1
    
    Convert header data to LE.
    
    Signed-off-by: Taras Kondratiuk <takondra@cisco.com>
    Fixes: ce39f9d17c14 ("mmc: support packed write command for eMMC4.5 devices")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit d380c88d88ed317a7493e5cba85fa0ebecf38ac9
Author: James Patrick-Evans <james@jmp-e.com>
Date:   Fri Jul 15 16:40:45 2016 +0100

    media: fix airspy usb probe error path
    
    [ Upstream commit aa93d1fee85c890a34f2510a310e55ee76a27848 ]
    
    Fix a memory leak on probe error of the airspy usb device driver.
    
    The problem is triggered when more than 64 usb devices register with
    v4l2 of type VFL_TYPE_SDR or VFL_TYPE_SUBDEV.
    
    The memory leak is caused by the probe function of the airspy driver
    mishandeling errors and not freeing the corresponding control structures
    when an error occours registering the device to v4l2 core.
    
    A badusb device can emulate 64 of these devices, and then through
    continual emulated connect/disconnect of the 65th device, cause the
    kernel to run out of RAM and crash the kernel, thus causing a local DOS
    vulnerability.
    
    Fixes CVE-2016-5400
    
    Signed-off-by: James Patrick-Evans <james@jmp-e.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Cc: stable@vger.kernel.org # 3.17+
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 5f51fe4b87db1002807eb448cd644afeab74339a
Author: Awais Belal <awais_belal@mentor.com>
Date:   Tue Jul 12 15:21:28 2016 +0500

    ALSA: hda: add AMD Stoney PCI ID with proper driver caps
    
    [ Upstream commit d716fb03f76411fc7e138692e33b749cada5c094 ]
    
    This allows the device to correctly show up as ATI HDMI
    rather than a generic one and allows the driver to use
    the available caps.
    
    Signed-off-by: Awais Belal <awais_belal@mentor.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 1fcba7f08ac56a15917901d21df227f522883802
Author: Maruthi Srinivas Bayyavarapu <Maruthi.Bayyavarapu@amd.com>
Date:   Mon Jul 20 19:56:18 2015 +0530

    ALSA: hda: add new AMD PCI IDs with proper driver caps
    
    [ Upstream commit 5022813ddb28b7679e8285812d52aaeb7e1e7657 ]
    
    Fixes audio problems on newer asics
    
    Signed-off-by: Maruthi Bayyavarapu <maruthi.bayyavarapu@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 1a012d587c7216cccea340774d3914a71c689e5b
Author: Sasha Levin <alexander.levin@verizon.com>
Date:   Sat Aug 6 12:55:50 2016 -0400

    ALSA: hda - fix use-after-free after module unload
    
    [ Upstream commit ab58d8cc870ef3f0771c197700441936898d1f1d ]
    
    register_vga_switcheroo() sets the PM ops from the hda structure which
    is freed later in azx_free. Make sure that these ops are cleared.
    
    Caught by KASAN, initially noticed due to a general protection fault.
    
    Fixes: 246efa4a072f ("snd/hda: add runtime suspend/resume on optimus support (v4)")
    Signed-off-by: Peter Wu <peter@lekensteyn.nl>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 943e282c64a7f664c3720f504ca70043807696e0
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Fri Jul 8 01:39:11 2016 +0300

    posix_cpu_timer: Exit early when process has been reaped
    
    [ Upstream commit 2c13ce8f6b2f6fd9ba2f9261b1939fc0f62d1307 ]
    
    Variable "now" seems to be genuinely used unintialized
    if branch
    
            if (CPUCLOCK_PERTHREAD(timer->it_clock)) {
    
    is not taken and branch
    
            if (unlikely(sighand == NULL)) {
    
    is taken. In this case the process has been reaped and the timer is marked as
    disarmed anyway. So none of the postprocessing of the sample is
    required. Return right away.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/20160707223911.GA26483@p183.telecom.by
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 26c5fd38db944f152851ce64f25af0c00dea0d26
Author: Lukas Wunner <lukas@wunner.de>
Date:   Sun Jun 12 12:31:53 2016 +0200

    x86/quirks: Add early quirk to reset Apple AirPort card
    
    [ Upstream commit abb2bafd295fe962bbadc329dbfb2146457283ac ]
    
    The EFI firmware on Macs contains a full-fledged network stack for
    downloading OS X images from osrecovery.apple.com. Unfortunately
    on Macs introduced 2011 and 2012, EFI brings up the Broadcom 4331
    wireless card on every boot and leaves it enabled even after
    ExitBootServices has been called. The card continues to assert its IRQ
    line, causing spurious interrupts if the IRQ is shared. It also corrupts
    memory by DMAing received packets, allowing for remote code execution
    over the air. This only stops when a driver is loaded for the wireless
    card, which may be never if the driver is not installed or blacklisted.
    
    The issue seems to be constrained to the Broadcom 4331. Chris Milsted
    has verified that the newer Broadcom 4360 built into the MacBookPro11,3
    (2013/2014) does not exhibit this behaviour. The chances that Apple will
    ever supply a firmware fix for the older machines appear to be zero.
    
    The solution is to reset the card on boot by writing to a reset bit in
    its mmio space. This must be done as an early quirk and not as a plain
    vanilla PCI quirk to successfully combat memory corruption by DMAed
    packets: Matthew Garrett found out in 2012 that the packets are written
    to EfiBootServicesData memory (http://mjg59.dreamwidth.org/11235.html).
    This type of memory is made available to the page allocator by
    efi_free_boot_services(). Plain vanilla PCI quirks run much later, in
    subsys initcall level. In-between a time window would be open for memory
    corruption. Random crashes occurring in this time window and attributed
    to DMAed packets have indeed been observed in the wild by Chris
    Bainbridge.
    
    When Matthew Garrett analyzed the memory corruption issue in 2012, he
    sought to fix it with a grub quirk which transitions the card to D3hot:
    http://git.savannah.gnu.org/cgit/grub.git/commit/?id=9d34bb85da56
    
    This approach does not help users with other bootloaders and while it
    may prevent DMAed packets, it does not cure the spurious interrupts
    emanating from the card. Unfortunately the card's mmio space is
    inaccessible in D3hot, so to reset it, we have to undo the effect of
    Matthew's grub patch and transition the card back to D0.
    
    Note that the quirk takes a few shortcuts to reduce the amount of code:
    The size of BAR 0 and the location of the PM capability is identical
    on all affected machines and therefore hardcoded. Only the address of
    BAR 0 differs between models. Also, it is assumed that the BCMA core
    currently mapped is the 802.11 core. The EFI driver seems to always take
    care of this.
    
    Michael Büsch, Bjorn Helgaas and Matt Fleming contributed feedback
    towards finding the best solution to this problem.
    
    The following should be a comprehensive list of affected models:
        iMac13,1        2012  21.5"       [Root Port 00:1c.3 = 8086:1e16]
        iMac13,2        2012  27"         [Root Port 00:1c.3 = 8086:1e16]
        Macmini5,1      2011  i5 2.3 GHz  [Root Port 00:1c.1 = 8086:1c12]
        Macmini5,2      2011  i5 2.5 GHz  [Root Port 00:1c.1 = 8086:1c12]
        Macmini5,3      2011  i7 2.0 GHz  [Root Port 00:1c.1 = 8086:1c12]
        Macmini6,1      2012  i5 2.5 GHz  [Root Port 00:1c.1 = 8086:1e12]
        Macmini6,2      2012  i7 2.3 GHz  [Root Port 00:1c.1 = 8086:1e12]
        MacBookPro8,1   2011  13"         [Root Port 00:1c.1 = 8086:1c12]
        MacBookPro8,2   2011  15"         [Root Port 00:1c.1 = 8086:1c12]
        MacBookPro8,3   2011  17"         [Root Port 00:1c.1 = 8086:1c12]
        MacBookPro9,1   2012  15"         [Root Port 00:1c.1 = 8086:1e12]
        MacBookPro9,2   2012  13"         [Root Port 00:1c.1 = 8086:1e12]
        MacBookPro10,1  2012  15"         [Root Port 00:1c.1 = 8086:1e12]
        MacBookPro10,2  2012  13"         [Root Port 00:1c.1 = 8086:1e12]
    
    For posterity, spurious interrupts caused by the Broadcom 4331 wireless
    card resulted in splats like this (stacktrace omitted):
    
        irq 17: nobody cared (try booting with the "irqpoll" option)
        handlers:
        [<ffffffff81374370>] pcie_isr
        [<ffffffffc0704550>] sdhci_irq [sdhci] threaded [<ffffffffc07013c0>] sdhci_thread_irq [sdhci]
        [<ffffffffc0a0b960>] azx_interrupt [snd_hda_codec]
        Disabling IRQ #17
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=79301
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=111781
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=728916
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=895951#c16
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1009819
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1098621
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1149632#c5
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1279130
    Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1332732
    Tested-by: Konstantin Simanov <k.simanov@stlk.ru>        # [MacBookPro8,1]
    Tested-by: Lukas Wunner <lukas@wunner.de>                # [MacBookPro9,1]
    Tested-by: Bryan Paradis <bryan.paradis@gmail.com>       # [MacBookPro9,2]
    Tested-by: Andrew Worsley <amworsley@gmail.com>          # [MacBookPro10,1]
    Tested-by: Chris Bainbridge <chris.bainbridge@gmail.com> # [MacBookPro10,2]
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Acked-by: Rafał Miłecki <zajec5@gmail.com>
    Acked-by: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Bjorn Helgaas <bhelgaas@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Chris Milsted <cmilsted@redhat.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matthew Garrett <mjg59@srcf.ucam.org>
    Cc: Michael Buesch <m@bues.ch>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Cc: b43-dev@lists.infradead.org
    Cc: linux-pci@vger.kernel.org
    Cc: linux-wireless@vger.kernel.org
    Cc: stable@vger.kernel.org
    Cc: stable@vger.kernel.org # 123456789abc: x86/quirks: Apply nvidia_bugs quirk only on root bus
    Cc: stable@vger.kernel.org # 123456789abc: x86/quirks: Reintroduce scanning of secondary buses
    Link: http://lkml.kernel.org/r/48d0972ac82a53d460e5fce77a07b2560db95203.1465690253.git.lukas@wunner.de
    [ Did minor readability edits. ]
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit b001c42aec27c92fa3cc423fb1ebc41f7033231a
Author: Dmitri Epshtein <dima@marvell.com>
Date:   Wed Jul 6 04:18:58 2016 +0200

    net: mvneta: set real interrupt per packet for tx_done
    
    [ Upstream commit 06708f81528725148473c0869d6af5f809c6824b ]
    
    Commit aebea2ba0f74 ("net: mvneta: fix Tx interrupt delay") intended to
    set coalescing threshold to a value guaranteeing interrupt generation
    per each sent packet, so that buffers can be released with no delay.
    
    In fact setting threshold to '1' was wrong, because it causes interrupt
    every two packets. According to the documentation a reason behind it is
    following - interrupt occurs once sent buffers counter reaches a value,
    which is higher than one specified in MVNETA_TXQ_SIZE_REG(q). This
    behavior was confirmed during tests. Also when testing the SoC working
    as a NAS device, better performance was observed with int-per-packet,
    as it strongly depends on the fact that all transmitted packets are
    released immediately.
    
    This commit enables NETA controller work in interrupt per sent packet mode
    by setting coalescing threshold to 0.
    
    Signed-off-by: Dmitri Epshtein <dima@marvell.com>
    Signed-off-by: Marcin Wojtas <mw@semihalf.com>
    Cc: <stable@vger.kernel.org> # v3.10+
    Fixes aebea2ba0f74 ("net: mvneta: fix Tx interrupt delay")
    Acked-by: Willy Tarreau <w@1wt.eu>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 77dee6b71989b05fa3bcbcc360e26bb7928098cb
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Jul 8 08:05:19 2016 +0200

    ALSA: ctl: Stop notification after disconnection
    
    [ Upstream commit f388cdcdd160687c6650833f286b9c89c50960ff ]
    
    snd_ctl_remove() has a notification for the removal event.  It's
    superfluous when done during the device got disconnected.  Although
    the notification itself is mostly harmless, it may potentially be
    harmful, and should be suppressed.  Actually some components PCM may
    free ctl elements during the disconnect or free callbacks, thus it's
    no theoretical issue.
    
    This patch adds the check of card->shutdown flag for avoiding
    unnecessary notifications after (or during) the disconnect.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit ee5dc42072afe16b45972667c58c373876803f3c
Author: Hui Wang <hui.wang@canonical.com>
Date:   Fri Jul 8 14:26:57 2016 +0800

    ALSA: hda/realtek - add new pin definition in alc225 pin quirk table
    
    [ Upstream commit 8a132099f080d7384bb6ab4cc168f76cb4b47d08 ]
    
    We have some Dell laptops which can't detect headset mic, the machines
    use the codec ALC225, they have some new pin configuration values,
    after adding them in the alc225 pin quirk table, they work well.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Hui Wang <hui.wang@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a3638d4fdf49046a09a71d9ce8c426bbfd37fbbc
Author: Vivek Goyal <vgoyal@redhat.com>
Date:   Fri Jul 1 16:34:25 2016 -0400

    ovl: Copy up underlying inode's ->i_mode to overlay inode
    
    [ Upstream commit 07a2daab49c549a37b5b744cbebb6e3f445f12bc ]
    
    Right now when a new overlay inode is created, we initialize overlay
    inode's ->i_mode from underlying inode ->i_mode but we retain only
    file type bits (S_IFMT) and discard permission bits.
    
    This patch changes it and retains permission bits too. This should allow
    overlay to do permission checks on overlay inode itself in task context.
    
    [SzM] It also fixes clearing suid/sgid bits on write.
    
    Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
    Reported-by: Eryu Guan <eguan@redhat.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay and f_inode to the underlay")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit d4e1ac55843e799890318798794d7e6b48a68d4c
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Mon Jul 4 16:49:48 2016 +0200

    ovl: handle ATTR_KILL*
    
    [ Upstream commit b99c2d913810e56682a538c9f2394d76fca808f8 ]
    
    Before 4bacc9c9234c ("overlayfs: Make f_path...") file->f_path pointed to
    the underlying file, hence suid/sgid removal on write worked fine.
    
    After that patch file->f_path pointed to the overlay file, and the file
    mode bits weren't copied to overlay_inode->i_mode.  So the suid/sgid
    removal simply stopped working.
    
    The fix is to copy the mode bits, but then ovl_setattr() needs to clear
    ATTR_MODE to avoid the BUG() in notify_change().  So do this first, then in
    the next patch copy the mode.
    
    Reported-by: Eryu Guan <eguan@redhat.com>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: 4bacc9c9234c ("overlayfs: Make f_path always point to the overlay and f_inode to the underlay")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 69fb704cac4d3eb59b407f8cc8fa366c44e71318
Author: Sinclair Yeh <syeh@vmware.com>
Date:   Wed Jun 29 12:58:49 2016 -0700

    drm/ttm: Make ttm_bo_mem_compat available
    
    [ Upstream commit 94477bff390aa4612d2332c8abafaae0a13d6923 ]
    
    There are cases where it is desired to see if a proposed placement
    is compatible with a buffer object before calling ttm_bo_validate().
    
    Signed-off-by: Sinclair Yeh <syeh@vmware.com>
    Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
    Cc: <stable@vger.kernel.org>
    ---
    This is the first of a 3-patch series to fix a black screen
    issue observed on Ubuntu 16.04 server.
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 3837836cb5e729b7ee2b80957f82141d6ee30436
Author: Cameron Gutman <aicommander@gmail.com>
Date:   Wed Jun 29 09:51:35 2016 -0700

    Input: xpad - validate USB endpoint count during probe
    
    [ Upstream commit caca925fca4fb30c67be88cacbe908eec6721e43 ]
    
    This prevents a malicious USB device from causing an oops.
    
    Signed-off-by: Cameron Gutman <aicommander@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 06c742fbf4877d958cdf9d225480a45863461a06
Author: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Date:   Thu Jun 16 15:42:25 2016 +0200

    ARM: mvebu: fix HW I/O coherency related deadlocks
    
    [ Upstream commit c5379ba8fccd99d5f99632c789f0393d84a57805 ]
    
    Until now, our understanding for HW I/O coherency to work on the
    Cortex-A9 based Marvell SoC was that only the PCIe regions should be
    mapped strongly-ordered. However, we were still encountering some
    deadlocks, especially when testing the CESA crypto engine. After
    checking with the HW designers, it was concluded that all the MMIO
    registers should be mapped as strongly ordered for the HW I/O coherency
    mechanism to work properly.
    
    This fixes some easy to reproduce deadlocks with the CESA crypto engine
    driver (dmcrypt on a sufficiently large disk partition).
    
    Tested-by: Terry Stockert <stockert@inkblotadmirer.me>
    Tested-by: Romain Perier <romain.perier@free-electrons.com>
    Cc: Terry Stockert <stockert@inkblotadmirer.me>
    Cc: Romain Perier <romain.perier@free-electrons.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f5bba514aff9bb5a7f2ea8e918d8c53684fb6195
Author: Florian Westphal <fw@strlen.de>
Date:   Wed Aug 3 11:34:46 2016 -0400

    netfilter: x_tables: speed up jump target validation
    
    [ Upstream commit f4dc77713f8016d2e8a3295e1c9c53a21f296def ]
    
    The dummy ruleset I used to test the original validation change was broken,
    most rules were unreachable and were not tested by mark_source_chains().
    
    In some cases rulesets that used to load in a few seconds now require
    several minutes.
    
    sample ruleset that shows the behaviour:
    
    echo "*filter"
    for i in $(seq 0 100000);do
            printf ":chain_%06x - [0:0]\n" $i
    done
    for i in $(seq 0 100000);do
       printf -- "-A INPUT -j chain_%06x\n" $i
       printf -- "-A INPUT -j chain_%06x\n" $i
       printf -- "-A INPUT -j chain_%06x\n" $i
    done
    echo COMMIT
    
    [ pipe result into iptables-restore ]
    
    This ruleset will be about 74mbyte in size, with ~500k searches
    though all 500k[1] rule entries. iptables-restore will take forever
    (gave up after 10 minutes)
    
    Instead of always searching the entire blob for a match, fill an
    array with the start offsets of every single ipt_entry struct,
    then do a binary search to check if the jump target is present or not.
    
    After this change ruleset restore times get again close to what one
    gets when reverting 36472341017529e (~3 seconds on my workstation).
    
    [1] every user-defined rule gets an implicit RETURN, so we get
    300k jumps + 100k userchains + 100k returns -> 500k rule entries
    
    Fixes: 36472341017529e ("netfilter: x_tables: validate targets of jumps")
    Reported-by: Jeff Wu <wujiafu@gmail.com>
    Tested-by: Jeff Wu <wujiafu@gmail.com>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 9a881c206b0d4505e913639a066fc6318ec7ebe0
Author: Sasha Levin <alexander.levin@verizon.com>
Date:   Mon Aug 1 11:16:21 2016 -0400

    Revert "sparc64: Fix numa node distance initialization"
    
    This reverts commit 0396a871c4e3fbbaabb4f2632c1d388a04b68c84.
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 5d76452a79862d37606becb3a6bc4483dd65a1c6
Author: Sasha Levin <alexander.levin@verizon.com>
Date:   Mon Aug 1 11:16:01 2016 -0400

    Revert "MIPS: Reserve nosave data for hibernation"
    
    This reverts commit 1dd0964204277108e3e06e7df4c1f06a79d55093.
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>