commit 943dc0b3ef9f0168494d6dca305cd0cf53a0b3d4
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Wed Nov 8 10:03:50 2017 +0100

    Linux 3.18.80

commit f772276045d8f5b706b3d6cc60e86ed0371c1f62
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Fri Feb 10 21:30:27 2017 -0600

    staging: r8712u: Fix Sparse warning in rtl871x_xmit.c
    
    
    [ Upstream commit 07222e535831b916221dd2a48a3047ec7e45dc72 ]
    
    Sparse reports the following:
      CHECK   drivers/staging/rtl8712/rtl871x_xmit.c
    drivers/staging/rtl8712/rtl871x_xmit.c:350:44: warning: restricted __le32 degrades to integer
    drivers/staging/rtl8712/rtl871x_xmit.c:491:23: warning: incorrect type in initializer (different base types)
    drivers/staging/rtl8712/rtl871x_xmit.c:491:23:    expected unsigned short [usertype] *fctrl
    drivers/staging/rtl8712/rtl871x_xmit.c:491:23:    got restricted __le16 *<noident>
    drivers/staging/rtl8712/rtl871x_xmit.c:580:36: warning: incorrect type in assignment (different base types)
    drivers/staging/rtl8712/rtl871x_xmit.c:580:36:    expected unsigned short [unsigned] [short] [usertype] <noident>
    drivers/staging/rtl8712/rtl871x_xmit.c:580:36:    got restricted __be16 [usertype] <noident>
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed7d79ee9e5ec514558f75b39c7f3809ca2e77eb
Author: Juergen Gross <jgross@suse.com>
Date:   Tue May 30 20:52:26 2017 +0200

    xen: don't print error message in case of missing Xenstore entry
    
    
    [ Upstream commit 4e93b6481c87ea5afde944a32b4908357ec58992 ]
    
    When registering for the Xenstore watch of the node control/sysrq the
    handler will be called at once. Don't issue an error message if the
    Xenstore node isn't there, as it will be created only when an event
    is being triggered.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e24061ae703d4b2c7dc70a7c6d64d57a4dede405
Author: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Date:   Sat Oct 7 22:38:01 2017 +0000

    bt8xx: fix memory leak
    
    
    [ Upstream commit 6792eb0cf9310ec240b7e7c9bfa86dff4c758c68 ]
    
    If dvb_attach() fails then we were just printing an error message and
    exiting but the memory allocated to state was not released.
    
    Signed-off-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dd795459b42d8f58fcc78f3297323bcb23b0fdf1
Author: Stefan Haberland <sth@linux.vnet.ibm.com>
Date:   Sat Oct 7 22:38:01 2017 +0000

    s390/dasd: check for device error pointer within state change interrupts
    
    
    [ Upstream commit 2202134e48a3b50320aeb9e3dd1186833e9d7e66 ]
    
    Check if the device pointer is valid. Just a sanity check since we already
    are in the int handler of the device.
    
    Signed-off-by: Stefan Haberland <sth@linux.vnet.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4220879c089ec493322ef250105ac32bc1b8d9d4
