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

    Linux 3.18.101

commit a5efa51a897258b168905a34a3216e4b8b218458
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 99c2db0ea9da5ee310fb4b289c729f8bf511101c
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 103660de0e4769e5d3d59395044fa698e55d21d3
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 b043e4d40e8c461183facb4548fa89bc7d6b8658
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 9e7d69c26c20a57b57dff4e98e4500c5252d8d33
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 e4353660cf59d49f2c75789081e97c9da21631ec
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 b62e31c1c9bcf25b03225f44823e1d759a83a22d
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 92d0346b53a8deda74b6b1b8788602ec86946cf3
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 8257ab7d6ff0fa0b8758074ad051c700d3bde216
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 81d9b36666716f287db024ebaed1c23f0bad0e57
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 ba1cae0f2fe818b282eda6d4f2295c3560c5ef99
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 7adccfcc7fe217413998099cfe538a33f3ad135e
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 b065d8cd99001fbcb800d7b3d353e67fbfa1f849
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 4d04a02d7718aa32ec9b3a3819f0c3a4d075bede
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 780de727077f7a8c96a0b7122f34e4fec0ffae5c
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 77bbff8984656ddbdfeec8fcf2db9dc061da1956
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 7aa551688c9b491dcb01c67f77f1074b21d473db
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 9ed1f97d068c9eb4ba302cdc93b5a0c6d1f37960
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 9d8df5594467b6c73c3833b462abe5811fe7295b
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 2d8c5aa6dc436f6fc1c8b6c0feaee4b0f60cdf38
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 e5ba9171cd0ab1d8efae20a8aac007d032385bc7
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 adc1ec6cdc20d430aa01b86497220709b9149466
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 26b34205542d36b00d06120b0915a781be3570c8
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 0c53c557f4de212696d5e94ce096ec34df437a22
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 53165057044801541802f899ee3d415e8252b699
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 534c796803f789b41b9d5cb38078aab856511902
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 9dd399c0f01003652746d808ea7b3b5195d75f8a
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 fa55ef3f803fc7c20be0ab809e6278c31febd875
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 a52bc55dc93d66ddd1bd3a35293ecfaac98cbe82
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 496fff91077c1e18c0937d0bbb598b881695677d
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 95b33b99cdd6fb22bacc82d7ba5ae194815e2a2a
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 6b1a88fbd288054db5bf9c7b227cf29496610706
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 c6d4216de9deeb0550c99b0d3ef6b64a0f03664e
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 9797e57d2095715bfd3634691f6a8288ab2bb1d0
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 b1cbc90311c9e22798df9e42d0cdda2a6015094f
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 db0669185b205e6c73e58f2d8190847d81fa316e
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 6028fc34f21224e54b7a5f4e11c88a2ce850a9f3
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 f9eab3e827015e88909e4027a4fe2cb3ba367ce7
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 e7ede6c2e6b0cfcc825dc7b92e5606640d3d7653
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 b74fb8c983a0cf8e9e0d9937e4d4e6b964d7c241
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 6b7c30eb364d34225fb96c0b3f9addb200936de4
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 227fd0d596f9142a1063a0db828c7a4e97efb51e
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 c78b7263f2844d7cbb3f74a623353c5b8b4d0fef
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 ddab481b5046181f1494aa42f1debc11516a435f
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 eaf27230297aca5b1b4fb64a82a53432f47728c2
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 7cf6102fef4b4acfe5e8262926da99e4b8eabef8
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 bbb325e7ebaf068d27b9a94c0aefcaf30926223b
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 65c161cb56c9987897b97429c242cbc27bb0f773
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 4ae1886a08161aafb98099a9621643072d872ba0
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 1680be15892bd0bec6316b99a54046c2afb3ae8d
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 92bddcee738ef4db4f014378e9916826783df9b9
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 016f92f24f6ca219c863ef34deb72a0426ad3ab5
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 89390b1997b9ff7f49d1180976af8c23002280a8
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 2bca684a62bd01aa3c412c690608c808f5ecc6fc
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 756e89e23452f65eb704e1f79369ab69ffcd5276
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 3b95754fa839d753a6f680c3ecd308ff385a45b9
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 20617945ee157e5fdca0cbec1f9c37c1cef5577c
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 acc107682567d0223c3fe103509655db9d6495e8
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 514b0fe569130d18a8e94f4064ea58ac624cab1a
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 0d3a8543e56ec544b342120348430f0b279d2e53
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 c5978a681d430ef683cc4c7efbd8d624e869faff
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 989dcfa4923324a2aa0c9607f3c771f77ec605c1
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 058645e2f0647c85f2bfd577771546d198739fd2
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 843d4286d819d47ebb8cc079929d42ffcebce6ab
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 0ca7c402cfcb33035e47e18d99e2b58248520478
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>