commit a779add58a837fbd5156e0fab0aca5e3b53754ef
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Mar 22 09:18:01 2018 +0100

    Linux 4.9.89

commit 9fad15931cc5bc42a8cd4739d58ebab527ac1d42
Author: Srinath Mannam <srinath.mannam@broadcom.com>
Date:   Thu Jun 15 14:39:22 2017 +0530

    usb: gadget: bdc: 64-bit pointer capability check
    
    commit c8e4e5bdb62a5ac6f860ebcaaf7b467b62f453f1 upstream.
    
    Corrected the register to check the 64-bit pointer
    capability state. 64-bit pointer implementation capability
    was checking in wrong register, which causes the BDC
    enumeration failure in 64-bit memory address.
    
    Fixes: efed421a94e6 ("usb: gadget: Add UDC driver for
    Broadcom USB3.0 device controller IP BDC")
    
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Srinath Mannam <srinath.mannam@broadcom.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecb1886f9b4fea6408f4d9c6defcc7ba3db88c29
Author: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Date:   Fri Feb 2 13:21:35 2018 -0800

    usb: dwc3: Fix GDBGFIFOSPACE_TYPE values
    
    commit b16ea8b9492e99e03b1269fe93ebdbf8e4eabf8a upstream.
    
    The FIFO/Queue type values are incorrect. Correct them according to
    DWC_usb3 programming guide section 1.2.27 (or DWC_usb31 section 1.2.25).
    
    Additionally, this patch includes ProtocolStatusQ and AuxEventQ types.
    
    Fixes: cf6d867d3b57 ("usb: dwc3: core: add fifo space helper")
    Signed-off-by: Thinh Nguyen <thinhn@synopsys.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30fe81cca111c22bc6048ef8998691c8e51b0d7a
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Tue Jan 23 09:35:14 2018 +0000

    USB: gadget: udc: Add missing platform_device_put() on error in bdc_pci_probe()
    
    commit 8874ae5f15f3feef3b4a415b9aed51edcf449aa1 upstream.
    
    Add the missing platform_device_put() before return from bdc_pci_probe()
    in the platform_device_add_resources() error handling case.
    
    Fixes: efed421a94e6 ("usb: gadget: Add UDC driver for Broadcom USB3.0 device controller IP BDC")
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f4a71db144905a41c795e5a67236e36cb20bb16
Author: Bill Kuzeja <William.Kuzeja@stratus.com>
Date:   Thu May 25 15:26:31 2017 -0400

    scsi: qla2xxx: Fix extraneous ref on sp's after adapter break
    
    commit 4cd3b6ebff8510b2139d64024411207090cfe0a9 upstream.
    
    Hung task timeouts can result if a qlogic board breaks unexpectedly
    while running I/O. These tasks become hung because command srb reference
    counts are not going to zero, hence the affected srbs and commands do
    not get freed. This fix accounts for this extra reference in the srbs in
    the case of a board failure.
    
    Fixes: a465537ad1a4 ("qla2xxx: Disable the adapter and skip error recovery in case of register disconnect")
    Signed-off-by: Bill Kuzeja <william.kuzeja@stratus.com>
    Acked-by: Himanshu Madhani <himanshu.madhani@cavium.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8ae7720cf90b952b9dba9b1d31062068d29137ff
Author: Nikolay Borisov <nborisov@suse.com>
Date:   Tue Jan 30 16:07:37 2018 +0200

    btrfs: Fix use-after-free when cleaning up fs_devs with a single stale device
    
    commit fd649f10c3d21ee9d7542c609f29978bdf73ab94 upstream.
    
    Commit 4fde46f0cc71 ("Btrfs: free the stale device") introduced
    btrfs_free_stale_device which iterates the device lists for all
    registered btrfs filesystems and deletes those devices which aren't
    mounted. In a btrfs_devices structure has only 1 device attached to it
    and it is unused then btrfs_free_stale_devices will proceed to also free
    the btrfs_fs_devices struct itself. Currently this leads to a use after
    free since list_for_each_entry will try to perform a check on the
    already freed memory to see if it has to terminate the loop.
    
    The fix is to use 'break' when we know we are freeing the current
    fs_devs.
    
    Fixes: 4fde46f0cc71 ("Btrfs: free the stale device")
    Signed-off-by: Nikolay Borisov <nborisov@suse.com>
    Reviewed-by: Anand Jain <anand.jain@oracle.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8890bae03f4dba1c2292e5445682b556af4e8f1b
Author: Hans van Kranenburg <hans.van.kranenburg@mendix.com>
Date:   Mon Feb 5 17:45:11 2018 +0100

    btrfs: alloc_chunk: fix DUP stripe size handling
    
    commit 92e222df7b8f05c565009c7383321b593eca488b upstream.
    
    In case of using DUP, we search for enough unallocated disk space on a
    device to hold two stripes.
    
    The devices_info[ndevs-1].max_avail that holds the amount of unallocated
    space found is directly assigned to stripe_size, while it's actually
    twice the stripe size.
    
    Later on in the code, an unconditional division of stripe_size by
    dev_stripes corrects the value, but in the meantime there's a check to
    see if the stripe_size does not exceed max_chunk_size. Since during this
    check stripe_size is twice the amount as intended, the check will reduce
    the stripe_size to max_chunk_size if the actual correct to be used
    stripe_size is more than half the amount of max_chunk_size.
    
    The unconditional division later tries to correct stripe_size, but will
    actually make sure we can't allocate more than half the max_chunk_size.
    
    Fix this by moving the division by dev_stripes before the max chunk size
    check, so it always contains the right value, instead of putting a duct
    tape division in further on to get it fixed again.
    
    Since in all other cases than DUP, dev_stripes is 1, this change only
    affects DUP.
    
    Other attempts in the past were made to fix this:
    * 37db63a400 "Btrfs: fix max chunk size check in chunk allocator" tried
    to fix the same problem, but still resulted in part of the code acting
    on a wrongly doubled stripe_size value.
    * 86db25785a "Btrfs: fix max chunk size on raid5/6" unintentionally
    broke this fix again.
    
    The real problem was already introduced with the rest of the code in
    73c5de0051.
    
    The user visible result however will be that the max chunk size for DUP
    will suddenly double, while it's actually acting according to the limits
    in the code again like it was 5 years ago.
    
    Reported-by: Naohiro Aota <naohiro.aota@wdc.com>
    Link: https://www.spinics.net/lists/linux-btrfs/msg69752.html
    Fixes: 73c5de0051 ("btrfs: quasi-round-robin for chunk allocation")
    Fixes: 86db25785a ("Btrfs: fix max chunk size on raid5/6")
    Signed-off-by: Hans van Kranenburg <hans.van.kranenburg@mendix.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    [ update comment ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 887cb857e5122a72caa02a3bea402b1c8bf4056b
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Thu Jul 27 09:11:26 2017 +0200

    scsi: sg: only check for dxfer_len greater than 256M
    
    commit f930c7043663188429cd9b254e9d761edfc101ce upstream.
    
    Don't make any assumptions on the sg_io_hdr_t::dxfer_direction or the
    sg_io_hdr_t::dxferp in order to determine if it is a valid request. The
    only way we can check for bad requests is by checking if the length
    exceeds 256M.
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Fixes: 28676d869bbb (scsi: sg: check for valid direction before starting the request)
    Reported-by: Jason L Tibbitts III <tibbs@math.uh.edu>
    Tested-by: Jason L Tibbitts III <tibbs@math.uh.edu>
    Suggested-by: Doug Gilbert <dgilbert@interlog.com>
    Cc: Doug Gilbert <dgilbert@interlog.com>
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cbdcbd909efe41bbb10b7c15ff1ff15c1b4971a0
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Mon Jul 17 15:11:42 2017 +0200

    scsi: sg: fix static checker warning in sg_is_valid_dxfer
    
    commit 14074aba4bcda3764c9a702b276308b89901d5b6 upstream.
    
    dxfer_len is an unsigned int and we always assign a value > 0 to it, so
    it doesn't make any sense to check if it is < 0. We can't really check
    dxferp as well as we have both NULL and not NULL cases in the possible
    call paths.
    
    So just return true for SG_DXFER_FROM_DEV transfer in
    sg_is_valid_dxfer().
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 691db1857ee784f026e4d2c267229db4885494ad
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Fri Jul 7 10:56:38 2017 +0200

    scsi: sg: fix SG_DXFER_FROM_DEV transfers
    
    commit 68c59fcea1f2c6a54c62aa896cc623c1b5bc9b47 upstream.
    
    SG_DXFER_FROM_DEV transfers do not necessarily have a dxferp as we set
    it to NULL for the old sg_io read/write interface, but must have a
    length bigger than 0. This fixes a regression introduced by commit
    28676d869bbb ("scsi: sg: check for valid direction before starting the
    request")
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Fixes: 28676d869bbb ("scsi: sg: check for valid direction before starting the request")
    Reported-by: Chris Clayton <chris2553@googlemail.com>
    Tested-by: Chris Clayton <chris2553@googlemail.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Tested-by: Chris Clayton <chris2553@googlemail.com>
    Acked-by: Douglas Gilbert <dgilbert@interlog.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: Cristian Crinteanu <crinteanu.cristian@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 43166185da4a7802dd011d629fcdb4e1df0d2bd3
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Tue Mar 6 15:51:32 2018 +0000

    irqchip/gic-v3-its: Ensure nr_ites >= nr_lpis
    
    commit 4f2c7583e33eb08dc09dd2e25574b80175ba7d93 upstream.
    
    When struct its_device instances are created, the nr_ites member
    will be set to a power of 2 that equals or exceeds the requested
    number of MSIs passed to the msi_prepare() callback. At the same
    time, the LPI map is allocated to be some multiple of 32 in size,
    where the allocated size may be less than the requested size
    depending on whether a contiguous range of sufficient size is
    available in the global LPI bitmap.
    
    This may result in the situation where the nr_ites < nr_lpis, and
    since nr_ites is what we program into the hardware when we map the
    device, the additional LPIs will be non-functional.
    
    For bog standard hardware, this does not really matter. However,
    in cases where ITS device IDs are shared between different PCIe
    devices, we may end up allocating these additional LPIs without
    taking into account that they don't actually work.
    
    So let's make nr_ites at least 32. This ensures that all allocated
    LPIs are 'live', and that its_alloc_device_irq() will fail when
    attempts are made to allocate MSIs beyond what was allocated in
    the first place.
    
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    [maz: updated comment]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    [ardb: trivial tweak of unrelated context]
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa14f4bd6c4f32b19cdbfe37d918d1cb3baaf260
Author: Tejun Heo <tj@kernel.org>
Date:   Wed Mar 14 12:10:17 2018 -0700

    fs/aio: Use RCU accessors for kioctx_table->table[]
    
    commit d0264c01e7587001a8c4608a5d1818dba9a4c11a upstream.
    
    While converting ioctx index from a list to a table, db446a08c23d
    ("aio: convert the ioctx list to table lookup v3") missed tagging
    kioctx_table->table[] as an array of RCU pointers and using the
    appropriate RCU accessors.  This introduces a small window in the
    lookup path where init and access may race.
    
    Mark kioctx_table->table[] with __rcu and use the approriate RCU
    accessors when using the field.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Jann Horn <jannh@google.com>
    Fixes: db446a08c23d ("aio: convert the ioctx list to table lookup v3")
    Cc: Benjamin LaHaise <bcrl@kvack.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable@vger.kernel.org # v3.12+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48226104275c0d8ddf307e432de8f6e6c5316bff
Author: Tejun Heo <tj@kernel.org>
Date:   Wed Mar 14 12:10:17 2018 -0700

    fs/aio: Add explicit RCU grace period when freeing kioctx
    
    commit a6d7cff472eea87d96899a20fa718d2bab7109f3 upstream.
    
    While fixing refcounting, e34ecee2ae79 ("aio: Fix a trinity splat")
    incorrectly removed explicit RCU grace period before freeing kioctx.
    The intention seems to be depending on the internal RCU grace periods
    of percpu_ref; however, percpu_ref uses a different flavor of RCU,
    sched-RCU.  This can lead to kioctx being freed while RCU read
    protected dereferences are still in progress.
    
    Fix it by updating free_ioctx() to go through call_rcu() explicitly.
    
    v2: Comment added to explain double bouncing.
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Reported-by: Jann Horn <jannh@google.com>
    Fixes: e34ecee2ae79 ("aio: Fix a trinity splat")
    Cc: Kent Overstreet <kent.overstreet@gmail.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: stable@vger.kernel.org # v3.13+
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05f16fe9ae8c18f461b25fd6f31c77333c739f58
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Feb 23 20:47:17 2018 -0500

    lock_parent() needs to recheck if dentry got __dentry_kill'ed under it
    
    commit 3b821409632ab778d46e807516b457dfa72736ed upstream.
    
    In case when dentry passed to lock_parent() is protected from freeing only
    by the fact that it's on a shrink list and trylock of parent fails, we
    could get hit by __dentry_kill() (and subsequent dentry_kill(parent))
    between unlocking dentry and locking presumed parent.  We need to recheck
    that dentry is alive once we lock both it and parent *and* postpone
    rcu_read_unlock() until after that point.  Otherwise we could return
    a pointer to struct dentry that already is rcu-scheduled for freeing, with
    ->d_lock held on it; caller's subsequent attempt to unlock it can end
    up with memory corruption.
    
    Cc: stable@vger.kernel.org # 3.12+, counting backports
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eaa9592678a9553ba51493bbe0257f51e6638abd
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Wed Mar 14 18:20:29 2018 -0500

    fs: Teach path_connected to handle nfs filesystems with multiple roots.
    
    commit 95dd77580ccd66a0da96e6d4696945b8cea39431 upstream.
    
    On nfsv2 and nfsv3 the nfs server can export subsets of the same
    filesystem and report the same filesystem identifier, so that the nfs
    client can know they are the same filesystem.  The subsets can be from
    disjoint directory trees.  The nfsv2 and nfsv3 filesystems provides no
    way to find the common root of all directory trees exported form the
    server with the same filesystem identifier.
    
    The practical result is that in struct super s_root for nfs s_root is
    not necessarily the root of the filesystem.  The nfs mount code sets
    s_root to the root of the first subset of the nfs filesystem that the
    kernel mounts.
    
    This effects the dcache invalidation code in generic_shutdown_super
    currently called shrunk_dcache_for_umount and that code for years
    has gone through an additional list of dentries that might be dentry
    trees that need to be freed to accomodate nfs.
    
    When I wrote path_connected I did not realize nfs was so special, and
    it's hueristic for avoiding calling is_subdir can fail.
    
    The practical case where this fails is when there is a move of a
    directory from the subtree exposed by one nfs mount to the subtree
    exposed by another nfs mount.  This move can happen either locally or
    remotely.  With the remote case requiring that the move directory be cached
    before the move and that after the move someone walks the path
    to where the move directory now exists and in so doing causes the
    already cached directory to be moved in the dcache through the magic
    of d_splice_alias.
    
    If someone whose working directory is in the move directory or a
    subdirectory and now starts calling .. from the initial mount of nfs
    (where s_root == mnt_root), then path_connected as a heuristic will
    not bother with the is_subdir check.  As s_root really is not the root
    of the nfs filesystem this heuristic is wrong, and the path may
    actually not be connected and path_connected can fail.
    
    The is_subdir function might be cheap enough that we can call it
    unconditionally.  Verifying that will take some benchmarking and
    the result may not be the same on all kernels this fix needs
    to be backported to.  So I am avoiding that for now.
    
    Filesystems with snapshots such as nilfs and btrfs do something
    similar.  But as the directory tree of the snapshots are disjoint
    from one another and from the main directory tree rename won't move
    things between them and this problem will not occur.
    
    Cc: stable@vger.kernel.org
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Fixes: 397d425dc26d ("vfs: Test for and handle paths that are unreachable from their mnt_root")
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16c809b7daebfbd8a547d731df88a35a85c1fd12
Author: Michel Dänzer <michel.daenzer@amd.com>
Date:   Fri Mar 9 18:26:18 2018 +0100

    drm/amdgpu/dce: Don't turn off DP sink when disconnected
    
    commit 7d617264eb22b18d979eac6e85877a141253034e upstream.
    
    Turning off the sink in this case causes various issues, because
    userspace expects it to stay on until it turns it off explicitly.
    
    Instead, turn the sink off and back on when a display is connected
    again. This dance seems necessary for link training to work correctly.
    
    Bugzilla: https://bugs.freedesktop.org/105308
    Cc: stable@vger.kernel.org
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Michel Dänzer <michel.daenzer@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0ca43b0aa033dc7240f8e94d01fa69cb16c89cb8
Author: Christian König <christian.koenig@amd.com>
Date:   Fri Mar 9 14:42:54 2018 +0100

    drm/amdgpu: fix prime teardown order
    
    commit 342038d92403b3efa1138a8599666b9f026279d6 upstream.
    
    We unmapped imported DMA-bufs when the GEM handle was dropped, not when the
    hardware was done with the buffere.
    
    Signed-off-by: Christian König <christian.koenig@amd.com>
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    CC: stable@vger.kernel.org
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c706deff725737d307a3ce149205ee9362d2e0c1
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Mar 9 22:23:31 2018 +0100

    ALSA: seq: Clear client entry before deleting else at closing
    
    commit a2ff19f7b70118ced291a28d5313469914de451b upstream.
    
    When releasing a client, we need to clear the clienttab[] entry at
    first, then call snd_seq_queue_client_leave().  Otherwise, the
    in-flight cell in the queue might be picked up by the timer interrupt
    via snd_seq_check_queue() before calling snd_seq_queue_client_leave(),
    and it's delivered to another queue while the client is clearing
    queues.  This may eventually result in an uncleared cell remaining in
    a queue, and the later snd_seq_pool_delete() may need to wait for a
    long time until the event gets really processed.
    
    By moving the clienttab[] clearance at the beginning of release, any
    event delivery of a cell belonging to this client will fail at a later
    point, since snd_seq_client_ptr() returns NULL.  Thus the cell that
    was picked up by the timer interrupt will be returned immediately
    without further delivery, and the long stall of snd_seq_delete_pool()
    can be avoided, too.
    
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a3e9385ddf2e77d97b8bace4792a4b3a50797fd
Author: Takashi Iwai <tiwai@suse.de>
Date:   Fri Mar 9 21:58:28 2018 +0100

    ALSA: seq: Fix possible UAF in snd_seq_check_queue()
    
    commit d0f833065221cbfcbadf19fd4102bcfa9330006a upstream.
    
    Although we've covered the races between concurrent write() and
    ioctl() in the previous patch series, there is still a possible UAF in
    the following scenario:
    
    A: user client closed           B: timer irq
      -> snd_seq_release()            -> snd_seq_timer_interrupt()
        -> snd_seq_free_client()        -> snd_seq_check_queue()
                                          -> cell = snd_seq_prioq_cell_peek()
          -> snd_seq_prioq_leave()
             .... removing all cells
          -> snd_seq_pool_done()
             .... vfree()
                                          -> snd_seq_compare_tick_time(cell)
                                             ... Oops
    
    So the problem is that a cell is peeked and accessed without any
    protection until it's retrieved from the queue again via
    snd_seq_prioq_cell_out().
    
    This patch tries to address it, also cleans up the code by a slight
    refactoring.  snd_seq_prioq_cell_out() now receives an extra pointer
    argument.  When it's non-NULL, the function checks the event timestamp
    with the given pointer.  The caller needs to pass the right reference
    either to snd_seq_tick or snd_seq_realtime depending on the event
    timestamp type.
    
    A good news is that the above change allows us to remove the
    snd_seq_prioq_cell_peek(), too, thus the patch actually reduces the
    code size.
    
    Reviewed-by: Nicolai Stange <nstange@suse.de>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 20cbd5198e28bf3ddb07f079b2ebe73cb68356bc
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Mar 12 13:55:48 2018 +0100

    ALSA: hda - Revert power_save option default value
    
    commit 40088dc4e1ead7df31728c73f5b51d71da18831d upstream.
    
    With the commit 1ba8f9d30817 ("ALSA: hda: Add a power_save
    blacklist"), we changed the default value of power_save option to -1
    for processing the power-save blacklist.
    Unfortunately, this seems breaking user-space applications that
    actually read the power_save parameter value via sysfs and judge /
    adjust the power-saving status.  They see the value -1 as if the
    power-save is turned off, although the actual value is taken from
    CONFIG_SND_HDA_POWER_SAVE_DEFAULT and it can be a positive.
    
    So, overall, passing -1 there was no good idea.  Let's partially
    revert it -- at least for power_save option default value is restored
    again to CONFIG_SND_HDA_POWER_SAVE_DEFAULT.  Meanwhile, in this patch,
    we keep the blacklist behavior and make is adjustable via the new
    option, pm_blacklist.
    
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=199073
    Fixes: 1ba8f9d30817 ("ALSA: hda: Add a power_save blacklist")
    Acked-by: Hans de Goede <hdegoede@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 238ba452eb4bbd6378f9d4857e0532a806b79013
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sat Mar 10 23:04:23 2018 +0100

    ALSA: pcm: Fix UAF in snd_pcm_oss_get_formats()
    
    commit 01c0b4265cc16bc1f43f475c5944c55c10d5768f upstream.
    
    snd_pcm_oss_get_formats() has an obvious use-after-free around
    snd_mask_test() calls, as spotted by syzbot.  The passed format_mask
    argument is a pointer to the hw_params object that is freed before the
    loop.  What a surprise that it has been present since the original
    code of decades ago...
    
    Reported-by: syzbot+4090700a4f13fccaf648@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f6cfbea4e1621f078a08dfb2b444162ba2f7441
Author: John David Anglin <dave.anglin@bell.net>
Date:   Wed Mar 7 08:18:05 2018 -0500

    parisc: Handle case where flush_cache_range is called with no context
    
    commit 9ef0f88fe5466c2ca1d2975549ba6be502c464c1 upstream.
    
    Just when I had decided that flush_cache_range() was always called with
    a valid context, Helge reported two cases where the
    "BUG_ON(!vma->vm_mm->context);" was hit on the phantom buildd:
    
     kernel BUG at /mnt/sdb6/linux/linux-4.15.4/arch/parisc/kernel/cache.c:587!
     CPU: 1 PID: 3254 Comm: kworker/1:2 Tainted: G D 4.15.0-1-parisc64-smp #1 Debian 4.15.4-1+b1
     Workqueue: events free_ioctx
      IAOQ[0]: flush_cache_range+0x164/0x168
      IAOQ[1]: flush_cache_page+0x0/0x1c8
      RP(r2): unmap_page_range+0xae8/0xb88
     Backtrace:
      [<00000000404a6980>] unmap_page_range+0xae8/0xb88
      [<00000000404a6ae0>] unmap_single_vma+0xc0/0x188
      [<00000000404a6cdc>] zap_page_range_single+0x134/0x1f8
      [<00000000404a702c>] unmap_mapping_range+0x1cc/0x208
      [<0000000040461518>] truncate_pagecache+0x98/0x108
      [<0000000040461624>] truncate_setsize+0x9c/0xb8
      [<00000000405d7f30>] put_aio_ring_file+0x80/0x100
      [<00000000405d803c>] aio_free_ring+0x8c/0x290
      [<00000000405d82c0>] free_ioctx+0x80/0x180
      [<0000000040284e6c>] process_one_work+0x21c/0x668
      [<00000000402854c4>] worker_thread+0x20c/0x778
      [<0000000040291d44>] kthread+0x2d4/0x2e0
      [<0000000040204020>] end_fault_vector+0x20/0xc0
    
    This indicates that we need to handle the no context case in
    flush_cache_range() as we do in flush_cache_mm().
    
    In thinking about this, I realized that we don't need to flush the TLB
    when there is no context.  So, I added context checks to the large flush
    cases in flush_cache_mm() and flush_cache_range().  The large flush case
    occurs frequently in flush_cache_mm() and the change should improve fork
    performance.
    
    The v2 version of this change removes the BUG_ON from flush_cache_page()
    by skipping the TLB flush when there is no context.  I also added code
    to flush the TLB in flush_cache_mm() and flush_cache_range() when we
    have a context that's not current.  Now all three routines handle TLB
    flushes in a similar manner.
    
    Signed-off-by: John David Anglin <dave.anglin@bell.net>
    Cc: stable@vger.kernel.org # 4.9+
    Signed-off-by: Helge Deller <deller@gmx.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d3b0e9891b1f85aa623f8b6f8205015fe394ac3a
Author: Toshi Kani <toshi.kani@hpe.com>
Date:   Tue Mar 13 11:03:46 2018 -0600

    x86/mm: Fix vmalloc_fault to use pXd_large
    
    commit 18a955219bf7d9008ce480d4451b6b8bf4483a22 upstream.
    
    Gratian Crisan reported that vmalloc_fault() crashes when CONFIG_HUGETLBFS
    is not set since the function inadvertently uses pXn_huge(), which always
    return 0 in this case.  ioremap() does not depend on CONFIG_HUGETLBFS.
    
    Fix vmalloc_fault() to call pXd_large() instead.
    
    Fixes: f4eafd8bcd52 ("x86/mm: Fix vmalloc_fault() to handle large pages properly")
    Reported-by: Gratian Crisan <gratian.crisan@ni.com>
    Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Cc: linux-mm@kvack.org
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Andy Lutomirski <luto@kernel.org>
    Link: https://lkml.kernel.org/r/20180313170347.3829-2-toshi.kani@hpe.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed82505913ccd47369fecb8fefb27abd32fb2e50
Author: Alexander Sergeyev <sergeev917@gmail.com>
Date:   Tue Mar 13 22:38:56 2018 +0300

    x86/speculation: Remove Skylake C2 from Speculation Control microcode blacklist
    
    commit e3b3121fa8da94cb20f9e0c64ab7981ae47fd085 upstream.
    
    In accordance with Intel's microcode revision guidance from March 6 MCU
    rev 0xc2 is cleared on both Skylake H/S and Skylake Xeon E3 processors
    that share CPUID 506E3.
    
    Signed-off-by: Alexander Sergeyev <sergeev917@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Jia Zhang <qianyue.zj@alibaba-inc.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Kyle Huey <me@kylehuey.com>
    Cc: David Woodhouse <dwmw@amazon.co.uk>
    Link: https://lkml.kernel.org/r/20180313193856.GA8580@localhost.localdomain
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a999c6095e73377b2b513437707a7a2a53d101ff
Author: Andy Whitcroft <apw@canonical.com>
Date:   Wed Mar 14 11:24:27 2018 +0000

    x86/speculation, objtool: Annotate indirect calls/jumps for objtool on 32-bit kernels
    
    commit a14bff131108faf50cc0cf864589fd71ee216c96 upstream.
    
    In the following commit:
    
      9e0e3c5130e9 ("x86/speculation, objtool: Annotate indirect calls/jumps for objtool")
    
    ... we added annotations for CALL_NOSPEC/JMP_NOSPEC on 64-bit x86 kernels,
    but we did not annotate the 32-bit path.
    
    Annotate it similarly.
    
    Signed-off-by: Andy Whitcroft <apw@canonical.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Arjan van de Ven <arjan@linux.intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: David Woodhouse <dwmw2@infradead.org>
    Cc: David Woodhouse <dwmw@amazon.co.uk>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    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>
    Link: http://lkml.kernel.org/r/20180314112427.22351-1-apw@canonical.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 990a63c518ff4d7b670a3ef276ec4029aabaca19
Author: Andy Lutomirski <luto@kernel.org>
Date:   Tue Mar 13 22:03:12 2018 -0700

    x86/vm86/32: Fix POPF emulation
    
    commit b5069782453459f6ec1fdeb495d9901a4545fcb5 upstream.
    
    POPF would trap if VIP was set regardless of whether IF was set.  Fix it.
    
    Suggested-by: Stas Sergeev <stsp@list.ru>
    Reported-by: Bart Oldeman <bartoldeman@gmail.com>
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    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: stable@vger.kernel.org
    Fixes: 5ed92a8ab71f ("x86/vm86: Use the normal pt_regs area for vm86")
    Link: http://lkml.kernel.org/r/ce95f40556e7b2178b6bc06ee9557827ff94bd28.1521003603.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 403e064ebc48ce3a5fea28ab904d0780a18f168e
Author: Andy Lutomirski <luto@kernel.org>
Date:   Tue Mar 13 22:03:11 2018 -0700

    selftests/x86/entry_from_vm86: Add test cases for POPF
    
    commit 78393fdde2a456cafa414b171c90f26a3df98b20 upstream.
    
    POPF is currently broken -- add tests to catch the error.  This
    results in:
    
       [RUN]        POPF with VIP set and IF clear from vm86 mode
       [INFO]       Exited vm86 mode due to STI
       [FAIL]       Incorrect return reason (started at eip = 0xd, ended at eip = 0xf)
    
    because POPF currently fails to check IF before reporting a pending
    interrupt.
    
    This patch also makes the FAIL message a bit more informative.
    
    Reported-by: Bart Oldeman <bartoldeman@gmail.com>
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    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: Stas Sergeev <stsp@list.ru>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/a16270b5cfe7832d6d00c479d0f871066cbdb52b.1521003603.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 028c1fadf4a98e344d268c0d01a8fbecef4d01f8
Author: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date:   Sun Nov 5 18:27:57 2017 -0800

    selftests/x86: Add tests for the STR and SLDT instructions
    
    commit a9e017d5619eb371460c8e516f4684def62bef3a upstream.
    
    The STR and SLDT instructions are not valid when running on virtual-8086
    mode and generate an invalid operand exception. These two instructions are
    protected by the Intel User-Mode Instruction Prevention (UMIP) security
    feature. In protected mode, if UMIP is enabled, these instructions generate
    a general protection fault if called from CPL > 0. Linux traps the general
    protection fault and emulates the instructions sgdt, sidt and smsw; but not
    str and sldt.
    
    These tests are added to verify that the emulation code does not emulate
    these two instructions but the expected invalid operand exception is
    seen.
    
    Tests fallback to exit with INT3 in case emulation does happen.
    
    Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Chen Yucong <slaoub@gmail.com>
    Cc: Chris Metcalf <cmetcalf@mellanox.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Huang Rui <ray.huang@amd.com>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi V. Shankar <ravi.v.shankar@intel.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: ricardo.neri@intel.com
    Link: http://lkml.kernel.org/r/1509935277-22138-13-git-send-email-ricardo.neri-calderon@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 497f33ae317cc6f77e7cb69670e3ef433cf94bcf
Author: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
Date:   Sun Nov 5 18:27:56 2017 -0800

    selftests/x86: Add tests for User-Mode Instruction Prevention
    
    commit 9390afebe1d3f5a0be18b1afdd0ce09d67cebf9e upstream.
    
    Certain user space programs that run on virtual-8086 mode may utilize
    instructions protected by the User-Mode Instruction Prevention (UMIP)
    security feature present in new Intel processors: SGDT, SIDT and SMSW. In
    such a case, a general protection fault is issued if UMIP is enabled. When
    such a fault happens, the kernel traps it and emulates the results of
    these instructions with dummy values. The purpose of this new
    test is to verify whether the impacted instructions can be executed
    without causing such #GP. If no #GP exceptions occur, we expect to exit
    virtual-8086 mode from INT3.
    
    The instructions protected by UMIP are executed in representative use
    cases:
    
     a) displacement-only memory addressing
     b) register-indirect memory addressing
     c) results stored directly in operands
    
    Unfortunately, it is not possible to check the results against a set of
    expected values because no emulation will occur in systems that do not
    have the UMIP feature. Instead, results are printed for verification. A
    simple verification is done to ensure that results of all tests are
    identical.
    
    Signed-off-by: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Chen Yucong <slaoub@gmail.com>
    Cc: Chris Metcalf <cmetcalf@mellanox.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Huang Rui <ray.huang@amd.com>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: Jonathan Corbet <corbet@lwn.net>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Michael S. Tsirkin <mst@redhat.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ravi V. Shankar <ravi.v.shankar@intel.com>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: ricardo.neri@intel.com
    Link: http://lkml.kernel.org/r/1509935277-22138-12-git-send-email-ricardo.neri-calderon@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 940bdec8b13bf018bd530292cf276c103c568fa7
Author: Andy Lutomirski <luto@kernel.org>
Date:   Tue Mar 13 22:03:10 2018 -0700

    selftests/x86/entry_from_vm86: Exit with 1 if we fail
    
    commit 327d53d005ca47b10eae940616ed11c569f75a9b upstream.
    
    Fix a logic error that caused the test to exit with 0 even if test
    cases failed.
    
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    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: Stas Sergeev <stsp@list.ru>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: bartoldeman@gmail.com
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/r/b1cc37144038958a469c8f70a5f47a6a5638636a.1521003603.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aa9c22f8ea24c509c705ace6ab905d76d866528c
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Mon Mar 5 19:25:51 2018 +0300

    x86/cpufeatures: Add Intel PCONFIG cpufeature
    
    commit 7958b2246fadf54b7ff820a2a5a2c5ca1554716f upstream.
    
    CPUID.0x7.0x0:EDX[18] indicates whether Intel CPU support PCONFIG instruction.
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Dave Hansen <dave.hansen@intel.com>
    Cc: Kai Huang <kai.huang@linux.intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Tom Lendacky <thomas.lendacky@amd.com>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20180305162610.37510-4-kirill.shutemov@linux.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 60845c87579a51a186868c7a42dd390a10840434
Author: Andy Lutomirski <luto@kernel.org>
Date:   Mon May 8 17:09:10 2017 -0700

    x86/boot/32: Fix UP boot on Quark and possibly other platforms
    
    commit d2b6dc61a8dd3c429609b993778cb54e75a5c5f0 upstream.
    
    This partially reverts commit:
    
      23b2a4ddebdd17f ("x86/boot/32: Defer resyncing initial_page_table until per-cpu is set up")
    
    That commit had one definite bug and one potential bug.  The
    definite bug is that setup_per_cpu_areas() uses a differnet generic
    implementation on UP kernels, so initial_page_table never got
    resynced.  This was fine for access to percpu data (it's in the
    identity map on UP), but it breaks other users of
    initial_page_table.  The potential bug is that helpers like
    efi_init() would be called before the tables were synced.
    
    Avoid both problems by just syncing the page tables in setup_arch()
    *and* setup_per_cpu_areas().
    
    Reported-by: Jan Kiszka <jan.kiszka@siemens.com>
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: Denys Vlasenko <dvlasenk@redhat.com>
    Cc: Josh Poimboeuf <jpoimboe@redhat.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Garnier <thgarnie@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 691ac858a381049c3e49d4a84b4d0fa8a1cad201
Author: Salil <salil.mehta@huawei.com>
Date:   Sat Apr 1 12:03:48 2017 +0100

    net: hns: Some checkpatch.pl script & warning fixes
    
    commit b4957ab0826f6f7efdfdc648521e1c4c3fc6ceda upstream.
    
    This patch fixes some checkpatch.pl script caught errors and
    warnings during the compilation time.
    
    [ backported to 4.9.y to fix build warnings caused by the backporting of
      64ec10dc2ab8 ("net: hns: Correct HNS RSS key set function") by Sasha
      - gregkh]
    
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Cc: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27a0856c212bd6a741bf058f3e5aed6964feba87
Author: Mimi Zohar <zohar@linux.vnet.ibm.com>
Date:   Wed Nov 8 07:38:28 2017 -0500

    ima: relax requiring a file signature for new files with zero length
    
    
    [ Upstream commit b7e27bc1d42e8e0cc58b602b529c25cd0071b336 ]
    
    Custom policies can require file signatures based on LSM labels.  These
    files are normally created and only afterwards labeled, requiring them
    to be signed.
    
    Instead of requiring file signatures based on LSM labels, entire
    filesystems could require file signatures.  In this case, we need the
    ability of writing new files without requiring file signatures.
    
    The definition of a "new" file was originally defined as any file with
    a length of zero.  Subsequent patches redefined a "new" file to be based
    on the FILE_CREATE open flag.  By combining the open flag with a file
    size of zero, this patch relaxes the file signature requirement.
    
    Fixes: 1ac202e978e1 ima: accept previously set IMA_NEW_FILE
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad11afd59d4c3308aeb61c7d61caa77875fa9bda
Author: Davidlohr Bueso <dave@stgolabs.net>
Date:   Mon May 15 02:07:23 2017 -0700

    locking/locktorture: Fix num reader/writer corner cases
    
    
    [ Upstream commit 2ce77d16db4240dd2e422fc0a5c26d3e2ec03446 ]
    
    Things can explode for locktorture if the user does combinations
    of nwriters_stress=0 nreaders_stress=0. Fix this by not assuming
    we always want to torture writer threads.
    
    Reported-by: Jeremy Linton <jeremy.linton@arm.com>
    Signed-off-by: Davidlohr Bueso <dbueso@suse.de>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Reviewed-by: Jeremy Linton <jeremy.linton@arm.com>
    Tested-by: Jeremy Linton <jeremy.linton@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 992cfe9506d42ed7deff2bd09fe522c97179240a
Author: SeongJae Park <sj38.park@gmail.com>
Date:   Fri Nov 3 19:17:20 2017 +0900

    rcutorture/configinit: Fix build directory error message
    
    
    [ Upstream commit 2adfa4210f8f35cdfb4e08318cc06b99752964c2 ]
    
    The 'configinit.sh' script checks the format of optional argument for the
    build directory, printing an error message if the format is not valid.
    However, the error message uses the wrong variable, indicating an empty
    string even though the user entered a non-empty (but erroneous) string.
    This commit fixes the script to use the correct variable.
    
    Fixes: c87b9c601ac8 ("rcutorture: Add KVM-based test framework")
    
    Signed-off-by: SeongJae Park <sj38.park@gmail.com>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 283b46fcece41113f4b11cde33d86e336db4bde6
Author: Mahesh Bandewar <maheshb@google.com>
Date:   Thu Dec 7 15:15:43 2017 -0800

    ipvlan: add L2 check for packets arriving via virtual devices
    
    
    [ Upstream commit 92ff42645028fa6f9b8aa767718457b9264316b4 ]
    
    Packets that don't have dest mac as the mac of the master device should
    not be entertained by the IPvlan rx-handler. This is mostly true as the
    packet path mostly takes care of that, except when the master device is
    a virtual device. As demonstrated in the following case -
    
      ip netns add ns1
      ip link add ve1 type veth peer name ve2
      ip link add link ve2 name iv1 type ipvlan mode l2
      ip link set dev iv1 netns ns1
      ip link set ve1 up
      ip link set ve2 up
      ip -n ns1 link set iv1 up
      ip addr add 192.168.10.1/24 dev ve1
      ip -n ns1 addr 192.168.10.2/24 dev iv1
      ping -c2 192.168.10.2
      <Works!>
      ip neigh show dev ve1
      ip neigh show 192.168.10.2 lladdr <random> dev ve1
      ping -c2 192.168.10.2
      <Still works! Wrong!!>
    
    This patch adds that missing check in the IPvlan rx-handler.
    
    Reported-by: Amit Sikka <amit.sikka@ericsson.com>
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67f62d6ea4fc64a8f1460639233d240cedb711ff
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Sat Dec 9 14:52:28 2017 +0300

    ASoC: nuc900: Fix a loop timeout test
    
    
    [ Upstream commit 65a12b3aafed5fc59f4ce41b22b752b1729e6701 ]
    
    We should be finishing the loop with timeout set to zero but because
    this is a post-op we finish with timeout == -1.
    
    Fixes: 1082e2703a2d ("ASoC: NUC900/audio: add nuc900 audio driver support")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1ad3ae74614d08336cb15bce8e16bf0ed9ccc6b
Author: Luca Coelho <luciano.coelho@intel.com>
Date:   Sun Oct 29 11:51:10 2017 +0200

    mac80211: remove BUG() when interface type is invalid
    
    
    [ Upstream commit c7976f5272486e4ff406014c4b43e2fa3b70b052 ]
    
    In the ieee80211_setup_sdata() we check if the interface type is valid
    and, if not, call BUG().  This should never happen, but if there is
    something wrong with the code, it will not be caught until the bug
    happens when an interface is being set up.  Calling BUG() is too
    extreme for this and a WARN_ON() would be better used instead.  Change
    that.
    
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d8f060c2a8c0f81eede6a7775998e3afd91fea6f
Author: Adiel Aloni <adiel.aloni@intel.com>
Date:   Fri Dec 1 13:50:53 2017 +0200

    mac80211_hwsim: enforce PS_MANUAL_POLL to be set after PS_ENABLED
    
    
    [ Upstream commit e16ea4bb516bc21ea2202f2107718b29218bea59 ]
    
    Enforce using PS_MANUAL_POLL in ps hwsim debugfs to trigger a poll,
    only if PS_ENABLED was set before.
    This is required due to commit c9491367b759 ("mac80211: always update the
    PM state of a peer on MGMT / DATA frames") that enforces the ap to
    check only mgmt/data frames ps bit, and then update station's power save
    accordingly.
    When sending only ps-poll (control frame) the ap will not be aware that
    the station entered power save.
    Setting ps enable before triggering ps_poll, will send NDP with PM bit
    enabled first.
    
    Signed-off-by: Adiel Aloni <adiel.aloni@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 678131a9cbeb64c50e347edcc9171b9feedb2c0d
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Fri Dec 8 21:46:16 2017 +0000

    agp/intel: Flush all chipset writes after updating the GGTT
    
    
    [ Upstream commit 8516673a996870ea0ceb337ee4f83c33c5ec3111 ]
    
    Before accessing the GGTT we must flush the PTE writes and make them
    visible to the chipset, or else the indirect access may end up in the
    wrong page. In commit 3497971a71d8 ("agp/intel: Flush chipset writes
    after updating a single PTE"), we noticed corruption of the uploads for
    pwrite and for capturing GPU error states, but it was presumed that the
    explicit calls to intel_gtt_chipset_flush() were sufficient for the
    execbuffer path. However, we have not been flushing the chipset between
    the PTE writes and access via the GTT itself.
    
    For simplicity, do the flush after any PTE update rather than try and
    batch the flushes on a just-in-time basis.
    
    References: 3497971a71d8 ("agp/intel: Flush chipset writes after updating a single PTE")
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
    Cc: Mika Kuoppala <mika.kuoppala@intel.com>
    Cc: drm-intel-fixes@lists.freedesktop.org
    Reviewed-by: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171208214616.30147-1-chris@chris-wilson.co.uk
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6edf95e54cb18ef12e82298e44eebad2fb9aa7d
Author: Josh Poimboeuf <jpoimboe@redhat.com>
Date:   Thu Nov 16 11:45:37 2017 -0600

    powerpc/modules: Don't try to restore r2 after a sibling call
    
    
    [ Upstream commit b9eab08d012fa093947b230f9a87257c27fb829b ]
    
    When attempting to load a livepatch module, I got the following error:
    
      module_64: patch_module: Expect noop after relocate, got 3c820000
    
    The error was triggered by the following code in
    unregister_netdevice_queue():
    
      14c:   00 00 00 48     b       14c <unregister_netdevice_queue+0x14c>
                             14c: R_PPC64_REL24      net_set_todo
      150:   00 00 82 3c     addis   r4,r2,0
    
    GCC didn't insert a nop after the branch to net_set_todo() because it's
    a sibling call, so it never returns.  The nop isn't needed after the
    branch in that case.
    
    Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Acked-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com>
    Reviewed-and-tested-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 049cff8555d41211c3dfbdcfc46cbb818d32eeae
Author: Yong Zhao <yong.zhao@amd.com>
Date:   Fri Dec 8 23:08:48 2017 -0500

    drm/amdkfd: Fix memory leaks in kfd topology
    
    
    [ Upstream commit 5108d768408abc80e4e8d99f5b406a73cb04056b ]
    
    Kobject created using kobject_create_and_add() can be freed using
    kobject_put() when there is no referenece any more. However,
    kobject memory allocated with kzalloc() has to set up a release
    callback in order to free it when the counter decreases to 0.
    Otherwise it causes memory leak.
    
    Signed-off-by: Yong Zhao <yong.zhao@amd.com>
    Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
    Reviewed-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Oded Gabbay <oded.gabbay@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3fd4d3c1966b34bad24ecd6629ebe55b865df10
Author: Stephen Hemminger <stephen@networkplumber.org>
Date:   Thu Dec 7 15:40:20 2017 -0800

    veth: set peer GSO values
    
    
    [ Upstream commit 72d24955b44a4039db54a1c252b5031969eeaac3 ]
    
    When new veth is created, and GSO values have been configured
    on one device, clone those values to the peer.
    
    For example:
       # ip link add dev vm1 gso_max_size 65530 type veth peer name vm2
    
    This should create vm1 <--> vm2 with both having GSO maximum
    size set to 65530.
    
    Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ff54d5e95ad2ba7067ddd4764136bbded8a8129c
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu Nov 9 16:28:14 2017 -0500

    media: cpia2: Fix a couple off by one bugs
    
    
    [ Upstream commit d5ac225c7d64c9c3ef821239edc035634e594ec9 ]
    
    The cam->buffers[] array has cam->num_frames elements so the > needs to
    be changed to >= to avoid going beyond the end of the array.  The
    ->buffers[] array is allocated in cpia2_allocate_buffers() if you want
    to confirm.
    
    Fixes: ab33d5071de7 ("V4L/DVB (3376): Add cpia2 camera support")
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 947e2e9bd754b68bb4379b67ef3cb44879ad2ee9
Author: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Date:   Mon Dec 4 06:01:11 2017 -0500

    media: vsp1: Prevent suspending and resuming DRM pipelines
    
    
    [ Upstream commit a17d2d6cd9985ca09a9e384f1bc71d710f7e5203 ]
    
    When used as part of a display pipeline, the VSP is stopped and
    restarted explicitly by the DU from its suspend and resume handlers.
    There is thus no need to stop or restart pipelines in the VSP suspend
    and resume handlers, and doing so would cause the hardware to be
    left in a misconfigured state.
    
    Ensure that the VSP suspend and resume handlers do not affect DRM-based
    pipelines.
    
    Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1b2981c3cba7fdd0b3f48c7a52fcc69aa11bb5e9
Author: Xose Vazquez Perez <xose.vazquez@gmail.com>
Date:   Fri Nov 17 22:05:13 2017 +0100

    scsi: dh: add new rdac devices
    
    
    [ Upstream commit 4b3aec2bbbce1c35f50e7475a9fd78d24b9ea4ea ]
    
    Add IBM 3542 and 3552, arrays: FAStT200 and FAStT500.
    
    Add full STK OPENstorage family, arrays: 9176, D173, D178, D210, D220,
    D240 and D280.
    
    Add STK BladeCtlr family, arrays: B210, B220, B240 and B280.
    
    These changes were done in multipath-tools time ago.
    
    Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: James E.J. Bottomley <jejb@linux.vnet.ibm.com>
    Cc: SCSI ML <linux-scsi@vger.kernel.org>
    Cc: device-mapper development <dm-devel@redhat.com>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f3e85ab6ac55b37ddce0cbbecb222a12831b1e7
Author: Xose Vazquez Perez <xose.vazquez@gmail.com>
Date:   Fri Nov 17 21:31:36 2017 +0100

    scsi: devinfo: apply to HP XP the same flags as Hitachi VSP
    
    
    [ Upstream commit b369a0471503130cfc74f9f62071db97f48948c3 ]
    
    Commit 56f3d383f37b ("scsi: scsi_devinfo: Add TRY_VPD_PAGES to HITACHI
    OPEN-V blacklist entry") modified some Hitachi entries:
    
        HITACHI is always supporting VPD pages, even though it's claiming to
        support SCSI Revision 3 only.
    
    The same should have been done also for HP-rebranded.
    
    [mkp: checkpatch and tweaked commit message]
    
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: Takahiro Yasui <takahiro.yasui@hds.com>
    Cc: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: James E.J. Bottomley <jejb@linux.vnet.ibm.com>
    Cc: SCSI ML <linux-scsi@vger.kernel.org>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f2e152e2b04717f5d449256317afb9c0670f0fdd
Author: Bart Van Assche <bart.vanassche@wdc.com>
Date:   Mon Dec 4 10:36:31 2017 -0800

    scsi: core: scsi_get_device_flags_keyed(): Always return device flags
    
    
    [ Upstream commit a44c9d36509c83cf64f33b93f6ab2e63822c01eb ]
    
    Since scsi_get_device_flags_keyed() callers do not check whether or not
    the returned value is an error code, change that function such that it
    returns a flags value even if the 'key' argument is invalid.  Note:
    since commit 28a0bc4120d3 ("scsi: sd: Implement blacklist option for
    WRITE SAME w/ UNMAP") bit 31 is a valid device information flag so
    checking whether bit 31 is set in the return value is not sufficient to
    tell the difference between an error code and a flags value.
    
    Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3dec92f3d792d9180d29b29b2da88d8b861b03d
Author: Michael Chan <michael.chan@broadcom.com>
Date:   Wed Dec 6 17:31:22 2017 -0500

    bnxt_en: Don't print "Link speed -1 no longer supported" messages.
    
    
    [ Upstream commit a8168b6cee6e9334dfebb4b9108e8d73794f6088 ]
    
    On some dual port NICs, the 2 ports have to be configured with compatible
    link speeds.  Under some conditions, a port's configured speed may no
    longer be supported.  The firmware will send a message to the driver
    when this happens.
    
    Improve this logic that prints out the warning by only printing it if
    we can determine the link speed that is no longer supported.  If the
    speed is unknown or it is in autoneg mode, skip the warning message.
    
    Reported-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Tested-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26cae37274f3ea5dad4c4b7e8db08caaf502f14f
Author: Tobias Jordan <Tobias.Jordan@elektrobit.com>
Date:   Thu Dec 7 15:04:53 2017 +0100

    spi: sun6i: disable/unprepare clocks on remove
    
    
    [ Upstream commit 2d9bbd02c54094ceffa555143b0d68cd06504d63 ]
    
    sun6i_spi_probe() uses sun6i_spi_runtime_resume() to prepare/enable
    clocks, so sun6i_spi_remove() should use sun6i_spi_runtime_suspend() to
    disable/unprepare them if we're not suspended.
    Replacing pm_runtime_disable() by pm_runtime_force_suspend() will ensure
    that sun6i_spi_runtime_suspend() is called if needed.
    
    Found by Linux Driver Verification project (linuxtesting.org).
    
    Fixes: 3558fe900e8af (spi: sunxi: Add Allwinner A31 SPI controller driver)
    Signed-off-by: Tobias Jordan <Tobias.Jordan@elektrobit.com>
    Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c485b111e69c76a39d5535c0d53050635f0e3314
Author: Julien BOIBESSOT <julien.boibessot@armadeus.com>
Date:   Tue Dec 5 18:48:14 2017 +0100

    tools/usbip: fixes build with musl libc toolchain
    
    
    [ Upstream commit 77be4c878c72e411ad22af96b6f81dd45c26450a ]
    
    Indeed musl doesn't define old SIGCLD signal name but only new one SIGCHLD.
    SIGCHLD is the new POSIX name for that signal so it doesn't change
    anything on other libcs.
    
    This fixes this kind of build error:
    
    usbipd.c: In function ‘set_signal’:
    usbipd.c:459:12: error: 'SIGCLD' undeclared (first use in this function)
      sigaction(SIGCLD, &act, NULL);
                ^~~~~~
    usbipd.c:459:12: note: each undeclared identifier is reported only once
            for each function it appears in
    Makefile:407: recipe for target 'usbipd.o' failed
    make[3]: *** [usbipd.o] Error 1
    
    Signed-off-by: Julien BOIBESSOT <julien.boibessot@armadeus.com>
    Acked-by: Shuah Khan <shuahkh@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7f4d2f7547010aeded32f0269a206f8dac0cf88b
Author: Ben Greear <greearb@candelatech.com>
Date:   Sat Dec 2 16:50:49 2017 +0200

    ath10k: fix invalid STS_CAP_OFFSET_MASK
    
    
    [ Upstream commit 8cec57f5277ef0e354e37a0bf909dc71bc1f865b ]
    
    The 10.4 firmware defines this as a 3-bit field, as does the
    mac80211 stack.  The 4th bit is defined as CONF_IMPLICIT_BF
    at least in the firmware header I have seen.  This patch
    fixes the ath10k wmi header to match the firmware.
    
    Signed-off-by: Ben Greear <greearb@candelatech.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 128e61839d68dee6bfccf9b64e80a041e85789fb
Author: Limin Zhu <liminzhu@marvell.com>
Date:   Thu Nov 30 14:22:34 2017 +0800

    mwifiex: cfg80211: do not change virtual interface during scan processing
    
    
    [ Upstream commit c61cfe49f0f0f0d1f8b56d0b045838d597e8c3a3 ]
    
    (1) Change virtual interface operation in cfg80211 process reset and
    reinitilize private data structure.
    (2) Scan result event processed in main process will dereference private
    data structure concurrently, ocassionly crash the kernel.
    
    The cornel case could be trigger by below steps:
    (1) wpa_cli mlan0 scan
    (2) ./hostapd mlan0.conf
    
    Cfg80211 asynchronous scan procedure is not all the time operated
    under rtnl lock, here we add the protect to serialize the cfg80211
    scan and change_virtual interface operation.
    
    Signed-off-by: Limin Zhu <liminzhu@marvell.com>
    Signed-off-by: Xinming Hu <huxm@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a40eb9e8aaf6799a632de003c7231b6307ed47fc
Author: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Date:   Wed Dec 6 12:11:38 2017 +0000

    clk: qcom: msm8916: fix mnd_width for codec_digcodec
    
    
    [ Upstream commit d8e488e8242ecf129eebc440c92d800a99ca109d ]
    
    This patch fixes missing mnd_width for codec_digital clk, this is now set to
    8 inline with datasheet.
    
    Fixes: 3966fab8b6ab ("clk: qcom: Add MSM8916 Global Clock Controller support")
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 93f092f2c3c4d8f091f4b59b930283a8b4c5d6c0
Author: Axel Lin <axel.lin@ingics.com>
Date:   Tue Nov 7 13:18:53 2017 +0800

    pwm: stmpe: Fix wrong register offset for hwpwm=2 case
    
    
    [ Upstream commit 8472b529e113e0863ea064fdee51bf73c3f86fd6 ]
    
    Fix trivial copy/paste bug.
    
    Signed-off-by: Axel Lin <axel.lin@ingics.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Fixes: ef1f09eca74a ("pwm: Add a driver for the STMPE PWM")
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6656ab87a0ea6185591d30ee965e5afa49e8c7f
Author: Li Dongyang <dongyang.li@anu.edu.au>
Date:   Tue Nov 14 10:48:04 2017 +1100

    scsi: ses: don't ask for diagnostic pages repeatedly during probe
    
    
    [ Upstream commit 9c0a50022b8ac7e863e6ec8342fa476fe5d1d75c ]
    
    We are testing if there is a match with the ses device in a loop by
    calling ses_match_to_enclosure(), which will issue scsi receive
    diagnostics commands to the ses device for every device on the same
    host.  On one of our boxes with 840 disks, it takes a long time to load
    the driver:
    
    [root@g1b-oss06 ~]# time modprobe ses
    
    real    40m48.247s
    user    0m0.001s
    sys     0m0.196s
    
    With the patch:
    
    [root@g1b-oss06 ~]# time modprobe ses
    
    real    0m17.915s
    user    0m0.008s
    sys     0m0.053s
    
    Note that we still need to refresh page 10 when we see a new disk to
    create the link.
    
    Signed-off-by: Li Dongyang <dongyang.li@anu.edu.au>
    Tested-by: Jason Ozolins <jason.ozolins@hpe.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 103188787d9c1ceb3a0aceeaa37a2f252c58111f
Author: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com>
Date:   Mon Nov 6 13:39:31 2017 +0530

    ath10k: update tdls teardown state to target
    
    
    [ Upstream commit 424ea0d174e82365f85c6770225dba098b8f1d5f ]
    
    It is required to update the teardown state of the peer when
    a tdls link with that peer is terminated. This information is
    useful for the target to perform some cleanups wrt the tdls peer.
    
    Without proper cleanup, target assumes that the peer is connected and
    blocks future connection requests, updating the teardown state of the
    peer addresses the problem.
    
    Tested this change on QCA9888 with 10.4-3.5.1-00018 fw version.
    
    Signed-off-by: Manikanta Pubbisetty <mpubbise@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c3632572ab2dbc399f61aca8156b3c18ecf4651
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Wed Nov 22 21:31:20 2017 +0100

    power: supply: ab8500_charger: Bail out in case of error in 'ab8500_charger_init_hw_registers()'
    
    
    [ Upstream commit 09edcb647542487864e23aa8d2ef26be3e08978a ]
    
    If an error occurs when we enable the backup battery charging, we should
    go through the error handling path directly.
    
    Before commit db43e6c473b5 ("ab8500-bm: Add usb power path support") this
    was the case, but this commit has added some code between the last test and
    the 'out' label.
    So, in case of error, this added code is executed and the error may be
    silently ignored.
    
    Fix it by adding the missing 'goto out', as done in all other error
    handling paths.
    
    Fixes: db43e6c473b5 ("ab8500-bm: Add usb power path support")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4aac8ff4c4d85603629ede10ca569e4e27a1e1ea
Author: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Date:   Wed Nov 22 21:27:31 2017 +0100

    power: supply: ab8500_charger: Fix an error handling path
    
    
    [ Upstream commit bf59fddde1c3eab89eb8dca8f3d3dc097887d2bb ]
    
    'ret' is know to be 0 at this point, because it has not been updated by the
    the previous call to 'abx500_mask_and_set_register_interruptible()'.
    
    Fix it by updating 'ret' before checking if an error occurred.
    
    Fixes: 84edbeeab67c ("ab8500-charger: AB8500 charger driver")
    Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.co.uk>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c21a7793a743dec2cdb7538168a6758b3bef165b
Author: Bjorn Andersson <bjorn.andersson@linaro.org>
Date:   Thu Nov 30 21:16:56 2017 -0800

    leds: pm8058: Silence pointer to integer size warning
    
    
    [ Upstream commit 8f52df50d9366f770a894d14ef724e5e04574e98 ]
    
    The pointer returned by of_device_get_match_data() doesn't have the same
    size as u32 on 64-bit architectures, causing a compile warning when
    compile-testing the driver on such platform.
    
    Cast the return value of of_device_get_match_data() to unsigned long and
    then to u32 to silence this warning.
    
    Fixes: 7f866986e705 ("leds: add PM8058 LEDs driver")
    Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Acked-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 708f90af5f2277ddd412583b873c7fc4ce7a20ce
Author: Eric W. Biederman <ebiederm@xmission.com>
Date:   Wed Nov 29 17:29:20 2017 -0600

    userns: Don't fail follow_automount based on s_user_ns
    
    
    [ Upstream commit bbc3e471011417598e598707486f5d8814ec9c01 ]
    
    When vfs_submount was added the test to limit automounts from
    filesystems that with s_user_ns != &init_user_ns accidentially left
    in follow_automount.  The test was never about any security concerns
    and was always about how do we implement this for filesystems whose
    s_user_ns != &init_user_ns.
    
    At the moment this check makes no difference as there are no
    filesystems that both set FS_USERNS_MOUNT and implement d_automount.
    
    Remove this check now while I am thinking about it so there will not
    be odd booby traps for someone who does want to make this combination
    work.
    
    vfs_submount still needs improvements to allow this combination to work,
    and vfs_submount contains a check that presents a warning.
    
    The autofs4 filesystem could be modified to set FS_USERNS_MOUNT and it would
    need not work on this code path, as userspace performs the mounts.
    
    Fixes: 93faccbbfa95 ("fs: Better permission checking for submounts")
    Fixes: aeaa4a79ff6a ("fs: Call d_automount with the filesystems creds")
    Acked-by:  Ian Kent <raven@themaw.net>
    Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88347216d8e493d2a8bdcc3eb45beb55a8c0e4ef
Author: Jagdish Gediya <jagdish.gediya@nxp.com>
Date:   Thu Nov 23 17:04:31 2017 +0530

    mtd: nand: ifc: update bufnum mask for ver >= 2.0.0
    
    
    [ Upstream commit bccb06c353af3764ca86d9da47652458e6c2eb41 ]
    
    Bufnum mask is used to calculate page position in the internal SRAM.
    
    As IFC version 2.0.0 has 16KB of internal SRAM as compared to older
    versions which had 8KB. Hence bufnum mask needs to be updated.
    
    Signed-off-by: Jagdish Gediya <jagdish.gediya@nxp.com>
    Signed-off-by: Prabhakar Kushwaha <prabhakar.kushwaha@nxp.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5ca83f556925b86133af12ef7f17c1a52c39d7e
Author: Andrew F. Davis <afd@ti.com>
Date:   Wed Nov 29 11:13:59 2017 -0600

    ARM: dts: omap3-n900: Fix the audio CODEC's reset pin
    
    
    [ Upstream commit 7be4b5dc7ffa9499ac6ef33a5ffa9ff43f9b7057 ]
    
    The correct DT property for specifying a GPIO used for reset
    is "reset-gpios", fix this here.
    
    Fixes: 14e3e295b2b9 ("ARM: dts: omap3-n900: Add TLV320AIC3X support")
    
    Signed-off-by: Andrew F. Davis <afd@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 272b5eef085c23cd71eec30fe040fb1592682508
Author: Andrew F. Davis <afd@ti.com>
Date:   Wed Nov 29 11:13:56 2017 -0600

    ARM: dts: am335x-pepper: Fix the audio CODEC's reset pin
    
    
    [ Upstream commit e153db03c6b7a035c797bcdf35262586f003ee93 ]
    
    The correct DT property for specifying a GPIO used for reset
    is "reset-gpios", fix this here.
    
    Fixes: 4341881d0562 ("ARM: dts: Add devicetree for Gumstix Pepper board")
    
    Signed-off-by: Andrew F. Davis <afd@ti.com>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c865a3d27274733a680bcd8be8cd50d3841d133
Author: Sunil Goutham <sgoutham@cavium.com>
Date:   Fri Nov 24 15:04:03 2017 +0300

    net: thunderx: Set max queue count taking XDP_TX into account
    
    
    [ Upstream commit 87de083857aa269fb171ef0b39696b2888361c58 ]
    
    on T81 there are only 4 cores, hence setting max queue count to 4
    would leave nothing for XDP_TX. This patch fixes this by doubling
    max queue count in above scenarios.
    
    Signed-off-by: Sunil Goutham <sgoutham@cavium.com>
    Signed-off-by: cjacob <cjacob@caviumnetworks.com>
    Signed-off-by: Aleksey Makarov <aleksey.makarov@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da2ad1d8d47adb3fb0dbc86bdf27d0f84d5b0a59
Author: Miquel Raynal <miquel.raynal@free-electrons.com>
Date:   Wed Nov 8 17:00:27 2017 +0100

    mtd: nand: fix interpretation of NAND_CMD_NONE in nand_command[_lp]()
    
    
    [ Upstream commit df467899da0b71465760b4e35127bce837244eee ]
    
    Some drivers (like nand_hynix.c) call ->cmdfunc() with NAND_CMD_NONE
    and a column address and expect the controller to only send address
    cycles. Right now, the default ->cmdfunc() implementations provided by
    the core do not filter out the command cycle in this case and forwards
    the request to the controller driver through the ->cmd_ctrl() method.
    The thing is, NAND controller drivers can get this wrong and send a
    command cycle with a NAND_CMD_NONE opcode and since NAND_CMD_NONE is
    -1, and the command field is usually casted to an u8, we end up sending
    the 0xFF command which is actually a RESET operation.
    
    Add conditions in nand_command[_lp]() functions to sending the initial
    command cycle when command == NAND_CMD_NONE.
    
    Signed-off-by: Miquel Raynal <miquel.raynal@free-electrons.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5eef9b51114fcc65651d671add52f267f91b9451
Author: Lorenzo Colitti <lorenzo@google.com>
Date:   Mon Nov 20 19:26:02 2017 +0900

    net: xfrm: allow clearing socket xfrm policies.
    
    
    [ Upstream commit be8f8284cd897af2482d4e54fbc2bdfc15557259 ]
    
    Currently it is possible to add or update socket policies, but
    not clear them. Therefore, once a socket policy has been applied,
    the socket cannot be used for unencrypted traffic.
    
    This patch allows (privileged) users to clear socket policies by
    passing in a NULL pointer and zero length argument to the
    {IP,IPV6}_{IPSEC,XFRM}_POLICY setsockopts. This results in both
    the incoming and outgoing policies being cleared.
    
    The simple approach taken in this patch cannot clear socket
    policies in only one direction. If desired this could be added
    in the future, for example by continuing to pass in a length of
    zero (which currently is guaranteed to return EMSGSIZE) and
    making the policy be a pointer to an integer that contains one
    of the XFRM_POLICY_{IN,OUT} enum values.
    
    An alternative would have been to interpret the length as a
    signed integer and use XFRM_POLICY_IN (i.e., 0) to clear the
    input policy and -XFRM_POLICY_OUT (i.e., -1) to clear the output
    policy.
    
    Tested: https://android-review.googlesource.com/539816
    Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6f8e8ec3d1bd6333f6af8ada6d092314bc9f73c6
Author: Michael Hennerich <michael.hennerich@analog.com>
Date:   Tue Nov 28 13:53:12 2017 +0100

    net: ieee802154: adf7242: Fix bug if defined DEBUG
    
    
    [ Upstream commit 388b3b2b03701f3b3c10975c272892d7f78080df ]
    
    This fixes undefined reference to struct adf7242_local *lp in
    case DEBUG is defined.
    
    Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
    Signed-off-by: Stefan Schmidt <stefan@osg.samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db699dcd8e7af2c497678bed4463f80f75addadc
Author: Luis R. Rodriguez <mcgrof@kernel.org>
Date:   Mon Nov 20 09:45:35 2017 -0800

    test_firmware: fix setting old custom fw path back on exit
    
    
    [ Upstream commit 65c79230576873b312c3599479c1e42355c9f349 ]
    
    The file /sys/module/firmware_class/parameters/path can be used
    to set a custom firmware path. The fw_filesystem.sh script creates
    a temporary directory to add a test firmware file to be used during
    testing, in order for this to work it uses the custom path syfs file
    and it was supposed to reset back the file on execution exit. The
    script failed to do this due to a typo, it was using OLD_PATH instead
    of OLD_FWPATH, since its inception since v3.17.
    
    Its not as easy to just keep the old setting, it turns out that
    resetting an empty setting won't actually do what we want, we need
    to check if it was empty and set an empty space.
    
    Without this we end up having the temporary path always set after
    we run these tests.
    
    Fixes: 0a8adf58475 ("test: add firmware_class loader test")
    Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cce2b93fd35194558e23582c858c4a9ce90c798c
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date:   Fri Oct 13 16:24:28 2017 -0700

    sched: Stop resched_cpu() from sending IPIs to offline CPUs
    
    
    [ Upstream commit a0982dfa03efca6c239c52cabebcea4afb93ea6b ]
    
    The rcutorture test suite occasionally provokes a splat due to invoking
    resched_cpu() on an offline CPU:
    
    WARNING: CPU: 2 PID: 8 at /home/paulmck/public_git/linux-rcu/arch/x86/kernel/smp.c:128 native_smp_send_reschedule+0x37/0x40
    Modules linked in:
    CPU: 2 PID: 8 Comm: rcu_preempt Not tainted 4.14.0-rc4+ #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
    task: ffff902ede9daf00 task.stack: ffff96c50010c000
    RIP: 0010:native_smp_send_reschedule+0x37/0x40
    RSP: 0018:ffff96c50010fdb8 EFLAGS: 00010096
    RAX: 000000000000002e RBX: ffff902edaab4680 RCX: 0000000000000003
    RDX: 0000000080000003 RSI: 0000000000000000 RDI: 00000000ffffffff
    RBP: ffff96c50010fdb8 R08: 0000000000000000 R09: 0000000000000001
    R10: 0000000000000000 R11: 00000000299f36ae R12: 0000000000000001
    R13: ffffffff9de64240 R14: 0000000000000001 R15: ffffffff9de64240
    FS:  0000000000000000(0000) GS:ffff902edfc80000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000f7d4c642 CR3: 000000001e0e2000 CR4: 00000000000006e0
    Call Trace:
     resched_curr+0x8f/0x1c0
     resched_cpu+0x2c/0x40
     rcu_implicit_dynticks_qs+0x152/0x220
     force_qs_rnp+0x147/0x1d0
     ? sync_rcu_exp_select_cpus+0x450/0x450
     rcu_gp_kthread+0x5a9/0x950
     kthread+0x142/0x180
     ? force_qs_rnp+0x1d0/0x1d0
     ? kthread_create_on_node+0x40/0x40
     ret_from_fork+0x27/0x40
    Code: 14 01 0f 92 c0 84 c0 74 14 48 8b 05 14 4f f4 00 be fd 00 00 00 ff 90 a0 00 00 00 5d c3 89 fe 48 c7 c7 38 89 ca 9d e8 e5 56 08 00 <0f> ff 5d c3 0f 1f 44 00 00 8b 05 52 9e 37 02 85 c0 75 38 55 48
    ---[ end trace 26df9e5df4bba4ac ]---
    
    This splat cannot be generated by expedited grace periods because they
    always invoke resched_cpu() on the current CPU, which is good because
    expedited grace periods require that resched_cpu() unconditionally
    succeed.  However, other parts of RCU can tolerate resched_cpu() acting
    as a no-op, at least as long as it doesn't happen too often.
    
    This commit therefore makes resched_cpu() invoke resched_curr() only if
    the CPU is either online or is the current CPU.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bac7bb1849a683ed64343ec86f24d5403363fe57
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date:   Fri Oct 13 17:00:18 2017 -0700

    sched: Stop switched_to_rt() from sending IPIs to offline CPUs
    
    
    [ Upstream commit 2fe2582649aa2355f79acddb86bd4d6c5363eb63 ]
    
    The rcutorture test suite occasionally provokes a splat due to invoking
    rt_mutex_lock() which needs to boost the priority of a task currently
    sitting on a runqueue that belongs to an offline CPU:
    
    WARNING: CPU: 0 PID: 12 at /home/paulmck/public_git/linux-rcu/arch/x86/kernel/smp.c:128 native_smp_send_reschedule+0x37/0x40
    Modules linked in:
    CPU: 0 PID: 12 Comm: rcub/7 Not tainted 4.14.0-rc4+ #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Ubuntu-1.8.2-1ubuntu1 04/01/2014
    task: ffff9ed3de5f8cc0 task.stack: ffffbbf80012c000
    RIP: 0010:native_smp_send_reschedule+0x37/0x40
    RSP: 0018:ffffbbf80012fd10 EFLAGS: 00010082
    RAX: 000000000000002f RBX: ffff9ed3dd9cb300 RCX: 0000000000000004
    RDX: 0000000080000004 RSI: 0000000000000086 RDI: 00000000ffffffff
    RBP: ffffbbf80012fd10 R08: 000000000009da7a R09: 0000000000007b9d
    R10: 0000000000000001 R11: ffffffffbb57c2cd R12: 000000000000000d
    R13: ffff9ed3de5f8cc0 R14: 0000000000000061 R15: ffff9ed3ded59200
    FS:  0000000000000000(0000) GS:ffff9ed3dea00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00000000080686f0 CR3: 000000001b9e0000 CR4: 00000000000006f0
    Call Trace:
     resched_curr+0x61/0xd0
     switched_to_rt+0x8f/0xa0
     rt_mutex_setprio+0x25c/0x410
     task_blocks_on_rt_mutex+0x1b3/0x1f0
     rt_mutex_slowlock+0xa9/0x1e0
     rt_mutex_lock+0x29/0x30
     rcu_boost_kthread+0x127/0x3c0
     kthread+0x104/0x140
     ? rcu_report_unblock_qs_rnp+0x90/0x90
     ? kthread_create_on_node+0x40/0x40
     ret_from_fork+0x22/0x30
    Code: f0 00 0f 92 c0 84 c0 74 14 48 8b 05 34 74 c5 00 be fd 00 00 00 ff 90 a0 00 00 00 5d c3 89 fe 48 c7 c7 a0 c6 fc b9 e8 d5 b5 06 00 <0f> ff 5d c3 0f 1f 44 00 00 8b 05 a2 d1 13 02 85 c0 75 38 55 48
    
    But the target task's priority has already been adjusted, so the only
    purpose of switched_to_rt() invoking resched_curr() is to wake up the
    CPU running some task that needs to be preempted by the boosted task.
    But the CPU is offline, which presumably means that the task must be
    migrated to some other CPU, and that this other CPU will undertake any
    needed preemption at the time of migration.  Because the runqueue lock
    is held when resched_curr() is invoked, we know that the boosted task
    cannot go anywhere, so it is not necessary to invoke resched_curr()
    in this particular case.
    
    This commit therefore makes switched_to_rt() refrain from invoking
    resched_curr() when the target CPU is offline.
    
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7667c53f6f9adace76fd791039145de081e9f774
Author: Simon Shields <simon@lineageos.org>
Date:   Tue Nov 21 22:24:24 2017 +1100

    ARM: dts: exynos: Correct Trats2 panel reset line
    
    
    [ Upstream commit 1b377924841df1e13ab5b225be3a83f807a92b52 ]
    
    Trats2 uses gpf2-1 as the panel reset GPIO. gpy4-5 was only used
    on early revisions of the board.
    
    Fixes: 420ae8451a22 ("ARM: dts: exynos4412-trats2: add panel node")
    Signed-off-by: Simon Shields <simon@lineageos.org>
    Acked-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Tested-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05fafb80ba2412da75ef8e23f37bec2285ac7f6f
Author: Yixun Lan <yixun.lan@amlogic.com>
Date:   Tue Nov 7 22:12:23 2017 +0800

    clk: meson: gxbb: fix wrong clock for SARADC/SANA
    
    
    [ Upstream commit 75eccf5ed83250c0aeaeeb76f7288254ac0a87b4 ]
    
    According to the datasheet, in Meson-GXBB/GXL series,
    The clock gate bit for SARADC is HHI_GCLK_MPEG2 bit[22],
    while clock gate bit for SANA is HHI_GCLK_MPEG0 bit[10].
    
    Test passed at gxl-s905x-p212 board.
    
    The following published datasheets are wrong and should be updated
    [1] GXBB v1.1.4
    [2] GXL v0.3_20170314
    
    Fixes: 738f66d3211d ("clk: gxbb: add AmLogic GXBB clk controller driver")
    Tested-by: Xingyu Chen <xingyu.chen@amlogic.com>
    Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
    Signed-off-by: Jerome Brunet <jbrunet@baylibre.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e95928a6407f32c716f11a4483e6438f88a0ed9f
Author: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Date:   Thu Oct 19 21:36:04 2017 +0300

    iwlwifi: mvm: rs: don't override the rate history in the search cycle
    
    
    [ Upstream commit 992172e3aec19e5b0ea5b757ba40a146b9282d1e ]
    
    When we are in a search cycle, we try different combinations
    of parameters. Those combinations are called 'columns'.
    When we switch to a new column, we first need to check if
    this column has a suitable rate, if not, we can't try it.
    This means we must not erase the statistics we gathered
    for the previous column until we are sure that we are
    indeed switching column.
    
    The code that tries to switch to a new column first sets
    a whole bunch of things for the new column, and only then
    checks that we can find suitable rates in that column.
    While doing that, the code mistakenly erased the rate
    statistics. This code was right until
    struct iwl_scale_tbl_info grew up for TPC.
    
    Fix this to make sure we don't erase the rate statistics
    until we are sure that we can indeed switch to the new
    column.
    
    Note that this bug is really harmless since it causes a
    change in the behavior only when we can't find any rate
    in the new column which should really not happen. In the
    case we do find a suitable we reset the rate statistics
    a few lines later anyway.
    
    Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e93b348ca667484b40c0dffceb50ae405540851
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Wed Nov 22 11:19:51 2017 +0100

    HID: elo: clear BTN_LEFT mapping
    
    
    [ Upstream commit 9abd04af951e5734c9d5cfee9b49790844b734cf ]
    
    ELO devices have one Button usage in GenDesk field, which makes hid-input map
    it to BTN_LEFT; that confuses userspace, which then considers the device to be
    a mouse/touchpad instead of touchscreen.
    
    Fix that by unmapping BTN_LEFT and keeping only BTN_TOUCH in place.
    
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 088d552d986e18f0a03a5367cf11b7841597c210
Author: Ville Syrjälä <ville.syrjala@linux.intel.com>
Date:   Mon Nov 13 19:04:18 2017 +0200

    video/hdmi: Allow "empty" HDMI infoframes
    
    
    [ Upstream commit 593f4b19a094c4426bd1e1e3cbab87a48bd13c71 ]
    
    HDMI 2.0 Appendix F suggest that we should keep sending the infoframe
    when switching from 3D to 2D mode, even if the infoframe isn't strictly
    necessary (ie. not needed to transmit the VIC or stereo information).
    This is a workaround against some sinks that fail to realize that they
    should switch from 3D to 2D mode when the source stop transmitting
    the infoframe.
    
    v2: Handle unpack() as well
        Pull the length calculation into a helper
    
    Cc: Shashank Sharma <shashank.sharma@intel.com>
    Cc: Andrzej Hajda <a.hajda@samsung.com>
    Cc: Thierry Reding <thierry.reding@gmail.com>
    Cc: Hans Verkuil <hans.verkuil@cisco.com>
    Cc: linux-media@vger.kernel.org
    Reviewed-by: Andrzej Hajda <a.hajda@samsung.com> #v1
    Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20171113170427.4150-2-ville.syrjala@linux.intel.com
    Reviewed-by: Shashank Sharma <shashank.sharma@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9bf2ce49d3d4cea17e8597f7f9f0379280247113
Author: Jani Nikula <jani.nikula@intel.com>
Date:   Wed Nov 1 16:20:58 2017 +0200

    drm/edid: set ELD connector type in drm_edid_to_eld()
    
    
    [ Upstream commit 1d1c36650752b7fb81cee515a9bba4131cac4b7c ]
    
    Since drm_edid_to_eld() knows the connector type, we can set the type in
    ELD while at it. Most connectors this gets called on are not DP
    encoders, and with the HDMI type being 0, this does not change behaviour
    for non-DP.
    
    For i915 having this in place earlier would have saved a considerable
    amount of debugging that lead to the fix 2d8f63297b9f ("drm/i915: always
    update ELD connector type after get modes"). I don't see other drivers,
    even the ones calling drm_edid_to_eld() on DP connectors, setting the
    connector type in ELD.
    
    Cc: Alex Deucher <alexander.deucher@amd.com>
    Cc: Christian König <christian.koenig@amd.com>
    Cc: Archit Taneja <architt@codeaurora.org>
    Cc: Andrzej Hajda <a.hajda@samsung.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Cc: CK Hu <ck.hu@mediatek.com>
    Cc: Philipp Zabel <p.zabel@pengutronix.de>
    Cc: Ben Skeggs <bskeggs@redhat.com>
    Cc: Mark Yao <mark.yao@rock-chips.com>
    Cc: Benjamin Gaignard <benjamin.gaignard@linaro.org>
    Cc: Vincent Abriou <vincent.abriou@st.com>
    Cc: Thierry Reding <thierry.reding@gmail.com>
    Cc: Eric Anholt <eric@anholt.net>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
    Acked-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/d527b31619528c477c2c136f25cdf118bc0cfc1d.1509545641.git.jani.nikula@intel.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ac09628e707f00a95effed606fa7f013cef77e52
Author: Ganapathi Bhat <gbhat@marvell.com>
Date:   Tue Apr 4 10:16:28 2017 +0530

    mwifiex: Fix invalid port issue
    
    
    [ Upstream commit ecd7eb7c2bcf99f6c23d68ad56ce15949da848a1 ]
    
    We have to use start port, for TX/RX of single packet,
    instead of current aggregating port. This will fix SDIO
    CMD53(TX/RX) returning -ETIMEDOUT and halting the data path.
    
    Fixes: 0cb52aac4d19 ("mwifiex: do not set multiport flag for tx/rx single packet")
    Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46eae02ef6d9d9172d0cf4628f720b8673bdcc7d
Author: Stephane Eranian <eranian@google.com>
Date:   Wed Apr 12 11:23:01 2017 -0700

    perf stat: Fix bug in handling events in error state
    
    
    [ Upstream commit db49a71798a38f3ddf3f3462703328dca39b1ac7 ]
    
    (This is a patch has been sitting in the Intel CQM/CMT driver series for
     a while, despite not depend on it. Sending it now independently since
     the series is being discarded.)
    
    When an event is in error state, read() returns 0 instead of sizeof()
    buffer. In certain modes, such as interval printing, ignoring the 0
    return value may cause bogus count deltas to be computed and thus
    invalid results printed.
    
    This patch fixes this problem by modifying read_counters() to mark the
    event as not scaled (scaled = -1) to force the printout routine to show
    <NOT COUNTED>.
    
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Reviewed-by: David Carrillo-Cisneros <davidcc@google.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/20170412182301.44406-1-davidcc@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d546045ebfe80880e57be141d33a89176ec4713f
Author: Dedy Lansky <qca_dlansky@qca.qualcomm.com>
Date:   Wed Apr 5 14:58:11 2017 +0300

    wil6210: fix memory access violation in wil_memcpy_from/toio_32
    
    
    [ Upstream commit 0f6edfe2bbbb59d161580cb4870fcc46f5490f85 ]
    
    In case count is not multiple of 4, there is a read access in
    wil_memcpy_toio_32() from outside src buffer boundary.
    In wil_memcpy_fromio_32(), in case count is not multiple of 4, there is
    a write access to outside dst io memory boundary.
    
    Fix these issues with proper handling of the last 1 to 4 copied bytes.
    
    Signed-off-by: Dedy Lansky <qca_dlansky@qca.qualcomm.com>
    Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7fd50a893f31450bafba5ccd0adb09a2de1ab55
Author: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com>
Date:   Wed Apr 5 14:58:08 2017 +0300

    wil6210: fix protection against connections during reset
    
    
    [ Upstream commit b819447dfc4bd120c9d6cd8521252d544fce8fe7 ]
    
    Existing code that ignores connection events during
    reset flow will never take effect since it locks the
    same mutex taken by the reset flow.
    
    In addition, in case of unsolicited disconnect events ignore
    those as well since device is about to get reset.
    
    Signed-off-by: Hamad Kadmany <qca_hkadmany@qca.qualcomm.com>
    Signed-off-by: Maya Erez <qca_merez@qca.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a83f6943ae16a73a3f6af5c89f2a453129406f4
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Tue Apr 4 22:22:56 2017 +0530

    ath10k: fix compile time sanity check for CE4 buffer size
    
    
    [ Upstream commit 62ca0690cd495bb7c1414cdf0cf790c2922a1d79 ]
    
    In 'ath10k_ce_alloc_pipe' the compile time sanity check to
    ensure that there is sufficient buffers in CE4 for HTT Tx
    MSDU descriptors, but this did not take into account of the
    case with 'peer flow control' enabled, fix this.
    
    Cc: Michal Kazior <michal.kazior@tieto.com>
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6335d2350f4273c5ed4ff82929958ebf8b635aa2
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Thu Apr 13 10:31:16 2017 +0200

    mac80211_hwsim: use per-interface power level
    
    
    [ Upstream commit 1d5e9f80ab021e3e1f9436627a4ad07a143ccb2c ]
    
    When channel contexts are used, there's no global power level
    (the power_level is always 0). Use the per-interface TX power
    in mac80211_hwsim to have a proper setting for both cases.
    
    This fixes the bgscan_simple and bgscan_learn test cases when
    the number of channels advertised by hwsim is >1 by default.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7ac7e479ae38810bc06fb662fe6e7e1ac7df3cf
Author: Michael Scott <michael.scott@linaro.org>
Date:   Tue Mar 28 23:10:54 2017 -0700

    Bluetooth: 6lowpan: fix delay work init in add_peer_chan()
    
    
    [ Upstream commit d2891c4d071d807f01cc911dc42a68f4568d65cf ]
    
    When adding 6lowpan devices very rapidly we sometimes see a crash:
    [23122.306615] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.9.0-43-arm64 #1 Debian 4.9.9.linaro.43-1
    [23122.315400] Hardware name: HiKey Development Board (DT)
    [23122.320623] task: ffff800075443080 task.stack: ffff800075484000
    [23122.326551] PC is at expire_timers+0x70/0x150
    [23122.330907] LR is at run_timer_softirq+0xa0/0x1a0
    [23122.335616] pc : [<ffff000008142dd8>] lr : [<ffff000008142f58>] pstate: 600001c5
    
    This was due to add_peer_chan() unconditionally initializing the
    lowpan_btle_dev->notify_peers delayed work structure, even if the
    lowpan_btle_dev passed into add_peer_chan() had previously been
    initialized.
    
    Normally, this would go unnoticed as the delayed work timer is set for
    100 msec, however when calling add_peer_chan() faster than 100 msec it
    clears out a previously queued delay work causing the crash above.
    
    To fix this, let add_peer_chan() know when a new lowpan_btle_dev is passed
    in so that it only performs the delay work initialization when needed.
    
    Signed-off-by: Michael Scott <michael.scott@linaro.org>
    Acked-by: Jukka Rissanen <jukka.rissanen@linux.intel.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3fa28a381b8a61cd2f3631936e6aa6c48363cb9
Author: Dean Jenkins <Dean_Jenkins@mentor.com>
Date:   Fri Mar 10 11:34:46 2017 +0000

    Bluetooth: Avoid bt_accept_unlink() double unlinking
    
    
    [ Upstream commit 27bfbc21a0c0f711fa5382de026c7c0700c9ea28 ]
    
    There is a race condition between a thread calling bt_accept_dequeue()
    and a different thread calling bt_accept_unlink(). Protection against
    concurrency is implemented using sk locking. However, sk locking causes
    serialisation of the bt_accept_dequeue() and bt_accept_unlink() threads.
    This serialisation can cause bt_accept_dequeue() to obtain the sk from the
    parent list but becomes blocked waiting for the sk lock held by the
    bt_accept_unlink() thread. bt_accept_unlink() unlinks sk and this thread
    releases the sk lock unblocking bt_accept_dequeue() which potentially runs
    bt_accept_unlink() again on the same sk causing a crash. The attempt to
    double unlink the same sk from the parent list can cause a NULL pointer
    dereference crash due to bt_sk(sk)->parent becoming NULL on the first
    unlink, followed by the second unlink trying to execute
    bt_sk(sk)->parent->sk_ack_backlog-- in bt_accept_unlink() which crashes.
    
    When sk is in the parent list, bt_sk(sk)->parent will be not be NULL.
    When sk is removed from the parent list, bt_sk(sk)->parent is set to
    NULL. Therefore, add a defensive check for bt_sk(sk)->parent not being
    NULL to ensure that sk is still in the parent list after the sk lock has
    been taken in bt_accept_dequeue(). If bt_sk(sk)->parent is detected as
    being NULL then restart the loop so that the loop variables are refreshed
    to use the latest values. This is necessary as list_for_each_entry_safe()
    is not thread safe so causing a risk of an infinite loop occurring as sk
    could point to itself.
    
    In addition, in bt_accept_dequeue() increase the sk reference count to
    protect against early freeing of sk. Early freeing can be possible if the
    bt_accept_unlink() thread calls l2cap_sock_kill() or rfcomm_sock_kill()
    functions before bt_accept_dequeue() gets the sk lock.
    
    For test purposes, the probability of failure can be increased by putting
    a msleep of 1 second in bt_accept_dequeue() between getting the sk and
    waiting for the sk lock. This exposes the fact that the loop
    list_for_each_entry_safe(p, n, &bt_sk(parent)->accept_q) is not safe from
    threads that unlink sk from the list in parallel with the loop which can
    cause sk to become stale within the loop.
    
    Signed-off-by: Dean Jenkins <Dean_Jenkins@mentor.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 59665fc5e5f5ff1275d1adb4fa63ec1a707e7e89
Author: Rajendra Nayak <rnayak@codeaurora.org>
Date:   Thu Mar 23 13:13:40 2017 +0530

    clk: qcom: msm8996: Fix the vfe1 powerdomain name
    
    
    [ Upstream commit a62ca337b36e31621b582cbe8f17d9404a48e120 ]
    
    Fix a typo which caused both vfe0 and vfe1 powerdomains to be
    named as vfe0.
    
    Signed-off-by: Rajendra Nayak <rnayak@codeaurora.org>
    Fixes: 7e824d507909 ("clk: qcom: gdsc: Add mmcc gdscs for msm8996 family")
    Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
    Signed-off-by: Michael Turquette <mturquette@baylibre.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 99f3e3b0a8dbbf72173b18fe8b8df625c94cc7df
Author: Laxman Dewangan <ldewangan@nvidia.com>
Date:   Fri Apr 7 15:04:00 2017 +0530

    pwm: tegra: Increase precision in PWM rate calculation
    
    
    [ Upstream commit 250b76f43f57d578ebff5e7211eb2c73aa5cd6ca ]
    
    The rate of the PWM calculated as follows:
    
            hz = NSEC_PER_SEC / period_ns;
            rate = (rate + (hz / 2)) / hz;
    
    This has the precision loss in lower PWM rate.
    
    Change this to have more precision as:
    
            hz = DIV_ROUND_CLOSEST_ULL(NSEC_PER_SEC * 100, period_ns);
            rate = DIV_ROUND_CLOSEST(rate * 100, hz)
    
    Example:
    
    1. period_ns = 16672000, PWM clock rate is 200 KHz.
    
            Based on old formula
                    hz = NSEC_PER_SEC / period_ns
                       = 1000000000ul/16672000
                       = 59 (59.98)
                    rate = (200K + 59/2)/59 = 3390
    
            Based on new method:
                    hz = 5998
                    rate = DIV_ROUND_CLOSE(200000*100, 5998) = 3334
    
            If we measure the PWM signal rate, we will get more accurate
            period with rate value of 3334 instead of 3390.
    
    2.  period_ns = 16803898, PWM clock rate is 200 KHz.
    
            Based on old formula:
                    hz = 59, rate = 3390
    
            Based on new formula:
                    hz = 5951, rate = 3360
    
            The PWM signal rate of 3360 is more near to requested period
            than 3333.
    
    Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com>
    Signed-off-by: Thierry Reding <thierry.reding@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0cab8cae1618e9c6d4b16560321c57ed1321bac
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Mar 29 14:02:46 2017 +0900

    kprobes/x86: Set kprobes pages read-only
    
    
    [ Upstream commit d0381c81c2f782fa2131178d11e0cfb23d50d631 ]
    
    Set the pages which is used for kprobes' singlestep buffer
    and optprobe's trampoline instruction buffer to readonly.
    This can prevent unexpected (or unintended) instruction
    modification.
    
    This also passes rodata_test as below.
    
    Without this patch, rodata_test shows a warning:
    
      WARNING: CPU: 0 PID: 1 at arch/x86/mm/dump_pagetables.c:235 note_page+0x7a9/0xa20
      x86/mm: Found insecure W+X mapping at address ffffffffa0000000/0xffffffffa0000000
    
    With this fix, no W+X pages are found:
    
      x86/mm: Checked W+X mappings: passed, no W+X pages found.
      rodata_test: all tests were successful
    
    Reported-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: David S . Miller <davem@davemloft.net>
    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: Ye Xiaolong <xiaolong.ye@intel.com>
    Link: http://lkml.kernel.org/r/149076375592.22469.14174394514338612247.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 96d0c4c4674705677ee6dbfecc468da439dadf01
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Wed Mar 29 13:56:56 2017 +0900

    kprobes/x86: Fix kprobe-booster not to boost far call instructions
    
    
    [ Upstream commit bd0b90676c30fe640e7ead919b3e38846ac88ab7 ]
    
    Fix the kprobe-booster not to boost far call instruction,
    because a call may store the address in the single-step
    execution buffer to the stack, which should be modified
    after single stepping.
    
    Currently, this instruction will be filtered as not
    boostable in resume_execution(), so this is not a
    critical issue.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Ananth N Mavinakayanahalli <ananth@linux.vnet.ibm.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Anil S Keshavamurthy <anil.s.keshavamurthy@intel.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: David S . Miller <davem@davemloft.net>
    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: Ye Xiaolong <xiaolong.ye@intel.com>
    Link: http://lkml.kernel.org/r/149076340615.22469.14066273186134229909.stgit@devbox
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1ab6efa2d4d6e785e6701fd319cc3044ede2fadf
Author: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
Date:   Wed Apr 12 09:54:00 2017 +0530

    ALSA: hda: Add Geminilake id to SKL_PLUS
    
    
    [ Upstream commit 12ee4022f67f8854061b46e5c0a7ad6258ab66c2 ]
    
    Geminilake is Skylake family platform. So add it's id to skl_plus check.
    
    Fixes: 126cfa2f5e15 ("ALSA: hda: Add Geminilake HDMI codec ID")
    Signed-off-by: Subhransu S. Prusty <subhransu.s.prusty@intel.com>
    Cc: Senthilnathan Veppur <senthilnathanx.veppur@intel.com>
    Cc: Vinod Koul <vinod.koul@intel.com>
    Cc: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae9b6ae2e77947534e255903627cc62746ea77e2
Author: Hannes Reinecke <hare@suse.de>
Date:   Fri Apr 7 09:34:17 2017 +0200

    scsi: sg: close race condition in sg_remove_sfp_usercontext()
    
    
    [ Upstream commit 97d27b0dd015e980ade63fda111fd1353276e28b ]
    
    sg_remove_sfp_usercontext() is clearing any sg requests, but needs to
    take 'rq_list_lock' when modifying the list.
    
    Reported-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Hannes Reinecke <hare@suse.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Tested-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 602f933e0314b6ec4fca46e57127a08f917ed7c5
Author: Johannes Thumshirn <jthumshirn@suse.de>
Date:   Fri Apr 7 09:34:15 2017 +0200

    scsi: sg: check for valid direction before starting the request
    
    
    [ Upstream commit 28676d869bbb5257b5f14c0c95ad3af3a7019dd5 ]
    
    Check for a valid direction before starting the request, otherwise we
    risk running into an assertion in the scsi midlayer checking for valid
    requests.
    
    [mkp: fixed typo]
    
    Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
    Link: http://www.spinics.net/lists/linux-scsi/msg104400.html
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Hannes Reinecke <hare@suse.com>
    Tested-by: Johannes Thumshirn <jthumshirn@suse.de>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bab8ac1b274eb835a6ac33501dbd010fc0262822
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Mon Mar 27 14:23:40 2017 +1100

    vfio/spapr_tce: Check kzalloc() return when preregistering memory
    
    
    [ Upstream commit 3393af24b665cb0aea7353b05e522b03ab1e7d73 ]
    
    This adds missing checking for kzalloc() return value.
    
    Fixes: 4b6fad7097f8 ("powerpc/mm/iommu, vfio/spapr: Put pages on VFIO container shutdown")
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d7601dcb29d4b51cc32da4a744533f524a6fc8a
Author: Alexey Kardashevskiy <aik@ozlabs.ru>
Date:   Fri Mar 24 17:44:06 2017 +1100

    vfio/powerpc/spapr_tce: Enforce IOMMU type compatibility check
    
    
    [ Upstream commit 1282ba7fc28dbc66c3f0e4aaafaaa228361d1ae5 ]
    
    The existing SPAPR TCE driver advertises both VFIO_SPAPR_TCE_IOMMU and
    VFIO_SPAPR_TCE_v2_IOMMU types to the userspace and the userspace usually
    picks the v2.
    
    Normally the userspace would create a container, attach an IOMMU group
    to it and only then set the IOMMU type (which would normally be v2).
    
    However a specific IOMMU group may not support v2, in other words
    it may not implement set_window/unset_window/take_ownership/
    release_ownership and such a group should not be attached to
    a v2 container.
    
    This adds extra checks that a new group can do what the selected IOMMU
    type suggests. The userspace can then test the return value from
    ioctl(VFIO_SET_IOMMU, VFIO_SPAPR_TCE_v2_IOMMU) and try
    VFIO_SPAPR_TCE_IOMMU.
    
    Signed-off-by: Alexey Kardashevskiy <aik@ozlabs.ru>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c885c35463fac9e11055ce447de05bc996b4c4c
Author: David Carrillo-Cisneros <davidcc@google.com>
Date:   Mon Apr 10 13:14:30 2017 -0700

    perf session: Don't rely on evlist in pipe mode
    
    
    [ Upstream commit 0973ad97c187e06aece61f685b9c3b2d93290a73 ]
    
    Session sets a number parameters that rely on evlist. These parameters
    are not used in pipe-mode and should not be set, since evlist is
    unavailable. Fix that.
    
    Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: He Kuang <hekuang@huawei.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Simon Que <sque@chromium.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/20170410201432.24807-6-davidcc@google.com
    [ Check if file != NULL in perf_session__new(), like when used by builtin-top.c ]
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c4e5168dd2776147acb4a94f941508809262365
Author: Fugang Duan <fugang.duan@nxp.com>
Date:   Tue Apr 11 19:13:06 2017 +0800

    net: fec: add phy-reset-gpios PROBE_DEFER check
    
    
    [ Upstream commit 9269e5560b261eb9ee157497890dc0948db76cf8 ]
    
    Many boards use i2c/spi expander gpio as phy-reset-gpios and these
    gpios maybe registered after fec port, driver should check the return
    value of .of_get_named_gpio().
    
    Signed-off-by: Fugang Duan <B38611@freescale.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9f8b1cc5aa6453a5735c216cb80c6c00da20926
Author: David Carrillo-Cisneros <davidcc@google.com>
Date:   Mon Apr 10 13:14:27 2017 -0700

    perf inject: Copy events when reordering events in pipe mode
    
    
    [ Upstream commit 1e0d4f0200e4dbdfc38d818f329d8a0955f7c6f5 ]
    
    __perf_session__process_pipe_events reuses the same memory buffer to
    process all events in the pipe.
    
    When reordering is needed (e.g. -b option), events are not immediately
    flushed, but kept around until reordering is possible, causing
    memory corruption.
    
    The problem is usually observed by a "Unknown sample error" output. It
    can easily be reproduced by:
    
      perf record -o - noploop | perf inject -b > output
    
    Committer testing:
    
    Before:
    
      $ perf record -o - stress -t 2 -c 2 | perf inject -b > /dev/null
      stress: info: [8297] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
      stress: info: [8297] successful run completed in 2s
      [ perf record: Woken up 3 times to write data ]
      [ perf record: Captured and wrote 0.000 MB - ]
      Warning:
      Found 1 unknown events!
    
      Is this an older tool processing a perf.data file generated by a more recent tool?
    
      If that is not the case, consider reporting to linux-kernel@vger.kernel.org.
    
      $
    
    After:
    
      $ perf record -o - stress -t 2 -c 2 | perf inject -b > /dev/null
      stress: info: [9027] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd
      stress: info: [9027] successful run completed in 2s
      [ perf record: Woken up 3 times to write data ]
      [ perf record: Captured and wrote 0.000 MB - ]
      no symbols found in /usr/bin/stress, maybe install a debug package?
      no symbols found in /usr/bin/stress, maybe install a debug package?
      $
    
    Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: He Kuang <hekuang@huawei.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Paul Turner <pjt@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Simon Que <sque@chromium.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/20170410201432.24807-3-davidcc@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80e1caf00d148ff8034861551d41faa6c537df8c
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Tue Apr 11 09:39:49 2017 +0100

    drivers/perf: arm_pmu: handle no platform_device
    
    
    [ Upstream commit 7654137071fa706e5c91f4f27bc2a5cd7e435a9b ]
    
    In armpmu_dispatch_irq() we look at arm_pmu::plat_device to acquire
    platdata, so that we can defer to platform-specific IRQ handling,
    required on some 32-bit parts. With the advent of ACPI we won't always
    have a platform_device, and so we must avoid trying to dereference
    fields from it.
    
    This patch fixes up armpmu_dispatch_irq() to avoid doing so, introducing
    a new armpmu_get_platdata() helper.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Tested-by: Jeremy Linton <jeremy.linton@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3efaebb3bbc1a5d702ed0a943b91cd14f78d0bab
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Wed Dec 14 13:48:04 2016 +0100

    iwlwifi: mvm: fix RX SKB header size and align it properly
    
    
    [ Upstream commit 5cddd05c9cbe420436799716d009bc0372ef8268 ]
    
    When receiving a frame, we currently pull in sizeof(*hdr) plus
    some extra (crypto/snap), which is too much, most headers aren't
    actually sizeof(*hdr) since that takes into account the 4-address
    format but doesn't take into account QoS. As a result, a typical
    frame will have 4 bytes of the payload in the SKB header already.
    
    Fix this by calculating the correct header length, and now that
    we have that, align the end of the SKB header to a multiple of 4
    so that the IP header will be aligned properly when pulled in.
    
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 02db6c7024e15904e508070455cdefd1f73a859d
Author: Jin Yao <yao.jin@linux.intel.com>
Date:   Fri Apr 7 20:08:52 2017 +0800

    perf evsel: Return exact sub event which failed with EPERM for wildcards
    
    
    [ Upstream commit 32ccb130f5325abc81b32b1a538390f46e4860f6 ]
    
    The kernel has a special check for a specific irq_vectors trace event.
    
    TRACE_EVENT_PERF_PERM(irq_work_exit,
            is_sampling_event(p_event) ? -EPERM : 0);
    
    The perf-record fails for this irq_vectors event when it is present,
    like when using a wildcard:
    
      root@skl:/tmp# perf record -a -e irq_vectors:* sleep 2
      Error:
      You may not have permission to collect system-wide stats.
    
      Consider tweaking /proc/sys/kernel/perf_event_paranoid,
      which controls use of the performance events system by
      unprivileged users (without CAP_SYS_ADMIN).
    
      The current value is 2:
    
        -1: Allow use of (almost) all events by all users
      >= 0: Disallow raw tracepoint access by users without CAP_IOC_LOCK
      >= 1: Disallow CPU event access by users without CAP_SYS_ADMIN
      >= 2: Disallow kernel profiling by users without CAP_SYS_ADMIN
    
      To make this setting permanent, edit /etc/sysctl.conf too, e.g.:
    
            kernel.perf_event_paranoid = -1
    
    This patch prints out the exact sub event that failed with EPERM for
    wildcards to help in understanding what went wrong when this event is
    present:
    
    After the patch:
    
      root@skl:/tmp# perf record -a -e irq_vectors:* sleep 2
      Error:
      No permission to enable irq_vectors:irq_work_exit event.
    
      You may not have permission to collect system-wide stats.
      ......
    
    Committer notes:
    
    So we have a lot of irq_vectors events:
    
      [root@jouet ~]# perf list irq_vectors:*
    
      List of pre-defined events (to be used in -e):
    
        irq_vectors:call_function_entry                    [Tracepoint event]
        irq_vectors:call_function_exit                     [Tracepoint event]
        irq_vectors:call_function_single_entry             [Tracepoint event]
        irq_vectors:call_function_single_exit              [Tracepoint event]
        irq_vectors:deferred_error_apic_entry              [Tracepoint event]
        irq_vectors:deferred_error_apic_exit               [Tracepoint event]
        irq_vectors:error_apic_entry                       [Tracepoint event]
        irq_vectors:error_apic_exit                        [Tracepoint event]
        irq_vectors:irq_work_entry                         [Tracepoint event]
        irq_vectors:irq_work_exit                          [Tracepoint event]
        irq_vectors:local_timer_entry                      [Tracepoint event]
        irq_vectors:local_timer_exit                       [Tracepoint event]
        irq_vectors:reschedule_entry                       [Tracepoint event]
        irq_vectors:reschedule_exit                        [Tracepoint event]
        irq_vectors:spurious_apic_entry                    [Tracepoint event]
        irq_vectors:spurious_apic_exit                     [Tracepoint event]
        irq_vectors:thermal_apic_entry                     [Tracepoint event]
        irq_vectors:thermal_apic_exit                      [Tracepoint event]
        irq_vectors:threshold_apic_entry                   [Tracepoint event]
        irq_vectors:threshold_apic_exit                    [Tracepoint event]
        irq_vectors:x86_platform_ipi_entry                 [Tracepoint event]
        irq_vectors:x86_platform_ipi_exit                  [Tracepoint event]
      #
    
    And some may be sampled:
    
      [root@jouet ~]# perf record -e irq_vectors:local* sleep 20s
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.020 MB perf.data (2 samples) ]
      [root@jouet ~]# perf report -D | egrep 'stats:|events:'
      Aggregated stats:
                 TOTAL events:        155
                  MMAP events:        144
                  COMM events:          2
                  EXIT events:          1
                SAMPLE events:          2
                 MMAP2 events:          4
        FINISHED_ROUND events:          1
             TIME_CONV events:          1
      irq_vectors:local_timer_entry stats:
                 TOTAL events:          1
                SAMPLE events:          1
      irq_vectors:local_timer_exit stats:
                 TOTAL events:          1
                SAMPLE events:          1
      [root@jouet ~]#
    
    But, as shown in the tracepoint definition at the start of this message,
    some, like "irq_vectors:irq_work_exit", may not be sampled, just counted,
    i.e. if we try to sample, as when using 'perf record', we get an error:
    
      [root@jouet ~]# perf record -e irq_vectors:irq_work_exit
      Error:
      You may not have permission to collect system-wide stats.
    
      Consider tweaking /proc/sys/kernel/perf_event_paranoid,
    <SNIP>
    
    The error message is misleading, this patch will help in pointing out
    what is the event causing such an error, but the error message needs
    improvement, i.e. we need to figure out a way to check if a tracepoint
    is counting only, like this one, when all we can do is to count it with
    'perf stat', at most printing the delta using interval printing, as in:
    
       [root@jouet ~]# perf stat -I 5000 -e irq_vectors:irq_work_*
      #           time             counts unit events
           5.000168871                  0      irq_vectors:irq_work_entry
           5.000168871                  0      irq_vectors:irq_work_exit
          10.000676730                  0      irq_vectors:irq_work_entry
          10.000676730                  0      irq_vectors:irq_work_exit
          15.001122415                  0      irq_vectors:irq_work_entry
          15.001122415                  0      irq_vectors:irq_work_exit
          20.001298051                  0      irq_vectors:irq_work_entry
          20.001298051                  0      irq_vectors:irq_work_exit
          25.001485020                  1      irq_vectors:irq_work_entry
          25.001485020                  1      irq_vectors:irq_work_exit
          30.001658706                  0      irq_vectors:irq_work_entry
          30.001658706                  0      irq_vectors:irq_work_exit
      ^C    32.045711878                  0      irq_vectors:irq_work_entry
          32.045711878                  0      irq_vectors:irq_work_exit
    
      [root@jouet ~]#
    
    But at least, when we use a wildcard, this patch helps a bit.
    
    Signed-off-by: Yao Jin <yao.jin@linux.intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/1491566932-503-1-git-send-email-yao.jin@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9586e4a882a054e1abd41f3eeb224ecb94e2632
Author: Yuyang Du <yuyang.du@intel.com>
Date:   Fri Mar 24 04:06:11 2017 +0800

    usb: gadget: dummy_hcd: Fix wrong power status bit clear/reset in dummy_hub_control()
    
    
    [ Upstream commit 9f20dfb44d03745d0d3cef2ffb3abf8d8024fa61 ]
    
    This fixes the commit: 1cd8fd2887e1 ("usb: gadget: dummy_hcd: add
    SuperSpeed support").
    
    In the case of ClearPortFeature and USB_PORT_FEAT_POWER, simply clear
    the right bit regardless of what the wValue is.
    
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Yuyang Du <yuyang.du@intel.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 813bd8c7e5a0a02c6f9bb332d5b44ec20db02ab0
Author: John Stultz <john.stultz@linaro.org>
Date:   Mon Feb 13 20:08:08 2017 -0800

    usb: dwc2: Make sure we disconnect the gadget state
    
    
    [ Upstream commit dad3f793f20fbb5c0c342f0f5a0bdf69a4d76089 ]
    
    I had seen some odd behavior with HiKey's usb-gadget interface
    that I finally seemed to have chased down. Basically every other
    time I plugged in the OTG port, the gadget interface would
    properly initialize. The other times, I'd get a big WARN_ON
    in dwc2_hsotg_init_fifo() about the fifo_map not being clear.
    
    Ends up if we don't disconnect the gadget state, the fifo-map
    doesn't get cleared properly, which causes WARN_ON messages and
    also results in the device not properly being setup as a gadget
    every other time the OTG port is connected.
    
    So this patch adds a call to dwc2_hsotg_disconnect() in the
    reset path so the state is properly cleared.
    
    With it, the gadget interface initializes properly on every
    plug in.
    
    Cc: Wei Xu <xuwei5@hisilicon.com>
    Cc: Guodong Xu <guodong.xu@linaro.org>
    Cc: Amit Pundir <amit.pundir@linaro.org>
    Cc: Rob Herring <robh+dt@kernel.org>
    Cc: John Youn <johnyoun@synopsys.com>
    Cc: Douglas Anderson <dianders@chromium.org>
    Cc: Chen Yu <chenyu56@huawei.com>
    Cc: Felipe Balbi <felipe.balbi@linux.intel.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: linux-usb@vger.kernel.org
    Acked-by: John Youn <johnyoun@synopsys.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 708def5dbf38803b4f6cc370c494f15f15a46aa4
Author: Michael Ellerman <mpe@ellerman.id.au>
Date:   Mon Apr 3 12:05:55 2017 +1000

    powerpc/nohash: Fix use of mmu_has_feature() in setup_initial_memory_limit()
    
    
    [ Upstream commit 4868e3508d1934d28961f940ed6b9f1e347ab52c ]
    
    setup_initial_memory_limit() is called from early_init_devtree(), which
    runs prior to feature patching. If the kernel is built with CONFIG_JUMP_LABEL=y
    and CONFIG_JUMP_LABEL_FEATURE_CHECKS=y then we will potentially get the
    wrong value.
    
    If we also have CONFIG_JUMP_LABEL_FEATURE_CHECK_DEBUG=y we get a warning
    and backtrace:
    
      Warning! mmu_has_feature() used prior to jump label init!
      CPU: 0 PID: 0 Comm: swapper Not tainted 4.11.0-rc4-gccN-next-20170331-g6af2434 #1
      Call Trace:
      [c000000000fc3d50] [c000000000a26c30] .dump_stack+0xa8/0xe8 (unreliable)
      [c000000000fc3de0] [c00000000002e6b8] .setup_initial_memory_limit+0xa4/0x104
      [c000000000fc3e60] [c000000000d5c23c] .early_init_devtree+0xd0/0x2f8
      [c000000000fc3f00] [c000000000d5d3b0] .early_setup+0x90/0x11c
      [c000000000fc3f90] [c000000000000520] start_here_multiplatform+0x68/0x80
    
    Fix it by using early_mmu_has_feature().
    
    Fixes: c12e6f24d413 ("powerpc: Add option to use jump label for mmu_has_feature()")
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f8fe98e0e096728a47bda7bf9a632b3e89970b5
Author: Zhilong Liu <zlliu@suse.com>
Date:   Mon Apr 10 14:15:55 2017 +0800

    md.c:didn't unlock the mddev before return EINVAL in array_size_store
    
    
    [ Upstream commit b670883bb9e55ba63a278d83e034faefc01ce2cf ]
    
    md.c: it needs to release the mddev lock before
    the array_size_store() returns.
    
    Fixes: ab5a98b132fd ("md-cluster: change array_sectors and update size are not supported")
    
    Signed-off-by: Zhilong Liu <zlliu@suse.com>
    Reviewed-by: Guoqing Jiang <gqjiang@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b42b97a5657f49c51f523f691e8a867708a38b80
Author: NeilBrown <neilb@suse.com>
Date:   Mon Apr 3 12:11:32 2017 +1000

    md/raid6: Fix anomily when recovering a single device in RAID6.
    
    
    [ Upstream commit 7471fb77ce4dc4cb81291189947fcdf621a97987 ]
    
    When recoverying a single missing/failed device in a RAID6,
    those stripes where the Q block is on the missing device are
    handled a bit differently.  In these cases it is easy to
    check that the P block is correct, so we do.  This results
    in the P block be destroy.  Consequently the P block needs
    to be read a second time in order to compute Q.  This causes
    lots of seeks and hurts performance.
    
    It shouldn't be necessary to re-read P as it can be computed
    from the DATA.  But we only compute blocks on missing
    devices, since c337869d9501 ("md: do not compute parity
    unless it is on a failed drive").
    
    So relax the change made in that commit to allow computing
    of the P block in a RAID6 which it is the only missing that
    block.
    
    This makes RAID6 recovery run much faster as the disk just
    "before" the recovering device is no longer seeking
    back-and-forth.
    
    Reported-by-tested-by: Brad Campbell <lists2009@fnarfbargle.com>
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Signed-off-by: NeilBrown <neilb@suse.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f9ab125d20efab348f5652d3cf80c8cc9bb0c960
Author: Vincent Stehlé <vincent.stehle@laposte.net>
Date:   Sun Apr 9 22:05:05 2017 +0200

    regulator: isl9305: fix array size
    
    
    [ Upstream commit 0c08aaf873174c95e674cf21ffcd041c589d2e5b ]
    
    ISL9305_MAX_REGULATOR is the last index used to access the init_data[]
    array, so we need to add one to this last index to obtain the necessary
    array size.
    
    This fixes the following smatch error:
    
      drivers/regulator/isl9305.c:160 isl9305_i2c_probe() error: buffer overflow 'pdata->init_data' 3 <= 3
    
    Fixes: dec38b5ce6a9edb4 ("regulator: isl9305: Add Intersil ISL9305/H driver")
    Signed-off-by: Vincent Stehlé <vincent.stehle@laposte.net>
    Cc: Mark Brown <broonie@kernel.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7928e10b468c465b597d738bc93e30aa4b34dff
Author: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Date:   Mon Feb 27 10:40:34 2017 -0300

    v4l: vsp1: Register pipe with output WPF
    
    
    [ Upstream commit 1531a208ed861e4bd287444f9466ffcf98383de2 ]
    
    The DRM object does not register the pipe with the WPF object. This is
    used internally throughout the driver as a means of accessing the pipe.
    As such this breaks operations which require access to the pipe from WPF
    interrupts.
    
    Register the pipe inside the WPF object after it has been declared as
    the output.
    
    Fixes: ff7e97c94d9f ("[media] v4l: vsp1: Store pipeline pointer in rwpf")
    
    Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 735b0f043d484a535a7a8f57157e32bade8ae1ef
Author: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
Date:   Fri Jan 6 10:15:28 2017 -0200

    v4l: vsp1: Prevent multiple streamon race commencing pipeline early
    
    
    [ Upstream commit 4461c84b52b4a952c657505ef7e4e06b016783df ]
    
    With multiple inputs through the BRU it is feasible for the streams to
    race each other at stream-on.
    
    Multiple VIDIOC_STREAMON calls racing each other could have process
    N-1 skipping over the pipeline setup section and then start the pipeline
    early, if videobuf2 has already enqueued buffers to the driver for
    process N but not called the .start_streaming() operation yet
    
    In the case of the video pipelines, this
    can present two serious issues.
    
     1) A null-dereference if the pipe->dl is committed at the same time as
        the vsp1_video_setup_pipeline() is processing
    
     2) A hardware hang, where a display list is committed without having
        called vsp1_video_setup_pipeline() first
    
    Repair this issue, by ensuring that only the stream which configures the
    pipeline is able to start it.
    
    Signed-off-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c86742fc38993fd42672c55cec0ae537279e3fbb
Author: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
Date:   Mon Mar 13 16:36:36 2017 +0100

    MIPS: r2-on-r6-emu: Clear BLTZALL and BGEZALL debugfs counters
    
    
    [ Upstream commit 411dac79cc2ed80f7e348ccc23eb4d8b0ba9f6d5 ]
    
    Add missing clearing of BLTZALL and BGEZALL emulation counters in
    function mipsr2_stats_clear_show().
    
    Previously, it was not possible to reset BLTZALL and BGEZALL
    emulation counters - their value remained the same even after
    explicit request via debugfs. As far as other related counters
    are concerned, they all seem to be properly cleared.
    
    This change affects debugfs operation only, core R2 emulation
    functionality is not affected.
    
    Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtec.com>
    Reviewed-by: Paul Burton <paul.burton@imgtec.com>
    Cc: james.hogan@imgtec.com
    Cc: leonid.yegoshin@imgtec.com
    Cc: douglas.leung@imgtec.com
    Cc: petar.jovanovic@imgtec.com
    Cc: miodrag.dinic@imgtec.com
    Cc: goran.ferenc@imgtec.com
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/15517/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 198142acc08546013a45f1aebcaf72a68561dcd8
Author: Leonid Yegoshin <Leonid.Yegoshin@imgtec.com>
Date:   Mon Mar 13 16:36:35 2017 +0100

    MIPS: r2-on-r6-emu: Fix BLEZL and BGTZL identification
    
    
    [ Upstream commit 5bba7aa4958e271c3ffceb70d47d3206524cf489 ]
    
    Fix the problem of inaccurate identification of instructions BLEZL and
    BGTZL in R2 emulation code by making sure all necessary encoding
    specifications are met.
    
    Previously, certain R6 instructions could be identified as BLEZL or
    BGTZL. R2 emulation routine didn't take into account that both BLEZL
    and BGTZL instructions require their rt field (bits 20 to 16 of
    instruction encoding) to be 0, and that, at same time, if the value in
    that field is not 0, the encoding may represent a legitimate MIPS R6
    instruction.
    
    This means that a problem could occur after emulation optimization,
    when emulation routine tried to pipeline emulation, picked up a next
    candidate, and subsequently misrecognized an R6 instruction as BLEZL
    or BGTZL.
    
    It should be said that for single pass strategy, the problem does not
    happen because CPU doesn't trap on branch-compacts which share opcode
    space with BLEZL/BGTZL (but have rt field != 0, of course).
    
    Signed-off-by: Leonid Yegoshin <leonid.yegoshin@imgtec.com>
    Signed-off-by: Miodrag Dinic <miodrag.dinic@imgtech.com>
    Signed-off-by: Aleksandar Markovic <aleksandar.markovic@imgtech.com>
    Reported-by: Douglas Leung <douglas.leung@imgtec.com>
    Reviewed-by: Paul Burton <paul.burton@imgtec.com>
    Cc: james.hogan@imgtec.com
    Cc: petar.jovanovic@imgtec.com
    Cc: goran.ferenc@imgtec.com
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/15456/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5b52c8c195c43981557474528fa0b9340b3176ca
Author: David Daney <david.daney@cavium.com>
Date:   Tue Mar 14 14:21:44 2017 -0700

    MIPS: BPF: Fix multiple problems in JIT skb access helpers.
    
    
    [ Upstream commit a81507c79f4ae9a0f9fb1054b59b62a090620dd9 ]
    
    o Socket data is unsigned, so use unsigned accessors instructions.
    
     o Fix path result pointer generation arithmetic.
    
     o Fix half-word byte swapping code for unsigned semantics.
    
    Signed-off-by: David Daney <david.daney@cavium.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Steven J. Hill <steven.hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: netdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/15747/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e50c396af21ca45061f8550563825c8b84556075
Author: David Daney <david.daney@cavium.com>
Date:   Tue Mar 14 14:21:43 2017 -0700

    MIPS: BPF: Quit clobbering callee saved registers in JIT code.
    
    
    [ Upstream commit 1ef0910cfd681f0bd0b81f8809935b2006e9cfb9 ]
    
    If bpf_needs_clear_a() returns true, only actually clear it if it is
    ever used.  If it is not used, we don't save and restore it, so the
    clearing has the nasty side effect of clobbering caller state.
    
    Also, don't emit stack pointer adjustment instructions if the
    adjustment amount is zero.
    
    Signed-off-by: David Daney <david.daney@cavium.com>
    Cc: James Hogan <james.hogan@imgtec.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Steven J. Hill <steven.hill@cavium.com>
    Cc: linux-mips@linux-mips.org
    Cc: netdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/15745/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 57a84887bc773d937bc87a558ffdf2f21f91c786
Author: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Date:   Tue Apr 4 11:18:51 2017 +0200

    serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off
    
    
    [ Upstream commit e61c38d85b7392e033ee03bca46f1d6006156175 ]
    
    If the UART is operated in DTE mode and UCR3_DCD or UCR3_RI are 1 (which
    is the reset default) and the opposite side pulls the respective line to
    its active level the irq triggers after it is requested in .probe.
    
    These irqs were already disabled in .startup but this might be too late.
    
    Also setup of the UFCR_DCEDTE bit (currently done in .set_termios) is
    done very late which is critical as it also controls direction of some
    pins.
    
    So setup UFCR_DCEDTE earlier (in .probe) and also disable the broken
    irqs in DTE mode there before requesting irqs.
    
    Acked-by: Lucas Stach <l.stach@pengutronix.de>
    Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d257fe12895703db6a7f0b47b2fe2a918512310
Author: Jayachandran C <jnair@caviumnetworks.com>
Date:   Sat Apr 1 19:42:09 2017 +0000

    tty: amba-pl011: Fix spurious TX interrupts
    
    
    [ Upstream commit 7d05587c9e0e4611650bb403812e2d492c178a9f ]
    
    On SMP systems, we see a lot of spurious TX interrupts when a
    program generates a steady stream of output to the pl011 UART.
    
    The problem can be easily seen when one CPU generates the output
    while another CPU handles the pl011 interrupts, and the rate of
    output is low enough not to fill the TX FIFO. The problem seems
    to be:
    
        -- CPU a --                        -- CPU b --
       (take port lock)
       pl011_start_tx
          pl011_start_tx_pio
             enable TXIM in REG_IMSC   ->  causes uart tx intr (pl011_int)
             pl011_tx_chars                pl011_int
                ...tx chars, all done...       (wait for port lock)
                pl011_stop_tx                   .
                   disable TXIM                 .
        (release port lock)            ->      (take port lock)
                                               check for TXIM, not enabled
                                               (release port lock)
                                               return IRQ_NONE
    
    Enabling the TXIM in pl011_start_tx_pio() causes the interrupt
    to be generated and delivered to CPU b, even though pl011_tx_chars()
    is able to complete the TX and then disable the tx interrupt.
    
    Fix this by enabling TXIM only after pl011_tx_chars, if it is needed.
    pl011_tx_chars will return a boolean indicating whether the TX
    interrupts have to be enabled.
    
    Debugged-by: Vijaya Kumar <Vijaya.Kumar@cavium.com>
    Signed-off-by: Jayachandran C <jnair@caviumnetworks.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ad8d41ba596be6c054e5956b145fa223a5bb8b37
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Mar 28 11:57:27 2017 +0200

    lkdtm: turn off kcov for lkdtm_rodata_do_nothing:
    
    
    [ Upstream commit 7064dc7fc13b2994d33ae540ffb7a3a05ac463bf ]
    
    I ran into a link error on ARM64 for lkdtm_rodata_do_nothing:
    
    drivers/misc/built-in.o: In function `lkdtm_rodata_do_nothing':
    :(.rodata+0x68c8): relocation truncated to fit: R_AARCH64_CALL26 against symbol `__sanitizer_cov_trace_pc' defined in .text section in kernel/built-in.o
    
    I did not analyze this further, but my theory is that we would need a trampoline
    to call __sanitizer_cov_trace_pc(), but the linker (correctly) only adds trampolines
    for callers in executable sections.
    
    Disabling KCOV for this one file avoids the build failure with no
    other practical downsides I can think of.
    
    The problem can only happen on kernels that contain both kcov and
    lkdtm, so if we want to backport this, it should be in the earliest
    version that has both (v4.8).
    
    Fixes: 5c9a8750a640 ("kernel: add kcov code coverage")
    Fixes: 9a49a528dcf3 ("lkdtm: add function for testing .rodata section")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Dmitry Vyukov <dvyukov@google.com>
    Acked-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b1a579996f63e2b6a88e8360953884bb6f965ced
Author: Mike Leach <mike.leach@linaro.org>
Date:   Mon Mar 27 11:09:33 2017 -0600

    coresight: Fixes coresight DT parse to get correct output port ID.
    
    
    [ Upstream commit eeedc5421dd3b51de73e6106405c5c77f920f281 ]
    
    Corrected to get the port numbering to allow programmable replicator driver
    to operate correctly.
    
    By convention, CoreSight devices number ports, not endpoints in
    the .dts files:-
    
    port {
         reg<N>
         endpoint {
         }
    }
    
    Existing code read endpoint number - always 0x0, rather than the correct
    port number.
    
    Signed-off-by: Mike Leach <mike.leach@linaro.org>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9a100b20d71c2a2a959418bebdb651379f99b6a
Author: Mitch Williams <mitch.a.williams@intel.com>
Date:   Tue Apr 4 12:40:16 2017 -0700

    i40e: only register client on iWarp-capable devices
    
    
    [ Upstream commit 004eb614c4d2fcc12a98714fd887a860582f203a ]
    
    The client interface is only intended for use on devices that support
    iWarp. Only register with the client if this is the case.
    
    This fixes a panic when loading i40iw on X710 devices.
    
    Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
    Reported-by: Stefan Assmann <sassmann@kpanic.de>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 543a1817e58005b5db834a5aa60a78d9095cad81
Author: Jeffy Chen <jeffy.chen@rock-chips.com>
Date:   Thu Apr 6 20:31:20 2017 +0800

    drm/rockchip: vop: Enable pm domain before vop_initial
    
    
    [ Upstream commit 5e570373c015b60a68828b1cd9d475cb33d3be4b ]
    
    We're trying to access vop registers here, so need to make sure
    the pm domain is on.
    
    Normally it should be enabled by the bootloader, but there's no
    guarantee of it. And if we wanna do unbind/bind, it would also
    cause the device to hang.
    
    And this patch also does these:
    1/ move vop_initial to the end of vop_bind for eaiser error handling.
    2/ correct the err_put_pm_runtime of vop_enable.
    
    Signed-off-by: Jeffy Chen <jeffy.chen@rock-chips.com>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: http://patchwork.freedesktop.org/patch/msgid/1491481885-13775-8-git-send-email-jeffy.chen@rock-chips.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3820303837014a00e40e69f9a648aed6cc78f92a
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Mar 29 15:02:11 2017 +1100

    drm/amdgpu: Fail fb creation from imported dma-bufs. (v2)
    
    
    [ Upstream commit 1769152ac64b0b07583f696b621624df2ca4c840 ]
    
    Any use of the framebuffer will migrate it to VRAM, which is not sensible for
    an imported dma-buf.
    
    v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg.
    
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
    CC: amd-gfx@lists.freedesktop.org
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d6140b4de8b7e41f5cc9fab01fd7a91f72108f9
Author: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
Date:   Wed Mar 29 15:00:54 2017 +1100

    drm/radeon: Fail fb creation from imported dma-bufs.
    
    
    [ Upstream commit a294043b2fbd8de69d161457ed0c7a4026bbfa5a ]
    
    Any use of the framebuffer will migrate it to VRAM, which is not sensible for
    an imported dma-buf.
    
    v2: Use DRM_DEBUG_KMS to prevent userspace accidentally spamming dmesg.
    
    Reviewed-by: Michel Dänzer <michel.daenzer@amd.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
    CC: amd-gfx@lists.freedesktop.org
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8c231ebced08cc005e164ad841cc6395596189e
Author: Liam Beguin <lbeguin@tycoint.com>
Date:   Fri Apr 7 17:03:24 2017 +0200

    video: ARM CLCD: fix dma allocation size
    
    
    [ Upstream commit 9a1c779e6b06855e41099caa6f15b3b584dfa88c ]
    
    This patch forces the frambuffer size to be aligned on kernel pages.
    
    During the board startup, the splash screed did appear;
    the "ts_test" program or our application were not able to start.
    
    The following error message was reported:
    error: failed to map framebuffer device to memory.
    LinuxFB: driver cannot connect
    
    The issue was discovered, on the LPC32xx platform, during the migration
    of the LCD definition from the board file to the device tree.
    
    Signed-off-by: Liam Beguin <lbeguin@tycoint.com>
    Signed-off-by: Sylvain Lemieux <slemieux@tycoint.com>
    Cc: Vladimir Zapolskiy <vz@mleia.com>
    Cc: Russell King <linux@armlinux.org.uk>
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit afd9ccdd1422d0c1b2e19afbcab7780026114f76
Author: Jim Mattson <jmattson@google.com>
Date:   Wed Apr 5 09:14:40 2017 -0700

    kvm: nVMX: Disallow userspace-injected exceptions in guest mode
    
    
    [ Upstream commit 28d06353881939703c34d82a1465136af176c620 ]
    
    The userspace exception injection API and code path are entirely
    unprepared for exceptions that might cause a VM-exit from L2 to L1, so
    the best course of action may be to simply disallow this for now.
    
    1. The API provides no mechanism for userspace to specify the new DR6
    bits for a #DB exception or the new CR2 value for a #PF
    exception. Presumably, userspace is expected to modify these registers
    directly with KVM_SET_SREGS before the next KVM_RUN ioctl. However, in
    the event that L1 intercepts the exception, these registers should not
    be changed. Instead, the new values should be provided in the
    exit_qualification field of vmcs12 (Intel SDM vol 3, section 27.1).
    
    2. In the case of a userspace-injected #DB, inject_pending_event()
    clears DR7.GD before calling vmx_queue_exception(). However, in the
    event that L1 intercepts the exception, this is too early, because
    DR7.GD should not be modified by a #DB that causes a VM-exit directly
    (Intel SDM vol 3, section 27.1).
    
    3. If the injected exception is a #PF, nested_vmx_check_exception()
    doesn't properly check whether or not L1 is interested in the
    associated error code (using the #PF error code mask and match fields
    from vmcs12). It may either return 0 when it should call
    nested_vmx_vmexit() or vice versa.
    
    4. nested_vmx_check_exception() assumes that it is dealing with a
    hardware-generated exception intercept from L2, with some of the
    relevant details (the VM-exit interruption-information and the exit
    qualification) live in vmcs02. For userspace-injected exceptions, this
    is not the case.
    
    5. prepare_vmcs12() assumes that when its exit_intr_info argument
    specifies valid information with a valid error code that it can VMREAD
    the VM-exit interruption error code from vmcs02. For
    userspace-injected exceptions, this is not the case.
    
    Signed-off-by: Jim Mattson <jmattson@google.com>
    Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0d7b1af256cedf0cd1af08c32c56279e15b601e
Author: Borislav Petkov <bp@suse.de>
Date:   Sun Mar 26 23:51:24 2017 +0200

    kvm/svm: Setup MCG_CAP on AMD properly
    
    
    [ Upstream commit 74f169090b6f36b867c9df0454366dd9af6f62d1 ]
    
    MCG_CAP[63:9] bits are reserved on AMD. However, on an AMD guest, this
    MSR returns 0x100010a. More specifically, bit 24 is set, which is simply
    wrong. That bit is MCG_SER_P and is present only on Intel. Thus, clean
    up the reserved bits in order not to confuse guests.
    
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: Joerg Roedel <joro@8bytes.org>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79a6866647f91c27af165aa1223d305b2c118e44
Author: Nate Watterson <nwatters@codeaurora.org>
Date:   Fri Apr 7 01:36:20 2017 -0400

    iommu/iova: Fix underflow bug in __alloc_and_insert_iova_range
    
    
    [ Upstream commit 5016bdb796b3726eec043ca0ce3be981f712c756 ]
    
    Normally, calling alloc_iova() using an iova_domain with insufficient
    pfns remaining between start_pfn and dma_limit will fail and return a
    NULL pointer. Unexpectedly, if such a "full" iova_domain contains an
    iova with pfn_lo == 0, the alloc_iova() call will instead succeed and
    return an iova containing invalid pfns.
    
    This is caused by an underflow bug in __alloc_and_insert_iova_range()
    that occurs after walking the "full" iova tree when the search ends
    at the iova with pfn_lo == 0 and limit_pfn is then adjusted to be just
    below that (-1). This (now huge) limit_pfn gives the impression that a
    vast amount of space is available between it and start_pfn and thus
    a new iova is allocated with the invalid pfn_hi value, 0xFFF.... .
    
    To rememdy this, a check is introduced to ensure that adjustments to
    limit_pfn will not underflow.
    
    This issue has been observed in the wild, and is easily reproduced with
    the following sample code.
    
            struct iova_domain *iovad = kzalloc(sizeof(*iovad), GFP_KERNEL);
            struct iova *rsvd_iova, *good_iova, *bad_iova;
            unsigned long limit_pfn = 3;
            unsigned long start_pfn = 1;
            unsigned long va_size = 2;
    
            init_iova_domain(iovad, SZ_4K, start_pfn, limit_pfn);
            rsvd_iova = reserve_iova(iovad, 0, 0);
            good_iova = alloc_iova(iovad, va_size, limit_pfn, true);
            bad_iova = alloc_iova(iovad, va_size, limit_pfn, true);
    
    Prior to the patch, this yielded:
            *rsvd_iova == {0, 0}   /* Expected */
            *good_iova == {2, 3}   /* Expected */
            *bad_iova  == {-2, -1} /* Oh no... */
    
    After the patch, bad_iova is NULL as expected since inadequate
    space remains between limit_pfn and start_pfn after allocating
    good_iova.
    
    Signed-off-by: Nate Watterson <nwatters@codeaurora.org>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d55a55bc8889f360a686e91fe740048cb7733da6
Author: John Johansen <john.johansen@canonical.com>
Date:   Thu Apr 6 06:55:24 2017 -0700

    apparmor: Make path_max parameter readonly
    
    
    [ Upstream commit 622f6e3265707ebf02ba776ac6e68003bcc31213 ]
    
    The path_max parameter determines the max size of buffers allocated
    but it should  not be setable at run time. If can be used to cause an
    oops
    
    root@ubuntu:~# echo 16777216 > /sys/module/apparmor/parameters/path_max
    root@ubuntu:~# cat /sys/module/apparmor/parameters/path_max
    Killed
    
    [  122.141911] BUG: unable to handle kernel paging request at ffff880080945fff
    [  122.143497] IP: [<ffffffff81228844>] d_absolute_path+0x44/0xa0
    [  122.144742] PGD 220c067 PUD 0
    [  122.145453] Oops: 0002 [#1] SMP
    [  122.146204] Modules linked in: vmw_vsock_vmci_transport vsock ppdev vmw_balloon snd_ens1371 btusb snd_ac97_codec gameport snd_rawmidi btrtl snd_seq_device ac97_bus btbcm btintel snd_pcm input_leds bluetooth snd_timer snd joydev soundcore serio_raw coretemp shpchp nfit parport_pc i2c_piix4 8250_fintek vmw_vmci parport mac_hid ib_iser rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear hid_generic usbhid hid crct10dif_pclmul crc32_pclmul ghash_clmulni_intel aesni_intel aes_x86_64 lrw gf128mul glue_helper ablk_helper cryptd vmwgfx psmouse mptspi ttm mptscsih drm_kms_helper mptbase syscopyarea scsi_transport_spi sysfillrect
    [  122.163365]  ahci sysimgblt e1000 fb_sys_fops libahci drm pata_acpi fjes
    [  122.164747] CPU: 3 PID: 1501 Comm: bash Not tainted 4.4.0-59-generic #80-Ubuntu
    [  122.166250] Hardware name: VMware, Inc. VMware Virtual Platform/440BX Desktop Reference Platform, BIOS 6.00 07/02/2015
    [  122.168611] task: ffff88003496aa00 ti: ffff880076474000 task.ti: ffff880076474000
    [  122.170018] RIP: 0010:[<ffffffff81228844>]  [<ffffffff81228844>] d_absolute_path+0x44/0xa0
    [  122.171525] RSP: 0018:ffff880076477b90  EFLAGS: 00010206
    [  122.172462] RAX: ffff880080945fff RBX: 0000000000000000 RCX: 0000000001000000
    [  122.173709] RDX: 0000000000ffffff RSI: ffff880080946000 RDI: ffff8800348a1010
    [  122.174978] RBP: ffff880076477bb8 R08: ffff880076477c80 R09: 0000000000000000
    [  122.176227] R10: 00007ffffffff000 R11: ffff88007f946000 R12: ffff88007f946000
    [  122.177496] R13: ffff880076477c80 R14: ffff8800348a1010 R15: ffff8800348a2400
    [  122.178745] FS:  00007fd459eb4700(0000) GS:ffff88007b6c0000(0000) knlGS:0000000000000000
    [  122.180176] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  122.181186] CR2: ffff880080945fff CR3: 0000000073422000 CR4: 00000000001406e0
    [  122.182469] Stack:
    [  122.182843]  00ffffff00000001 ffff880080946000 0000000000000000 0000000000000000
    [  122.184409]  00000000570f789c ffff880076477c30 ffffffff81385671 ffff88007a2e7a58
    [  122.185810]  0000000000000000 ffff880076477c88 01000000008a1000 0000000000000000
    [  122.187231] Call Trace:
    [  122.187680]  [<ffffffff81385671>] aa_path_name+0x81/0x370
    [  122.188637]  [<ffffffff813875dd>] profile_transition+0xbd/0xb80
    [  122.190181]  [<ffffffff811af9bc>] ? zone_statistics+0x7c/0xa0
    [  122.191674]  [<ffffffff81389b20>] apparmor_bprm_set_creds+0x9b0/0xac0
    [  122.193288]  [<ffffffff812e1971>] ? ext4_xattr_get+0x81/0x220
    [  122.194793]  [<ffffffff812e800c>] ? ext4_xattr_security_get+0x1c/0x30
    [  122.196392]  [<ffffffff813449b9>] ? get_vfs_caps_from_disk+0x69/0x110
    [  122.198004]  [<ffffffff81232d4f>] ? mnt_may_suid+0x3f/0x50
    [  122.199737]  [<ffffffff81344b03>] ? cap_bprm_set_creds+0xa3/0x600
    [  122.201377]  [<ffffffff81346e53>] security_bprm_set_creds+0x33/0x50
    [  122.203024]  [<ffffffff81214ce5>] prepare_binprm+0x85/0x190
    [  122.204515]  [<ffffffff81216545>] do_execveat_common.isra.33+0x485/0x710
    [  122.206200]  [<ffffffff81216a6a>] SyS_execve+0x3a/0x50
    [  122.207615]  [<ffffffff81838795>] stub_execve+0x5/0x5
    [  122.208978]  [<ffffffff818384f2>] ? entry_SYSCALL_64_fastpath+0x16/0x71
    [  122.210615] Code: f8 31 c0 48 63 c2 83 ea 01 48 c7 45 e8 00 00 00 00 48 01 c6 85 d2 48 c7 45 f0 00 00 00 00 48 89 75 e0 89 55 dc 78 0c 48 8d 46 ff <c6> 46 ff 00 48 89 45 e0 48 8d 55 e0 48 8d 4d dc 48 8d 75 e8 e8
    [  122.217320] RIP  [<ffffffff81228844>] d_absolute_path+0x44/0xa0
    [  122.218860]  RSP <ffff880076477b90>
    [  122.219919] CR2: ffff880080945fff
    [  122.220936] ---[ end trace 506cdbd85eb6c55e ]---
    
    Reported-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Signed-off-by: John Johansen <john.johansen@canonical.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b07b26448103a94bd6353a38af0e039488201c23
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Wed Apr 5 21:20:11 2017 +0300

    qed: Correct MSI-x for storage
    
    
    [ Upstream commit 2f78227874754b1e10cd348fd6e7693b0dabb3f6 ]
    
    When qedr is enabled, qed would try dividing the msi-x vectors between
    L2 and RoCE, starting with L2 and providing it with sufficient vectors
    for its queues.
    
    Problem is qed would also do that for storage partitions, and as those
    don't need queues it would lead qed to award those partitions with 0
    msi-x vectors, causing them to believe theye're using INTa and
    preventing them from operating.
    
    Fixes: 51ff17251c9c ("qed: Add support for RoCE hw init")
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cd70b3f8ce3ee9ff06bebbbdeb87e38f26ec1aa
Author: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
Date:   Wed Apr 5 12:18:19 2017 -0300

    scsi: ses: don't get power status of SES device slot on probe
    
    
    [ Upstream commit 75106523f39751390b5789b36ee1d213b3af1945 ]
    
    The commit 08024885a2a3 ("ses: Add power_status to SES device slot")
    introduced the 'power_status' attribute to enclosure components and
    the associated callbacks.
    
    There are 2 callbacks available to get the power status of a device:
    1) ses_get_power_status() for 'struct enclosure_component_callbacks'
    2) get_component_power_status() for the sysfs device attribute
    (these are available for kernel-space and user-space, respectively.)
    
    However, despite both methods being available to get power status
    on demand, that commit also introduced a call to get power status
    in ses_enclosure_data_process().
    
    This dramatically increased the total probe time for SCSI devices
    on larger configurations, because ses_enclosure_data_process() is
    called several times during the SCSI devices probe and loops over
    the component devices (but that is another problem, another patch).
    
    That results in a tremendous continuous hammering of SCSI Receive
    Diagnostics commands to the enclosure-services device, which does
    delay the total probe time for the SCSI devices __significantly__:
    
      Originally, ~34 minutes on a system attached to ~170 disks:
    
        [ 9214.490703] mpt3sas version 13.100.00.00 loaded
        ...
        [11256.580231] scsi 17:0:177:0: qdepth(16), tagged(1), simple(0),
                       ordered(0), scsi_level(6), cmd_que(1)
    
      With this patch, it decreased to ~2.5 minutes -- a 13.6x faster
    
        [ 1002.992533] mpt3sas version 13.100.00.00 loaded
        ...
        [ 1151.978831] scsi 11:0:177:0: qdepth(16), tagged(1), simple(0),
                       ordered(0), scsi_level(6), cmd_que(1)
    
    Back to the commit discussion.. on the ses_get_power_status() call
    introduced in ses_enclosure_data_process(): impact of removing it.
    
    That may possibly be in place to initialize the power status value
    on device probe.  However, those 2 functions available to retrieve
    that value _do_ automatically refresh/update it.  So the potential
    benefit would be a direct access of the 'power_status' field which
    does not use the callbacks...
    
    But the only reader of 'struct enclosure_component::power_status'
    is the get_component_power_status() callback for sysfs attribute,
    and it _does_ check for and call the .get_power_status callback,
    (which indeed is defined and implemented by that commit), so the
    power status value is, again, automatically updated.
    
    So, the remaining potential for a direct/non-callback access to
    the power_status attribute would be out-of-tree modules -- well,
    for those, if they are for whatever reason interested in values
    that are set during device probe and not up-to-date by the time
    they need it.. well, that would be curious.
    
    Well, to handle that more properly, set the initial power state
    value to '-1' (i.e., uninitialized) instead of '1' (power 'on'),
    and check for it in that callback which may do an direct access
    to the field value _if_ a callback function is not defined.
    
    Signed-off-by: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
    Fixes: 08024885a2a3 ("ses: Add power_status to SES device slot")
    Reviewed-by: Dan Williams <dan.j.williams@intel.com>
    Reviewed-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4894a600657ccf2d58ebf9af37a69b0a756f773
Author: Thor Thayer <thor.thayer@linux.intel.com>
Date:   Wed Apr 5 13:01:02 2017 -0500

    EDAC, altera: Fix peripheral warnings for Cyclone5
    
    
    [ Upstream commit 25b223ddfe2a557307c05fe673e09d94ae950877 ]
    
    The peripherals' RAS functionality only exist on the Arria10 SoCFPGA.
    The Cyclone5 initialization generates EDAC warnings when the peripherals
    aren't found in the device tree. Fix by checking for Arria10 in the init
    functions.
    
    Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Link: http://lkml.kernel.org/r/1491415262-5018-1-git-send-email-thor.thayer@linux.intel.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f7b46d22802e7adefd2c4f3d13773cb8cb35b92
Author: Phil Turnbull <phil.turnbull@oracle.com>
Date:   Wed Nov 23 13:33:58 2016 -0500

    fm10k: correctly check if interface is removed
    
    
    [ Upstream commit 540fca35e38d15777b310f450f63f056e63039f5 ]
    
    FM10K_REMOVED expects a hardware address, not a 'struct fm10k_hw'.
    
    Fixes: 5cb8db4a4cbc ("fm10k: Add support for VF")
    Signed-off-by: Phil Turnbull <phil.turnbull@oracle.com>
    Tested-by: Krishneil Singh <krishneil.k.singh@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6818b4da096857cea8d9143cd3e0eeeb602ad862
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sun Apr 2 23:48:25 2017 +0900

    ALSA: firewire-digi00x: handle all MIDI messages on streaming packets
    
    
    [ Upstream commit 8820a4cf0cb4cd5c6540a9a18b2cedbdfd5a6891 ]
    
    At a commit 9dc5d31cdceb ("ALSA: firewire-digi00x: handle MIDI messages in
    isochronous packets"), a functionality to handle MIDI messages on
    isochronous packet was supported. But this includes some of my
    misunderstanding. This commit is to fix them.
    
    For digi00x series, first data channel of data blocks in rx/tx packet
    includes MIDI messages. The data channel has 0x80 in 8 bit of its MSB,
    however it's against IEC 61883-6. Unique data format is applied:
     - Upper 4 bits of LSB represent port number.
      - 0x0: port 1.
      - 0x2: port 2.
      - 0xe: console port.
     - Lower 4 bits of LSB represent the number of included MIDI message bytes;
       0x0/0x1/0x2.
     - Two bytes of middle of this data channel have MIDI bytes.
    
    Especially, MIDI messages from/to console surface are also transferred by
    isochronous packets, as well as physical MIDI ports.
    
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea5ac4090686a015d8ae0f461c30cd079dab2c21
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Sun Apr 2 23:48:24 2017 +0900

    ALSA: firewire-digi00x: add support for console models of Digi00x series
    
    
    [ Upstream commit 13e005f9f933a35b5e55c9d36f151efe2a8383ec ]
    
    Digi00x series includes two types of unit; rack and console. As long as
    reading information on config rom of Digi 002 console, 'MODEL_ID' field
    has a different value from the one on Digi 002 rack.
    
    We've already got a test report from users with Digi 003 rack. We can
    assume that console type and rack type has different value in the field.
    
    This commit adds a device entry for console type. For following commits,
    this commit also adds a member to 'struct snd_digi00x' to identify console
    type.
    
    $ cd linux-firewire-utils/src
    $ python2 ./crpp < /sys/bus/firewire/devices/fw1/config_rom
                   ROM header and bus information block
                   -----------------------------------------------------------------
    400  0404f9d0  bus_info_length 4, crc_length 4, crc 63952
    404  31333934  bus_name "1394"
    408  60647002  irmc 0, cmc 1, isc 1, bmc 0, cyc_clk_acc 100, max_rec 7 (256)
    40c  00a07e00  company_id 00a07e     |
    410  00a30000  device_id 0000a30000  | EUI-64 00a07e0000a30000
    
                   root directory
                   -----------------------------------------------------------------
    414  00058a39  directory_length 5, crc 35385
    418  0c0043a0  node capabilities
    41c  04000001  hardware version
    420  0300a07e  vendor
    424  81000007  --> descriptor leaf at 440
    428  d1000001  --> unit directory at 42c
    
                   unit directory at 42c
                   -----------------------------------------------------------------
    42c  00046674  directory_length 4, crc 26228
    430  120000a3  specifier id
    434  13000001  version
    438  17000001  model
    43c  81000007  --> descriptor leaf at 458
    
                   descriptor leaf at 440
                   -----------------------------------------------------------------
    440  00055913  leaf_length 5, crc 22803
    444  000050f2  descriptor_type 00, specifier_ID 50f2
    448  80000000
    44c  44696769
    450  64657369
    454  676e0000
    
                   descriptor leaf at 458
                   -----------------------------------------------------------------
    458  0004a6fd  leaf_length 4, crc 42749
    45c  00000000  textual descriptor
    460  00000000  minimal ASCII
    464  44696769  "Digi"
    468  20303032  " 002"
    
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f530c1f0025213f9942297e7ddc6f1b838b7deba
Author: Easwar Hariharan <easwar.hariharan@intel.com>
Date:   Mon Mar 20 17:25:42 2017 -0700

    IB/hfi1: Check for QSFP presence before attempting reads
    
    
    [ Upstream commit fb897ad315643e5dc1092a115b3cec914b66df9d ]
    
    Attempting to read the status of a QSFP cable creates noise in the logs
    and misses out on setting an appropriate Offline/Disabled Reason if the
    cable is not plugged in. Check for this prior to attempting the read and
    attendant retries.
    
    Fixes: 673b975f1fba ("IB/hfi1: Add QSFP sanity pre-check")
    Reviewed-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Easwar Hariharan <easwar.hariharan@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6073a164923809f024963bf1177e3780bc669ae7
Author: Javier Martinez Canillas <javier@osg.samsung.com>
Date:   Tue Apr 4 15:26:30 2017 -0400

    ASoC: rt5677: Add OF device ID table
    
    
    [ Upstream commit 7b87463edf3e2c16d72eeea3d1cf3c12bb5487c6 ]
    
    The driver doesn't have a struct of_device_id table but supported devices
    are registered via Device Trees. This is working on the assumption that a
    I2C device registered via OF will always match a legacy I2C device ID and
    that the MODALIAS reported will always be of the form i2c:<device>.
    
    But this could change in the future so the correct approach is to have an
    OF device ID table if the devices are registered via OF.
    
    Before this patch:
    
    $ modinfo sound/soc/codecs/snd-soc-rt5677.ko | grep alias
    alias:          i2c:RT5677CE:00
    alias:          i2c:rt5676
    alias:          i2c:rt5677
    
    After this patch:
    
    $ modinfo sound/soc/codecs/snd-soc-rt5677.ko | grep alias
    alias:          of:N*T*Crealtek,rt5677C*
    alias:          of:N*T*Crealtek,rt5677
    alias:          i2c:RT5677CE:00
    alias:          i2c:rt5676
    alias:          i2c:rt5677
    
    Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 304c1e93c0206bd62ba828824ec0e09b79a2e05f
Author: Jan Kara <jack@suse.cz>
Date:   Wed Apr 5 14:09:48 2017 +0200

    reiserfs: Make cancel_old_flush() reliable
    
    
    [ Upstream commit 71b0576bdb862e964a82c73327cdd1a249c53e67 ]
    
    Currently canceling of delayed work that flushes old data using
    cancel_old_flush() does not prevent work from being requeued. Thus
    in theory new work can be queued after cancel_old_flush() from
    reiserfs_freeze() has run. This will become larger problem once
    flush_old_commits() can requeue the work itself.
    
    Fix the problem by recording in sbi->work_queue that flushing work is
    canceled and should not be requeued.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7322cf6294aa867a86926b7441105e938c6f26b3
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Apr 3 11:55:19 2017 +0200

    ARM: dts: koelsch: Correct clock frequency of X2 DU clock input
    
    
    [ Upstream commit ebf06af55c7594ed1fc18469a5cddf911c40e687 ]
    
    The X2 crystal oscillator on the Koelsch development board provides a
    74.25 MHz clock, not a 148.5 MHz clock.
    
    Fixes: cd21cb46e14aae3a ("ARM: shmobile: koelsch: Add DU external pixel clocks to DT")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Tested-by: Niklas Söderlund <niklas.soderlund+renesas@ragnatech.se>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a24c058d89cb18c861c2dcad92f808bb40fdd03e
Author: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
Date:   Fri Feb 10 13:30:35 2017 +0200

    drm: rcar-du: Handle event when disabling CRTCs
    
    
    [ Upstream commit 6dd47cfd03a058d08b8caffb06194aa0eb109cf1 ]
    
    The driver currently handles vblank events only when updating planes on
    a CRTC. The atomic update API however allows requesting an event when
    disabling a CRTC. This currently leads to event objects being leaked in
    the kernel and to events not being sent out. Fix it.
    
    Signed-off-by: Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b5fa6d91433740c1a4e44e860e088fa10dbcca45
Author: Petr Mladek <pmladek@suse.com>
Date:   Fri Mar 24 17:14:05 2017 +0100

    printk: Correctly handle preemption in console_unlock()
    
    
    [ Upstream commit 257ab443118bffc7fdcef38f49cf59be68a3e362 ]
    
    Some console drivers code calls console_conditional_schedule()
    that looks at @console_may_schedule. The value must be cleared
    when the drivers are called from console_unlock() with
    interrupts disabled. But rescheduling is fine when the same
    code is called, for example, from tty operations where the
    console semaphore is taken via console_lock().
    
    This is why @console_may_schedule is cleared before calling console
    drivers. The original value is stored to decide if we could sleep
    between lines.
    
    Now, @console_may_schedule is not cleared when we call
    console_trylock() and jump back to the "again" goto label.
    This has become a problem, since the commit 6b97a20d3a7909daa066
    ("printk: set may_schedule for some of console_trylock() callers").
    @console_may_schedule might get enabled now.
    
    There is also the opposite problem. console_lock() can be called
    only from preemptive context. It can always enable scheduling in
    the console code. But console_trylock() is not able to detect it
    when CONFIG_PREEMPT_COUNT is disabled. Therefore we should use the
    original @console_may_schedule value after re-acquiring
    the console semaphore in console_unlock().
    
    This patch solves both problems by moving the "again" goto label.
    
    Alternative solution was to clear and restore the value around
    call_console_drivers(). Then console_conditional_schedule() could
    be used also inside console_unlock(). But there was a potential race
    with console_flush_on_panic() as reported by Sergey Senozhatsky.
    That function should be called only where there is only one CPU
    and with interrupts disabled. But better be on the safe side
    because stopping CPUs might fail.
    
    Fixes: 6b97a20d3a7909 ("printk: set may_schedule for some of console_trylock() callers")
    Link: http://lkml.kernel.org/r/1490372045-22288-1-git-send-email-pmladek@suse.com
    Suggested-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Jiri Slaby <jslaby@suse.cz>
    Cc: linux-fbdev@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Signed-off-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0e6661b400404028aed71e80b785a3a42b1d85e1
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Thu Mar 23 15:56:13 2017 +0100

    rtmutex: Fix PI chain order integrity
    
    
    [ Upstream commit e0aad5b44ff5d28ac1d6ae70cdf84ca228e889dc ]
    
    rt_mutex_waiter::prio is a copy of task_struct::prio which is updated
    during the PI chain walk, such that the PI chain order isn't messed up
    by (asynchronous) task state updates.
    
    Currently rt_mutex_waiter_less() uses task state for deadline tasks;
    this is broken, since the task state can, as said above, change
    asynchronously, causing the RB tree order to change without actual
    tree update -> FAIL.
    
    Fix this by also copying the deadline into the rt_mutex_waiter state
    and updating it along with its prio field.
    
    Ideally we would also force PI chain updates whenever DL tasks update
    their deadline parameter, but for first approximation this is less
    broken than it was.
    
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: juri.lelli@arm.com
    Cc: bigeasy@linutronix.de
    Cc: xlpang@redhat.com
    Cc: rostedt@goodmis.org
    Cc: mathieu.desnoyers@efficios.com
    Cc: jdesfossez@efficios.com
    Cc: bristot@redhat.com
    Link: http://lkml.kernel.org/r/20170323150216.403992539@infradead.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d45d7c94f8acb226a626840b378d2a5bba3758c4
Author: Michal Kalderon <Michal.Kalderon@cavium.com>
Date:   Mon Apr 3 12:21:10 2017 +0300

    qed: Fix TM block ILT allocation
    
    
    [ Upstream commit 44531ba45dbf3c23cc7ae0934ec9b33ef340ac56 ]
    
    When configuring the HW timers block we should set the number of CIDs
    up until the last CID that require timers, instead of only those CIDs
    whose protocol needs timers support.
    
    Today, the protocols that require HW timers' support have their CIDs
    before any other protocol, but that would change in future [when we
    add iWARP support].
    
    Signed-off-by: Michal Kalderon <Michal.Kalderon@cavium.com>
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e09b864df341b5c9321593514f173d8a049952b
Author: Andrew Lunn <andrew@lunn.ch>
Date:   Sun Apr 2 20:20:47 2017 +0200

    net/faraday: Add missing include of of.h
    
    
    [ Upstream commit d39004ab136ebb6949a7dda9d24376f3d6209295 ]
    
    Breaking the include loop netdevice.h, dsa.h, devlink.h broke this
    driver, it depends on includes brought in by these headers. Adding
    linux/of.h fixes it.
    
    Fixes: ed0e39e97d34 ("net: break include loop netdevice.h, dsa.h, devlink.h")
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c1e8b472b48421e8a698bd63cda283960ef5279
Author: lipeng <lipeng321@huawei.com>
Date:   Sat Apr 1 12:03:39 2017 +0100

    net: hns: Correct HNS RSS key set function
    
    
    [ Upstream commit 64ec10dc2ab8ef5bc6e76b1d4bc8203c08a6da1e ]
    
    This patch fixes below ethtool configuration error:
    
    localhost:~ # ethtool -X eth0 hkey XX:XX:XX...
    Cannot set Rx flow hash configuration: Operation not supported
    
    Signed-off-by: lipeng <lipeng321@huawei.com>
    Reviewed-by: Yisen Zhuang <yisen.zhuang@huawei.com>
    Signed-off-by: Salil Mehta <salil.mehta@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a61cd7e00d99f1c2bc6d6932d5e46a48419e233a
Author: Anton Blanchard <anton@samba.org>
Date:   Mon Apr 3 16:41:02 2017 +1000

    powerpc: Avoid taking a data miss on every userspace instruction miss
    
    
    [ Upstream commit a7a9dcd882a67b68568868b988289fce5ffd8419 ]
    
    Early on in do_page_fault() we call store_updates_sp(), regardless of
    the type of exception. For an instruction miss this doesn't make
    sense, because we only use this information to detect if a data miss
    is the result of a stack expansion instruction or not.
    
    Worse still, it results in a data miss within every userspace
    instruction miss handler, because we try and load the very instruction
    we are about to install a pte for!
    
    A simple exec microbenchmark runs 6% faster on POWER8 with this fix:
    
     #include <stdlib.h>
     #include <stdio.h>
     #include <unistd.h>
    
    int main(int argc, char *argv[])
    {
            unsigned long left = atol(argv[1]);
            char leftstr[16];
    
            if (left-- == 0)
                    return 0;
    
            sprintf(leftstr, "%ld", left);
            execlp(argv[0], argv[0], leftstr, NULL);
            perror("exec failed\n");
    
            return 0;
    }
    
    Pass the number of iterations on the command line (eg 10000) and time
    how long it takes to execute.
    
    Signed-off-by: Anton Blanchard <anton@samba.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8131f4ddbdee477da77683cdac7e28684dfb423d
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Apr 3 11:45:43 2017 +0200

    ARM: dts: r8a7793: Correct parent of SSI[0-9] clocks
    
    
    [ Upstream commit 1cd9028027c7a7c10b774df698c3cfafec6aa67d ]
    
    The SSI-ALL gate clock is located in between the P clock and the
    individual SSI[0-9] clocks, hence the former should be listed as their
    parent.
    
    Fixes: 072d326542e49187 ("ARM: dts: r8a7793: add MSTP10 clocks to device tree")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc65685aa3a488d1944c7870ef8838dd86867e3d
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Apr 3 11:45:42 2017 +0200

    ARM: dts: r8a7791: Correct parent of SSI[0-9] clocks
    
    
    [ Upstream commit 16fe68dcab5702a024d85229ff7e98979cb701a5 ]
    
    The SSI-ALL gate clock is located in between the P clock and the
    individual SSI[0-9] clocks, hence the former should be listed as their
    parent.
    
    Fixes: ee9141522dcf13f8 ("ARM: shmobile: r8a7791: add MSTP10 support on DTSI")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26cd77067fb3839393807760330177a7f1b90344
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Apr 3 11:45:41 2017 +0200

    ARM: dts: r8a7790: Correct parent of SSI[0-9] clocks
    
    
    [ Upstream commit d13d4e063d4a08eb1686e890e9183dde709871bf ]
    
    The SSI-ALL gate clock is located in between the P clock and the
    individual SSI[0-9] clocks, hence the former should be listed as their
    parent.
    
    Fixes: bcde372254386872 ("ARM: shmobile: r8a7790: add MSTP10 support on DTSI")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75280515507bb41a2d7a52971f3a60070060b364
Author: Chris Brandt <chris.brandt@renesas.com>
Date:   Thu Mar 30 14:16:09 2017 -0700

    ARM: dts: r7s72100: fix ethernet clock parent
    
    
    [ Upstream commit 91a7c50cb4fabfba218549dfa84356069918bfbf ]
    
    Technically, the Ethernet block is run off the 133MHz Bus (B) clock, not
    the 33MHz Peripheral 0 (P0) clock.
    
    Fixes: 969244f9c720 ("ARM: dts: r7s72100: add ethernet clock to device tree")
    Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 14c63f375b9a94cb39f9b8a669a9d6e530e6bfa9
Author: Andrey Rusalin <arusalin@dev.rtsoft.ru>
Date:   Wed Dec 28 20:10:57 2016 +0300

    NFC: pn533: change order of free_irq and dev unregistration
    
    
    [ Upstream commit 068a496c4525c638ffab56449d905b88ef97fe32 ]
    
    Change order of free_irq and dev unregistration.
    It fixes situation when device already unregistered and
    an interrupt happens and nobody can handle it.
    
    Signed-off-by: Andrey Rusalin <arusalin@dev.rtsoft.ru>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f2c9f6c575969c7d5336cae0c73f7f45ffbfd73
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Wed Mar 8 08:22:37 2017 +0300

    NFC: nfcmrvl: double free on error path
    
    
    [ Upstream commit ca42fb9e52d155547e6cf18cf26bce3e1a6af4ea ]
    
    The nci_spi_send() function calls kfree_skb(skb) on both error and
    success so this extra kfree_skb() is a double free.
    
    Fixes: caf6e49bf6d0 ("NFC: nfcmrvl: add spi driver")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c95acb7bbefb4267c8df48b963d977262268de0a
Author: Tobias Klauser <tklauser@distanz.ch>
Date:   Wed Oct 26 11:00:12 2016 +0200

    NFC: nfcmrvl: Include unaligned.h instead of access_ok.h
    
    
    [ Upstream commit d916d923724d59cde99ee588f15eec59dd863bbd ]
    
    Including linux/unaligned/access_ok.h causes the allmodconfig build on
    ia64 (and maybe others) to fail with the following warnings:
    
    include/linux/unaligned/access_ok.h:7:19: error: redefinition of 'get_unaligned_le16'
    include/linux/unaligned/access_ok.h:12:19: error: redefinition of 'get_unaligned_le32'
    include/linux/unaligned/access_ok.h:17:19: error: redefinition of 'get_unaligned_le64'
    include/linux/unaligned/access_ok.h:22:19: error: redefinition of 'get_unaligned_be16'
    include/linux/unaligned/access_ok.h:27:19: error: redefinition of 'get_unaligned_be32'
    include/linux/unaligned/access_ok.h:32:19: error: redefinition of 'get_unaligned_be64'
    include/linux/unaligned/access_ok.h:37:20: error: redefinition of 'put_unaligned_le16'
    include/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_le32'
    include/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_le64'
    include/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be16'
    include/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be32'
    include/linux/unaligned/access_ok.h:42:20: error: redefinition of 'put_unaligned_be64'
    
    Fix these by including asm/unaligned.h instead and leave it up to the
    architecture to decide how to implement unaligned accesses.
    
    Fixes: 3194c6870158 ("NFC: nfcmrvl: add firmware download support")
    Reported-by: kbuild test robot <fengguang.wu@intel.com>
    Link: https://lkml.org/lkml/2016/10/22/247
    Cc: Vincent Cuissard <cuissard@marvell.com>
    Signed-off-by: Tobias Klauser <tklauser@distanz.ch>
    Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 441f5af65244dd6585f1c364f1f4fbd00aacb64b
Author: Felix Manlunas <felix.manlunas@cavium.com>
Date:   Wed Mar 29 17:56:43 2017 -0700

    vxlan: vxlan dev should inherit lowerdev's gso_max_size
    
    
    [ Upstream commit d6acfeb17d030bb3907e77c048b0e7783ad8e5a9 ]
    
    vxlan dev currently ignores lowerdev's gso_max_size, which adversely
    affects TSO performance of liquidio if it's the lowerdev.  Egress TCP
    packets' skb->len often exceed liquidio's advertised gso_max_size.  This
    may happen on other NIC drivers.
    
    Fix it by assigning lowerdev's gso_max_size to that of vxlan dev.  Might as
    well do likewise for gso_max_segs.
    
    Single flow TSO throughput of liquidio as lowerdev (using iperf3):
    
        Before the patch:    139 Mbps
        After the patch :   8.68 Gbps
        Percent increase:  6,144 %
    
    Signed-off-by: Felix Manlunas <felix.manlunas@cavium.com>
    Signed-off-by: Satanand Burla <satananda.burla@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 399a4f3c2b3f0c1812a04a4a9994ced8d1704c3d
Author: Sinclair Yeh <syeh@vmware.com>
Date:   Thu Mar 23 14:28:21 2017 -0700

    drm/vmwgfx: Fixes to vmwgfx_fb
    
    
    [ Upstream commit aa74f0687cfe998e59b20d6454f45e8aa4403c45 ]
    
    1.  When unsetting a mode, num_connector should be set to zero
    2.  The pixel_format field needs to be initialized as newer DRM internal
        functions checks this field
    3.  Take the drm_modeset_lock_all() because vmw_fb_kms_detach() can
        change current mode
    
    Signed-off-by: Sinclair Yeh <syeh@vmware.com>
    Reviewed-by: Thomas Hellstrom <thellstrom@vmware.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca9c60742b20452b821ac69ad4115d0a681597a3
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Sun Mar 26 22:47:36 2017 +0200

    braille-console: Fix value returned by _braille_console_setup
    
    
    [ Upstream commit 2ed2b8621be2708c0f6d61fe9841e9ad8b9753f0 ]
    
    commit bbeddf52adc1 ("printk: move braille console support into
    separate braille.[ch] files") introduced _braille_console_setup()
    to outline the braille initialization code.  There was however some
    confusion over the value it was supposed to return. commit 2cfe6c4ac7ee
    ("printk: Fix return of braille_register_console()") tried to fix it
    but failed to.
    
    This fixes and documents the returned value according to the use
    in printk.c: non-zero return means a parsing error, and thus this
    console configuration should be ignored.
    
    Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Cc: Aleksey Makarov <aleksey.makarov@linaro.org>
    Cc: Joe Perches <joe@perches.com>
    Cc: Ming Lei <ming.lei@canonical.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Acked-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66db324639335681f510ee8720d22ac237412564
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Tue Mar 21 22:59:56 2017 +0530

    powerpc/mm/hugetlb: Filter out hugepage size not supported by page table layout
    
    
    [ Upstream commit a525108cf1cc14651602d678da38fa627a76a724 ]
    
    Without this if firmware reports 1MB page size support we will crash
    trying to use 1MB as hugetlb page size.
    
    echo 300 > /sys/kernel/mm/hugepages/hugepages-1024kB/nr_hugepages
    
    kernel BUG at ./arch/powerpc/include/asm/hugetlb.h:19!
    .....
    ....
    [c0000000e2c27b30] c00000000029dae8 .hugetlb_fault+0x638/0xda0
    [c0000000e2c27c30] c00000000026fb64 .handle_mm_fault+0x844/0x1d70
    [c0000000e2c27d70] c00000000004805c .do_page_fault+0x3dc/0x7c0
    [c0000000e2c27e30] c00000000000ac98 handle_page_fault+0x10/0x30
    
    With fix, we don't enable 1MB as hugepage size.
    
    bash-4.2# cd /sys/kernel/mm/hugepages/
    bash-4.2# ls
    hugepages-16384kB  hugepages-16777216kB
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit aad6ccac0e4fddcfd1b04a2cbd95b550c59da23e
Author: Manish Jaggi <mjaggi@caviumnetworks.com>
Date:   Thu Mar 30 18:47:14 2017 -0500

    PCI: Apply Cavium ACS quirk only to CN81xx/CN83xx/CN88xx devices
    
    
    [ Upstream commit b77d537d00d08fcf0bf641cd3491dd7df0ad1475 ]
    
    Only apply the Cavium ACS quirk to devices with ID in the range
    0xa000-0xa0ff.  These are the on-chip PCI devices for CN81xx/CN83xx/CN88xx.
    
    Fixes: b404bcfbf035 ("PCI: Add ACS quirk for all Cavium devices")
    Reported-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Manish Jaggi <mjaggi@cavium.com>
    Acked-by: David Daney <david.daney@cavium.com>
    Acked-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c989a6803e4e235cd50d789a7ebe6fad10f747d
Author: Eric Dumazet <edumazet@google.com>
Date:   Wed Mar 29 10:45:44 2017 -0700

    bonding: refine bond_fold_stats() wrap detection
    
    
    [ Upstream commit 142c6594acbcc32391af9c15f8cd65c6c177698f ]
    
    Some device drivers reset their stats at down/up events, possibly
    fooling bonding stats, since they operate with relative deltas.
    
    It is nearly not possible to fix drivers, since some of them compute the
    tx/rx counters based on per rx/tx queue stats, and the queues can be
    reconfigured (ethtool -L) between the down/up sequence.
    
    Lets avoid accumulating 'negative' values that render bonding stats
    useless.
    
    It is better to lose small deltas, assuming the bonding stats are
    fetched at a reasonable frequency.
    
    Fixes: 5f0c5f73e5ef ("bonding: make global bonding stats more reliable")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 508126005146f7a8d0c44c2acd02f0fce1665ccd
Author: Nicolai Hähnle <nicolai.haehnle@amd.com>
Date:   Tue Feb 14 09:37:12 2017 +0100

    drm/ttm: never add BO that failed to validate to the LRU list
    
    
    [ Upstream commit c2c139cf435b18939204800fa72c53a7207bdd68 ]
    
    Fixes a potential race condition in amdgpu that looks as follows:
    
    Task 1: attempt ttm_bo_init, but ttm_bo_validate fails
    Task 1: add BO to global list anyway
    Task 2: grabs hold of the BO, waits on its reservation lock
    Task 1: releases its reference of the BO; never gives up the
            reservation lock
    
    The patch "drm/amdgpu: fix a potential deadlock in
    amdgpu_bo_create_restricted()" attempts to fix that by releasing
    the reservation lock in amdgpu code; unfortunately, it introduces
    a use-after-free when this race _doesn't_ happen.
    
    This patch should fix the race properly by never adding the BO
    to the global list in the first place.
    
    Cc: zhoucm1 <david1.zhou@amd.com>
    Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
    Tested-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
    Reviewed-by: Christian König <christian.koenig@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68c2353e3bebd9337d3f38cbbaf9699647e0b765
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Tue Mar 21 10:59:50 2017 -0400

    f2fs: relax node version check for victim data in gc
    
    
    [ Upstream commit c13ff37e359bb3eacf4e1760dcea8d9760aa7459 ]
    
    - has_not_enough_free_secs
    node_secs: 0  dent_secs: 0  freed:0  free_segments:103  reserved:104
    
              - f2fs_gc
                 - get_victim_by_default
    alloc_mode 0, gc_mode 1, max_search 2672, offset 4654, ofs_unit 1
    
                    - do_garbage_collect
    start_segno 3976, end_segno 3977   type 0
    
                      - is_alive
    nid 22797, blkaddr 2131882, ofs_in_node 0, version 0x8/0x0
    
                       - gc_data_segment 766, segno 3976, block 512/426 not alive
    
    So, this patch fixes subtle corrupted case where node version does not match
    to summary version which results in infinite loop by gc.
    
    Reported-by: Yunlei He <heyunlei@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73f2c66447bb1514518879f7e260636eba7376ff
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Wed Mar 29 16:37:51 2017 -0300

    perf trace: Handle unpaired raw_syscalls:sys_exit event
    
    
    [ Upstream commit fd2b2975149f5f7099693027cece81b16842964a ]
    
    Which may happen when we start a tracing session and a thread is waiting
    for something like "poll" to return, in which case we better print "?"
    both for the syscall entry timestamp and for the duration.
    
    E.g.:
    
    Tracing existing mutt session:
    
      # perf trace -p `pidof mutt`
              ? (     ?   ): mutt/17135  ... [continued]: poll()) = 1
          0.027 ( 0.013 ms): mutt/17135 read(buf: 0x7ffcb3c42cef, count: 1) = 1
          0.047 ( 0.008 ms): mutt/17135 poll(ufds: 0x7ffcb3c42c50, nfds: 1, timeout_msecs: 1000) = 1
          0.059 ( 0.008 ms): mutt/17135 read(buf: 0x7ffcb3c42cef, count: 1) = 1
      <SNIP>
    
    Before it would print a large number because we'd do:
    
      ttrace->entry_time - trace->base_time
    
    And entry_time would be 0, while base_time would be the timestamp for
    the first event 'perf trace' reads, oops.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Luis Claudio Gonçalves <lclaudio@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/n/tip-wbcb93ofva2qdjd5ltn5eeqq@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2afbcdeb61503683b16cf90b98da187f33c6d39
Author: Matthias Kaehlcke <mka@chromium.org>
Date:   Mon Mar 27 16:54:12 2017 -0700

    regulator: core: Limit propagation of parent voltage count and list
    
    
    [ Upstream commit fd086045559d90cd7854818b4c60a7119eda6231 ]
    
    Commit 26988efe11b1 ("regulator: core: Allow to get voltage count and
    list from parent") introduces the propagation of the parent voltage
    count and list for regulators that don't provide this information
    themselves. The goal is to support simple switch regulators, however as
    a side effect normal continuous regulators can leak details of their
    supplies and provide consumers with inconsistent information.
    
    Limit the propagation of the voltage count and list to switch
    regulators.
    
    Fixes: 26988efe11b1 ("regulator: core: Allow to get voltage count and
      list from parent")
    Signed-off-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Tested-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 94b3df54ad6d451a0158681758a0996947b5134d
Author: Shaohua Li <shli@fb.com>
Date:   Mon Mar 27 10:51:36 2017 -0700

    blk-throttle: make sure expire time isn't too big
    
    
    [ Upstream commit 06cceedcca67a93ac7f7aa93bbd9980c7496d14e ]
    
    cgroup could be throttled to a limit but when all cgroups cross high
    limit, queue enters a higher state and so the group should be throttled
    to a higher limit. It's possible the cgroup is sleeping because of
    throttle and other cgroups don't dispatch IO any more. In this case,
    nobody can trigger current downgrade/upgrade logic. To fix this issue,
    we could either set up a timer to wakeup the cgroup if other cgroups are
    idle or make sure this cgroup doesn't sleep too long. Setting up a timer
    means we must change the timer very frequently. This patch chooses the
    latter. Making cgroup sleep time not too big wouldn't change cgroup
    bps/iops, but could make it wakeup more frequently, which isn't a big
    issue because throtl_slice * 8 is already quite big.
    
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0030b37be54786e156df0ce8ad99b4c1ead682aa
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Mar 28 12:45:33 2017 +0200

    ARM: dts: silk: Correct clock of DU1
    
    
    [ Upstream commit 403fe77e22eb72c962c3889efc9d4fa62e454737 ]
    
    The second channel of the display unit uses a different module clock
    than the first channel.
    
    Fixes: 84e734f497cd48f6 ("ARM: dts: silk: add DU DT support")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 27b7275721c498befcb57b5936c79f88366f78eb
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Mar 28 12:45:31 2017 +0200

    ARM: dts: r8a7794: Correct clock of DU1
    
    
    [ Upstream commit 89675f36c9e17512812b9d14d9824f8ef92782c3 ]
    
    The second channel of the display unit uses a different module clock
    than the first channel.
    
    Fixes: 46c4f13d04d729fa ("ARM: shmobile: r8a7794: Add DU node to device tree")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dab825106b376cc8f3c4e948175c23cf383566da
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Tue Mar 28 12:45:30 2017 +0200

    ARM: dts: r8a7794: Add DU1 clock to device tree
    
    commit 1764f8081f1524bf629e0744b277db751281ff56 upstream.
    
    Add the missing module clock for the second channel of the display unit.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90a6ae1eadf11e73fe4c6dbaa0fbd888bb1b48d4
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Wed Mar 22 21:30:27 2017 +0900

    ALSA: firewire-lib: add a quirk of packet without valid EOH in CIP format
    
    
    [ Upstream commit 2128f78f75a36a34dfef0e127273c2f820c5c904 ]
    
    In IEC 61883-1, when two quadlets CIP header is used, the most significant
    bit in second CIP header stands. However, packets from units with MOTU
    protocol version 3 have a quirk without this flag. Current packet streaming
    layer handles this as protocol error.
    
    This commit adds a new enumeration constant for this quirk, to handle MOTU
    protocol version 3.
    
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5bf86f30e2a2648cff3346ace5d26208d6a3e001
Author: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
Date:   Fri Mar 24 14:13:05 2017 +0300

    mm: Fix false-positive VM_BUG_ON() in page_cache_{get,add}_speculative()
    
    
    [ Upstream commit 591a3d7c09fa08baff48ad86c2347dbd28a52753 ]
    
    0day testing by Fengguang Wu triggered this crash while running Trinity:
    
      kernel BUG at include/linux/pagemap.h:151!
      ...
      CPU: 0 PID: 458 Comm: trinity-c0 Not tainted 4.11.0-rc2-00251-g2947ba0 #1
      ...
      Call Trace:
       __get_user_pages_fast()
       get_user_pages_fast()
       get_futex_key()
       futex_requeue()
       do_futex()
       SyS_futex()
       do_syscall_64()
       entry_SYSCALL64_slow_path()
    
    It' VM_BUG_ON() due to false-negative in_atomic(). We call
    page_cache_get_speculative() with disabled local interrupts.
    It should be atomic enough.
    
    So let's check for disabled interrupts in the VM_BUG_ON() condition
    too, to resolve this.
    
    ( This got triggered by the conversion of the x86 GUP code to the
      generic GUP code. )
    
    Reported-by: Fengguang Wu <fengguang.wu@intel.com>
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Cc: Kirill A. Shutemov <kirill@shutemov.name>
    Cc: LKP <lkp@01.org>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-mm@kvack.org
    Link: http://lkml.kernel.org/r/20170324114709.pcytvyb3d6ajux33@black.fi.intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 851eb3187617dcaacf6162626dd750850d5abef1
Author: Mahesh Bandewar <maheshb@google.com>
Date:   Mon Mar 27 11:37:35 2017 -0700

    bonding: make speed, duplex setting consistent with link state
    
    
    [ Upstream commit c4adfc822bf5d8e97660b6114b5a8892530ce8cb ]
    
    bond_update_speed_duplex() retrieves speed and duplex settings. There
    is a possibility of failure in retrieving these values but caller has
    to assume it's always successful. This leads to having inconsistent
    slave link settings. If these (speed, duplex) values cannot be
    retrieved, then keeping the link UP causes problems.
    
    The updated bond_update_speed_duplex() returns 0 on success if it
    retrieves sane values for speed and duplex. On failure it returns 1
    and marks the link down.
    
    Signed-off-by: Mahesh Bandewar <maheshb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a8649e6c5b28b4bb72ce94a9b1967ffdd70481d
Author: Shikhar Dogra <shidogra@cisco.com>
Date:   Mon Mar 27 16:16:44 2017 -0700

    driver: (adm1275) set the m,b and R coefficients correctly for power
    
    
    [ Upstream commit 6faecba0b3da7b617bf72bef422bf0d3bb6dfe7d ]
    
    Seems like coefficient values for m, b and R under power have been
    put in the wrong order. Rearranging them properly to get correct
    values of coefficients for power.
    
    For specs, please refer to table 7 (page 35) on
    http://www.analog.com/media/en/technical-documentation/data-sheets/ADM1075.pdf
    
    Fixes: 904b296f308d ("hwmon: (adm1275) Introduce configuration data structure for coeffcients")
    Signed-off-by: Shikhar Dogra <shidogra@cisco.com>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 13cc05b621bfde13f6afa5ccbc8e5bd88f26399b
Author: Jitendra Bhivare <jitendra.bhivare@broadcom.com>
Date:   Fri Mar 24 14:11:40 2017 +0530

    scsi: be2iscsi: Check tag in beiscsi_mccq_compl_wait
    
    
    [ Upstream commit eb419229be58dc6d4a3a814116a265908e088c39 ]
    
    scsi host12: BS_1377 : mgmt_invalidate_connection Failed for cid=256
    BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
    IP: [<ffffffff81332ebf>] __list_add+0xf/0xc0
    PGD 0
    Oops: 0000 [#1] SMP
    Modules linked in:
    ...
    CPU: 9 PID: 1542 Comm: iscsid Tainted: G               ------------ T 3.10.0-514.el7.x86_64 #1
    Hardware name: HP ProLiant DL360 Gen9/ProLiant DL360 Gen9, BIOS P89 09/12/2016
    task: ffff88076f310fb0 ti: ffff88076bba8000 task.ti: ffff88076bba8000
    RIP: 0010:[<ffffffff81332ebf>]  [<ffffffff81332ebf>] __list_add+0xf/0xc0
    RSP: 0018:ffff88076bbab8e8  EFLAGS: 00010046
    RAX: 0000000000000246 RBX: ffff88076bbab990 RCX: 0000000000000000
    RDX: 0000000000000000 RSI: ffff880468badf58 RDI: ffff88076bbab990
    RBP: ffff88076bbab900 R08: 0000000000000246 R09: 00000000000020de
    R10: 0000000000000000 R11: ffff88076bbab5be R12: 0000000000000000
    R13: ffff880468badf58 R14: 000000000001adb0 R15: ffff88076f310fb0
    FS:  00007f377124a880(0000) GS:ffff88046fa40000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000008 CR3: 0000000771318000 CR4: 00000000001407e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Stack:
    ffff88076bbab990 ffff880468badf50 0000000000000001 ffff88076bbab938
    ffffffff810b128b 0000000000000246 00000000cf9b7040 ffff880468bac7a0
    0000000000000000 ffff880468bac7a0 ffff88076bbab9d0 ffffffffa05a6ea3
    
    Call Trace:
    [<ffffffff810b128b>] prepare_to_wait+0x7b/0x90
    [<ffffffffa05a6ea3>] beiscsi_mccq_compl_wait+0x153/0x330 [be2iscsi]
    [<ffffffff810b1600>] ? wake_up_atomic_t+0x30/0x30
    [<ffffffffa05981b1>] beiscsi_ep_disconnect+0x91/0x2d0 [be2iscsi]
    [<ffffffffa0202ffa>] iscsi_if_ep_disconnect.isra.14+0x5a/0x70 [scsi_transport_iscsi]
    [<ffffffffa02042fb>] iscsi_if_recv_msg+0x113b/0x14a0 [scsi_transport_iscsi]
    [<ffffffff811dffd8>] ? __kmalloc_node_track_caller+0x58/0x290
    [<ffffffffa02046ee>] iscsi_if_rx+0x8e/0x1f0 [scsi_transport_iscsi]
    [<ffffffff815a351d>] netlink_unicast+0xed/0x1b0
    [<ffffffff815a38fe>] netlink_sendmsg+0x31e/0x690
    [<ffffffff815a03e4>] ? netlink_rcv_wake+0x44/0x60
    [<ffffffff815a19e3>] ? netlink_recvmsg+0x1e3/0x450
    
    beiscsi_mccq_compl_wait gets called even when MCC tag allocation failed
    for mgmt_invalidate_connection.  mcc_wait is not initialized for tag 0
    so causes crash in prepare_to_wait.
    
    Signed-off-by: Jitendra Bhivare <jitendra.bhivare@broadcom.com>
    Reviewed-by: Tomas Henzl <thenzl@redhat.com>
    Reviewed-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 55b22830b97ecccafc58df9a0f9824ece3add663
Author: Alexander Duyck <alexander.h.duyck@intel.com>
Date:   Tue Feb 21 15:55:41 2017 -0800

    i40e/i40evf: Fix use after free in Rx cleanup path
    
    
    [ Upstream commit 741b8b832a57402380be79d7d11a59eaf57fff3b ]
    
    We need to reset skb back to NULL when we have freed it in the Rx cleanup
    path.  I found one spot where this wasn't occurring so this patch fixes it.
    
    Change-ID: Iaca68934200732cd4a63eb0bd83b539c95f8c4dd
    Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit da1a974e27c7aea0b1859be3774ea7577f4ffd95
Author: Tommi Rantala <tommi.t.rantala@nokia.com>
Date:   Wed Mar 22 15:06:20 2017 +0200

    perf buildid: Do not assume that readlink() returns a null terminated string
    
    
    [ Upstream commit 5a2342111c68e623e27ee7ea3d0492d8dad6bda0 ]
    
    Valgrind was complaining:
    
      $ valgrind ./perf list >/dev/null
      ==11643== Memcheck, a memory error detector
      ==11643== Copyright (C) 2002-2015, and GNU GPL'd, by Julian Seward et al.
      ==11643== Using Valgrind-3.12.0 and LibVEX; rerun with -h for copyright info
      ==11643== Command: ./perf list
      ==11643==
      ==11643== Conditional jump or move depends on uninitialised value(s)
      ==11643==    at 0x4C30620: rindex (vg_replace_strmem.c:199)
      ==11643==    by 0x49DAA9: build_id_cache__origname (build-id.c:198)
      ==11643==    by 0x49E1C7: build_id_cache__valid_id (build-id.c:222)
      ==11643==    by 0x49E1C7: build_id_cache__list_all (build-id.c:507)
      ==11643==    by 0x4B9C8F: print_sdt_events (parse-events.c:2067)
      ==11643==    by 0x4BB0B3: print_events (parse-events.c:2313)
      ==11643==    by 0x439501: cmd_list (builtin-list.c:53)
      ==11643==    by 0x497150: run_builtin (perf.c:359)
      ==11643==    by 0x428CE0: handle_internal_command (perf.c:421)
      ==11643==    by 0x428CE0: run_argv (perf.c:467)
      ==11643==    by 0x428CE0: main (perf.c:614)
      [...]
    
    Additionally, a zero length result from readlink() is not very interesting.
    
    Signed-off-by: Tommi Rantala <tommi.t.rantala@nokia.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20170322130624.21881-3-tommi.t.rantala@nokia.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58f8d0c05a734ff4071db3f2cf444570ce69236f
Author: Taeung Song <treeze.taeung@gmail.com>
Date:   Mon Mar 27 16:10:36 2017 +0900

    perf annotate: Fix a bug following symbolic link of a build-id file
    
    
    [ Upstream commit 6ebd2547dd24daf95a21b2bc59931de8502afcc3 ]
    
    It is wrong way to read link name from a build-id file.  Because a
    build-id file is not anymore a symbolic link but build-id directory of
    it is symbolic link, so fix it.
    
    For example, if build-id file name gotten from
    dso__build_id_filename() is as below,
    
      /root/.debug/.build-id/4f/75c7d197c951659d1c1b8b5fd49bcdf8f3f8b1/elf
    
    To correctly read link name of build-id, use the build-id dir path that
    is a symbolic link, instead of the above build-id file name like below.
    
      /root/.debug/.build-id/4f/75c7d197c951659d1c1b8b5fd49bcdf8f3f8b1
    
    Signed-off-by: Taeung Song <treeze.taeung@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Link: http://lkml.kernel.org/r/1490598638-13947-2-git-send-email-treeze.taeung@gmail.com
    Fixes: 01412261d994 ("perf buildid-cache: Use path/to/bin/buildid/elf instead of path/to/bin/buildid")
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ad2abe6d02c34d7212cead081a7c4b9155be46e
Author: Baruch Siach <baruch@tkos.co.il>
Date:   Mon Jan 30 20:44:39 2017 +0200

    ARM: dts: bcm2835: add index to the ethernet alias
    
    
    [ Upstream commit 10b6c0c2e2bb8cd1be682f8d36ef597e3419cb88 ]
    
    An alias name should have an index number even when it is the only of its type.
    This allows U-Boot to add the local-mac-address property. Otherwise U-Boot
    skips the alias.
    
    Fixes: 6a93792774 ("ARM: bcm2835: dt: Add the ethernet to the device trees")
    Signed-off-by: Baruch Siach <baruch@tkos.co.il>
    Acked-by: Lubomir Rintel <lkundrak@v3.sk>
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c582696e096064d43d953fd576712d95fcab6702
Author: Felipe Balbi <felipe.balbi@linux.intel.com>
Date:   Wed Aug 3 14:16:15 2016 +0300

    usb: dwc3: make sure UX_EXIT_PX is cleared
    
    
    [ Upstream commit 1966b8657d058ecb95031809b607bf3fd1e01c10 ]
    
    This bit is only supposed to be used with known
    buggy PHYs, however some platforms might erroneously
    set it. In order to avoid it, let's make sure this
    bit is always cleared. If some PHY needs this, we
    will need to add a quirk flag.
    
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 61ed2d27b87fe5b01fa867492e75495b96a41456
Author: Jiada Wang <jiada_wang@mentor.com>
Date:   Thu Mar 16 23:12:09 2017 -0700

    dmaengine: imx-sdma: add 1ms delay to ensure SDMA channel is stopped
    
    
    [ Upstream commit 7f3ff14b7eb1ffad132117f08a1973b48e653d43 ]
    
    sdma_disable_channel() cannot ensure dma is stopped to access
    module's FIFOs. There is chance SDMA core is running and accessing
    BD when disable of corresponding channel, this may cause sometimes
    even after call of .sdma_disable_channel(), SDMA core still be
    running and accessing module's FIFOs.
    
    According to NXP R&D team a delay of one BD SDMA cost time (maximum
    is 1ms) should be added after disable of the channel bit, to ensure
    SDMA core has really been stopped after SDMA clients call
    .device_terminate_all.
    
    This patch introduces adds a new function sdma_disable_channel_with_delay()
    which simply adds 1ms delay after call sdma_disable_channel(),
    and set it as .device_terminate_all.
    
    Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
    Signed-off-by: Vinod Koul <vinod.koul@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 694f219a606f80811ea384044b9845c80d688bb3
Author: Gao Feng <fgao@ikuai8.com>
Date:   Fri Mar 24 07:05:12 2017 +0800

    tcp: sysctl: Fix a race to avoid unexpected 0 window from space
    
    
    [ Upstream commit c48367427a39ea0b85c7cf018fe4256627abfd9e ]
    
    Because sysctl_tcp_adv_win_scale could be changed any time, so there
    is one race in tcp_win_from_space.
    For example,
    1.sysctl_tcp_adv_win_scale<=0 (sysctl_tcp_adv_win_scale is negative now)
    2.space>>(-sysctl_tcp_adv_win_scale) (sysctl_tcp_adv_win_scale is postive now)
    
    As a result, tcp_win_from_space returns 0. It is unexpected.
    
    Certainly if the compiler put the sysctl_tcp_adv_win_scale into one
    register firstly, then use the register directly, it would be ok.
    But we could not depend on the compiler behavior.
    
    Signed-off-by: Gao Feng <fgao@ikuai8.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84353d9d99cf6793f6f28e948f2973681d63806c
Author: Akinobu Mita <akinobu.mita@gmail.com>
Date:   Wed Mar 22 09:18:26 2017 +0900

    spi: omap2-mcspi: poll OMAP2_MCSPI_CHSTAT_RXS for PIO transfer
    
    
    [ Upstream commit 812613591cb652344186c4cd912304ed02138566 ]
    
    When running the spi-loopback-test with slower clock rate like 10 KHz,
    the test for 251 bytes transfer was failed.  This failure triggered an
    spi-omap2-mcspi's error message "DMA RX last word empty".
    
    This message means that PIO for reading the remaining bytes due to the
    DMA transfer length reduction is failed.  This problem can be fixed by
    polling OMAP2_MCSPI_CHSTAT_RXS bit in channel status register to wait
    until the receive buffer register is filled.
    
    Cc: Mark Brown <broonie@kernel.org>
    Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28fdd86eb53f36eea98de4cd50441f92d60281c9
Author: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Date:   Wed Mar 22 04:02:43 2017 +0000

    ASoC: rcar: ssi: don't set SSICR.CKDV = 000 with SSIWSR.CONT
    
    
    [ Upstream commit 6b8530cc056efd4a11b034ca5b1e9f7e9563f553 ]
    
    R-Car Datasheet is indicating "SSICR.CKDV = 000 is invalid when
    SSIWSR.WS_MODE = 1 or SSIWSR.CONT = 1".
    Current driver will set CONT, thus, we shouldn't use CKDV = 000.
    This patch fixup it.
    
    Reported-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
    Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
    Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 422fcc97747961709f9faa97b5d1f3f4305b67b8
Author: Long Li <longli@microsoft.com>
Date:   Thu Mar 23 14:58:32 2017 -0700

    PCI: hv: Lock PCI bus on device eject
    
    
    [ Upstream commit 414428c5da1c71986727c2fa5cdf1ed071e398d7 ]
    
    A PCI_EJECT message can arrive at the same time we are calling
    pci_scan_child_bus() in the workqueue for the previous PCI_BUS_RELATIONS
    message or in create_root_hv_pci_bus().  In this case we could potentially
    modify the bus from multiple places.
    
    Properly lock the bus access.
    
    Thanks Dexuan Cui <decui@microsoft.com> for pointing out the race condition
    in create_root_hv_pci_bus().
    
    Reported-by: Xiaofeng Wang <xiaofwan@redhat.com>
    Signed-off-by: Long Li <longli@microsoft.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fd15bade786ee8d2db6fe45b5b7784a1ec9ca2b7
Author: Long Li <longli@microsoft.com>
Date:   Thu Mar 23 14:58:10 2017 -0700

    PCI: hv: Properly handle PCI bus remove
    
    
    [ Upstream commit d3a78d8bf759d8848339dcc367c4c1678b57a08b ]
    
    hv_pci_devices_present() is called in hv_pci_remove() when we remove a PCI
    device from the host, e.g., by disabling SR-IOV on a device.  In
    hv_pci_remove(), the bus is already removed before the call, so we don't
    need to rescan the bus in the workqueue scheduled from
    hv_pci_devices_present().
    
    By introducing bus state hv_pcibus_removed, we can avoid this situation.
    
    Reported-by: Xiaofeng Wang <xiaofwan@redhat.com>
    Signed-off-by: Long Li <longli@microsoft.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Acked-by: K. Y. Srinivasan <kys@microsoft.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae34475dfc0d6ad8c0b5cb25ab43a612ef223fb6
Author: Davide Caratti <dcaratti@redhat.com>
Date:   Thu Mar 23 10:39:40 2017 +0100

    sched: act_csum: don't mangle TCP and UDP GSO packets
    
    
    [ Upstream commit add641e7dee31b36aee83412c29e39dd1f5e0c9c ]
    
    after act_csum computes the checksum on skbs carrying GSO TCP/UDP packets,
    subsequent segmentation fails because skb_needs_check(skb, true) returns
    true. Because of that, skb_warn_bad_offload() is invoked and the following
    message is displayed:
    
    WARNING: CPU: 3 PID: 28 at net/core/dev.c:2553 skb_warn_bad_offload+0xf0/0xfd
    <...>
    
      [<ffffffff8171f486>] skb_warn_bad_offload+0xf0/0xfd
      [<ffffffff8161304c>] __skb_gso_segment+0xec/0x110
      [<ffffffff8161340d>] validate_xmit_skb+0x12d/0x2b0
      [<ffffffff816135d2>] validate_xmit_skb_list+0x42/0x70
      [<ffffffff8163c560>] sch_direct_xmit+0xd0/0x1b0
      [<ffffffff8163c760>] __qdisc_run+0x120/0x270
      [<ffffffff81613b3d>] __dev_queue_xmit+0x23d/0x690
      [<ffffffff81613fa0>] dev_queue_xmit+0x10/0x20
    
    Since GSO is able to compute checksum on individual segments of such skbs,
    we can simply skip mangling the packet.
    
    Signed-off-by: Davide Caratti <dcaratti@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 997de25b0aa87077afd340d4f7aae9903ac8fb6d
Author: Javier Martinez Canillas <javier@osg.samsung.com>
Date:   Thu Mar 23 13:33:12 2017 -0700

    Input: qt1070 - add OF device ID table
    
    
    [ Upstream commit cf5cd9d4480a87da78768718cac194a71079b5cb ]
    
    The driver doesn't have a struct of_device_id table but supported devices
    are registered via Device Trees. This is working on the assumption that a
    I2C device registered via OF will always match a legacy I2C device ID and
    that the MODALIAS reported will always be of the form i2c:<device>.
    
    But this could change in the future so the correct approach is to have an
    OF device ID table if the devices are registered via OF.
    
    The compatible strings don't have a vendor prefix because that's how it's
    used currently, and changing this will be a Device Tree ABI break.
    
    Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 00c001fbdad55884d4316f528ffc6a0017ca88dd
Author: Tom Hromatka <tom.hromatka@oracle.com>
Date:   Wed Jan 4 15:28:04 2017 -0700

    sysrq: Reset the watchdog timers while displaying high-resolution timers
    
    
    [ Upstream commit 0107042768658fea9f5f5a9c00b1c90f5dab6a06 ]
    
    On systems with a large number of CPUs, running sysrq-<q> can cause
    watchdog timeouts.  There are two slow sections of code in the sysrq-<q>
    path in timer_list.c.
    
    1. print_active_timers() - This function is called by print_cpu() and
       contains a slow goto loop.  On a machine with hundreds of CPUs, this
       loop took approximately 100ms for the first CPU in a NUMA node.
       (Subsequent CPUs in the same node ran much quicker.)  The total time
       to print all of the CPUs is ultimately long enough to trigger the
       soft lockup watchdog.
    
    2. print_tickdevice() - This function outputs a large amount of textual
       information.  This function also took approximately 100ms per CPU.
    
    Since sysrq-<q> is not a performance critical path, there should be no
    harm in touching the nmi watchdog in both slow sections above.  Touching
    it in just one location was insufficient on systems with hundreds of
    CPUs as occasional timeouts were still observed during testing.
    
    This issue was observed on an Oracle T7 machine with 128 CPUs, but I
    anticipate it may affect other systems with similarly large numbers of
    CPUs.
    
    Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
    Reviewed-by: Rob Gardner <rob.gardner@oracle.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ae0258a81896f9a26b1a84102fe71dd71662b727
Author: David Engraf <david.engraf@sysgo.com>
Date:   Fri Feb 17 08:51:03 2017 +0100

    timers, sched_clock: Update timeout for clock wrap
    
    
    [ Upstream commit 1b8955bc5ac575009835e371ae55e7f3af2197a9 ]
    
    The scheduler clock framework may not use the correct timeout for the clock
    wrap. This happens when a new clock driver calls sched_clock_register()
    after the kernel called sched_clock_postinit(). In this case the clock wrap
    timeout is too long thus sched_clock_poll() is called too late and the clock
    already wrapped.
    
    On my ARM system the scheduler was no longer scheduling any other task than
    the idle task because the sched_clock() wrapped.
    
    Signed-off-by: David Engraf <david.engraf@sysgo.com>
    Signed-off-by: John Stultz <john.stultz@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc88d1bee232c2a514877dd078ed2fd42cde959f
Author: Janusz Krzysztofik <jmkrzyszt@gmail.com>
Date:   Wed Jun 15 19:29:50 2016 -0300

    media: i2c/soc_camera: fix ov6650 sensor getting wrong clock
    
    
    [ Upstream commit 54449af0e0b2ea43a8166611c95b730c850c3184 ]
    
    After changes to v4l2_clk API introduced in v4.1 by commits a37462b919
    '[media] V4L: remove clock name from v4l2_clk API' and 4f528afcfb
    '[media] V4L: add CCF support to the v4l2_clk API', ov6650 sensor
    stopped responding because v4l2_clk_get(), still called with
    depreciated V4L2 clock name "mclk", started to return respective CCF
    clock instead of the V4l2 one registered by soc_camera. Fix it by
    calling v4l2_clk_get() with NULL clock name.
    
    Created and tested on Amstrad Delta against Linux-4.7-rc3 with
    omap1_camera fixes.
    
    Signed-off-by: Janusz Krzysztofik <jmkrzyszt@gmail.com>
    Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2f1b0a81b1b39e8eb2a79b667fc17bf76f24b788
Author: Brian King <brking@linux.vnet.ibm.com>
Date:   Wed Mar 15 16:58:36 2017 -0500

    scsi: ipr: Fix missed EH wakeup
    
    
    [ Upstream commit 66a0d59cdd12546ddf01d229de28b07ccf6d637f ]
    
    Following a command abort or device reset, ipr's EH handlers wait for
    the commands getting aborted to get sent back from the adapter prior to
    returning from the EH handler. This fixes up some cases where the
    completion handler was not getting called, which would have resulted in
    the EH thread waiting until it timed out, greatly extending EH time.
    
    Signed-off-by: Brian King <brking@linux.vnet.ibm.com>
    Reviewed-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>
    Tested-by: Wendy Xiong <wenxiong@linux.vnet.ibm.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3dda4b42a8f971d3d3896f14ca5f7185a29ae067
Author: Satish Kharat <satishkh@cisco.com>
Date:   Tue Feb 28 16:14:56 2017 -0800

    scsi: fnic: Fix for "Number of Active IOs" in fnicstats becoming negative
    
    
    [ Upstream commit 7ef539c88d7d394410d547c9f082d477093a2a22 ]
    
    Fixing the IO stats update (Active IOs and IO completion) to prevent
    "Number of Active IOs" from becoming negative in the fnistats output.
    
    Signed-off-by: Satish Kharat <satishkh@cisco.com>
    Signed-off-by: Sesidhar Baddela <sebaddel@cisco.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 86b684fcd6fe24586263e978aba79d136511f0b8
Author: Andy Lutomirski <luto@kernel.org>
Date:   Wed Mar 22 14:32:32 2017 -0700

    x86/boot/32: Defer resyncing initial_page_table until per-cpu is set up
    
    
    [ Upstream commit 23b2a4ddebdd17fad265b4bb77256c2e4ec37dee ]
    
    The x86 smpboot trampoline expects initial_page_table to have the
    GDT mapped.  If the GDT ends up in a virtually mapped per-cpu page,
    then it won't be in the page tables at all until perc-pu areas are
    set up.  The result will be a triple fault the first time that the
    CPU attempts to access the GDT after LGDT loads the perc-pu GDT.
    
    This appears to be an old bug, but somehow the GDT fixmap rework
    is triggering it.  This seems to have something to do with the
    memory layout.
    
    Signed-off-by: Andy Lutomirski <luto@kernel.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Boris Ostrovsky <boris.ostrovsky@oracle.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: Juergen Gross <jgross@suse.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Garnier <thgarnie@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Link: http://lkml.kernel.org/r/a553264a5972c6a86f9b5caac237470a0c74a720.1490218061.git.luto@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 078c1a50e189829e0279764f245970a3d2b461fd
Author: Anton Sviridenko <anton@corp.bluecherry.net>
Date:   Thu Mar 9 10:46:18 2017 -0300

    solo6x10: release vb2 buffers in solo_stop_streaming()
    
    
    [ Upstream commit 6e4c8480bd2eb95309ad3c875e11d2cad98f9188 ]
    
    Fixes warning that appears in dmesg after closing V4L2 userspace
    application that plays video from the display device
    (first device from V4L2 device nodes provided by solo, usually /dev/video0
    when no other V4L2 devices are present). Encoder device nodes are not
    affected. Can be reproduced by starting and closing
    
    ffplay -f video4linux2  /dev/video0
    
    [ 8130.281251] ------------[ cut here ]------------
    [ 8130.281256] WARNING: CPU: 1 PID: 20414 at drivers/media/v4l2-core/videobuf2-core.c:1651 __vb2_queue_cancel+0x14b/0x230
    [ 8130.281257] Modules linked in: ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat solo6x10 x86_pkg_temp_thermal vboxpci(O) vboxnetadp(O) vboxnetflt(O) vboxdrv(O)
    [ 8130.281264] CPU: 1 PID: 20414 Comm: ffplay Tainted: G           O    4.10.0-gentoo #1
    [ 8130.281264] Hardware name: ASUS All Series/B85M-E, BIOS 2301 03/30/2015
    [ 8130.281265] Call Trace:
    [ 8130.281267]  dump_stack+0x4f/0x72
    [ 8130.281270]  __warn+0xc7/0xf0
    [ 8130.281271]  warn_slowpath_null+0x18/0x20
    [ 8130.281272]  __vb2_queue_cancel+0x14b/0x230
    [ 8130.281273]  vb2_core_streamoff+0x23/0x90
    [ 8130.281275]  vb2_streamoff+0x24/0x50
    [ 8130.281276]  vb2_ioctl_streamoff+0x3d/0x50
    [ 8130.281278]  v4l_streamoff+0x15/0x20
    [ 8130.281279]  __video_do_ioctl+0x25e/0x2f0
    [ 8130.281280]  video_usercopy+0x279/0x520
    [ 8130.281282]  ? v4l_enum_fmt+0x1330/0x1330
    [ 8130.281285]  ? unmap_region+0xdf/0x110
    [ 8130.281285]  video_ioctl2+0x10/0x20
    [ 8130.281286]  v4l2_ioctl+0xce/0xe0
    [ 8130.281289]  do_vfs_ioctl+0x8b/0x5b0
    [ 8130.281290]  ? __fget+0x72/0xa0
    [ 8130.281291]  SyS_ioctl+0x74/0x80
    [ 8130.281294]  entry_SYSCALL_64_fastpath+0x13/0x94
    [ 8130.281295] RIP: 0033:0x7ff86fee6b27
    [ 8130.281296] RSP: 002b:00007ffe467f6a08 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    [ 8130.281297] RAX: ffffffffffffffda RBX: 00000000d1a4d788 RCX: 00007ff86fee6b27
    [ 8130.281297] RDX: 00007ffe467f6a14 RSI: 0000000040045613 RDI: 0000000000000006
    [ 8130.281298] RBP: 000000000373f8d0 R08: 00000000ffffffff R09: 00007ff860001140
    [ 8130.281298] R10: 0000000000000243 R11: 0000000000000246 R12: 0000000000000000
    [ 8130.281299] R13: 00000000000000a0 R14: 00007ffe467f6530 R15: 0000000001f32228
    [ 8130.281300] ---[ end trace 00695dc96be646e7 ]---
    
    Signed-off-by: Anton Sviridenko <anton@corp.bluecherry.net>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ba32c648a9fc27993330632e84c4cbdceef5d57
Author: Rob Herring <robh@kernel.org>
Date:   Mon Jan 16 14:28:39 2017 -0600

    of: fix of_device_get_modalias returned length when truncating buffers
    
    
    [ Upstream commit bcf54d5385abaea9c8026aae6f4eeb348671a52d ]
    
    If the length of the modalias is greater than the buffer size, then the
    modalias is truncated. However the untruncated length is returned which
    will cause an error. Fix this to return the truncated length. If an error
    in the case was desired, then then we should just return -ENOMEM.
    
    The reality is no device will ever have 4KB of compatible strings to hit
    this case.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Cc: Frank Rowand <frowand.list@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fb9c2f41e199e97b811981901d9de4a9d7729bf
Author: Andreas Pape <APape@phoenixcontact.com>
Date:   Mon Sep 5 13:20:29 2016 +0200

    batman-adv: handle race condition for claims between gateways
    
    
    [ Upstream commit a3a5129e122709306cfa6409781716c2933df99b ]
    
    Consider the following situation which has been found in a test setup:
    Gateway B has claimed client C and gateway A has the same backbone
    network as B. C sends a broad- or multicast to B and directly after
    this packet decides to send another packet to A due to a better TQ
    value. B will forward the broad-/multicast into the backbone as it is
    the responsible gw and after that A will claim C as it has been
    chosen by C as the best gateway. If it now happens that A claims C
    before it has received the broad-/multicast forwarded by B (due to
    backbone topology or due to some delay in B when forwarding the
    packet) we get a critical situation: in the current code A will
    immediately unclaim C when receiving the multicast due to the
    roaming client scenario although the position of C has not changed
    in the mesh. If this happens the multi-/broadcast forwarded by B
    will be sent back into the mesh by A and we have looping packets
    until one of the gateways claims C again.
    In order to prevent this, unclaiming of a client due to the roaming
    client scenario is only done after a certain time is expired after
    the last claim of the client. 100 ms are used here, which should be
    slow enough for big backbones and slow gateways but fast enough not
    to break the roaming client use case.
    
    Acked-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Andreas Pape <apape@phoenixcontact.com>
    [sven@narfation.org: fix conflicts with current version]
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84f876e346377a3ff16775781879981d8eb1aaf6
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Mar 13 13:44:21 2017 +0100

    zd1211rw: fix NULL-deref at probe
    
    
    [ Upstream commit ca260ece6a57dc7d751e0685f51fa2c55d851873 ]
    
    Make sure to check the number of endpoints to avoid dereferencing a
    NULL-pointer or accessing memory beyond the endpoint array should a
    malicious device lack the expected endpoints.
    
    Fixes: a1030e92c150 ("[PATCH] zd1211rw: Convert installer CDROM device into WLAN device")
    Cc: Daniel Drake <dsd@gentoo.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 58a1452cef23409aa42b67acf5c3e4284f88dba3
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Mon Mar 13 13:36:10 2017 +0100

    s390/topology: fix typo in early topology code
    
    
    [ Upstream commit 4fd4dd8bffb112d1e6549e0ff09e9fa3c8cc2b96 ]
    
    Use MACHINE_FLAG_TOPOLOGY instead of MACHINE_HAS_TOPOLOGY when
    clearing the bit that indicates if the machine provides topology
    information (and if it should be used). Currently works anyway.
    
    Fixes: 68cc795d1933 ("s390/topology: make "topology=off" parameter work")
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 82ca25fbd07c8572526ef6e584c09a4260b610c3
Author: Mintz, Yuval <Yuval.Mintz@cavium.com>
Date:   Sun Mar 19 13:08:20 2017 +0200

    qed: Always publish VF link from leading hwfn
    
    
    [ Upstream commit e50728effe1126eae39445ba144078b1305b7047 ]
    
    The link information exists only on the leading hwfn,
    but some of its derivatives [e.g., min/max rate] need to
    be configured for each hwfn.
    When re-basing the VF link view, use the leading hwfn
    information as basis for all existing hwfns to allow
    said configurations to stick.
    
    Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 814e2b3462083ab336a4cc1d442f272ab8165d24
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Sat Mar 18 17:40:01 2017 +0100

    ARM: dts: Adjust moxart IRQ controller and flags
    
    
    [ Upstream commit c2a736b698008d296c5010ec39077eeb5796109f ]
    
    The moxart interrupt line flags were not respected in previous
    driver: instead of assigning them per-consumer, a fixes mask
    was set in the controller.
    
    With the migration to a standard Faraday driver we need to
    set up and handle the consumer flags correctly. Also remove
    the Moxart-specific flags when switching to using real consumer
    flags.
    
    Extend the register window to 0x100 bytes as we may have a few
    more registers in there and it doesn't hurt.
    
    Tested-by: Jonas Jensen <jonas.jensen@gmail.com>
    Signed-off-by: Jonas Jensen <jonas.jensen@gmail.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Olof Johansson <olof@lixom.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4c484f758c180c6f8374fada0d9872fe8557e41d
Author: Andrey Vagin <avagin@openvz.org>
Date:   Wed Mar 15 17:41:14 2017 -0700

    net/8021q: create device with all possible features in wanted_features
    
    
    [ Upstream commit 88997e4208aea117627898e5f6f9801cf3cd42d2 ]
    
    wanted_features is a set of features which have to be enabled if a
    hardware allows that.
    
    Currently when a vlan device is created, its wanted_features is set to
    current features of its base device.
    
    The problem is that the base device can get new features and they are
    not propagated to vlan-s of this device.
    
    If we look at bonding devices, they doesn't have this problem and this
    patch suggests to fix this issue by the same way how it works for bonding
    devices.
    
    We meet this problem, when we try to create a vlan device over a bonding
    device. When a system are booting, real devices require time to be
    initialized, so bonding devices created without slaves, then vlan
    devices are created and only then ethernet devices are added to the
    bonding device. As a result we have vlan devices with disabled
    scatter-gather.
    
    * create a bonding device
      $ ip link add bond0 type bond
      $ ethtool -k bond0 | grep scatter
      scatter-gather: off
            tx-scatter-gather: off [requested on]
            tx-scatter-gather-fraglist: off [requested on]
    
    * create a vlan device
      $ ip link add link bond0 name bond0.10 type vlan id 10
      $ ethtool -k bond0.10 | grep scatter
      scatter-gather: off
            tx-scatter-gather: off
            tx-scatter-gather-fraglist: off
    
    * Add a slave device to bond0
      $ ip link set dev eth0 master bond0
    
    And now we can see that the bond0 device has got the scatter-gather
    feature, but the bond0.10 hasn't got it.
    [root@laptop linux-task-diag]# ethtool -k bond0 | grep scatter
    scatter-gather: on
            tx-scatter-gather: on
            tx-scatter-gather-fraglist: on
    [root@laptop linux-task-diag]# ethtool -k bond0.10 | grep scatter
    scatter-gather: off
            tx-scatter-gather: off
            tx-scatter-gather-fraglist: off
    
    With this patch the vlan device will get all new features from the
    bonding device.
    
    Here is a call trace how features which are set in this patch reach
    dev->wanted_features.
    
    register_netdevice
       vlan_dev_init
            ...
            dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
                           NETIF_F_FRAGLIST | NETIF_F_GSO_SOFTWARE |
                           NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
                           NETIF_F_ALL_FCOE;
    
            dev->features |= dev->hw_features;
            ...
        dev->wanted_features = dev->features & dev->hw_features;
        __netdev_update_features(dev);
            vlan_dev_fix_features
               ...
    
    Cc: Alexey Kuznetsov <kuznet@virtuozzo.com>
    Cc: Patrick McHardy <kaber@trash.net>
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: Andrei Vagin <avagin@openvz.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3582c4b4df1d7f2ff219b6367976e31d7dfbada1
Author: Tomasz Kramkowski <tk@the-tk.com>
Date:   Tue Mar 14 13:29:13 2017 +0000

    HID: clamp input to logical range if no null state
    
    
    [ Upstream commit c3883fe06488a483658ba5d849b70e49bee15e7c ]
    
    This patch fixes an issue in drivers/hid/hid-input.c where values
    outside of the logical range are not clamped when "null state" bit of
    the input control is not set.
    
    This was discussed on the lists [1] and this change stems from the fact
    due to the ambiguity of the HID specification it might be appropriate to
    follow Microsoft's own interpretation of the specification. As noted in
    Microsoft's documentation [2] in the section titled "Required HID usages
    for digitizers" it is noted that values reported outside the logical
    range "will be considered as invalid data and the value will be changed
    to the nearest boundary value (logical min/max)."
    
    This patch fixes an issue where the (1292:4745) Innomedia INNEX
    GENESIS/ATARI reports out of range values for its X and Y axis of the
    DPad which, due to the null state bit being unset, are forwarded to
    userspace as is. Now these values will get clamped to the logical range
    before being forwarded to userspace. This device was also used to test
    this patch.
    
    This patch expands on commit 3f3752705dbd ("HID: reject input outside
    logical range only if null state is set").
    
    [1]: http://lkml.kernel.org/r/20170307131036.GA853@gaia.local
    [2]: https://msdn.microsoft.com/en-us/library/windows/hardware/dn672278(v=vs.85).asp
    
    Signed-off-by: Tomasz Kramkowski <tk@the-tk.com>
    Acked-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7fd66ee795c6fce0897a5731ec011b17eef63901
Author: Kefeng Wang <wangkefeng.wang@huawei.com>
Date:   Fri Mar 17 16:16:32 2017 +0800

    perf probe: Return errno when not hitting any event
    
    
    [ Upstream commit 70946723eeb859466f026274b29c6196e39149c4 ]
    
    On old perf, when using 'perf probe -d' to delete an inexistent event,
    it returns errno, eg,
    
      -bash-4.3# perf probe -d xxx  || echo $?
      Info: Event "*:xxx" does not exist.
        Error: Failed to delete events.
      255
    
    But now perf_del_probe_events() will always set ret = 0, different from
    previous del_perf_probe_events(). After this, it returns errno again,
    eg,
    
      -bash-4.3# ./perf probe -d xxx  || echo $?
      "xxx" does not hit any event.
        Error: Failed to delete events.
      254
    
    And it is more appropriate to return -ENOENT instead of -EPERM.
    
    Signed-off-by: Kefeng Wang <wangkefeng.wang@huawei.com>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Hanjun Guo <guohanjun@huawei.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Wang Nan <wangnan0@huawei.com>
    Fixes: dddc7ee32fa1 ("perf probe: Fix an error when deleting probes successfully")
    Link: http://lkml.kernel.org/r/1489738592-61011-1-git-send-email-wangkefeng.wang@huawei.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f49cfde843314302a2dc7913e6a3183585a92d60
Author: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
Date:   Wed Mar 8 12:29:07 2017 +0530

    perf probe: Fix concat_probe_trace_events
    
    
    [ Upstream commit f0a30dca5f84fe8048271799b56677ac2279de66 ]
    
    '*ntevs' contains number of elements present in 'tevs' array. If there
    are no elements in array, 'tevs2' can be directly assigned to 'tevs'
    without allocating more space. So the condition should be  '*ntevs == 0'
    not  'ntevs == 0'.
    
    Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: 42bba263eb58 ("perf probe: Allow wildcard for cached events")
    Link: http://lkml.kernel.org/r/20170308065908.4128-1-ravi.bangoria@linux.vnet.ibm.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a124c8751f2288ef328fba9544634af9a4021d9f
Author: Arvind Yadav <arvind.yadav.cs@gmail.com>
Date:   Mon Mar 20 18:30:59 2017 +0100

    omapfb: dss: Handle return errors in dss_init_ports()
    
    
    [ Upstream commit 0348aaa34412e24ebe622a2b1b013e68d6ae5412 ]
    
    dss_init_ports() is not handling return errors from dpi_init_port() and
    sdi_init_port(). It is also always returning 0 currently which results in
    part of error handling code in dss_bind() being unused.
    
    Fix dss_init_ports() to handle return errors from dpi_init_port() and
    sdi_init_port().
    
    Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com>
    Cc: tomi.valkeinen@ti.com
    [b.zolnierkie: fail early on errors, minor fixups]
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d5721f4b3423bb669ad04114a03fa60085c078e1
Author: Yazen Ghannam <Yazen.Ghannam@amd.com>
Date:   Wed Mar 15 12:30:55 2017 -0500

    x86/mce: Init some CPU features early
    
    
    [ Upstream commit 5204bf17031b69fa5faa4dc80a9dc1e2446d74f9 ]
    
    When the MCA banks in __mcheck_cpu_init_generic() are polled for leftover
    errors logged during boot or from the previous boot, its required to have
    CPU features detected sufficiently so that the reading out and handling of
    those early errors is done correctly.
    
    If those features are not available, the decoding may miss some information
    and get incomplete errors logged. For example, on SMCA systems the MCA_IPID
    and MCA_SYND registers are not logged and MCA_ADDR is not masked
    appropriately.
    
    To cure that, do a subset of the basic feature detection early while the
    rest happens in its usual place in __mcheck_cpu_init_vendor().
    
    Signed-off-by: Yazen Ghannam <Yazen.Ghannam@amd.com>
    Cc: Tony Luck <tony.luck@intel.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: x86-ml <x86@kernel.org>
    Link: http://lkml.kernel.org/r/1489599055-20756-1-git-send-email-Yazen.Ghannam@amd.com
    [ Massage commit message and simplify. ]
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3649d93cb4e9df98d48a3860a6da7575478f0dd9
Author: Nik Unger <njunger@uwaterloo.ca>
Date:   Mon Mar 13 10:16:58 2017 -0700

    netem: apply correct delay when rate throttling
    
    
    [ Upstream commit 5080f39e8c72e01cf37e8359023e7018e2a4901e ]
    
    I recently reported on the netem list that iperf network benchmarks
    show unexpected results when a bandwidth throttling rate has been
    configured for netem. Specifically:
    
    1) The measured link bandwidth *increases* when a higher delay is added
    2) The measured link bandwidth appears higher than the specified limit
    3) The measured link bandwidth for the same very slow settings varies significantly across
      machines
    
    The issue can be reproduced by using tc to configure netem with a
    512kbit rate and various (none, 1us, 50ms, 100ms, 200ms) delays on a
    veth pair between network namespaces, and then using iperf (or any
    other network benchmarking tool) to test throughput. Complete detailed
    instructions are in the original email chain here:
    https://lists.linuxfoundation.org/pipermail/netem/2017-February/001672.html
    
    There appear to be two underlying bugs causing these effects:
    
    - The first issue causes long delays when the rate is slow and no
      delay is configured (e.g., "rate 512kbit"). This is because SKBs are
      not orphaned when no delay is configured, so orphaning does not
      occur until *after* the rate-induced delay has been applied. For
      this reason, adding a tiny delay (e.g., "rate 512kbit delay 1us")
      dramatically increases the measured bandwidth.
    
    - The second issue is that rate-induced delays are not correctly
      applied, allowing SKB delays to occur in parallel. The indended
      approach is to compute the delay for an SKB and to add this delay to
      the end of the current queue. However, the code does not detect
      existing SKBs in the queue due to improperly testing sch->q.qlen,
      which is nonzero even when packets exist only in the
      rbtree. Consequently, new SKBs do not wait for the current queue to
      empty. When packet delays vary significantly (e.g., if packet sizes
      are different), then this also causes unintended reordering.
    
    I modified the code to expect a delay (and orphan the SKB) when a rate
    is configured. I also added some defensive tests that correctly find
    the latest scheduled delivery time, even if it is (unexpectedly) for a
    packet in sch->q. I have tested these changes on the latest kernel
    (4.11.0-rc1+) and the iperf / ping test results are as expected.
    
    Signed-off-by: Nik Unger <njunger@uwaterloo.ca>
    Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 09bcb120a27be242f35432ddb671ba11786d8790
Author: Steve Lin <steven.lin1@broadcom.com>
Date:   Thu Mar 16 11:48:58 2017 -0400

    net: ethernet: bgmac: Allow MAC address to be specified in DTB
    
    
    [ Upstream commit 2f771399a3a2c371c140ff33544a583c6fbc5fd9 ]
    
    Allows the BCMA version of the bgmac driver to obtain MAC address
    from the device tree.  If no MAC address is specified there, then
    the previous behavior (obtaining MAC address from SPROM) is
    used.
    
    Signed-off-by: Steve Lin <steven.lin1@broadcom.com>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Acked-by: Jon Mason <jon.mason@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 056a442ef49544193148f7a449a1e72cb0d9635e
Author: Stefan Wahren <stefan.wahren@i2se.com>
Date:   Sat Mar 4 09:43:51 2017 +0000

    ARM: bcm2835: Enable missing CMA settings for VC4 driver
    
    
    [ Upstream commit bdd3c25423cb42171446940bca0946e0443e1a84 ]
    
    Currently bcm2835_defconfig has CMA disabled which makes the
    HDMI output on a Raspberry Pi 1 stop working during boot:
    
        fb: switching to vc4drmfb from simple
        Console: switching to colour dummy device 80x30
        [drm] Initialized vc4 0.0.0 20140616 for soc:gpu on minor 0
        [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
        [drm] Driver supports precise vblank timestamp query.
        vc4-drm soc:gpu: failed to allocate buffer with size 9216000
        vc4-drm soc:gpu: Failed to set initial hw configuration.
    
    So enable CMA and DMA_CMA in bcm2835_defconfig.
    
    Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
    Fixes: 4400d9ac05ee ("ARM: bcm2835: Enable the VC4 graphics driver in the defconfig")
    Reviewed-by: Eric Anholt <eric@anholt.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6e868c7504502cda721c0a814d3eac2594760f0
Author: Oliver Neukum <oneukum@suse.com>
Date:   Tue Mar 14 12:05:07 2017 +0100

    usb: misc: lvs: fix race condition in disconnect handling
    
    
    [ Upstream commit c4ba329cabca7c839ab48fb58b5bcc2582951a48 ]
    
    There is a small window during which the an URB may
    remain active after disconnect has returned. If in that case
    already freed memory may be accessed and executed.
    
    The fix is to poison the URB befotre the work is flushed.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 84b63638ca812f02f9fc79ee358146f9f8d310ab
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Wed Mar 8 18:03:32 2017 +0530

    ath10k: fix fetching channel during potential radar detection
    
    
    [ Upstream commit a28f6f27a88f047f03f04b9246ca260ebc91455e ]
    
    Fetch target operating channel during potential radar detection when
    the interface is just brought up, but no channel is assigned from
    userspace. In this scenario rx_channel may not be having a valid pointer
    hence fetch the target operating channel to avoid warnings as below
    which can be triggered by the commands with DFS testing over longer run
    
    comamnds:
    iw wlan1 set type mesh
    ifconfig wlan1 up (valid tgt_oper_chan only)
    iw wlan1 cac trigger freq 5260 HT20 (valid rx_channel, tgt_oper_chan)
    iw wlan1 cac trigger freq 5280 HT20
    iw wlan1 cac trigger freq 5300 HT20
    
    Once the CAC expires, current channel context will be removed and
    we are only left with the fallback option of using 'target operating
    channel'
    
    Firmware and driver log:
    ath: phy1: DFS: radar found on freq=5300: id=1, pri=1125, count=5,
    count_false=4
    ath: phy1: DFS: radar found on freq=5260: id=5, pri=3151, count=6,
    count_false=11
    ath: phy1: DFS: radar found on freq=5280: id=1, pri=1351, count=6,
    count_false=4
    ath: phy1: DFS: radar found on freq=5300: id=1, pri=1125, count=5,
    count_false=4
    ath10k_pci 0001:01:00.0: failed to derive channel for radar pulse,
    treating as radar
    ath10k_pci 0001:01:00.0: failed to derive channel for radar pulse,
    treating as radar
    
    Call trace:
    
    WARNING: CPU: 1 PID: 2145 at
    backports-20161201-3.14.77-9ab3068/net/wireless/chan.c:265
    cfg80211_set_dfs_state+0x3c/0x88 [cfg80211]()
    
     Workqueue: phy1 ieee80211_dfs_radar_detected_work
    [mac80211]
    [<c0320770>] (warn_slowpath_null) from [<bf79b90c>]
    (cfg80211_set_dfs_state+0x3c/0x88 [cfg80211])
    [<bf79b90c>] (cfg80211_set_dfs_state [cfg80211]) from
    [<bf79697c>] (cfg80211_radar_event+0xc4/0x140 [cfg80211])
    [<bf79697c>] (cfg80211_radar_event [cfg80211]) from
    [<bf83c058>] (ieee80211_dfs_radar_detected_work+0xa8/0xb4 [mac80211])
    [<bf83c058>] (ieee80211_dfs_radar_detected_work
    [mac80211]) from [<c0339518>] (process_one_work+0x298/0x4a4)
    
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6a528ebdf3ce081204854cea4b33aea37539b9c4
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Wed Feb 22 21:03:11 2017 +0530

    ath10k: disallow DFS simulation if DFS channel is not enabled
    
    
    [ Upstream commit ca07baab0b1e627ae1d4a55d190fb1c9d32a3445 ]
    
    If DFS is not enabled in hostapd (ieee80211h=0) DFS channels shall
    not be available for use even though the hardware may have the capability
    to support DFS. With this configuration (DFS disabled in hostapd) trying to
    bring up ath10k device in DFS channel for AP mode fails and trying to
    simulate DFS in ath10k debugfs results in a warning in cfg80211 complaining
    invalid channel and this should be avoided in the driver itself rather than
    false propogating RADAR detection to mac80211/cfg80211. Fix this by
    checking for the first vif 'is_started' state(should work for client mode
    as well) as all the vifs shall be configured for the same channel
    
    sys/kernel/debug/ieee80211/phy1/ath10k# echo 1 > dfs_simulate_radar
    
    WARNING: at net/wireless/chan.c:265 cfg80211_radar_event+0x24/0x60
    Workqueue: phy0 ieee80211_dfs_radar_detected_work [mac80211]
    [<c022f2d4>] (warn_slowpath_null) from
    [<bf72dab8>] (cfg80211_radar_event+0x24/0x60 [cfg80211])
    [<bf72dab8>] (cfg80211_radar_event [cfg80211]) from
    [<bf7813e0>] (ieee80211_dfs_radar_detected_work+0x94/0xa0 [mac80211])
    [<bf7813e0>] (ieee80211_dfs_radar_detected_work [mac80211]) from
    [<c0242320>] (process_one_work+0x20c/0x32c)
    
    WARNING: at net/wireless/nl80211.c:2488 nl80211_get_mpath+0x13c/0x4cc
     Workqueue: phy0 ieee80211_dfs_radar_detected_work [mac80211]
    [<c022f2d4>] (warn_slowpath_null) from
    [<bf72dab8>] (cfg80211_radar_event+0x24/0x60 [cfg80211])
    [<bf72dab8>] (cfg80211_radar_event [cfg80211]) from
    [<bf7813e0>] (ieee80211_dfs_radar_detected_work+0x94/0xa0 [mac80211])
    [<bf7813e0>] (ieee80211_dfs_radar_detected_work [mac80211]) from
    [<c0242320>] (process_one_work+0x20c/0x32c)
    
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80ec67573b9508bce7f10a80f01b78fb7c9cb1c2
Author: Chris Wilson <chris@chris-wilson.co.uk>
Date:   Wed Mar 15 20:40:25 2017 +0000

    drm: Defer disabling the vblank IRQ until the next interrupt (for instant-off)
    
    
    [ Upstream commit 608b20506941969ea30d8c08dc9ae02bb87dbf7d ]
    
    On vblank instant-off systems, we can get into a situation where the cost
    of enabling and disabling the vblank IRQ around a drmWaitVblank query
    dominates. And with the advent of even deeper hardware sleep state,
    touching registers becomes ever more expensive.  However, we know that if
    the user wants the current vblank counter, they are also very likely to
    immediately queue a vblank wait and so we can keep the interrupt around
    and only turn it off if we have no further vblank requests queued within
    the interrupt interval.
    
    After vblank event delivery, this patch adds a shadow of one vblank where
    the interrupt is kept alive for the user to query and queue another vblank
    event. Similarly, if the user is using blocking drmWaitVblanks, the
    interrupt will be disabled on the IRQ following the wait completion.
    However, if the user is simply querying the current vblank counter and
    timestamp, the interrupt will be disabled after every IRQ and the user
    will enabled it again on the first query following the IRQ.
    
    v2: Mario Kleiner -
    After testing this, one more thing that would make sense is to move
    the disable block at the end of drm_handle_vblank() instead of at the
    top.
    
    Turns out that if high precision timestaming is disabled or doesn't
    work for some reason (as can be simulated by echo 0 >
    /sys/module/drm/parameters/timestamp_precision_usec), then with your
    delayed disable code at its current place, the vblank counter won't
    increment anymore at all for instant queries, ie. with your other
    "instant query" patches. Clients which repeatedly query the counter
    and wait for it to progress will simply hang, spinning in an endless
    query loop. There's that comment in vblank_disable_and_save:
    
    "* Skip this step if there isn't any high precision timestamp
     * available. In that case we can't account for this and just
     * hope for the best.
     */
    
    With the disable happening after leading edge of vblank (== hw counter
    increment already happened) but before the vblank counter/timestamp
    handling in drm_handle_vblank, that step is needed to keep the counter
    progressing, so skipping it is bad.
    
    Now without high precision timestamping support, a kms driver must not
    set dev->vblank_disable_immediate = true, as this would cause problems
    for clients, so this shouldn't matter, but it would be good to still
    make this robust against a future kms driver which might have
    unreliable high precision timestamping, e.g., high precision
    timestamping that intermittently doesn't work.
    
    v3: Patch before coffee needs extra coffee.
    
    Testcase: igt/kms_vblank
    Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    Cc: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Michel Dänzer <michel@daenzer.net>
    Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Cc: Dave Airlie <airlied@redhat.com>,
    Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
    Reviewed-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170315204027.20160-1-chris@chris-wilson.co.uk
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 671eeac5358a15b9bb69d146ef5a3d4d54eb7b5b
Author: Iyappan Subramanian <isubramanian@apm.com>
Date:   Wed Mar 15 13:27:18 2017 -0700

    drivers: net: xgene: Fix Rx checksum validation logic
    
    
    [ Upstream commit 0a0400c3094b5d5cedd479ddbf1329de74c09c4b ]
    
    This patch fixes Rx checksum validation logic and
    adds NETIF_F_RXCSUM flag.
    
    Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67622b81288413e28fca6d94338c66a0b08797a5
Author: Quan Nguyen <qnguyen@apm.com>
Date:   Wed Mar 15 13:27:17 2017 -0700

    drivers: net: xgene: Fix wrong logical operation
    
    
    [ Upstream commit 11623fce0f9afef30c45e3f2120b063de3809a8f ]
    
    This patch fixes the wrong logical OR operation by changing it to
    bit-wise OR operation.
    
    Fixes: 3bb502f83080 ("drivers: net: xgene: fix statistics counters race condition")
    Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
    Signed-off-by: Quan Nguyen <qnguyen@apm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 054221c210227e3b8b325c1459443518eeea2cd1
Author: Quan Nguyen <qnguyen@apm.com>
Date:   Wed Mar 15 13:27:15 2017 -0700

    drivers: net: phy: xgene: Fix mdio write
    
    
    [ Upstream commit 4b72436dc3dd2457056b22d6f147777368c869fa ]
    
    This patches fixes a typo in the argument to xgene_enet_wr_mdio_csr().
    
    Signed-off-by: Quan Nguyen <qnguyen@apm.com>
    Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c82b5831a27319b7f3793bdd17145b3551963d21
Author: Quan Nguyen <qnguyen@apm.com>
Date:   Wed Mar 15 13:27:16 2017 -0700

    drivers: net: xgene: Fix hardware checksum setting
    
    
    [ Upstream commit e026e700d940a1ea3d3bc84d92ac668b1f015462 ]
    
    This patch fixes the hardware checksum settings by properly program
    the classifier. Otherwise, packet may be received with checksum error
    on X-Gene1 SoC.
    
    Signed-off-by: Quan Nguyen <qnguyen@apm.com>
    Signed-off-by: Iyappan Subramanian <isubramanian@apm.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f0dd1b26deb476853f0f8ae87695a73e348f5ca8
Author: Al Cooper <alcooperx@gmail.com>
Date:   Thu Mar 9 10:51:18 2017 -0800

    ARM: brcmstb: Enable ZONE_DMA for non 64-bit capable peripherals
    
    
    [ Upstream commit 3c51b9c7f1fae00c25f1e34da649a288e3fea1ae ]
    
    Some Host Controller hardware blocks, like the OHCI, EHCI and SDIO
    controllers, have hardware blocks that are not capable of doing 64 bit
    DMA. These host controllers fail on boards with >3GB of memory because
    the memory above 3GB is located physically >= 0x100000000 and can only
    be accessed using 64 DMA. The way Linux is currently configured for
    BRCMSTB systems, the memory given to drivers for DMA through functions
    like dma_alloc_coherent() comes from CMA memory and CMA memory is taken
    from the top of physical memory. When these drivers get a DMA buffer
    with an address >=0x100000000, they end up dropping the upper 32 bit of
    the address causing the hardware to DMA to incorrect memory, typically
    BMEM (custom memory carveout). This issue was discovered on a
    BCM97449SSV_DDR4 system with 4GB or memory.
    
    The fix is to enable CONFIG_ZONE_DMA. On ARM systems this makes sure
    that all DMA memory is located within the first 32 bits of address
    space.
    
    Signed-off-by: Al Cooper <alcooperx@gmail.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ceb6ef4e333e064307a79877c7b23b891a8d95ff
Author: Stephane Eranian <eranian@google.com>
Date:   Wed Mar 15 10:17:13 2017 -0700

    perf tools: Make perf_event__synthesize_mmap_events() scale
    
    
    [ Upstream commit 88b897a30c525c2eee6e7f16e1e8d0f18830845e ]
    
    This patch significantly improves the execution time of
    perf_event__synthesize_mmap_events() when running perf record on systems
    where processes have lots of threads.
    
    It just happens that cat /proc/pid/maps support uses a O(N^2) algorithm to
    generate each map line in the maps file.  If you have 1000 threads, then you
    have necessarily 1000 stacks.  For each vma, you need to check if it
    corresponds to a thread's stack.  With a large number of threads, this can take
    a very long time. I have seen latencies >> 10mn.
    
    As of today, perf does not use the fact that a mapping is a stack, therefore we
    can work around the issue by using /proc/pid/tasks/pid/maps.  This entry does
    not try to map a vma to stack and is thus much faster with no loss of
    functonality.
    
    The proc-map-timeout logic is kept in case users still want some upper limit.
    
    In V2, we fix the file path from /proc/pid/tasks/pid/maps to actual
    /proc/pid/task/pid/maps, tasks -> task.  Thanks Arnaldo for catching this.
    
    Committer note:
    
    This problem seems to have been elliminated in the kernel since commit :
    b18cb64ead40 ("fs/proc: Stop trying to report thread stacks").
    
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20170315135059.GC2177@redhat.com
    Link: http://lkml.kernel.org/r/1489598233-25586-1-git-send-email-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit daf88438c5a30b24b784a3b7cb95a780d733dc12
Author: Lihong Yang <lihong.yang@intel.com>
Date:   Mon Jan 30 12:29:32 2017 -0800

    i40e: fix ethtool to get EEPROM data from X722 interface
    
    
    [ Upstream commit c271dd6c391b535226cf1a81aaad9f33cb5899d3 ]
    
    Currently ethtool -e will error out with a X722 interface
    as its EEPROM has a scope limit at offset 0x5B9FFF.
    This patch fixes the issue by setting the EEPROM length to
    the scope limit to avoid NVM read failure beyond that.
    
    Change-ID: I0b7d4dd6c7f2a57cace438af5dffa0f44c229372
    Signed-off-by: Lihong Yang <lihong.yang@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6297c56c5e7fe3dd1ade273774f3ffc8451b6d71
Author: Aaron Salter <aaron.k.salter@intel.com>
Date:   Fri Dec 2 12:33:02 2016 -0800

    i40e: Acquire NVM lock before reads on all devices
    
    
    [ Upstream commit 96a39aed25e6559b160786117df124084feb9080 ]
    
    Acquire NVM lock before reads on all devices.  Previously, locks were
    only used for X722 and later.  Fixes an issue where simultaneous X710
    NVM accesses were interfering with each other.
    
    Change-ID: If570bb7acf958cef58725ec2a2011cead6f80638
    Signed-off-by: Aaron Salter <aaron.k.salter@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41beba9840d7967ac4b6636b42bad6af3fb18fa5
Author: Greg KH <gregkh@linuxfoundation.org>
Date:   Wed Mar 8 19:03:03 2017 +0100

    eventpoll.h: fix epoll event masks
    
    
    [ Upstream commit 6f051e4a685b768f3704c7c069aa1edee3010622 ]
    
    [resend due to me forgetting to cc: linux-api the first time around I
    posted these back on Feb 23]
    
    From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    When userspace tries to use these defines, it complains that it needs to
    be an unsigned 1 that is shifted, so libc implementations have to create
    their own version.  Fix this by defining it properly so that libcs can
    just use the kernel uapi header.
    
    Reported-by: Elliott Hughes <enh@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fdfc3fa74511d687dbf626248b671cbe861c7c04
Author: Xunlei Pang <xlpang@redhat.com>
Date:   Mon Mar 13 10:50:19 2017 +0100

    x86/mce: Handle broadcasted MCE gracefully with kexec
    
    
    [ Upstream commit 5bc329503e8191c91c4c40836f062ef771d8ba83 ]
    
    When we are about to kexec a crash kernel and right then and there a
    broadcasted MCE fires while we're still in the first kernel and while
    the other CPUs remain in a holding pattern, the #MC handler of the
    first kernel will timeout and then panic due to never completing MCE
    synchronization.
    
    Handle this in a similar way as to when the CPUs are offlined when that
    broadcasted MCE happens.
    
    [ Boris: rewrote commit message and comments. ]
    
    Suggested-by: Borislav Petkov <bp@alien8.de>
    Signed-off-by: Xunlei Pang <xlpang@redhat.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Tony Luck <tony.luck@intel.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: kexec@lists.infradead.org
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Link: http://lkml.kernel.org/r/1487857012-9059-1-git-send-email-xlpang@redhat.com
    Link: http://lkml.kernel.org/r/20170313095019.19351-1-bp@alien8.de
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56eac6842374eea81ce30147124cc005d491d722
Author: Changbin Du <changbin.du@intel.com>
Date:   Mon Mar 13 16:31:48 2017 +0800

    perf sort: Fix segfault with basic block 'cycles' sort dimension
    
    
    [ Upstream commit 4b0b3aa6a2756e6115fdf275c521e4552a7082f3 ]
    
    Skip the sample which doesn't have branch_info to avoid segmentation
    fault:
    
    The fault can be reproduced by:
    
      perf record -a
      perf report -F cycles
    
    Signed-off-by: Changbin Du <changbin.du@intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Fixes: 0e332f033a82 ("perf tools: Add support for cycles, weight branch_info field")
    Link: http://lkml.kernel.org/r/20170313083148.23568-1-changbin.du@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45142b2857789947a5f3d0e5fdfbb93ecac9eaf0
Author: Dmitry Safonov <dsafonov@virtuozzo.com>
Date:   Mon Mar 6 17:17:20 2017 +0300

    x86/mm: Make mmap(MAP_32BIT) work correctly
    
    
    [ Upstream commit 3e6ef9c80946f781fc25e8490c9875b1d2b61158 ]
    
    mmap(MAP_32BIT) is broken due to the dependency on the TIF_ADDR32 thread
    flag.
    
    For 64bit applications MAP_32BIT will force legacy bottom-up allocations and
    the 1GB address space restriction even if the application issued a compat
    syscall, which should not be subject of these restrictions.
    
    For 32bit applications, which issue 64bit syscalls the newly introduced
    mmap base separation into 64-bit and compat bases changed the behaviour
    because now a 64-bit mapping is returned, but due to the TIF_ADDR32
    dependency MAP_32BIT is ignored. Before the separation a 32-bit mapping was
    returned, so the MAP_32BIT handling was irrelevant.
    
    Replace the check for TIF_ADDR32 with a check for the compat syscall. That
    solves both the 64-bit issuing a compat syscall and the 32-bit issuing a
    64-bit syscall problems.
    
    [ tglx: Massaged changelog ]
    
    Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
    Cc: 0x7f454c46@gmail.com
    Cc: linux-mm@kvack.org
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
    Link: http://lkml.kernel.org/r/20170306141721.9188-5-dsafonov@virtuozzo.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b243aa88a72263289f962844e8665157a53669d1
Author: Alexander Potapenko <glider@google.com>
Date:   Mon Mar 6 19:46:14 2017 +0100

    selinux: check for address length in selinux_socket_bind()
    
    
    [ Upstream commit e2f586bd83177d22072b275edd4b8b872daba924 ]
    
    KMSAN (KernelMemorySanitizer, a new error detection tool) reports use of
    uninitialized memory in selinux_socket_bind():
    
    ==================================================================
    BUG: KMSAN: use of unitialized memory
    inter: 0
    CPU: 3 PID: 1074 Comm: packet2 Tainted: G    B           4.8.0-rc6+ #1916
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
     0000000000000000 ffff8800882ffb08 ffffffff825759c8 ffff8800882ffa48
     ffffffff818bf551 ffffffff85bab870 0000000000000092 ffffffff85bab550
     0000000000000000 0000000000000092 00000000bb0009bb 0000000000000002
    Call Trace:
     [<     inline     >] __dump_stack lib/dump_stack.c:15
     [<ffffffff825759c8>] dump_stack+0x238/0x290 lib/dump_stack.c:51
     [<ffffffff818bdee6>] kmsan_report+0x276/0x2e0 mm/kmsan/kmsan.c:1008
     [<ffffffff818bf0fb>] __msan_warning+0x5b/0xb0 mm/kmsan/kmsan_instr.c:424
     [<ffffffff822dae71>] selinux_socket_bind+0xf41/0x1080 security/selinux/hooks.c:4288
     [<ffffffff8229357c>] security_socket_bind+0x1ec/0x240 security/security.c:1240
     [<ffffffff84265d98>] SYSC_bind+0x358/0x5f0 net/socket.c:1366
     [<ffffffff84265a22>] SyS_bind+0x82/0xa0 net/socket.c:1356
     [<ffffffff81005678>] do_syscall_64+0x58/0x70 arch/x86/entry/common.c:292
     [<ffffffff8518217c>] entry_SYSCALL64_slow_path+0x25/0x25 arch/x86/entry/entry_64.o:?
    chained origin: 00000000ba6009bb
     [<ffffffff810bb7a7>] save_stack_trace+0x27/0x50 arch/x86/kernel/stacktrace.c:67
     [<     inline     >] kmsan_save_stack_with_flags mm/kmsan/kmsan.c:322
     [<     inline     >] kmsan_save_stack mm/kmsan/kmsan.c:337
     [<ffffffff818bd2b8>] kmsan_internal_chain_origin+0x118/0x1e0 mm/kmsan/kmsan.c:530
     [<ffffffff818bf033>] __msan_set_alloca_origin4+0xc3/0x130 mm/kmsan/kmsan_instr.c:380
     [<ffffffff84265b69>] SYSC_bind+0x129/0x5f0 net/socket.c:1356
     [<ffffffff84265a22>] SyS_bind+0x82/0xa0 net/socket.c:1356
     [<ffffffff81005678>] do_syscall_64+0x58/0x70 arch/x86/entry/common.c:292
     [<ffffffff8518217c>] return_from_SYSCALL_64+0x0/0x6a arch/x86/entry/entry_64.o:?
    origin description: ----address@SYSC_bind (origin=00000000b8c00900)
    ==================================================================
    
    (the line numbers are relative to 4.8-rc6, but the bug persists upstream)
    
    , when I run the following program as root:
    
    =======================================================
      #include <string.h>
      #include <sys/socket.h>
      #include <netinet/in.h>
    
      int main(int argc, char *argv[]) {
        struct sockaddr addr;
        int size = 0;
        if (argc > 1) {
          size = atoi(argv[1]);
        }
        memset(&addr, 0, sizeof(addr));
        int fd = socket(PF_INET6, SOCK_DGRAM, IPPROTO_IP);
        bind(fd, &addr, size);
        return 0;
      }
    =======================================================
    
    (for different values of |size| other error reports are printed).
    
    This happens because bind() unconditionally copies |size| bytes of
    |addr| to the kernel, leaving the rest uninitialized. Then
    security_socket_bind() reads the IP address bytes, including the
    uninitialized ones, to determine the port, or e.g. pass them further to
    sel_netnode_find(), which uses them to calculate a hash.
    
    Signed-off-by: Alexander Potapenko <glider@google.com>
    Acked-by: Eric Dumazet <edumazet@google.com>
    [PM: fixed some whitespace damage]
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bae359c00b391644ebf813ee3dfb17549e09b5ef
Author: Prarit Bhargava <prarit@redhat.com>
Date:   Thu Jan 26 14:07:47 2017 -0500

    PCI/MSI: Stop disabling MSI/MSI-X in pci_device_shutdown()
    
    
    [ Upstream commit fda78d7a0ead144f4b2cdb582dcba47911f4952c ]
    
    The pci_bus_type .shutdown method, pci_device_shutdown(), is called from
    device_shutdown() in the kernel restart and shutdown paths.
    
    Previously, pci_device_shutdown() called pci_msi_shutdown() and
    pci_msix_shutdown().  This disables MSI and MSI-X, which causes the device
    to fall back to raising interrupts via INTx.  But the driver is still bound
    to the device, it doesn't know about this change, and it likely doesn't
    have an INTx handler, so these INTx interrupts cause "nobody cared"
    warnings like this:
    
      irq 16: nobody cared (try booting with the "irqpoll" option)
      CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.8.2-1.el7_UNSUPPORTED.x86_64 #1
      Hardware name: Hewlett-Packard HP Z820 Workstation/158B, BIOS J63 v03.90 06/
      ...
    
    The MSI disabling code was added by d52877c7b1af ("pci/irq: let
    pci_device_shutdown to call pci_msi_shutdown v2") because a driver left MSI
    enabled and kdump failed because the kexeced kernel wasn't prepared to
    receive the MSI interrupts.
    
    Subsequent commits 1851617cd2da ("PCI/MSI: Disable MSI at enumeration even
    if kernel doesn't support MSI") and  e80e7edc55ba ("PCI/MSI: Initialize MSI
    capability for all architectures") changed the kexeced kernel to disable
    all MSIs itself so it no longer depends on the crashed kernel to clean up
    after itself.
    
    Stop disabling MSI/MSI-X in pci_device_shutdown().  This resolves the
    "nobody cared" unhandled IRQ issue above.  It also allows PCI serial
    devices, which may rely on the MSI interrupts, to continue outputting
    messages during reboot/shutdown.
    
    [bhelgaas: changelog, drop pci_msi_shutdown() and pci_msix_shutdown() calls
    altogether]
    Fixes: https://bugzilla.kernel.org/show_bug.cgi?id=187351
    Signed-off-by: Prarit Bhargava <prarit@redhat.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    CC: Alex Williamson <alex.williamson@redhat.com>
    CC: David Arcari <darcari@redhat.com>
    CC: Myron Stowe <mstowe@redhat.com>
    CC: Lukas Wunner <lukas@wunner.de>
    CC: Keith Busch <keith.busch@intel.com>
    CC: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d2c5e9a5a4d64d416ff30a0f29994b6341b22b6
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Thu Mar 9 18:05:24 2017 +0800

    drm/sun4i: Fix TCON clock and regmap initialization sequence
    
    
    [ Upstream commit 4c7f16d14a33a9cfb4af9cb780d8a73bcca64a92 ]
    
    The TCON driver calls sun4i_tcon_init_regmap and sun4i_tcon_init_clocks
    in its bind function. The former creates a regmap and writes to several
    register to clear its configuration to a known default. The latter
    initializes various clocks. This includes enabling the bus clock for
    register access and creating the dotclock.
    
    In order for the first step's writes to work, the bus clock must be
    enabled which is done in the second step. but the dotclock's ops use
    the regmap created in the first step.
    
    Rearrange the function calls such that the clocks are initialized before
    the regmap, and split out the dot clock creation to after the regmap is
    initialized.
    
    Fixes: 9026e0d122ac ("drm: Add Allwinner A10 Display Engine support")
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5d2db0dbb1939cbd08c02e225795459fdfccc948
Author: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
Date:   Wed Mar 8 13:52:06 2017 +0200

    ath10k: fix a warning during channel switch with multiple vaps
    
    
    [ Upstream commit c73f8c00330f59ce9b1ace9ff698aca83390d358 ]
    
    Doing a channel switch via hostapd_cli seems to update
    the new channel context for each VAP's appropriately as below
    in 'ath10k_mac_update_vif_chan', hence we can safely suppress the
    warning that shows up during this operation and dump the warning only
    if no vaps are available for channel switch
    
    hostapd_cli -i wlan0 chan_switch 5 5200
    OK
    
    ath10k_pci : mac chanctx switch n_vifs 3 mode 1
    ath10k_pci : mac chanctx switch vdev_id 2 freq 5180->5200 width 0->0
    ath10k_pci : mac chanctx switch vdev_id 1 freq 5180->5200 width 0->0
    ath10k_pci : mac chanctx switch vdev_id 0 freq 5180->5200 width 0->0
    
    Call Trace:
    
    WARNING: backports-20161201-3.14.77-9ab3068/drivers/net/wireless/ath/ath10k/mac.c:7126
    [<c022f2d4>] (warn_slowpath_null) from [<bf7f150c>]
    (ath10k_reconfig_complete+0xe4/0x25c [ath10k_core])
    [<bf7f150c>] (ath10k_reconfig_complete [ath10k_core])
    [<bf7f35f0>] (ath10k_mac_vif_ap_csa_work+0x214/0x370 [ath10k_core])
    [<bf7f38b8>] (ath10k_mac_op_change_chanctx+0x108/0x128 [ath10k_core])
    [<bf782ac0>] (ieee80211_recalc_chanctx_min_def+0x30c/0x430 [mac80211])
    [<bf7830a4>] (ieee80211_recalc_smps_chanctx+0x2ec/0x840 [mac80211])
    [<bf7843e8>] (ieee80211_vif_use_reserved_context+0x7c/0xf8 [mac80211])
    [<bf7843e8>] (ieee80211_vif_use_reserved_context [mac80211])
    [<bf76e5d4>] (ieee80211_csa_finalize_work+0x5c/0x88 [mac80211])
    
    Fixes: d7bf4b4aba05 ("ath10k: fix ar->rx_channel updating logic")
    Signed-off-by: Mohammed Shafi Shajakhan <mohammed@qti.qualcomm.com>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c1315eea94ea76395918d6f5e9285de82ca023f7
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Thu Feb 23 16:05:34 2017 +0800

    drm/sun4i: Set drm_crtc.port to the underlying TCON's output port node
    
    
    [ Upstream commit 7544860733d158e3edbf309f27e79e258c8f66bd ]
    
    The way drm_of_find_possible_crtcs works is it tries to match the
    remote-endpoint of the given node's various endpoints to all the
    crtc's .port field. Thus we need to set drm_crtc.port to the output
    port node of the underlying TCON.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c4b9440c5c3490fb702ff3029f3e54ee9a2be91
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Fri Feb 17 11:13:25 2017 +0800

    drm/sun4i: Fix up error path cleanup for master bind function
    
    
    [ Upstream commit 9d56defb44b15427f4342c543a70fb7886fc06f5 ]
    
    The master bind function calls numerous drm functions which initialize
    underlying structures. It also tries to bind the various components
    of the display pipeline, some of which may add additional drm objects.
    
    This patch adds proper cleanup functions in the error path of the
    master bind function.
    
    This requires the patch "drm/sun4i: Move drm_mode_config_cleanup call
    to main driver", which splits out drm_mode_config_cleanup from
    sun4i_framebuffer_free so we can call it separately.
    
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3aa10f5387fa55a94f312524e11e05d972ad06cd
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Fri Mar 3 14:18:17 2017 +0100

    arm64: dts: r8a7796: Remove unit-address and reg from integrated cache
    
    
    [ Upstream commit 57a4fd420c6e8a04b6a87ff24d34250cd7c48f15 ]
    
    The Cortex-A57 cache controller is an integrated controller, and thus
    the device node representing it should not have a unit-addresses or reg
    property.
    
    Fixes: 1561f20760ec96db ("arm64: dts: r8a7796: Add Renesas R8A7796 SoC support")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b54a9bb7efdf146aa8a643f3ac40784394198333
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Mar 6 17:40:43 2017 +0100

    ARM: dts: r8a7794: Remove unit-address and reg from integrated cache
    
    
    [ Upstream commit 65d0b7ed40f8a3a41a0ac5ed5ca4d1874c6aaf2d ]
    
    The Cortex-A7 cache controller is an integrated controller, and thus the
    device node representing it should not have a unit-addresses or reg
    property.
    
    Fixes: 34ea4b4a827b4ee7 ("ARM: dts: r8a7794: Fix W=1 dtc warnings")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c62dc6051d854d99202d2fdced543e8706a6c219
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Mar 6 17:40:42 2017 +0100

    ARM: dts: r8a7793: Remove unit-address and reg from integrated cache
    
    
    [ Upstream commit beffa8872a3680ef804eb0320ec77037170f4686 ]
    
    The Cortex-A15 cache controller is an integrated controller, and thus
    the device node representing it should not have a unit-addresses or reg
    property.
    
    Fixes: ad53f5f00b095a0d ("ARM: dts: r8a7793: Fix W=1 dtc warnings")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba2f98696ad210f01d86751f3b3898c062d44d8a
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Mar 6 17:40:41 2017 +0100

    ARM: dts: r8a7792: Remove unit-address and reg from integrated cache
    
    
    [ Upstream commit a0504f0880c11da301dc2b5a5135bd02376e367e ]
    
    The Cortex-A15 cache controller is an integrated controller, and thus
    the device node representing it should not have a unit-addresses or reg
    property.
    
    Fixes: 7c4163aae3d8e5b9 ("ARM: dts: r8a7792: initial SoC device tree")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 88787c040211d0a809c71c444e05208d825ad614
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Mar 6 17:40:40 2017 +0100

    ARM: dts: r8a7791: Remove unit-address and reg from integrated cache
    
    
    [ Upstream commit 5d6a2165abd4635ecf5ece3d02fe8677f00d32c5 ]
    
    The Cortex-A15 cache controller is an integrated controller, and thus
    the device node representing it should not have a unit-addresses or reg
    property.
    
    Fixes: 6f9314ce258c8504 ("ARM: dts: r8a7791: Fix W=1 dtc warnings")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23c475fa7124f1174d417cd378e6b4d363856081
Author: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
Date:   Mon Feb 27 17:33:30 2017 -0300

    drm: qxl: Don't alloc fbdev if emulation is not supported
    
    
    [ Upstream commit 861078381ba56b56808113736000d9e7ead349c8 ]
    
    If fbdev emulation is disabled, the QXL shutdown path will try to clean
    a framebuffer that wasn't initialized, hitting the Oops below.  The
    problem is that even when FBDEV_EMULATION is disabled we allocate the
    qfbdev strutucture, but we don't initialize it.  The fix is to stop
    allocating the memory, since it won't be used.  This allows the existing
    verification in the cleanup hook to do it's job preventing the oops.
    
    Now that we don't allocate the unused fbdev structure, we need to be
    careful when dereferencing it in the PM suspend hook.
    
    [   24.284684] BUG: unable to handle kernel NULL pointer dereference at 00000000000002e0
    [   24.285627] IP: mutex_lock+0x18/0x30
    [   24.286049] PGD 78cdf067
    [   24.286050] PUD 7940f067
    [   24.286344] PMD 0
    [   24.286649]
    [   24.287072] Oops: 0002 [#1] SMP
    [   24.287422] Modules linked in: qxl
    [   24.287806] CPU: 0 PID: 2328 Comm: bash Not tainted 4.10.0-rc5+ #97
    [   24.288515] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014
    [   24.289681] task: ffff88007c4c0000 task.stack: ffffc90001b58000
    [   24.290354] RIP: 0010:mutex_lock+0x18/0x30
    [   24.290812] RSP: 0018:ffffc90001b5bcb0 EFLAGS: 00010246
    [   24.291401] RAX: 0000000000000000 RBX: 00000000000002e0 RCX: 0000000000000000
    [   24.292209] RDX: ffff88007c4c0000 RSI: 0000000000000001 RDI: 00000000000002e0
    [   24.292987] RBP: ffffc90001b5bcb8 R08: fffffffffffffffe R09: 0000000000000001
    [   24.293797] R10: ffff880078d80b80 R11: 0000000000011400 R12: 0000000000000000
    [   24.294601] R13: 00000000000002e0 R14: ffffffffa0009c28 R15: 0000000000000060
    [   24.295439] FS:  00007f30e3acbb40(0000) GS:ffff88007fc00000(0000) knlGS:0000000000000000
    [   24.296364] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   24.296997] CR2: 00000000000002e0 CR3: 0000000078c7b000 CR4: 00000000000006f0
    [   24.297813] Call Trace:
    [   24.298097]  drm_framebuffer_cleanup+0x1f/0x70
    [   24.298612]  qxl_fbdev_fini+0x68/0x90 [qxl]
    [   24.299074]  qxl_modeset_fini+0xd/0x30 [qxl]
    [   24.299562]  qxl_pci_remove+0x22/0x50 [qxl]
    [   24.300025]  pci_device_remove+0x34/0xb0
    [   24.300507]  device_release_driver_internal+0x150/0x200
    [   24.301082]  device_release_driver+0xd/0x10
    [   24.301587]  unbind_store+0x108/0x150
    [   24.301993]  drv_attr_store+0x20/0x30
    [   24.302402]  sysfs_kf_write+0x32/0x40
    [   24.302827]  kernfs_fop_write+0x108/0x190
    [   24.303269]  __vfs_write+0x23/0x120
    [   24.303678]  ? security_file_permission+0x36/0xb0
    [   24.304193]  ? rw_verify_area+0x49/0xb0
    [   24.304636]  vfs_write+0xb0/0x190
    [   24.305004]  SyS_write+0x41/0xa0
    [   24.305362]  entry_SYSCALL_64_fastpath+0x1a/0xa9
    [   24.305887] RIP: 0033:0x7f30e31d9620
    [   24.306285] RSP: 002b:00007ffc54b47e68 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    [   24.307128] RAX: ffffffffffffffda RBX: 00007f30e3497600 RCX: 00007f30e31d9620
    [   24.307928] RDX: 000000000000000d RSI: 0000000000da2008 RDI: 0000000000000001
    [   24.308727] RBP: 000000000070bc60 R08: 00007f30e3498760 R09: 00007f30e3acbb40
    [   24.309504] R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000001
    [   24.310295] R13: 0000000000000000 R14: 0000000000000000 R15: 00007ffc54b47f34
    [   24.311095] Code: 0e 01 e9 7b fe ff ff 66 90 66 2e 0f 1f 84 00 00 00 00 00
    55 48 89 e5 53 48 89 fb e8 83 e8 ff ff 65 48 8b 14 25 40 c4 00 00 31 c0 <3e>
    48 0f b1 13 48 85 c0 74 08 48 89 df e8 66 fd ff ff 5b 5d c3
    [   24.313182] RIP: mutex_lock+0x18/0x30 RSP: ffffc90001b5bcb0
    [   24.313811] CR2: 00000000000002e0
    [   24.314208] ---[ end trace 29669c1593cae14b ]---
    
    Signed-off-by: Gabriel Krisman Bertazi <krisman@collabora.co.uk>
    Link: http://patchwork.freedesktop.org/patch/msgid/20170227203330.18542-1-krisman@collabora.co.uk
    Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 953468bda711fe7ab68235a9a4ae3ca67698736f
Author: Valtteri Heikkilä <rnd@nic.fi>
Date:   Tue Feb 14 23:14:32 2017 +0000

    HID: reject input outside logical range only if null state is set
    
    
    [ Upstream commit 3f3752705dbd50b66b66ad7b4d54fe33d2f746ed ]
    
    This patch fixes an issue in drivers/hid/hid-input.c where USB HID
    control null state flag is not checked upon rejecting inputs outside
    logical minimum-maximum range. The check should be made according to USB
    HID specification 1.11, section 6.2.2.5, p.31. The fix will resolve
    issues with some game controllers, such as:
    https://bugzilla.kernel.org/show_bug.cgi?id=68621
    
    [tk@the-tk.com: shortened and fixed spelling in commit message]
    Signed-off-by: Valtteri Heikkilä <rnd@nic.fi>
    Signed-off-by: Tomasz Kramkowski <tk@the-tk.com>
    Acked-By: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8f6cd2d0c0f37b272833d88604ce7f82fd05b167
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Feb 28 11:47:33 2017 +0000

    staging: wilc1000: add check for kmalloc allocation failure.
    
    
    [ Upstream commit 6cc0c259d034c6ab48f4e12f505213988e73d380 ]
    
    Add a sanity check that wid.val has been allocated, fixes a null
    pointer deference on stamac when calling ether_add_copy.
    
    Detected by CoverityScan, CID#1369537 ("Dereference null return value")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 74cf9ab7d1de72a022519991a9b27ea1510c4c9f
Author: Varsha Rao <rvarsha016@gmail.com>
Date:   Sat Feb 25 17:53:58 2017 +0530

    staging: speakup: Replace BUG_ON() with WARN_ON().
    
    
    [ Upstream commit d351c2db5420bb17dcd2d9aac7ddb5f64c6d04b3 ]
    
    BUG_ON() is replaced with WARN_ON() and EINVAL is returned, when
    WARN_ON() is true. This fixes the following checkpatch issue:
    
    Avoid crashing the kernel - try using WARN_ON & recovery code rather
    than BUG() or BUG_ON().
    
    Signed-off-by: Varsha Rao <rvarsha016@gmail.com>
    Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0119cd440cbe54e82f2a1b2e62ba9b38231fe2f
Author: Borislav Petkov <bp@suse.de>
Date:   Tue Feb 7 01:40:05 2017 +0100

    perf stat: Issue a HW watchdog disable hint
    
    
    [ Upstream commit 02d492e5dcb72c004d213756eb87c9d62a6d76a7 ]
    
    When using perf stat on an AMD F15h system with the default hw events
    attributes, some of the events don't get counted:
    
     Performance counter stats for 'sleep 1':
    
              0.749208      task-clock (msec)         #    0.001 CPUs utilized
                     1      context-switches          #    0.001 M/sec
                     0      cpu-migrations            #    0.000 K/sec
                    54      page-faults               #    0.072 M/sec
             1,122,815      cycles                    #    1.499 GHz
               286,740      stalled-cycles-frontend   #   25.54% frontend cycles idle
         <not counted>      stalled-cycles-backend                                        (0.00%)
         ^^^^^^^^^^^^
         <not counted>      instructions                                                  (0.00%)
         ^^^^^^^^^^^^
         <not counted>      branches                                                      (0.00%)
         <not counted>      branch-misses                                                 (0.00%)
    
           1.001550070 seconds time elapsed
    
    The reason is that we have the HW watchdog consuming one PMU counter and
    when perf tries to schedule 6 events on 6 counters and some of those
    counters are constrained to only a specific subset of PMCs by the
    hardware, the event scheduling fails.
    
    So issue a hint to disable the HW watchdog around a perf stat session.
    
    Committer note:
    
    Testing it...
    
      # perf stat -d usleep 1
    
       Performance counter stats for 'usleep 1':
    
              1.180203      task-clock (msec)         #    0.490 CPUs utilized
                     1      context-switches          #    0.847 K/sec
                     0      cpu-migrations            #    0.000 K/sec
                    54      page-faults               #    0.046 M/sec
               184,754      cycles                    #    0.157 GHz
               714,553      instructions              #    3.87  insn per cycle
               154,661      branches                  #  131.046 M/sec
                 7,247      branch-misses             #    4.69% of all branches
               219,984      L1-dcache-loads           #  186.395 M/sec
                17,600      L1-dcache-load-misses     #    8.00% of all L1-dcache hits    (90.16%)
         <not counted>      LLC-loads                                                     (0.00%)
         <not counted>      LLC-load-misses                                               (0.00%)
    
           0.002406823 seconds time elapsed
    
      Some events weren't counted. Try disabling the NMI watchdog:
            echo 0 > /proc/sys/kernel/nmi_watchdog
            perf stat ...
            echo 1 > /proc/sys/kernel/nmi_watchdog
      #
    
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Ingo Molnar <mingo@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Robert Richter <rric@kernel.org>
    Cc: Vince Weaver <vince@deater.net>
    Link: http://lkml.kernel.org/r/20170211183218.ijnvb5f7ciyuunx4@pd.tnic
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ec4b846a5dda7fe983015e6310c3d551b029329
Author: H. Nikolaus Schaller <hns@goldelico.com>
Date:   Fri Feb 17 12:51:19 2017 -0800

    Input: tsc2007 - check for presence and power down tsc2007 during probe
    
    
    [ Upstream commit 934df23171e7c5b71d937104d4957891c39748ff ]
    
    1. check if chip is really present and don't succeed if it isn't.
    2. if it succeeds, power down the chip until accessed
    
    Signed-off-by: H. Nikolaus Schaller <hns@goldelico.com>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7bd2d0c746f1fac2fb7f2ee972767cbc8be60962
Author: Hou Tao <houtao1@huawei.com>
Date:   Fri Feb 3 17:19:07 2017 +0800

    blkcg: fix double free of new_blkg in blkcg_init_queue
    
    commit 9b54d816e00425c3a517514e0d677bb3cec49258 upstream.
    
    If blkg_create fails, new_blkg passed as an argument will
    be freed by blkg_create, so there is no need to free it again.
    
    Signed-off-by: Hou Tao <houtao1@huawei.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Cc: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>