Author: Alexander Boyko <alexander.boyko@seagate.com>
Date:   Sat Oct 7 22:38:01 2017 +0000

    staging: lustre: ptlrpc: skip lock if export failed
    
    
    [ Upstream commit 4c43c27ddc461d8473cedd70f2549614641dfbc7 ]
    
    This patch resolves IO vs eviction race.
    After eviction failed export stayed at stale list,
    a client had IO processing and reconnected during it.
    A client sent brw rpc with last lock cookie and new connection.
    The lock with failed export was found and assert was happened.
     (ost_handler.c:1812:ost_prolong_lock_one())
      ASSERTION( lock->l_export == opd->opd_exp ) failed:
    
     1. Skip the lock at ldlm_handle2lock if lock export failed.
     2. Validation of lock for IO was added at hpreq_check(). The lock
        searching is based on granted interval tree. If server doesn`t
        have a valid lock, it reply to client with ESTALE.
    
    Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-7702
    Seagate-bug-id: MRP-2787
    Reviewed-on: http://review.whamcloud.com/18120
    Reviewed-by: Fan Yong <fan.yong@intel.com>
    Reviewed-by: Vitaly Fertman <vitaly.fertman@seagate.com>
    Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
    Signed-off-by: James Simmons <jsimmons@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e3492219704ef7d8f7330af3ea03262f33672b5
Author: frank zago <fzago@cray.com>
Date:   Sat Oct 7 22:38:01 2017 +0000

    staging: lustre: hsm: stack overrun in hai_dump_data_field
    
    
    [ Upstream commit 22aadb91c0a0055935109c175f5446abfb130702 ]
    
    The function hai_dump_data_field will do a stack buffer
    overrun when cat'ing /sys/fs/lustre/.../hsm/actions if an action has
    some data in it.
    
    hai_dump_data_field uses snprintf. But there is no check for
    truncation, and the value returned by snprintf is used as-is.  The
    coordinator code calls hai_dump_data_field with 12 bytes in the
    buffer. The 6th byte of data is printed incompletely to make room for
    the terminating NUL. However snprintf still returns 2, so when
    hai_dump_data_field writes the final NUL, it does it outside the
    reserved buffer, in the 13th byte of the buffer. This stack buffer
    overrun hangs my VM.
    
    Fix by checking that there is enough room for the next 2 characters
    plus the NUL terminator. Don't print half bytes. Change the format to
    02X instead of .2X, which makes more sense.
    
    Signed-off-by: frank zago <fzago@cray.com>
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-8171
    Reviewed-on: http://review.whamcloud.com/20338
    Reviewed-by: John L. Hammond <john.hammond@intel.com>
    Reviewed-by: Jean-Baptiste Riaux <riaux.jb@intel.com>
    Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
    Signed-off-by: James Simmons <jsimmons@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ffe4638c9609bcf2d1bed35e9f302d1079b72678
Author: Javier Martinez Canillas <javier@osg.samsung.com>
Date:   Sat Oct 7 22:38:00 2017 +0000

    platform/x86: intel_mid_thermal: Fix module autoload
    
    
    [ Upstream commit a93151a72061e944a4915458b1b1d6d505c03bbf ]
    
    If the driver is built as a module, autoload won't work because the module
    alias information is not filled. So user-space can't match the registered
    device with the corresponding module.
    
    Export the module alias information using the MODULE_DEVICE_TABLE() macro.
    
    Before this patch:
    
    $ modinfo drivers/platform/x86/intel_mid_thermal.ko | grep alias
    $
    
    After this patch:
    
    $ modinfo drivers/platform/x86/intel_mid_thermal.ko | grep alias
    alias:          platform:msic_thermal
    
    Signed-off-by: Javier Martinez Canillas <javier@osg.samsung.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a2f613a97d9cb03912f24a132a01487aac64440
Author: Jan Beulich <JBeulich@suse.com>
Date:   Sat Oct 7 22:38:00 2017 +0000

    xen/manage: correct return value check on xenbus_scanf()
    
    
    [ Upstream commit 4fed1b125eb6252bde478665fc05d4819f774fa8 ]
    
    A negative return value indicates an error; in fact the function at
    present won't ever return zero.
    
    Signed-off-by: Jan Beulich <jbeulich@suse.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e79412f61f0e9536d347ac8501f4104e340bc4f7
Author: Oleh Kravchenko <oleg@kaa.org.ua>
Date:   Sat Oct 7 22:38:00 2017 +0000

    cx231xx: Fix I2C on Internal Master 3 Bus
    
    
    [ Upstream commit 6c5da8031a3abfad259190d35f83d89568b72ee2 ]
    
    Internal Master 3 Bus can send and receive only 4 bytes per time.
    
    Signed-off-by: Oleh Kravchenko <oleg@kaa.org.ua>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d941aa300bfc3ab19db598fbe72520a47c93dcc
Author: Chris Brandt <chris.brandt@renesas.com>
Date:   Sat Oct 7 22:38:00 2017 +0000

    i2c: riic: correctly finish transfers
    
    
    [ Upstream commit 71ccea095ea1d4efd004dab971be6d599e06fc3f ]
    
    This fixes the condition where the controller has not fully completed its
    final transfer and leaves the bus and controller in a undesirable state.
    
    At the end of the last transmitted byte, the existing driver would just
    signal for a STOP condition to be transmitted then immediately signal
    completion. However, the full STOP procedure might not have fully taken
    place by the time the runtime PM shuts off the peripheral clock, leaving
    the bus in a suspended state.
    
    Alternatively, the STOP condition on the bus may have completed, but when
    the next transaction is requested by the upper layer, not all the
    necessary register cleanup was finished from the last transfer which made
    the driver return BUS BUSY when it really wasn't.
    
    This patch now makes all transmit and receive transactions wait for the
    STOP condition to fully complete before signaling a completed transaction.
    With this new method, runtime PM no longer seems to be an issue.
    
    Fixes: 310c18a41450 ("i2c: riic: add driver")
    Signed-off-by: Chris Brandt <chris.brandt@renesas.com>
    Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 52f145db2870583eeb6afcf414578f155b85179e
Author: Jan Kara <jack@suse.cz>
Date:   Sat Oct 7 22:37:59 2017 +0000

    ext4: do not use stripe_width if it is not set
    
    
    [ Upstream commit 5469d7c3087ecaf760f54b447f11af6061b7c897 ]
    
    Avoid using stripe_width for sbi->s_stripe value if it is not actually
    set. It prevents using the stride for sbi->s_stripe.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f59fbdd3621693b36e4deb086f2d83031ec770a5
Author: Jan Kara <jack@suse.cz>
Date:   Sat Oct 7 22:37:59 2017 +0000

    ext4: fix stripe-unaligned allocations
    
    
    [ Upstream commit d9b22cf9f5466a057f2a4f1e642b469fa9d73117 ]
    
    When a filesystem is created using:
    
            mkfs.ext4 -b 4096 -E stride=512 <dev>
    
    and we try to allocate 64MB extent, we will end up directly in
    ext4_mb_complex_scan_group(). This is because the request is detected
    as power-of-two allocation (so we start in ext4_mb_regular_allocator()
    with ac_criteria == 0) however the check before
    ext4_mb_simple_scan_group() refuses the direct buddy scan because the
    allocation request is too large. Since cr == 0, the check whether we
    should use ext4_mb_scan_aligned() fails as well and we fall back to
    ext4_mb_complex_scan_group().
    
    Fix the problem by checking for upper limit on power-of-two requests
    directly when detecting them.
    
    Reported-by: Ross Zwisler <ross.zwisler@linux.intel.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2c9c8c7a44990c46ae24209896e5000a7aab2630
Author: Larry Finger <Larry.Finger@lwfinger.net>
Date:   Sat Oct 7 22:37:59 2017 +0000

    staging: rtl8712u: Fix endian settings for structs describing network packets
    
    
    [ Upstream commit 221c46d28957bd6e2158abc2179ce4a8c9ce07d3 ]
    
    The headers describing a number of network packets do not have the
    correct endian settings for several types of data.
    
    Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8c0ddbd6ae04154c09418fbb97e8ad06af905dc9
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Sat Oct 7 22:37:59 2017 +0000

    mmc: s3cmci: include linux/interrupt.h for tasklet_struct
    
    
    [ Upstream commit e1c6ec26b853e9062f0b3daaf695c546d0702953 ]
    
    I got this new build error on today's linux-next
    
    drivers/mmc/host/s3cmci.h:69:24: error: field 'pio_tasklet' has incomplete type
      struct tasklet_struct pio_tasklet;
    drivers/mmc/host/s3cmci.c: In function 's3cmci_enable_irq':
    drivers/mmc/host/s3cmci.c:390:4: error: implicit declaration of function 'enable_irq';did you mean 'enable_imask'? [-Werror=implicit-function-declaration]
    
    While I haven't found out why this happened now and not earlier, the
    solution is obvious, we should include the header that defines
    the structure.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6c3c4c7373de9d0891e874f710aaee833e937f40
Author: Borislav Petkov <bp@suse.de>
Date:   Wed Oct 18 13:12:25 2017 +0200

    x86/microcode/intel: Disable late loading on model 79
    
    commit 723f2828a98c8ca19842042f418fb30dd8cfc0f7 upstream.
    
    Blacklist Broadwell X model 79 for late loading due to an erratum.
    
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Acked-by: Tony Luck <tony.luck@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: http://lkml.kernel.org/r/20171018111225.25635-1-bp@alien8.de
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77336ca65ccf544bbca59d55b0a1bb10bf420fe3
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Fri Jun 30 10:59:15 2017 +0300

    drm/msm: fix an integer overflow test
    
    commit 65e93108891e571f177c202add9288eda9ac4100 upstream.
    
    We recently added an integer overflow check but it needs an additional
    tweak to work properly on 32 bit systems.
    
    The problem is that we're doing the right hand side of the assignment as
    type unsigned long so the max it will have an integer overflow instead
    of being larger than SIZE_MAX.  That means the "sz > SIZE_MAX" condition
    is never true even on 32 bit systems.  We need to first cast it to u64
    and then do the math.
    
    Fixes: 4a630fadbb29 ("drm/msm: Fix potential buffer overflow issue")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Acked-by: Jordan Crouse <jcrouse@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f449835963f47a3755d2f893a49928cf8d7ca58e
Author: Kasin Li <donglil@codeaurora.org>
Date:   Mon Jun 19 15:36:53 2017 -0600

    drm/msm: Fix potential buffer overflow issue
    
    commit 4a630fadbb29d9efaedb525f1a8f7449ad107641 upstream.
    
    In function submit_create, if nr_cmds or nr_bos is assigned with
    negative value, the allocated buffer may be small than intended.
    Using this buffer will lead to buffer overflow issue.
    
    Signed-off-by: Kasin Li <donglil@codeaurora.org>
    Signed-off-by: Jordan Crouse <jcrouse@codeaurora.org>
    Signed-off-by: Rob Clark <robdclark@gmail.com>
    Cc: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 163e8355bbe9af2bb3ce7c4cc7a11ed6124b76bf
Author: Ashish Samant <ashish.samant@oracle.com>
Date:   Thu Nov 2 15:59:37 2017 -0700

    ocfs2: fstrim: Fix start offset of first cluster group during fstrim
    
    commit 105ddc93f06ebe3e553f58563d11ed63dbcd59f0 upstream.
    
    The first cluster group descriptor is not stored at the start of the
    group but at an offset from the start.  We need to take this into
    account while doing fstrim on the first cluster group.  Otherwise we
    will wrongly start fstrim a few blocks after the desired start block and
    the range can cross over into the next cluster group and zero out the
    group descriptor there.  This can cause filesytem corruption that cannot
    be fixed by fsck.
    
    Link: http://lkml.kernel.org/r/1507835579-7308-1-git-send-email-ashish.samant@oracle.com
    Signed-off-by: Ashish Samant <ashish.samant@oracle.com>
    Reviewed-by: Junxiao Bi <junxiao.bi@oracle.com>
    Reviewed-by: Joseph Qi <jiangqi903@gmail.com>
    Cc: Mark Fasheh <mfasheh@versity.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e03cbe4026a460ed3d9c4b1d05ad5aaf3d367c38
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Oct 20 21:17:05 2017 +0100

    ARM: 8715/1: add a private asm/unaligned.h
    
    commit 1cce91dfc8f7990ca3aea896bfb148f240b12860 upstream.
    
    The asm-generic/unaligned.h header provides two different implementations
    for accessing unaligned variables: the access_ok.h version used when
    CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS is set pretends that all pointers
    are in fact aligned, while the le_struct.h version convinces gcc that the
    alignment of a pointer is '1', to make it issue the correct load/store
    instructions depending on the architecture flags.
    
    On ARMv5 and older, we always use the second version, to let the compiler
    use byte accesses. On ARMv6 and newer, we currently use the access_ok.h
    version, so the compiler can use any instruction including stm/ldm and
    ldrd/strd that will cause an alignment trap. This trap can significantly
    impact performance when we have to do a lot of fixups and, worse, has
    led to crashes in the LZ4 decompressor code that does not have a trap
    handler.
    
    This adds an ARM specific version of asm/unaligned.h that uses the
    le_struct.h/be_struct.h implementation unconditionally. This should lead
    to essentially the same code on ARMv6+ as before, with the exception of
    using regular load/store instructions instead of the trapping instructions
    multi-register variants.
    
    The crash in the LZ4 decompressor code was probably introduced by the
    patch replacing the LZ4 implementation, commit 4e1a33b105dd ("lib: update
    LZ4 compressor module"), so linux-4.11 and higher would be affected most.
    However, we probably want to have this backported to all older stable
    kernels as well, to help with the performance issues.
    
    There are two follow-ups that I think we should also work on, but not
    backport to stable kernels, first to change the asm-generic version of
    the header to remove the ARM special case, and second to review all
    other uses of CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS to see if they
    might be affected by the same problem on ARM.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5814e7754a0a9608ec65f3fce274ed7c2aea031b
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Nov 2 16:12:03 2017 +0000

    arm64: ensure __dump_instr() checks addr_limit
    
    commit 7a7003b1da010d2b0d1dc8bf21c10f5c73b389f1 upstream.
    
    It's possible for a user to deliberately trigger __dump_instr with a
    chosen kernel address.
    
    Let's avoid problems resulting from this by using get_user() rather than
    __get_user(), ensuring that we don't erroneously access kernel memory.
    
    Where we use __dump_instr() on kernel text, we already switch to
    KERNEL_DS, so this shouldn't adversely affect those cases.
    
    Fixes: 60ffc30d5652810d ("arm64: Exception handling")
    Acked-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 211b1914f59a95bcecefec72b952748b8166cadd
Author: Ricard Wanderlof <ricard.wanderlof@axis.com>
Date:   Thu Sep 7 15:31:38 2017 +0200

    ASoC: adau17x1: Workaround for noise bug in ADC
    
    commit 1e6f4fc06f6411adf98bbbe7fcd79442cd2b2a75 upstream.
    
    The ADC in the ADAU1361 (and possibly other Analog Devices codecs)
    exhibits a cyclic variation in the noise floor (in our test setup between
    -87 and -93 dB), a new value being attained within this range whenever a
    new capture stream is started. The cycle repeats after about 10 or 11
    restarts.
    
    The workaround recommended by the manufacturer is to toggle the ADOSR bit
    in the Converter Control 0 register each time a new capture stream is
    started.
    
    I have verified that the patch fixes this problem on the ADAU1361, and
    according to the manufacturer toggling the bit in question in this manner
    will at least have no detrimental effect on other chips served by this
    driver.
    
    Signed-off-by: Ricard Wanderlof <ricardw@axis.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ef2518bac6306b00cae25b6f9232d73ebe3804e9
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu Nov 2 00:47:19 2017 +0000

    KEYS: fix out-of-bounds read during ASN.1 parsing
    
    commit 2eb9eabf1e868fda15808954fb29b0f105ed65f1 upstream.
    
    syzkaller with KASAN reported an out-of-bounds read in
    asn1_ber_decoder().  It can be reproduced by the following command,
    assuming CONFIG_X509_CERTIFICATE_PARSER=y and CONFIG_KASAN=y:
    
        keyctl add asymmetric desc $'\x30\x30' @s
    
    The bug is that the length of an ASN.1 data value isn't validated in the
    case where it is encoded using the short form, causing the decoder to
    read past the end of the input buffer.  Fix it by validating the length.
    
    The bug report was:
    
        BUG: KASAN: slab-out-of-bounds in asn1_ber_decoder+0x10cb/0x1730 lib/asn1_decoder.c:233
        Read of size 1 at addr ffff88003cccfa02 by task syz-executor0/6818
    
        CPU: 1 PID: 6818 Comm: syz-executor0 Not tainted 4.14.0-rc7-00008-g5f479447d983 #2
        Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011
        Call Trace:
         __dump_stack lib/dump_stack.c:16 [inline]
         dump_stack+0xb3/0x10b lib/dump_stack.c:52
         print_address_description+0x79/0x2a0 mm/kasan/report.c:252
         kasan_report_error mm/kasan/report.c:351 [inline]
         kasan_report+0x236/0x340 mm/kasan/report.c:409
         __asan_report_load1_noabort+0x14/0x20 mm/kasan/report.c:427
         asn1_ber_decoder+0x10cb/0x1730 lib/asn1_decoder.c:233
         x509_cert_parse+0x1db/0x650 crypto/asymmetric_keys/x509_cert_parser.c:89
         x509_key_preparse+0x64/0x7a0 crypto/asymmetric_keys/x509_public_key.c:174
         asymmetric_key_preparse+0xcb/0x1a0 crypto/asymmetric_keys/asymmetric_type.c:388
         key_create_or_update+0x347/0xb20 security/keys/key.c:855
         SYSC_add_key security/keys/keyctl.c:122 [inline]
         SyS_add_key+0x1cd/0x340 security/keys/keyctl.c:62
         entry_SYSCALL_64_fastpath+0x1f/0xbe
        RIP: 0033:0x447c89
        RSP: 002b:00007fca7a5d3bd8 EFLAGS: 00000246 ORIG_RAX: 00000000000000f8
        RAX: ffffffffffffffda RBX: 00007fca7a5d46cc RCX: 0000000000447c89
        RDX: 0000000020006f4a RSI: 0000000020006000 RDI: 0000000020001ff5
        RBP: 0000000000000046 R08: fffffffffffffffd R09: 0000000000000000
        R10: 0000000000000002 R11: 0000000000000246 R12: 0000000000000000
        R13: 0000000000000000 R14: 00007fca7a5d49c0 R15: 00007fca7a5d4700
    
    Fixes: 42d5ec27f873 ("X.509: Add an ASN.1 decoder")
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bcb91ec291c146b896b4b36c44f3f1ac4c6a258d
Author: Eric Biggers <ebiggers@google.com>
Date:   Thu Nov 2 00:47:03 2017 +0000

    KEYS: return full count in keyring_read() if buffer is too small
    
    commit 3239b6f29bdfb4b0a2ba59df995fc9e6f4df7f1f upstream.
    
    Commit e645016abc80 ("KEYS: fix writing past end of user-supplied buffer
    in keyring_read()") made keyring_read() stop corrupting userspace memory
    when the user-supplied buffer is too small.  However it also made the
    return value in that case be the short buffer size rather than the size
    required, yet keyctl_read() is actually documented to return the size
    required.  Therefore, switch it over to the documented behavior.
    
    Note that for now we continue to have it fill the short buffer, since it
    did that before (pre-v3.13) and dump_key_tree_aux() in keyutils arguably
    relies on it.
    
    Fixes: e645016abc80 ("KEYS: fix writing past end of user-supplied buffer in keyring_read()")
    Reported-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: James Morris <james.l.morris@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5c2a548f826c9fb1c8b0d41576fc01f81c523ad
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Mon Oct 30 13:28:03 2017 +1100

    cifs: check MaxPathNameComponentLength != 0 before using it
    
    commit f74bc7c6679200a4a83156bb89cbf6c229fe8ec0 upstream.
    
    And fix tcon leak in error path.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <smfrench@gmail.com>
    Reviewed-by: David Disseldorp <ddiss@samba.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2943f47605b0e1be306f10887c1255007de54c4
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sun Oct 29 11:10:43 2017 +0100

    ALSA: seq: Fix nested rwsem annotation for lockdep splat
    
    commit 1f20f9ff57ca23b9f5502fca85ce3977e8496cb1 upstream.
    
    syzkaller reported the lockdep splat due to the possible deadlock of
    grp->list_mutex of each sequencer client object.  Actually this is
    rather a false-positive report due to the missing nested lock
    annotations.  The sequencer client may deliver the event directly to
    another client which takes another own lock.
    
    For addressing this issue, this patch replaces the simple down_read()
    with down_read_nested().  As a lock subclass, the already existing
    "hop" can be re-used, which indicates the depth of the call.
    
    Reference: http://lkml.kernel.org/r/089e082686ac9b482e055c832617@google.com
    Reported-by: syzbot <bot+7feb8de6b4d6bf810cf098bef942cc387e79d0ad@syzkaller.appspotmail.com>
    Reported-by: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 856849bd48eed8e216d3a31add70067144400bad
Author: Takashi Iwai <tiwai@suse.de>
Date:   Sun Oct 29 11:02:04 2017 +0100

    ALSA: timer: Add missing mutex lock for compat ioctls
    
    commit 79fb0518fec8c8b4ea7f1729f54f293724b3dbb0 upstream.
    
    The races among ioctl and other operations were protected by the
    commit af368027a49a ("ALSA: timer: Fix race among timer ioctls") and
    later fixes, but one code path was forgotten in the scenario: the
    32bit compat ioctl.  As syzkaller recently spotted, a very similar
    use-after-free may happen with the combination of compat ioctls.
    
    The fix is simply to apply the same ioctl_lock to the compat_ioctl
    callback, too.
    
    Fixes: af368027a49a ("ALSA: timer: Fix race among timer ioctls")
    Reference: http://lkml.kernel.org/r/089e082686ac9b482e055c832617@google.com
    Reported-by: syzbot <bot+e5f3c9783e7048a74233054febbe9f1bdf54b6da@syzkaller.appspotmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b6885d31d1c6b6f4ccd50535d24dbe5c3d8a7d7b
Author: Ming Lei <ming.lei@canonical.com>
Date:   Sun Aug 9 03:41:51 2015 -0400

    blk-mq: fix race between timeout and freeing request
    
    commit 0048b4837affd153897ed1222283492070027aa9 upstream.
    
    Inside timeout handler, blk_mq_tag_to_rq() is called
    to retrieve the request from one tag. This way is obviously
    wrong because the request can be freed any time and some
    fiedds of the request can't be trusted, then kernel oops
    might be triggered[1].
    
    Currently wrt. blk_mq_tag_to_rq(), the only special case is
    that the flush request can share same tag with the request
    cloned from, and the two requests can't be active at the same
    time, so this patch fixes the above issue by updating tags->rqs[tag]
    with the active request(either flush rq or the request cloned
    from) of the tag.
    
    Also blk_mq_tag_to_rq() gets much simplified with this patch.
    
    Given blk_mq_tag_to_rq() is mainly for drivers and the caller must
    make sure the request can't be freed, so in bt_for_each() this
    helper is replaced with tags->rqs[tag].
    
    [1] kernel oops log
    [  439.696220] BUG: unable to handle kernel NULL pointer dereference at 0000000000000158^M
    [  439.697162] IP: [<ffffffff812d89ba>] blk_mq_tag_to_rq+0x21/0x6e^M
    [  439.700653] PGD 7ef765067 PUD 7ef764067 PMD 0 ^M
    [  439.700653] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC ^M
    [  439.700653] Dumping ftrace buffer:^M
    [  439.700653]    (ftrace buffer empty)^M
    [  439.700653] Modules linked in: nbd ipv6 kvm_intel kvm serio_raw^M
    [  439.700653] CPU: 6 PID: 2779 Comm: stress-ng-sigfd Not tainted 4.2.0-rc5-next-20150805+ #265^M
    [  439.730500] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011^M
    [  439.730500] task: ffff880605308000 ti: ffff88060530c000 task.ti: ffff88060530c000^M
    [  439.730500] RIP: 0010:[<ffffffff812d89ba>]  [<ffffffff812d89ba>] blk_mq_tag_to_rq+0x21/0x6e^M
    [  439.730500] RSP: 0018:ffff880819203da0  EFLAGS: 00010283^M
    [  439.730500] RAX: ffff880811b0e000 RBX: ffff8800bb465f00 RCX: 0000000000000002^M
    [  439.730500] RDX: 0000000000000000 RSI: 0000000000000202 RDI: 0000000000000000^M
    [  439.730500] RBP: ffff880819203db0 R08: 0000000000000002 R09: 0000000000000000^M
    [  439.730500] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000202^M
    [  439.730500] R13: ffff880814104800 R14: 0000000000000002 R15: ffff880811a2ea00^M
    [  439.730500] FS:  00007f165b3f5740(0000) GS:ffff880819200000(0000) knlGS:0000000000000000^M
    [  439.730500] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b^M
    [  439.730500] CR2: 0000000000000158 CR3: 00000007ef766000 CR4: 00000000000006e0^M
    [  439.730500] Stack:^M
    [  439.730500]  0000000000000008 ffff8808114eed90 ffff880819203e00 ffffffff812dc104^M
    [  439.755663]  ffff880819203e40 ffffffff812d9f5e 0000020000000000 ffff8808114eed80^M
    [  439.755663] Call Trace:^M
    [  439.755663]  <IRQ> ^M
    [  439.755663]  [<ffffffff812dc104>] bt_for_each+0x6e/0xc8^M
    [  439.755663]  [<ffffffff812d9f5e>] ? blk_mq_rq_timed_out+0x6a/0x6a^M
    [  439.755663]  [<ffffffff812d9f5e>] ? blk_mq_rq_timed_out+0x6a/0x6a^M
    [  439.755663]  [<ffffffff812dc1b3>] blk_mq_tag_busy_iter+0x55/0x5e^M
    [  439.755663]  [<ffffffff812d88b4>] ? blk_mq_bio_to_request+0x38/0x38^M
    [  439.755663]  [<ffffffff812d8911>] blk_mq_rq_timer+0x5d/0xd4^M
    [  439.755663]  [<ffffffff810a3e10>] call_timer_fn+0xf7/0x284^M
    [  439.755663]  [<ffffffff810a3d1e>] ? call_timer_fn+0x5/0x284^M
    [  439.755663]  [<ffffffff812d88b4>] ? blk_mq_bio_to_request+0x38/0x38^M
    [  439.755663]  [<ffffffff810a46d6>] run_timer_softirq+0x1ce/0x1f8^M
    [  439.755663]  [<ffffffff8104c367>] __do_softirq+0x181/0x3a4^M
    [  439.755663]  [<ffffffff8104c76e>] irq_exit+0x40/0x94^M
    [  439.755663]  [<ffffffff81031482>] smp_apic_timer_interrupt+0x33/0x3e^M
    [  439.755663]  [<ffffffff815559a4>] apic_timer_interrupt+0x84/0x90^M
    [  439.755663]  <EOI> ^M
    [  439.755663]  [<ffffffff81554350>] ? _raw_spin_unlock_irq+0x32/0x4a^M
    [  439.755663]  [<ffffffff8106a98b>] finish_task_switch+0xe0/0x163^M
    [  439.755663]  [<ffffffff8106a94d>] ? finish_task_switch+0xa2/0x163^M
    [  439.755663]  [<ffffffff81550066>] __schedule+0x469/0x6cd^M
    [  439.755663]  [<ffffffff8155039b>] schedule+0x82/0x9a^M
    [  439.789267]  [<ffffffff8119b28b>] signalfd_read+0x186/0x49a^M
    [  439.790911]  [<ffffffff8106d86a>] ? wake_up_q+0x47/0x47^M
    [  439.790911]  [<ffffffff811618c2>] __vfs_read+0x28/0x9f^M
    [  439.790911]  [<ffffffff8117a289>] ? __fget_light+0x4d/0x74^M
    [  439.790911]  [<ffffffff811620a7>] vfs_read+0x7a/0xc6^M
    [  439.790911]  [<ffffffff8116292b>] SyS_read+0x49/0x7f^M
    [  439.790911]  [<ffffffff81554c17>] entry_SYSCALL_64_fastpath+0x12/0x6f^M
    [  439.790911] Code: 48 89 e5 e8 a9 b8 e7 ff 5d c3 0f 1f 44 00 00 55 89
    f2 48 89 e5 41 54 41 89 f4 53 48 8b 47 60 48 8b 1c d0 48 8b 7b 30 48 8b
    53 38 <48> 8b 87 58 01 00 00 48 85 c0 75 09 48 8b 97 88 0c 00 00 eb 10
    ^M
    [  439.790911] RIP  [<ffffffff812d89ba>] blk_mq_tag_to_rq+0x21/0x6e^M
    [  439.790911]  RSP <ffff880819203da0>^M
    [  439.790911] CR2: 0000000000000158^M
    [  439.790911] ---[ end trace d40af58949325661 ]---^M
    
    Signed-off-by: Ming Lei <ming.lei@canonical.com>
    Signed-off-by: Jens Axboe <axboe@fb.com>
    Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>