commit 91473db3a3257eacead8f4d84cf4bc96c447193f
Author: Sasha Levin <alexander.levin@verizon.com>
Date:   Sun Oct 9 10:18:45 2016 -0400

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

commit 56991065c36aac44cc2b38dba6c1f038abcbfd8f
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sat Sep 17 12:57:24 2016 -0700

    openrisc: fix the fix of copy_from_user()
    
    [ Upstream commit 8e4b72054f554967827e18be1de0e8122e6efc04 ]
    
    Since commit acb2505d0119 ("openrisc: fix copy_from_user()"),
    copy_from_user() returns the number of bytes requested, not the
    number of bytes not copied.
    
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Fixes: acb2505d0119 ("openrisc: fix copy_from_user()")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 2abcdcc42f4f030137ea36efd02ccf0e724dfb3d
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Sat Sep 17 07:52:49 2016 -0700

    avr32: fix 'undefined reference to `___copy_from_user'
    
    [ Upstream commit 65c0044ca8d7c7bbccae37f0ff2972f0210e9f41 ]
    
    avr32 builds fail with:
    
    arch/avr32/kernel/built-in.o: In function `arch_ptrace':
    (.text+0x650): undefined reference to `___copy_from_user'
    arch/avr32/kernel/built-in.o:(___ksymtab+___copy_from_user+0x0): undefined
    reference to `___copy_from_user'
    kernel/built-in.o: In function `proc_doulongvec_ms_jiffies_minmax':
    (.text+0x5dd8): undefined reference to `___copy_from_user'
    kernel/built-in.o: In function `proc_dointvec_minmax_sysadmin':
    sysctl.c:(.text+0x6174): undefined reference to `___copy_from_user'
    kernel/built-in.o: In function `ptrace_has_cap':
    ptrace.c:(.text+0x69c0): undefined reference to `___copy_from_user'
    kernel/built-in.o:ptrace.c:(.text+0x6b90): more undefined references to
    `___copy_from_user' follow
    
    Fixes: 8630c32275ba ("avr32: fix copy_from_user()")
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Acked-by: Havard Skinnemoen <hskinnemoen@gmail.com>
    Acked-by: Hans-Christian Noren Egtvedt <egtvedt@samfundet.no>
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit e22ff4540cfb91e08c68a1554c8c47e1d3ee2ba1
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Sep 17 18:31:46 2016 -0400

    fix memory leaks in tracing_buffers_splice_read()
    
    [ Upstream commit 1ae2293dd6d2f5c823cf97e60b70d03631cd622f ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit abd91e8b5b0531b34d5e9b5be4a0732068a7c4f5
Author: Steven Rostedt (Red Hat) <rostedt@goodmis.org>
Date:   Fri Sep 23 22:57:13 2016 -0400

    tracing: Move mutex to protect against resetting of seq data
    
    [ Upstream commit 1245800c0f96eb6ebb368593e251d66c01e61022 ]
    
    The iter->seq can be reset outside the protection of the mutex. So can
    reading of user data. Move the mutex up to the beginning of the function.
    
    Fixes: d7350c3f45694 ("tracing/core: make the read callbacks reentrants")
    Cc: stable@vger.kernel.org # 2.6.30+
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 7d0e57776d25df67877ec1db8fe61a80a46d0fb1
Author: Matt Redfearn <matt.redfearn@imgtec.com>
Date:   Thu Sep 22 17:15:47 2016 +0100

    MIPS: SMP: Fix possibility of deadlock when bringing CPUs online
    
    [ Upstream commit 8f46cca1e6c06a058374816887059bcc017b382f ]
    
    This patch fixes the possibility of a deadlock when bringing up
    secondary CPUs.
    The deadlock occurs because the set_cpu_online() is called before
    synchronise_count_slave(). This can cause a deadlock if the boot CPU,
    having scheduled another thread, attempts to send an IPI to the
    secondary CPU, which it sees has been marked online. The secondary is
    blocked in synchronise_count_slave() waiting for the boot CPU to enter
    synchronise_count_master(), but the boot cpu is blocked in
    smp_call_function_many() waiting for the secondary to respond to it's
    IPI request.
    
    Fix this by marking the CPU online in cpu_callin_map and synchronising
    counters before declaring the CPU online and calculating the maps for
    IPIs.
    
    Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
    Reported-by: Justin Chen <justinpopo6@gmail.com>
    Tested-by: Justin Chen <justinpopo6@gmail.com>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: stable@vger.kernel.org # v4.1+
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/14302/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 94b73f6d231a5394ab38ab77cfe11cb2109e611f
Author: Paul Burton <paul.burton@imgtec.com>
Date:   Fri Sep 23 15:13:53 2016 +0100

    MIPS: Fix pre-r6 emulation FPU initialisation
    
    [ Upstream commit 7e956304eb8a285304a78582e4537e72c6365f20 ]
    
    In the mipsr2_decoder() function, used to emulate pre-MIPSr6
    instructions that were removed in MIPSr6, the init_fpu() function is
    called if a removed pre-MIPSr6 floating point instruction is the first
    floating point instruction used by the task. However, init_fpu()
    performs varous actions that rely upon not being migrated. For example
    in the most basic case it sets the coprocessor 0 Status.CU1 bit to
    enable the FPU & then loads FP register context into the FPU registers.
    If the task were to migrate during this time, it may end up attempting
    to load FP register context on a different CPU where it hasn't set the
    CU1 bit, leading to errors such as:
    
        do_cpu invoked from kernel context![#2]:
        CPU: 2 PID: 7338 Comm: fp-prctl Tainted: G      D         4.7.0-00424-g49b0c82 #2
        task: 838e4000 ti: 88d38000 task.ti: 88d38000
        $ 0   : 00000000 00000001 ffffffff 88d3fef8
        $ 4   : 838e4000 88d38004 00000000 00000001
        $ 8   : 3400fc01 801f8020 808e9100 24000000
        $12   : dbffffff 807b69d8 807b0000 00000000
        $16   : 00000000 80786150 00400fc4 809c0398
        $20   : 809c0338 0040273c 88d3ff28 808e9d30
        $24   : 808e9d30 00400fb4
        $28   : 88d38000 88d3fe88 00000000 8011a2ac
        Hi    : 0040273c
        Lo    : 88d3ff28
        epc   : 80114178 _restore_fp+0x10/0xa0
        ra    : 8011a2ac mipsr2_decoder+0xd5c/0x1660
        Status: 1400fc03    KERNEL EXL IE
        Cause : 1080002c (ExcCode 0b)
        PrId  : 0001a920 (MIPS I6400)
        Modules linked in:
        Process fp-prctl (pid: 7338, threadinfo=88d38000, task=838e4000, tls=766527d0)
        Stack : 00000000 00000000 00000000 88d3fe98 00000000 00000000 809c0398 809c0338
              808e9100 00000000 88d3ff28 00400fc4 00400fc4 0040273c 7fb69e18 004a0000
              004a0000 004a0000 7664add0 8010de18 00000000 00000000 88d3fef8 88d3ff28
              808e9100 00000000 766527d0 8010e534 000c0000 85755000 8181d580 00000000
              00000000 00000000 004a0000 00000000 766527d0 7fb69e18 004a0000 80105c20
              ...
        Call Trace:
        [<80114178>] _restore_fp+0x10/0xa0
        [<8011a2ac>] mipsr2_decoder+0xd5c/0x1660
        [<8010de18>] do_ri+0x90/0x6b8
        [<80105c20>] ret_from_exception+0x0/0x10
    
    Fix this by disabling preemption around the call to init_fpu(), ensuring
    that it starts & completes on one CPU.
    
    Signed-off-by: Paul Burton <paul.burton@imgtec.com>
    Fixes: b0a668fb2038 ("MIPS: kernel: mips-r2-to-r6-emul: Add R2 emulator for MIPS R6")
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # v4.0+
    Patchwork: https://patchwork.linux-mips.org/patch/14305/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 3b3f2e91afbdb281fc8debc6cb077175d6e17039
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Wed Sep 21 08:31:29 2016 -0400

    btrfs: ensure that file descriptor used with subvol ioctls is a dir
    
    [ Upstream commit 325c50e3cebb9208009083e841550f98a863bfa0 ]
    
    If the subvol/snapshot create/destroy ioctls are passed a regular file
    with execute permissions set, we'll eventually Oops while trying to do
    inode->i_op->lookup via lookup_one_len.
    
    This patch ensures that the file descriptor refers to a directory.
    
    Fixes: cb8e70901d (Btrfs: Fix subvolume creation locking rules)
    Fixes: 76dda93c6a (Btrfs: add snapshot/subvolume destroy ioctl)
    Cc: <stable@vger.kernel.org> #v2.6.29+
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Chris Mason <clm@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 01e893ae13ae22a799e3323445af759bbf00381d
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Tue Sep 20 20:07:42 2016 +0100

    fix fault_in_multipages_...() on architectures with no-op access_ok()
    
    [ Upstream commit e23d4159b109167126e5bcd7f3775c95de7fee47 ]
    
    Switching iov_iter fault-in to multipages variants has exposed an old
    bug in underlying fault_in_multipages_...(); they break if the range
    passed to them wraps around.  Normally access_ok() done by callers will
    prevent such (and it's a guaranteed EFAULT - ERR_PTR() values fall into
    such a range and they should not point to any valid objects).
    
    However, on architectures where userland and kernel live in different
    MMU contexts (e.g. s390) access_ok() is a no-op and on those a range
    with a wraparound can reach fault_in_multipages_...().
    
    Since any wraparound means EFAULT there, the fix is trivial - turn
    those
    
        while (uaddr <= end)
                ...
    into
    
        if (unlikely(uaddr > end))
                return -EFAULT;
        do
                ...
        while (uaddr <= end);
    
    Reported-by: Jan Stancek <jstancek@redhat.com>
    Tested-by: Jan Stancek <jstancek@redhat.com>
    Cc: stable@vger.kernel.org # v3.5+
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8b915554cd8533de3ad32b2294d62be257a9c2bf
Author: Ashish Samant <ashish.samant@oracle.com>
Date:   Mon Sep 19 14:44:42 2016 -0700

    ocfs2: fix start offset to ocfs2_zero_range_for_truncate()
    
    [ Upstream commit d21c353d5e99c56cdd5b5c1183ffbcaf23b8b960 ]
    
    If we punch a hole on a reflink such that following conditions are met:
    
    1. start offset is on a cluster boundary
    2. end offset is not on a cluster boundary
    3. (end offset is somewhere in another extent) or
       (hole range > MAX_CONTIG_BYTES(1MB)),
    
    we dont COW the first cluster starting at the start offset.  But in this
    case, we were wrongly passing this cluster to
    ocfs2_zero_range_for_truncate() to zero out.  This will modify the
    cluster in place and zero it in the source too.
    
    Fix this by skipping this cluster in such a scenario.
    
    To reproduce:
    
    1. Create a random file of say 10 MB
         xfs_io -c 'pwrite -b 4k 0 10M' -f 10MBfile
    2. Reflink  it
         reflink -f 10MBfile reflnktest
    3. Punch a hole at starting at cluster boundary  with range greater that
    1MB. You can also use a range that will put the end offset in another
    extent.
         fallocate -p -o 0 -l 1048615 reflnktest
    4. sync
    5. Check the  first cluster in the source file. (It will be zeroed out).
        dd if=10MBfile iflag=direct bs=<cluster size> count=1 | hexdump -C
    
    Link: http://lkml.kernel.org/r/1470957147-14185-1-git-send-email-ashish.samant@oracle.com
    Signed-off-by: Ashish Samant <ashish.samant@oracle.com>
    Reported-by: Saar Maoz <saar.maoz@oracle.com>
    Reviewed-by: Srinivas Eeda <srinivas.eeda@oracle.com>
    Cc: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Joseph Qi <joseph.qi@huawei.com>
    Cc: Eric Ren <zren@suse.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit fa22b5bd51308410b78ce45e4b7bda99adaa2e9c
Author: Jan Kara <jack@suse.cz>
Date:   Mon Sep 19 14:44:30 2016 -0700

    fanotify: fix list corruption in fanotify_get_response()
    
    [ Upstream commit 96d41019e3ac55f6f0115b0ce97e4f24a3d636d2 ]
    
    fanotify_get_response() calls fsnotify_remove_event() when it finds that
    group is being released from fanotify_release() (bypass_perm is set).
    
    However the event it removes need not be only in the group's notification
    queue but it can have already moved to access_list (userspace read the
    event before closing the fanotify instance fd) which is protected by a
    different lock.  Thus when fsnotify_remove_event() races with
    fanotify_release() operating on access_list, the list can get corrupted.
    
    Fix the problem by moving all the logic removing permission events from
    the lists to one place - fanotify_release().
    
    Fixes: 5838d4442bd5 ("fanotify: fix double free of pending permission events")
    Link: http://lkml.kernel.org/r/1473797711-14111-3-git-send-email-jack@suse.cz
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reported-by: Miklos Szeredi <mszeredi@redhat.com>
    Tested-by: Miklos Szeredi <mszeredi@redhat.com>
    Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 2ea570f3037c1c958ae9881600b85db32f4efc21
Author: Jan Kara <jack@suse.cz>
Date:   Mon Sep 19 14:44:27 2016 -0700

    fsnotify: add a way to stop queueing events on group shutdown
    
    [ Upstream commit 12703dbfeb15402260e7554d32a34ac40c233990 ]
    
    Implement a function that can be called when a group is being shutdown
    to stop queueing new events to the group.  Fanotify will use this.
    
    Fixes: 5838d4442bd5 ("fanotify: fix double free of pending permission events")
    Link: http://lkml.kernel.org/r/1473797711-14111-2-git-send-email-jack@suse.cz
    Signed-off-by: Jan Kara <jack@suse.cz>
    Reviewed-by: Miklos Szeredi <mszeredi@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 7853bc7de0adb77e8dc11eab3fcc554aaa03a403
Author: Ian Kent <raven@themaw.net>
Date:   Mon Sep 19 14:44:12 2016 -0700

    autofs: use dentry flags to block walks during expire
    
    [ Upstream commit 7cbdb4a286a60c5d519cb9223fe2134d26870d39 ]
    
    Somewhere along the way the autofs expire operation has changed to hold
    a spin lock over expired dentry selection.  The autofs indirect mount
    expired dentry selection is complicated and quite lengthy so it isn't
    appropriate to hold a spin lock over the operation.
    
    Commit 47be61845c77 ("fs/dcache.c: avoid soft-lockup in dput()") added a
    might_sleep() to dput() causing a WARN_ONCE() about this usage to be
    issued.
    
    But the spin lock doesn't need to be held over this check, the autofs
    dentry info.  flags are enough to block walks into dentrys during the
    expire.
    
    I've left the direct mount expire as it is (for now) because it is much
    simpler and quicker than the indirect mount expire and adding spin lock
    release and re-aquires would do nothing more than add overhead.
    
    Fixes: 47be61845c77 ("fs/dcache.c: avoid soft-lockup in dput()")
    Link: http://lkml.kernel.org/r/20160912014017.1773.73060.stgit@pluto.themaw.net
    Signed-off-by: Ian Kent <raven@themaw.net>
    Reported-by: Takashi Iwai <tiwai@suse.de>
    Tested-by: Takashi Iwai <tiwai@suse.de>
    Cc: Takashi Iwai <tiwai@suse.de>
    Cc: NeilBrown <neilb@suse.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8e625a4db87cc01ec738be280f214904385befbc
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Jun 12 11:24:46 2016 -0400

    autofs races
    
    [ Upstream commit ea01a18494b3d7a91b2f1f2a6a5aaef4741bc294 ]
    
    * make autofs4_expire_indirect() skip the dentries being in process of
    expiry
    * do *not* mess with list_move(); making sure that dentry with
    AUTOFS_INF_EXPIRING are not picked for expiry is enough.
    * do not remove NO_RCU when we set EXPIRING, don't bother with smp_mb()
    there.  Clear it at the same time we clear EXPIRING.  Makes a bunch of
    tests simpler.
    * rename NO_RCU to WANT_EXPIRE, which is what it really is.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit fe8bd7284eb410b55a8f992af686a435ba62556e
Author: Joseph Qi <joseph.qi@huawei.com>
Date:   Mon Sep 19 14:43:55 2016 -0700

    ocfs2/dlm: fix race between convert and migration
    
    [ Upstream commit e6f0c6e6170fec175fe676495f29029aecdf486c ]
    
    Commit ac7cf246dfdb ("ocfs2/dlm: fix race between convert and recovery")
    checks if lockres master has changed to identify whether new master has
    finished recovery or not.  This will introduce a race that right after
    old master does umount ( means master will change), a new convert
    request comes.
    
    In this case, it will reset lockres state to DLM_RECOVERING and then
    retry convert, and then fail with lockres->l_action being set to
    OCFS2_AST_INVALID, which will cause inconsistent lock level between
    ocfs2 and dlm, and then finally BUG.
    
    Since dlm recovery will clear lock->convert_pending in
    dlm_move_lockres_to_recovery_list, we can use it to correctly identify
    the race case between convert and recovery.  So fix it.
    
    Fixes: ac7cf246dfdb ("ocfs2/dlm: fix race between convert and recovery")
    Link: http://lkml.kernel.org/r/57CE1569.8010704@huawei.com
    Signed-off-by: Joseph Qi <joseph.qi@huawei.com>
    Signed-off-by: Jun Piao <piaojun@huawei.com>
    Cc: Mark Fasheh <mfasheh@suse.de>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 9cbf61a4f3dcf0569f42b6c5709e920201546689
Author: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Date:   Wed Aug 31 12:33:23 2016 +0200

    MIPS: Avoid a BUG warning during prctl(PR_SET_FP_MODE, ...)
    
    [ Upstream commit b244614a60ab7ce54c12a9cbe15cfbf8d79d0967 ]
    
    cpu_has_fpu macro uses smp_processor_id() and is currently executed
    with preemption enabled, that triggers the warning at runtime.
    
    It is assumed throughout the kernel that if any CPU has an FPU, then all
    CPUs would have an FPU as well, so it is safe to perform the check with
    preemption enabled - change the code to use raw_ variant of the check to
    avoid the warning.
    
    Signed-off-by: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org  # 4.0+
    Patchwork: https://patchwork.linux-mips.org/patch/14125/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit fc6e4ced335133892fd436e36470b1ec3327a7a6
Author: Fabio Estevam <fabio.estevam@nxp.com>
Date:   Wed Aug 17 12:41:08 2016 -0300

    can: flexcan: fix resume function
    
    [ Upstream commit 4de349e786a3a2d51bd02d56f3de151bbc3c3df9 ]
    
    On a imx6ul-pico board the following error is seen during system suspend:
    
    dpm_run_callback(): platform_pm_resume+0x0/0x54 returns -110
    PM: Device 2090000.flexcan failed to resume: error -110
    
    The reason for this suspend error is because when the CAN interface is not
    active the clocks are disabled and then flexcan_chip_enable() will
    always fail due to a timeout error.
    
    In order to fix this issue, only call flexcan_chip_enable/disable()
    when the CAN interface is active.
    
    Based on a patch from Dong Aisheng in the NXP kernel.
    
    Signed-off-by: Fabio Estevam <fabio.estevam@nxp.com>
    Cc: linux-stable <stable@vger.kernel.org>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a286d162dfbedeecee19a995deb498805ef459a2
Author: Kristian H. Kristensen <hoegsberg@gmail.com>
Date:   Tue Sep 13 14:20:45 2016 -0700

    drm: Only use compat ioctl for addfb2 on X86/IA64
    
    [ Upstream commit 47a66e45d7a7613322549c2475ea9d809baaf514 ]
    
    Similar to struct drm_update_draw, struct drm_mode_fb_cmd2 has an
    unaligned 64 bit field (modifier). This get packed differently between
    32 bit and 64 bit modes on architectures that can handle unaligned 64
    bit access (X86 and IA64).  Other architectures pack the structs the
    same and don't need the compat wrapper. Use the same condition for
    drm_mode_fb_cmd2 as we use for drm_update_draw.
    
    Note that only the modifier will be packed differently between compat
    and non-compat versions.
    
    Reviewed-by: Rob Clark <robdclark@gmail.com>
    Signed-off-by: Kristian H. Kristensen <hoegsberg@chromium.org>
    [seanpaul added not at bottom of commit msg re: modifier]
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: http://patchwork.freedesktop.org/patch/msgid/1473801645-116011-1-git-send-email-hoegsberg@chromium.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit ca3fea0101975d16780536784f01096ccd54f34e
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Fri Sep 16 00:11:45 2016 +0100

    fix iov_iter_fault_in_readable()
    
    [ Upstream commit d4690f1e1cdabb4d61207b6787b1605a0dc0aeab ]
    
    ... by turning it into what used to be multipages counterpart
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 507e166c3cdbcdeba89203fb7a9a71682370693c
Author: Alan Stern <stern@rowland.harvard.edu>
Date:   Fri Sep 16 10:24:26 2016 -0400

    USB: change bInterval default to 10 ms
    
    [ Upstream commit 08c5cd37480f59ea39682f4585d92269be6b1424 ]
    
    Some full-speed mceusb infrared transceivers contain invalid endpoint
    descriptors for their interrupt endpoints, with bInterval set to 0.
    In the past they have worked out okay with the mceusb driver, because
    the driver sets the bInterval field in the descriptor to 1,
    overwriting whatever value may have been there before.  However, this
    approach was never sanctioned by the USB core, and in fact it does not
    work with xHCI controllers, because they use the bInterval value that
    was present when the configuration was installed.
    
    Currently usbcore uses 32 ms as the default interval if the value in
    the endpoint descriptor is invalid.  It turns out that these IR
    transceivers don't work properly unless the interval is set to 10 ms
    or below.  To work around this mceusb problem, this patch changes the
    endpoint-descriptor parsing routine, making the default interval value
    be 10 ms rather than 32 ms.
    
    Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
    Tested-by: Wade Berrier <wberrier@gmail.com>
    CC: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 319fe11519401e8a5db191a0a93aa2c1d7bb59f4
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Thu Sep 15 02:35:29 2016 +0100

    fix minor infoleak in get_user_ex()
    
    [ Upstream commit 1c109fabbd51863475cd12ac206bdd249aee35af ]
    
    get_user_ex(x, ptr) should zero x on failure.  It's not a lot of a leak
    (at most we are leaking uninitialized 64bit value off the kernel stack,
    and in a fairly constrained situation, at that), but the fix is trivial,
    so...
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    [ This sat in different branch from the uaccess fixes since mid-August ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 1e8727f0a50077a58d575f810bfb694d665b1fd4
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Sep 9 19:28:23 2016 -0400

    avr32: fix copy_from_user()
    
    [ Upstream commit 8630c32275bac2de6ffb8aea9d9b11663e7ad28e ]
    
    really ugly, but apparently avr32 compilers turns access_ok() into
    something so bad that they want it in assembler.  Left that way,
    zeroing added in inline wrapper.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit d6dd6bf60fe2abeabc62b59c30f5aee362304734
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Sep 9 19:23:33 2016 -0400

    microblaze: fix __get_user()
    
    [ Upstream commit e98b9e37ae04562d52c96f46b3cf4c2e80222dc1 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 9159bc0a9574cb4180e1a5b013e9b8ca2fcf0be6
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Sep 9 19:22:34 2016 -0400

    microblaze: fix copy_from_user()
    
    [ Upstream commit d0cf385160c12abd109746cad1f13e3b3e8b50b8 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit c6ab30df5528017afc82913be8b0873cf38f2d7c
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Sep 9 19:20:13 2016 -0400

    m32r: fix __get_user()
    
    [ Upstream commit c90a3bc5061d57e7931a9b7ad14784e1a0ed497d ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 59dd93edeca4a00fa749be62ac169123fad61fc6
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Fri Sep 9 19:16:58 2016 -0400

    blackfin: fix copy_from_user()
    
    [ Upstream commit 8f035983dd826d7e04f67b28acf8e2f08c347e41 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 09d5ea250b975f9aa7678ad9f95247173ad30778
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Mon Aug 22 00:23:07 2016 -0400

    sparc32: fix copy_from_user()
    
    [ Upstream commit 917400cecb4b52b5cde5417348322bb9c8272fa6 ]
    
    Cc: stable@vger.kernel.org
    Acked-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 0fe6f5c0f9ac106de9c601b56e44bb84aef56f73
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 23:39:47 2016 -0400

    sh: fix copy_from_user()
    
    [ Upstream commit 6e050503a150b2126620c1a1e9b3a368fcd51eac ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit dbff5b36f5d3ddb345c4a939ff100316bd82dc38
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 23:33:47 2016 -0400

    sh64: failing __get_user() should zero
    
    [ Upstream commit c6852389228df9fb3067f94f3b651de2a7921b36 ]
    
    It could be done in exception-handling bits in __get_user_b() et.al.,
    but the surgery involved would take more knowledge of sh64 details
    than I have or _want_ to have.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8f74a7d0f48206633f2d34e6a8150987bb4c3e69
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 22:30:44 2016 -0400

    score: fix copy_from_user() and friends
    
    [ Upstream commit b615e3c74621e06cd97f86373ca90d43d6d998aa ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 382c91fb6f319ef2d113d3967d85722b5474069b
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 22:13:39 2016 -0400

    score: fix __get_user/get_user
    
    [ Upstream commit c2f18fa4cbb3ad92e033a24efa27583978ce9600 ]
    
    * should zero on any failure
    * __get_user() should use __copy_from_user(), not copy_from_user()
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8e5c49fe2227503f7e37759d0e1b2a7608cf1166
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 22:00:54 2016 -0400

    s390: get_user() should zero on failure
    
    [ Upstream commit fd2d2b191fe75825c4c7a6f12f3fef35aaed7dd7 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 5a1bd17484e4042635c515595305e05e9c67aff5
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Aug 21 19:16:26 2016 -0400

    ppc32: fix copy_from_user()
    
    [ Upstream commit 224264657b8b228f949b42346e09ed8c90136a8e ]
    
    should clear on access_ok() failures.  Also remove the useless
    range truncation logics.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f39be7f631c7ce7b721b0568510b73266ce4b3e9
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 19:03:37 2016 -0400

    parisc: fix copy_from_user()
    
    [ Upstream commit aace880feea38875fbc919761b77e5732a3659ef ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit cc148fe4483004a44c19bedfd70413c59edc8305
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 17:05:21 2016 -0400

    openrisc: fix copy_from_user()
    
    [ Upstream commit acb2505d0119033a80c85ac8d02dccae41271667 ]
    
    ... that should zero on faults.  Also remove the <censored> helpful
    logics wrt range truncation copied from ppc32.  Where it had ever
    been needed only in case of copy_from_user() *and* had not been merged
    into the mainline until a month after the need had disappeared.
    A decade before openrisc went into mainline, I might add...
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit acc2bdcc800608a8b727b8c76de75a06fe53c928
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 16:39:01 2016 -0400

    nios2: fix __get_user()
    
    [ Upstream commit 2e29f50ad5e23db37dde9be71410d95d50241ecd ]
    
    a) should not leave crap on fault
    b) should _not_ require access_ok() in any cases.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f4859333c64f7a60d0d30514c3e09e8b228830b3
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 16:36:36 2016 -0400

    nios2: copy_from_user() should zero the tail of destination
    
    [ Upstream commit e33d1f6f72cc82fcfc3d1fb20c9e3ad83b1928fa ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit da879e36261ba8ed9e9b361d1ded01182ced0d16
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 16:33:10 2016 -0400

    mn10300: copy_from_user() should zero on access_ok() failure...
    
    [ Upstream commit ae7cc577ec2a4a6151c9e928fd1f595d953ecef1 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit c6f5ace3fab439067b0a7ec92d16e85f0d9b68a0
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 16:32:02 2016 -0400

    mn10300: failing __get_user() and get_user() should zero
    
    [ Upstream commit 43403eabf558d2800b429cd886e996fd555aa542 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 34c464014beb4e351775ed91bbce11e3ecdf263c
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sat Aug 20 16:18:53 2016 -0400

    mips: copy_from_user() must zero the destination on access_ok() failure
    
    [ Upstream commit e69d700535ac43a18032b3c399c69bf4639e89a2 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 57dcb60fe8b2c22d860d381788698185eeb25ef2
Author: Vineet Gupta <Vineet.Gupta1@synopsys.com>
Date:   Fri Aug 19 12:10:02 2016 -0700

    ARC: uaccess: get_user to zero out dest in cause of fault
    
    [ Upstream commit 05d9d0b96e53c52a113fd783c0c97c830c8dc7af ]
    
    Al reported potential issue with ARC get_user() as it wasn't clearing
    out destination pointer in case of fault due to bad address etc.
    
    Verified using following
    
    | {
    |       u32 bogus1 = 0xdeadbeef;
    |       u64 bogus2 = 0xdead;
    |       int rc1, rc2;
    |
    |       pr_info("Orig values %x %llx\n", bogus1, bogus2);
    |       rc1 = get_user(bogus1, (u32 __user *)0x40000000);
    |       rc2 = get_user(bogus2, (u64 __user *)0x50000000);
    |       pr_info("access %d %d, new values %x %llx\n",
    |               rc1, rc2, bogus1, bogus2);
    | }
    
    | [ARCLinux]# insmod /mnt/kernel-module/qtn.ko
    | Orig values deadbeef dead
    | access -14 -14, new values 0 0
    
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: linux-snps-arc@lists.infradead.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f3d57a7315d9f186ea97d6d1da2350028af3f977
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Aug 18 22:08:20 2016 -0400

    metag: copy_from_user() should zero the destination on access_ok() failure
    
    [ Upstream commit 8ae95ed4ae5fc7c3391ed668b2014c9e2079533b ]
    
    Cc: stable@vger.kernel.org
    Acked-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 5b6def31a00fa67d1ee714e75e8843cd50c0c9b5
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Aug 18 21:31:41 2016 -0400

    ia64: copy_from_user() should zero the destination on access_ok() failure
    
    [ Upstream commit a5e541f796f17228793694d64b507f5f57db4cd7 ]
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 4661786b4e1350a84d705d6cdd2fea2ecf114ce2
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Aug 18 21:16:49 2016 -0400

    hexagon: fix strncpy_from_user() error return
    
    [ Upstream commit f35c1e0671728d1c9abc405d05ef548b5fcb2fc4 ]
    
    It's -EFAULT, not -1 (and contrary to the comment in there,
    __strnlen_user() can return 0 - on faults).
    
    Cc: stable@vger.kernel.org
    Acked-by: Richard Kuo <rkuo@codeaurora.org>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit bd2f050b78f082d449b28a4a0724385eb29aaddb
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Aug 18 20:54:02 2016 -0400

    frv: fix clear_user()
    
    [ Upstream commit 3b8767a8f00cc6538ba6b1cf0f88502e2fd2eb90 ]
    
    It should check access_ok().  Otherwise a bunch of places turn into
    trivially exploitable rootholes.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit e0176ee952bd7aeeee064e65b9d1f1ebb7a924fa
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Thu Aug 18 19:34:00 2016 -0400

    cris: buggered copy_from_user/copy_to_user/clear_user
    
    [ Upstream commit eb47e0293baaa3044022059f1fa9ff474bfe35cb ]
    
    * copy_from_user() on access_ok() failure ought to zero the destination
    * none of those primitives should skip the access_ok() check in case of
    small constant size.
    
    Cc: stable@vger.kernel.org
    Acked-by: Jesper Nilsson <jesper.nilsson@axis.com>
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit e73af4fdf9383308283d5aa51bcf36941db25ada
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Aug 17 23:19:01 2016 -0400

    asm-generic: make get_user() clear the destination on errors
    
    [ Upstream commit 9ad18b75c2f6e4a78ce204e79f37781f8815c0fa ]
    
    both for access_ok() failures and for faults halfway through
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a4b777858697ef94c097762a59c67958d5802959
Author: Yoshinori Sato <ysato@users.sourceforge.jp>
Date:   Thu Jul 16 13:56:06 2015 +0900

    asm-generic: {get,put}_user ptr argument evaluate only 1 time
    
    [ Upstream commit a02613a4ba679eacec8251976d02809d533fa717 ]
    
    Current implemantation ptr argument evaluate 2 times.
    It'll be an unexpected result.
    
    Changes v5:
    Remove unnecessary const.
    Changes v4:
    Temporary pointer type change to const void*
    Changes v3:
    Some build error fix.
    Changes v2:
    Argument x protect.
    
    Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit adb108bb9a38c435a667c6c14cf5da3da58025ba
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Tue Sep 13 15:53:55 2016 +0200

    nl80211: validate number of probe response CSA counters
    
    [ Upstream commit ad5987b47e96a0fb6d13fea250e936aed000093c ]
    
    Due to an apparent copy/paste bug, the number of counters for the
    beacon configuration were checked twice, instead of checking the
    number of probe response counters. Fix this to check the number of
    probe response counters before parsing those.
    
    Cc: stable@vger.kernel.org
    Fixes: 9a774c78e211 ("cfg80211: Support multiple CSA counters")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 14279ced5911c18ca26b70309c3dbff06d248592
Author: Huacai Chen <chenhc@lemote.com>
Date:   Mon Sep 5 08:48:03 2016 +0800

    MIPS: Add a missing ".set pop" in an early commit
    
    [ Upstream commit 3cbc6fc9c99f1709203711f125bc3b79487aba06 ]
    
    Commit 842dfc11ea9a21 ("MIPS: Fix build with binutils 2.24.51+") missing
    a ".set pop" in macro fpu_restore_16even, so add it.
    
    Signed-off-by: Huacai Chen <chenhc@lemote.com>
    Acked-by: Manuel Lauss <manuel.lauss@gmail.com>
    Cc: Steven J . Hill <Steven.Hill@caviumnetworks.com>
    Cc: Fuxin Zhang <zhangfx@lemote.com>
    Cc: Zhangjin Wu <wuzhangjin@gmail.com>
    Cc: linux-mips@linux-mips.org
    Cc: stable@vger.kernel.org # 3.18+
    Patchwork: https://patchwork.linux-mips.org/patch/14210/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit fcbe53d1cbac04e17c04530d59c075c372b42ddc
Author: Boris Brezillon <boris.brezillon@free-electrons.com>
Date:   Tue Sep 13 15:58:28 2016 +0200

    genirq: Provide irq_gc_{lock_irqsave,unlock_irqrestore}() helpers
    
    [ Upstream commit ebf9ff753c041b296241990aef76163bbb2cc9c8 ]
    
    Some irqchip drivers need to take the generic chip lock outside of the
    irq context.
    
    Provide the irq_gc_{lock_irqsave,unlock_irqrestore}() helpers to allow
    one to disable irqs while entering a critical section protected by
    gc->lock.
    
    Note that we do not provide optimized version of these helpers for !SMP,
    because they are not called from the hot-path.
    
    [ tglx: Added a comment when these helpers should be [not] used ]
    
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Nicolas Ferre <nicolas.ferre@atmel.com>
    Cc: stable@vger.kernel.org
    Cc: Alexandre Belloni <alexandre.belloni@free-electrons.com>
    Link: http://lkml.kernel.org/r/1473775109-4192-1-git-send-email-boris.brezillon@free-electrons.com
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit ebed93dca07e0fabbf5873007be2f9aa098d8d16
Author: Matt Redfearn <matt.redfearn@imgtec.com>
Date:   Mon Sep 5 15:43:40 2016 +0100

    MIPS: paravirt: Fix undefined reference to smp_bootstrap
    
    [ Upstream commit 951c39cd3bc0aedf67fbd8fb4b9380287e6205d1 ]
    
    If the paravirt machine is compiles without CONFIG_SMP, the following
    linker error occurs
    
    arch/mips/kernel/head.o: In function `kernel_entry':
    (.ref.text+0x10): undefined reference to `smp_bootstrap'
    
    due to the kernel entry macro always including SMP startup code.
    Wrap this code in CONFIG_SMP to fix the error.
    
    Signed-off-by: Matt Redfearn <matt.redfearn@imgtec.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: stable@vger.kernel.org # 3.16+
    Patchwork: https://patchwork.linux-mips.org/patch/14212/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 3e81f024b48c22bcb6e001096757c35c871e2833
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Tue Sep 13 09:48:53 2016 +0100

    crypto: arm64/aes-ctr - fix NULL dereference in tail processing
    
    [ Upstream commit 2db34e78f126c6001d79d3b66ab1abb482dc7caa ]
    
    The AES-CTR glue code avoids calling into the blkcipher API for the
    tail portion of the walk, by comparing the remainder of walk.nbytes
    modulo AES_BLOCK_SIZE with the residual nbytes, and jumping straight
    into the tail processing block if they are equal. This tail processing
    block checks whether nbytes != 0, and does nothing otherwise.
    
    However, in case of an allocation failure in the blkcipher layer, we
    may enter this code with walk.nbytes == 0, while nbytes > 0. In this
    case, we should not dereference the source and destination pointers,
    since they may be NULL. So instead of checking for nbytes != 0, check
    for (walk.nbytes % AES_BLOCK_SIZE) != 0, which implies the former in
    non-error conditions.
    
    Fixes: 49788fe2a128 ("arm64/crypto: AES-ECB/CBC/CTR/XTS using ARMv8 NEON and Crypto Extensions")
    Cc: stable@vger.kernel.org
    Reported-by: xiakaixu <xiakaixu@huawei.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 3b7df3867747a2d891b559017611b3eb2d217a3a
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Tue Sep 13 09:48:52 2016 +0100

    crypto: arm/aes-ctr - fix NULL dereference in tail processing
    
    [ Upstream commit f82e90b28654804ab72881d577d87c3d5c65e2bc ]
    
    The AES-CTR glue code avoids calling into the blkcipher API for the
    tail portion of the walk, by comparing the remainder of walk.nbytes
    modulo AES_BLOCK_SIZE with the residual nbytes, and jumping straight
    into the tail processing block if they are equal. This tail processing
    block checks whether nbytes != 0, and does nothing otherwise.
    
    However, in case of an allocation failure in the blkcipher layer, we
    may enter this code with walk.nbytes == 0, while nbytes > 0. In this
    case, we should not dereference the source and destination pointers,
    since they may be NULL. So instead of checking for nbytes != 0, check
    for (walk.nbytes % AES_BLOCK_SIZE) != 0, which implies the former in
    non-error conditions.
    
    Fixes: 86464859cc77 ("crypto: arm - AES in ECB/CBC/CTR/XTS modes using ARMv8 Crypto Extensions")
    Cc: stable@vger.kernel.org
    Reported-by: xiakaixu <xiakaixu@huawei.com>
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit a55614f1d6e3299837301b0e0a8599c3463db6bd
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Sep 13 14:43:29 2016 +0800

    crypto: skcipher - Fix blkcipher walk OOM crash
    
    [ Upstream commit acdb04d0b36769b3e05990c488dc74d8b7ac8060 ]
    
    When we need to allocate a temporary blkcipher_walk_next and it
    fails, the code is supposed to take the slow path of processing
    the data block by block.  However, due to an unrelated change
    we instead end up dereferencing the NULL pointer.
    
    This patch fixes it by moving the unrelated bsize setting out
    of the way so that we enter the slow path as inteded.
    
    Fixes: 7607bd8ff03b ("[CRYPTO] blkcipher: Added blkcipher_walk_virt_block")
    Cc: stable@vger.kernel.org
    Reported-by: xiakaixu <xiakaixu@huawei.com>
    Reported-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Tested-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit ce2fe0811fe474a5900a9b2baa431cbc4c164613
Author: Daniele Palmas <dnlplm@gmail.com>
Date:   Fri Sep 2 10:37:56 2016 +0200

    USB: serial: simple: add support for another Infineon flashloader
    
    [ Upstream commit f190fd92458da3e869b4e2c6289e2c617490ae53 ]
    
    This patch adds support for Infineon flashloader 0x8087/0x0801.
    
    The flashloader is used in Telit LE940B modem family with Telit
    flashing application.
    
    Signed-off-by: Daniele Palmas <dnlplm@gmail.com>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f40afeebc9bd778d91b3a8f90630538e2fed6bef
Author: Trond Myklebust <trond.myklebust@primarydata.com>
Date:   Sun Sep 11 14:50:01 2016 -0400

    NFSv4.1: Fix the CREATE_SESSION slot number accounting
    
    [ Upstream commit b519d408ea32040b1c7e10b155a3ee9a36660947 ]
    
    Ensure that we conform to the algorithm described in RFC5661, section
    18.36.4 for when to bump the sequence id. In essence we do it for all
    cases except when the RPC call timed out, or in case of the server returning
    NFS4ERR_DELAY or NFS4ERR_STALE_CLIENTID.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 41beb77f7e59e17d675f159ae83c34b6545b7316
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu Sep 8 14:20:38 2016 -0700

    fscrypto: require write access to mount to set encryption policy
    
    [ Upstream commit ba63f23d69a3a10e7e527a02702023da68ef8a6d ]
    
    Since setting an encryption policy requires writing metadata to the
    filesystem, it should be guarded by mnt_want_write/mnt_drop_write.
    Otherwise, a user could cause a write to a frozen or readonly
    filesystem.  This was handled correctly by f2fs but not by ext4.  Make
    fscrypt_process_policy() handle it rather than relying on the filesystem
    to get it right.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Cc: stable@vger.kernel.org # 4.1+; check fs/{ext4,f2fs}
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Acked-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 08ac15d0e46bddb8dc9ae9bd939e844d7c2451b9
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Aug 17 16:36:37 2016 -0400

    asm-generic: make copy_from_user() zero the destination properly
    
    [ Upstream commit 2545e5da080b4839dd859e3b09343a884f6ab0e3 ]
    
    ... in all cases, including the failing access_ok()
    
    Note that some architectures using asm-generic/uaccess.h have
    __copy_from_user() not zeroing the tail on failure halfway
    through.  This variant works either way.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit ca79a8dbf9345058f26305c263dd871ae8d80dfe
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Wed Aug 17 16:02:32 2016 -0400

    alpha: fix copy_from_user()
    
    [ Upstream commit 2561d309dfd1555e781484af757ed0115035ddb3 ]
    
    it should clear the destination even when access_ok() fails.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit f2ec3a1c749bd4de9de3e74e2c8428493cab9678
Author: Will Deacon <will.deacon@arm.com>
Date:   Mon Sep 5 11:56:05 2016 +0100

    arm64: spinlocks: implement smp_mb__before_spinlock() as smp_mb()
    
    [ Upstream commit 872c63fbf9e153146b07f0cece4da0d70b283eeb ]
    
    smp_mb__before_spinlock() is intended to upgrade a spin_lock() operation
    to a full barrier, such that prior stores are ordered with respect to
    loads and stores occuring inside the critical section.
    
    Unfortunately, the core code defines the barrier as smp_wmb(), which
    is insufficient to provide the required ordering guarantees when used in
    conjunction with our load-acquire-based spinlock implementation.
    
    This patch overrides the arm64 definition of smp_mb__before_spinlock()
    to map to a full smp_mb().
    
    Cc: <stable@vger.kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Reported-by: Alan Stern <stern@rowland.harvard.edu>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 323d5348592074c37fbda31cdbb6c0a7f7ddfe31
Author: Suzuki K Poulose <suzuki.poulose@arm.com>
Date:   Thu Sep 8 16:25:49 2016 +0100

    kvm-arm: Unmap shadow pagetables properly
    
    [ Upstream commit 293f293637b55db4f9f522a5a72514e98a541076 ]
    
    On arm/arm64, we depend on the kvm_unmap_hva* callbacks (via
    mmu_notifiers::invalidate_*) to unmap the stage2 pagetables when
    the userspace buffer gets unmapped. However, when the Hypervisor
    process exits without explicit unmap of the guest buffers, the only
    notifier we get is kvm_arch_flush_shadow_all() (via mmu_notifier::release
    ) which does nothing on arm. Later this causes us to access pages that
    were already released [via exit_mmap() -> unmap_vmas()] when we actually
    get to unmap the stage2 pagetable [via kvm_arch_destroy_vm() ->
    kvm_free_stage2_pgd()]. This triggers crashes with CONFIG_DEBUG_PAGEALLOC,
    which unmaps any free'd pages from the linear map.
    
     [  757.644120] Unable to handle kernel paging request at virtual address
      ffff800661e00000
     [  757.652046] pgd = ffff20000b1a2000
     [  757.655471] [ffff800661e00000] *pgd=00000047fffe3003, *pud=00000047fcd8c003,
      *pmd=00000047fcc7c003, *pte=00e8004661e00712
     [  757.666492] Internal error: Oops: 96000147 [#3] PREEMPT SMP
     [  757.672041] Modules linked in:
     [  757.675100] CPU: 7 PID: 3630 Comm: qemu-system-aar Tainted: G      D
     4.8.0-rc1 #3
     [  757.683240] Hardware name: AppliedMicro X-Gene Mustang Board/X-Gene Mustang Board,
      BIOS 3.06.15 Aug 19 2016
     [  757.692938] task: ffff80069cdd3580 task.stack: ffff8006adb7c000
     [  757.698840] PC is at __flush_dcache_area+0x1c/0x40
     [  757.703613] LR is at kvm_flush_dcache_pmd+0x60/0x70
     [  757.708469] pc : [<ffff20000809dbdc>] lr : [<ffff2000080b4a70>] pstate: 20000145
     ...
     [  758.357249] [<ffff20000809dbdc>] __flush_dcache_area+0x1c/0x40
     [  758.363059] [<ffff2000080b6748>] unmap_stage2_range+0x458/0x5f0
     [  758.368954] [<ffff2000080b708c>] kvm_free_stage2_pgd+0x34/0x60
     [  758.374761] [<ffff2000080b2280>] kvm_arch_destroy_vm+0x20/0x68
     [  758.380570] [<ffff2000080aa330>] kvm_put_kvm+0x210/0x358
     [  758.385860] [<ffff2000080aa524>] kvm_vm_release+0x2c/0x40
     [  758.391239] [<ffff2000082ad234>] __fput+0x114/0x2e8
     [  758.396096] [<ffff2000082ad46c>] ____fput+0xc/0x18
     [  758.400869] [<ffff200008104658>] task_work_run+0x108/0x138
     [  758.406332] [<ffff2000080dc8ec>] do_exit+0x48c/0x10e8
     [  758.411363] [<ffff2000080dd5fc>] do_group_exit+0x6c/0x130
     [  758.416739] [<ffff2000080ed924>] get_signal+0x284/0xa18
     [  758.421943] [<ffff20000808a098>] do_signal+0x158/0x860
     [  758.427060] [<ffff20000808aad4>] do_notify_resume+0x6c/0x88
     [  758.432608] [<ffff200008083624>] work_pending+0x10/0x14
     [  758.437812] Code: 9ac32042 8b010001 d1000443 8a230000 (d50b7e20)
    
    This patch fixes the issue by moving the kvm_free_stage2_pgd() to
    kvm_arch_flush_shadow_all().
    
    Cc: <stable@vger.kernel.org> # 3.9+
    Tested-by: Itaru Kitayama <itaru.kitayama@riken.jp>
    Reported-by: Itaru Kitayama <itaru.kitayama@riken.jp>
    Reported-by: James Morse <james.morse@arm.com>
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 32eb86c0cc4b3d19916981f2c3df9b7df6267d65
Author: Clemens Gruber <clemens.gruber@pqgruber.com>
Date:   Mon Sep 5 19:29:58 2016 +0200

    usb: chipidea: udc: fix NULL ptr dereference in isr_setup_status_phase
    
    [ Upstream commit 6f3c4fb6d05e63c9c6d8968302491c3a5457be61 ]
    
    Problems with the signal integrity of the high speed USB data lines or
    noise on reference ground lines can cause the i.MX6 USB controller to
    violate USB specs and exhibit unexpected behavior.
    
    It was observed that USBi_UI interrupts were triggered first and when
    isr_setup_status_phase was called, ci->status was NULL, which lead to a
    NULL pointer dereference kernel panic.
    
    This patch fixes the kernel panic, emits a warning once and returns
    -EPIPE to halt the device and let the host get stalled.
    It also adds a comment to point people, who are experiencing this issue,
    to their USB hardware design.
    
    Cc: <stable@vger.kernel.org> #4.1+
    Signed-off-by: Clemens Gruber <clemens.gruber@pqgruber.com>
    Signed-off-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 4bfeb58805bd708c1d1831df6bc30b3cb8f42516
Author: Lee Jones <lee.jones@linaro.org>
Date:   Thu Sep 8 11:11:00 2016 +0200

    ARM: dts: STiH410: Handle interconnect clock required by EHCI/OHCI (USB)
    
    [ Upstream commit 7e9d2850a8db4e0d85a20bb692198bf2cc4be3b7 ]
    
    The STiH4{07,10} platform contains some interconnect clocks which are used
    by various IPs.  If this clock isn't handled correctly by ST's EHCI/OHCI
    drivers, their hub won't be found, the following error be shown and the
    result will be non-working USB:
    
      [   97.221963] hub 2-1:1.0: hub_ext_port_status failed (err = -110)
    
    Cc: stable@vger.kernel.org
    Tested-by: Peter Griffin <peter.griffin@linaro.org>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Acked-by: Patrice Chotard <patrice.chotard@st.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 1c33cc044e6a54525fcb827e21d47affd07fb333
Author: Takashi Iwai <tiwai@suse.de>
Date:   Tue Aug 30 14:45:46 2016 +0200

    ALSA: rawmidi: Fix possible deadlock with virmidi registration
    
    [ Upstream commit 816f318b2364262a51024096da7ca3b84e78e3b5 ]
    
    When a seq-virmidi driver is initialized, it registers a rawmidi
    instance with its callback to create an associated seq kernel client.
    Currently it's done throughly in rawmidi's register_mutex context.
    Recently it was found that this may lead to a deadlock another rawmidi
    device that is being attached with the sequencer is accessed, as both
    open with the same register_mutex.  This was actually triggered by
    syzkaller, as Dmitry Vyukov reported:
    
    ======================================================
     [ INFO: possible circular locking dependency detected ]
     4.8.0-rc1+ #11 Not tainted
     -------------------------------------------------------
     syz-executor/7154 is trying to acquire lock:
      (register_mutex#5){+.+.+.}, at: [<ffffffff84fd6d4b>] snd_rawmidi_kernel_open+0x4b/0x260 sound/core/rawmidi.c:341
    
     but task is already holding lock:
      (&grp->list_mutex){++++.+}, at: [<ffffffff850138bb>] check_and_subscribe_port+0x5b/0x5c0 sound/core/seq/seq_ports.c:495
    
     which lock already depends on the new lock.
    
     the existing dependency chain (in reverse order) is:
    
     -> #1 (&grp->list_mutex){++++.+}:
        [<ffffffff8147a3a8>] lock_acquire+0x208/0x430 kernel/locking/lockdep.c:3746
        [<ffffffff863f6199>] down_read+0x49/0xc0 kernel/locking/rwsem.c:22
        [<     inline     >] deliver_to_subscribers sound/core/seq/seq_clientmgr.c:681
        [<ffffffff85005c5e>] snd_seq_deliver_event+0x35e/0x890 sound/core/seq/seq_clientmgr.c:822
        [<ffffffff85006e96>] > snd_seq_kernel_client_dispatch+0x126/0x170 sound/core/seq/seq_clientmgr.c:2418
        [<ffffffff85012c52>] snd_seq_system_broadcast+0xb2/0xf0 sound/core/seq/seq_system.c:101
        [<ffffffff84fff70a>] snd_seq_create_kernel_client+0x24a/0x330 sound/core/seq/seq_clientmgr.c:2297
        [<     inline     >] snd_virmidi_dev_attach_seq sound/core/seq/seq_virmidi.c:383
        [<ffffffff8502d29f>] snd_virmidi_dev_register+0x29f/0x750 sound/core/seq/seq_virmidi.c:450
        [<ffffffff84fd208c>] snd_rawmidi_dev_register+0x30c/0xd40 sound/core/rawmidi.c:1645
        [<ffffffff84f816d3>] __snd_device_register.part.0+0x63/0xc0 sound/core/device.c:164
        [<     inline     >] __snd_device_register sound/core/device.c:162
        [<ffffffff84f8235d>] snd_device_register_all+0xad/0x110 sound/core/device.c:212
        [<ffffffff84f7546f>] snd_card_register+0xef/0x6c0 sound/core/init.c:749
        [<ffffffff85040b7f>] snd_virmidi_probe+0x3ef/0x590 sound/drivers/virmidi.c:123
        [<ffffffff833ebf7b>] platform_drv_probe+0x8b/0x170 drivers/base/platform.c:564
        ......
    
     -> #0 (register_mutex#5){+.+.+.}:
        [<     inline     >] check_prev_add kernel/locking/lockdep.c:1829
        [<     inline     >] check_prevs_add kernel/locking/lockdep.c:1939
        [<     inline     >] validate_chain kernel/locking/lockdep.c:2266
        [<ffffffff814791f4>] __lock_acquire+0x4d44/0x4d80 kernel/locking/lockdep.c:3335
        [<ffffffff8147a3a8>] lock_acquire+0x208/0x430 kernel/locking/lockdep.c:3746
        [<     inline     >] __mutex_lock_common kernel/locking/mutex.c:521
        [<ffffffff863f0ef1>] mutex_lock_nested+0xb1/0xa20 kernel/locking/mutex.c:621
        [<ffffffff84fd6d4b>] snd_rawmidi_kernel_open+0x4b/0x260 sound/core/rawmidi.c:341
        [<ffffffff8502e7c7>] midisynth_subscribe+0xf7/0x350 sound/core/seq/seq_midi.c:188
        [<     inline     >] subscribe_port sound/core/seq/seq_ports.c:427
        [<ffffffff85013cc7>] check_and_subscribe_port+0x467/0x5c0 sound/core/seq/seq_ports.c:510
        [<ffffffff85015da9>] snd_seq_port_connect+0x2c9/0x500 sound/core/seq/seq_ports.c:579
        [<ffffffff850079b8>] snd_seq_ioctl_subscribe_port+0x1d8/0x2b0 sound/core/seq/seq_clientmgr.c:1480
        [<ffffffff84ffe9e4>] snd_seq_do_ioctl+0x184/0x1e0 sound/core/seq/seq_clientmgr.c:2225
        [<ffffffff84ffeae8>] snd_seq_kernel_client_ctl+0xa8/0x110 sound/core/seq/seq_clientmgr.c:2440
        [<ffffffff85027664>] snd_seq_oss_midi_open+0x3b4/0x610 sound/core/seq/oss/seq_oss_midi.c:375
        [<ffffffff85023d67>] snd_seq_oss_synth_setup_midi+0x107/0x4c0 sound/core/seq/oss/seq_oss_synth.c:281
        [<ffffffff8501b0a8>] snd_seq_oss_open+0x748/0x8d0 sound/core/seq/oss/seq_oss_init.c:274
        [<ffffffff85019d8a>] odev_open+0x6a/0x90 sound/core/seq/oss/seq_oss.c:138
        [<ffffffff84f7040f>] soundcore_open+0x30f/0x640 sound/sound_core.c:639
        ......
    
     other info that might help us debug this:
    
     Possible unsafe locking scenario:
    
            CPU0                    CPU1
            ----                    ----
       lock(&grp->list_mutex);
                                    lock(register_mutex#5);
                                    lock(&grp->list_mutex);
       lock(register_mutex#5);
    
     *** DEADLOCK ***
    ======================================================
    
    The fix is to simply move the registration parts in
    snd_rawmidi_dev_register() to the outside of the register_mutex lock.
    The lock is needed only to manage the linked list, and it's not
    necessarily to cover the whole initialization process.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit d14b394a0ebc873388867cd8f18f6d4b940ceee7
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Sep 7 15:45:31 2016 +0200

    ALSA: timer: Fix zero-division by continue of uninitialized instance
    
    [ Upstream commit 9f8a7658bcafb2a7853f7a2eae8a94e87e6e695b ]
    
    When a user timer instance is continued without the explicit start
    beforehand, the system gets eventually zero-division error like:
    
      divide error: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN
      CPU: 1 PID: 27320 Comm: syz-executor Not tainted 4.8.0-rc3-next-20160825+ #8
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
       task: ffff88003c9b2280 task.stack: ffff880027280000
       RIP: 0010:[<ffffffff858e1a6c>]  [<     inline     >] ktime_divns include/linux/ktime.h:195
       RIP: 0010:[<ffffffff858e1a6c>]  [<ffffffff858e1a6c>] snd_hrtimer_callback+0x1bc/0x3c0 sound/core/hrtimer.c:62
      Call Trace:
       <IRQ>
       [<     inline     >] __run_hrtimer kernel/time/hrtimer.c:1238
       [<ffffffff81504335>] __hrtimer_run_queues+0x325/0xe70 kernel/time/hrtimer.c:1302
       [<ffffffff81506ceb>] hrtimer_interrupt+0x18b/0x420 kernel/time/hrtimer.c:1336
       [<ffffffff8126d8df>] local_apic_timer_interrupt+0x6f/0xe0 arch/x86/kernel/apic/apic.c:933
       [<ffffffff86e13056>] smp_apic_timer_interrupt+0x76/0xa0 arch/x86/kernel/apic/apic.c:957
       [<ffffffff86e1210c>] apic_timer_interrupt+0x8c/0xa0 arch/x86/entry/entry_64.S:487
       <EOI>
       .....
    
    Although a similar issue was spotted and a fix patch was merged in
    commit [6b760bb2c63a: ALSA: timer: fix division by zero after
    SNDRV_TIMER_IOCTL_CONTINUE], it seems covering only a part of
    iceberg.
    
    In this patch, we fix the issue a bit more drastically.  Basically the
    continue of an uninitialized timer is supposed to be a fresh start, so
    we do it for user timers.  For the direct snd_timer_continue() call,
    there is no way to pass the initial tick value, so we kick out for the
    uninitialized case.
    
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit bc84b389c755be607f3bdf7c75f05350a339c478
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 10 12:47:03 2016 +0100

    ALSA: timer: Call notifier in the same spinlock
    
    [ Upstream commit f65e0d299807d8a11812845c972493c3f9a18e10 ]
    
    snd_timer_notify1() is called outside the spinlock and it retakes the
    lock after the unlock.  This is rather racy, and it's safer to move
    snd_timer_notify() call inside the main spinlock.
    
    The patch also contains a slight refactoring / cleanup of the code.
    Now all start/stop/continue/pause look more symmetric and a bit better
    readable.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 631f0633058ad4e375ab77fe1d579bcae2930d63
Author: Mathias Nyman <mathias.nyman@linux.intel.com>
Date:   Wed Sep 7 17:26:33 2016 +0300

    xhci: fix null pointer dereference in stop command timeout function
    
    [ Upstream commit bcf42aa60c2832510b9be0f30c090bfd35bb172d ]
    
    The stop endpoint command has its own 5 second timeout timer.
    If the timeout function is triggered between USB3 and USB2 host
    removal it will try to call usb_hc_died(xhci_to_hcd(xhci)->primary_hcd)
    
    the ->primary_hcd will be set to NULL at USB3 hcd removal.
    
    Fix this by first checking if the PCI host is being removed, and
    also by using only xhci_to_hcd() as it will always return the primary
    hcd.
    
    CC: <stable@vger.kernel.org>
    Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 7b6ea253907e619b96e98f7d52bab169019e54e6
Author: Paul Mackerras <paulus@ozlabs.org>
Date:   Fri Sep 2 21:47:59 2016 +1000

    powerpc/mm: Don't alias user region to other regions below PAGE_OFFSET
    
    [ Upstream commit f077aaf0754bcba0fffdbd925bc12f09cd1e38aa ]
    
    In commit c60ac5693c47 ("powerpc: Update kernel VSID range", 2013-03-13)
    we lost a check on the region number (the top four bits of the effective
    address) for addresses below PAGE_OFFSET.  That commit replaced a check
    that the top 18 bits were all zero with a check that bits 46 - 59 were
    zero (performed for all addresses, not just user addresses).
    
    This means that userspace can access an address like 0x1000_0xxx_xxxx_xxxx
    and we will insert a valid SLB entry for it.  The VSID used will be the
    same as if the top 4 bits were 0, but the page size will be some random
    value obtained by indexing beyond the end of the mm_ctx_high_slices_psize
    array in the paca.  If that page size is the same as would be used for
    region 0, then userspace just has an alias of the region 0 space.  If the
    page size is different, then no HPTE will be found for the access, and
    the process will get a SIGSEGV (since hash_page_mm() will refuse to create
    a HPTE for the bogus address).
    
    The access beyond the end of the mm_ctx_high_slices_psize can be at most
    5.5MB past the array, and so will be in RAM somewhere.  Since the access
    is a load performed in real mode, it won't fault or crash the kernel.
    At most this bug could perhaps leak a little bit of information about
    blocks of 32 bytes of memory located at offsets of i * 512kB past the
    paca->mm_ctx_high_slices_psize array, for 1 <= i <= 11.
    
    Fixes: c60ac5693c47 ("powerpc: Update kernel VSID range")
    Cc: stable@vger.kernel.org # v3.9+
    Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
    Reviewed-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@verizon.com>

commit b8e51107942182fdcd111c5fc3e601b3b8c9e8f4
Author: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Date:   Thu Sep 1 14:25:43 2016 +0100

    crypto: cryptd - initialize child shash_desc on import
    
    [ Upstream commit 0bd2223594a4dcddc1e34b15774a3a4776f7749e ]
    
    When calling .import() on a cryptd ahash_request, the structure members
    that describe the child transform in the shash_desc need to be initialized
    like they are when calling .init()
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 81e6db1b2e0bfcdcde1c38d9d9296a7cfbcf0429
Author: Wei Yongjun <weiyongjun1@huawei.com>
Date:   Mon Sep 5 16:06:31 2016 +0800

    ipv6: addrconf: fix dev refcont leak when DAD failed
    
    [ Upstream commit 751eb6b6042a596b0080967c1a529a9fe98dac1d ]
    
    In general, when DAD detected IPv6 duplicate address, ifp->state
    will be set to INET6_IFADDR_STATE_ERRDAD and DAD is stopped by a
    delayed work, the call tree should be like this:
    
    ndisc_recv_ns
      -> addrconf_dad_failure        <- missing ifp put
         -> addrconf_mod_dad_work
           -> schedule addrconf_dad_work()
             -> addrconf_dad_stop()  <- missing ifp hold before call it
    
    addrconf_dad_failure() called with ifp refcont holding but not put.
    addrconf_dad_work() call addrconf_dad_stop() without extra holding
    refcount. This will not cause any issue normally.
    
    But the race between addrconf_dad_failure() and addrconf_dad_work()
    may cause ifp refcount leak and netdevice can not be unregister,
    dmesg show the following messages:
    
    IPv6: eth0: IPv6 duplicate address fe80::XX:XXXX:XXXX:XX detected!
    ...
    unregister_netdevice: waiting for eth0 to become free. Usage count = 1
    
    Cc: stable@vger.kernel.org
    Fixes: c15b1ccadb32 ("ipv6: move DAD and addrconf_verify processing
    to workqueue")
    Signed-off-by: Wei Yongjun <weiyongjun1@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 12ebbc22df9ae361dc0ebc2689fa57269d8d26cc
Author: Chris Mason <clm@fb.com>
Date:   Tue Sep 6 05:37:40 2016 -0700

    Btrfs: remove root_log_ctx from ctx list before btrfs_sync_log returns
    
    [ Upstream commit cbd60aa7cd17d81a434234268c55192862147439 ]
    
    We use a btrfs_log_ctx structure to pass information into the
    tree log commit, and get error values out.  It gets added to a per
    log-transaction list which we walk when things go bad.
    
    Commit d1433debe added an optimization to skip waiting for the log
    commit, but didn't take root_log_ctx out of the list.  This
    patch makes sure we remove things before exiting.
    
    Signed-off-by: Chris Mason <clm@fb.com>
    Fixes: d1433debe7f4346cf9fc0dafc71c3137d2a97bc4
    cc: stable@vger.kernel.org # 3.15+
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit c2aca6bbb20fa41d49200b3fd56f8622d4f2048b
Author: Jan Leupold <leupold@rsi-elektrotechnik.de>
Date:   Wed Jul 6 13:22:35 2016 +0200

    drm: atmel-hlcdc: Fix vertical scaling
    
    [ Upstream commit d31ed3f05763644840c654a384eaefa94c097ba2 ]
    
    The code is applying the same scaling for the X and Y components,
    thus making the scaling feature only functional when both components
    have the same scaling factor.
    
    Do the s/_w/_h/ replacement where appropriate to fix vertical scaling.
    
    Signed-off-by: Jan Leupold <leupold@rsi-elektrotechnik.de>
    Fixes: 1a396789f65a2 ("drm: add Atmel HLCDC Display Controller support")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 12c68a9c1eed60b8acd716ec248b3ff9877f003f
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Mon Sep 5 13:55:20 2016 +0200

    ovl: fix workdir creation
    
    [ Upstream commit e1ff3dd1ae52cef5b5373c8cc4ad949c2c25a71c ]
    
    Workdir creation fails in latest kernel.
    
    Fix by allowing EOPNOTSUPP as a valid return value from
    vfs_removexattr(XATTR_NAME_POSIX_ACL_*).  Upper filesystem may not support
    ACL and still be perfectly able to support overlayfs.
    
    Reported-by: Martin Ziegler <ziegler@uni-freiburg.de>
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Fixes: c11b9fdd6a61 ("ovl: remove posix_acl_default from workdir")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8af2ce0777ab7f143f6513c8de9e4c3a258f5085
Author: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Date:   Mon Aug 29 18:00:38 2016 +0900

    usb: renesas_usbhs: fix clearing the {BRDY,BEMP}STS condition
    
    [ Upstream commit 519d8bd4b5d3d82c413eac5bb42b106bb4b9ec15 ]
    
    The previous driver is possible to stop the transfer wrongly.
    For example:
     1) An interrupt happens, but not BRDY interruption.
     2) Read INTSTS0. And than state->intsts0 is not set to BRDY.
     3) BRDY is set to 1 here.
     4) Read BRDYSTS.
     5) Clear the BRDYSTS. And then. the BRDY is cleared wrongly.
    
    Remarks:
     - The INTSTS0.BRDY is read only.
      - If any bits of BRDYSTS are set to 1, the BRDY is set to 1.
      - If BRDYSTS is 0, the BRDY is set to 0.
    
    So, this patch adds condition to avoid such situation. (And about
    NRDYSTS, this is not used for now. But, avoiding any side effects,
    this patch doesn't touch it.)
    
    Fixes: d5c6a1e024dd ("usb: renesas_usbhs: fixup interrupt status clear method")
    Cc: <stable@vger.kernel.org> # v3.8+
    Signed-off-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 431d09f289e89b45513fc12277601adfaf84df6d
Author: Balbir Singh <bsingharora@gmail.com>
Date:   Mon Sep 5 13:16:40 2016 +1000

    sched/core: Fix a race between try_to_wake_up() and a woken up task
    
    [ Upstream commit 135e8c9250dd5c8c9aae5984fde6f230d0cbfeaf ]
    
    The origin of the issue I've seen is related to
    a missing memory barrier between check for task->state and
    the check for task->on_rq.
    
    The task being woken up is already awake from a schedule()
    and is doing the following:
    
            do {
                    schedule()
                    set_current_state(TASK_(UN)INTERRUPTIBLE);
            } while (!cond);
    
    The waker, actually gets stuck doing the following in
    try_to_wake_up():
    
            while (p->on_cpu)
                    cpu_relax();
    
    Analysis:
    
    The instance I've seen involves the following race:
    
     CPU1                                   CPU2
    
     while () {
       if (cond)
         break;
       do {
         schedule();
         set_current_state(TASK_UN..)
       } while (!cond);
                                            wakeup_routine()
                                              spin_lock_irqsave(wait_lock)
       raw_spin_lock_irqsave(wait_lock)       wake_up_process()
     }                                        try_to_wake_up()
     set_current_state(TASK_RUNNING);         ..
     list_del(&waiter.list);
    
    CPU2 wakes up CPU1, but before it can get the wait_lock and set
    current state to TASK_RUNNING the following occurs:
    
     CPU3
     wakeup_routine()
     raw_spin_lock_irqsave(wait_lock)
     if (!list_empty)
       wake_up_process()
       try_to_wake_up()
       raw_spin_lock_irqsave(p->pi_lock)
       ..
       if (p->on_rq && ttwu_wakeup())
       ..
       while (p->on_cpu)
         cpu_relax()
       ..
    
    CPU3 tries to wake up the task on CPU1 again since it finds
    it on the wait_queue, CPU1 is spinning on wait_lock, but immediately
    after CPU2, CPU3 got it.
    
    CPU3 checks the state of p on CPU1, it is TASK_UNINTERRUPTIBLE and
    the task is spinning on the wait_lock. Interestingly since p->on_rq
    is checked under pi_lock, I've noticed that try_to_wake_up() finds
    p->on_rq to be 0. This was the most confusing bit of the analysis,
    but p->on_rq is changed under runqueue lock, rq_lock, the p->on_rq
    check is not reliable without this fix IMHO. The race is visible
    (based on the analysis) only when ttwu_queue() does a remote wakeup
    via ttwu_queue_remote. In which case the p->on_rq change is not
    done uder the pi_lock.
    
    The result is that after a while the entire system locks up on
    the raw_spin_irqlock_save(wait_lock) and the holder spins infintely
    
    Reproduction of the issue:
    
    The issue can be reproduced after a long run on my system with 80
    threads and having to tweak available memory to very low and running
    memory stress-ng mmapfork test. It usually takes a long time to
    reproduce. I am trying to work on a test case that can reproduce
    the issue faster, but thats work in progress. I am still testing the
    changes on my still in a loop and the tests seem OK thus far.
    
    Big thanks to Benjamin and Nick for helping debug this as well.
    Ben helped catch the missing barrier, Nick caught every missing
    bit in my theory.
    
    Signed-off-by: Balbir Singh <bsingharora@gmail.com>
    [ Updated comment to clarify matching barriers. Many
      architectures do not have a full barrier in switch_to()
      so that cannot be relied upon. ]
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Alexey Kardashevskiy <aik@ozlabs.ru>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Nicholas Piggin <nicholas.piggin@gmail.com>
    Cc: Nicholas Piggin <npiggin@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: <stable@vger.kernel.org>
    Link: http://lkml.kernel.org/r/e02cce7b-d9ca-1ad0-7a61-ea97c7582b37@gmail.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 1ea35b9f0b42ceb9a480479ff16f9eafb34860aa
Author: Linus Walleij <linus.walleij@linaro.org>
Date:   Thu Sep 1 11:44:35 2016 +0200

    iio: accel: kxsd9: Fix scaling bug
    
    [ Upstream commit 307fe9dd11ae44d4f8881ee449a7cbac36e1f5de ]
    
    All the scaling of the KXSD9 involves multiplication with a
    fraction number < 1.
    
    However the scaling value returned from IIO_INFO_SCALE was
    unpredictable as only the micros of the value was assigned, and
    not the integer part, resulting in scaling like this:
    
    $cat in_accel_scale
    -1057462640.011978
    
    Fix this by assigning zero to the integer part.
    
    Cc: stable@vger.kernel.org
    Tested-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Jonathan Cameron <jic23@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 193eb8f1ca047995ff02a6ccc64486c5e6d64b10
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Sun Aug 28 10:13:07 2016 +0200

    ALSA: timer: fix NULL pointer dereference in read()/ioctl() race
    
    [ Upstream commit 11749e086b2766cccf6217a527ef5c5604ba069c ]
    
    I got this with syzkaller:
    
        ==================================================================
        BUG: KASAN: null-ptr-deref on address 0000000000000020
        Read of size 32 by task syz-executor/22519
        CPU: 1 PID: 22519 Comm: syz-executor Not tainted 4.8.0-rc2+ #169
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2
        014
         0000000000000001 ffff880111a17a00 ffffffff81f9f141 ffff880111a17a90
         ffff880111a17c50 ffff880114584a58 ffff880114584a10 ffff880111a17a80
         ffffffff8161fe3f ffff880100000000 ffff880118d74a48 ffff880118d74a68
        Call Trace:
         [<ffffffff81f9f141>] dump_stack+0x83/0xb2
         [<ffffffff8161fe3f>] kasan_report_error+0x41f/0x4c0
         [<ffffffff8161ff74>] kasan_report+0x34/0x40
         [<ffffffff82c84b54>] ? snd_timer_user_read+0x554/0x790
         [<ffffffff8161e79e>] check_memory_region+0x13e/0x1a0
         [<ffffffff8161e9c1>] kasan_check_read+0x11/0x20
         [<ffffffff82c84b54>] snd_timer_user_read+0x554/0x790
         [<ffffffff82c84600>] ? snd_timer_user_info_compat.isra.5+0x2b0/0x2b0
         [<ffffffff817d0831>] ? proc_fault_inject_write+0x1c1/0x250
         [<ffffffff817d0670>] ? next_tgid+0x2a0/0x2a0
         [<ffffffff8127c278>] ? do_group_exit+0x108/0x330
         [<ffffffff8174653a>] ? fsnotify+0x72a/0xca0
         [<ffffffff81674dfe>] __vfs_read+0x10e/0x550
         [<ffffffff82c84600>] ? snd_timer_user_info_compat.isra.5+0x2b0/0x2b0
         [<ffffffff81674cf0>] ? do_sendfile+0xc50/0xc50
         [<ffffffff81745e10>] ? __fsnotify_update_child_dentry_flags+0x60/0x60
         [<ffffffff8143fec6>] ? kcov_ioctl+0x56/0x190
         [<ffffffff81e5ada2>] ? common_file_perm+0x2e2/0x380
         [<ffffffff81746b0e>] ? __fsnotify_parent+0x5e/0x2b0
         [<ffffffff81d93536>] ? security_file_permission+0x86/0x1e0
         [<ffffffff816728f5>] ? rw_verify_area+0xe5/0x2b0
         [<ffffffff81675355>] vfs_read+0x115/0x330
         [<ffffffff81676371>] SyS_read+0xd1/0x1a0
         [<ffffffff816762a0>] ? vfs_write+0x4b0/0x4b0
         [<ffffffff82001c2c>] ? __this_cpu_preempt_check+0x1c/0x20
         [<ffffffff8150455a>] ? __context_tracking_exit.part.4+0x3a/0x1e0
         [<ffffffff816762a0>] ? vfs_write+0x4b0/0x4b0
         [<ffffffff81005524>] do_syscall_64+0x1c4/0x4e0
         [<ffffffff810052fc>] ? syscall_return_slowpath+0x16c/0x1d0
         [<ffffffff83c3276a>] entry_SYSCALL64_slow_path+0x25/0x25
        ==================================================================
    
    There are a couple of problems that I can see:
    
     - ioctl(SNDRV_TIMER_IOCTL_SELECT), which potentially sets
       tu->queue/tu->tqueue to NULL on memory allocation failure, so read()
       would get a NULL pointer dereference like the above splat
    
     - the same ioctl() can free tu->queue/to->tqueue which means read()
       could potentially see (and dereference) the freed pointer
    
    We can fix both by taking the ioctl_lock mutex when dereferencing
    ->queue/->tqueue, since that's always held over all the ioctl() code.
    
    Just looking at the code I find it likely that there are more problems
    here such as tu->qhead pointing outside the buffer if the size is
    changed concurrently using SNDRV_TIMER_IOCTL_PARAMS.
    
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 854a40facfc9f5463ff6f084cd7d885b5e06ef9f
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Wed Aug 31 22:58:42 2016 +0900

    ALSA: fireworks: accessing to user space outside spinlock
    
    [ Upstream commit 6b1ca4bcadf9ef077cc5f03c6822ba276ed14902 ]
    
    In hwdep interface of fireworks driver, accessing to user space is in a
    critical section with disabled local interrupt. Depending on architecture,
    accessing to user space can cause page fault exception. Then local
    processor stores machine status and handles the synchronous event. A
    handler corresponding to the event can call task scheduler to wait for
    preparing pages. In a case of usage of single core processor, the state to
    disable local interrupt is worse because it don't handle usual interrupts
    from hardware.
    
    This commit fixes this bug, performing the accessing outside spinlock. This
    commit also gives up counting the number of queued response messages to
    simplify ring-buffer management.
    
    Reported-by: Vaishali Thakkar <vaishali.thakkar@oracle.com>
    Cc: stable@vger.kernel.org
    Fixes: 555e8a8f7f14('ALSA: fireworks: Add command/response functionality into hwdep interface')
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 82ae68a84f2ce4de5bbcff7976bbfa46096862b5
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Mon Aug 22 23:53:25 2016 +0800

    ARM: imx6: add missing BM_CLPCR_BYPASS_PMIC_READY setting for imx6sx
    
    [ Upstream commit 8aade778f787305fdbfd3c1d54e6b583601b5902 ]
    
    i.MX6SX has bypass PMIC ready function, as this function
    is normally NOT enabled on the board design, so we need
    to bypass the PMIC ready pin check during DSM mode resume
    flow, otherwise, the internal DSM resume logic will be
    waiting for this signal to be ready forever and cause
    resume fail.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Fixes: ff843d621bfc ("ARM: imx: add suspend support for i.mx6sx")
    Cc: <stable@vger.kernel.org>
    Tested-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: Shawn Guo <shawnguo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 6558ce65ea89058a9b472ab994154931988efcae
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Tue Aug 30 15:36:34 2016 +0800

    ALSA: hda - Enable subwoofer on Dell Inspiron 7559
    
    [ Upstream commit fd06c77eb9200b53d421da5fffe0dcd894b5d72a ]
    
    The subwoofer on Inspiron 7559 was disabled originally.
    Applying a pin fixup to node 0x1b can enable it and make it work.
    
    Old pin: 0x411111f0
    New pin: 0x90170151
    
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 7b7cc6996fefe5f84250b26f5a713161f4545a5e
Author: Ken Lin <ken.lin@advantech.com.tw>
Date:   Fri Aug 12 14:08:47 2016 -0400

    ALSA: usb-audio: Add sample rate inquiry quirk for B850V3 CP2114
    
    [ Upstream commit 83d9956b7e6b310c1062df7894257251c625b22e ]
    
    Avoid getting sample rate on B850V3 CP2114 as it is unsupported and
    causes noisy "current rate is different from the runtime rate" messages
    when playback starts.
    
    Signed-off-by: Ken Lin <ken.lin@advantech.com.tw>
    Signed-off-by: Akshay Bhat <akshay.bhat@timesys.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 6138d59d0c734a390f456075a083f83d8a4eef77
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Mon Aug 29 00:33:51 2016 +0200

    ALSA: timer: fix NULL pointer dereference on memory allocation failure
    
    [ Upstream commit 8ddc05638ee42b18ba4fe99b5fb647fa3ad20456 ]
    
    I hit this with syzkaller:
    
        kasan: CONFIG_KASAN_INLINE enabled
        kasan: GPF could be caused by NULL-ptr deref or user memory access
        general protection fault: 0000 [#1] PREEMPT SMP KASAN
        CPU: 0 PID: 1327 Comm: a.out Not tainted 4.8.0-rc2+ #190
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
        task: ffff88011278d600 task.stack: ffff8801120c0000
        RIP: 0010:[<ffffffff82c8ba07>]  [<ffffffff82c8ba07>] snd_hrtimer_start+0x77/0x100
        RSP: 0018:ffff8801120c7a60  EFLAGS: 00010006
        RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000007
        RDX: 0000000000000009 RSI: 1ffff10023483091 RDI: 0000000000000048
        RBP: ffff8801120c7a78 R08: ffff88011a5cf768 R09: ffff88011a5ba790
        R10: 0000000000000002 R11: ffffed00234b9ef1 R12: ffff880114843980
        R13: ffffffff84213c00 R14: ffff880114843ab0 R15: 0000000000000286
        FS:  00007f72958f3700(0000) GS:ffff88011aa00000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000603001 CR3: 00000001126ab000 CR4: 00000000000006f0
        Stack:
         ffff880114843980 ffff880111eb2dc0 ffff880114843a34 ffff8801120c7ad0
         ffffffff82c81ab1 0000000000000000 ffffffff842138e0 0000000100000000
         ffff880111eb2dd0 ffff880111eb2dc0 0000000000000001 ffff880111eb2dc0
        Call Trace:
         [<ffffffff82c81ab1>] snd_timer_start1+0x331/0x670
         [<ffffffff82c85bfd>] snd_timer_start+0x5d/0xa0
         [<ffffffff82c8795e>] snd_timer_user_ioctl+0x88e/0x2830
         [<ffffffff8159f3a0>] ? __follow_pte.isra.49+0x430/0x430
         [<ffffffff82c870d0>] ? snd_timer_pause+0x80/0x80
         [<ffffffff815a26fa>] ? do_wp_page+0x3aa/0x1c90
         [<ffffffff8132762f>] ? put_prev_entity+0x108f/0x21a0
         [<ffffffff82c870d0>] ? snd_timer_pause+0x80/0x80
         [<ffffffff816b0733>] do_vfs_ioctl+0x193/0x1050
         [<ffffffff813510af>] ? cpuacct_account_field+0x12f/0x1a0
         [<ffffffff816b05a0>] ? ioctl_preallocate+0x200/0x200
         [<ffffffff81002f2f>] ? syscall_trace_enter+0x3cf/0xdb0
         [<ffffffff815045ba>] ? __context_tracking_exit.part.4+0x9a/0x1e0
         [<ffffffff81002b60>] ? exit_to_usermode_loop+0x190/0x190
         [<ffffffff82001a97>] ? check_preemption_disabled+0x37/0x1e0
         [<ffffffff81d93889>] ? security_file_ioctl+0x89/0xb0
         [<ffffffff816b167f>] SyS_ioctl+0x8f/0xc0
         [<ffffffff816b15f0>] ? do_vfs_ioctl+0x1050/0x1050
         [<ffffffff81005524>] do_syscall_64+0x1c4/0x4e0
         [<ffffffff83c32b2a>] entry_SYSCALL64_slow_path+0x25/0x25
        Code: c7 c7 c4 b9 c8 82 48 89 d9 4c 89 ee e8 63 88 7f fe e8 7e 46 7b fe 48 8d 7b 48 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 04 84 c0 7e 65 80 7b 48 00 74 0e e8 52 46
        RIP  [<ffffffff82c8ba07>] snd_hrtimer_start+0x77/0x100
         RSP <ffff8801120c7a60>
        ---[ end trace 5955b08db7f2b029 ]---
    
    This can happen if snd_hrtimer_open() fails to allocate memory and
    returns an error, which is currently not checked by snd_timer_open():
    
        ioctl(SNDRV_TIMER_IOCTL_SELECT)
         - snd_timer_user_tselect()
            - snd_timer_close()
               - snd_hrtimer_close()
                  - (struct snd_timer *) t->private_data = NULL
            - snd_timer_open()
               - snd_hrtimer_open()
                  - kzalloc() fails; t->private_data is still NULL
    
        ioctl(SNDRV_TIMER_IOCTL_START)
         - snd_timer_user_start()
            - snd_timer_start()
               - snd_timer_start1()
                  - snd_hrtimer_start()
                    - t->private_data == NULL // boom
    
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 2350481bee62b2a8bbe1d0a974c933d5d08206c0
Author: Vegard Nossum <vegard.nossum@oracle.com>
Date:   Mon Aug 29 00:33:50 2016 +0200

    ALSA: timer: fix division by zero after SNDRV_TIMER_IOCTL_CONTINUE
    
    [ Upstream commit 6b760bb2c63a9e322c0e4a0b5daf335ad93d5a33 ]
    
    I got this:
    
        divide error: 0000 [#1] PREEMPT SMP KASAN
        CPU: 1 PID: 1327 Comm: a.out Not tainted 4.8.0-rc2+ #189
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.9.3-0-ge2fc41e-prebuilt.qemu-project.org 04/01/2014
        task: ffff8801120a9580 task.stack: ffff8801120b0000
        RIP: 0010:[<ffffffff82c8bd9a>]  [<ffffffff82c8bd9a>] snd_hrtimer_callback+0x1da/0x3f0
        RSP: 0018:ffff88011aa87da8  EFLAGS: 00010006
        RAX: 0000000000004f76 RBX: ffff880112655e88 RCX: 0000000000000000
        RDX: 0000000000000000 RSI: ffff880112655ea0 RDI: 0000000000000001
        RBP: ffff88011aa87e00 R08: ffff88013fff905c R09: ffff88013fff9048
        R10: ffff88013fff9050 R11: 00000001050a7b8c R12: ffff880114778a00
        R13: ffff880114778ab4 R14: ffff880114778b30 R15: 0000000000000000
        FS:  00007f071647c700(0000) GS:ffff88011aa80000(0000) knlGS:0000000000000000
        CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
        CR2: 0000000000603001 CR3: 0000000112021000 CR4: 00000000000006e0
        Stack:
         0000000000000000 ffff880114778ab8 ffff880112655ea0 0000000000004f76
         ffff880112655ec8 ffff880112655e80 ffff880112655e88 ffff88011aa98fc0
         00000000b97ccf2b dffffc0000000000 ffff88011aa98fc0 ffff88011aa87ef0
        Call Trace:
         <IRQ>
         [<ffffffff813abce7>] __hrtimer_run_queues+0x347/0xa00
         [<ffffffff82c8bbc0>] ? snd_hrtimer_close+0x130/0x130
         [<ffffffff813ab9a0>] ? retrigger_next_event+0x1b0/0x1b0
         [<ffffffff813ae1a6>] ? hrtimer_interrupt+0x136/0x4b0
         [<ffffffff813ae220>] hrtimer_interrupt+0x1b0/0x4b0
         [<ffffffff8120f91e>] local_apic_timer_interrupt+0x6e/0xf0
         [<ffffffff81227ad3>] ? kvm_guest_apic_eoi_write+0x13/0xc0
         [<ffffffff83c35086>] smp_apic_timer_interrupt+0x76/0xa0
         [<ffffffff83c3416c>] apic_timer_interrupt+0x8c/0xa0
         <EOI>
         [<ffffffff83c3239c>] ? _raw_spin_unlock_irqrestore+0x2c/0x60
         [<ffffffff82c8185d>] snd_timer_start1+0xdd/0x670
         [<ffffffff82c87015>] snd_timer_continue+0x45/0x80
         [<ffffffff82c88100>] snd_timer_user_ioctl+0x1030/0x2830
         [<ffffffff8159f3a0>] ? __follow_pte.isra.49+0x430/0x430
         [<ffffffff82c870d0>] ? snd_timer_pause+0x80/0x80
         [<ffffffff815a26fa>] ? do_wp_page+0x3aa/0x1c90
         [<ffffffff815aa4f8>] ? handle_mm_fault+0xbc8/0x27f0
         [<ffffffff815a9930>] ? __pmd_alloc+0x370/0x370
         [<ffffffff82c870d0>] ? snd_timer_pause+0x80/0x80
         [<ffffffff816b0733>] do_vfs_ioctl+0x193/0x1050
         [<ffffffff816b05a0>] ? ioctl_preallocate+0x200/0x200
         [<ffffffff81002f2f>] ? syscall_trace_enter+0x3cf/0xdb0
         [<ffffffff815045ba>] ? __context_tracking_exit.part.4+0x9a/0x1e0
         [<ffffffff81002b60>] ? exit_to_usermode_loop+0x190/0x190
         [<ffffffff82001a97>] ? check_preemption_disabled+0x37/0x1e0
         [<ffffffff81d93889>] ? security_file_ioctl+0x89/0xb0
         [<ffffffff816b167f>] SyS_ioctl+0x8f/0xc0
         [<ffffffff816b15f0>] ? do_vfs_ioctl+0x1050/0x1050
         [<ffffffff81005524>] do_syscall_64+0x1c4/0x4e0
         [<ffffffff83c32b2a>] entry_SYSCALL64_slow_path+0x25/0x25
        Code: e8 fc 42 7b fe 8b 0d 06 8a 50 03 49 0f af cf 48 85 c9 0f 88 7c 01 00 00 48 89 4d a8 e8 e0 42 7b fe 48 8b 45 c0 48 8b 4d a8 48 99 <48> f7 f9 49 01 c7 e8 cb 42 7b fe 48 8b 55 d0 48 b8 00 00 00 00
        RIP  [<ffffffff82c8bd9a>] snd_hrtimer_callback+0x1da/0x3f0
         RSP <ffff88011aa87da8>
        ---[ end trace 6aa380f756a21074 ]---
    
    The problem happens when you call ioctl(SNDRV_TIMER_IOCTL_CONTINUE) on a
    completely new/unused timer -- it will have ->sticks == 0, which causes a
    divide by 0 in snd_hrtimer_callback().
    
    Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 8773752e97e1b7887dc0c714bf45f32fb5facbf7
Author: Simon Baatz <gmbnomis@gmail.com>
Date:   Fri Aug 12 19:12:50 2016 +0200

    ARM: kirkwood: ib62x0: fix size of u-boot environment partition
    
    [ Upstream commit a778937888867aac17a33887d1c429120790fbc2 ]
    
    Commit 148c274ea644 ("ARM: kirkwood: ib62x0: add u-boot environment
    partition") split the "u-boot" partition into "u-boot" and "u-boot
    environment".  However, instead of the size of the environment, an offset
    was given, resulting in overlapping partitions.
    
    Signed-off-by: Simon Baatz <gmbnomis@gmail.com>
    Fixes: 148c274ea644 ("ARM: kirkwood: ib62x0: add u-boot environment partition")
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Andrew Lunn <andrew@lunn.ch>
    Cc: Gregory Clement <gregory.clement@free-electrons.com>
    Cc: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
    Cc: Luka Perkov <luka@openwrt.org>
    Cc: stable@vger.kernel.org # 3.13+
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Gregory CLEMENT <gregory.clement@free-electrons.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 7933dd87a84947d45a98fd2f88ad4c4097ba1855
Author: Miklos Szeredi <mszeredi@redhat.com>
Date:   Wed Aug 24 18:17:04 2016 +0200

    fuse: direct-io: don't dirty ITER_BVEC pages
    
    [ Upstream commit 8fba54aebbdf1f999738121922e74bf796ad60ee ]
    
    When reading from a loop device backed by a fuse file it deadlocks on
    lock_page().
    
    This is because the page is already locked by the read() operation done on
    the loop device.  In this case we don't want to either lock the page or
    dirty it.
    
    So do what fs/direct-io.c does: only dirty the page for ITER_IOVEC vectors.
    
    Reported-by: Sheng Yang <sheng@yasker.org>
    Fixes: aa4d86163e4e ("block: loop: switch to VFS ITER_BVEC")
    Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
    Cc: <stable@vger.kernel.org> # v4.1+
    Reviewed-by: Sheng Yang <sheng@yasker.org>
    Reviewed-by: Ashish Samant <ashish.samant@oracle.com>
    Tested-by: Sheng Yang <sheng@yasker.org>
    Tested-by: Ashish Samant <ashish.samant@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit bb5c68e0d5a1057b46e454992269c13e043d375e
Author: Felix Fietkau <nbd@nbd.name>
Date:   Fri Aug 19 13:37:46 2016 +0300

    ath9k: fix using sta->drv_priv before initializing it
    
    [ Upstream commit 7711aaf08ad3fc4d0e937eec1de0a63620444ce7 ]
    
    A station pointer can be passed to the driver on tx, before it has been
    marked as associated. Since ath9k_sta_state was initializing the entry
    too late, it resulted in some spurious crashes.
    
    Fixes: df3c6eb34da5 ("ath9k: Use sta_state() callback")
    Cc: stable@vger.kernel.org
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit c3e7a0e520e62317fbc567838e562ecea16901cb
Author: Pawel Moll <pawel.moll@arm.com>
Date:   Wed Aug 10 17:06:26 2016 +0100

    bus: arm-ccn: Fix XP watchpoint settings bitmask
    
    [ Upstream commit b928466b2169e061822daad48ecf55b005445547 ]
    
    The code setting XP watchpoint comparator and mask registers should, in
    order to be fully compliant with specification, zero one or more most
    significant bits of each field. In both L cases it means zeroing bit 63.
    The bitmask doing this was wrong, though, zeroing bit 60 instead.
    Fortunately, due to a lucky coincidence, this turned out to be fairly
    innocent with the existing hardware.
    
    Fixed now.
    
    Cc: stable@vger.kernel.org # 3.17+
    Signed-off-by: Pawel Moll <pawel.moll@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit b9d45ce394727a6fff3eb02c525d8bca031a3f89
Author: Pawel Moll <pawel.moll@arm.com>
Date:   Fri Aug 5 15:07:10 2016 +0100

    bus: arm-ccn: Do not attempt to configure XPs for cycle counter
    
    [ Upstream commit b7c1beb278e8e3dc664ed3df3fc786db126120a9 ]
    
    Fuzzing the CCN perf driver revealed a small but definitely dangerous
    mistake in the event setup code. When a cycle counter is requested, the
    driver should not reconfigure the events bus at all, otherwise it will
    corrupt (in most but the simplest cases) its configuration and may end
    up accessing XP array out of its bounds and corrupting control
    registers.
    
    Reported-by: Mark Rutland <mark.rutland@arm.com>
    Reviewed-by: Mark Rutland <mark.rutland@arm.com>
    Tested-by: Mark Rutland <mark.rutland@arm.com>
    Cc: stable@vger.kernel.org # 3.17+
    Signed-off-by: Pawel Moll <pawel.moll@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 0dd4c68f4a9d5629fdb3e966a25bb52461c0970e
Author: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
Date:   Fri Aug 12 17:20:07 2016 -0500

    scsi: fix upper bounds check of sense key in scsi_sense_key_string()
    
    [ Upstream commit a87eeb900dbb9f8202f96604d56e47e67c936b9d ]
    
    Commit 655ee63cf371 ("scsi constants: command, sense key + additional
    sense string") added a "Completed" sense string with key 0xF to
    snstext[], but failed to updated the upper bounds check of the sense key
    in scsi_sense_key_string().
    
    Fixes: 655ee63cf371 ("[SCSI] scsi constants: command, sense key + additional sense strings")
    Cc: <stable@vger.kernel.org> # v3.12+
    Signed-off-by: Tyrel Datwyler <tyreld@linux.vnet.ibm.com>
    Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit cfad3a5a90466ae83e437f988cf74561e0d8b063
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Aug 8 08:45:33 2016 +0200

    Revert "wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel"
    
    [ Upstream commit 4d0bd46a4d55383f7b925e6cf7865a77e0f0e020 ]
    
    This reverts commit 3d5fdff46c4b2b9534fa2f9fc78e90a48e0ff724.
    
    Ben Hutchings pointed out that the commit isn't safe since it assumes
    that the structure used by the driver is iw_point, when in fact there's
    no way to know about that.
    
    Fortunately, the only driver in the tree that ever runs this code path
    is the wilc1000 staging driver, so it doesn't really matter.
    
    Clearly I should have investigated this better before applying, sorry.
    
    Reported-by: Ben Hutchings <ben@decadent.org.uk>
    Cc: stable@vger.kernel.org [though I guess it doesn't matter much]
    Fixes: 3d5fdff46c4b ("wext: Fix 32 bit iwpriv compatibility issue with 64 bit Kernel")
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit bd2d7040028a60926e5185d0c1b9e4766a4efa89
Author: Sebastian Reichel <sre@kernel.org>
Date:   Fri Jun 24 03:59:33 2016 +0200

    ARM: OMAP3: hwmod data: Add sysc information for DSI
    
    [ Upstream commit b46211d6dcfb81a8af66b8684a42d629183670d4 ]
    
    Add missing sysconfig/sysstatus information
    to OMAP3 hwmod. The information has been
    checked against OMAP34xx and OMAP36xx TRM.
    
    Without this change DSI block is not reset
    during boot, which is required for working
    Nokia N950 display.
    
    Signed-off-by: Sebastian Reichel <sre@kernel.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>

commit 3b23ff99ca496c17d3b1250d6652e2c5e4ed2e1f
Author: James Hogan <james.hogan@imgtec.com>
Date:   Thu Sep 15 22:51:08 2016 +0100

    MIPS: KVM: Check for pfn noslot case
    
    commit ba913e4f72fc9cfd03dad968dfb110eb49211d80 upstream.
    
    When mapping a page into the guest we error check using is_error_pfn(),
    however this doesn't detect a value of KVM_PFN_NOSLOT, indicating an
    error HVA for the page. This can only happen on MIPS right now due to
    unusual memslot management (e.g. being moved / removed / resized), or
    with an Enhanced Virtual Memory (EVA) configuration where the default
    KVM_HVA_ERR_* and kvm_is_error_hva() definitions are unsuitable (fixed
    in a later patch). This case will be treated as a pfn of zero, mapping
    the first page of physical memory into the guest.
    
    It would appear the MIPS KVM port wasn't updated prior to being merged
    (in v3.10) to take commit 81c52c56e2b4 ("KVM: do not treat noslot pfn as
    a error pfn") into account (merged v3.8), which converted a bunch of
    is_error_pfn() calls to is_error_noslot_pfn(). Switch to using
    is_error_noslot_pfn() instead to catch this case properly.
    
    Fixes: 858dd5d45733 ("KVM/MIPS32: MMU/TLB operations for the Guest.")
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: "Radim Krčmář" <rkrcmar@redhat.com>
    Cc: Ralf Baechle <ralf@linux-mips.org>
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    [james.hogan@imgtec.com: Backport to v4.7.y]
    Signed-off-by: James Hogan <james.hogan@imgtec.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>