commit ddd28fff50ddc10604e420ca30fe11affbc17567
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Aug 3 07:55:27 2018 +0200

    Linux 4.9.117

commit db890d30b9750f929c0e976972a4d424ac90f8cb
Author: Michal Vokáč <vokac.m@gmail.com>
Date:   Wed May 23 08:20:22 2018 +0200

    net: dsa: qca8k: Allow overwriting CPU port setting
    
    commit 9bb2289f90e671bdb78e306974187424ac19ff8e upstream.
    
    Implement adjust_link function that allows to overwrite default CPU port
    setting using fixed-link device tree subnode.
    
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 53a1a29a9236978511fb8c8eaad494ec01ba0732
Author: Michal Vokáč <vokac.m@gmail.com>
Date:   Wed May 23 08:20:18 2018 +0200

    net: dsa: qca8k: Add QCA8334 binding documentation
    
    commit 218bbea11a777c156eb7bcbdc72867b32ae10985 upstream.
    
    Add support for the four-port variant of the Qualcomm QCA833x switch.
    
    The CPU port default link settings can be reconfigured using
    a fixed-link sub-node.
    
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b429bf7de4944f73a489f97bb33bcf78a6935ac2
Author: Michal Vokáč <vokac.m@gmail.com>
Date:   Wed May 23 08:20:20 2018 +0200

    net: dsa: qca8k: Enable RXMAC when bringing up a port
    
    commit eee1fe64765c562d8bcaf95e5631a8ea2f760f34 upstream.
    
    When a port is brought up/down do not enable/disable only the TXMAC
    but the RXMAC as well. This is essential for the CPU port to work.
    
    Fixes: 6b93fb46480a ("net-next: dsa: add new driver for qca8xxx family")
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e59af2831d9b5d452f6f9281c4bb6b9ecc4e591f
Author: Michal Vokáč <vokac.m@gmail.com>
Date:   Wed May 23 08:20:21 2018 +0200

    net: dsa: qca8k: Force CPU port to its highest bandwidth
    
    commit 79a4ed4f0f93fc65e48a0fc5247ffa5645f7b0cc upstream.
    
    By default autonegotiation is enabled to configure MAC on all ports.
    For the CPU port autonegotiation can not be used so we need to set
    some sensible defaults manually.
    
    This patch forces the default setting of the CPU port to 1000Mbps/full
    duplex which is the chip maximum capability.
    
    Also correct size of the bit field used to configure link speed.
    
    Fixes: 6b93fb46480a ("net-next: dsa: add new driver for qca8xxx family")
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40af3250e9f283bdf228f845e3aab23c30ede7f1
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Sun Jun 24 11:23:42 2018 +0300

    RDMA/uverbs: Protect from attempts to create flows on unsupported QP
    
    commit 940efcc8889f0d15567eb07fc9fd69b06e366aa5 upstream.
    
    Flows can be created on UD and RAW_PACKET QP types. Attempts to provide
    other QP types as an input causes to various unpredictable failures.
    
    The reason is that in order to support all various types (e.g. XRC), we
    are supposed to use real_qp handle and not qp handle and expect to
    driver/FW to fail such (XRC) flows. The simpler and safer variant is to
    ban all QP types except UD and RAW_PACKET, instead of relying on
    driver/FW.
    
    Cc: <stable@vger.kernel.org> # 3.11
    Fixes: 436f2ad05a0b ("IB/core: Export ib_create/destroy_flow through uverbs")
    Cc: syzkaller <syzkaller@googlegroups.com>
    Reported-by: Noa Osherovich <noaos@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 262a62cc50697246eeb431b970db6b3ee35c33f3
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Thu Jul 12 19:08:05 2018 -0400

    ext4: check for allocation block validity with block group locked
    
    commit 8d5a803c6a6ce4ec258e31f76059ea5153ba46ef upstream.
    
    With commit 044e6e3d74a3: "ext4: don't update checksum of new
    initialized bitmaps" the buffer valid bit will get set without
    actually setting up the checksum for the allocation bitmap, since the
    checksum will get calculated once we actually allocate an inode or
    block.
    
    If we are doing this, then we need to (re-)check the verified bit
    after we take the block group lock.  Otherwise, we could race with
    another process reading and verifying the bitmap, which would then
    complain about the checksum being invalid.
    
    https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1780137
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5eed597ca6c8d34312ce1298446988431bbbcd5f
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Tue Jul 10 01:07:43 2018 -0400

    ext4: fix inline data updates with checksums enabled
    
    commit 362eca70b53389bddf3143fe20f53dcce2cfdf61 upstream.
    
    The inline data code was updating the raw inode directly; this is
    problematic since if metadata checksums are enabled,
    ext4_mark_inode_dirty() must be called to update the inode's checksum.
    In addition, the jbd2 layer requires that get_write_access() be called
    before the metadata buffer is modified.  Fix both of these problems.
    
    https://bugzilla.kernel.org/show_bug.cgi?id=200443
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1aecbe4326b1da7e4afb075c92e24ba2c52ff3e8
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Sun Jul 29 12:44:46 2018 -0700

    squashfs: be more careful about metadata corruption
    
    commit 01cfb7937a9af2abb1136c7e89fbf3fd92952956 upstream.
    
    Anatoly Trosinenko reports that a corrupted squashfs image can cause a
    kernel oops.  It turns out that squashfs can end up being confused about
    negative fragment lengths.
    
    The regular squashfs_read_data() does check for negative lengths, but
    squashfs_read_metadata() did not, and the fragment size code just
    blindly trusted the on-disk value.  Fix both the fragment parsing and
    the metadata reading code.
    
    Reported-by: Anatoly Trosinenko <anatoly.trosinenko@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Phillip Lougher <phillip@squashfs.org.uk>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 820f2bcacbdb8e537abce8cdf660ff3b2c67871c
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Sat Jul 14 23:55:57 2018 -0400

    random: mix rdrand with entropy sent in from userspace
    
    commit 81e69df38e2911b642ec121dec319fad2a4782f3 upstream.
    
    Fedora has integrated the jitter entropy daemon to work around slow
    boot problems, especially on VM's that don't support virtio-rng:
    
        https://bugzilla.redhat.com/show_bug.cgi?id=1572944
    
    It's understandable why they did this, but the Jitter entropy daemon
    works fundamentally on the principle: "the CPU microarchitecture is
    **so** complicated and we can't figure it out, so it *must* be
    random".  Yes, it uses statistical tests to "prove" it is secure, but
    AES_ENCRYPT(NSA_KEY, COUNTER++) will also pass statistical tests with
    flying colors.
    
    So if RDRAND is available, mix it into entropy submitted from
    userspace.  It can't hurt, and if you believe the NSA has backdoored
    RDRAND, then they probably have enough details about the Intel
    microarchitecture that they can reverse engineer how the Jitter
    entropy daemon affects the microarchitecture, and attack its output
    stream.  And if RDRAND is in fact an honest DRNG, it will immeasurably
    improve on what the Jitter entropy daemon might produce.
    
    This also provides some protection against someone who is able to read
    or set the entropy seed file.
    
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Cc: stable@vger.kernel.org
    Cc: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f685597b133510047dbbea61c942e5c708654118
Author: José Roberto de Souza <jose.souza@intel.com>
Date:   Wed Mar 28 15:30:37 2018 -0700

    drm: Add DP PSR2 sink enable bit
    
    [ Upstream commit 4f212e40468650e220c1770876c7f25b8e0c1ff5 ]
    
    To comply with eDP1.4a this bit should be set when enabling PSR2.
    
    Signed-off-by: José Roberto de Souza <jose.souza@intel.com>
    Reviewed-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180328223046.16125-1-jose.souza@intel.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 401103613da6455ead0e9c99fbe5f6948615282e
Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Date:   Fri Apr 6 07:54:51 2018 -0400

    media: si470x: fix __be16 annotations
    
    [ Upstream commit 90db5c829692a0a7845e977e45719b4699216bd4 ]
    
    The annotations there are wrong as warned:
       drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:107:35: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:129:24: warning: incorrect type in assignment (different base types)
       drivers/media/radio/si470x/radio-si470x-i2c.c:129:24:    expected unsigned short [unsigned] [short] <noident>
       drivers/media/radio/si470x/radio-si470x-i2c.c:129:24:    got restricted __be16 [usertype] <noident>
       drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
       drivers/media/radio/si470x/radio-si470x-i2c.c:163:39: warning: cast to restricted __be16
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e8738c1c1037d36c317a65fd41ce1c812f5d9f4
Author: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
Date:   Fri Apr 6 02:02:11 2018 -0700

    scsi: megaraid_sas: Increase timeout by 1 sec for non-RAID fastpath IOs
    
    [ Upstream commit 3239b8cd28fd849a2023483257d35d68c5876c74 ]
    
    Hardware could time out Fastpath IOs one second earlier than the timeout
    provided by the host.
    
    For non-RAID devices, driver provides timeout value based on OS provided
    timeout value. Under certain scenarios, if the OS provides a timeout
    value of 1 second, due to above behavior hardware will timeout
    immediately.
    
    Increase timeout value for non-RAID fastpath IOs by 1 second.
    
    Signed-off-by: Shivasharan S <shivasharan.srikanteshwara@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6337861a0f0304faa7806719ce73b994db246b7c
