commit 03329bc68158916821391b5857f1d106ecbe9668
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Tue Jun 5 11:46:14 2018 +0200

    Linux 4.16.14

commit 4f6597fb03344ced4a8ca4931f3026e3eb76cada
Author: Hugh Dickins <hughd@google.com>
Date:   Fri Jun 1 16:50:50 2018 -0700

    mm: fix the NULL mapping case in __isolate_lru_page()
    
    commit 145e1a71e090575c74969e3daa8136d1e5b99fc8 upstream.
    
    George Boole would have noticed a slight error in 4.16 commit
    69d763fc6d3a ("mm: pin address_space before dereferencing it while
    isolating an LRU page").  Fix it, to match both the comment above it,
    and the original behaviour.
    
    Although anonymous pages are not marked PageDirty at first, we have an
    old habit of calling SetPageDirty when a page is removed from swap
    cache: so there's a category of ex-swap pages that are easily
    migratable, but were inadvertently excluded from compaction's async
    migration in 4.16.
    
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1805302014001.12558@eggly.anvils
    Fixes: 69d763fc6d3a ("mm: pin address_space before dereferencing it while isolating an LRU page")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Acked-by: Mel Gorman <mgorman@techsingularity.net>
    Reported-by:  Ivan Kalvachev <ikalvachev@gmail.com>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Jan Kara <jack@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3035e187f397edaf81de0d859bff7c6bc26057c8
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed May 23 22:53:22 2018 -0400

    fix io_destroy()/aio_complete() race
    
    commit 4faa99965e027cc057c5145ce45fa772caa04e8d upstream.
    
    If io_destroy() gets to cancelling everything that can be cancelled and
    gets to kiocb_cancel() calling the function driver has left in ->ki_cancel,
    it becomes vulnerable to a race with IO completion.  At that point req
    is already taken off the list and aio_complete() does *NOT* spin until
    we (in free_ioctx_users()) releases ->ctx_lock.  As the result, it proceeds
    to kiocb_free(), freing req just it gets passed to ->ki_cancel().
    
    Fix is simple - remove from the list after the call of kiocb_cancel().  All
    instances of ->ki_cancel() already have to cope with the being called with
    iocb still on list - that's what happens in io_cancel(2).
    
    Cc: stable@kernel.org
    Fixes: 0460fef2a921 "aio: use cancellation list lazily"
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 698127c59e55ca0cbdab86321d7779945db6f624
Author: Ondrej Zary <linux@rainbow-software.org>
Date:   Fri Mar 9 23:22:04 2018 +0100

    drm/i915: Disable LVDS on Radiant P845
    
    commit b3fb22733ae61050f8d10a1d6a8af176c5c5db1a upstream.
    
    Radiant P845 does not have LVDS, only VGA.
    
    Cc: stable@vger.kernel.org
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=105468
    Signed-off-by: Ondrej Zary <linux@rainbow-software.org>
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180309222204.4771-1-linux@rainbow-software.org
    (cherry picked from commit 7f7105f99b75aca4f8c2a748ed6b82c7f8be3293)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cff96981d8eb7e311d00e480fefb3da0401bff9a
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri May 18 08:48:40 2018 +0100

    drm/i915/lvds: Move acpi lid notification registration to registration phase
    
    commit b9eb9c92899a509fe258d38dd6c214b1de69eee0 upstream.
    
    Delay registering ourselves with the acpi lid notification mechanism
    until we are registering the connectors after initialisation is
    complete. This prevents a possibility of trying to handle the lid
    notification before we are ready with the danger of chasing
    uninitialised function pointers.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000000
     IP:           (null)
     PGD 0 P4D 0
     Oops: 0010 [#1] PREEMPT SMP PTI
     Modules linked in: arc4(+) iwldvm(+) i915(+) mac80211 i2c_algo_bit coretemp mei_wdt iwlwifi drm_kms_helper kvm_intel wmi_bmof iTCO_wdt iTCO_vendor_support kvm snd_hda_codec_conexant snd_hda_codec_generic drm psmouse cfg80211 irqbypass input_leds pcspkr i2c_i801 snd_hda_intel snd_hda_codec thinkpad_acpi snd_hda_core mei_me lpc_ich snd_hwdep e1000e wmi nvram snd_pcm mei snd_timer shpchp ptp pps_core rfkill syscopyarea snd intel_agp sysfillrect intel_gtt soundcore sysimgblt battery led_class fb_sys_fops ac rtc_cmos agpgart evdev mac_hid acpi_cpufreq ip_tables x_tables ext4 crc32c_generic crc16 mbcache jbd2 fscrypto crypto_simd glue_helper cryptd aes_x86_64 xts algif_skcipher af_alg dm_crypt dm_mod sd_mod uas usb_storage serio_raw atkbd libps2 ahci libahci uhci_hcd libata scsi_mod ehci_pci
      ehci_hcd usbcore usb_common i8042 serio
     CPU: 1 PID: 378 Comm: systemd-logind Not tainted 4.16.8-1-ARCH #1
     Hardware name: LENOVO 7454CTO/7454CTO, BIOS 6DET72WW (3.22 ) 10/25/2012
     RIP: 0010:          (null)
     RSP: 0018:ffffaf4580c33a18 EFLAGS: 00010287
     RAX: 0000000000000000 RBX: ffff947533558000 RCX: 000000000000003e
     RDX: ffffffffc0aa80c0 RSI: ffffaf4580c33a3c RDI: ffff947534e4c000
     RBP: ffff947533558338 R08: ffff947534598930 R09: ffffffffc0a928b1
     R10: ffffd8f181d5fd40 R11: 0000000000000000 R12: ffffffffc0a928b1
     R13: ffff947533558368 R14: ffffffffc0a928a9 R15: ffff947534e4c000
     FS:  00007f3dc4ddb940(0000) GS:ffff947539280000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 0000000000000000 CR3: 000000006e214000 CR4: 00000000000406e0
     Call Trace:
      ?  intel_modeset_setup_hw_state+0x385/0xf60 [i915]
      ? __intel_display_resume+0x1e/0xc0 [i915]
      ? intel_display_resume+0xcc/0x120 [i915]
      ? intel_lid_notify+0xbc/0xc0 [i915]
      ? notifier_call_chain+0x47/0x70
      ? blocking_notifier_call_chain+0x3e/0x60
      ? acpi_lid_notify_state+0x8f/0x1d0
      ? acpi_lid_update_state+0x49/0x70
      ? acpi_lid_input_open+0x60/0x90
      ? input_open_device+0x5d/0xa0
      ? evdev_open+0x1ba/0x1e0 [evdev]
      ? chrdev_open+0xa3/0x1b0
      ? cdev_put.part.0+0x20/0x20
      ? do_dentry_open+0x14c/0x300
      ? path_openat+0x30c/0x1240
      ? current_time+0x16/0x60
      ? do_filp_open+0x93/0x100
      ? __check_object_size+0xfb/0x180
      ? do_sys_open+0x186/0x210
      ? do_syscall_64+0x74/0x190
      ?  entry_SYSCALL_64_after_hwframe+0x3d/0xa2
     Code:  Bad RIP value.
     RIP:           (null) RSP: ffffaf4580c33a18
     CR2: 0000000000000000
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=106559
    Fixes: c1c7af608920 ("drm/i915: force mode set at lid open time")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180518074840.16194-1-chris@chris-wilson.co.uk
    Cc: stable@vger.kernel.org
    (cherry picked from commit e578a570dc7c20475774d1ff993825e3bd7a7011)
    Signed-off-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1952b265c782a5ccd7daea74aa3597283e6e087
Author: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
Date:   Fri May 11 12:51:42 2018 -0700

    drm/psr: Fix missed entry in PSR setup time table.
    
    commit bdcc02cf1bb508fc700df7662f55058f651f2621 upstream.
    
    Entry corresponding to 220 us setup time was missing. I am not aware of
    any specific bug this fixes, but this could potentially result in enabling
    PSR on a panel with a higher setup time requirement than supported by the
    hardware.
    
    I verified the value is present in eDP spec versions 1.3, 1.4 and 1.4a.
    
    Fixes: 6608804b3d7f ("drm/dp: Add drm_dp_psr_setup_time()")
    Cc: stable@vger.kernel.org
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Jose Roberto de Souza <jose.souza@intel.com>
    Cc: dri-devel@lists.freedesktop.org
    Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
    Reviewed-by: Tarun Vyas <tarun.vyas@intel.com>
    Signed-off-by: Dhinakaran Pandiyan <dhinakaran.pandiyan@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180511195145.3829-3-dhinakaran.pandiyan@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de1f13583c34fefaeebd77c4109c5e549f55b98c
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Thu May 24 11:27:27 2018 +0300

    intel_th: Use correct device when freeing buffers
    
    commit 0ed2424b911f3a058dfea01b78817abed767433d upstream.
    
    Commit d5c435df4a890 ("intel_th: msu: Use the real device in case of IOMMU
    domain allocation") changes dma buffer allocation to use the actual
    underlying device, but forgets to change the deallocation path, which leads
    to (if you've got CAP_SYS_RAWIO):
    
    > # echo 0,0 > /sys/bus/intel_th/devices/0-msc0/nr_pages
    > ------------[ cut here ]------------
    > kernel BUG at ../linux/drivers/iommu/intel-iommu.c:3670!
    > CPU: 3 PID: 231 Comm: sh Not tainted 4.17.0-rc1+ #2729
    > RIP: 0010:intel_unmap+0x11e/0x130
    ...
    > Call Trace:
    >  intel_free_coherent+0x3e/0x60
    >  msc_buffer_win_free+0x100/0x160 [intel_th_msu]
    
    This patch fixes the buffer deallocation code to use the correct device.
    
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Fixes: d5c435df4a890 ("intel_th: msu: Use the real device in case of IOMMU domain allocation")
    Reported-by: Baofeng Tian <baofeng.tian@intel.com>
    CC: stable@vger.kernel.org # v4.14+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05df3fb0a1a5c36675b42d2967b72b56fec05099
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Mon May 28 13:25:06 2018 +0200

    Revert "rt2800: use TXOP_BACKOFF for probe frames"
    
    commit 52a192362932f333a7ebafd581c4d9b81da2fec8 upstream.
    
    This reverts commit fb47ada8dc3c30c8e7b415da155742b49536c61e.
    
    In some situations when we set TXOP_BACKOFF, the probe frame is
    not sent at all. What it worse then sending probe frame as part
    of AMPDU and can degrade 11n performance to 11g rates.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55bd489be332d18da502b84d7845931851533e8d
Author: Hugh Dickins <hughd@google.com>
Date:   Fri Jun 1 16:50:45 2018 -0700

    mm/huge_memory.c: __split_huge_page() use atomic ClearPageDirty()
    
    commit 2d077d4b59924acd1f5180c6fb73b57f4771fde6 upstream.
    
    Swapping load on huge=always tmpfs (with khugepaged tuned up to be very
    eager, but I'm not sure that is relevant) soon hung uninterruptibly,
    waiting for page lock in shmem_getpage_gfp()'s find_lock_entry(), most
    often when "cp -a" was trying to write to a smallish file.  Debug showed
    that the page in question was not locked, and page->mapping NULL by now,
    but page->index consistent with having been in a huge page before.
    
    Reproduced in minutes on a 4.15 kernel, even with 4.17's 605ca5ede764
    ("mm/huge_memory.c: reorder operations in __split_huge_page_tail()") added
    in; but took hours to reproduce on a 4.17 kernel (no idea why).
    
    The culprit proved to be the __ClearPageDirty() on tails beyond i_size in
    __split_huge_page(): the non-atomic __bitoperation may have been safe when
    4.8's baa355fd3314 ("thp: file pages support for split_huge_page()")
    introduced it, but liable to erase PageWaiters after 4.10's 62906027091f
    ("mm: add PageWaiters indicating tasks are waiting for a page bit").
    
    Link: http://lkml.kernel.org/r/alpine.LSU.2.11.1805291841070.3197@eggly.anvils
    Fixes: 62906027091f ("mm: add PageWaiters indicating tasks are waiting for a page bit")
    Signed-off-by: Hugh Dickins <hughd@google.com>
    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Cc: Nicholas Piggin <npiggin@gmail.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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e17236d4a26d553cc59eefcf31acc22650164599
Author: Parav Pandit <parav@mellanox.com>
Date:   Sun May 27 14:49:16 2018 +0300

    IB/core: Fix error code for invalid GID entry
    
    commit a840c93ca7582bb6c88df2345a33f979b7a67874 upstream.
    
    When a GID entry is invalid EAGAIN is returned. This is an incorrect error
    code, there is nothing that will make this GID entry valid again in
    bounded time.
    
    Some user space tools fail incorrectly if EAGAIN is returned here, and
    this represents a small ABI change from earlier kernels.
    
    The first patch in the Fixes list makes entries that were valid before
    to become invalid, allowing this code to trigger, while the second patch
    in the Fixes list introduced the wrong EAGAIN.
    
    Therefore revert the return result to EINVAL which matches the historical
    expectations of the ibv_query_gid_type() API of the libibverbs user space
    library.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 598ff6bae689 ("IB/core: Refactor GID modify code for RoCE")
    Fixes: 03db3a2d81e6 ("IB/core: Add RoCE GID table management")
    Reviewed-by: Daniel Jurgens <danielj@mellanox.com>
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7051e084f49c0a57708dd80479f2c85875a34f8
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat May 26 08:49:24 2018 +0200

    hwtracing: stm: fix build error on some arches
    
    commit 806e30873f0e74d9d41b0ef761bd4d3e55c7d510 upstream.
    
    Commit b5e2ced9bf81 ("stm class: Use vmalloc for the master map") caused
    a build error on some arches as vmalloc.h was not explicitly included.
    
    Fix that by adding it to the list of includes.
    
    Fixes: b5e2ced9bf81 ("stm class: Use vmalloc for the master map")
    Reported-by: kbuild test robot <lkp@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d45c6efa5045bec9b37c9aae1658677d1e6a6d12
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Thu May 24 11:27:26 2018 +0300

    stm class: Use vmalloc for the master map
    
    commit b5e2ced9bf81393034072dd4d372f6b430bc1f0a upstream.
    
    Fengguang is running into a warning from the buddy allocator:
    
    > swapper/0: page allocation failure: order:9, mode:0x14040c0(GFP_KERNEL|__GFP_COMP), nodemask=(null)
    > CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.17.0-rc1 #262
    > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
    > Call Trace:
    ...
    >  __kmalloc+0x14b/0x180: ____cache_alloc at mm/slab.c:3127
    >  stm_register_device+0xf3/0x5c0: stm_register_device at drivers/hwtracing/stm/core.c:695
    ...
    
    Which is basically a result of the stm class trying to allocate ~512kB
    for the dummy_stm with its default parameters. There's no reason, however,
    for it not to be vmalloc()ed instead, which is what this patch does.
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    CC: stable@vger.kernel.org # v4.4+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e73b547318917220b474d74b9b396e9eb8aac9c7
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Mon May 21 11:17:29 2018 -0700

    scsi: scsi_transport_srp: Fix shost to rport translation
    
    commit c9ddf73476ff4fffb7a87bd5107a0705bf2cf64b upstream.
    
    Since an SRP remote port is attached as a child to shost->shost_gendev
    and as the only child, the translation from the shost pointer into an
    rport pointer must happen by looking up the shost child that is an
    rport. This patch fixes the following KASAN complaint:
    
    BUG: KASAN: slab-out-of-bounds in srp_timed_out+0x57/0x110 [scsi_transport_srp]
    Read of size 4 at addr ffff880035d3fcc0 by task kworker/1:0H/19
    
    CPU: 1 PID: 19 Comm: kworker/1:0H Not tainted 4.16.0-rc3-dbg+ #1
    Workqueue: kblockd blk_mq_timeout_work
    Call Trace:
    dump_stack+0x85/0xc7
    print_address_description+0x65/0x270
    kasan_report+0x231/0x350
    srp_timed_out+0x57/0x110 [scsi_transport_srp]
    scsi_times_out+0xc7/0x3f0 [scsi_mod]
    blk_mq_terminate_expired+0xc2/0x140
    bt_iter+0xbc/0xd0
    blk_mq_queue_tag_busy_iter+0x1c7/0x350
    blk_mq_timeout_work+0x325/0x3f0
    process_one_work+0x441/0xa50
    worker_thread+0x76/0x6c0
    kthread+0x1b2/0x1d0
    ret_from_fork+0x24/0x30
    
    Fixes: e68ca75200fe ("scsi_transport_srp: Reduce failover time")
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Cc: Jason Gunthorpe <jgg@mellanox.com>
    Cc: Doug Ledford <dledford@redhat.com>
    Cc: Laurence Oberman <loberman@redhat.com>
    Cc: stable@vger.kernel.org
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba606f5bdc8089efd72cd6a58998b21e5e95c9f1
Author: Maciej W. Rozycki <macro@mips.com>
Date:   Tue May 15 23:04:44 2018 +0100

    MIPS: prctl: Disallow FRE without FR with PR_SET_FP_MODE requests
    
    commit 28e4213dd331e944e7fca1954a946829162ed9d4 upstream.
    
    Having PR_FP_MODE_FRE (i.e. Config5.FRE) set without PR_FP_MODE_FR (i.e.
    Status.FR) is not supported as the lone purpose of Config5.FRE is to
    emulate Status.FR=0 handling on FPU hardware that has Status.FR=1
    hardwired[1][2].  Also we do not handle this case elsewhere, and assume
    throughout our code that TIF_HYBRID_FPREGS and TIF_32BIT_FPREGS cannot
    be set both at once for a task, leading to inconsistent behaviour if
    this does happen.
    
    Return unsuccessfully then from prctl(2) PR_SET_FP_MODE calls requesting
    PR_FP_MODE_FRE to be set with PR_FP_MODE_FR clear.  This corresponds to
    modes allowed by `mips_set_personality_fp'.
    
    References:
    
    [1] "MIPS Architecture For Programmers, Vol. III: MIPS32 / microMIPS32
        Privileged Resource Architecture", Imagination Technologies,
        Document Number: MD00090, Revision 6.02, July 10, 2015, Table 9.69
        "Config5 Register Field Descriptions", p. 262
    
    [2] "MIPS Architecture For Programmers, Volume III: MIPS64 / microMIPS64
        Privileged Resource Architecture", Imagination Technologies,
        Document Number: MD00091, Revision 6.03, December 22, 2015, Table
        9.72 "Config5 Register Field Descriptions", p. 288
    
    Fixes: 9791554b45a2 ("MIPS,prctl: add PR_[GS]ET_FP_MODE prctl options for MIPS")
    Signed-off-by: Maciej W. Rozycki <macro@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: <stable@vger.kernel.org> # 4.0+
    Patchwork: https://patchwork.linux-mips.org/patch/19327/
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7a10aff8a5ff6fb4c76cab031aebd7dc6a2cc7f8
Author: Maciej W. Rozycki <macro@mips.com>
Date:   Wed May 16 16:39:58 2018 +0100

    MIPS: ptrace: Fix PTRACE_PEEKUSR requests for 64-bit FGRs
    
    commit c7e814628df65f424fe197dde73bfc67e4a244d7 upstream.
    
    Use 64-bit accesses for 64-bit floating-point general registers with
    PTRACE_PEEKUSR, removing the truncation of their upper halves in the
    FR=1 mode, caused by commit bbd426f542cb ("MIPS: Simplify FP context
    access"), which inadvertently switched them to using 32-bit accesses.
    
    The PTRACE_POKEUSR side is fine as it's never been broken and continues
    using 64-bit accesses.
    
    Fixes: bbd426f542cb ("MIPS: Simplify FP context access")
    Signed-off-by: Maciej W. Rozycki <macro@mips.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: <stable@vger.kernel.org> # 3.15+
    Patchwork: https://patchwork.linux-mips.org/patch/19334/
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e21ab6379440b008d1ce8445fcd9a57b9ee2ddb
Author: Mathias Kresin <dev@kresin.me>
Date:   Sun Apr 8 10:30:03 2018 +0200

    MIPS: lantiq: gphy: Drop reboot/remove reset asserts
    
    commit 32795631e67e16141aa5e065c28ba03bf17abb90 upstream.
    
    While doing a global software reset, these bits are not cleared and let
    some bootloader fail to initialise the GPHYs. The bootloader don't
    expect the GPHYs in reset, as they aren't during power on.
    
    The asserts were a workaround for a wrong syscon-reboot mask. With a
    mask set which includes the GPHY resets, these resets aren't required
    any more.
    
    Fixes: 126534141b45 ("MIPS: lantiq: Add a GPHY driver which uses the RCU syscon-mfd")
    Signed-off-by: Mathias Kresin <dev@kresin.me>
    Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Acked-by: Hauke Mehrtens <hauke@hauke-m.de>
    Cc: John Crispin <john@phrozen.org>
    Cc: linux-mips@linux-mips.org
    Cc: <stable@vger.kernel.org> # 4.14+
    Patchwork: https://patchwork.linux-mips.org/patch/19003/
    [jhogan@kernel.org: Fix build warnings]
    Signed-off-by: James Hogan <jhogan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c2355f74e4cf6bfd0642fe6265b6f3694a62c1f1
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Mon Apr 16 09:54:03 2018 +0300

    iio: adc: select buffer for at91-sama5d2_adc
    
    commit 76974ef9d1bf397b7bb97892a3b3bc516a1fc2c2 upstream.
    
    We need to select the buffer code, otherwise we get build errors
    with undefined functions on the trigger and buffer,
    if we select just IIO and then AT91_SAMA5D2_ADC from menuconfig
    
    This adds a Kconfig 'select' statement like other ADC
    drivers have it already.
    
    Fixes: 5e1a1da0f8c9 ("iio: adc: at91-sama5d2_adc: add hw trigger and buffer support")
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca327245cbe2e6a090cddcc0309c7f95e84e70a6
Author: Eugen Hristev <eugen.hristev@microchip.com>
Date:   Tue Apr 10 11:57:47 2018 +0300

    iio: adc: at91-sama5d2_adc: fix channel configuration for differential channels
    
    commit f0c8d1f6dc8eac5a1fbf441c8e080721a7b6c0ff upstream.
    
    When iterating through the channels, the index in the array is not the
    scan index. Added an xlate function to translate to the proper index.
    The result of the bug is that the channel array is indexed with a wrong index,
    thus instead of the proper channel, we access invalid memory, which may
    lead to invalid results and/or corruption.
    This will be used also for devicetree channel xlate.
    
    Fixes: 5e1a1da0f ("iio: adc: at91-sama5d2_adc: add hw trigger and buffer support")
    Fixes: 073c66201 ("iio: adc: at91-sama5d2_adc: add support for DMA")
    Signed-off-by: Eugen Hristev <eugen.hristev@microchip.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd4dbf413fd7a22c236ba112c1d3ac99fb04c240
Author: Fabrice Gasnier <fabrice.gasnier@st.com>
Date:   Tue Mar 13 15:23:06 2018 +0100

    iio: adc: stm32-dfsdm: fix sample rate for div2 spi clock
    
    commit d58109dcf37fc9baec354385ec9fdcd8878d174d upstream.
    
    When channel clk source is set to "CLKOUT_F" or "CLKOUT_R" (e.g. div2),
    sample rate is currently set to half the requested value.
    
    Fixes: eca949800d2d ("IIO: ADC: add stm32 DFSDM support for PDM
    microphone")
    
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
    Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06323515621a3d60a8aca44e05d42f123e601126
Author: Fabrice Gasnier <fabrice.gasnier@st.com>
Date:   Tue Mar 13 15:23:05 2018 +0100

    iio: adc: stm32-dfsdm: fix successive oversampling settings
    
    commit 7531cf59bfa082769887ec70c2029838ea139f11 upstream.
    
    When doing successive oversampling settings, it may fail to update filter
    parameters silently:
    - First time oversampling is being set, it will be successful, as fl->res
    is 0 initially.
    - Next attempts with various oversamp value may return 0 (success), but
    keep previous filter parameters, due to 'res' never reaches above or
    equal current 'fl->res'.
    
    This is particularly true when setting sampling frequency (that relies on
    oversamp). Typical failure without error:
    - run 1st test @16kHz samp freq will succeed
    - run new test @8kHz will succeed as well
    - run new test @16kHz (again): sample rate will remain 8kHz without error
    
    Fixes: e2e6771c6462 ("IIO: ADC: add STM32 DFSDM sigma delta ADC support")
    
    Signed-off-by: Fabrice Gasnier <fabrice.gasnier@st.com>
    Acked-by: Arnaud Pouliquen <arnaud.pouliquen@st.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e813fdab012a48445b1d86e46fff65083d1d8753
Author: Martin Kelly <mkelly@xevo.com>
Date:   Mon Mar 26 14:27:52 2018 -0700

    iio:kfifo_buf: check for uint overflow
    
    commit 3d13de4b027d5f6276c0f9d3a264f518747d83f2 upstream.
    
    Currently, the following causes a kernel OOPS in memcpy:
    
    echo 1073741825 > buffer/length
    echo 1 > buffer/enable
    
    Note that using 1073741824 instead of 1073741825 causes "write error:
    Cannot allocate memory" but no OOPS.
    
    This is because 1073741824 == 2^30 and 1073741825 == 2^30+1. Since kfifo
    rounds up to the nearest power of 2, it will actually call kmalloc with
    roundup_pow_of_two(length) * bytes_per_datum.
    
    Using length == 1073741825 and bytes_per_datum == 2, we get:
    
    kmalloc(roundup_pow_of_two(1073741825) * 2
    or kmalloc(2147483648 * 2)
    or kmalloc(4294967296)
    or kmalloc(UINT_MAX + 1)
    
    so this overflows to 0, causing kmalloc to return ZERO_SIZE_PTR and
    subsequent memcpy to fail once the device is enabled.
    
    Fix this by checking for overflow prior to allocating a kfifo. With this
    check added, the above code returns -EINVAL when enabling the buffer,
    rather than causing an OOPS.
    
    Signed-off-by: Martin Kelly <mkelly@xevo.com>
    cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4574fdeb6c0eaaef30e6b73d31b66f7150333543
Author: Martin Kelly <mkelly@xevo.com>
Date:   Mon Mar 26 14:27:51 2018 -0700

    iio:buffer: make length types match kfifo types
    
    commit c043ec1ca5baae63726aae32abbe003192bc6eec upstream.
    
    Currently, we use int for buffer length and bytes_per_datum. However,
    kfifo uses unsigned int for length and size_t for element size. We need
    to make sure these matches or we will have bugs related to overflow (in
    the range between INT_MAX and UINT_MAX for length, for example).
    
    In addition, set_bytes_per_datum uses size_t while bytes_per_datum is an
    int, which would cause bugs for large values of bytes_per_datum.
    
    Change buffer length to use unsigned int and bytes_per_datum to use
    size_t.
    
    Signed-off-by: Martin Kelly <mkelly@xevo.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 72d4fceef1687640b707b9e5a8b68d35b233bfec
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Sat Apr 14 17:09:09 2018 +0200

    iio: hid-sensor-trigger: Fix sometimes not powering up the sensor after resume
    
    commit 6f92253024d9d947a4f454654840ce479e251376 upstream.
    
    hid_sensor_set_power_work() powers the sensors back up after a resume
    based on the user_requested_state atomic_t.
    
    But hid_sensor_power_state() treats this as a boolean flag, leading to
    the following problematic scenario:
    
    1) Some app starts using the iio-sensor in buffered / triggered mode,
       hid_sensor_data_rdy_trigger_set_state(true) gets called, setting
       user_requested_state to 1.
    2) Something directly accesses a _raw value through sysfs, leading
       to a call to hid_sensor_power_state(true) followed by
       hid_sensor_power_state(false) call, this sets user_requested_state
       to 1 followed by setting it to 0.
    3) Suspend/resume the machine, hid_sensor_set_power_work() now does
       NOT power the sensor back up because user_requested_state (wrongly)
       is 0. Which stops the app using the sensor in buffered mode from
       receiving any new values.
    
    This commit changes user_requested_state to a counter tracking how many
    times hid_sensor_power_state(true) was called instead, fixing this.
    
    Cc: Bastien Nocera <hadess@hadess.net>
    Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 986de227c1a1c8580629148080c51cf81dab9b9e
Author: Michael Nosthoff <committed@heine.so>
Date:   Fri Mar 9 16:13:52 2018 +0100

    iio: ad7793: implement IIO_CHAN_INFO_SAMP_FREQ
    
    commit 490fba90a90eb7b741f57fefd2bcf2c1e11eb471 upstream.
    
    This commit is a follow-up to changes made to ad_sigma_delta.h
    in staging: iio: ad7192: implement IIO_CHAN_INFO_SAMP_FREQ
    which broke ad7793 as it was not altered to match those changes.
    
    This driver predates the availability of IIO_CHAN_INFO_SAMP_FREQ
    attribute wherein usage has some advantages like it can be accessed by
    in-kernel consumers as well as reduces the code size.
    
    Therefore, use IIO_CHAN_INFO_SAMP_FREQ to implement the
    sampling_frequency attribute instead of using IIO_DEV_ATTR_SAMP_FREQ()
    macro.
    
    Move code from the functions associated with IIO_DEV_ATTR_SAMP_FREQ()
    into respective read and write hooks with the mask set to
    IIO_CHAN_INFO_SAMP_FREQ.
    
    Fixes: a13e831fcaa7 ("staging: iio: ad7192: implement IIO_CHAN_INFO_SAMP_FREQ")
    
    Signed-off-by: Michael Nosthoff <committed@heine.so>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8751176f21bcf86d0d61069a7abf14242bd7ddf9
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Thu Feb 8 16:57:12 2018 -0800

    rtlwifi: rtl8192cu: Remove variable self-assignment in rf.c
    
    commit fb239c1209bb0f0b4830cc72507cc2f2d63fadbd upstream.
    
    In _rtl92c_get_txpower_writeval_by_regulatory() the variable writeVal
    is assigned to itself in an if ... else statement, apparently only to
    document that the branch condition is handled and that a previously read
    value should be returned unmodified. The self-assignment causes clang to
    raise the following warning:
    
    drivers/net/wireless/realtek/rtlwifi/rtl8192cu/rf.c:304:13:
      error: explicitly assigning value of variable of type 'u32'
        (aka 'unsigned int') to itself [-Werror,-Wself-assign]
      writeVal = writeVal;
    
    Delete the branch with the self-assignment.
    
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
    Reviewed-by: Guenter Roeck <groeck@chromium.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 374c06ba624b2be4c5aafc578bfd523abddc1634
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Wed Feb 7 10:58:43 2018 -0800

    drm/amd/powerplay: Fix enum mismatch
    
    commit 42b5122e828a6ccd9952ad3116343dc032d33efe upstream.
    
    In several locations the driver uses AMD_CG_STATE_UNGATE (type enum
    amd_clockgating_state) instead of AMD_PG_STATE_UNGATE (type enum
    amd_powergating_stat) and vice versa. Both constants have the same
    value, so this doesn't cause any problems, but we still want to pass
    the correct type.
    
    Fixing the mismatch resolves multiple warnings like this when building
    with clang:
    
    drivers/gpu/drm/amd/amdgpu/../powerplay/hwmgr/cz_clockpowergating.c:169:7:
      error: implicit conversion from enumeration type 'enum
      amd_powergating_state' to different enumeration type 'enum
      amd_clockgating_state' [-Werror,-Wenum-conversion]
        AMD_PG_STATE_UNGATE);
    
    Reviewed-by: Guenter Roeck <groeck@chromium.org>
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e5f46a50b2a89baba1de3a19116d02964644511
Author: Eric Biggers <ebiggers@google.com>
Date:   Mon May 14 20:09:24 2018 -0700

    cfg80211: further limit wiphy names to 64 bytes
    
    commit 814596495dd2b9d4aab92d8f89cf19060d25d2ea upstream.
    
    wiphy names were recently limited to 128 bytes by commit a7cfebcb7594
    ("cfg80211: limit wiphy names to 128 bytes").  As it turns out though,
    this isn't sufficient because dev_vprintk_emit() needs the syslog header
    string "SUBSYSTEM=ieee80211\0DEVICE=+ieee80211:$devname" to fit into 128
    bytes.  This triggered the "device/subsystem name too long" WARN when
    the device name was >= 90 bytes.  As before, this was reproduced by
    syzbot by sending an HWSIM_CMD_NEW_RADIO command to the MAC80211_HWSIM
    generic netlink family.
    
    Fix it by further limiting wiphy names to 64 bytes.
    
    Reported-by: syzbot+e64565577af34b3768dc@syzkaller.appspotmail.com
    Fixes: a7cfebcb7594 ("cfg80211: limit wiphy names to 128 bytes")
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 37ed107ea32bcc4f8cec381c9d3109dffc1b3b91
Author: Sachin Grover <sgrover@codeaurora.org>
Date:   Fri May 25 14:01:39 2018 +0530

    selinux: KASAN: slab-out-of-bounds in xattr_getsecurity
    
    commit efe3de79e0b52ca281ef6691480c8c68c82a4657 upstream.
    
    Call trace:
     [<ffffff9203a8d7a8>] dump_backtrace+0x0/0x428
     [<ffffff9203a8dbf8>] show_stack+0x28/0x38
     [<ffffff920409bfb8>] dump_stack+0xd4/0x124
     [<ffffff9203d187e8>] print_address_description+0x68/0x258
     [<ffffff9203d18c00>] kasan_report.part.2+0x228/0x2f0
     [<ffffff9203d1927c>] kasan_report+0x5c/0x70
     [<ffffff9203d1776c>] check_memory_region+0x12c/0x1c0
     [<ffffff9203d17cdc>] memcpy+0x34/0x68
     [<ffffff9203d75348>] xattr_getsecurity+0xe0/0x160
     [<ffffff9203d75490>] vfs_getxattr+0xc8/0x120
     [<ffffff9203d75d68>] getxattr+0x100/0x2c8
     [<ffffff9203d76fb4>] SyS_fgetxattr+0x64/0xa0
     [<ffffff9203a83f70>] el0_svc_naked+0x24/0x28
    
    If user get root access and calls security.selinux setxattr() with an
    embedded NUL on a file and then if some process performs a getxattr()
    on that file with a length greater than the actual length of the string,
    it would result in a panic.
    
    To fix this, add the actual length of the string to the security context
    instead of the length passed by the userspace process.
    
    Signed-off-by: Sachin Grover <sgrover@codeaurora.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f230f951e0e7b602a793f31ae37bc6930b87472f
Author: Max Gurtovoy <maxg@mellanox.com>
Date:   Sun May 27 18:50:10 2018 +0300

    nvme: fix extended data LBA supported setting
    
    commit c97f414c54a255f4f05a50a2625efaeee406e134 upstream.
    
    This value depands on the metadata support value, so reorder the
    initialization to fit.
    
    Fixes: b5be3b392 ("nvme: always unregister the integrity profile in __nvme_revalidate_disk")
    Signed-off-by: Max Gurtovoy <maxg@mellanox.com>
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cb43adab6f4c66bd01f503d6cbbddabfc8d3daa8
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Mon May 28 10:56:36 2018 -0400

    tracing: Make the snapshot trigger work with instances
    
    commit 2824f5033248600673e3e126a4d135363cbfd9ac upstream.
    
    The snapshot trigger currently only affects the main ring buffer, even when
    it is used by the instances. This can be confusing as the snapshot trigger
    is listed in the instance.
    
     > # cd /sys/kernel/tracing
     > # mkdir instances/foo
     > # echo snapshot > instances/foo/events/syscalls/sys_enter_fchownat/trigger
     > # echo top buffer > trace_marker
     > # echo foo buffer > instances/foo/trace_marker
     > # touch /tmp/bar
     > # chown rostedt /tmp/bar
     > # cat instances/foo/snapshot
     # tracer: nop
     #
     #
     # * Snapshot is freed *
     #
     # Snapshot commands:
     # echo 0 > snapshot : Clears and frees snapshot buffer
     # echo 1 > snapshot : Allocates snapshot buffer, if not already allocated.
     #                      Takes a snapshot of the main buffer.
     # echo 2 > snapshot : Clears snapshot buffer (but does not allocate or free)
     #                      (Doesn't have to be '2' works with any number that
     #                       is not a '0' or '1')
    
     > # cat snapshot
     # tracer: nop
     #
     #                              _-----=> irqs-off
     #                             / _----=> need-resched
     #                            | / _---=> hardirq/softirq
     #                            || / _--=> preempt-depth
     #                            ||| /     delay
     #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
     #              | |       |   ||||       |         |
                 bash-1189  [000] ....   111.488323: tracing_mark_write: top buffer
    
    Not only did the snapshot occur in the top level buffer, but the instance
    snapshot buffer should have been allocated, and it is still free.
    
    Cc: stable@vger.kernel.org
    Fixes: 85f2b08268c01 ("tracing: Add basic event trigger framework")
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ea40e76fb392a6926089ddfbbcba3c3a33de924
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Sun May 27 20:54:44 2018 -0400

    tracing: Fix crash when freeing instances with event triggers
    
    commit 86b389ff22bd6ad8fd3cb98e41cd271886c6d023 upstream.
    
    If a instance has an event trigger enabled when it is freed, it could cause
    an access of free memory. Here's the case that crashes:
    
     # cd /sys/kernel/tracing
     # mkdir instances/foo
     # echo snapshot > instances/foo/events/initcall/initcall_start/trigger
     # rmdir instances/foo
    
    Would produce:
    
     general protection fault: 0000 [#1] PREEMPT SMP PTI
     Modules linked in: tun bridge ...
     CPU: 5 PID: 6203 Comm: rmdir Tainted: G        W         4.17.0-rc4-test+ #933
     Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016
     RIP: 0010:clear_event_triggers+0x3b/0x70
     RSP: 0018:ffffc90003783de0 EFLAGS: 00010286
     RAX: 0000000000000000 RBX: 6b6b6b6b6b6b6b2b RCX: 0000000000000000
     RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff8800c7130ba0
     RBP: ffffc90003783e00 R08: ffff8801131993f8 R09: 0000000100230016
     R10: ffffc90003783d80 R11: 0000000000000000 R12: ffff8800c7130ba0
     R13: ffff8800c7130bd8 R14: ffff8800cc093768 R15: 00000000ffffff9c
     FS:  00007f6f4aa86700(0000) GS:ffff88011eb40000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 00007f6f4a5aed60 CR3: 00000000cd552001 CR4: 00000000001606e0
     Call Trace:
      event_trace_del_tracer+0x2a/0xc5
      instance_rmdir+0x15c/0x200
      tracefs_syscall_rmdir+0x52/0x90
      vfs_rmdir+0xdb/0x160
      do_rmdir+0x16d/0x1c0
      __x64_sys_rmdir+0x17/0x20
      do_syscall_64+0x55/0x1a0
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    This was due to the call the clears out the triggers when an instance is
    being deleted not removing the trigger from the link list.
    
    Cc: stable@vger.kernel.org
    Fixes: 85f2b08268c01 ("tracing: Add basic event trigger framework")
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a81ce0bfa189d1de3d5f239d855b0528d99f78b3
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Tue May 22 17:19:57 2018 -0700

    Input: elan_i2c_smbus - fix corrupted stack
    
    commit 40f7090bb1b4ec327ea1e1402ff5783af5b35195 upstream.
    
    New ICs (like the one on the Lenovo T480s) answer to
    ETP_SMBUS_IAP_VERSION_CMD 4 bytes instead of 3. This corrupts the stack
    as i2c_smbus_read_block_data() uses the values returned by the i2c
    device to know how many data it need to return.
    
    i2c_smbus_read_block_data() can read up to 32 bytes (I2C_SMBUS_BLOCK_MAX)
    and there is no safeguard on how many bytes are provided in the return
    value. Ensure we always have enough space for any future firmware.
    Also 0-initialize the values to prevent any access to uninitialized memory.
    
    Cc: <stable@vger.kernel.org> # v4.4.x, v4.9.x, v4.14.x, v4.15.x, v4.16.x
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: KT Liao <kt.liao@emc.com.tw>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dfc8e3e2dc7118184169efb6fabf934cf6a0d168
Author: Benjamin Tissoires <benjamin.tissoires@redhat.com>
Date:   Tue May 22 17:16:08 2018 -0700

    Input: synaptics - add Lenovo 80 series ids to SMBus
    
    commit ad8fb554f04e38f155c9bc34bbf521fc592ceee7 upstream.
    
    This time, Lenovo decided to go with different pieces in its latest
    series of Thinkpads.
    
    For those we have been able to test:
    - the T480 is using Synaptics with an IBM trackpoint
       -> it behaves properly with or without intertouch, there is no point
          not using RMI4
    - the X1 Carbon 6th gen is using Synaptics with an IBM trackpoint
       -> the touchpad doesn't behave properly under PS/2 so we have to
          switch it to RMI4 if we do not want to have disappointed users
    - the X280 is using Synaptics with an ALPS trackpoint
       -> the recent fixes in the trackpoint handling fixed it so upstream
          now works fine with or without RMI4, and there is no point not
          using RMI4
    - the T480s is using an Elan touchpad, so that's a different story
    
    Cc: <stable@vger.kernel.org> # v4.14.x, v4.15.x, v4.16.x
    Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Acked-by: KT Liao <kt.liao@emc.com.tw>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93b9899aabfb1c61e7926186bf5a988c1368c8c6
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Sat Feb 3 11:49:22 2018 -0800

    Input: synaptics - add Intertouch support on X1 Carbon 6th and X280
    
    commit 5717a09aeaf62d197deba1fc7ccd6bc45f3a9dcc upstream.
    
    Synaptics devices reported it has Intertouch support,
    and it fails via PS/2 as following logs:
    
    psmouse serio2: Failed to reset mouse on synaptics-pt/serio0
    psmouse serio2: Failed to enable mouse on synaptics-pt/serio0
    
    Set these new devices to use SMBus to fix this issue, then they report
    SMBus version 3 is using, patch:
    https://patchwork.kernel.org/patch/9989547/ enabled SMBus ver 3 and
    makes synaptics devices work fine on SMBus mode.
    
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59d895f17023e75dcb302934b4ecc5b4686ba080
Author: Edvard Holst <edvard.holst@gmail.com>
Date:   Sat Feb 3 11:46:15 2018 -0800

    Input: synaptics - Lenovo Thinkpad X1 Carbon G5 (2017) with Elantech trackpoints should use RMI
    
    commit 15e2cffec3aa0d47a8d75ae80e1b136bfb5dff30 upstream.
    
    Lenovo use two different trackpoints in the fifth generation Thinkpad X1
    Carbon. Both are accessible over SMBUS/RMI but the pnpIDs are missing.
    This patch is for the Elantech trackpoint specifically which also
    reports SMB version 3 so rmi_smbus needs to be updated in order to
    handle it.
    
    For the record, I was not the first one to come up with this patch as it
    has been floating around the internet for a while now. However, I have
    spent significant time with testing and my efforts to find the original
    author of the patch have been unsuccessful.
    
    Signed-off-by: Edvard Holst <edvard.holst@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e138ac87d71e31c681d8dbe77a35fd94e41aacb
Author: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date:   Fri Aug 18 12:08:13 2017 -0700

    Input: synaptics - Lenovo Carbon X1 Gen5 (2017) devices should use RMI
    
    commit 9b2071028f8def49971a3b213ab6efd02a7e56e8 upstream.
    
    The touchpad on Lenovo Carbon X1 Gen 5 (2017 - Kabylake) is accessible over
    SMBUS/RMI, so let's activate it by default.
    
    Cc: stable@vger.kernel.org
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60fdebd2f3cefd816bf8a0e58385a134ba8dfaa8
Author: Brian Foster <bfoster@redhat.com>
Date:   Thu Mar 15 10:51:58 2018 -0700

    xfs: detect agfl count corruption and reset agfl
    
    commit a27ba2607e60312554cbcd43fc660b2c7f29dc9c upstream.
    
    The struct xfs_agfl v5 header was originally introduced with
    unexpected padding that caused the AGFL to operate with one less
    slot than intended. The header has since been packed, but the fix
    left an incompatibility for users who upgrade from an old kernel
    with the unpacked header to a newer kernel with the packed header
    while the AGFL happens to wrap around the end. The newer kernel
    recognizes one extra slot at the physical end of the AGFL that the
    previous kernel did not. The new kernel will eventually attempt to
    allocate a block from that slot, which contains invalid data, and
    cause a crash.
    
    This condition can be detected by comparing the active range of the
    AGFL to the count. While this detects a padding mismatch, it can
    also trigger false positives for unrelated flcount corruption. Since
    we cannot distinguish a size mismatch due to padding from unrelated
    corruption, we can't trust the AGFL enough to simply repopulate the
    empty slot.
    
    Instead, avoid unnecessarily complex detection logic and and use a
    solution that can handle any form of flcount corruption that slips
    through read verifiers: distrust the entire AGFL and reset it to an
    empty state. Any valid blocks within the AGFL are intentionally
    leaked. This requires xfs_repair to rectify (which was already
    necessary based on the state the AGFL was found in). The reset
    mitigates the side effect of the padding mismatch problem from a
    filesystem crash to a free space accounting inconsistency. The
    generic approach also means that this patch can be safely backported
    to kernels with or without a packed struct xfs_agfl.
    
    Check the AGF for an invalid freelist count on initial read from
    disk. If detected, set a flag on the xfs_perag to indicate that a
    reset is required before the AGFL can be used. In the first
    transaction that attempts to use a flagged AGFL, reset it to empty,
    warn the user about the inconsistency and allow the freelist fixup
    code to repopulate the AGFL with new blocks. The xfs_perag flag is
    cleared to eliminate the need for repeated checks on each block
    allocation operation.
    
    This allows kernels that include the packing fix commit 96f859d52bcb
    ("libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct")
    to handle older unpacked AGFL formats without a filesystem crash.
    
    Suggested-by: Dave Chinner <david@fromorbit.com>
    Signed-off-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by Dave Chiluk <chiluk+linuxxfs@indeed.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fb9ed2ecab4f239883176ef95a6a9978f59a4b9
Author: Dave Chinner <dchinner@redhat.com>
Date:   Tue Mar 6 17:08:32 2018 -0800

    xfs: convert XFS_AGFL_SIZE to a helper function
    
    commit a78ee256c325ecfaec13cafc41b315bd4e1dd518 upstream.
    
    The AGFL size calculation is about to get more complex, so lets turn
    the macro into a function first and remove the macro.
    
    Signed-off-by: Dave Chinner <dchinner@redhat.com>
    [darrick: forward port to newer kernel, simplify the helper]
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Reviewed-by: Brian Foster <bfoster@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03a4e4ecdfdd95ce1ceb759bffa2681d210d9a8e
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu May 31 17:58:13 2018 +0200

    Revert "pinctrl: msm: Use dynamic GPIO numbering"
    
    This reverts commit 7d8e0341b2b93fb505cd75e8e0d4f1911d0fa0fe which is
    commit a7aa75a2a7dba32594291a71c3704000a2fd7089 upstream.
    
    There's been too many complaints about this.  Personally I think it's
    going to blow up when people hit this in mainline, but hey, it's not my
    systems.  At least we don't have to backport the mess to the stable
    kernels to give them some more life to live unscathed :)
    
    Reported-by: Timur Tabi <timur@codeaurora.org>
    Reported-by: Sebastian Gottschall <s.gottschall@dd-wrt.com>
    Cc: Bjorn Andersson <bjorn.andersson@linaro.org>
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Cc: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a3dd123a9fc4ae1161c61bf5208be519d0a332bd
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date:   Wed May 23 16:13:20 2018 +0200

    drm/vmwgfx: Fix host logging / guestinfo reading error paths
    
    commit f37230c0ad481091bc136788ff8b37dc86300c6d upstream.
    
    The error paths were leaking opened channels.
    Fix by using dedicated error paths.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Reviewed-by: Brian Paul <brianp@vmware.com>
    Reviewed-by: Sinclair Yeh <syeh@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 01770968181c3c43ce039d1674038cb476729e50
Author: Himanshu Jha <himanshujha199640@gmail.com>
Date:   Thu Mar 22 10:33:03 2018 +0100

    drm/vmwgfx: Use kasprintf
    
    commit 6073a09210e06f39adabd682c282b3ee14c3d33d upstream.
    
    Use kasprintf instead of combination of kmalloc and sprintf. Also,
    remove the local variables used for storing the string length as they
    are not required now.
    
    Signed-off-by: Himanshu Jha <himanshujha199640@gmail.com>
    Reviewed-by: Sinclair Yeh <syeh@vmware.com>
    Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1415eea15edcdf86632d762f81511be6df1128f8
Author: Borislav Petkov <bp@suse.de>
Date:   Thu May 17 10:46:26 2018 +0200

    x86/MCE/AMD: Cache SMCA MISC block addresses
    
    commit 78ce241099bb363b19dbd0245442e66c8de8f567 upstream.
    
    ... into a global, two-dimensional array and service subsequent reads from
    that cache to avoid rdmsr_on_cpu() calls during CPU hotplug (IPIs with IRQs
    disabled).
    
    In addition, this fixes a KASAN slab-out-of-bounds read due to wrong usage
    of the bank->blocks pointer.
    
    Fixes: 27bd59502702 ("x86/mce/AMD: Get address from already initialized block")
    Reported-by: Johannes Hirte <johannes.hirte@datenkhaos.de>
    Tested-by: Johannes Hirte <johannes.hirte@datenkhaos.de>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Yazen Ghannam <yazen.ghannam@amd.com>
    Link: http://lkml.kernel.org/r/20180414004230.GA2033@probook
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75b38053ae030775f94b2a55b044c2aa88f4c642
Author: Yazen Ghannam <yazen.ghannam@amd.com>
Date:   Wed Feb 21 11:19:00 2018 +0100

    x86/mce/AMD: Carve out SMCA get_block_address() code
    
    commit 8a331f4a0863bea758561c921b94b4d28f7c4029 upstream.
    
    Carve out the SMCA code in get_block_address() into a separate helper
    function.
    
    No functional change.
    
    Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
    [ Save an indentation level. ]
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Link: http://lkml.kernel.org/r/20180215210943.11530-4-Yazen.Ghannam@amd.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b3ab9104f4b7ac41668602bff01a93c753ac5304
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Wed May 9 22:39:14 2018 -0500

    objtool: Fix "noreturn" detection for recursive sibling calls
    
    commit 0afd0d9e0e7879d666c1df2fa1bea4d8716909fe upstream.
    
    Objtool has some crude logic for detecting static "noreturn" functions
    (aka "dead ends").  This is necessary for being able to correctly follow
    GCC code flow when such functions are called.
    
    It's remotely possible for two functions to call each other via sibling
    calls.  If they don't have RET instructions, objtool's noreturn
    detection logic goes into a recursive loop:
    
      drivers/char/ipmi/ipmi_ssif.o: warning: objtool: return_hosed_msg()+0x0: infinite recursion (objtool bug!)
      drivers/char/ipmi/ipmi_ssif.o: warning: objtool: deliver_recv_msg()+0x0: infinite recursion (objtool bug!)
    
    Instead of reporting an error in this case, consider the functions to be
    non-dead-ends.
    
    Reported-and-tested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: David Laight <David.Laight@ACULAB.COM>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: damian <damian.tometzki@icloud.com>
    Link: http://lkml.kernel.org/r/7cc156408c5781a1f62085d352ced1fe39fe2f91.1525923412.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3752344435b2657aebd54b1eb47612faf473229
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Fri May 18 15:10:34 2018 -0500

    objtool: Detect RIP-relative switch table references, part 2
    
    commit 7dec80ccbe310fb7e225bf21c48c672bb780ce7b upstream.
    
    With the following commit:
    
      fd35c88b7417 ("objtool: Support GCC 8 switch tables")
    
    I added a "can't find switch jump table" warning, to stop covering up
    silent failures if add_switch_table() can't find anything.
    
    That warning found yet another bug in the objtool switch table detection
    logic.  For cases 1 and 2 (as described in the comments of
    find_switch_table()), the find_symbol_containing() check doesn't adjust
    the offset for RIP-relative switch jumps.
    
    Incidentally, this bug was already fixed for case 3 with:
    
      6f5ec2993b1f ("objtool: Detect RIP-relative switch table references")
    
    However, that commit missed the fix for cases 1 and 2.
    
    The different cases are now starting to look more and more alike.  So
    fix the bug by consolidating them into a single case, by checking the
    original dynamic jump instruction in the case 3 loop.
    
    This also simplifies the code and makes it more robust against future
    switch table detection issues -- of which I'm sure there will be many...
    
    Switch table detection has been the most fragile area of objtool, by
    far.  I long for the day when we'll have a GCC plugin for annotating
    switch tables.  Linus asked me to delay such a plugin due to the
    flakiness of the plugin infrastructure in older versions of GCC, so this
    rickety code is what we're stuck with for now.  At least the code is now
    a little simpler than it was.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/f400541613d45689086329432f3095119ffbc328.1526674218.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 954714d8cfcb0a7053c6ef166ac204171fb6f794
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Mon May 14 08:53:24 2018 -0500

    objtool: Detect RIP-relative switch table references
    
    commit 6f5ec2993b1f39aed12fa6fd56e8dc2272ee8a33 upstream.
    
    Typically a switch table can be found by detecting a .rodata access
    followed an indirect jump:
    
        1969:       4a 8b 0c e5 00 00 00    mov    0x0(,%r12,8),%rcx
        1970:       00
                            196d: R_X86_64_32S      .rodata+0x438
        1971:       e9 00 00 00 00          jmpq   1976 <dispc_runtime_suspend+0xb6a>
                            1972: R_X86_64_PC32     __x86_indirect_thunk_rcx-0x4
    
    Randy Dunlap reported a case (seen with GCC 4.8) where the .rodata
    access uses RIP-relative addressing:
    
        19bd:       48 8b 3d 00 00 00 00    mov    0x0(%rip),%rdi        # 19c4 <dispc_runtime_suspend+0xbb8>
                            19c0: R_X86_64_PC32     .rodata+0x45c
        19c4:       e9 00 00 00 00          jmpq   19c9 <dispc_runtime_suspend+0xbbd>
                            19c5: R_X86_64_PC32     __x86_indirect_thunk_rdi-0x4
    
    In this case the relocation addend needs to be adjusted accordingly in
    order to find the location of the switch table.
    
    The fix is for case 3 (as described in the comments), but also make the
    existing case 1 & 2 checks more precise by only adjusting the addend for
    R_X86_64_PC32 relocations.
    
    This fixes the following warnings:
    
      drivers/video/fbdev/omap2/omapfb/dss/dispc.o: warning: objtool: dispc_runtime_suspend()+0xbb8: sibling call from callable instruction with modified stack frame
      drivers/video/fbdev/omap2/omapfb/dss/dispc.o: warning: objtool: dispc_runtime_resume()+0xcc5: sibling call from callable instruction with modified stack frame
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/b6098294fd67afb69af8c47c9883d7a68bf0f8ea.1526305958.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 662b404b5082b34a916f4901028b02749aeaab16
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Thu May 10 17:48:49 2018 -0500

    objtool: Support GCC 8 switch tables
    
    commit fd35c88b74170d9335530d9abf271d5d73eb5401 upstream.
    
    With GCC 8, some issues were found with the objtool switch table
    detection.
    
    1) In the .rodata section, immediately after the switch table, there can
       be another object which contains a pointer to the function which had
       the switch statement.  In this case objtool wrongly considers the
       function pointer to be part of the switch table.  Fix it by:
    
       a) making sure there are no pointers to the beginning of the
          function; and
    
       b) making sure there are no gaps in the switch table.
    
       Only the former was needed, the latter adds additional protection for
       future optimizations.
    
    2) In find_switch_table(), case 1 and case 2 are missing the check to
       ensure that the .rodata switch table data is anonymous, i.e. that it
       isn't already associated with an ELF symbol.  Fix it by adding the
       same find_symbol_containing() check which is used for case 3.
    
    This fixes the following warnings with GCC 8:
    
      drivers/block/virtio_blk.o: warning: objtool: virtio_queue_rq()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+72
      net/ipv6/icmp.o: warning: objtool: icmpv6_rcv()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+64
      drivers/usb/core/quirks.o: warning: objtool: quirks_param_set()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+48
      drivers/mtd/nand/raw/nand_hynix.o: warning: objtool: hynix_nand_decode_id()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+24
      drivers/mtd/nand/raw/nand_samsung.o: warning: objtool: samsung_nand_decode_id()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+32
      drivers/gpu/drm/nouveau/nvkm/subdev/top/gk104.o: warning: objtool: gk104_top_oneinit()+0x0: stack state mismatch: cfa1=7+8 cfa2=7+64
    
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: David Laight <David.Laight@ACULAB.COM>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: damian <damian.tometzki@icloud.com>
    Link: http://lkml.kernel.org/r/20180510224849.xwi34d6tzheb5wgw@treble
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6f589eed3b5a9b73b3be76a719917cc905bab0e
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Wed May 9 22:39:15 2018 -0500

    objtool: Support GCC 8's cold subfunctions
    
    commit 13810435b9a7014fb92eb715f77da488f3b65b99 upstream.
    
    GCC 8 moves a lot of unlikely code out of line to "cold" subfunctions in
    .text.unlikely.  Properly detect the new subfunctions and treat them as
    extensions of the original functions.
    
    This fixes a bunch of warnings like:
    
      kernel/cgroup/cgroup.o: warning: objtool: parse_cgroup_root_flags()+0x33: sibling call from callable instruction with modified stack frame
      kernel/cgroup/cgroup.o: warning: objtool: cgroup_addrm_files()+0x290: sibling call from callable instruction with modified stack frame
      kernel/cgroup/cgroup.o: warning: objtool: cgroup_apply_control_enable()+0x25b: sibling call from callable instruction with modified stack frame
      kernel/cgroup/cgroup.o: warning: objtool: rebind_subsystems()+0x325: sibling call from callable instruction with modified stack frame
    
    Reported-and-tested-by: damian <damian.tometzki@icloud.com>
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: David Laight <David.Laight@ACULAB.COM>
    Cc: Greg KH <gregkh@linuxfoundation.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/0965e7fcfc5f31a276f0c7f298ff770c19b68706.1525923412.git.jpoimboe@redhat.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>