Author: Xose Vazquez Perez <xose.vazquez@gmail.com>
Date:   Sat Apr 7 00:47:23 2018 +0200

    scsi: scsi_dh: replace too broad "TP9" string with the exact models
    
    [ Upstream commit 37b37d2609cb0ac267280ef27350b962d16d272e ]
    
    SGI/TP9100 is not an RDAC array:
        ^^^
    https://git.opensvc.com/gitweb.cgi?p=multipath-tools/.git;a=blob;f=libmultipath/hwtable.c;h=88b4700beb1d8940008020fbe4c3cd97d62f4a56;hb=HEAD#l235
    
    This partially reverts commit 35204772ea03 ("[SCSI] scsi_dh_rdac :
    Consolidate rdac strings together")
    
    [mkp: fixed up the new entries to align with rest of struct]
    
    Cc: NetApp RDAC team <ng-eseries-upstream-maintainers@netapp.com>
    Cc: Hannes Reinecke <hare@suse.de>
    Cc: James E.J. Bottomley <jejb@linux.vnet.ibm.com>
    Cc: Martin K. Petersen <martin.petersen@oracle.com>
    Cc: SCSI ML <linux-scsi@vger.kernel.org>
    Cc: DM ML <dm-devel@redhat.com>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8fcb8b5ea088e90702b7d1e89b6863bb02fbe170
Author: Suman Anna <s-anna@ti.com>
Date:   Wed Mar 14 11:41:36 2018 -0400

    media: omap3isp: fix unbalanced dma_iommu_mapping
    
    [ Upstream commit b7e1e6859fbf60519fd82d7120cee106a6019512 ]
    
    The OMAP3 ISP driver manages its MMU mappings through the IOMMU-aware
    ARM DMA backend. The current code creates a dma_iommu_mapping and
    attaches this to the ISP device, but never detaches the mapping in
    either the probe failure paths or the driver remove path resulting
    in an unbalanced mapping refcount and a memory leak. Fix this properly.
    
    Reported-by: Pavel Machek <pavel@ucw.cz>
    Signed-off-by: Suman Anna <s-anna@ti.com>
    Tested-by: Pavel Machek <pavel@ucw.cz>
    Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15aa793dadf70c7c5f4e2da7b6a60f4ef74f599b
Author: Tudor-Dan Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Apr 3 09:39:00 2018 +0300

    crypto: authenc - don't leak pointers to authenc keys
    
    [ Upstream commit ad2fdcdf75d169e7a5aec6c7cb421c0bec8ec711 ]
    
    In crypto_authenc_setkey we save pointers to the authenc keys in
    a local variable of type struct crypto_authenc_keys and we don't
    zeroize it after use. Fix this and don't leak pointers to the
    authenc keys.
    
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b4cdfa0ab4316436ff01b0ebec6d886acdf931a
Author: Tudor-Dan Ambarus <tudor.ambarus@microchip.com>
Date:   Tue Apr 3 09:39:01 2018 +0300

    crypto: authencesn - don't leak pointers to authenc keys
    
    [ Upstream commit 31545df391d58a3bb60e29b1192644a6f2b5a8dd ]
    
    In crypto_authenc_esn_setkey we save pointers to the authenc keys
    in a local variable of type struct crypto_authenc_keys and we don't
    zeroize it after use. Fix this and don't leak pointers to the
    authenc keys.
    
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 399e549fe55d4591883eb7b3dc254832fb09773e
Author: Dominik Bozek <dominikx.bozek@intel.com>
Date:   Fri Apr 13 10:42:31 2018 -0700

    usb: hub: Don't wait for connect state at resume for powered-off ports
    
    [ Upstream commit 5d111f5190848d6fb1c414dc57797efea3526a2f ]
    
    wait_for_connected() wait till a port change status to
    USB_PORT_STAT_CONNECTION, but this is not possible if
    the port is unpowered. The loop will only exit at timeout.
    
    Such case take place if an over-current incident happen
    while system is in S3. Then during resume wait_for_connected()
    will wait 2s, which may be noticeable by the user.
    
    Signed-off-by: Dominik Bozek <dominikx.bozek@intel.com>
    Signed-off-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eac904dd39f4c69b7c9119444ab34c21d88cc1e5
Author: Michal Simek <michal.simek@xilinx.com>
Date:   Tue Apr 10 15:05:42 2018 +0200

    microblaze: Fix simpleImage format generation
    
    [ Upstream commit ece97f3a5fb50cf5f98886fbc63c9665f2bb199d ]
    
    simpleImage generation was broken for some time. This patch is fixing
    steps how simpleImage.*.ub file is generated. Steps are objdump of
    vmlinux and create .ub.
    Also make sure that there is striped elf version with .strip suffix.
    
    Signed-off-by: Michal Simek <michal.simek@xilinx.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d1a409502ae0ba1ac5353c89b04d42b74b26131
Author: Douglas Anderson <dianders@chromium.org>
Date:   Fri Mar 23 10:58:31 2018 -0700

    serial: core: Make sure compiler barfs for 16-byte earlycon names
    
    [ Upstream commit c1c734cb1f54b062f7e67ffc9656d82f5b412b9c ]
    
    As part of bringup I ended up wanting to call an earlycon driver by a
    name that was exactly 16-bytes big, specifically "qcom_geni_serial".
    
    Unfortunately, when I tried this I found that things compiled just
    fine.  They just didn't work.
    
    Specifically the compiler felt perfectly justified in initting the
    ".name" field of "struct earlycon_id" with the full 16-bytes and just
    skipping the '\0'.  Needless to say, that behavior didn't seem ideal,
    but I guess someone must have allowed it for a reason.
    
    One way to fix this is to shorten the name field to 15 bytes and then
    add an extra byte after that nobody touches.  This should always be
    initted to 0 and we're golden.
    
    There are, of course, other ways to fix this too.  We could audit all
    the users of the "name" field and make them stop at both null
    termination or at 16 bytes.  We could also just make the name field
    much bigger so that we're not likely to run into this.  ...but both
    seem like we'll just hit the bug again.
    
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c18d68c7c2d03f78b5b2ab1fc592a38e582811e4
Author: NeilBrown <neilb@suse.com>
Date:   Thu Mar 29 15:26:48 2018 +1100

    staging: lustre: ldlm: free resource when ldlm_lock_create() fails.
    
    [ Upstream commit d8caf662b4aeeb2ac83ac0b22e40db88e9360c77 ]
    
    ldlm_lock_create() gets a resource, but don't put it on
    all failure paths. It should.
    
    Signed-off-by: NeilBrown <neilb@suse.com>
    Reviewed-by: James Simmons <jsimmons@infradead.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1c802923321df0685e10124ebba10a527cb43ff8
Author: James Simmons <jsimmons@infradead.org>
Date:   Mon Apr 16 00:15:10 2018 -0400

    staging: lustre: llite: correct removexattr detection
    
    [ Upstream commit 1b60f6dfa38403ff7c4d0b4b7ecdb810f9789a2a ]
    
    In ll_xattr_set_common() detect the removexattr() case correctly by
    testing for a NULL value as well as XATTR_REPLACE.
    
    Signed-off-by: John L. Hammond <john.hammond@intel.com>
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-10787
    Reviewed-on: https://review.whamcloud.com/
    Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
    Reviewed-by: James Simmons <uja.ornl@yahoo.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@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f5e70d7ec14d2b194f06e7ebe7f9396b4cdbb5f
Author: Ondrej Mosnáček <omosnace@redhat.com>
Date:   Mon Apr 9 10:00:06 2018 +0200

    audit: allow not equal op for audit by executable
    
    [ Upstream commit 23bcc480dac204c7dbdf49d96b2c918ed98223c2 ]
    
    Current implementation of auditing by executable name only implements
    the 'equal' operator. This patch extends it to also support the 'not
    equal' operator.
    
    See: https://github.com/linux-audit/audit-kernel/issues/53
    
    Signed-off-by: Ondrej Mosnacek <omosnace@redhat.com>
    Reviewed-by: Richard Guy Briggs <rgb@redhat.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3c90e828db81b22f37fa7d37b9759cd3f1d305ba
Author: Siva Rebbagondla <siva.rebbagondla@redpinesignals.com>
Date:   Wed Apr 11 12:13:32 2018 +0530

    rsi: Fix 'invalid vdd' warning in mmc
    
    [ Upstream commit 78e450719c702784e42af6da912d3692fd3da0cb ]
    
    While performing cleanup, driver is messing with card->ocr
    value by not masking rocr against ocr_avail. Below panic
    is observed with some of the SDIO host controllers due to
    this. Issue is resolved by reverting incorrect modifications
    to vdd.
    
    [  927.423821] mmc1: Invalid vdd 0x1f
    [  927.423925] Modules linked in: rsi_sdio(+) cmac bnep arc4 rsi_91x
                   mac80211 cfg80211 btrsi rfcomm bluetooth ecdh_generic
    [  927.424073] CPU: 0 PID: 1624 Comm: insmod Tainted: G         W        4.15.0-1000-caracalla #1
    [  927.424075] Hardware name: Dell Inc. Edge Gateway    3003/      , BIOS 01.00.06 01/22/2018
    [  927.424082] RIP: 0010:sdhci_set_power_noreg+0xdd/0x190[sdhci]
    [  927.424085] RSP: 0018:ffffac3fc064b930 EFLAGS:  00010282
    [  927.424107] Call Trace:
    [  927.424118]  sdhci_set_power+0x5a/0x60 [sdhci]
    [  927.424125]  sdhci_set_ios+0x360/0x3b0 [sdhci]
    [  927.424133]  mmc_set_initial_state+0x92/0x120
    [  927.424137]  mmc_power_up.part.34+0x33/0x1d0
    [  927.424141]  mmc_power_up+0x17/0x20
    [  927.424147]  mmc_sdio_runtime_resume+0x2d/0x50
    [  927.424151]  mmc_runtime_resume+0x17/0x20
    [  927.424156]  __rpm_callback+0xc4/0x200
    [  927.424161]  ? idr_alloc_cyclic+0x57/0xd0
    [  927.424165]  ? mmc_runtime_suspend+0x20/0x20
    [  927.424169]  rpm_callback+0x24/0x80
    [  927.424172]  ? mmc_runtime_suspend+0x20/0x20
    [  927.424176]  rpm_resume+0x4b3/0x6c0
    [  927.424181]  __pm_runtime_resume+0x4e/0x80
    [  927.424188]  driver_probe_device+0x41/0x490
    [  927.424192]  __driver_attach+0xdf/0xf0
    [  927.424196]  ? driver_probe_device+0x490/0x490
    [  927.424201]  bus_for_each_dev+0x6c/0xc0
    [  927.424205]  driver_attach+0x1e/0x20
    [  927.424209]  bus_add_driver+0x1f4/0x270
    [  927.424217]  ? rsi_sdio_ack_intr+0x50/0x50 [rsi_sdio]
    [  927.424221]  driver_register+0x60/0xe0
    [  927.424227]  ? rsi_sdio_ack_intr+0x50/0x50 [rsi_sdio]
    [  927.424231]  sdio_register_driver+0x20/0x30
    [  927.424237]  rsi_module_init+0x16/0x40 [rsi_sdio]
    
    Signed-off-by: Siva Rebbagondla <siva.rebbagondla@redpinesignals.com>
    Signed-off-by: Amitkumar Karwar <amit.karwar@redpinesignals.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34447a69c912dbfc5bd580e1860ce7d633bd47d3
Author: Chris Novakovic <chris@chrisn.me.uk>
Date:   Tue Apr 24 03:56:37 2018 +0100

    ipconfig: Correctly initialise ic_nameservers
    
    [ Upstream commit 300eec7c0a2495f771709c7642aa15f7cc148b83 ]
    
    ic_nameservers, which stores the list of name servers discovered by
    ipconfig, is initialised (i.e. has all of its elements set to NONE, or
    0xffffffff) by ic_nameservers_predef() in the following scenarios:
    
     - before the "ip=" and "nfsaddrs=" kernel command line parameters are
       parsed (in ip_auto_config_setup());
     - before autoconfiguring via DHCP or BOOTP (in ic_bootp_init()), in
       order to clear any values that may have been set after parsing "ip="
       or "nfsaddrs=" and are no longer needed.
    
    This means that ic_nameservers_predef() is not called when neither "ip="
    nor "nfsaddrs=" is specified on the kernel command line. In this
    scenario, every element in ic_nameservers remains set to 0x00000000,
    which is indistinguishable from ANY and causes pnp_seq_show() to write
    the following (bogus) information to /proc/net/pnp:
    
      #MANUAL
      nameserver 0.0.0.0
      nameserver 0.0.0.0
      nameserver 0.0.0.0
    
    This is potentially problematic for systems that blindly link
    /etc/resolv.conf to /proc/net/pnp.
    
    Ensure that ic_nameservers is also initialised when neither "ip=" nor
    "nfsaddrs=" are specified by calling ic_nameservers_predef() in
    ip_auto_config(), but only when ip_auto_config_setup() was not called
    earlier. This causes the following to be written to /proc/net/pnp, and
    is consistent with what gets written when ipconfig is configured
    manually but no name servers are specified on the kernel command line:
    
      #MANUAL
    
    Signed-off-by: Chris Novakovic <chris@chrisn.me.uk>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 917f481feb8d1492f9567ac6a7038866a39c9540
Author: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Date:   Tue Apr 24 15:14:57 2018 +0200

    drm/gma500: fix psb_intel_lvds_mode_valid()'s return type
    
    [ Upstream commit 2ea009095c6e7396915a1d0dd480c41f02985f79 ]
    
    The method struct drm_connector_helper_funcs::mode_valid is defined
    as returning an 'enum drm_mode_status' but the driver implementation
    for this method, psb_intel_lvds_mode_valid(), uses an 'int' for it.
    
    Fix this by using 'enum drm_mode_status' for psb_intel_lvds_mode_valid().
    
    Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/20180424131458.2060-1-luc.vanoostenryck@gmail.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7131631290e27ea6e91b7645bb22bae6b59d684
Author: Enric Balletbo i Serra <enric.balletbo@collabora.com>
Date:   Mon Apr 16 11:39:57 2018 -0300

    arm64: defconfig: Enable Rockchip io-domain driver
    
    [ Upstream commit 7c8b77f81552c2b0e5d9c560da70bc4149ce66a5 ]
    
    Heiko Stübner justified pretty well the change in commit e330eb86ba0b
    ("ARM: multi_v7_defconfig: enable Rockchip io-domain driver"). This
    change is also needed for arm64 rockchip boards, so, do the same for arm64.
    
    The io-domain driver is necessary to notify the soc about voltages
    changes happening on supplying regulators. Probably the most important
    user right now is the mmc tuning code, where the soc needs to get
    notified when the voltage is dropped to the 1.8V point.
    
    As this option is necessary to successfully tune UHS cards etc, it
    should get built in. Otherwise, tuning will fail with,
    
       dwmmc_rockchip fe320000.dwmmc: All phases bad!
       mmc0: tuning execution failed: -5
    
    Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
    Acked-by: Robin Murphy <robin.murphy@arm.com>
    Signed-off-by: Heiko Stuebner <heiko@sntech.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit dc6afdde4b788ae91fc2e79e7e9e3e83351fa646
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Mon Apr 9 22:28:29 2018 +0300

    memory: tegra: Apply interrupts mask per SoC
    
    [ Upstream commit 1c74d5c0de0c2cc29fef97a19251da2ad6f579bd ]
    
    Currently we are enabling handling of interrupts specific to Tegra124+
    which happen to overlap with previous generations. Let's specify
    interrupts mask per SoC generation for consistency and in a preparation
    of squashing of Tegra20 driver into the common one that will enable
    handling of GART faults which may be undesirable by newer generations.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1516a6019485297c1c5b8d10a869fe6769d9227a
Author: Dmitry Osipenko <digetx@gmail.com>
Date:   Mon Apr 9 22:28:27 2018 +0300

    memory: tegra: Do not handle spurious interrupts
    
    [ Upstream commit bf3fbdfbec947cdd04b2f2c4bce11534c8786eee ]
    
    The ISR reads interrupts-enable mask, but doesn't utilize it. Apply the
    mask to the interrupt status and don't handle interrupts that MC driver
    haven't asked for. Kernel would disable spurious MC IRQ and report the
    error. This would happen only in a case of a very severe bug.
    
    Signed-off-by: Dmitry Osipenko <digetx@gmail.com>
    Signed-off-by: Thierry Reding <treding@nvidia.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d044d940faeb6a7e65a1d215415e425822f365c
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Mon Apr 23 21:16:35 2018 +0200

    stop_machine: Use raw spinlocks
    
    [ Upstream commit de5b55c1d4e30740009864eb35ce4ed856aac01d ]
    
    Use raw-locks in stop_machine() to allow locking in irq-off and
    preempt-disabled regions on -RT. This also documents the possible locking
    context in general.
    
    [bigeasy: update patch description.]
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Link: https://lkml.kernel.org/r/20180423191635.6014-1-bigeasy@linutronix.de
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 68f96e54102997ae9e956e2e434ce3befccc181e
Author: Yixun Lan <yixun.lan@amlogic.com>
Date:   Sat Apr 28 10:21:10 2018 +0000

    dt-bindings: net: meson-dwmac: new compatible name for AXG SoC
    
    [ Upstream commit 7e5d05e18ba1ed491c6f836edee7f0b90f3167bc ]
    
    We need to introduce a new compatible name for the Meson-AXG SoC
    in order to support the RMII 100M ethernet PHY, since the PRG_ETH0
    register of the dwmac glue layer is changed from previous old SoC.
    
    Signed-off-by: Yixun Lan <yixun.lan@amlogic.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77620f39904147da44737a43304baaf80f44d671
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sun Apr 22 12:53:28 2018 +0200

    dt-bindings: pinctrl: meson: add support for the Meson8m2 SoC
    
    [ Upstream commit 03d9fbc39730b3e6b2e7047dc85f0f70de8fb97d ]
    
    The Meson8m2 SoC is a variant of Meson8 with some updates from Meson8b
    (such as the Gigabit capable DesignWare MAC).
    It is mostly pin compatible with Meson8, only 10 (existing) CBUS pins
    get an additional function (four of these are Ethernet RXD2, RXD3, TXD2
    and TXD3 which are required when the board uses an RGMII PHY).
    The AOBUS pins seem to be identical on Meson8 and Meson8m2.
    
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Reviewed-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit df157f60b9e7f12f30550254111c13c043d10529
Author: Tobin C. Harding <me@tobin.cc>
Date:   Mon Mar 26 17:33:14 2018 +1100

    mmc: pwrseq: Use kmalloc_array instead of stack VLA
    
    [ Upstream commit 486e6661367b40f927aadbed73237693396cbf94 ]
    
    The use of stack Variable Length Arrays needs to be avoided, as they
    can be a vector for stack exhaustion, which can be both a runtime bug
    (kernel Oops) or a security flaw (overwriting memory beyond the
    stack). Also, in general, as code evolves it is easy to lose track of
    how big a VLA can get. Thus, we can end up having runtime failures
    that are hard to debug. As part of the directive[1] to remove all VLAs
    from the kernel, and build with -Wvla.
    
    Currently driver is using a VLA declared using the number of descriptors.  This
    array is used to store integer values and is later used as an argument to
    `gpiod_set_array_value_cansleep()` This can be avoided by using
    `kmalloc_array()` to allocate memory for the array of integer values.  Memory is
    free'd before return from function.
    
    >From the code it appears that it is safe to sleep so we can use GFP_KERNEL
    (based _cansleep() suffix of function `gpiod_set_array_value_cansleep()`.
    
    It can be expected that this patch will result in a small increase in overhead
    due to the use of `kmalloc_array()`
    
    [1] https://lkml.org/lkml/2018/3/7/621
    
    Signed-off-by: Tobin C. Harding <me@tobin.cc>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit de3466cc154e398f3e8de6b2139aadf8651eb03a
Author: Shawn Lin <shawn.lin@rock-chips.com>
Date:   Mon Mar 26 17:26:25 2018 +0800

    mmc: dw_mmc: update actual clock for mmc debugfs
    
    [ Upstream commit ff178981bd5fd1667f373098740cb1c6d6efa1ba ]
    
    Respect the actual clock for mmc debugfs to help better debug
    the hardware.
    
    mmc_host mmc0: Bus speed (slot 0) = 135475200Hz (slot req 150000000Hz,
    actual 135475200HZ div = 0)
    
    cat /sys/kernel/debug/mmc0/ios
    clock:          150000000 Hz
    actual clock:   135475200 Hz
    vdd:            21 (3.3 ~ 3.4 V)
    bus mode:       2 (push-pull)
    chip select:    0 (don't care)
    power mode:     2 (on)
    bus width:      3 (8 bits)
    timing spec:    9 (mmc HS200)
    signal voltage: 0 (1.80 V)
    driver type:    0 (driver type B)
    
    Cc: Xiao Yao <xiaoyao@rock-chips.com>
    Cc: Ziyuan <xzy.xu@rock-chips.com>
    Signed-off-by: Shawn Lin <shawn.lin@rock-chips.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 575aa79d55a65bd2b0485836196d05a7041cb68d
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Wed May 2 22:48:16 2018 +0900

    ALSA: hda/ca0132: fix build failure when a local macro is defined
    
    [ Upstream commit 8e142e9e628975b0dddd05cf1b095331dff6e2de ]
    
    DECLARE_TLV_DB_SCALE (alias of SNDRV_CTL_TLVD_DECLARE_DB_SCALE) is used but
    tlv.h is not included. This causes build failure when local macro is
    defined by comment-out.
    
    This commit fixes the bug. At the same time, the alias macro is replaced
    with a destination macro added at a commit 46e860f76804 ("ALSA: rename
    TLV-related macros so that they're friendly to user applications")
    
    Reported-by: Connor McAdams <conmanx360@gmail.com>
    Fixes: 44f0c9782cc6 ('ALSA: hda/ca0132: Add tuning controls')
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 004256bb888290cd26eadcd07e72bd9e9f5e497a
Author: Satendra Singh Thakur <satendra.t@samsung.com>
Date:   Thu May 3 11:19:32 2018 +0530

    drm/atomic: Handling the case when setting old crtc for plane
    
    [ Upstream commit fc2a69f3903dfd97cd47f593e642b47918c949df ]
    
    In the func drm_atomic_set_crtc_for_plane, with the current code,
    if crtc of the plane_state and crtc passed as argument to the func
    are same, entire func will executed in vein.
    It will get state of crtc and clear and set the bits in plane_mask.
    All these steps are not required for same old crtc.
    Ideally, we should do nothing in this case, this patch handles the same,
    and causes the program to return without doing anything in such scenario.
    
    Signed-off-by: Satendra Singh Thakur <satendra.t@samsung.com>
    Cc: Madhur Verma <madhur.verma@samsung.com>
    Cc: Hemanshu Srivastava <hemanshu.s@samsung.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Link: https://patchwork.freedesktop.org/patch/msgid/1525326572-25854-1-git-send-email-satendra.t@samsung.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3382cb5572f5e670e533e3a300138f03c7ad926
Author: Mauro Carvalho Chehab <mchehab@s-opensource.com>
Date:   Fri Apr 20 08:32:16 2018 -0400

    media: siano: get rid of __le32/__le16 cast warnings
    
    [ Upstream commit e1b7f11b37def5f3021c06e8c2b4953e099357aa ]
    
    Those are all false-positives that appear with smatch when building for
    arm:
    
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:38:36: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:47:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:67:35: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:84:44: warning: cast to restricted __le32
      drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:98:26: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:99:28: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
      drivers/media/common/siano/smsendian.c:100:27: warning: cast to restricted __le16
    
    Get rid of them by adding explicit forced casts.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e31a06ec828ff8184cc2c1fbae49be783c3b4f11
Author: Jakub Kicinski <jakub.kicinski@netronome.com>
Date:   Thu May 3 18:37:17 2018 -0700

    bpf: fix references to free_bpf_prog_info() in comments
    
    [ Upstream commit ab7f5bf0928be2f148d000a6eaa6c0a36e74750e ]
    
    Comments in the verifier refer to free_bpf_prog_info() which
    seems to have never existed in tree.  Replace it with
    free_used_maps().
    
    Signed-off-by: Jakub Kicinski <jakub.kicinski@netronome.com>
    Reviewed-by: Quentin Monnet <quentin.monnet@netronome.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3221a270e2c28cad0144421bd8a9a32c23d31e6c
Author: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Date:   Thu Apr 26 13:51:16 2018 +0200

    thermal: exynos: fix setting rising_threshold for Exynos5433
    
    [ Upstream commit 8bfc218d0ebbabcba8ed2b8ec1831e0cf1f71629 ]
    
    Add missing clearing of the previous value when setting rising
    temperature threshold.
    
    Signed-off-by: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
    Signed-off-by: Eduardo Valentin <edubezval@gmail.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30f32e09af72473965dfd1f1d86550df3a45112f
Author: Doug Oucahrek <dougso@me.com>
Date:   Tue May 1 22:22:19 2018 -0700

    staging: lustre: o2iblnd: fix race at kiblnd_connect_peer
    
    [ Upstream commit cf04968efe341b9b1c30a527e5dd61b2af9c43d2 ]
    
    cmid will be destroyed at OFED if kiblnd_cm_callback return error.
    if error happen before the end of kiblnd_connect_peer, it will touch
    destroyed cmid and fail as
    (o2iblnd_cb.c:1315:kiblnd_connect_peer())
                ASSERTION( cmid->device != ((void *)0) ) failed:
    
    Signed-off-by: Alexander Boyko <alexander.boyko@seagate.com>
    Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-10015
    Reviewed-by: Alexey Lyashkov <c17817@cray.com>
    Reviewed-by: Doug Oucharek <dougso@me.com>
    Reviewed-by: John L. Hammond <john.hammond@intel.com>
    Signed-off-by: Doug Oucharek <dougso@me.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 749c6f0e3b5d22a50c026c75b06c030650a46af2
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Thu May 3 13:54:32 2018 +0300

    scsi: megaraid: silence a static checker bug
    
    [ Upstream commit 27e833dabab74ee665e487e291c9afc6d71effba ]
    
    If we had more than 32 megaraid cards then it would cause memory
    corruption.  That's not likely, of course, but it's handy to enforce it
    and make the static checker happy.
    
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5a644f682267dff1614e5aaf23cdcffeefe91213
Author: Wenwen Wang <wang6495@umn.edu>
Date:   Mon May 7 19:54:01 2018 -0500

    scsi: 3w-xxxx: fix a missing-check bug
    
    [ Upstream commit 9899e4d3523faaef17c67141aa80ff2088f17871 ]
    
    In tw_chrdev_ioctl(), the length of the data buffer is firstly copied
    from the userspace pointer 'argp' and saved to the kernel object
    'data_buffer_length'. Then a security check is performed on it to make
    sure that the length is not more than 'TW_MAX_IOCTL_SECTORS *
    512'. Otherwise, an error code -EINVAL is returned. If the security
    check is passed, the entire ioctl command is copied again from the
    'argp' pointer and saved to the kernel object 'tw_ioctl'. Then, various
    operations are performed on 'tw_ioctl' according to the 'cmd'. Given
    that the 'argp' pointer resides in userspace, a malicious userspace
    process can race to change the buffer length between the two
    copies. This way, the user can bypass the security check and inject
    invalid data buffer length. This can cause potential security issues in
    the following execution.
    
    This patch checks for capable(CAP_SYS_ADMIN) in tw_chrdev_open() to
    avoid the above issues.
    
    Signed-off-by: Wenwen Wang <wang6495@umn.edu>
    Acked-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 80e75bdc0e1be707edfd3730a2b46595648cf5b8
Author: Wenwen Wang <wang6495@umn.edu>
Date:   Mon May 7 19:46:43 2018 -0500

    scsi: 3w-9xxx: fix a missing-check bug
    
    [ Upstream commit c9318a3e0218bc9dacc25be46b9eec363259536f ]
    
    In twa_chrdev_ioctl(), the ioctl driver command is firstly copied from
    the userspace pointer 'argp' and saved to the kernel object
    'driver_command'.  Then a security check is performed on the data buffer
    size indicated by 'driver_command', which is
    'driver_command.buffer_length'. If the security check is passed, the
    entire ioctl command is copied again from the 'argp' pointer and saved
    to the kernel object 'tw_ioctl'. Then, various operations are performed
    on 'tw_ioctl' according to the 'cmd'. Given that the 'argp' pointer
    resides in userspace, a malicious userspace process can race to change
    the buffer size between the two copies. This way, the user can bypass
    the security check and inject invalid data buffer size. This can cause
    potential security issues in the following execution.
    
    This patch checks for capable(CAP_SYS_ADMIN) in twa_chrdev_open()t o
    avoid the above issues.
    
    Signed-off-by: Wenwen Wang <wang6495@umn.edu>
    Acked-by: Adam Radford <aradford@gmail.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a85b32ebaac08970d41a7b0105ce51fed90d153e
Author: Michael Chan <michael.chan@broadcom.com>
Date:   Tue May 8 03:18:39 2018 -0400

    bnxt_en: Check unsupported speeds in bnxt_update_link() on PF only.
    
    [ Upstream commit dac0490718bd17df5e3995ffca14255e5f9ed22d ]
    
    Only non-NPAR PFs need to actively check and manage unsupported link
    speeds.  NPAR functions and VFs do not control the link speed and
    should skip the unsupported speed detection logic, to avoid warning
    messages from firmware rejecting the unsupported firmware calls.
    
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 67d64e1cb1d278e9b8689830f8339704088d7874
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Tue May 8 07:53:39 2018 +0200

    perf: fix invalid bit in diagnostic entry
    
    [ Upstream commit 3c0a83b14ea71fef5ccc93a3bd2de5f892be3194 ]
    
    The s390 CPU measurement facility sampling mode supports basic entries
    and diagnostic entries. Each entry has a valid bit to indicate the
    status of the entry as valid or invalid.
    
    This bit is bit 31 in the diagnostic entry, but the bit mask definition
    refers to bit 30.
    
    Fix this by making the reserved field one bit larger.
    
    Fixes: 7e75fc3ff4cf ("s390/cpum_sf: Add raw data sampling to support the diagnostic-sampling function")
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 157674ac443eff2f4d93d025c7d82e52170b5501
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Tue May 8 10:18:39 2018 +0200

    s390/cpum_sf: Add data entry sizes to sampling trailer entry
    
    [ Upstream commit 77715b7ddb446bd39a06f3376e85f4bb95b29bb8 ]
    
    The CPU Measurement sampling facility creates a trailer entry for each
    Sample-Data-Block of stored samples. The trailer entry contains the sizes
    (in bytes) of the stored sampling types:
     - basic-sampling data entry size
     - diagnostic-sampling data entry size
    Both sizes are 2 bytes long.
    
    This patch changes the trailer entry definition to reflect this.
    
    Fixes: fcc77f507333 ("s390/cpum_sf: Atomically reset trailer entry fields of sample-data-blocks")
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4139a621020b96e805115f1d0c32d1ba3d142e67
Author: Sean Lanigan <sean@lano.id.au>
Date:   Fri May 4 16:48:23 2018 +1000

    brcmfmac: Add support for bcm43364 wireless chipset
    
    [ Upstream commit 9c4a121e82634aa000a702c98cd6f05b27d6e186 ]
    
    Add support for the BCM43364 chipset via an SDIO interface, as used in
    e.g. the Murata 1FX module.
    
    The BCM43364 uses the same firmware as the BCM43430 (which is already
    included), the only difference is the omission of Bluetooth.
    
    However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS
    of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't
    load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place
    triggers the brcmfmac driver to load, and then correctly use the
    firmware file 'brcmfmac43430-sdio.bin'.
    
    Signed-off-by: Sean Lanigan <sean@lano.id.au>
    Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e70e69a8dcda82aba0eba04323555404724691fe
Author: Jane Wan <Jane.Wan@nokia.com>
Date:   Tue May 8 14:19:53 2018 -0700

    mtd: rawnand: fsl_ifc: fix FSL NAND driver to read all ONFI parameter pages
    
    [ Upstream commit a75bbe71a27875fdc61cde1af6d799037cef6bed ]
    
    Per ONFI specification (Rev. 4.0), if the CRC of the first parameter page
    read is not valid, the host should read redundant parameter page copies.
    Fix FSL NAND driver to read the two redundant copies which are mandatory
    in the specification.
    
    Signed-off-by: Jane Wan <Jane.Wan@nokia.com>
    Signed-off-by: Boris Brezillon <boris.brezillon@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 523a9ce7d2c807066e4c99fc19b30e36b02c17f2
Author: Brad Love <brad@nextdimension.cc>
Date:   Fri May 4 17:53:35 2018 -0400

    media: saa7164: Fix driver name in debug output
    
    [ Upstream commit 0cc4655cb57af0b7e105d075c4f83f8046efafe7 ]
    
    This issue was reported by a user who downloaded a corrupt saa7164
    firmware, then went looking for a valid xc5000 firmware to fix the
    error displayed...but the device in question has no xc5000, thus after
    much effort, the wild goose chase eventually led to a support call.
    
    The xc5000 has nothing to do with saa7164 (as far as I can tell),
    so replace the string with saa7164 as well as give a meaningful
    hint on the firmware mismatch.
    
    Signed-off-by: Brad Love <brad@nextdimension.cc>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f638764e9baa63a652db22e68a426f76ed37c1d1
Author: Sami Tolvanen <samitolvanen@google.com>
Date:   Mon May 7 14:09:46 2018 -0400

    media: media-device: fix ioctl function types
    
    [ Upstream commit daa36370b62428cca6d48d1b2530a8419f631c8c ]
    
    This change fixes function types for media device ioctls to avoid
    indirect call mismatches with Control-Flow Integrity checking.
    
    Signed-off-by: Sami Tolvanen <samitolvanen@google.com>
    Acked-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cbc0c24c9c9f51c5b4d429bbd6230a8660628462
Author: Damien Le Moal <damien.lemoal@wdc.com>
Date:   Wed May 9 09:28:12 2018 +0900

    libata: Fix command retry decision
    
    [ Upstream commit 804689ad2d9b66d0d3920b48cf05881049d44589 ]
    
    For failed commands with valid sense data (e.g. NCQ commands),
    scsi_check_sense() is used in ata_analyze_tf() to determine if the
    command can be retried. In such case, rely on this decision and ignore
    the command error mask based decision done in ata_worth_retry().
    
    This fixes useless retries of commands such as unaligned writes on zoned
    disks (TYPE_ZAC).
    
    Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3be42dc93677e7d6807a6521569b4cea772b140
Author: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Date:   Tue Jul 12 07:21:46 2016 -0400

    media: rcar_jpu: Add missing clk_disable_unprepare() on error in jpu_open()
    
    [ Upstream commit 43d0d3c52787df0221d1c52494daabd824fe84f1 ]
    
    Add the missing clk_disable_unprepare() before return from
    jpu_open() in the software reset error handling case.
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Acked-by: Mikhail Ulyanov <mikhail.ulyanov@cogentembedded.com>
    Reviewed-by: Kieran Bingham <kieran.bingham+renesas@ideasonboard.com>
    Signed-off-by: Hans Verkuil <hansverk@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4fccb92b53a6474fce276882b928dea71c7658e5
Author: Marc Zyngier <marc.zyngier@arm.com>
Date:   Tue May 8 13:14:33 2018 +0100

    dma-iommu: Fix compilation when !CONFIG_IOMMU_DMA
    
    [ Upstream commit 8a22a3e1e768c309b718f99bd86f9f25a453e0dc ]
    
    Inclusion of include/dma-iommu.h when CONFIG_IOMMU_DMA is not selected
    results in the following splat:
    
    In file included from drivers/irqchip/irq-gic-v3-mbi.c:20:0:
    ./include/linux/dma-iommu.h:95:69: error: unknown type name ‘dma_addr_t’
     static inline int iommu_get_msi_cookie(struct iommu_domain *domain, dma_addr_t base)
                                                                         ^~~~~~~~~~
    ./include/linux/dma-iommu.h:108:74: warning: ‘struct list_head’ declared inside parameter list will not be visible outside of this definition or declaration
     static inline void iommu_dma_get_resv_regions(struct device *dev, struct list_head *list)
                                                                              ^~~~~~~~~
    scripts/Makefile.build:312: recipe for target 'drivers/irqchip/irq-gic-v3-mbi.o' failed
    
    Fix it by including linux/types.h.
    
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Rob Herring <robh@kernel.org>
    Cc: Jason Cooper <jason@lakedaemon.net>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
    Cc: Miquel Raynal <miquel.raynal@bootlin.com>
    Link: https://lkml.kernel.org/r/20180508121438.11301-5-marc.zyngier@arm.com
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d83904cb2eb2c4d937eaf15032214b0578f25099
Author: DaeRyong Jeong <threeearcat@gmail.com>
Date:   Tue May 1 00:27:04 2018 +0900

    tty: Fix data race in tty_insert_flip_string_fixed_flag
    
    [ Upstream commit b6da31b2c07c46f2dcad1d86caa835227a16d9ff ]
    
    Unlike normal serials, in pty layer, there is no guarantee that multiple
    threads don't insert input characters at the same time. If it is happened,
    tty_insert_flip_string_fixed_flag can be executed concurrently. This can
    lead slab out-of-bounds write in tty_insert_flip_string_fixed_flag.
    
    Call sequences are as follows.
    CPU0                                    CPU1
    n_tty_ioctl_helper                      n_tty_ioctl_helper
    __start_tty                             tty_send_xchar
    tty_wakeup                              pty_write
    n_hdlc_tty_wakeup                       tty_insert_flip_string
    n_hdlc_send_frames                      tty_insert_flip_string_fixed_flag
    pty_write
    tty_insert_flip_string
    tty_insert_flip_string_fixed_flag
    
    To fix the race, acquire port->lock in pty_write() before it inserts input
    characters to tty buffer. It prevents multiple threads from inserting
    input characters concurrently.
    
    The crash log is as follows:
    BUG: KASAN: slab-out-of-bounds in tty_insert_flip_string_fixed_flag+0xb5/
    0x130 drivers/tty/tty_buffer.c:316 at addr ffff880114fcc121
    Write of size 1792 by task syz-executor0/30017
    CPU: 1 PID: 30017 Comm: syz-executor0 Not tainted 4.8.0 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
    BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
     0000000000000000 ffff88011638f888 ffffffff81694cc3 ffff88007d802140
     ffff880114fcb300 ffff880114fcc300 ffff880114fcb300 ffff88011638f8b0
     ffffffff8130075c ffff88011638f940 ffff88007d802140 ffff880194fcc121
    Call Trace:
     __dump_stack lib/dump_stack.c:15 [inline]
     dump_stack+0xb3/0x110 lib/dump_stack.c:51
     kasan_object_err+0x1c/0x70 mm/kasan/report.c:156
     print_address_description mm/kasan/report.c:194 [inline]
     kasan_report_error+0x1f7/0x4e0 mm/kasan/report.c:283
     kasan_report+0x36/0x40 mm/kasan/report.c:303
     check_memory_region_inline mm/kasan/kasan.c:292 [inline]
     check_memory_region+0x13e/0x1a0 mm/kasan/kasan.c:299
     memcpy+0x37/0x50 mm/kasan/kasan.c:335
     tty_insert_flip_string_fixed_flag+0xb5/0x130 drivers/tty/tty_buffer.c:316
     tty_insert_flip_string include/linux/tty_flip.h:35 [inline]
     pty_write+0x7f/0xc0 drivers/tty/pty.c:115
     n_hdlc_send_frames+0x1d4/0x3b0 drivers/tty/n_hdlc.c:419
     n_hdlc_tty_wakeup+0x73/0xa0 drivers/tty/n_hdlc.c:496
     tty_wakeup+0x92/0xb0 drivers/tty/tty_io.c:601
     __start_tty.part.26+0x66/0x70 drivers/tty/tty_io.c:1018
     __start_tty+0x34/0x40 drivers/tty/tty_io.c:1013
     n_tty_ioctl_helper+0x146/0x1e0 drivers/tty/tty_ioctl.c:1138
     n_hdlc_tty_ioctl+0xb3/0x2b0 drivers/tty/n_hdlc.c:794
     tty_ioctl+0xa85/0x16d0 drivers/tty/tty_io.c:2992
     vfs_ioctl fs/ioctl.c:43 [inline]
     do_vfs_ioctl+0x13e/0xba0 fs/ioctl.c:679
     SYSC_ioctl fs/ioctl.c:694 [inline]
     SyS_ioctl+0x8f/0xc0 fs/ioctl.c:685
     entry_SYSCALL_64_fastpath+0x1f/0xbd
    
    Signed-off-by: DaeRyong Jeong <threeearcat@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 30ac755c76c33b43b17f7cff8f015b6f4176d522
Author: Mathieu Malaterre <malat@debian.org>
Date:   Fri May 11 12:07:03 2018 +0100

    nvmem: properly handle returned value nvmem_reg_read
    
    [ Upstream commit 50808bfcc14b854775a9f1d0abe3dac2babcf5c3 ]
    
    Function nvmem_reg_read can return a non zero value indicating an error.
    This returned value must be read and error propagated to
    nvmem_cell_prepare_write_buffer. Silence the following gcc warning (W=1):
    
    drivers/nvmem/core.c:1093:9: warning: variable 'rc' set but
     not used [-Wunused-but-set-variable]
    
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 202a0cf0c0e70deeafec09c5a1bfd404c2acf6ba
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon May 7 15:40:04 2018 +0200

    ARM: dts: sh73a0: Add missing interrupt-affinity to PMU node
    
    [ Upstream commit 57a66497e1b7486609250a482f05935eae5035e9 ]
    
    The PMU node references two interrupts, but lacks the interrupt-affinity
    property, which is required in that case:
    
        hw perfevents: no interrupt-affinity property for /pmu, guessing.
    
    Add the missing property to fix this.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1af8796a8bcc014fab938a20a889846afc6b7501
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon May 7 15:40:05 2018 +0200

    ARM: dts: emev2: Add missing interrupt-affinity to PMU node
    
    [ Upstream commit 7207b94754b6f503b278b5b200faaf662ffa1da8 ]
    
    The PMU node references two interrupts, but lacks the interrupt-affinity
    property, which is required in that case:
    
        hw perfevents: no interrupt-affinity property for /pmu, guessing.
    
    Add the missing property to fix this.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Simon Horman <horms+renesas@verge.net.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b0d0e7162cb9dcbc6291e1627d68f27768005924
Author: Thor Thayer <thor.thayer@linux.intel.com>
Date:   Mon May 14 12:04:01 2018 -0500

    EDAC, altera: Fix ARM64 build warning
    
    [ Upstream commit 9ef20753e044f7468c4113e5aecd785419b0b3cc ]
    
    The kbuild test robot reported the following warning:
    
      drivers/edac/altera_edac.c: In function 'ocram_free_mem':
      drivers/edac/altera_edac.c:1410:42: warning: cast from pointer to integer
            of different size [-Wpointer-to-int-cast]
        gen_pool_free((struct gen_pool *)other, (u32)p, size);
                                                 ^
    
    After adding support for ARM64 architectures, the unsigned long
    parameter is 64 bits and causes a build warning on 64-bit configs. Fix
    by casting to the correct size (unsigned long) instead of u32.
    
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Thor Thayer <thor.thayer@linux.intel.com>
    Cc: linux-arm-kernel@lists.infradead.org
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Fixes: c3eea1942a16 ("EDAC, altera: Add Altera L2 cache and OCRAM support")
    Link: http://lkml.kernel.org/r/1526317441-4996-1-git-send-email-thor.thayer@linux.intel.com
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3d06d3ca402c169e03811833a31bfe056f267c99
Author: Dmitry Torokhov <dtor@chromium.org>
Date:   Wed May 9 12:12:15 2018 -0700

    HID: i2c-hid: check if device is there before really probing
    
    [ Upstream commit b3a81b6c4fc6730ac49e20d789a93c0faabafc98 ]
    
    On many Chromebooks touch devices are multi-sourced; the components are
    electrically compatible and one can be freely swapped for another without
    changing the OS image or firmware.
    
    To avoid bunch of scary messages when device is not actually present in the
    system let's try testing basic communication with it and if there is no
    response terminate probe early with -ENXIO.
    
    Signed-off-by: Dmitry Torokhov <dtor@chromium.org>
    Reviewed-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e7de1c6bbe51898186d478176aa8f69586a9e562
Author: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
Date:   Thu May 10 23:59:19 2018 +0200

    powerpc/embedded6xx/hlwd-pic: Prevent interrupts from being handled by Starlet
    
    [ Upstream commit 9dcb3df4281876731e4e8bff7940514d72375154 ]
    
    The interrupt controller inside the Wii's Hollywood chip is connected to
    two masters, the "Broadway" PowerPC and the "Starlet" ARM926, each with
    their own interrupt status and mask registers.
    
    When booting the Wii with mini[1], interrupts from the SD card
    controller (IRQ 7) are handled by the ARM, because mini provides SD
    access over IPC. Linux however can't currently use or disable this IPC
    service, so both sides try to handle IRQ 7 without coordination.
    
    Let's instead make sure that all interrupts that are unmasked on the PPC
    side are masked on the ARM side; this will also make sure that Linux can
    properly talk to the SD card controller (and potentially other devices).
    
    If access to a device through IPC is desired in the future, interrupts
    from that device should not be handled by Linux directly.
    
    [1]: https://github.com/lewurm/mini
    
    Signed-off-by: Jonathan Neuschäfer <j.neuschaefer@gmx.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cab5ec8da3fbd8c4f3528e014e1f9455ece7a052
Author: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Date:   Tue Apr 24 15:15:13 2018 +0200

    drm/radeon: fix mode_valid's return type
    
    [ Upstream commit 7a47f20eb1fb8fa8d7a8fe3a4fd8c721f04c2174 ]
    
    The method struct drm_connector_helper_funcs::mode_valid is defined
    as returning an 'enum drm_mode_status' but the driver implementation
    for this method uses an 'int' for it.
    
    Fix this by using 'enum drm_mode_status' in the driver too.
    
    Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c57798822f3b5164a69fee89894c5ddd2c371235
Author: Terry Junge <terry.junge@plantronics.com>
Date:   Mon Apr 30 13:32:46 2018 -0700

    HID: hid-plantronics: Re-resend Update to map button for PTT products
    
    [ Upstream commit 37e376df5f4993677c33968a0c19b0c5acbf1108 ]
    
    Add a mapping for Push-To-Talk joystick trigger button.
    
    Tested on ChromeBox/ChromeBook with various Plantronics devices.
    
    Signed-off-by: Terry Junge <terry.junge@plantronics.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fba1048559d3fb234fee3568c4ab6f2261620307
Author: Will Deacon <will.deacon@arm.com>
Date:   Mon Apr 30 13:56:32 2018 +0100

    arm64: cmpwait: Clear event register before arming exclusive monitor
    
    [ Upstream commit 1cfc63b5ae60fe7e01773f38132f98d8b13a99a0 ]
    
    When waiting for a cacheline to change state in cmpwait, we may immediately
    wake-up the first time around the outer loop if the event register was
    already set (for example, because of the event stream).
    
    Avoid these spurious wakeups by explicitly clearing the event register
    before loading the cacheline and setting the exclusive monitor.
    
    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@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 03df65a0bc5e15e7c4cc7463cccfd86bc3c01a66
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed May 16 20:07:18 2018 +0200

    ALSA: usb-audio: Apply rate limit to warning messages in URB complete callback
    
    [ Upstream commit 377a879d9832f4ba69bd6a1fc996bb4181b1e504 ]
    
    retire_capture_urb() may print warning messages when the given URB
    doesn't align, and this may flood the system log easily.
    Put the rate limit to the message for avoiding it.
    
    Bugzilla: https://bugzilla.suse.com/show_bug.cgi?id=1093485
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1fa620150c9b1b09f56def71aab060718c1cad64
Author: Grygorii Strashko <grygorii.strashko@ti.com>
Date:   Tue May 15 18:37:25 2018 -0500

    net: ethernet: ti: cpsw-phy-sel: check bus_find_device() ret value
    
    [ Upstream commit c6213eb1aee308e67377fd1890d84f7284caf531 ]
    
    This fixes klockworks warnings: Pointer 'dev' returned from call to
    function 'bus_find_device' at line 179 may be NULL and will be dereferenced
    at line 181.
    
        cpsw-phy-sel.c:179: 'dev' is assigned the return value from function 'bus_find_device'.
        bus.c:342: 'bus_find_device' explicitly returns a NULL value.
        cpsw-phy-sel.c:181: 'dev' is dereferenced by passing argument 1 to function 'dev_get_drvdata'.
        device.h:1024: 'dev' is passed to function 'dev_get_drvdata'.
        device.h:1026: 'dev' is explicitly dereferenced.
    
    Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
    [nsekhar@ti.com: add an error message, fix return path]
    Signed-off-by: Sekhar Nori <nsekhar@ti.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77b6f72cefc82861216cd8e85c6c86d39107da32
Author: Colin Ian King <colin.king@canonical.com>
Date:   Wed Apr 25 11:04:21 2018 -0400

    media: smiapp: fix timeout checking in smiapp_read_nvm
    
    [ Upstream commit 7a2148dfda8001c983f0effd9afd8a7fa58e99c4 ]
    
    The current code decrements the timeout counter i and the end of
    each loop i is incremented, so the check for timeout will always
    be false and hence the timeout mechanism is just a dead code path.
    Potentially, if the RD_READY bit is not set, we could end up in
    an infinite loop.
    
    Fix this so the timeout starts from 1000 and decrements to zero,
    if at the end of the loop i is zero we have a timeout condition.
    
    Detected by CoverityScan, CID#1324008 ("Logically dead code")
    
    Fixes: ccfc97bdb5ae ("[media] smiapp: Add driver")
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d02fc16faaa1f29500fdda143ef99855d6b9518
Author: Emil Tantilov <emil.s.tantilov@intel.com>
Date:   Mon May 14 11:16:16 2018 -0700

    ixgbevf: fix MAC address changes through ixgbevf_set_mac()
    
    [ Upstream commit 6e7d0ba1e59b1a306761a731e67634c0f2efea2a ]
    
    Set hw->mac.perm_addr in ixgbevf_set_mac() in order to avoid losing the
    custom MAC on reset. This can happen in the following case:
    
    >ip link set $vf address $mac
    >ethtool -r $vf
    
    Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
    Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e51f4fcfad77f932d104304a2e1f0473752f9a85
Author: Yufen Yu <yuyufen@huawei.com>
Date:   Fri May 4 18:08:10 2018 +0800

    md: fix NULL dereference of mddev->pers in remove_and_add_spares()
    
    [ Upstream commit c42a0e2675721e1444f56e6132a07b7b1ec169ac ]
    
    We met NULL pointer BUG as follow:
    
    [  151.760358] BUG: unable to handle kernel NULL pointer dereference at 0000000000000060
    [  151.761340] PGD 80000001011eb067 P4D 80000001011eb067 PUD 1011ea067 PMD 0
    [  151.762039] Oops: 0000 [#1] SMP PTI
    [  151.762406] Modules linked in:
    [  151.762723] CPU: 2 PID: 3561 Comm: mdadm-test Kdump: loaded Not tainted 4.17.0-rc1+ #238
    [  151.763542] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1.fc26 04/01/2014
    [  151.764432] RIP: 0010:remove_and_add_spares.part.56+0x13c/0x3a0
    [  151.765061] RSP: 0018:ffffc90001d7fcd8 EFLAGS: 00010246
    [  151.765590] RAX: 0000000000000000 RBX: ffff88013601d600 RCX: 0000000000000000
    [  151.766306] RDX: 0000000000000000 RSI: ffff88013601d600 RDI: ffff880136187000
    [  151.767014] RBP: ffff880136187018 R08: 0000000000000003 R09: 0000000000000051
    [  151.767728] R10: ffffc90001d7fed8 R11: 0000000000000000 R12: ffff88013601d600
    [  151.768447] R13: ffff8801298b1300 R14: ffff880136187000 R15: 0000000000000000
    [  151.769160] FS:  00007f2624276700(0000) GS:ffff88013ae80000(0000) knlGS:0000000000000000
    [  151.769971] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  151.770554] CR2: 0000000000000060 CR3: 0000000111aac000 CR4: 00000000000006e0
    [  151.771272] Call Trace:
    [  151.771542]  md_ioctl+0x1df2/0x1e10
    [  151.771906]  ? __switch_to+0x129/0x440
    [  151.772295]  ? __schedule+0x244/0x850
    [  151.772672]  blkdev_ioctl+0x4bd/0x970
    [  151.773048]  block_ioctl+0x39/0x40
    [  151.773402]  do_vfs_ioctl+0xa4/0x610
    [  151.773770]  ? dput.part.23+0x87/0x100
    [  151.774151]  ksys_ioctl+0x70/0x80
    [  151.774493]  __x64_sys_ioctl+0x16/0x20
    [  151.774877]  do_syscall_64+0x5b/0x180
    [  151.775258]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    For raid6, when two disk of the array are offline, two spare disks can
    be added into the array. Before spare disks recovery completing,
    system reboot and mdadm thinks it is ok to restart the degraded
    array by md_ioctl(). Since disks in raid6 is not only_parity(),
    raid5_run() will abort, when there is no PPL feature or not setting
    'start_dirty_degraded' parameter. Therefore, mddev->pers is NULL.
    
    But, mddev->raid_disks has been set and it will not be cleared when
    raid5_run abort. md_ioctl() can execute cmd 'HOT_REMOVE_DISK' to
    remove a disk by mdadm, which will cause NULL pointer dereference
    in remove_and_add_spares() finally.
    
    Signed-off-by: Yufen Yu <yuyufen@huawei.com>
    Signed-off-by: Shaohua Li <shli@fb.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 211c2bc42a1cd29d6e01a785dec6dc8dc85e72c5
Author: Anson Huang <Anson.Huang@nxp.com>
Date:   Thu May 17 15:27:22 2018 +0800

    regulator: pfuze100: add .is_enable() for pfuze100_swb_regulator_ops
    
    [ Upstream commit 0b01fd3d40fe6402e5fa3b491ef23109feb1aaa5 ]
    
    If is_enabled() is not defined, regulator core will assume
    this regulator is already enabled, then it can NOT be really
    enabled after disabled.
    
    Based on Li Jun's patch from the NXP kernel tree.
    
    Signed-off-by: Anson Huang <Anson.Huang@nxp.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 995cbcab6d3e1740169a251c699a9e55c9dc5e8e
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu May 17 20:02:23 2018 +0200

    ALSA: emu10k1: Rate-limit error messages about page errors
    
    [ Upstream commit 11d42c81036324697d367600bfc16f6dd37636fd ]
    
    The error messages at sanity checks of memory pages tend to repeat too
    many times once when it hits, and without the rate limit, it may flood
    and become unreadable.  Replace such messages with the *_ratelimited()
    variant.
    
    Bugzilla: http://bugzilla.opensuse.org/show_bug.cgi?id=1093027
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 62413bacafa319f0901185c6e11f69d39709a541
Author: Maya Erez <merez@codeaurora.org>
Date:   Thu May 3 16:37:16 2018 +0530

    scsi: ufs: fix exception event handling
    
    [ Upstream commit 2e3611e9546c2ed4def152a51dfd34e8dddae7a5 ]
    
    The device can set the exception event bit in one of the response UPIU,
    for example to notify the need for urgent BKOPs operation.  In such a
    case, the host driver calls ufshcd_exception_event_handler to handle
    this notification.  When trying to check the exception event status (for
    finding the cause for the exception event), the device may be busy with
    additional SCSI commands handling and may not respond within the 100ms
    timeout.
    
    To prevent that, we need to block SCSI commands during handling of
    exception events and allow retransmissions of the query requests, in
    case of timeout.
    
    Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
    Signed-off-by: Maya Erez <merez@codeaurora.org>
    Signed-off-by: Can Guo <cang@codeaurora.org>
    Signed-off-by: Asutosh Das <asutoshd@codeaurora.org>
    Reviewed-by: Subhash Jadavani <subhashj@codeaurora.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3ce14632e78a117e47c13f678a597a93bd7f2b78
Author: Eric Biggers <ebiggers@google.com>
Date:   Fri Apr 20 16:30:02 2018 -0700

    fscrypt: use unbound workqueue for decryption
    
    [ Upstream commit 36dd26e0c8d42699eeba87431246c07c28075bae ]
    
    Improve fscrypt read performance by switching the decryption workqueue
    from bound to unbound.  With the bound workqueue, when multiple bios
    completed on the same CPU, they were decrypted on that same CPU.  But
    with the unbound queue, they are now decrypted in parallel on any CPU.
    
    Although fscrypt read performance can be tough to measure due to the
    many sources of variation, this change is most beneficial when
    decryption is slow, e.g. on CPUs without AES instructions.  For example,
    I timed tarring up encrypted directories on f2fs.  On x86 with AES-NI
    instructions disabled, the unbound workqueue improved performance by
    about 25-35%, using 1 to NUM_CPUs jobs with 4 or 8 CPUs available.  But
    with AES-NI enabled, performance was unchanged to within ~2%.
    
    I also did the same test on a quad-core ARM CPU using xts-speck128-neon
    encryption.  There performance was usually about 10% better with the
    unbound workqueue, bringing it closer to the unencrypted speed.
    
    The unbound workqueue may be worse in some cases due to worse locality,
    but I think it's still the better default.  dm-crypt uses an unbound
    workqueue by default too, so this change makes fscrypt match.
    
    Signed-off-by: Eric Biggers <ebiggers@google.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6d90b8c608a02d63623c945e3127893e3884b14
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Mon May 21 18:19:49 2018 +0100

    drivers/perf: arm-ccn: don't log to dmesg in event_init
    
    [ Upstream commit 1898eb61fbc9703efee886d3abec27a388cf28c3 ]
    
    The ARM CCN PMU driver uses dev_warn() to complain about parameters in
    the user-provided perf_event_attr. This means that under normal
    operation (e.g. a single invocation of the perf tool), a number of
    messages warnings may be logged to dmesg.
    
    Tools may issue multiple syscalls to probe for feature support, and
    multiple applications (from multiple users) can attempt to open events
    simultaneously, so this is not very helpful, even if a user happens to
    have access to dmesg. Worse, this can push important information out of
    the dmesg ring buffer, and can significantly slow down syscall fuzzers,
    vastly increasing the time it takes to find critical bugs.
    
    Demote the dev_warn() instances to dev_dbg(), as is the case for all
    other PMU drivers under drivers/perf/. Users who wish to debug PMU event
    initialisation can enable dynamic debug to receive these messages.
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Pawel Moll <pawel.moll@arm.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 81be5529c8e62b5f251e2a458dc8212b98640b8d
Author: Mimi Zohar <zohar@linux.vnet.ibm.com>
Date:   Fri Apr 27 14:31:40 2018 -0400

    ima: based on policy verify firmware signatures (pre-allocated buffer)
    
    [ Upstream commit fd90bc559bfba743ae8de87ff23b92a5e4668062 ]
    
    Don't differentiate, for now, between kernel_read_file_id READING_FIRMWARE
    and READING_FIRMWARE_PREALLOC_BUFFER enumerations.
    
    Fixes: a098ecd firmware: support loading into a pre-allocated buffer (since 4.8)
    Signed-off-by: Mimi Zohar <zohar@linux.vnet.ibm.com>
    Cc: Luis R. Rodriguez <mcgrof@suse.com>
    Cc: David Howells <dhowells@redhat.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Serge E. Hallyn <serge@hallyn.com>
    Cc: Stephen Boyd <stephen.boyd@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db6872750dfd10bc952e96e984b5654d37de9657
Author: Xinming Hu <huxm@marvell.com>
Date:   Fri May 18 15:38:54 2018 +0800

    mwifiex: correct histogram data with appropriate index
    
    [ Upstream commit 30bfce0b63fa68c14ae1613eb9d259fa18644074 ]
    
    Correct snr/nr/rssi data index to avoid possible buffer underflow.
    
    Signed-off-by: Xinming Hu <huxm@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f14629f34746cf4442f2598fc108f4b8b87a8cec
Author: Michal Vokáč <vokac.m@gmail.com>
Date:   Wed May 23 08:20:19 2018 +0200

    net: dsa: qca8k: Add support for QCA8334 switch
    
    [ Upstream commit 64cf81675a1f64c1b311e4611dd3b6a961607612 ]
    
    Add support for the four-port variant of the Qualcomm QCA833x switch.
    
    Signed-off-by: Michal Vokáč <michal.vokac@ysoft.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 15da89437656dc3b8ee3601fc01a567bb4bd0d33
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Wed May 23 17:19:22 2018 -0500

    PCI: pciehp: Request control of native hotplug only if supported
    
    [ Upstream commit 408fec36a1ab3d14273c2116b449ef1e9be3cb8b ]
    
    Currently we request control of native PCIe hotplug unconditionally.
    Native PCIe hotplug events are handled by the pciehp driver, and if it is
    not enabled those events will be lost.
    
    Request control of native PCIe hotplug only if the pciehp driver is
    enabled, so we will actually handle native PCIe hotplug events.
    
    Suggested-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0416be409e50dae1a58cf5b5d9a0d799e1e9b790
Author: Sandipan Das <sandipan@linux.vnet.ibm.com>
Date:   Thu May 24 12:26:46 2018 +0530

    bpf: powerpc64: pad function address loads with NOPs
    
    [ Upstream commit 4ea69b2fd623dee2bbc77d3b6b7d8c0924e2026a ]
    
    For multi-function programs, loading the address of a callee
    function to a register requires emitting instructions whose
    count varies from one to five depending on the nature of the
    address.
    
    Since we come to know of the callee's address only before the
    extra pass, the number of instructions required to load this
    address may vary from what was previously generated. This can
    make the JITed image grow or shrink.
    
    To avoid this, we should generate a constant five-instruction
    when loading function addresses by padding the optimized load
    sequence with NOPs.
    
    Signed-off-by: Sandipan Das <sandipan@linux.vnet.ibm.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 23d25f9bdaefa276226f1a62fef8dd47f64c09e4
Author: Julia Lawall <Julia.Lawall@lip6.fr>
Date:   Wed May 23 21:07:12 2018 +0200

    pinctrl: at91-pio4: add missing of_node_put
    
    [ Upstream commit 21816364715f508c10da1e087e352bc1e326614f ]
    
    The device node iterators perform an of_node_get on each iteration, so a
    jump out of the loop requires an of_node_put.
    
    The semantic patch that fixes this problem is as follows
    (http://coccinelle.lip6.fr):
    
    // <smpl>
    @@
    expression root,e;
    local idexpression child;
    iterator name for_each_child_of_node;
    @@
    
     for_each_child_of_node(root, child) {
       ... when != of_node_put(child)
           when != e = child
    +  of_node_put(child);
    ?  break;
       ...
    }
    ... when != child
    // </smpl>
    
    Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
    Acked-by: Ludovic Desroches <ludovic.desroches@microchip.com>
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 38d96f7888f57f781e5ae80dde22ab97c1802e36
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Thu May 24 11:02:06 2018 +0000

    powerpc/8xx: fix invalid register expression in head_8xx.S
    
    [ Upstream commit e4ccb1dae6bdef228d729c076c38161ef6e7ca34 ]
    
    New binutils generate the following warning
    
      AS      arch/powerpc/kernel/head_8xx.o
    arch/powerpc/kernel/head_8xx.S: Assembler messages:
    arch/powerpc/kernel/head_8xx.S:916: Warning: invalid register expression
    
    This patch fixes it.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e0da21e7e7f18b5a723b7771f709a3e7796b9ca0
Author: Mathieu Malaterre <malat@debian.org>
Date:   Wed Apr 4 22:07:46 2018 +0200

    powerpc/powermac: Mark variable x as unused
    
    [ Upstream commit 5a4b475cf8511da721f20ba432c244061db7139f ]
    
    Since the value of x is never intended to be read, declare it with gcc
    attribute as unused. Fix warning treated as error with W=1:
    
      arch/powerpc/platforms/powermac/bootx_init.c:471:21: error: variable ‘x’ set but not used [-Werror=unused-but-set-variable]
    
    Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cd9fd8406a6c8f8dc8f2883caefb5dad36d28fc
Author: Mathieu Malaterre <malat@debian.org>
Date:   Wed Apr 4 22:13:05 2018 +0200

    powerpc/powermac: Add missing prototype for note_bootable_part()
    
    [ Upstream commit f72cf3f1d49f2c35d6cb682af2e8c93550f264e4 ]
    
    Add a missing prototype for function `note_bootable_part` to silence a
    warning treated as error with W=1:
    
      arch/powerpc/platforms/powermac/setup.c:361:12: error: no previous prototype for ‘note_bootable_part’ [-Werror=missing-prototypes]
    
    Suggested-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f851d8ac65cc3378983cc65dfab4b0384ec70ebb
Author: Mathieu Malaterre <malat@debian.org>
Date:   Thu Mar 22 21:19:56 2018 +0100

    powerpc/chrp/time: Make some functions static, add missing header include
    
    [ Upstream commit b87a358b4a1421abd544c0b554b1b7159b2b36c0 ]
    
    Add a missing include <platforms/chrp/chrp.h>.
    
    These functions can all be static, make it so. Fix warnings treated as
    errors with W=1:
    
      arch/powerpc/platforms/chrp/time.c:41:13: error: no previous prototype for ‘chrp_time_init’ [-Werror=missing-prototypes]
      arch/powerpc/platforms/chrp/time.c:66:5: error: no previous prototype for ‘chrp_cmos_clock_read’ [-Werror=missing-prototypes]
      arch/powerpc/platforms/chrp/time.c:74:6: error: no previous prototype for ‘chrp_cmos_clock_write’ [-Werror=missing-prototypes]
      arch/powerpc/platforms/chrp/time.c:86:5: error: no previous prototype for ‘chrp_set_rtc_time’ [-Werror=missing-prototypes]
      arch/powerpc/platforms/chrp/time.c:130:6: error: no previous prototype for ‘chrp_get_rtc_time’ [-Werror=missing-prototypes]
    
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ecd04c80fa32f7f111f676ab062bb621367cbf26
Author: Mathieu Malaterre <malat@debian.org>
Date:   Thu Mar 22 21:20:03 2018 +0100

    powerpc/32: Add a missing include header
    
    [ Upstream commit c89ca593220931c150cffda24b4d4ccf82f13fc8 ]
    
    The header file <linux/syscalls.h> was missing from the includes. Fix the
    following warning, treated as error with W=1:
    
      arch/powerpc/kernel/pci_32.c:286:6: error: no previous prototype for ‘sys_pciconfig_iobase’ [-Werror=missing-prototypes]
    
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cf619559ec8232f94e40062231b27f9cb8d876f2
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:09:53 2018 +0300

    ath: Add regulatory mapping for Bahamas
    
    [ Upstream commit 699e2302c286a14afe7b7394151ce6c4e1790cc1 ]
    
    The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
    and to select the correct conformance test limits (CTL) for a country. If
    the country isn't available and it is still programmed in the EEPROM then
    it will cause an error and stop the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this country are:
    
    * 2.4GHz: ETSI
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c7cc26414a3e8e22226ba33b82be904f802260a2
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:09:59 2018 +0300

    ath: Add regulatory mapping for Bermuda
    
    [ Upstream commit 9c790f2d234f65697e3b0948adbfdf36dbe63dd7 ]
    
    The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
    and to select the correct conformance test limits (CTL) for a country. If
    the country isn't available and it is still programmed in the EEPROM then
    it will cause an error and stop the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this country are:
    
    * 2.4GHz: FCC
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d50a24c54ba32b54e75f60ceefddee58d671057
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:10:43 2018 +0300

    ath: Add regulatory mapping for Serbia
    
    [ Upstream commit 2a3169a54bb53717928392a04fb84deb765b51f1 ]
    
    The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
    and to select the correct conformance test limits (CTL) for a country. If
    the country isn't available and it is still programmed in the EEPROM then
    it will cause an error and stop the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this country are:
    
    * 2.4GHz: ETSI
    * 5GHz: ETSI
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9d04d93f4b85a13fd61fd520c706d4a4162866e3
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:10:48 2018 +0300

    ath: Add regulatory mapping for Tanzania
    
    [ Upstream commit 667ddac5745fb9fddfe8f7fd2523070f50bd4442 ]
    
    The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
    and to select the correct conformance test limits (CTL) for a country. If
    the country isn't available and it is still programmed in the EEPROM then
    it will cause an error and stop the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this country are:
    
    * 2.4GHz: ETSI
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 410639a85914c0c6f66d38edf851c556f185ebbb
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:10:54 2018 +0300

    ath: Add regulatory mapping for Uganda
    
    [ Upstream commit 1ea3986ad2bc72081c69f3fbc1e5e0eeb3c44f17 ]
    
    The country code is used by the ath to detect the ISO 3166-1 alpha-2 name
    and to select the correct conformance test limits (CTL) for a country. If
    the country isn't available and it is still programmed in the EEPROM then
    it will cause an error and stop the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this country are:
    
    * 2.4GHz: ETSI
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3cfd18697dc47c50d0ea2ac0ae4b5a1dcb615b43
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:11:05 2018 +0300

    ath: Add regulatory mapping for APL2_FCCA
    
    [ Upstream commit 4f183687e3fad3ce0e06e38976cad81bc4541990 ]
    
    The regdomain code is used to select the correct the correct conformance
    test limits (CTL) for a country. If the regdomain code isn't available and
    it is still programmed in the EEPROM then it will cause an error and stop
    the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this regdomain code are:
    
    * 2.4GHz: FCC
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31e1b250c0d828a2b189b48f63425778116676b7
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:11:14 2018 +0300

    ath: Add regulatory mapping for APL13_WORLD
    
    [ Upstream commit 9ba8df0c52b3e6baa436374b429d3d73bd09a320 ]
    
    The regdomain code is used to select the correct the correct conformance
    test limits (CTL) for a country. If the regdomain code isn't available and
    it is still programmed in the EEPROM then it will cause an error and stop
    the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this regdomain code are:
    
    * 2.4GHz: ETSI
    * 5GHz: ETSI
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e6cd75968d52b19c67d1410ce301f53ed258ae38
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:11:18 2018 +0300

    ath: Add regulatory mapping for ETSI8_WORLD
    
    [ Upstream commit 45faf6e096da8bb80e1ddf8c08a26a9601d9469e ]
    
    The regdomain code is used to select the correct the correct conformance
    test limits (CTL) for a country. If the regdomain code isn't available and
    it is still programmed in the EEPROM then it will cause an error and stop
    the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this regdomain code are:
    
    * 2.4GHz: ETSI
    * 5GHz: ETSI
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d4de3ff8731ec267b7a6401a3bc190c3f7bb82d
Author: Sven Eckelmann <sven.eckelmann@openmesh.com>
Date:   Wed May 23 11:11:30 2018 +0300

    ath: Add regulatory mapping for FCC3_ETSIC
    
    [ Upstream commit 01fb2994a98dc72c8818c274f7b5983d5dd885c7 ]
    
    The regdomain code is used to select the correct the correct conformance
    test limits (CTL) for a country. If the regdomain code isn't available and
    it is still programmed in the EEPROM then it will cause an error and stop
    the initialization with:
    
      Invalid EEPROM contents
    
    The current CTL mappings for this regdomain code are:
    
    * 2.4GHz: ETSI
    * 5GHz: FCC
    
    Signed-off-by: Sven Eckelmann <sven.eckelmann@openmesh.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit db16571fb75ba384a21f9e4c370893216224e74c
Author: Christoph Hellwig <hch@lst.de>
Date:   Fri May 18 18:56:24 2018 +0200

    PCI: Prevent sysfs disable of device while driver is attached
    
    [ Upstream commit 6f5cdfa802733dcb561bf664cc89d203f2fd958f ]
    
    Manipulating the enable_cnt behind the back of the driver will wreak
    complete havoc with the kernel state, so disallow it.
    
    Signed-off-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
    Acked-by: Keith Busch <keith.busch@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7e51effb7a5bc011fe93c7f0c0c67a43f290c5e0
Author: Qu Wenruo <wqu@suse.com>
Date:   Mon May 14 09:38:13 2018 +0800

    btrfs: qgroup: Finish rescan when hit the last leaf of extent tree
    
    [ Upstream commit ff3d27a048d926b3920ccdb75d98788c567cae0d ]
    
    Under the following case, qgroup rescan can double account cowed tree
    blocks:
    
    In this case, extent tree only has one tree block.
    
    -
    | transid=5 last committed=4
    | btrfs_qgroup_rescan_worker()
    | |- btrfs_start_transaction()
    | |  transid = 5
    | |- qgroup_rescan_leaf()
    |    |- btrfs_search_slot_for_read() on extent tree
    |       Get the only extent tree block from commit root (transid = 4).
    |       Scan it, set qgroup_rescan_progress to the last
    |       EXTENT/META_ITEM + 1
    |       now qgroup_rescan_progress = A + 1.
    |
    | fs tree get CoWed, new tree block is at A + 16K
    | transid 5 get committed
    -
    | transid=6 last committed=5
    | btrfs_qgroup_rescan_worker()
    | btrfs_qgroup_rescan_worker()
    | |- btrfs_start_transaction()
    | |  transid = 5
    | |- qgroup_rescan_leaf()
    |    |- btrfs_search_slot_for_read() on extent tree
    |       Get the only extent tree block from commit root (transid = 5).
    |       scan it using qgroup_rescan_progress (A + 1).
    |       found new tree block beyong A, and it's fs tree block,
    |       account it to increase qgroup numbers.
    -
    
    In above case, tree block A, and tree block A + 16K get accounted twice,
    while qgroup rescan should stop when it already reach the last leaf,
    other than continue using its qgroup_rescan_progress.
    
    Such case could happen by just looping btrfs/017 and with some
    possibility it can hit such double qgroup accounting problem.
    
    Fix it by checking the path to determine if we should finish qgroup
    rescan, other than relying on next loop to exit.
    
    Reported-by: Nikolay Borisov <nborisov@suse.com>
    Signed-off-by: Qu Wenruo <wqu@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65cb469d02313175840b2038f159264b6b843ab2
Author: David Sterba <dsterba@suse.com>
Date:   Tue Apr 24 14:53:56 2018 +0200

    btrfs: add barriers to btrfs_sync_log before log_commit_wait wakeups
    
    [ Upstream commit 3d3a2e610ea5e7c6d4f9481ecce5d8e2d8317843 ]
    
    Currently the code assumes that there's an implied barrier by the
    sequence of code preceding the wakeup, namely the mutex unlock.
    
    As Nikolay pointed out:
    
    I think this is wrong (not your code) but the original assumption that
    the RELEASE semantics provided by mutex_unlock is sufficient.
    According to memory-barriers.txt:
    
    Section 'LOCK ACQUISITION FUNCTIONS' states:
    
     (2) RELEASE operation implication:
    
         Memory operations issued before the RELEASE will be completed before the
         RELEASE operation has completed.
    
         Memory operations issued after the RELEASE *may* be completed before the
         RELEASE operation has completed.
    
    (I've bolded the may portion)
    
    The example given there:
    
    As an example, consider the following:
    
        *A = a;
        *B = b;
        ACQUIRE
        *C = c;
        *D = d;
        RELEASE
        *E = e;
        *F = f;
    
    The following sequence of events is acceptable:
    
        ACQUIRE, {*F,*A}, *E, {*C,*D}, *B, RELEASE
    
    So if we assume that *C is modifying the flag which the waitqueue is checking,
    and *E is the actual wakeup, then those accesses can be re-ordered...
    
    IMHO this code should be considered broken...
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9ac47200b51cb09d2f15dbefa67e0412741d98aa
Author: Hans Verkuil <hans.verkuil@cisco.com>
Date:   Mon May 21 08:43:02 2018 -0400

    media: videobuf2-core: don't call memop 'finish' when queueing
    
    [ Upstream commit 90b2da89a083e1395cb322521a42397c49ae4500 ]
    
    When a buffer is queued or requeued in vb2_buffer_done, then don't
    call the finish memop. In this case the buffer is only returned to vb2,
    not to userspace.
    
    Calling 'finish' here will cause an unbalance when the queue is
    canceled, since the core will call the same memop again.
    
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 739feeba55a34cece1fa5ac5faf3c40eb4db6c18
Author: Ezequiel Garcia <ezequiel@collabora.com>
Date:   Fri May 18 17:07:48 2018 -0400

    media: tw686x: Fix incorrect vb2_mem_ops GFP flags
    
    [ Upstream commit 636757ab6c93e19e2f58d3b3af1312e34eaffbab ]
    
    When the driver is configured in the "memcpy" dma-mode,
    it uses vb2_vmalloc_memops, which is backed by a SLAB
    allocator and so shouldn't be using GFP_DMA32.
    
    Fix it.
    
    Signed-off-by: Ezequiel Garcia <ezequiel@collabora.com>
    Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a783c6d7a9d7e07bd637dcf892ad70c1753e3185
Author: Eyal Reizer <eyalreizer@gmail.com>
Date:   Mon May 28 11:36:42 2018 +0300

    wlcore: sdio: check for valid platform device data before suspend
    
    [ Upstream commit 6e91d48371e79862ea2c05867aaebe4afe55a865 ]
    
    the wl pointer can be null In case only wlcore_sdio is probed while
    no WiLink module is successfully probed, as in the case of mounting a
    wl12xx module while using a device tree file configured with wl18xx
    related settings.
    In this case the system was crashing in wl1271_suspend() as platform
    device data is not set.
    Make sure wl the pointer is valid before using it.
    
    Signed-off-by: Eyal Reizer <eyalr@ti.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a7a336ed3d39ecdbe6e202e87e27220afca682e5
Author: Ganapathi Bhat <gbhat@marvell.com>
Date:   Thu May 24 19:18:27 2018 +0530

    mwifiex: handle race during mwifiex_usb_disconnect
    
    [ Upstream commit b817047ae70c0bd67b677b65d0d69d72cd6e9728 ]
    
    Race condition is observed during rmmod of mwifiex_usb:
    
    1. The rmmod thread will call mwifiex_usb_disconnect(), download
       SHUTDOWN command and do wait_event_interruptible_timeout(),
       waiting for response.
    
    2. The main thread will handle the response and will do a
       wake_up_interruptible(), unblocking rmmod thread.
    
    3. On getting unblocked, rmmod thread  will make rx_cmd.urb = NULL in
       mwifiex_usb_free().
    
    4. The main thread will try to resubmit rx_cmd.urb in
       mwifiex_usb_submit_rx_urb(), which is NULL.
    
    To fix, wait for main thread to complete before calling
    mwifiex_usb_free().
    
    Signed-off-by: Ganapathi Bhat <gbhat@marvell.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e0b8c1732653a520a19a2d9e20a525bb4ebcc09
Author: Vincent Palatin <vpalatin@chromium.org>
Date:   Wed Apr 18 12:23:58 2018 +0200

    mfd: cros_ec: Fail early if we cannot identify the EC
    
    [ Upstream commit 0dbbf25561b29ffab5ba6277429760abdf49ceff ]
    
    If we cannot communicate with the EC chip to detect the protocol version
    and its features, it's very likely useless to continue. Else we will
    commit all kind of uninformed mistakes (using the wrong protocol, the
    wrong buffer size, mixing the EC with other chips).
    
    Signed-off-by: Vincent Palatin <vpalatin@chromium.org>
    Acked-by: Benson Leung <bleung@chromium.org>
    Signed-off-by: Enric Balletbo i Serra <enric.balletbo@collabora.com>
    Reviewed-by: Gwendal Grignou <gwendal@chromium.org>
    Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
    Signed-off-by: Lee Jones <lee.jones@linaro.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 32b7d638a05e721b526658c7a33292b2615a03b4
Author: Kai Chieh Chuang <kaichieh.chuang@mediatek.com>
Date:   Mon May 28 10:18:18 2018 +0800

    ASoC: dpcm: fix BE dai not hw_free and shutdown
    
    [ Upstream commit 9c0ac70ad24d76b873c1551e27790c7f6a815d5c ]
    
    In case, one BE is used by two FE1/FE2
    FE1--->BE-->
           |
    FE2----]
    when FE1/FE2 call dpcm_be_dai_hw_free() together
    the BE users will be 2 (> 1), hence cannot be hw_free
    the be state will leave at, ex. SND_SOC_DPCM_STATE_STOP
    
    later FE1/FE2 call dpcm_be_dai_shutdown(),
    will be skip due to wrong state.
    leaving the BE not being hw_free and shutdown.
    
    The BE dai will be hw_free later when calling
    dpcm_be_dai_shutdown() if still in invalid state.
    
    Signed-off-by: KaiChieh Chuang <kaichieh.chuang@mediatek.com>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c70cc9407571ee54795cba7abf1b924cf117659d
Author: Jian-Hong Pan <jian-hong@endlessm.com>
Date:   Mon May 21 18:09:20 2018 +0800

    Bluetooth: btusb: Add a new Realtek 8723DE ID 2ff8:b011
    
    [ Upstream commit 66d9975c5a7c40aa7e4bb0ec0b0c37ba1f190923 ]
    
    Without this patch we cannot turn on the Bluethooth adapter on ASUS
    E406MA.
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=2ff8 ProdID=b011 Rev= 2.00
    S:  Manufacturer=Realtek
    S:  Product=802.11n WLAN Adapter
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 922c66852976fc1bc273fee29fcc0be98cc0fa24
Author: Thierry Escande <thierry.escande@linaro.org>
Date:   Tue May 29 18:37:16 2018 +0200

    Bluetooth: hci_qca: Fix "Sleep inside atomic section" warning
    
    [ Upstream commit 9960521c44a5d828f29636ceac0600603ecbddbf ]
    
    This patch fixes the following warning during boot:
    
     do not call blocking ops when !TASK_RUNNING; state=1 set at
     [<(ptrval)>] qca_setup+0x194/0x750 [hci_uart]
     WARNING: CPU: 2 PID: 1878 at kernel/sched/core.c:6135
     __might_sleep+0x7c/0x88
    
    In qca_set_baudrate(), the current task state is set to
    TASK_UNINTERRUPTIBLE before going to sleep for 300ms. It was then
    restored to TASK_INTERRUPTIBLE. This patch sets the current task state
    back to TASK_RUNNING instead.
    
    Signed-off-by: Thierry Escande <thierry.escande@linaro.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2e1bfab64c379d40dc6960aa0b9776fe01d8f952
Author: Shaul Triebitz <shaul.triebitz@intel.com>
Date:   Thu Mar 22 14:14:45 2018 +0200

    iwlwifi: pcie: fix race in Rx buffer allocator
    
    [ Upstream commit 0f22e40053bd5378ad1e3250e65c574fd61c0cd6 ]
    
    Make sure the rx_allocator worker is canceled before running the
    rx_init routine.  rx_init frees and re-allocates all rxb's pages.  The
    rx_allocator worker also allocates pages for the used rxb's.  Running
    rx_init and rx_allocator simultaniously causes a kernel panic.  Fix
    that by canceling the work in rx_init.
    
    Signed-off-by: Shaul Triebitz <shaul.triebitz@intel.com>
    Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d4fd1bf83f447063fa4bfaf37c4b0142e57a7e77
Author: Daniel Díaz <daniel.diaz@linaro.org>
Date:   Tue Apr 10 17:11:15 2018 -0500

    selftests/intel_pstate: Improve test, minor fixes
    
    [ Upstream commit e9d33f149f52981fd856a0b16aa8ebda89b02e34 ]
    
    A few changes improve the overall usability of the test:
    * fix a hard-coded maximum frequency (3300),
    * don't adjust the CPU frequency if only evaluating results,
    * fix a comparison for multiple frequencies.
    
    A symptom of that last issue looked like this:
      ./run.sh: line 107: [: too many arguments
      ./run.sh: line 110: 3099
      3099
      3100-3100: syntax error in expression (error token is \"3099
      3100-3100\")
    
    Because a check will count how many differente frequencies
    there are among the CPUs of the system, and after they are
    tallied another read is performed, which might produce
    different results.
    
    Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
    Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f4dd60356e76ca98fab1711bf5dc8d0da500c23
Author: Kan Liang <kan.liang@intel.com>
Date:   Thu May 3 11:25:07 2018 -0700

    perf/x86/intel/uncore: Correct fixed counter index check for NHM
    
    [ Upstream commit d71f11c076c420c4e2fceb4faefa144e055e0935 ]
    
    For Nehalem and Westmere, there is only one fixed counter for W-Box.
    There is no index which is bigger than UNCORE_PMC_IDX_FIXED.
    It is not correct to use >= to check fixed counter.
    The code quality issue will bring problem when new counter index is
    introduced.
    
    Signed-off-by: Kan Liang <kan.liang@intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: acme@kernel.org
    Cc: eranian@google.com
    Link: http://lkml.kernel.org/r/1525371913-10597-2-git-send-email-kan.liang@intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47fc151cbdbe7671e9124d18245e890374509da2
Author: Kan Liang <kan.liang@intel.com>
Date:   Thu May 3 11:25:08 2018 -0700

    perf/x86/intel/uncore: Correct fixed counter index check in generic code
    
    [ Upstream commit 4749f8196452eeb73cf2086a6a9705bae479d33d ]
    
    There is no index which is bigger than UNCORE_PMC_IDX_FIXED. The only
    exception is client IMC uncore, which has been specially handled.
    For generic code, it is not correct to use >= to check fixed counter.
    The code quality issue will bring problem when a new counter index is
    introduced.
    
    Signed-off-by: Kan Liang <kan.liang@intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: acme@kernel.org
    Cc: eranian@google.com
    Link: http://lkml.kernel.org/r/1525371913-10597-3-git-send-email-kan.liang@intel.com
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce28cf5fb47f149e30176b7d6de161ebf1c6c6a1
Author: Shuah Khan (Samsung OSG) <shuah@kernel.org>
Date:   Tue May 29 16:13:03 2018 -0600

    usbip: usbip_detach: Fix memory, udev context and udev leak
    
    [ Upstream commit d179f99a651685b19333360e6558110da2fe9bd7 ]
    
    detach_port() fails to call usbip_vhci_driver_close() from its error
    path after usbip_vhci_detach_device() returns failure, leaking memory
    allocated in usbip_vhci_driver_open() and holding udev_context and udev
    references. Fix it to call usbip_vhci_driver_close().
    
    Signed-off-by: Shuah Khan (Samsung OSG) <shuah@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9e222d7ca5d535d524e92ff303b6f1e61f5ec4d5
Author: Chao Yu <yuchao0@huawei.com>
Date:   Tue Apr 17 17:51:28 2018 +0800

    f2fs: fix race in between GC and atomic open
    
    [ Upstream commit 27319ba4044c0c67d62ae39e53c0118c89f0a029 ]
    
    Thread                                  GC thread
    - f2fs_ioc_start_atomic_write
     - get_dirty_pages
     - filemap_write_and_wait_range
                                            - f2fs_gc
                                             - do_garbage_collect
                                              - gc_data_segment
                                               - move_data_page
                                                - f2fs_is_atomic_file
                                                - set_page_dirty
     - set_inode_flag(, FI_ATOMIC_FILE)
    
    Dirty data page can still be generated by GC in race condition as
    above call stack.
    
    This patch adds fi->dio_rwsem[WRITE] in f2fs_ioc_start_atomic_write
    to avoid such race.
    
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bce7f720f4ca9d48ea4be05b49010c35e1c7f956
Author: Sahitya Tummala <stummala@codeaurora.org>
Date:   Fri May 18 11:51:52 2018 +0530

    f2fs: Fix deadlock in shutdown ioctl
    
    [ Upstream commit 60b2b4ee2bc01dd052f99fa9d65da2232102ef8e ]
    
    f2fs_ioc_shutdown() ioctl gets stuck in the below path
    when issued with F2FS_GOING_DOWN_FULLSYNC option.
    
    __switch_to+0x90/0xc4
    percpu_down_write+0x8c/0xc0
    freeze_super+0xec/0x1e4
    freeze_bdev+0xc4/0xcc
    f2fs_ioctl+0xc0c/0x1ce0
    f2fs_compat_ioctl+0x98/0x1f0
    
    Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 570f12a8b651e45a0af48cced6c54c571e5bb328
Author: Chao Yu <yuchao0@huawei.com>
Date:   Mon Apr 23 10:36:13 2018 +0800

    f2fs: fix to wait page writeback during revoking atomic write
    
    [ Upstream commit e5e5732d8120654159254c16834bc8663d8be124 ]
    
    After revoking atomic write, related LBA can be reused by others, so we
    need to wait page writeback before reusing the LBA, in order to avoid
    interference between old atomic written in-flight IO and new IO.
    
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b7ea2b8616d950bbbebb1d28239d7ab9eee4fe1b
Author: Chao Yu <yuchao0@huawei.com>
Date:   Sat May 26 18:03:34 2018 +0800

    f2fs: fix to don't trigger writeback during recovery
    
    [ Upstream commit 64c74a7ab505ea40d1b3e5d02735ecab08ae1b14 ]
    
    - f2fs_fill_super
     - recover_fsync_data
      - recover_data
       - del_fsync_inode
        - iput
         - iput_final
          - write_inode_now
           - f2fs_write_inode
            - f2fs_balance_fs
             - f2fs_balance_fs_bg
              - sync_dirty_inodes
    
    With data_flush mount option, during recovery, in order to avoid entering
    above writeback flow, let's detect recovery status and do skip in
    f2fs_balance_fs_bg.
    
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Yunlei He <heyunlei@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4e6b7aad50edd0521ac69f5de9c8a4d03e40453a
Author: Chao Yu <yuchao0@huawei.com>
Date:   Mon May 28 16:59:27 2018 +0800

    f2fs: fix error path of move_data_page
    
    [ Upstream commit 14a28559f43ac7c0b98dd1b0e73ec9ec8ab4fc45 ]
    
    This patch fixes error path of move_data_page:
    - clear cold data flag if it fails to write page.
    - redirty page for non-ENOMEM case.
    
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c9ab0cefc59e0deddf85edd8ab3d310570a0367c
Author: Anatoly Pugachev <matorola@gmail.com>
Date:   Mon May 28 02:06:37 2018 +0300

    disable loading f2fs module on PAGE_SIZE > 4KB
    
    [ Upstream commit 4071e67cffcc5c2a007116a02437471351f550eb ]
    
    The following patch disables loading of f2fs module on architectures
    which have PAGE_SIZE > 4096 , since it is impossible to mount f2fs on
    such architectures , log messages are:
    
    mount: /mnt: wrong fs type, bad option, bad superblock on
    /dev/vdiskb1, missing codepage or helper program, or other error.
    /dev/vdiskb1: F2FS filesystem,
    UUID=1d8b9ca4-2389-4910-af3b-10998969f09c, volume name ""
    
    May 15 18:03:13 ttip kernel: F2FS-fs (vdiskb1): Invalid
    page_cache_size (8192), supports only 4KB
    May 15 18:03:13 ttip kernel: F2FS-fs (vdiskb1): Can't find valid F2FS
    filesystem in 1th superblock
    May 15 18:03:13 ttip kernel: F2FS-fs (vdiskb1): Invalid
    page_cache_size (8192), supports only 4KB
    May 15 18:03:13 ttip kernel: F2FS-fs (vdiskb1): Can't find valid F2FS
    filesystem in 2th superblock
    May 15 18:03:13 ttip kernel: F2FS-fs (vdiskb1): Invalid
    page_cache_size (8192), supports only 4KB
    
    which was introduced by git commit 5c9b469295fb6b10d98923eab5e79c4edb80ed20
    
    tested on git kernel 4.17.0-rc6-00309-gec30dcf7f425
    
    with patch applied:
    
    modprobe: ERROR: could not insert 'f2fs': Invalid argument
    May 28 01:40:28 v215 kernel: F2FS not supported on PAGE_SIZE(8192) != 4096
    
    Signed-off-by: Anatoly Pugachev <matorola@gmail.com>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b05c460a0ce3bef757f40475d028d8fcfea2bb5d
Author: Trond Myklebust <trond.myklebust@hammerspace.com>
Date:   Tue May 22 11:17:16 2018 -0400

    pnfs: Don't release the sequence slot until we've processed layoutget on open
    
    [ Upstream commit ae55e59da0e401893b3c52b575fc18a00623d0a1 ]
    
    If the server recalls the layout that was just handed out, we risk hitting
    a race as described in RFC5661 Section 2.10.6.3 unless we ensure that we
    release the sequence slot after processing the LAYOUTGET operation that
    was sent as part of the OPEN compound.
    
    Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 759fb7f94fab59cf3ca9e67c6646b87cff919918
Author: Alexey Kodanev <alexey.kodanev@oracle.com>
Date:   Thu May 31 19:53:33 2018 +0300

    netfilter: nf_tables: check msg_type before nft_trans_set(trans)
    
    [ Upstream commit 9c7f96fd77b0dbe1fe7ed1f9c462c45dc48a1076 ]
    
    The patch moves the "trans->msg_type == NFT_MSG_NEWSET" check before
    using nft_trans_set(trans). Otherwise we can get out of bounds read.
    
    For example, KASAN reported the one when running 0001_cache_handling_0 nft
    test. In this case "trans->msg_type" was NFT_MSG_NEWTABLE:
    
    [75517.177808] BUG: KASAN: slab-out-of-bounds in nft_set_lookup_global+0x22f/0x270 [nf_tables]
    [75517.279094] Read of size 8 at addr ffff881bdb643fc8 by task nft/7356
    ...
    [75517.375605] CPU: 26 PID: 7356 Comm: nft Tainted: G  E   4.17.0-rc7.1.x86_64 #1
    [75517.489587] Hardware name: Oracle Corporation SUN SERVER X4-2
    [75517.618129] Call Trace:
    [75517.648821]  dump_stack+0xd1/0x13b
    [75517.691040]  ? show_regs_print_info+0x5/0x5
    [75517.742519]  ? kmsg_dump_rewind_nolock+0xf5/0xf5
    [75517.799300]  ? lock_acquire+0x143/0x310
    [75517.846738]  print_address_description+0x85/0x3a0
    [75517.904547]  kasan_report+0x18d/0x4b0
    [75517.949892]  ? nft_set_lookup_global+0x22f/0x270 [nf_tables]
    [75518.019153]  ? nft_set_lookup_global+0x22f/0x270 [nf_tables]
    [75518.088420]  ? nft_set_lookup_global+0x22f/0x270 [nf_tables]
    [75518.157689]  nft_set_lookup_global+0x22f/0x270 [nf_tables]
    [75518.224869]  nf_tables_newsetelem+0x1a5/0x5d0 [nf_tables]
    [75518.291024]  ? nft_add_set_elem+0x2280/0x2280 [nf_tables]
    [75518.357154]  ? nla_parse+0x1a5/0x300
    [75518.401455]  ? kasan_kmalloc+0xa6/0xd0
    [75518.447842]  nfnetlink_rcv+0xc43/0x1bdf [nfnetlink]
    [75518.507743]  ? nfnetlink_rcv+0x7a5/0x1bdf [nfnetlink]
    [75518.569745]  ? nfnl_err_reset+0x3c0/0x3c0 [nfnetlink]
    [75518.631711]  ? lock_acquire+0x143/0x310
    [75518.679133]  ? netlink_deliver_tap+0x9b/0x1070
    [75518.733840]  ? kasan_unpoison_shadow+0x31/0x40
    [75518.788542]  netlink_unicast+0x45d/0x680
    [75518.837111]  ? __isolate_free_page+0x890/0x890
    [75518.891913]  ? netlink_attachskb+0x6b0/0x6b0
    [75518.944542]  netlink_sendmsg+0x6fa/0xd30
    [75518.993107]  ? netlink_unicast+0x680/0x680
    [75519.043758]  ? netlink_unicast+0x680/0x680
    [75519.094402]  sock_sendmsg+0xd9/0x160
    [75519.138810]  ___sys_sendmsg+0x64d/0x980
    [75519.186234]  ? copy_msghdr_from_user+0x350/0x350
    [75519.243118]  ? lock_downgrade+0x650/0x650
    [75519.292738]  ? do_raw_spin_unlock+0x5d/0x250
    [75519.345456]  ? _raw_spin_unlock+0x24/0x30
    [75519.395065]  ? __handle_mm_fault+0xbde/0x3410
    [75519.448830]  ? sock_setsockopt+0x3d2/0x1940
    [75519.500516]  ? __lock_acquire.isra.25+0xdc/0x19d0
    [75519.558448]  ? lock_downgrade+0x650/0x650
    [75519.608057]  ? __audit_syscall_entry+0x317/0x720
    [75519.664960]  ? __fget_light+0x58/0x250
    [75519.711325]  ? __sys_sendmsg+0xde/0x170
    [75519.758850]  __sys_sendmsg+0xde/0x170
    [75519.804193]  ? __ia32_sys_shutdown+0x90/0x90
    [75519.856725]  ? syscall_trace_enter+0x897/0x10e0
    [75519.912354]  ? trace_event_raw_event_sys_enter+0x920/0x920
    [75519.979432]  ? __audit_syscall_entry+0x720/0x720
    [75520.036118]  do_syscall_64+0xa3/0x3d0
    [75520.081248]  ? prepare_exit_to_usermode+0x47/0x1d0
    [75520.139904]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [75520.201680] RIP: 0033:0x7fc153320ba0
    [75520.245772] RSP: 002b:00007ffe294c3638 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    [75520.337708] RAX: ffffffffffffffda RBX: 00007ffe294c4820 RCX: 00007fc153320ba0
    [75520.424547] RDX: 0000000000000000 RSI: 00007ffe294c46b0 RDI: 0000000000000003
    [75520.511386] RBP: 00007ffe294c47b0 R08: 0000000000000004 R09: 0000000002114090
    [75520.598225] R10: 00007ffe294c30a0 R11: 0000000000000246 R12: 00007ffe294c3660
    [75520.684961] R13: 0000000000000001 R14: 00007ffe294c3650 R15: 0000000000000001
    
    [75520.790946] Allocated by task 7356:
    [75520.833994]  kasan_kmalloc+0xa6/0xd0
    [75520.878088]  __kmalloc+0x189/0x450
    [75520.920107]  nft_trans_alloc_gfp+0x20/0x190 [nf_tables]
    [75520.983961]  nf_tables_newtable+0xcd0/0x1bd0 [nf_tables]
    [75521.048857]  nfnetlink_rcv+0xc43/0x1bdf [nfnetlink]
    [75521.108655]  netlink_unicast+0x45d/0x680
    [75521.157013]  netlink_sendmsg+0x6fa/0xd30
    [75521.205271]  sock_sendmsg+0xd9/0x160
    [75521.249365]  ___sys_sendmsg+0x64d/0x980
    [75521.296686]  __sys_sendmsg+0xde/0x170
    [75521.341822]  do_syscall_64+0xa3/0x3d0
    [75521.386957]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [75521.467867] Freed by task 23454:
    [75521.507804]  __kasan_slab_free+0x132/0x180
    [75521.558137]  kfree+0x14d/0x4d0
    [75521.596005]  free_rt_sched_group+0x153/0x280
    [75521.648410]  sched_autogroup_create_attach+0x19a/0x520
    [75521.711330]  ksys_setsid+0x2ba/0x400
    [75521.755529]  __ia32_sys_setsid+0xa/0x10
    [75521.802850]  do_syscall_64+0xa3/0x3d0
    [75521.848090]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [75521.929000] The buggy address belongs to the object at ffff881bdb643f80
     which belongs to the cache kmalloc-96 of size 96
    [75522.079797] The buggy address is located 72 bytes inside of
     96-byte region [ffff881bdb643f80, ffff881bdb643fe0)
    [75522.221234] The buggy address belongs to the page:
    [75522.280100] page:ffffea006f6d90c0 count:1 mapcount:0 mapping:0000000000000000 index:0x0
    [75522.377443] flags: 0x2fffff80000100(slab)
    [75522.426956] raw: 002fffff80000100 0000000000000000 0000000000000000 0000000180200020
    [75522.521275] raw: ffffea006e6fafc0 0000000c0000000c ffff881bf180f400 0000000000000000
    [75522.615601] page dumped because: kasan: bad access detected
    
    Fixes: 37a9cc525525 ("netfilter: nf_tables: add generation mask to sets")
    Signed-off-by: Alexey Kodanev <alexey.kodanev@oracle.com>
    Acked-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit efb4dd6ab9d65ce0be2b5edc9e596627c212bd8a
Author: Leon Romanovsky <leonro@mellanox.com>
Date:   Tue May 29 14:56:19 2018 +0300

    RDMA/mad: Convert BUG_ONs to error flows
    
    [ Upstream commit 2468b82d69e3a53d024f28d79ba0fdb8bf43dfbf ]
    
    Let's perform checks in-place instead of BUG_ONs.
    
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea8e4ff38ffae80011aa83ce17e790f44770a800
Author: Nicholas Piggin <npiggin@gmail.com>
Date:   Wed May 30 20:31:22 2018 +1000

    powerpc/64s: Fix compiler store ordering to SLB shadow area
    
    [ Upstream commit 926bc2f100c24d4842b3064b5af44ae964c1d81c ]
    
    The stores to update the SLB shadow area must be made as they appear
    in the C code, so that the hypervisor does not see an entry with
    mismatched vsid and esid. Use WRITE_ONCE for this.
    
    GCC has been observed to elide the first store to esid in the update,
    which means that if the hypervisor interrupts the guest after storing
    to vsid, it could see an entry with old esid and new vsid, which may
    possibly result in memory corruption.
    
    Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c3e347251cfdd18591c571b1b0bafbbd314ab72b
Author: Stewart Smith <stewart@linux.ibm.com>
Date:   Thu Mar 29 17:02:46 2018 +1100

    hvc_opal: don't set tb_ticks_per_usec in udbg_init_opal_common()
    
    [ Upstream commit 447808bf500a7cc92173266a59f8a494e132b122 ]
    
    time_init() will set up tb_ticks_per_usec based on reality.
    time_init() is called *after* udbg_init_opal_common() during boot.
    
    from arch/powerpc/kernel/time.c:
      unsigned long tb_ticks_per_usec = 100; /* sane default */
    
    Currently, all powernv systems have a timebase frequency of 512mhz
    (512000000/1000000 == 0x200) - although there's nothing written
    down anywhere that I can find saying that we couldn't make that
    different based on the requirements in the ISA.
    
    So, we've been (accidentally) thwacking the (currently) correct
    (for powernv at least) value for tb_ticks_per_usec earlier than
    we otherwise would have.
    
    The "sane default" seems to be adequate for our purposes between
    udbg_init_opal_common() and time_init() being called, and if it isn't,
    then we should probably be setting it somewhere that isn't hvc_opal.c!
    
    Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee245de4b32ba8836b43798a9aeca99f6a186592
Author: Sam Bobroff <sbobroff@linux.ibm.com>
Date:   Fri May 25 13:11:30 2018 +1000

    powerpc/eeh: Fix use-after-release of EEH driver
    
    [ Upstream commit 46d4be41b987a6b2d25a2ebdd94cafb44e21d6c5 ]
    
    Correct two cases where eeh_pcid_get() is used to reference the driver's
    module but the reference is dropped before the driver pointer is used.
    
    In eeh_rmv_device() also refactor a little so that only two calls to
    eeh_pcid_put() are needed, rather than three and the reference isn't
    taken at all if it wasn't needed.
    
    Signed-off-by: Sam Bobroff <sbobroff@linux.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 73298a828c90398d582ec0e204b637e9bbee2dd5
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Fri Jun 1 11:31:44 2018 -0700

    infiniband: fix a possible use-after-free bug
    
    [ Upstream commit cb2595c1393b4a5211534e6f0a0fbad369e21ad8 ]
    
    ucma_process_join() will free the new allocated "mc" struct,
    if there is any error after that, especially the copy_to_user().
    
    But in parallel, ucma_leave_multicast() could find this "mc"
    through idr_find() before ucma_process_join() frees it, since it
    is already published.
    
    So "mc" could be used in ucma_leave_multicast() after it is been
    allocated and freed in ucma_process_join(), since we don't refcnt
    it.
    
    Fix this by separating "publish" from ID allocation, so that we
    can get an ID first and publish it later after copy_to_user().
    
    Fixes: c8f6a362bf3e ("RDMA/cma: Add multicast communication support")
    Reported-by: Noam Rathaus <noamr@beyondsecurity.com>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6e02c062e94a235b50dd2ec15068026e3a841c1e
Author: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Date:   Thu May 31 18:45:21 2018 +0200

    netfilter: ipset: List timing out entries with "timeout 1" instead of zero
    
    [ Upstream commit bd975e691486ba52790ba23cc9b4fecab7bc0d31 ]
    
    When listing sets with timeout support, there's a probability that
    just timing out entries with "0" timeout value is listed/saved.
    However when restoring the saved list, the zero timeout value means
    permanent elelements.
    
    The new behaviour is that timing out entries are listed with "timeout 1"
    instead of zero.
    
    Fixes netfilter bugzilla #1258.
    
    Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 56295051214ef9616d90ef34a3fe43628985433f
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Tue Jun 5 14:14:16 2018 +0200

    perf tools: Fix pmu events parsing rule
    
    [ Upstream commit ceac7b79df7bd67ef9aaf464b0179a2686aff4ee ]
    
    Currently all the event parsing fails end up
    in the event_pmu rule, and display misleading
    help like:
    
      $ perf stat -e inst kill
      event syntax error: 'inst'
                           \___ Cannot find PMU `inst'. Missing kernel support?
      ...
    
    The reason is that the event_pmu is too strong
    and match also single string. Changing it to
    force the '/' separators to be part of the rule,
    and getting the proper error now:
    
      $ perf stat -e inst kill
      event syntax error: 'inst'
                           \___ parser error
      Run 'perf list' for a list of valid events
      ...
    
    Suggested-by: Adrian Hunter <adrian.hunter@intel.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lkml.kernel.org/r/20180605121416.31645-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fda8caa9cb0c80deab362d73a8fd2cd322ce20fc
Author: Alexandre Belloni <alexandre.belloni@bootlin.com>
Date:   Tue Jun 5 23:09:14 2018 +0200

    rtc: ensure rtc_set_alarm fails when alarms are not supported
    
    [ Upstream commit abfdff44bc38e9e2ef7929f633fb8462632299d4 ]
    
    When using RTC_ALM_SET or RTC_WKALM_SET with rtc_wkalrm.enabled not set,
    rtc_timer_enqueue() is not called and rtc_set_alarm() may succeed but the
    subsequent RTC_AIE_ON ioctl will fail. RTC_ALM_READ would also fail in that
    case.
    
    Ensure rtc_set_alarm() fails when alarms are not supported to avoid letting
    programs think the alarms are working for a particular RTC when they are
    not.
    
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c99dbd95723e7bd5616e0dbe4e829e26d4db7177
Author: Mathieu Malaterre <malat@debian.org>
Date:   Thu Jun 7 17:05:17 2018 -0700

    mm/slub.c: add __printf verification to slab_err()
    
    [ Upstream commit a38965bf941b7c2af50de09c96bc5f03e136caef ]
    
    __printf is useful to verify format and arguments.  Remove the following
    warning (with W=1):
    
      mm/slub.c:721:2: warning: function might be possible candidate for `gnu_printf' format attribute [-Wsuggest-attribute=format]
    
    Link: http://lkml.kernel.org/r/20180505200706.19986-1-malat@debian.org
    Signed-off-by: Mathieu Malaterre <malat@debian.org>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Christoph Lameter <cl@linux.com>
    Cc: Pekka Enberg <penberg@kernel.org>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
    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@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e18d3280da8bdf690c320bb6c9cb8f98e4fc5e94
Author: Chintan Pandya <cpandya@codeaurora.org>
Date:   Thu Jun 7 17:06:50 2018 -0700

    mm: vmalloc: avoid racy handling of debugobjects in vunmap
    
    [ Upstream commit f3c01d2f3ade6790db67f80fef60df84424f8964 ]
    
    Currently, __vunmap flow is,
     1) Release the VM area
     2) Free the debug objects corresponding to that vm area.
    
    This leave some race window open.
     1) Release the VM area
     1.5) Some other client gets the same vm area
     1.6) This client allocates new debug objects on the same
          vm area
     2) Free the debug objects corresponding to this vm area.
    
    Here, we actually free 'other' client's debug objects.
    
    Fix this by freeing the debug objects first and then releasing the VM
    area.
    
    Link: http://lkml.kernel.org/r/1523961828-9485-2-git-send-email-cpandya@codeaurora.org
    Signed-off-by: Chintan Pandya <cpandya@codeaurora.org>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Byungchul Park <byungchul.park@lge.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Florian Fainelli <f.fainelli@gmail.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Laura Abbott <labbott@redhat.com>
    Cc: Vlastimil Babka <vbabka@suse.cz>
    Cc: Wei Yang <richard.weiyang@gmail.com>
    Cc: Yisheng Xie <xieyisheng1@huawei.com>
    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@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c6e8116307f54c8639c1ef02516cc97c31bcd796
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Apr 11 11:15:48 2018 +0200

    vfio: platform: Fix reset module leak in error path
    
    [ Upstream commit 28a68387888997e8a7fa57940ea5d55f2e16b594 ]
    
    If the IOMMU group setup fails, the reset module is not released.
    
    Fixes: b5add544d677d363 ("vfio, platform: make reset driver a requirement by default")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Eric Auger <eric.auger@redhat.com>
    Reviewed-by: Simon Horman <horms+renesas@verge.net.au>
    Acked-by: Eric Auger <eric.auger@redhat.com>
    Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8bccc6c9025f1ecf495dc0889bc1aea28d1e7fec
Author: Scott Mayhew <smayhew@redhat.com>
Date:   Fri Jun 8 16:31:46 2018 -0400

    nfsd: fix potential use-after-free in nfsd4_decode_getdeviceinfo
    
    [ Upstream commit 3171822fdcdd6e6d536047c425af6dc7a92dc585 ]
    
    When running a fuzz tester against a KASAN-enabled kernel, the following
    splat periodically occurs.
    
    The problem occurs when the test sends a GETDEVICEINFO request with a
    malformed xdr array (size but no data) for gdia_notify_types and the
    array size is > 0x3fffffff, which results in an overflow in the value of
    nbytes which is passed to read_buf().
    
    If the array size is 0x40000000, 0x80000000, or 0xc0000000, then after
    the overflow occurs, the value of nbytes 0, and when that happens the
    pointer returned by read_buf() points to the end of the xdr data (i.e.
    argp->end) when really it should be returning NULL.
    
    Fix this by returning NFS4ERR_BAD_XDR if the array size is > 1000 (this
    value is arbitrary, but it's the same threshold used by
    nfsd4_decode_bitmap()... in could really be any value >= 1 since it's
    expected to get at most a single bitmap in gdia_notify_types).
    
    [  119.256854] ==================================================================
    [  119.257611] BUG: KASAN: use-after-free in nfsd4_decode_getdeviceinfo+0x5a4/0x5b0 [nfsd]
    [  119.258422] Read of size 4 at addr ffff880113ada000 by task nfsd/538
    
    [  119.259146] CPU: 0 PID: 538 Comm: nfsd Not tainted 4.17.0+ #1
    [  119.259662] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-1.fc25 04/01/2014
    [  119.261202] Call Trace:
    [  119.262265]  dump_stack+0x71/0xab
    [  119.263371]  print_address_description+0x6a/0x270
    [  119.264609]  kasan_report+0x258/0x380
    [  119.265854]  ? nfsd4_decode_getdeviceinfo+0x5a4/0x5b0 [nfsd]
    [  119.267291]  nfsd4_decode_getdeviceinfo+0x5a4/0x5b0 [nfsd]
    [  119.268549]  ? nfs4svc_decode_compoundargs+0xa5b/0x13c0 [nfsd]
    [  119.269873]  ? nfsd4_decode_sequence+0x490/0x490 [nfsd]
    [  119.271095]  nfs4svc_decode_compoundargs+0xa5b/0x13c0 [nfsd]
    [  119.272393]  ? nfsd4_release_compoundargs+0x1b0/0x1b0 [nfsd]
    [  119.273658]  nfsd_dispatch+0x183/0x850 [nfsd]
    [  119.274918]  svc_process+0x161c/0x31a0 [sunrpc]
    [  119.276172]  ? svc_printk+0x190/0x190 [sunrpc]
    [  119.277386]  ? svc_xprt_release+0x451/0x680 [sunrpc]
    [  119.278622]  nfsd+0x2b9/0x430 [nfsd]
    [  119.279771]  ? nfsd_destroy+0x1c0/0x1c0 [nfsd]
    [  119.281157]  kthread+0x2db/0x390
    [  119.282347]  ? kthread_create_worker_on_cpu+0xc0/0xc0
    [  119.283756]  ret_from_fork+0x35/0x40
    
    [  119.286041] Allocated by task 436:
    [  119.287525]  kasan_kmalloc+0xa0/0xd0
    [  119.288685]  kmem_cache_alloc+0xe9/0x1f0
    [  119.289900]  get_empty_filp+0x7b/0x410
    [  119.291037]  path_openat+0xca/0x4220
    [  119.292242]  do_filp_open+0x182/0x280
    [  119.293411]  do_sys_open+0x216/0x360
    [  119.294555]  do_syscall_64+0xa0/0x2f0
    [  119.295721]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [  119.298068] Freed by task 436:
    [  119.299271]  __kasan_slab_free+0x130/0x180
    [  119.300557]  kmem_cache_free+0x78/0x210
    [  119.301823]  rcu_process_callbacks+0x35b/0xbd0
    [  119.303162]  __do_softirq+0x192/0x5ea
    
    [  119.305443] The buggy address belongs to the object at ffff880113ada000
                    which belongs to the cache filp of size 256
    [  119.308556] The buggy address is located 0 bytes inside of
                    256-byte region [ffff880113ada000, ffff880113ada100)
    [  119.311376] The buggy address belongs to the page:
    [  119.312728] page:ffffea00044eb680 count:1 mapcount:0 mapping:0000000000000000 index:0xffff880113ada780
    [  119.314428] flags: 0x17ffe000000100(slab)
    [  119.315740] raw: 0017ffe000000100 0000000000000000 ffff880113ada780 00000001000c0001
    [  119.317379] raw: ffffea0004553c60 ffffea00045c11e0 ffff88011b167e00 0000000000000000
    [  119.319050] page dumped because: kasan: bad access detected
    
    [  119.321652] Memory state around the buggy address:
    [  119.322993]  ffff880113ad9f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  119.324515]  ffff880113ad9f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [  119.326087] >ffff880113ada000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [  119.327547]                    ^
    [  119.328730]  ffff880113ada080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    [  119.330218]  ffff880113ada100: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
    [  119.331740] ==================================================================
    
    Signed-off-by: Scott Mayhew <smayhew@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca08131ee77bbdd2e1a72b02a06188b3bdd3e192
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Mon Jun 11 16:04:06 2018 +0800

    ALSA: fm801: add error handling for snd_ctl_add
    
    [ Upstream commit ef1ffbe7889e99f5b5cccb41c89e5c94f50f3218 ]
    
    When snd_ctl_add fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling snd_ctl_add.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9f9e506d8e6912c5b648288e68e6e442d6d9e2d7
Author: Zhouyang Jia <jiazhouyang09@gmail.com>
Date:   Mon Jun 11 16:18:40 2018 +0800

    ALSA: emu10k1: add error handling for snd_ctl_add
    
    [ Upstream commit 6d531e7b972cb62ded011c2dfcc2d9f72ea6c421 ]
    
    When snd_ctl_add fails, the lack of error-handling code may
    cause unexpected results.
    
    This patch adds error-handling code after calling snd_ctl_add.
    
    Signed-off-by: Zhouyang Jia <jiazhouyang09@gmail.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit acd9aba8e481eaf88799bfba33590c1f5c322eb2
Author: Juergen Gross <jgross@suse.com>
Date:   Tue Jun 12 08:57:53 2018 +0200

    xen/netfront: raise max number of slots in xennet_get_responses()
    
    [ Upstream commit 57f230ab04d2910a06d17d988f1c4d7586a59113 ]
    
    The max number of slots used in xennet_get_responses() is set to
    MAX_SKB_FRAGS + (rx->status <= RX_COPY_THRESHOLD).
    
    In old kernel-xen MAX_SKB_FRAGS was 18, while nowadays it is 17. This
    difference is resulting in frequent messages "too many slots" and a
    reduced network throughput for some workloads (factor 10 below that of
    a kernel-xen based guest).
    
    Replacing MAX_SKB_FRAGS by XEN_NETIF_NR_SLOTS_MIN for calculation of
    the max number of slots to use solves that problem (tests showed no
    more messages "too many slots" and throughput was as high as with the
    kernel-xen based guest system).
    
    Replace MAX_SKB_FRAGS-2 by XEN_NETIF_NR_SLOTS_MIN-1 in
    netfront_tx_slot_available() for making it clearer what is really being
    tested without actually modifying the tested value.
    
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 31ad104de6feb222500abe23a2cdbf08b6794c77
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Thu Jun 14 15:27:34 2018 -0700

    kcov: ensure irq code sees a valid area
    
    [ Upstream commit c9484b986ef03492357fddd50afbdd02929cfa72 ]
    
    Patch series "kcov: fix unexpected faults".
    
    These patches fix a few issues where KCOV code could trigger recursive
    faults, discovered while debugging a patch enabling KCOV for arch/arm:
    
    * On CONFIG_PREEMPT kernels, there's a small race window where
      __sanitizer_cov_trace_pc() can see a bogus kcov_area.
    
    * Lazy faulting of the vmalloc area can cause mutual recursion between
      fault handling code and __sanitizer_cov_trace_pc().
    
    * During the context switch, switching the mm can cause the kcov_area to
      be transiently unmapped.
    
    These are prerequisites for enabling KCOV on arm, but the issues
    themsevles are generic -- we just happen to avoid them by chance rather
    than design on x86-64 and arm64.
    
    This patch (of 3):
    
    For kernels built with CONFIG_PREEMPT, some C code may execute before or
    after the interrupt handler, while the hardirq count is zero.  In these
    cases, in_task() can return true.
    
    A task can be interrupted in the middle of a KCOV_DISABLE ioctl while it
    resets the task's kcov data via kcov_task_init().  Instrumented code
    executed during this period will call __sanitizer_cov_trace_pc(), and as
    in_task() returns true, will inspect t->kcov_mode before trying to write
    to t->kcov_area.
    
    In kcov_init_task() we update t->kcov_{mode,area,size} with plain stores,
    which may be re-ordered, torn, etc.  Thus __sanitizer_cov_trace_pc() may
    see bogus values for any of these fields, and may attempt to write to
    memory which is not mapped.
    
    Let's avoid this by using WRITE_ONCE() to set t->kcov_mode, with a
    barrier() to ensure this is ordered before we clear t->kov_{area,size}.
    This ensures that any code execute while kcov_init_task() is preempted
    will either see valid values for t->kcov_{area,size}, or will see that
    t->kcov_mode is KCOV_MODE_DISABLED, and bail out without touching
    t->kcov_area.
    
    Link: http://lkml.kernel.org/r/20180504135535.53744-2-mark.rutland@arm.com
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.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@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7ff1861f49e64da20a9b9451ebbdc9bbf68b8a4b
Author: Antti Seppälä <a.seppala@gmail.com>
Date:   Thu Jul 5 17:31:53 2018 +0300

    usb: dwc2: Fix DMA alignment to start at allocated boundary
    
    commit 56406e017a883b54b339207b230f85599f4d70ae upstream.
    
    The commit 3bc04e28a030 ("usb: dwc2: host: Get aligned DMA in a more
    supported way") introduced a common way to align DMA allocations.
    The code in the commit aligns the struct dma_aligned_buffer but the
    actual DMA address pointed by data[0] gets aligned to an offset from
    the allocated boundary by the kmalloc_ptr and the old_xfer_buffer
    pointers.
    
    This is against the recommendation in Documentation/DMA-API.txt which
    states:
    
      Therefore, it is recommended that driver writers who don't take
      special care to determine the cache line size at run time only map
      virtual regions that begin and end on page boundaries (which are
      guaranteed also to be cache line boundaries).
    
    The effect of this is that architectures with non-coherent DMA caches
    may run into memory corruption or kernel crashes with Unhandled
    kernel unaligned accesses exceptions.
    
    Fix the alignment by positioning the DMA area in front of the allocation
    and use memory at the end of the area for storing the orginal
    transfer_buffer pointer. This may have the added benefit of increased
    performance as the DMA area is now fully aligned on all architectures.
    
    Tested with Lantiq xRX200 (MIPS) and RPi Model B Rev 2 (ARM).
    
    Fixes: 3bc04e28a030 ("usb: dwc2: host: Get aligned DMA in a more supported way")
    Cc: <stable@vger.kernel.org>
    Reviewed-by: Douglas Anderson <dianders@chromium.org>
    [ Antti: backported to 4.9: edited difference in whitespace ]
    Signed-off-by: Antti Seppälä <a.seppala@gmail.com>
    Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8d77bd71e80897abcf30441ab26f5808383ddaf
Author: Johannes Weiner <hannes@cmpxchg.org>
Date:   Mon Jul 23 10:18:23 2018 -0400

    arm64: fix vmemmap BUILD_BUG_ON() triggering on !vmemmap setups
    
    commit 7b0eb6b41a08fa1fa0d04b1c53becd62b5fbfaee upstream.
    
    Arnd reports the following arm64 randconfig build error with the PSI
    patches that add another page flag:
    
      /git/arm-soc/arch/arm64/mm/init.c: In function 'mem_init':
      /git/arm-soc/include/linux/compiler.h:357:38: error: call to
      '__compiletime_assert_618' declared with attribute error: BUILD_BUG_ON
      failed: sizeof(struct page) > (1 << STRUCT_PAGE_MAX_SHIFT)
    
    The additional page flag causes other information stored in
    page->flags to get bumped into their own struct page member:
    
      #if SECTIONS_WIDTH+ZONES_WIDTH+NODES_SHIFT+LAST_CPUPID_SHIFT <=
      BITS_PER_LONG - NR_PAGEFLAGS
      #define LAST_CPUPID_WIDTH LAST_CPUPID_SHIFT
      #else
      #define LAST_CPUPID_WIDTH 0
      #endif
    
      #if defined(CONFIG_NUMA_BALANCING) && LAST_CPUPID_WIDTH == 0
      #define LAST_CPUPID_NOT_IN_PAGE_FLAGS
      #endif
    
    which in turn causes the struct page size to exceed the size set in
    STRUCT_PAGE_MAX_SHIFT. This value is an an estimate used to size the
    VMEMMAP page array according to address space and struct page size.
    
    However, the check is performed - and triggers here - on a !VMEMMAP
    config, which consumes an additional 22 page bits for the sparse
    section id. When VMEMMAP is enabled, those bits are returned, cpupid
    doesn't need its own member, and the page passes the VMEMMAP check.
    
    Restrict that check to the situation it was meant to check: that we
    are sizing the VMEMMAP page array correctly.
    
    Says Arnd:
    
        Further experiments show that the build error already existed before,
        but was only triggered with larger values of CONFIG_NR_CPU and/or
        CONFIG_NODES_SHIFT that might be used in actual configurations but
        not in randconfig builds.
    
        With longer CPU and node masks, I could recreate the problem with
        kernels as old as linux-4.7 when arm64 NUMA support got added.
    
    Reported-by: Arnd Bergmann <arnd@arndb.de>
    Tested-by: Arnd Bergmann <arnd@arndb.de>
    Cc: stable@vger.kernel.org
    Fixes: 1a2db300348b ("arm64, numa: Add NUMA support for arm64 platforms.")
    Fixes: 3e1907d5bf5a ("arm64: mm: move vmemmap region right below the linear region")
    Signed-off-by: Johannes Weiner <hannes@cmpxchg.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b985a7303de1d25e6040f7c7693072acfc6139ae
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Wed Jul 25 22:28:56 2018 -0400

    tracing: Quiet gcc warning about maybe unused link variable
    
    commit 2519c1bbe38d7acacc9aacba303ca6f97482ed53 upstream.
    
    Commit 57ea2a34adf4 ("tracing/kprobes: Fix trace_probe flags on
    enable_trace_kprobe() failure") added an if statement that depends on another
    if statement that gcc doesn't see will initialize the "link" variable and
    gives the warning:
    
     "warning: 'link' may be used uninitialized in this function"
    
    It is really a false positive, but to quiet the warning, and also to make
    sure that it never actually is used uninitialized, initialize the "link"
    variable to NULL and add an if (!WARN_ON_ONCE(!link)) where the compiler
    thinks it could be used uninitialized.
    
    Cc: stable@vger.kernel.org
    Fixes: 57ea2a34adf4 ("tracing/kprobes: Fix trace_probe flags on enable_trace_kprobe() failure")
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 987e425ad386543e8d8c3fc9a2530424fc3eb575
Author: Artem Savkov <asavkov@redhat.com>
Date:   Wed Jul 25 16:20:38 2018 +0200

    tracing/kprobes: Fix trace_probe flags on enable_trace_kprobe() failure
    
    commit 57ea2a34adf40f3a6e88409aafcf803b8945619a upstream.
    
    If enable_trace_kprobe fails to enable the probe in enable_k(ret)probe
    it returns an error, but does not unset the tp flags it set previously.
    This results in a probe being considered enabled and failures like being
    unable to remove the probe through kprobe_events file since probes_open()
    expects every probe to be disabled.
    
    Link: http://lkml.kernel.org/r/20180725102826.8300-1-asavkov@redhat.com
    Link: http://lkml.kernel.org/r/20180725142038.4765-1-asavkov@redhat.com
    
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: stable@vger.kernel.org
    Fixes: 41a7dd420c57 ("tracing/kprobes: Support ftrace_event_file base multibuffer")
    Acked-by: Masami Hiramatsu <mhiramat@kernel.org>
    Reviewed-by: Josh Poimboeuf <jpoimboe@redhat.com>
    Signed-off-by: Artem Savkov <asavkov@redhat.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b38f8292f08eccf4fe4c598e2b7c4e970ded383e
Author: Snild Dolkow <snild@sony.com>
Date:   Thu Jul 26 09:15:39 2018 +0200

    kthread, tracing: Don't expose half-written comm when creating kthreads
    
    commit 3e536e222f2930534c252c1cc7ae799c725c5ff9 upstream.
    
    There is a window for racing when printing directly to task->comm,
    allowing other threads to see a non-terminated string. The vsnprintf
    function fills the buffer, counts the truncated chars, then finally
    writes the \0 at the end.
    
            creator                     other
            vsnprintf:
              fill (not terminated)
              count the rest            trace_sched_waking(p):
              ...                         memcpy(comm, p->comm, TASK_COMM_LEN)
              write \0
    
    The consequences depend on how 'other' uses the string. In our case,
    it was copied into the tracing system's saved cmdlines, a buffer of
    adjacent TASK_COMM_LEN-byte buffers (note the 'n' where 0 should be):
    
            crash-arm64> x/1024s savedcmd->saved_cmdlines | grep 'evenk'
            0xffffffd5b3818640:     "irq/497-pwr_evenkworker/u16:12"
    
    ...and a strcpy out of there would cause stack corruption:
    
            [224761.522292] Kernel panic - not syncing: stack-protector:
                Kernel stack is corrupted in: ffffff9bf9783c78
    
            crash-arm64> kbt | grep 'comm\|trace_print_context'
            #6  0xffffff9bf9783c78 in trace_print_context+0x18c(+396)
                  comm (char [16]) =  "irq/497-pwr_even"
    
            crash-arm64> rd 0xffffffd4d0e17d14 8
            ffffffd4d0e17d14:  2f71726900000000 5f7277702d373934   ....irq/497-pwr_
            ffffffd4d0e17d24:  726f776b6e657665 3a3631752f72656b   evenkworker/u16:
            ffffffd4d0e17d34:  f9780248ff003231 cede60e0ffffff9b   12..H.x......`..
            ffffffd4d0e17d44:  cede60c8ffffffd4 00000fffffffffd4   .....`..........
    
    The workaround in e09e28671 (use strlcpy in __trace_find_cmdline) was
    likely needed because of this same bug.
    
    Solved by vsnprintf:ing to a local buffer, then using set_task_comm().
    This way, there won't be a window where comm is not terminated.
    
    Link: http://lkml.kernel.org/r/20180726071539.188015-1-snild@sony.com
    
    Cc: stable@vger.kernel.org
    Fixes: bc0c38d139ec7 ("ftrace: latency tracer infrastructure")
    Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Snild Dolkow <snild@sony.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a9737bb91c70d81654357963fe59df7b9fa8f03c
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Wed Jul 25 16:02:06 2018 -0400

    tracing: Fix possible double free in event_enable_trigger_func()
    
    commit 15cc78644d0075e76d59476a4467e7143860f660 upstream.
    
    There was a case that triggered a double free in event_trigger_callback()
    due to the called reg() function freeing the trigger_data and then it
    getting freed again by the error return by the caller. The solution there
    was to up the trigger_data ref count.
    
    Code inspection found that event_enable_trigger_func() has the same issue,
    but is not as easy to trigger (requires harder to trigger failures). It
    needs to be solved slightly different as it needs more to clean up when the
    reg() function fails.
    
    Link: http://lkml.kernel.org/r/20180725124008.7008e586@gandalf.local.home
    
    Cc: stable@vger.kernel.org
    Fixes: 7862ad1846e99 ("tracing: Add 'enable_event' and 'disable_event' event trigger commands")
    Reivewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2a0ce1ff087c7a49b979ee2cea9cc1dd833c0822
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Tue Jul 24 19:13:31 2018 -0400

    tracing: Fix double free of event_trigger_data
    
    commit 1863c387259b629e4ebfb255495f67cd06aa229b upstream.
    
    Running the following:
    
     # cd /sys/kernel/debug/tracing
     # echo 500000 > buffer_size_kb
    [ Or some other number that takes up most of memory ]
     # echo snapshot > events/sched/sched_switch/trigger
    
    Triggers the following bug:
    
     ------------[ cut here ]------------
     kernel BUG at mm/slub.c:296!
     invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC PTI
     CPU: 6 PID: 6878 Comm: bash Not tainted 4.18.0-rc6-test+ #1066
     Hardware name: Hewlett-Packard HP Compaq Pro 6300 SFF/339A, BIOS K01 v03.03 07/14/2016
     RIP: 0010:kfree+0x16c/0x180
     Code: 05 41 0f b6 72 51 5b 5d 41 5c 4c 89 d7 e9 ac b3 f8 ff 48 89 d9 48 89 da 41 b8 01 00 00 00 5b 5d 41 5c 4c 89 d6 e9 f4 f3 ff ff <0f> 0b 0f 0b 48 8b 3d d9 d8 f9 00 e9 c1 fe ff ff 0f 1f 40 00 0f 1f
     RSP: 0018:ffffb654436d3d88 EFLAGS: 00010246
     RAX: ffff91a9d50f3d80 RBX: ffff91a9d50f3d80 RCX: ffff91a9d50f3d80
     RDX: 00000000000006a4 RSI: ffff91a9de5a60e0 RDI: ffff91a9d9803500
     RBP: ffffffff8d267c80 R08: 00000000000260e0 R09: ffffffff8c1a56be
     R10: fffff0d404543cc0 R11: 0000000000000389 R12: ffffffff8c1a56be
     R13: ffff91a9d9930e18 R14: ffff91a98c0c2890 R15: ffffffff8d267d00
     FS:  00007f363ea64700(0000) GS:ffff91a9de580000(0000) knlGS:0000000000000000
     CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
     CR2: 000055c1cacc8e10 CR3: 00000000d9b46003 CR4: 00000000001606e0
     Call Trace:
      event_trigger_callback+0xee/0x1d0
      event_trigger_write+0xfc/0x1a0
      __vfs_write+0x33/0x190
      ? handle_mm_fault+0x115/0x230
      ? _cond_resched+0x16/0x40
      vfs_write+0xb0/0x190
      ksys_write+0x52/0xc0
      do_syscall_64+0x5a/0x160
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
     RIP: 0033:0x7f363e16ab50
     Code: 73 01 c3 48 8b 0d 38 83 2c 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d 79 db 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 1e e3 01 00 48 89 04 24
     RSP: 002b:00007fff9a4c6378 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
     RAX: ffffffffffffffda RBX: 0000000000000009 RCX: 00007f363e16ab50
     RDX: 0000000000000009 RSI: 000055c1cacc8e10 RDI: 0000000000000001
     RBP: 000055c1cacc8e10 R08: 00007f363e435740 R09: 00007f363ea64700
     R10: 0000000000000073 R11: 0000000000000246 R12: 0000000000000009
     R13: 0000000000000001 R14: 00007f363e4345e0 R15: 00007f363e4303c0
     Modules linked in: ip6table_filter ip6_tables snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_codec snd_hwdep snd_hda_core snd_seq snd_seq_device i915 snd_pcm snd_timer i2c_i801 snd soundcore i2c_algo_bit drm_kms_helper
    86_pkg_temp_thermal video kvm_intel kvm irqbypass wmi e1000e
     ---[ end trace d301afa879ddfa25 ]---
    
    The cause is because the register_snapshot_trigger() call failed to
    allocate the snapshot buffer, and then called unregister_trigger()
    which freed the data that was passed to it. Then on return to the
    function that called register_snapshot_trigger(), as it sees it
    failed to register, it frees the trigger_data again and causes
    a double free.
    
    By calling event_trigger_init() on the trigger_data (which only ups
    the reference counter for it), and then event_trigger_free() afterward,
    the trigger_data would not get freed by the registering trigger function
    as it would only up and lower the ref count for it. If the register
    trigger function fails, then the event_trigger_free() called after it
    will free the trigger data normally.
    
    Link: http://lkml.kernel.org/r/20180724191331.738eb819@gandalf.local.home
    
    Cc: stable@vger.kerne.org
    Fixes: 93e31ffbf417 ("tracing: Add 'snapshot' event trigger command")
    Reported-by: Masami Hiramatsu <mhiramat@kernel.org>
    Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb025250ae5f92ccb8adcc60843ddd442401d869
Author: Shakeel Butt <shakeelb@google.com>
Date:   Thu Jul 26 16:37:45 2018 -0700

    kvm, mm: account shadow page tables to kmemcg
    
    commit d97e5e6160c0e0a23963ec198c7cb1c69e6bf9e8 upstream.
    
    The size of kvm's shadow page tables corresponds to the size of the
    guest virtual machines on the system.  Large VMs can spend a significant
    amount of memory as shadow page tables which can not be left as system
    memory overhead.  So, account shadow page tables to the kmemcg.
    
    [shakeelb@google.com: replace (GFP_KERNEL|__GFP_ACCOUNT) with GFP_KERNEL_ACCOUNT]
      Link: http://lkml.kernel.org/r/20180629140224.205849-1-shakeelb@google.com
    Link: http://lkml.kernel.org/r/20180627181349.149778-1-shakeelb@google.com
    Signed-off-by: Shakeel Butt <shakeelb@google.com>
    Cc: Michal Hocko <mhocko@kernel.org>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Greg Thelen <gthelen@google.com>
    Cc: Radim Krčmář <rkrcmar@redhat.com>
    Cc: Peter Feiner <pfeiner@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ed569edd49030e11a3e8e3ba44ebe3f0da02491
Author: KT Liao <kt.liao@emc.com.tw>
Date:   Mon Jul 16 12:10:03 2018 +0000

    Input: elan_i2c - add another ACPI ID for Lenovo Ideapad 330-15AST
    
    commit 6f88a6439da5d94de334a341503bc2c7f4a7ea7f upstream.
    
    Add ELAN0622 to ACPI mapping table to support Elan touchpad found in
    Ideapad 330-15AST.
    
    Signed-off-by: KT Liao <kt.liao@emc.com.tw>
    Reported-by: Anant Shende <anantshende@gmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79f4095a167f414918668a6b79a1c26b0b4b7ae6
Author: Chen-Yu Tsai <wens@csie.org>
Date:   Wed Jul 18 17:24:35 2018 +0000

    Input: i8042 - add Lenovo LaVie Z to the i8042 reset list
    
    commit 384cf4285b34e08917e3e66603382f2b0c4f6e1b upstream.
    
    The Lenovo LaVie Z laptop requires i8042 to be reset in order to
    consistently detect its Elantech touchpad. The nomux and kbdreset
    quirks are not sufficient.
    
    It's possible the other LaVie Z models from NEC require this as well.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 19e28842d02a66ffbe9574215ffb283d9c6cb062
Author: Donald Shanty III <dshanty@protonmail.com>
Date:   Wed Jul 4 15:50:47 2018 +0000

    Input: elan_i2c - add ACPI ID for lenovo ideapad 330
    
    commit 938f45008d8bc391593c97508bc798cc95a52b9b upstream.
    
    This allows Elan driver to bind to the touchpad found in Lenovo Ideapad 330
    series laptops.
    
    Signed-off-by: Donald Shanty III <dshanty@protonmail.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>