commit 80f0831c72d498fb27c90de47e0f69d593000305
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 23 08:19:43 2020 +0100

    Linux 4.9.211

commit 1bdac6c2fed0fc0789b9c29d7f5e1ab2b200182a
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Wed Nov 6 18:31:25 2019 +0100

    regulator: ab8500: Remove SYSCLKREQ from enum ab8505_regulator_id
    
    commit 458ea3ad033fc86e291712ce50cbe60c3428cf30 upstream.
    
    Those regulators are not actually supported by the AB8500 regulator
    driver. There is no ab8500_regulator_info for them and no entry in
    ab8505_regulator_match.
    
    As such, they cannot be registered successfully, and looking them
    up in ab8505_regulator_match causes an out-of-bounds array read.
    
    Fixes: 547f384f33db ("regulator: ab8500: add support for ab8505")
    Cc: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Stephan Gerhold <stephan@gerhold.net>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Link: https://lore.kernel.org/r/20191106173125.14496-2-stephan@gerhold.net
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3a98887b15848a7fbae993e746bf6bc676459d5
Author: Masami Hiramatsu <mhiramat@kernel.org>
Date:   Fri Oct 25 17:46:25 2019 +0900

    perf probe: Fix wrong address verification
    
    commit 07d369857808b7e8e471bbbbb0074a6718f89b31 upstream.
    
    Since there are some DIE which has only ranges instead of the
    combination of entrypc/highpc, address verification must use
    dwarf_haspc() instead of dwarf_entrypc/dwarf_highpc.
    
    Also, the ranges only DIE will have a partial code in different section
    (e.g. unlikely code will be in text.unlikely as "FUNC.cold" symbol). In
    that case, we can not use dwarf_entrypc() or die_entrypc(), because the
    offset from original DIE can be a minus value.
    
    Instead, this simply gets the symbol and offset from symtab.
    
    Without this patch;
    
      # perf probe -D clear_tasks_mm_cpumask:1
      Failed to get entry address of clear_tasks_mm_cpumask
        Error: Failed to add events.
    
    And with this patch:
    
      # perf probe -D clear_tasks_mm_cpumask:1
      p:probe/clear_tasks_mm_cpumask clear_tasks_mm_cpumask+0
      p:probe/clear_tasks_mm_cpumask_1 clear_tasks_mm_cpumask+5
      p:probe/clear_tasks_mm_cpumask_2 clear_tasks_mm_cpumask+8
      p:probe/clear_tasks_mm_cpumask_3 clear_tasks_mm_cpumask+16
      p:probe/clear_tasks_mm_cpumask_4 clear_tasks_mm_cpumask+82
    
    Committer testing:
    
    I managed to reproduce the above:
    
      [root@quaco ~]# perf probe -D clear_tasks_mm_cpumask:1
      p:probe/clear_tasks_mm_cpumask _text+919968
      p:probe/clear_tasks_mm_cpumask_1 _text+919973
      p:probe/clear_tasks_mm_cpumask_2 _text+919976
      [root@quaco ~]#
    
    But then when trying to actually put the probe in place, it fails if I
    use :0 as the offset:
    
      [root@quaco ~]# perf probe -L clear_tasks_mm_cpumask | head -5
      <clear_tasks_mm_cpumask@/usr/src/debug/kernel-5.2.fc30/linux-5.2.18-200.fc30.x86_64/kernel/cpu.c:0>
            0  void clear_tasks_mm_cpumask(int cpu)
            1  {
            2       struct task_struct *p;
    
      [root@quaco ~]# perf probe clear_tasks_mm_cpumask:0
      Probe point 'clear_tasks_mm_cpumask' not found.
        Error: Failed to add events.
      [root@quaco
    
    The next patch is needed to fix this case.
    
    Fixes: 576b523721b7 ("perf probe: Fix probing symbols with optimization suffix")
    Reported-by: Arnaldo Carvalho de Melo <acme@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: http://lore.kernel.org/lkml/157199318513.8075.10463906803299647907.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c87b9e7dfb59457d9af12b2a342da46b82dacb2b
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Fri Nov 1 14:14:47 2019 -0700

    scsi: core: scsi_trace: Use get_unaligned_be*()
    
    commit b1335f5b0486f61fb66b123b40f8e7a98e49605d upstream.
    
    This patch fixes an unintended sign extension on left shifts. From Colin
    King: "Shifting a u8 left will cause the value to be promoted to an
    integer. If the top bit of the u8 is set then the following conversion to
    an u64 will sign extend the value causing the upper 32 bits to be set in
    the result."
    
    Fix this by using get_unaligned_be*() instead.
    
    Fixes: bf8162354233 ("[SCSI] add scsi trace core functions and put trace points")
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Douglas Gilbert <dgilbert@interlog.com>
    Link: https://lore.kernel.org/r/20191101211447.187151-1-bvanassche@acm.org
    Reported-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9b6e2c42ac663fa1f7d43c862bef6102aeb18294
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Thu Nov 7 13:55:25 2019 -0800

    scsi: target: core: Fix a pr_debug() argument
    
    commit c941e0d172605731de9b4628bd4146d35cf2e7d6 upstream.
    
    Print the string for which conversion failed instead of printing the
    function name twice.
    
    Fixes: 2650d71e244f ("target: move transport ID handling to the core")
    Cc: Christoph Hellwig <hch@lst.de>
    Link: https://lore.kernel.org/r/20191107215525.64415-1-bvanassche@acm.org
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 154d9c5b335282f2ee88d61890ae662e4b881005
Author: Pan Bian <bianpan2016@163.com>
Date:   Wed Nov 6 20:32:21 2019 +0800

    scsi: bnx2i: fix potential use after free
    
    commit 29d28f2b8d3736ac61c28ef7e20fda63795b74d9 upstream.
    
    The member hba->pcidev may be used after its reference is dropped. Move the
    put function to where it is never used to avoid potential use after free
    issues.
    
    Fixes: a77171806515 ("[SCSI] bnx2i: Removed the reference to the netdev->base_addr")
    Link: https://lore.kernel.org/r/1573043541-19126-1-git-send-email-bianpan2016@163.com
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2dd06d8b8ed64d197b37db91d40b843596d1c9cb
Author: Pan Bian <bianpan2016@163.com>
Date:   Tue Nov 5 17:25:27 2019 +0800

    scsi: qla4xxx: fix double free bug
    
    commit 3fe3d2428b62822b7b030577cd612790bdd8c941 upstream.
    
    The variable init_fw_cb is released twice, resulting in a double free
    bug. The call to the function dma_free_coherent() before goto is removed to
    get rid of potential double free.
    
    Fixes: 2a49a78ed3c8 ("[SCSI] qla4xxx: added IPv6 support.")
    Link: https://lore.kernel.org/r/1572945927-27796-1-git-send-email-bianpan2016@163.com
    Signed-off-by: Pan Bian <bianpan2016@163.com>
    Acked-by: Manish Rangankar <mrangankar@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 501cdba86ce0a767bab5890dbc18204ba6cc8c72
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Oct 22 13:23:24 2019 +0300

    scsi: esas2r: unlock on error in esas2r_nvram_read_direct()
    
    commit 906ca6353ac09696c1bf0892513c8edffff5e0a6 upstream.
    
    This error path is missing an unlock.
    
    Fixes: 26780d9e12ed ("[SCSI] esas2r: ATTO Technology ExpressSAS 6G SAS/SATA RAID Adapter Driver")
    Link: https://lore.kernel.org/r/20191022102324.GA27540@mwanda
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5774dd526d117e960332b2de7b5f36188a87efa2
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Wed Jan 15 13:00:59 2020 -0500

    reiserfs: fix handling of -EOPNOTSUPP in reiserfs_for_each_xattr
    
    commit 394440d469413fa9b74f88a11f144d76017221f2 upstream.
    
    Commit 60e4cf67a58 (reiserfs: fix extended attributes on the root
    directory) introduced a regression open_xa_root started returning
    -EOPNOTSUPP but it was not handled properly in reiserfs_for_each_xattr.
    
    When the reiserfs module is built without CONFIG_REISERFS_FS_XATTR,
    deleting an inode would result in a warning and chowning an inode
    would also result in a warning and then fail to complete.
    
    With CONFIG_REISERFS_FS_XATTR enabled, the xattr root would always be
    present for read-write operations.
    
    This commit handles -EOPNOSUPP in the same way -ENODATA is handled.
    
    Fixes: 60e4cf67a582 ("reiserfs: fix extended attributes on the root directory")
    CC: stable@vger.kernel.org      # Commit 60e4cf67a58 was picked up by stable
    Link: https://lore.kernel.org/r/20200115180059.6935-1-jeffm@suse.com
    Reported-by: Michael Brunnbauer <brunni@netestate.de>
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 230b5786eab6c2dd767accb6fabfd0c30c8a01c3
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Mon Jan 13 12:53:59 2020 +0100

    cfg80211: check for set_wiphy_params
    
    commit 24953de0a5e31dcca7e82c8a3c79abc2dfe8fb6e upstream.
    
    Check if set_wiphy_params is assigned and return an error if not,
    some drivers (e.g. virt_wifi where syzbot reported it) don't have
    it.
    
    Reported-by: syzbot+e8a797964a4180eb57d5@syzkaller.appspotmail.com
    Reported-by: syzbot+34b582cf32c1db008f8e@syzkaller.appspotmail.com
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Link: https://lore.kernel.org/r/20200113125358.ac07f276efff.Ibd85ee1b12e47b9efb00a2adc5cd3fac50da791a@changeid
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c136d25c9c68005f550676273c59855412192c9d
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Oct 1 14:45:01 2019 +0300

    cw1200: Fix a signedness bug in cw1200_load_firmware()
    
    commit 4a50d454502f1401171ff061a5424583f91266db upstream.
    
    The "priv->hw_type" is an enum and in this context GCC will treat it
    as an unsigned int so the error handling will never trigger.
    
    Fixes: a910e4a94f69 ("cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5f345632f465972caff499ffa18db891fd909ec5
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Mon Dec 9 13:14:44 2019 -0700

    xen/blkfront: Adjust indentation in xlvbd_alloc_gendisk
    
    commit 589b72894f53124a39d1bb3c0cecaf9dcabac417 upstream.
    
    Clang warns:
    
    ../drivers/block/xen-blkfront.c:1117:4: warning: misleading indentation;
    statement is not part of the previous 'if' [-Wmisleading-indentation]
                    nr_parts = PARTS_PER_DISK;
                    ^
    ../drivers/block/xen-blkfront.c:1115:3: note: previous statement is here
                    if (err)
                    ^
    
    This is because there is a space at the beginning of this line; remove
    it so that the indentation is consistent according to the Linux kernel
    coding style and clang no longer warns.
    
    While we are here, the previous line has some trailing whitespace; clean
    that up as well.
    
    Fixes: c80a420995e7 ("xen-blkfront: handle Xen major numbers other than XENVBD")
    Link: https://github.com/ClangBuiltLinux/linux/issues/791
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Reviewed-by: Juergen Gross <jgross@suse.com>
    Acked-by: Roger Pau Monné <roger.pau@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9e76e8c6354bf5b799001f28e1aafcaa58f2377
Author: Eric Dumazet <edumazet@google.com>
Date:   Mon Jan 13 09:27:11 2020 -0800

    net: usb: lan78xx: limit size of local TSO packets
    
    [ Upstream commit f8d7408a4d7f60f8b2df0f81decdc882dd9c20dc ]
    
    lan78xx_tx_bh() makes sure to not exceed MAX_SINGLE_PACKET_SIZE
    bytes in the aggregated packets it builds, but does
    nothing to prevent large GSO packets being submitted.
    
    Pierre-Francois reported various hangs when/if TSO is enabled.
    
    For localy generated packets, we can use netif_set_gso_max_size()
    to limit the size of TSO packets.
    
    Note that forwarded packets could still hit the issue,
    so a complete fix might require implementing .ndo_features_check
    for this driver, forcing a software segmentation if the size
    of the TSO packet exceeds MAX_SINGLE_PACKET_SIZE.
    
    Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet device driver")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: RENARD Pierre-Francois <pfrenard@gmail.com>
    Tested-by: RENARD Pierre-Francois <pfrenard@gmail.com>
    Cc: Stefan Wahren <stefan.wahren@i2se.com>
    Cc: Woojung Huh <woojung.huh@microchip.com>
    Cc: Microchip Linux Driver Support <UNGLinuxDriver@microchip.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3930b48a34abec508db506dd758ccb8dd2af921f
Author: Pengcheng Yang <yangpc@wangsu.com>
Date:   Tue Jan 14 17:23:40 2020 +0800

    tcp: fix marked lost packets not being retransmitted
    
    [ Upstream commit e176b1ba476cf36f723cfcc7a9e57f3cb47dec70 ]
    
    When the packet pointed to by retransmit_skb_hint is unlinked by ACK,
    retransmit_skb_hint will be set to NULL in tcp_clean_rtx_queue().
    If packet loss is detected at this time, retransmit_skb_hint will be set
    to point to the current packet loss in tcp_verify_retransmit_hint(),
    then the packets that were previously marked lost but not retransmitted
    due to the restriction of cwnd will be skipped and cannot be
    retransmitted.
    
    To fix this, when retransmit_skb_hint is NULL, retransmit_skb_hint can
    be reset only after all marked lost packets are retransmitted
    (retrans_out >= lost_out), otherwise we need to traverse from
    tcp_rtx_queue_head in tcp_xmit_retransmit_queue().
    
    Packetdrill to demonstrate:
    
    // Disable RACK and set max_reordering to keep things simple
        0 `sysctl -q net.ipv4.tcp_recovery=0`
       +0 `sysctl -q net.ipv4.tcp_max_reordering=3`
    
    // Establish a connection
       +0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
       +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
       +0 bind(3, ..., ...) = 0
       +0 listen(3, 1) = 0
    
      +.1 < S 0:0(0) win 32792 <mss 1000,sackOK,nop,nop,nop,wscale 7>
       +0 > S. 0:0(0) ack 1 <...>
     +.01 < . 1:1(0) ack 1 win 257
       +0 accept(3, ..., ...) = 4
    
    // Send 8 data segments
       +0 write(4, ..., 8000) = 8000
       +0 > P. 1:8001(8000) ack 1
    
    // Enter recovery and 1:3001 is marked lost
     +.01 < . 1:1(0) ack 1 win 257 <sack 3001:4001,nop,nop>
       +0 < . 1:1(0) ack 1 win 257 <sack 5001:6001 3001:4001,nop,nop>
       +0 < . 1:1(0) ack 1 win 257 <sack 5001:7001 3001:4001,nop,nop>
    
    // Retransmit 1:1001, now retransmit_skb_hint points to 1001:2001
       +0 > . 1:1001(1000) ack 1
    
    // 1001:2001 was ACKed causing retransmit_skb_hint to be set to NULL
     +.01 < . 1:1(0) ack 2001 win 257 <sack 5001:8001 3001:4001,nop,nop>
    // Now retransmit_skb_hint points to 4001:5001 which is now marked lost
    
    // BUG: 2001:3001 was not retransmitted
       +0 > . 2001:3001(1000) ack 1
    
    Signed-off-by: Pengcheng Yang <yangpc@wangsu.com>
    Acked-by: Neal Cardwell <ncardwell@google.com>
    Tested-by: Neal Cardwell <ncardwell@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 068300d63ed23e75fc79d7aa0c95695a5b17ddd0
Author: Johan Hovold <johan@kernel.org>
Date:   Tue Jan 14 09:27:29 2020 +0100

    r8152: add missing endpoint sanity check
    
    [ Upstream commit 86f3f4cd53707ceeec079b83205c8d3c756eca93 ]
    
    Add missing endpoint sanity check to probe in order to prevent a
    NULL-pointer dereference (or slab out-of-bounds access) when retrieving
    the interrupt-endpoint bInterval on ndo_open() in case a device lacks
    the expected endpoints.
    
    Fixes: 40a82917b1d3 ("net/usb/r8152: enable interrupt transfer")
    Cc: hayeswang <hayeswang@realtek.com>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4b800e1cc03306ae2e70cdf76049eabfeccf4eea
Author: Colin Ian King <colin.king@canonical.com>
Date:   Tue Jan 14 14:54:48 2020 +0000

    net/wan/fsl_ucc_hdlc: fix out of bounds write on array utdm_info
    
    [ Upstream commit ddf420390526ede3b9ff559ac89f58cb59d9db2f ]
    
    Array utdm_info is declared as an array of MAX_HDLC_NUM (4) elements
    however up to UCC_MAX_NUM (8) elements are potentially being written
    to it.  Currently we have an array out-of-bounds write error on the
    last 4 elements. Fix this by making utdm_info UCC_MAX_NUM elements in
    size.
    
    Addresses-Coverity: ("Out-of-bounds write")
    Fixes: c19b6d246a35 ("drivers/net: support hdlc function for QE-UCC")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8efa7c634c881e688cc358ef0fb592fc908f7a3
Author: Alexander Lobakin <alobakin@dlink.ru>
Date:   Wed Jan 15 11:56:52 2020 +0300

    net: dsa: tag_qca: fix doubled Tx statistics
    
    [ Upstream commit bd5874da57edd001b35cf28ae737779498c16a56 ]
    
    DSA subsystem takes care of netdev statistics since commit 4ed70ce9f01c
    ("net: dsa: Refactor transmit path to eliminate duplication"), so
    any accounting inside tagger callbacks is redundant and can lead to
    messing up the stats.
    This bug is present in Qualcomm tagger since day 0.
    
    Fixes: cafdc45c949b ("net-next: dsa: add Qualcomm tag RX/TX handler")
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Alexander Lobakin <alobakin@dlink.ru>
    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 bde7568224a8d1fca99d00ec3f35d9f8fdc50cc6
Author: Eric Dumazet <edumazet@google.com>
Date:   Tue Jan 14 13:00:35 2020 -0800

    macvlan: use skb_reset_mac_header() in macvlan_queue_xmit()
    
    [ Upstream commit 1712b2fff8c682d145c7889d2290696647d82dab ]
    
    I missed the fact that macvlan_broadcast() can be used both
    in RX and TX.
    
    skb_eth_hdr() makes only sense in TX paths, so we can not
    use it blindly in macvlan_broadcast()
    
    Fixes: 96cc4b69581d ("macvlan: do not assume mac_header is set in macvlan_broadcast()")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: Jurgen Van Ham <juvanham@gmail.com>
    Tested-by: Matteo Croce <mcroce@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 717e9a5279a259e5463eab4515d82b4d998e8b20
Author: Sven Eckelmann <sven@narfation.org>
Date:   Thu Nov 28 12:25:45 2019 +0100

    batman-adv: Fix DAT candidate selection on little endian systems
    
    commit 4cc4a1708903f404d2ca0dfde30e71e052c6cbc9 upstream.
    
    The distributed arp table is using a DHT to store and retrieve MAC address
    information for an IP address. This is done using unicast messages to
    selected peers. The potential peers are looked up using the IP address and
    the VID.
    
    While the IP address is always stored in big endian byte order, this is not
    the case of the VID. It can (depending on the host system) either be big
    endian or little endian. The host must therefore always convert it to big
    endian to ensure that all devices calculate the same peers for the same
    lookup data.
    
    Fixes: be1db4f6615b ("batman-adv: make the Distributed ARP Table vlan aware")
    Signed-off-by: Sven Eckelmann <sven@narfation.org>
    Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2564ab9b0be378759f40326912c73ee1f510a8aa
Author: Florian Westphal <fw@strlen.de>
Date:   Sat Jan 11 23:19:53 2020 +0100

    netfilter: arp_tables: init netns pointer in xt_tgdtor_param struct
    
    commit 212e7f56605ef9688d0846db60c6c6ec06544095 upstream.
    
    An earlier commit (1b789577f655060d98d20e,
    "netfilter: arp_tables: init netns pointer in xt_tgchk_param struct")
    fixed missing net initialization for arptables, but turns out it was
    incomplete.  We can get a very similar struct net NULL deref during
    error unwinding:
    
    general protection fault: 0000 [#1] PREEMPT SMP KASAN
    RIP: 0010:xt_rateest_put+0xa1/0x440 net/netfilter/xt_RATEEST.c:77
     xt_rateest_tg_destroy+0x72/0xa0 net/netfilter/xt_RATEEST.c:175
     cleanup_entry net/ipv4/netfilter/arp_tables.c:509 [inline]
     translate_table+0x11f4/0x1d80 net/ipv4/netfilter/arp_tables.c:587
     do_replace net/ipv4/netfilter/arp_tables.c:981 [inline]
     do_arpt_set_ctl+0x317/0x650 net/ipv4/netfilter/arp_tables.c:1461
    
    Also init the netns pointer in xt_tgdtor_param struct.
    
    Fixes: add67461240c1d ("netfilter: add struct net * to target parameters")
    Reported-by: syzbot+91bdd8eece0f6629ec8b@syzkaller.appspotmail.com
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2afd32b8dfccece89f08cce9f00fa513ff0446ef
Author: Cong Wang <xiyou.wangcong@gmail.com>
Date:   Fri Jan 10 11:53:08 2020 -0800

    netfilter: fix a use-after-free in mtype_destroy()
    
    commit c120959387efa51479056fd01dc90adfba7a590c upstream.
    
    map->members is freed by ip_set_free() right before using it in
    mtype_ext_cleanup() again. So we just have to move it down.
    
    Reported-by: syzbot+4c3cc6dbe7259dbf9054@syzkaller.appspotmail.com
    Fixes: 40cd63bf33b2 ("netfilter: ipset: Support extensions which need a per data destroy function")
    Acked-by: Jozsef Kadlecsik <kadlec@netfilter.org>
    Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4a0a338548988d606d7f3a13a6a88cafdee78950
Author: Felix Fietkau <nbd@nbd.name>
Date:   Mon Jan 13 19:21:07 2020 +0100

    cfg80211: fix page refcount issue in A-MSDU decap
    
    commit 81c044fc3bdc5b7be967cd3682528ea94b58c06a upstream.
    
    The fragments attached to a skb can be part of a compound page. In that case,
    page_ref_inc will increment the refcount for the wrong page. Fix this by
    using get_page instead, which calls page_ref_inc on the compound head and
    also checks for overflow.
    
    Fixes: 2b67f944f88c ("cfg80211: reuse existing page fragments in A-MSDU rx")
    Cc: stable@vger.kernel.org
    Signed-off-by: Felix Fietkau <nbd@nbd.name>
    Link: https://lore.kernel.org/r/20200113182107.20461-1-nbd@nbd.name
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3407f517389cf218a636f29f52fe4201075a1dbb
Author: Dinh Nguyen <dinguyen@kernel.org>
Date:   Wed Nov 20 09:15:17 2019 -0600

    arm64: dts: agilex/stratix10: fix pmu interrupt numbers
    
    [ Upstream commit 210de0e996aee8e360ccc9e173fe7f0a7ed2f695 ]
    
    Fix up the correct interrupt numbers for the PMU unit on Agilex
    and Stratix10.
    
    Fixes: 78cd6a9d8e15 ("arm64: dts: Add base stratix 10 dtsi")
    Cc: linux-stable <stable@vger.kernel.org>
    Reported-by: Meng Li <Meng.Li@windriver.com>
    Signed-off-by: Dinh Nguyen <dinguyen@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0351da897d2077a498e53570dc9c61e49b97c866
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue Jan 7 21:15:49 2020 +0100

    scsi: fnic: fix invalid stack access
    
    [ Upstream commit 42ec15ceaea74b5f7a621fc6686cbf69ca66c4cf ]
    
    gcc -O3 warns that some local variables are not properly initialized:
    
    drivers/scsi/fnic/vnic_dev.c: In function 'fnic_dev_hang_notify':
    drivers/scsi/fnic/vnic_dev.c:511:16: error: 'a0' is used uninitialized in this function [-Werror=uninitialized]
      vdev->args[0] = *a0;
      ~~~~~~~~~~~~~~^~~~~
    drivers/scsi/fnic/vnic_dev.c:691:6: note: 'a0' was declared here
      u64 a0, a1;
          ^~
    drivers/scsi/fnic/vnic_dev.c:512:16: error: 'a1' is used uninitialized in this function [-Werror=uninitialized]
      vdev->args[1] = *a1;
      ~~~~~~~~~~~~~~^~~~~
    drivers/scsi/fnic/vnic_dev.c:691:10: note: 'a1' was declared here
      u64 a0, a1;
              ^~
    drivers/scsi/fnic/vnic_dev.c: In function 'fnic_dev_mac_addr':
    drivers/scsi/fnic/vnic_dev.c:512:16: error: 'a1' is used uninitialized in this function [-Werror=uninitialized]
      vdev->args[1] = *a1;
      ~~~~~~~~~~~~~~^~~~~
    drivers/scsi/fnic/vnic_dev.c:698:10: note: 'a1' was declared here
      u64 a0, a1;
              ^~
    
    Apparently the code relies on the local variables occupying adjacent memory
    locations in the same order, but this is of course not guaranteed.
    
    Use an array of two u64 variables where needed to make it work correctly.
    
    I suspect there is also an endianness bug here, but have not digged in deep
    enough to be sure.
    
    Fixes: 5df6d737dd4b ("[SCSI] fnic: Add new Cisco PCI-Express FCoE HBA")
    Fixes: mmtom ("init/Kconfig: enable -O3 for all arches")
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20200107201602.4096790-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e41f5afe569dbc1d152f20f83a3ca355f2981b61
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Sat Oct 22 20:32:26 2016 +0300

    scsi: fnic: use kernel's '%pM' format option to print MAC
    
    [ Upstream commit 36fe90b0f0bdc9d030e88ba2153f3c8d6b6a5964 ]
    
    Instead of supplying each byte through stack let's use %pM specifier.
    
    Cc: Hiral Patel <hiralpat@cisco.com>
    Cc: Suma Ramars <sramars@cisco.com>
    Acked-by: Tom Tucker <tom@opengridcomputing.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Ewan D. Milne <emilne@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 79ed6ec4cc99b1a67eb30c9a449fbdf34c986742
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jan 17 10:50:25 2020 +0100

    USB: serial: keyspan: handle unbound ports
    
    [ Upstream commit 3018dd3fa114b13261e9599ddb5656ef97a1fa17 ]
    
    Check for NULL port data in the control URB completion handlers to avoid
    dereferencing a NULL pointer in the unlikely case where a port device
    isn't bound to a driver (e.g. after an allocation failure on port
    probe()).
    
    Fixes: 0ca1268e109a ("USB Serial Keyspan: add support for USA-49WG & USA-28XG")
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72af08ee599a57c8582efce617f6510c6e15d0a0
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jan 17 10:50:23 2020 +0100

    USB: serial: io_edgeport: handle unbound ports on URB completion
    
    [ Upstream commit e37d1aeda737a20b1846a91a3da3f8b0f00cf690 ]
    
    Check for NULL port data in the shared interrupt and bulk completion
    callbacks to avoid dereferencing a NULL pointer in case a device sends
    data for a port device which isn't bound to a driver (e.g. due to a
    malicious device having unexpected endpoints or after an allocation
    failure on port probe).
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3d70345a0ca0489dddb6e8282155fe2b377e05af
Author: John Ogness <john.ogness@linutronix.de>
Date:   Sun Jun 24 00:32:06 2018 +0200

    USB: serial: io_edgeport: use irqsave() in USB's complete callback
    
    [ Upstream commit dd1fae527612543e560e84f2eba4f6ef2006ac55 ]
    
    The USB completion callback does not disable interrupts while acquiring
    the lock. We want to remove the local_irq_disable() invocation from
    __usb_hcd_giveback_urb() and therefore it is required for the callback
    handler to disable the interrupts while acquiring the lock.
    The callback may be invoked either in IRQ or BH context depending on the
    USB host controller.
    Use the _irqsave() variant of the locking primitives.
    
    Signed-off-by: John Ogness <john.ogness@linutronix.de>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0320e2ed39bb128da21ff71611fb94341346c030
Author: Jose Abreu <Jose.Abreu@synopsys.com>
Date:   Wed Dec 18 11:17:42 2019 +0100

    net: stmmac: Enable 16KB buffer size
    
    commit b2f3a481c4cd62f78391b836b64c0a6e72b503d2 upstream.
    
    XGMAC supports maximum MTU that can go to 16KB. Lets add this check in
    the calculation of RX buffer size.
    
    Fixes: 7ac6653a085b ("stmmac: Move the STMicroelectronics driver")
    Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f0d719716686da90638d22d344adcfd0dc843ae
Author: Jose Abreu <Jose.Abreu@synopsys.com>
Date:   Wed Dec 18 11:17:41 2019 +0100

    net: stmmac: 16KB buffer must be 16 byte aligned
    
    commit 8605131747e7e1fd8f6c9f97a00287aae2b2c640 upstream.
    
    The 16KB RX Buffer must also be 16 byte aligned. Fix it.
    
    Fixes: 7ac6653a085b ("stmmac: Move the STMicroelectronics driver")
    Signed-off-by: Jose Abreu <Jose.Abreu@synopsys.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 28f04308d70ec6bb4a6ea3213cde9b46e178c79d
Author: Wen Yang <wenyang@linux.alibaba.com>
Date:   Mon Jan 13 16:29:23 2020 -0800

    mm/page-writeback.c: avoid potential division by zero in wb_min_max_ratio()
    
    commit 6d9e8c651dd979aa666bee15f086745f3ea9c4b3 upstream.
    
    Patch series "use div64_ul() instead of div_u64() if the divisor is
    unsigned long".
    
    We were first inspired by commit b0ab99e7736a ("sched: Fix possible divide
    by zero in avg_atom () calculation"), then refer to the recently analyzed
    mm code, we found this suspicious place.
    
     201                 if (min) {
     202                         min *= this_bw;
     203                         do_div(min, tot_bw);
     204                 }
    
    And we also disassembled and confirmed it:
    
      /usr/src/debug/kernel-4.9.168-016.ali3000/linux-4.9.168-016.ali3000.alios7.x86_64/mm/page-writeback.c: 201
      0xffffffff811c37da <__wb_calc_thresh+234>:      xor    %r10d,%r10d
      0xffffffff811c37dd <__wb_calc_thresh+237>:      test   %rax,%rax
      0xffffffff811c37e0 <__wb_calc_thresh+240>:      je 0xffffffff811c3800 <__wb_calc_thresh+272>
      /usr/src/debug/kernel-4.9.168-016.ali3000/linux-4.9.168-016.ali3000.alios7.x86_64/mm/page-writeback.c: 202
      0xffffffff811c37e2 <__wb_calc_thresh+242>:      imul   %r8,%rax
      /usr/src/debug/kernel-4.9.168-016.ali3000/linux-4.9.168-016.ali3000.alios7.x86_64/mm/page-writeback.c: 203
      0xffffffff811c37e6 <__wb_calc_thresh+246>:      mov    %r9d,%r10d    ---> truncates it to 32 bits here
      0xffffffff811c37e9 <__wb_calc_thresh+249>:      xor    %edx,%edx
      0xffffffff811c37eb <__wb_calc_thresh+251>:      div    %r10
      0xffffffff811c37ee <__wb_calc_thresh+254>:      imul   %rbx,%rax
      0xffffffff811c37f2 <__wb_calc_thresh+258>:      shr    $0x2,%rax
      0xffffffff811c37f6 <__wb_calc_thresh+262>:      mul    %rcx
      0xffffffff811c37f9 <__wb_calc_thresh+265>:      shr    $0x2,%rdx
      0xffffffff811c37fd <__wb_calc_thresh+269>:      mov    %rdx,%r10
    
    This series uses div64_ul() instead of div_u64() if the divisor is
    unsigned long, to avoid truncation to 32-bit on 64-bit platforms.
    
    This patch (of 3):
    
    The variables 'min' and 'max' are unsigned long and do_div truncates
    them to 32 bits, which means it can test non-zero and be truncated to
    zero for division.  Fix this issue by using div64_ul() instead.
    
    Link: http://lkml.kernel.org/r/20200102081442.8273-2-wenyang@linux.alibaba.com
    Fixes: 693108a8a667 ("writeback: make bdi->min/max_ratio handling cgroup writeback aware")
    Signed-off-by: Wen Yang <wenyang@linux.alibaba.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Qian Cai <cai@lca.pw>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Jens Axboe <axboe@kernel.dk>
    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 a9c122e96c3e96a71b4be55d1b0d5583cdeddc9c
Author: Jin Yao <yao.jin@linux.intel.com>
Date:   Fri Dec 20 09:37:19 2019 +0800

    perf report: Fix incorrectly added dimensions as switch perf data file
    
    commit 0feba17bd7ee3b7e03d141f119049dcc23efa94e upstream.
    
    We observed an issue that was some extra columns displayed after switching
    perf data file in browser. The steps to reproduce:
    
    1. perf record -a -e cycles,instructions -- sleep 3
    2. perf report --group
    3. In browser, we use hotkey 's' to switch to another perf.data
    4. Now in browser, the extra columns 'Self' and 'Children' are displayed.
    
    The issue is setup_sorting() executed again after repeat path, so dimensions
    are added again.
    
    This patch checks the last key returned from __cmd_report(). If it's
    K_SWITCH_INPUT_DATA, skips the setup_sorting().
    
    Fixes: ad0de0971b7f ("perf report: Enable the runtime switching of perf data file")
    Signed-off-by: Jin Yao <yao.jin@linux.intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Feng Tang <feng.tang@intel.com>
    Cc: Jin Yao <yao.jin@intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20191220013722.20592-1-yao.jin@linux.intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3f085b32410fc018cb2c4eaa8c690e300b2d8df8
Author: Yuya Fujita <fujita.yuya@fujitsu.com>
Date:   Thu Dec 19 08:08:32 2019 +0000

    perf hists: Fix variable name's inconsistency in hists__for_each() macro
    
    commit 55347ec340af401437680fd0e88df6739a967f9f upstream.
    
    Variable names are inconsistent in hists__for_each macro().
    
    Due to this inconsistency, the macro replaces its second argument with
    "fmt" regardless of its original name.
    
    So far it works because only "fmt" is passed to the second argument.
    However, this behavior is not expected and should be fixed.
    
    Fixes: f0786af536bb ("perf hists: Introduce hists__for_each_format macro")
    Fixes: aa6f50af822a ("perf hists: Introduce hists__for_each_sort_list macro")
    Signed-off-by: Yuya Fujita <fujita.yuya@fujitsu.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/OSAPR01MB1588E1C47AC22043175DE1B2E8520@OSAPR01MB1588.jpnprd01.prod.outlook.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e8b419ba3f6d44962e10319e170caa7cd6c924de
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Tue Dec 24 14:29:09 2019 +0100

    x86/efistub: Disable paging at mixed mode entry
    
    commit 4911ee401b7ceff8f38e0ac597cbf503d71e690c upstream.
    
    The EFI mixed mode entry code goes through the ordinary startup_32()
    routine before jumping into the kernel's EFI boot code in 64-bit
    mode. The 32-bit startup code must be entered with paging disabled,
    but this is not documented as a requirement for the EFI handover
    protocol, and so we should disable paging explicitly when entering
    the kernel from 32-bit EFI firmware.
    
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Cc: <stable@vger.kernel.org>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Hans de Goede <hdegoede@redhat.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Link: https://lkml.kernel.org/r/20191224132909.102540-4-ardb@kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 940c098da89d74b015ec5b2ddf34408a6d7d624d
Author: Keiya Nobuta <nobuta.keiya@fujitsu.com>
Date:   Thu Jan 9 14:14:48 2020 +0900

    usb: core: hub: Improved device recognition on remote wakeup
    
    commit 9c06ac4c83df6d6fbdbf7488fbad822b4002ba19 upstream.
    
    If hub_activate() is called before D+ has stabilized after remote
    wakeup, the following situation might occur:
    
             __      ___________________
            /  \    /
    D+   __/    \__/
    
    Hub  _______________________________
              |  ^   ^           ^
              |  |   |           |
    Host _____v__|___|___________|______
              |  |   |           |
              |  |   |           \-- Interrupt Transfer (*3)
              |  |    \-- ClearPortFeature (*2)
              |   \-- GetPortStatus (*1)
              \-- Host detects remote wakeup
    
    - D+ goes high, Host starts running by remote wakeup
    - D+ is not stable, goes low
    - Host requests GetPortStatus at (*1) and gets the following hub status:
      - Current Connect Status bit is 0
      - Connect Status Change bit is 1
    - D+ stabilizes, goes high
    - Host requests ClearPortFeature and thus Connect Status Change bit is
      cleared at (*2)
    - After waiting 100 ms, Host starts the Interrupt Transfer at (*3)
    - Since the Connect Status Change bit is 0, Hub returns NAK.
    
    In this case, port_event() is not called in hub_event() and Host cannot
    recognize device. To solve this issue, flag change_bits even if only
    Connect Status Change bit is 1 when got in the first GetPortStatus.
    
    This issue occurs rarely because it only if D+ changes during a very
    short time between GetPortStatus and ClearPortFeature. However, it is
    fatal if it occurs in embedded system.
    
    Signed-off-by: Keiya Nobuta <nobuta.keiya@fujitsu.com>
    Cc: stable <stable@vger.kernel.org>
    Acked-by: Alan Stern <stern@rowland.harvard.edu>
    Link: https://lore.kernel.org/r/20200109051448.28150-1-nobuta.keiya@fujitsu.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ddfa91a194d054fb765b919e593183794d6637d6
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Jan 14 15:34:14 2020 +0300

    scsi: mptfusion: Fix double fetch bug in ioctl
    
    commit 28d76df18f0ad5bcf5fa48510b225f0ed262a99b upstream.
    
    Tom Hatskevich reported that we look up "iocp" then, in the called
    functions we do a second copy_from_user() and look it up again.
    The problem that could cause is:
    
    drivers/message/fusion/mptctl.c
       674          /* All of these commands require an interrupt or
       675           * are unknown/illegal.
       676           */
       677          if ((ret = mptctl_syscall_down(iocp, nonblock)) != 0)
                                                   ^^^^
    We take this lock.
    
       678                  return ret;
       679
       680          if (cmd == MPTFWDOWNLOAD)
       681                  ret = mptctl_fw_download(arg);
                                                     ^^^
    Then the user memory changes and we look up "iocp" again but a different
    one so now we are holding the incorrect lock and have a race condition.
    
       682          else if (cmd == MPTCOMMAND)
       683                  ret = mptctl_mpt_command(arg);
    
    The security impact of this bug is not as bad as it could have been
    because these operations are all privileged and root already has
    enormous destructive power.  But it's still worth fixing.
    
    This patch passes the "iocp" pointer to the functions to avoid the
    second lookup.  That deletes 100 lines of code from the driver so
    it's a nice clean up as well.
    
    Link: https://lore.kernel.org/r/20200114123414.GA7957@kadam
    Reported-by: Tom Hatskevich <tom2001tom.23@gmail.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a3541209855b67c4d58cc2c0bb14dee592100df
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jan 17 15:35:26 2020 +0100

    USB: serial: quatech2: handle unbound ports
    
    commit 9715a43eea77e42678a1002623f2d9a78f5b81a1 upstream.
    
    Check for NULL port data in the modem- and line-status handlers to avoid
    dereferencing a NULL pointer in the unlikely case where a port device
    isn't bound to a driver (e.g. after an allocation failure on port
    probe).
    
    Note that the other (stubbed) event handlers qt2_process_xmit_empty()
    and qt2_process_flush() would need similar sanity checks in case they
    are ever implemented.
    
    Fixes: f7a33e608d9a ("USB: serial: add quatech2 usb to serial driver")
    Cc: stable <stable@vger.kernel.org>     # 3.5
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bbd5aeb61838aabe9d7cd0c74b73d305a0b55114
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jan 17 10:50:24 2020 +0100

    USB: serial: io_edgeport: add missing active-port sanity check
    
    commit 1568c58d11a7c851bd09341aeefd6a1c308ac40d upstream.
    
    The driver receives the active port number from the device, but never
    made sure that the port number was valid. This could lead to a
    NULL-pointer dereference or memory corruption in case a device sends
    data for an invalid port.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 79410c87f7fbbe172d33301a5cb780a849bd46a0
Author: Johan Hovold <johan@kernel.org>
Date:   Fri Jan 17 10:50:22 2020 +0100

    USB: serial: ch341: handle unbound port at reset_resume
    
    commit 4d5ef53f75c22d28f490bcc5c771fcc610a9afa4 upstream.
    
    Check for NULL port data in reset_resume() to avoid dereferencing a NULL
    pointer in case the port device isn't bound to a driver (e.g. after a
    failed control request at port probe).
    
    Fixes: 1ded7ea47b88 ("USB: ch341 serial: fix port number changed after resume")
    Cc: stable <stable@vger.kernel.org>     # 2.6.30
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0a0495eda6fad5862fc5f7cc5c202bbb466045f3
Author: Johan Hovold <johan@kernel.org>
Date:   Thu Jan 16 17:07:05 2020 +0100

    USB: serial: suppress driver bind attributes
    
    commit fdb838efa31e1ed9a13ae6ad0b64e30fdbd00570 upstream.
    
    USB-serial drivers must not be unbound from their ports before the
    corresponding USB driver is unbound from the parent interface so
    suppress the bind and unbind attributes.
    
    Unbinding a serial driver while it's port is open is a sure way to
    trigger a crash as any driver state is released on unbind while port
    hangup is handled on the parent USB interface level. Drivers for
    multiport devices where ports share a resource such as an interrupt
    endpoint also generally cannot handle individual ports going away.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Cc: stable <stable@vger.kernel.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 48e681f39a06d42f870723b6a9a61f6994c9880b
Author: Johan Hovold <johan@kernel.org>
Date:   Mon Jan 13 18:22:13 2020 +0100

    USB: serial: opticon: fix control-message timeouts
    
    commit 5e28055f340275a8616eee88ef19186631b4d136 upstream.
    
    The driver was issuing synchronous uninterruptible control requests
    without using a timeout. This could lead to the driver hanging
    on open() or tiocmset() due to a malfunctioning (or malicious) device
    until the device is physically disconnected.
    
    The USB upper limit of five seconds per request should be more than
    enough.
    
    Fixes: 309a057932ab ("USB: opticon: add rts and cts support")
    Cc: stable <stable@vger.kernel.org>     # 2.6.39
    Cc: Martin Jansen <martin.jansen@opticon.com>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bd72a848e5d0c6f908de18e24c5ae3cd96e05191
Author: Jerónimo Borque <jeronimo@borque.com.ar>
Date:   Thu Jan 9 12:23:34 2020 -0300

    USB: serial: simple: Add Motorola Solutions TETRA MTP3xxx and MTP85xx
    
    commit 260e41ac4dd3e5acb90be624c03ba7f019615b75 upstream.
    
    Add device-ids for the Motorola Solutions TETRA radios MTP3xxx series
    and MTP85xx series
    
    $ lsusb -vd 0cad:
    
    Bus 001 Device 009: ID 0cad:9015 Motorola CGISS TETRA PEI interface
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      idVendor           0x0cad Motorola CGISS
      idProduct          0x9015
      bcdDevice           24.16
      iManufacturer           1
      iProduct                2
      iSerial                 0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength       0x0037
        bNumInterfaces          2
        bConfigurationValue     1
        iConfiguration          3
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0
          bInterfaceProtocol      0
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0
          bInterfaceProtocol      0
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x02  EP 2 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0040  1x 64 bytes
            bInterval               0
    
    Bus 001 Device 010: ID 0cad:9013 Motorola CGISS TETRA PEI interface
    Device Descriptor:
      bLength                18
      bDescriptorType         1
      bcdUSB               2.00
      bDeviceClass            0
      bDeviceSubClass         0
      bDeviceProtocol         0
      bMaxPacketSize0        64
      idVendor           0x0cad Motorola CGISS
      idProduct          0x9013
      bcdDevice           24.16
      iManufacturer           1
      iProduct                2
      iSerial                 0
      bNumConfigurations      1
      Configuration Descriptor:
        bLength                 9
        bDescriptorType         2
        wTotalLength       0x0037
        bNumInterfaces          2
        bConfigurationValue     1
        iConfiguration          3
        bmAttributes         0x80
          (Bus Powered)
        MaxPower              500mA
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        0
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0
          bInterfaceProtocol      0
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x81  EP 1 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x01  EP 1 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
        Interface Descriptor:
          bLength                 9
          bDescriptorType         4
          bInterfaceNumber        1
          bAlternateSetting       0
          bNumEndpoints           2
          bInterfaceClass       255 Vendor Specific Class
          bInterfaceSubClass      0
          bInterfaceProtocol      0
          iInterface              0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x82  EP 2 IN
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
          Endpoint Descriptor:
            bLength                 7
            bDescriptorType         5
            bEndpointAddress     0x02  EP 2 OUT
            bmAttributes            2
              Transfer Type            Bulk
              Synch Type               None
              Usage Type               Data
            wMaxPacketSize     0x0200  1x 512 bytes
            bInterval               0
    
    Signed-off-by: Jerónimo Borque <jeronimo@borque.com.ar>
    Cc: stable <stable@vger.kernel.org>
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3578ff71bfaefbfcc8127f74a46a9f32b0e4e8d2
Author: Lars Möllendorf <lars.moellendorf@plating.de>
Date:   Fri Dec 13 14:50:55 2019 +0100

    iio: buffer: align the size of scan bytes to size of the largest element
    
    commit 883f616530692d81cb70f8a32d85c0d2afc05f69 upstream.
    
    Previous versions of `iio_compute_scan_bytes` only aligned each element
    to its own length (i.e. its own natural alignment). Because multiple
    consecutive sets of scan elements are buffered this does not work in
    case the computed scan bytes do not align with the natural alignment of
    the first scan element in the set.
    
    This commit fixes this by aligning the scan bytes to the natural
    alignment of the largest scan element in the set.
    
    Fixes: 959d2952d124 ("staging:iio: make iio_sw_buffer_preenable much more general.")
    Signed-off-by: Lars Möllendorf <lars.moellendorf@plating.de>
    Reviewed-by: Lars-Peter Clausen <lars@metafoo.de>
    Cc: <Stable@vger.kernel.org>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5dbde467ccd6c401ca35acf0c57296d1ffaa06f3
Author: Mikulas Patocka <mpatocka@redhat.com>
Date:   Wed Jan 15 08:35:25 2020 -0500

    block: fix an integer overflow in logical block size
    
    commit ad6bf88a6c19a39fb3b0045d78ea880325dfcf15 upstream.
    
    Logical block size has type unsigned short. That means that it can be at
    most 32768. However, there are architectures that can run with 64k pages
    (for example arm64) and on these architectures, it may be possible to
    create block devices with 64k block size.
    
    For exmaple (run this on an architecture with 64k pages):
    
    Mount will fail with this error because it tries to read the superblock using 2-sector
    access:
      device-mapper: writecache: I/O is not aligned, sector 2, size 1024, block size 65536
      EXT4-fs (dm-0): unable to read superblock
    
    This patch changes the logical block size from unsigned short to unsigned
    int to avoid the overflow.
    
    Cc: stable@vger.kernel.org
    Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
    Reviewed-by: Ming Lei <ming.lei@redhat.com>
    Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8021ccd34a6ef82b061adb9f050cf67cbfbbf42b
Author: Jari Ruusu <jari.ruusu@gmail.com>
Date:   Sun Jan 12 15:00:53 2020 +0200

    Fix built-in early-load Intel microcode alignment
    
    commit f5ae2ea6347a308cfe91f53b53682ce635497d0d upstream.
    
    Intel Software Developer's Manual, volume 3, chapter 9.11.6 says:
    
     "Note that the microcode update must be aligned on a 16-byte boundary
      and the size of the microcode update must be 1-KByte granular"
    
    When early-load Intel microcode is loaded from initramfs, userspace tool
    'iucode_tool' has already 16-byte aligned those microcode bits in that
    initramfs image.  Image that was created something like this:
    
     iucode_tool --write-earlyfw=FOO.cpio microcode-files...
    
    However, when early-load Intel microcode is loaded from built-in
    firmware BLOB using CONFIG_EXTRA_FIRMWARE= kernel config option, that
    16-byte alignment is not guaranteed.
    
    Fix this by forcing all built-in firmware BLOBs to 16-byte alignment.
    
    [ If we end up having other firmware with much bigger alignment
      requirements, we might need to introduce some method for the firmware
      to specify it, this is the minimal "just increase the alignment a bit
      to account for this one special case" patch    - Linus ]
    
    Signed-off-by: Jari Ruusu <jari.ruusu@gmail.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 18832468753f6b58768fb2817625f30c1635fb90
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Jan 15 21:37:33 2020 +0100

    ALSA: seq: Fix racy access for queue timer in proc read
    
    commit 60adcfde92fa40fcb2dbf7cc52f9b096e0cd109a upstream.
    
    snd_seq_info_timer_read() reads the information of the timer assigned
    for each queue, but it's done in a racy way which may lead to UAF as
    spotted by syzkaller.
    
    This patch applies the missing q->timer_mutex lock while accessing the
    timer object as well as a slight code change to adapt the standard
    coding style.
    
    Reported-by: syzbot+2b2ef983f973e5c40943@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20200115203733.26530-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 92e9a8037961714191f8476f7938c6685a7c178c
Author: Guenter Roeck <linux@roeck-us.net>
Date:   Wed Dec 25 08:34:29 2019 -0800

    clk: Don't try to enable critical clocks if prepare failed
    
    commit 12ead77432f2ce32dea797742316d15c5800cb32 upstream.
    
    The following traceback is seen if a critical clock fails to prepare.
    
    bcm2835-clk 3f101000.cprman: plld: couldn't lock PLL
    ------------[ cut here ]------------
    Enabling unprepared plld_per
    WARNING: CPU: 1 PID: 1 at drivers/clk/clk.c:1014 clk_core_enable+0xcc/0x2c0
    ...
    Call trace:
     clk_core_enable+0xcc/0x2c0
     __clk_register+0x5c4/0x788
     devm_clk_hw_register+0x4c/0xb0
     bcm2835_register_pll_divider+0xc0/0x150
     bcm2835_clk_probe+0x134/0x1e8
     platform_drv_probe+0x50/0xa0
     really_probe+0xd4/0x308
     driver_probe_device+0x54/0xe8
     device_driver_attach+0x6c/0x78
     __driver_attach+0x54/0xd8
    ...
    
    Check return values from clk_core_prepare() and clk_core_enable() and
    bail out if any of those functions returns an error.
    
    Cc: Jerome Brunet <jbrunet@baylibre.com>
    Fixes: 99652a469df1 ("clk: migrate the count of orphaned clocks at init")
    Signed-off-by: Guenter Roeck <linux@roeck-us.net>
    Link: https://lkml.kernel.org/r/20191225163429.29694-1-linux@roeck-us.net
    Signed-off-by: Stephen Boyd <sboyd@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a087b517c3acb8330d5f9da5ab59ee080492aeb
Author: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
Date:   Sat Nov 30 19:53:37 2019 +0100

    dt-bindings: reset: meson8b: fix duplicate reset IDs
    
    commit 4881873f4cc1460f63d85fa81363d56be328ccdc upstream.
    
    According to the public S805 datasheet the RESET2 register uses the
    following bits for the PIC_DC, PSC and NAND reset lines:
    - PIC_DC is at bit 3 (meaning: RESET_VD_RMEM + 3)
    - PSC is at bit 4 (meaning: RESET_VD_RMEM + 4)
    - NAND is at bit 5 (meaning: RESET_VD_RMEM + 4)
    
    Update the reset IDs of these three reset lines so they don't conflict
    with PIC_DC and map to the actual hardware reset lines.
    
    Fixes: 79795e20a184eb ("dt-bindings: reset: Add bindings for the Meson SoC Reset Controller")
    Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 221c1954a12fffcaf3da03aacf10c35f3f573516
Author: Kai Li <li.kai4@h3c.com>
Date:   Sat Jan 4 13:00:18 2020 -0800

    ocfs2: call journal flush to mark journal as empty after journal recovery when mount
    
    [ Upstream commit 397eac17f86f404f5ba31d8c3e39ec3124b39fd3 ]
    
    If journal is dirty when mount, it will be replayed but jbd2 sb log tail
    cannot be updated to mark a new start because journal->j_flag has
    already been set with JBD2_ABORT first in journal_init_common.
    
    When a new transaction is committed, it will be recored in block 1
    first(journal->j_tail is set to 1 in journal_reset).  If emergency
    restart happens again before journal super block is updated
    unfortunately, the new recorded trans will not be replayed in the next
    mount.
    
    The following steps describe this procedure in detail.
    1. mount and touch some files
    2. these transactions are committed to journal area but not checkpointed
    3. emergency restart
    4. mount again and its journals are replayed
    5. journal super block's first s_start is 1, but its s_seq is not updated
    6. touch a new file and its trans is committed but not checkpointed
    7. emergency restart again
    8. mount and journal is dirty, but trans committed in 6 will not be
    replayed.
    
    This exception happens easily when this lun is used by only one node.
    If it is used by multi-nodes, other node will replay its journal and its
    journal super block will be updated after recovery like what this patch
    does.
    
    ocfs2_recover_node->ocfs2_replay_journal.
    
    The following jbd2 journal can be generated by touching a new file after
    journal is replayed, and seq 15 is the first valid commit, but first seq
    is 13 in journal super block.
    
    logdump:
      Block 0: Journal Superblock
      Seq: 0   Type: 4 (JBD2_SUPERBLOCK_V2)
      Blocksize: 4096   Total Blocks: 32768   First Block: 1
      First Commit ID: 13   Start Log Blknum: 1
      Error: 0
      Feature Compat: 0
      Feature Incompat: 2 block64
      Feature RO compat: 0
      Journal UUID: 4ED3822C54294467A4F8E87D2BA4BC36
      FS Share Cnt: 1   Dynamic Superblk Blknum: 0
      Per Txn Block Limit    Journal: 0    Data: 0
    
      Block 1: Journal Commit Block
      Seq: 14   Type: 2 (JBD2_COMMIT_BLOCK)
    
      Block 2: Journal Descriptor
      Seq: 15   Type: 1 (JBD2_DESCRIPTOR_BLOCK)
      No. Blocknum        Flags
       0. 587             none
      UUID: 00000000000000000000000000000000
       1. 8257792         JBD2_FLAG_SAME_UUID
       2. 619             JBD2_FLAG_SAME_UUID
       3. 24772864        JBD2_FLAG_SAME_UUID
       4. 8257802         JBD2_FLAG_SAME_UUID
       5. 513             JBD2_FLAG_SAME_UUID JBD2_FLAG_LAST_TAG
      ...
      Block 7: Inode
      Inode: 8257802   Mode: 0640   Generation: 57157641 (0x3682809)
      FS Generation: 2839773110 (0xa9437fb6)
      CRC32: 00000000   ECC: 0000
      Type: Regular   Attr: 0x0   Flags: Valid
      Dynamic Features: (0x1) InlineData
      User: 0 (root)   Group: 0 (root)   Size: 7
      Links: 1   Clusters: 0
      ctime: 0x5de5d870 0x11104c61 -- Tue Dec  3 11:37:20.286280801 2019
      atime: 0x5de5d870 0x113181a1 -- Tue Dec  3 11:37:20.288457121 2019
      mtime: 0x5de5d870 0x11104c61 -- Tue Dec  3 11:37:20.286280801 2019
      dtime: 0x0 -- Thu Jan  1 08:00:00 1970
      ...
      Block 9: Journal Commit Block
      Seq: 15   Type: 2 (JBD2_COMMIT_BLOCK)
    
    The following is journal recovery log when recovering the upper jbd2
    journal when mount again.
    
    syslog:
      ocfs2: File system on device (252,1) was not unmounted cleanly, recovering it.
      fs/jbd2/recovery.c:(do_one_pass, 449): Starting recovery pass 0
      fs/jbd2/recovery.c:(do_one_pass, 449): Starting recovery pass 1
      fs/jbd2/recovery.c:(do_one_pass, 449): Starting recovery pass 2
      fs/jbd2/recovery.c:(jbd2_journal_recover, 278): JBD2: recovery, exit status 0, recovered transactions 13 to 13
    
    Due to first commit seq 13 recorded in journal super is not consistent
    with the value recorded in block 1(seq is 14), journal recovery will be
    terminated before seq 15 even though it is an unbroken commit, inode
    8257802 is a new file and it will be lost.
    
    Link: http://lkml.kernel.org/r/20191217020140.2197-1-li.kai4@h3c.com
    Signed-off-by: Kai Li <li.kai4@h3c.com>
    Reviewed-by: Joseph Qi <joseph.qi@linux.alibaba.com>
    Reviewed-by: Changwei Ge <gechangwei@live.cn>
    Cc: Mark Fasheh <mark@fasheh.com>
    Cc: Joel Becker <jlbec@evilplan.org>
    Cc: Junxiao Bi <junxiao.bi@oracle.com>
    Cc: Gang He <ghe@suse.com>
    Cc: Jun Piao <piaojun@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 <sashal@kernel.org>

commit 455030cfef4f5f3176cdeab75d87385443b1045f
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Sat Jan 4 13:00:02 2020 -0800

    hexagon: work around compiler crash
    
    [ Upstream commit 63e80314ab7cf4783526d2e44ee57a90514911c9 ]
    
    Clang cannot translate the string "r30" into a valid register yet.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/755
    Link: http://lkml.kernel.org/r/20191028155722.23419-1-ndesaulniers@google.com
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Suggested-by: Sid Manning <sidneym@quicinc.com>
    Reviewed-by: Brian Cain <bcain@codeaurora.org>
    Cc: Allison Randal <allison@lohutok.net>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Richard Fontana <rfontana@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a63c9fe36c58cacac4e73c8d153482c0dad227c0
Author: Nick Desaulniers <ndesaulniers@google.com>
Date:   Sat Jan 4 12:59:59 2020 -0800

    hexagon: parenthesize registers in asm predicates
    
    [ Upstream commit 780a0cfda9006a9a22d6473c2d4c527f5c68eb2e ]
    
    Hexagon requires that register predicates in assembly be parenthesized.
    
    Link: https://github.com/ClangBuiltLinux/linux/issues/754
    Link: http://lkml.kernel.org/r/20191209222956.239798-3-ndesaulniers@google.com
    Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
    Suggested-by: Sid Manning <sidneym@codeaurora.org>
    Acked-by: Brian Cain <bcain@codeaurora.org>
    Cc: Lee Jones <lee.jones@linaro.org>
    Cc: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Cc: Tuowen Zhao <ztuowen@gmail.com>
    Cc: Mika Westerberg <mika.westerberg@linux.intel.com>
    Cc: Luis Chamberlain <mcgrof@kernel.org>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Alexios Zavras <alexios.zavras@intel.com>
    Cc: Allison Randal <allison@lohutok.net>
    Cc: Will Deacon <will@kernel.org>
    Cc: Richard Fontana <rfontana@redhat.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1cb9ccb8443dc3d173f6bedb8c8a14c296754ea0
Author: Alexander.Barabash@dell.com <Alexander.Barabash@dell.com>
Date:   Wed Dec 25 17:55:30 2019 +0000

    ioat: ioat_alloc_ring() failure handling.
    
    [ Upstream commit b0b5ce1010ffc50015eaec72b0028aaae3f526bb ]
    
    If dma_alloc_coherent() returns NULL in ioat_alloc_ring(), ring
    allocation must not proceed.
    
    Until now, if the first call to dma_alloc_coherent() in
    ioat_alloc_ring() returned NULL, the processing could proceed, failing
    with NULL-pointer dereferencing further down the line.
    
    Signed-off-by: Alexander Barabash <alexander.barabash@dell.com>
    Acked-by: Dave Jiang <dave.jiang@intel.com>
    Link: https://lore.kernel.org/r/75e9c0e84c3345d693c606c64f8b9ab5@x13pwhopdag1307.AMER.DELL.COM
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2793bba3988dea7dff9cf599da9864112fb1bbb3
Author: Jouni Hogander <jouni.hogander@unikie.com>
Date:   Mon Dec 9 14:37:07 2019 +0200

    MIPS: Prevent link failure with kcov instrumentation
    
    [ Upstream commit a4a3893114a41e365274d5fab5d9ff5acc235ff0 ]
    
    __sanitizer_cov_trace_pc() is not linked in and causing link
    failure if KCOV_INSTRUMENT is enabled. Fix this by disabling
    instrumentation for compressed image.
    
    Signed-off-by: Jouni Hogander <jouni.hogander@unikie.com>
    Signed-off-by: Paul Burton <paulburton@kernel.org>
    Cc: Lukas Bulwahn <lukas.bulwahn@gmail.com>
    Cc: linux-mips@vger.kernel.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ae1d4e9157a719e348d5b29488d3c856cab848fb
Author: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Date:   Wed Dec 11 11:28:57 2019 -0500

    rseq/selftests: Turn off timeout setting
    
    [ Upstream commit af9cb29c5488381083b0b5ccdfb3cd931063384a ]
    
    As the rseq selftests can run for a long period of time, disable the
    timeout that the general selftests have.
    
    Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
    Cc: Shuah Khan <skhan@linuxfoundation.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
    Cc: Boqun Feng <boqun.feng@gmail.com>
    Cc: "H . Peter Anvin" <hpa@zytor.com>
    Cc: Paul Turner <pjt@google.com>
    Cc: Dmitry Vyukov <dvyukov@google.com>
    Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 379b0a927d34d979064dd6e593024ebb7466d7fa
Author: Varun Prakash <varun@chelsio.com>
Date:   Wed Dec 18 19:15:31 2019 +0530

    scsi: libcxgbi: fix NULL pointer dereference in cxgbi_device_destroy()
    
    [ Upstream commit 71482fde704efdd8c3abe0faf34d922c61e8d76b ]
    
    If cxgb4i_ddp_init() fails then cdev->cdev2ppm will be NULL, so add a check
    for NULL pointer before dereferencing it.
    
    Link: https://lore.kernel.org/r/1576676731-3068-1-git-send-email-varun@chelsio.com
    Signed-off-by: Varun Prakash <varun@chelsio.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 19f326178dce03ad7b3e308db5a59037d7c3c2ba
Author: Johnson CH Chen (陳昭勳) <JohnsonCH.Chen@moxa.com>
Date:   Tue Nov 26 06:51:11 2019 +0000

    gpio: mpc8xxx: Add platform device to gpiochip->parent
    
    [ Upstream commit 322f6a3182d42df18059a89c53b09d33919f755e ]
    
    Dear Linus Walleij,
    
    In old kernels, some APIs still try to use parent->of_node from struct gpio_chip,
    and it could be resulted in kernel panic because parent is NULL. Adding platform
    device to gpiochip->parent can fix this problem.
    
    Signed-off-by: Johnson Chen <johnsonch.chen@moxa.com>
    Link: https://patchwork.kernel.org/patch/11234609
    Link: https://lore.kernel.org/r/HK0PR01MB3521489269F76467DFD7843FFA450@HK0PR01MB3521.apcprd01.prod.exchangelabs.com
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a4e032e1dc3fb8cc608ee6d90c79fa9a5bcc4d5a
Author: Kars de Jong <jongk@linux-m68k.org>
Date:   Sat Nov 16 12:05:48 2019 +0100

    rtc: msm6242: Fix reading of 10-hour digit
    
    commit e34494c8df0cd96fc432efae121db3212c46ae48 upstream.
    
    The driver was reading the wrong register as the 10-hour digit due to
    a misplaced ')'. It was in fact reading the 1-second digit register due
    to this bug.
    
    Also remove the use of a magic number for the hour mask and use the define
    for it which was already present.
    
    Fixes: 4f9b9bba1dd1 ("rtc: Add an RTC driver for the Oki MSM6242")
    Tested-by: Kars de Jong <jongk@linux-m68k.org>
    Signed-off-by: Kars de Jong <jongk@linux-m68k.org>
    Link: https://lore.kernel.org/r/20191116110548.8562-1-jongk@linux-m68k.org
    Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 853193642b67cd2428ad1fd12cb37db054eb5ab2
Author: Chao Yu <chao@kernel.org>
Date:   Thu Nov 7 17:29:00 2019 +0800

    f2fs: fix potential overflow
    
    commit 1f0d5c911b64165c9754139a26c8c2fad352c132 upstream.
    
    We expect 64-bit calculation result from below statement, however
    in 32-bit machine, looped left shift operation on pgoff_t type
    variable may cause overflow issue, fix it by forcing type cast.
    
    page->index << PAGE_SHIFT;
    
    Fixes: 26de9b117130 ("f2fs: avoid unnecessary updating inode during fsync")
    Fixes: 0a2aa8fbb969 ("f2fs: refactor __exchange_data_block for speed up")
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e53fe75f47f92b51820c97ccf7d7de4117fcbf32
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Tue Oct 22 17:47:03 2019 -0700

    rtlwifi: Remove unnecessary NULL check in rtl_regd_init
    
    commit 091c6e9c083f7ebaff00b37ad13562d51464d175 upstream.
    
    When building with Clang + -Wtautological-pointer-compare:
    
    drivers/net/wireless/realtek/rtlwifi/regd.c:389:33: warning: comparison
    of address of 'rtlpriv->regd' equal to a null pointer is always false
    [-Wtautological-pointer-compare]
            if (wiphy == NULL || &rtlpriv->regd == NULL)
                                  ~~~~~~~~~^~~~    ~~~~
    1 warning generated.
    
    The address of an array member is never NULL unless it is the first
    struct member so remove the unnecessary check. This was addressed in
    the staging version of the driver in commit f986978b32b3 ("Staging:
    rtlwifi: remove unnecessary NULL check").
    
    While we are here, fix the following checkpatch warning:
    
    CHECK: Comparison to NULL could be written "!wiphy"
    35: FILE: drivers/net/wireless/realtek/rtlwifi/regd.c:389:
    +       if (wiphy == NULL)
    
    Fixes: 0c8173385e54 ("rtl8192ce: Add new driver")
    Link:https://github.com/ClangBuiltLinux/linux/issues/750
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Acked-by: Ping-Ke Shih <pkshih@realtek.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6d6a7a04e4d141b6fdc85fc32c43497f73a2560b
Author: Mans Rullgard <mans@mansr.com>
Date:   Fri Oct 18 17:35:04 2019 +0200

    spi: atmel: fix handling of cs_change set on non-last xfer
    
    commit fed8d8c7a6dc2a76d7764842853d81c770b0788e upstream.
    
    The driver does the wrong thing when cs_change is set on a non-last
    xfer in a message.  When cs_change is set, the driver deactivates the
    CS and leaves it off until a later xfer again has cs_change set whereas
    it should be briefly toggling CS off and on again.
    
    This patch brings the behaviour of the driver back in line with the
    documentation and common sense.  The delay of 10 us is the same as is
    used by the default spi_transfer_one_message() function in spi.c.
    [gregory: rebased on for-5.5 from spi tree]
    Fixes: 8090d6d1a415 ("spi: atmel: Refactor spi-atmel to use SPI framework queue")
    Signed-off-by: Mans Rullgard <mans@mansr.com>
    Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com>
    Signed-off-by: Gregory CLEMENT <gregory.clement@bootlin.com>
    Link: https://lore.kernel.org/r/20191018153504.4249-1-gregory.clement@bootlin.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d0bf048feb7236d09544754ff95161415f779359
Author: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
Date:   Wed Oct 30 21:48:59 2019 +0300

    mtd: spi-nor: fix silent truncation in spi_nor_read()
    
    commit a719a75a7761e4139dd099330d9fe3589d844f9b upstream.
    
    spi_nor_read() assigns the result of 'ssize_t spi_nor_read_data()'
    to the 'int ret' variable, while 'ssize_t' is a 64-bit type and *int*
    is a 32-bit type on the 64-bit machines. This silent truncation isn't
    really valid, so fix up the variable's type.
    
    Fixes: 59451e1233bd ("mtd: spi-nor: change return value of read/write")
    Signed-off-by: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>
    Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47583584b7a1e5ee0042745651fb0a291f136139
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Fri Oct 18 07:20:52 2019 -0300

    media: exynos4-is: Fix recursive locking in isp_video_release()
    
    commit 704c6c80fb471d1bb0ef0d61a94617d1d55743cd upstream.
    
    >From isp_video_release(), &isp->video_lock is held and subsequent
    vb2_fop_release() tries to lock vdev->lock which is same with the
    previous one. Replace vb2_fop_release() with _vb2_fop_release() to
    fix the recursive locking.
    
    Fixes: 1380f5754cb0 ("[media] videobuf2: Add missing lock held on vb2_fop_release")
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7afe9c3fb81dcd19f2f37b7c051c6a3d8ccfc5e7
Author: Peng Fan <peng.fan@nxp.com>
Date:   Wed Nov 13 05:37:42 2019 +0000

    tty: serial: pch_uart: correct usage of dma_unmap_sg
    
    commit 74887542fdcc92ad06a48c0cca17cdf09fc8aa00 upstream.
    
    Per Documentation/DMA-API-HOWTO.txt,
    To unmap a scatterlist, just call:
            dma_unmap_sg(dev, sglist, nents, direction);
    
    .. note::
    
            The 'nents' argument to the dma_unmap_sg call must be
            the _same_ one you passed into the dma_map_sg call,
            it should _NOT_ be the 'count' value _returned_ from the
            dma_map_sg call.
    
    However in the driver, priv->nent is directly assigned with value
    returned from dma_map_sg, and dma_unmap_sg use priv->nent for unmap,
    this breaks the API usage.
    
    So introduce a new entry orig_nent to remember 'nents'.
    
    Fixes: da3564ee027e ("pch_uart: add multi-scatter processing")
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/1573623259-6339-1-git-send-email-peng.fan@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a18a51a383a3e331bd72e8ce1b62a0fda4889f88
Author: Peng Fan <peng.fan@nxp.com>
Date:   Thu Nov 7 06:42:53 2019 +0000

    tty: serial: imx: use the sg count from dma_map_sg
    
    commit 596fd8dffb745afcebc0ec6968e17fe29f02044c upstream.
    
    The dmaengine_prep_slave_sg needs to use sg count returned
    by dma_map_sg, not use sport->dma_tx_nents, because the return
    value of dma_map_sg is not always same with "nents".
    
    Fixes: b4cdc8f61beb ("serial: imx: add DMA support for imx6q")
    Signed-off-by: Peng Fan <peng.fan@nxp.com>
    Link: https://lore.kernel.org/r/1573108875-26530-1-git-send-email-peng.fan@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 04d8497656e443eccf22a7510e65f8df6140447e
Author: Oliver O'Halloran <oohall@gmail.com>
Date:   Mon Nov 18 17:55:53 2019 +1100

    powerpc/powernv: Disable native PCIe port management
    
    commit 9d72dcef891030545f39ad386a30cf91df517fb2 upstream.
    
    On PowerNV the PCIe topology is (currently) managed by the powernv platform
    code in Linux in cooperation with the platform firmware. Linux's native
    PCIe port service drivers operate independently of both and this can cause
    problems.
    
    The main issue is that the portbus driver will conflict with the platform
    specific hotplug driver (pnv_php) over ownership of the MSI used to notify
    the host when a hotplug event occurs. The portbus driver claims this MSI on
    behalf of the individual port services because the same interrupt is used
    for hotplug events, PMEs (on root ports), and link bandwidth change
    notifications. The portbus driver will always claim the interrupt even if
    the individual port service drivers, such as pciehp, are compiled out.
    
    The second, bigger, problem is that the hotplug port service driver
    fundamentally does not work on PowerNV. The platform assumes that all
    PCI devices have a corresponding arch-specific handle derived from the DT
    node for the device (pci_dn) and without one the platform will not allow
    a PCI device to be enabled. This problem is largely due to historical
    baggage, but it can't be resolved without significant re-factoring of the
    platform PCI support.
    
    We can fix these problems in the interim by setting the
    "pcie_ports_disabled" flag during platform initialisation. The flag
    indicates the platform owns the PCIe ports which stops the portbus driver
    from being registered.
    
    This does have the side effect of disabling all port services drivers
    that is: AER, PME, BW notifications, hotplug, and DPC. However, this is
    not a huge disadvantage on PowerNV since these services are either unused
    or handled through other means.
    
    Fixes: 66725152fb9f ("PCI/hotplug: PowerPC PowerNV PCI hotplug driver")
    Signed-off-by: Oliver O'Halloran <oohall@gmail.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20191118065553.30362-1-oohall@gmail.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c21e3d1e1c50fe0171841b0aa8b0a51e4c3fcd1f
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Wed Nov 6 15:30:48 2019 -0600

    PCI/PTM: Remove spurious "d" from granularity message
    
    commit 127a7709495db52a41012deaebbb7afc231dad91 upstream.
    
    The granularity message has an extra "d":
    
      pci 0000:02:00.0: PTM enabled, 4dns granularity
    
    Remove the "d" so the message is simply "PTM enabled, 4ns granularity".
    
    Fixes: 8b2ec318eece ("PCI: Add PTM clock granularity information")
    Link: https://lore.kernel.org/r/20191106222420.10216-2-helgaas@kernel.org
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Andrew Murray <andrew.murray@arm.com>
    Cc: Jonathan Yong <jonathan.yong@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fc49aa70b24e7ef64bd930308a94d6ce3bd9a8ed
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Mon Jun 3 23:06:00 2019 +0200

    compat_ioctl: handle SIOCOUTQNSD
    
    commit 9d7bf41fafa5b5ddd4c13eb39446b0045f0a8167 upstream.
    
    Unlike the normal SIOCOUTQ, SIOCOUTQNSD was never handled in compat
    mode. Add it to the common socket compat handler along with similar
    ones.
    
    Fixes: 2f4e1b397097 ("tcp: ioctl type SIOCOUTQNSD returns amount of data not sent")
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: netdev@vger.kernel.org
    Cc: "David S. Miller" <davem@davemloft.net>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0d39e3f0eb13ff67b395afb0d986f9f6ebb80225
Author: Marian Mihailescu <mihailescu2m@gmail.com>
Date:   Tue Oct 29 11:20:25 2019 +1030

    clk: samsung: exynos5420: Preserve CPU clocks configuration during suspend/resume
    
    commit e21be0d1d7bd7f78a77613f6bcb6965e72b22fc1 upstream.
    
    Save and restore top PLL related configuration registers for big (APLL)
    and LITTLE (KPLL) cores during suspend/resume cycle. So far, CPU clocks
    were reset to default values after suspend/resume cycle and performance
    after system resume was affected when performance governor has been selected.
    
    Fixes: 773424326b51 ("clk: samsung: exynos5420: add more registers to restore list")
    Signed-off-by: Marian Mihailescu <mihailescu2m@gmail.com>
    Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66998c4e9508b5f5d2bab26c4fcf0799f832da44
Author: Alexander Usyskin <alexander.usyskin@intel.com>
Date:   Tue Oct 8 03:57:34 2019 +0300

    mei: fix modalias documentation
    
    commit 73668309215285366c433489de70d31362987be9 upstream.
    
    mei client bus added the client protocol version to the device alias,
    but ABI documentation was not updated.
    
    Fixes: b26864cad1c9 (mei: bus: add client protocol version to the device alias)
    Signed-off-by: Alexander Usyskin <alexander.usyskin@intel.com>
    Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
    Link: https://lore.kernel.org/r/20191008005735.12707-1-tomas.winkler@intel.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab97a942fe4999afacab5154778f70a8586da725
Author: Alexandru Ardelean <alexandru.ardelean@analog.com>
Date:   Fri Nov 1 11:35:03 2019 +0200

    iio: imu: adis16480: assign bias value only if operation succeeded
    
    commit 9b742763d9d4195e823ae6ece760c9ed0500c1dc upstream.
    
    This was found only after the whole thing with the inline functions, but
    the compiler actually found something. The value of the `bias` (in
    adis16480_get_calibbias()) should only be set if the read operation was
    successful.
    
    No actual known problem occurs as users of this function all
    ultimately check the return value.  Hence probably not stable material.
    
    Fixes: 2f3abe6cbb6c9 ("iio:imu: Add support for the ADIS16480 and similar IMUs")
    Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5765dbab0411388b47c6e7ffb3dbe872eace8fe8
Author: Jian-Hong Pan <jian-hong@endlessm.com>
Date:   Mon Dec 30 16:30:45 2019 +0800

    platform/x86: asus-wmi: Fix keyboard brightness cannot be set to 0
    
    commit 176a7fca81c5090a7240664e3002c106d296bf31 upstream.
    
    Some of ASUS laptops like UX431FL keyboard backlight cannot be set to
    brightness 0. According to ASUS' information, the brightness should be
    0x80 ~ 0x83. This patch fixes it by following the logic.
    
    Fixes: e9809c0b9670 ("asus-wmi: add keyboard backlight support")
    Signed-off-by: Jian-Hong Pan <jian-hong@endlessm.com>
    Reviewed-by: Daniel Drake <drake@endlessm.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78171dcb0efae1901f8d2abf10ee35bc014436b9
Author: Xiang Chen <chenxiang66@hisilicon.com>
Date:   Thu Jan 9 09:12:24 2020 +0800

    scsi: sd: Clear sdkp->protection_type if disk is reformatted without PI
    
    commit 465f4edaecc6c37f81349233e84d46246bcac11a upstream.
    
    If an attached disk with protection information enabled is reformatted
    to Type 0 the revalidation code does not clear the original protection
    type and subsequent accesses will keep setting RDPROTECT/WRPROTECT.
    
    Set the protection type to 0 if the disk reports PROT_EN=0 in READ
    CAPACITY(16).
    
    [mkp: commit desc]
    
    Fixes: fe542396da73 ("[SCSI] sd: Ensure we correctly disable devices with unknown protection type")
    Link: https://lore.kernel.org/r/1578532344-101668-1-git-send-email-chenxiang66@hisilicon.com
    Signed-off-by: Xiang Chen <chenxiang66@hisilicon.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1f04240c0202eb37765e9e55630e75294c98e4dd
Author: James Bottomley <James.Bottomley@HansenPartnership.com>
Date:   Wed Jan 8 17:21:32 2020 -0800

    scsi: enclosure: Fix stale device oops with hot replug
    
    commit 529244bd1afc102ab164429d338d310d5d65e60d upstream.
    
    Doing an add/remove/add on a SCSI device in an enclosure leads to an oops
    caused by poisoned values in the enclosure device list pointers.  The
    reason is because we are keeping the enclosure device across the enclosed
    device add/remove/add but the current code is doing a
    device_add/device_del/device_add on it.  This is the wrong thing to do in
    sysfs, so fix it by not doing a device_del on the enclosure device simply
    because of a hot remove of the drive in the slot.
    
    [mkp: added missing email addresses]
    
    Fixes: 43d8eb9cfd0a ("[SCSI] ses: add support for enclosure component hot removal")
    Link: https://lore.kernel.org/r/1578532892.3852.10.camel@HansenPartnership.com
    Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
    Reported-by: Luo Jiaxing <luojiaxing@huawei.com>
    Tested-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e72f5fe8b02b7c996e3c2bc8f8ebcaf6518bb290
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Tue Nov 5 13:46:32 2019 -0800

    RDMA/srpt: Report the SCSI residual to the initiator
    
    commit e88982ad1bb12db699de96fbc07096359ef6176c upstream.
    
    The code added by this patch is similar to the code that already exists in
    ibmvscsis_determine_resid(). This patch has been tested by running the
    following command:
    
    strace sg_raw -r 1k /dev/sdb 12 00 00 00 60 00 -o inquiry.bin |&
        grep resid=
    
    Link: https://lore.kernel.org/r/20191105214632.183302-1-bvanassche@acm.org
    Fixes: a42d985bd5b2 ("ib_srpt: Initial SRP Target merge for v3.3-rc1")
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Acked-by: Honggang Li <honli@redhat.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a1ac6bd50bde7c8085301447fd9b712150459688
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Tue Dec 17 20:04:51 2019 -0700

    cifs: Adjust indentation in smb2_open_file
    
    commit 7935799e041ae10d380d04ea23868240f082bd11 upstream.
    
    Clang warns:
    
    ../fs/cifs/smb2file.c:70:3: warning: misleading indentation; statement
    is not part of the previous 'if' [-Wmisleading-indentation]
             if (oparms->tcon->use_resilient) {
             ^
    ../fs/cifs/smb2file.c:66:2: note: previous statement is here
            if (rc)
            ^
    1 warning generated.
    
    This warning occurs because there is a space after the tab on this line.
    Remove it so that the indentation is consistent with the Linux kernel
    coding style and clang no longer warns.
    
    Fixes: 592fafe644bf ("Add resilienthandles mount parm")
    Link: https://github.com/ClangBuiltLinux/linux/issues/826
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 16514f26ef86398e58803303fd4dadec109f0e70
Author: Taehee Yoo <ap420073@gmail.com>
Date:   Sun Dec 22 11:27:08 2019 +0000

    hsr: reset network header when supervision frame is created
    
    commit 3ed0a1d563903bdb4b4c36c58c4d9c1bcb23a6e6 upstream.
    
    The supervision frame is L2 frame.
    When supervision frame is created, hsr module doesn't set network header.
    If tap routine is enabled, dev_queue_xmit_nit() is called and it checks
    network_header. If network_header pointer wasn't set(or invalid),
    it resets network_header and warns.
    In order to avoid unnecessary warning message, resetting network_header
    is needed.
    
    Test commands:
        ip netns add nst
        ip link add veth0 type veth peer name veth1
        ip link add veth2 type veth peer name veth3
        ip link set veth1 netns nst
        ip link set veth3 netns nst
        ip link set veth0 up
        ip link set veth2 up
        ip link add hsr0 type hsr slave1 veth0 slave2 veth2
        ip a a 192.168.100.1/24 dev hsr0
        ip link set hsr0 up
        ip netns exec nst ip link set veth1 up
        ip netns exec nst ip link set veth3 up
        ip netns exec nst ip link add hsr1 type hsr slave1 veth1 slave2 veth3
        ip netns exec nst ip a a 192.168.100.2/24 dev hsr1
        ip netns exec nst ip link set hsr1 up
        tcpdump -nei veth0
    
    Splat looks like:
    [  175.852292][    C3] protocol 88fb is buggy, dev veth0
    
    Fixes: f421436a591d ("net/hsr: Add support for the High-availability Seamless Redundancy protocol (HSRv0)")
    Signed-off-by: Taehee Yoo <ap420073@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 699c96b64e3c5bf31addeb6e265f0b0dfb4dd99b
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Nov 27 10:59:19 2019 +0100

    gpio: Fix error message on out-of-range GPIO in lookup table
    
    commit d935bd50dd14a7714cbdba9a76435dbb56edb1ae upstream.
    
    When a GPIO offset in a lookup table is out-of-range, the printed error
    message (1) does not include the actual out-of-range value, and (2)
    contains an off-by-one error in the upper bound.
    
    Avoid user confusion by also printing the actual GPIO offset, and
    correcting the upper bound of the range.
    While at it, use "%u" for unsigned int.
    
    Sample impact:
    
        -requested GPIO 0 is out of range [0..32] for chip e6052000.gpio
        +requested GPIO 0 (45) is out of range [0..31] for chip e6052000.gpio
    
    Fixes: 2a3cf6a3599e9015 ("gpiolib: return -ENOENT if no GPIO mapping exists")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Link: https://lore.kernel.org/r/20191127095919.4214-1-geert+renesas@glider.be
    Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c664cdb835f8a39af2594d903733bacf608c926f
Author: Jon Derrick <jonathan.derrick@intel.com>
Date:   Tue Dec 31 13:24:19 2019 -0700

    iommu: Remove device link to group on failure
    
    commit 7d4e6ccd1fb09dbfbc49746ca82bd5c25ad4bfe4 upstream.
    
    This adds the missing teardown step that removes the device link from
    the group when the device addition fails.
    
    Signed-off-by: Jon Derrick <jonathan.derrick@intel.com>
    Fixes: 797a8b4d768c5 ("iommu: Handle default domain attach failure")
    Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 26cd0d2644812ec5785090c097fc69bb029eff45
Author: Ran Bi <ran.bi@mediatek.com>
Date:   Wed Dec 11 17:43:54 2019 +0800

    rtc: mt6397: fix alarm register overwrite
    
    commit 653997eeecef95c3ead4fba1b2d27e6a5854d6cd upstream.
    
    Alarm registers high byte was reserved for other functions.
    This add mask in alarm registers operation functions.
    This also fix error condition in interrupt handler.
    
    Fixes: fc2979118f3f ("rtc: mediatek: Add MT6397 RTC driver")
    
    Signed-off-by: Ran Bi <ran.bi@mediatek.com>
    Signed-off-by: Hsin-Hsiung Wang <hsin-hsiung.wang@mediatek.com>
    Link: https://lore.kernel.org/r/1576057435-3561-6-git-send-email-hsin-hsiung.wang@mediatek.com
    Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 33cab7a0a84d35908c75c4b46c88769be7902556
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Mon Apr 1 09:35:54 2019 +0800

    dccp: Fix memleak in __feat_register_sp
    
    commit 1d3ff0950e2b40dc861b1739029649d03f591820 upstream.
    
    If dccp_feat_push_change fails, we forget free the mem
    which is alloced by kmemdup in dccp_feat_clone_sp_val.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: e8ef967a54f4 ("dccp: Registration routines for changing feature values")
    Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8e508ac2e7278759259fd818603af02e8e3a64f6
Author: Theodore Ts'o <tytso@mit.edu>
Date:   Thu Nov 7 21:43:41 2019 -0500

    ext4: add more paranoia checking in ext4_expand_extra_isize handling
    
    commit 4ea99936a1630f51fc3a2d61a58ec4a1c4b7d55a upstream.
    
    It's possible to specify a non-zero s_want_extra_isize via debugging
    option, and this can cause bad things(tm) to happen when using a file
    system with an inode size of 128 bytes.
    
    Add better checking when the file system is mounted, as well as when
    we are actually doing the trying to do the inode expansion.
    
    Link: https://lore.kernel.org/r/20191110121510.GH23325@mit.edu
    Reported-by: syzbot+f8d6f8386ceacdbfff57@syzkaller.appspotmail.com
    Reported-by: syzbot+33d7ea72e47de3bdf4e1@syzkaller.appspotmail.com
    Reported-by: syzbot+44b6763edfc17144296f@syzkaller.appspotmail.com
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 4.9: adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d1c813850f24780eff793bbfbf4e33214ca81e8d
Author: Barret Rhoden <brho@google.com>
Date:   Thu Apr 25 11:55:50 2019 -0400

    ext4: fix use-after-free race with debug_want_extra_isize
    
    commit 7bc04c5c2cc467c5b40f2b03ba08da174a0d5fa7 upstream.
    
    When remounting with debug_want_extra_isize, we were not performing the
    same checks that we do during a normal mount.  That allowed us to set a
    value for s_want_extra_isize that reached outside the s_inode_size.
    
    Fixes: e2b911c53584 ("ext4: clean up feature test macros with predicate functions")
    Reported-by: syzbot+f584efa0ac7213c226b7@syzkaller.appspotmail.com
    Reviewed-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Barret Rhoden <brho@google.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    [bwh: Backported to 4.9: The debug_want_extra_isize mount option is not
     supported]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7c41a8662b6bab58eee8c2e8c6083efd5050f167
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Fri Oct 25 23:53:30 2019 -0500

    wimax: i2400: Fix memory leak in i2400m_op_rfkill_sw_toggle
    
    commit 6f3ef5c25cc762687a7341c18cbea5af54461407 upstream.
    
    In the implementation of i2400m_op_rfkill_sw_toggle() the allocated
    buffer for cmd should be released before returning. The
    documentation for i2400m_msg_to_dev() says when it returns the buffer
    can be reused. Meaning cmd should be released in either case. Move
    kfree(cmd) before return to be reached by all execution paths.
    
    Fixes: 2507e6ab7a9a ("wimax: i2400: fix memory leak")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 49fcab52e6417db027aad6310dd851a2f5ef3f30
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Tue Sep 10 18:01:40 2019 -0500

    wimax: i2400: fix memory leak
    
    commit 2507e6ab7a9a440773be476141a255934468c5ef upstream.
    
    In i2400m_op_rfkill_sw_toggle cmd buffer should be released along with
    skb response.
    
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ba34f5de2a45050729836e3d48ed10ee53d0276
Author: Vandana BN <bnvandana@gmail.com>
Date:   Wed May 22 04:34:15 2019 -0400

    media: usb:zr364xx:Fix KASAN:null-ptr-deref Read in zr364xx_vidioc_querycap
    
    commit 5d2e73a5f80a5b5aff3caf1ec6d39b5b3f54b26e upstream.
    
    SyzKaller hit the null pointer deref while reading from uninitialized
    udev->product in zr364xx_vidioc_querycap().
    
    ==================================================================
    BUG: KASAN: null-ptr-deref in read_word_at_a_time+0xe/0x20
    include/linux/compiler.h:274
    Read of size 1 at addr 0000000000000000 by task v4l_id/5287
    
    CPU: 1 PID: 5287 Comm: v4l_id Not tainted 5.1.0-rc3-319004-g43151d6 #6
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
    Google 01/01/2011
    Call Trace:
      __dump_stack lib/dump_stack.c:77 [inline]
      dump_stack+0xe8/0x16e lib/dump_stack.c:113
      kasan_report.cold+0x5/0x3c mm/kasan/report.c:321
      read_word_at_a_time+0xe/0x20 include/linux/compiler.h:274
      strscpy+0x8a/0x280 lib/string.c:207
      zr364xx_vidioc_querycap+0xb5/0x210 drivers/media/usb/zr364xx/zr364xx.c:706
      v4l_querycap+0x12b/0x340 drivers/media/v4l2-core/v4l2-ioctl.c:1062
      __video_do_ioctl+0x5bb/0xb40 drivers/media/v4l2-core/v4l2-ioctl.c:2874
      video_usercopy+0x44e/0xf00 drivers/media/v4l2-core/v4l2-ioctl.c:3056
      v4l2_ioctl+0x14e/0x1a0 drivers/media/v4l2-core/v4l2-dev.c:364
      vfs_ioctl fs/ioctl.c:46 [inline]
      file_ioctl fs/ioctl.c:509 [inline]
      do_vfs_ioctl+0xced/0x12f0 fs/ioctl.c:696
      ksys_ioctl+0xa0/0xc0 fs/ioctl.c:713
      __do_sys_ioctl fs/ioctl.c:720 [inline]
      __se_sys_ioctl fs/ioctl.c:718 [inline]
      __x64_sys_ioctl+0x74/0xb0 fs/ioctl.c:718
      do_syscall_64+0xcf/0x4f0 arch/x86/entry/common.c:290
      entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7f3b56d8b347
    Code: 90 90 90 48 8b 05 f1 fa 2a 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff
    ff c3 90 90 90 90 90 90 90 90 90 90 b8 10 00 00 00 0f 05 <48> 3d 01 f0 ff
    ff 73 01 c3 48 8b 0d c1 fa 2a 00 31 d2 48 29 c2 64
    RSP: 002b:00007ffe005d5d68 EFLAGS: 00000202 ORIG_RAX: 0000000000000010
    RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f3b56d8b347
    RDX: 00007ffe005d5d70 RSI: 0000000080685600 RDI: 0000000000000003
    RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000202 R12: 0000000000400884
    R13: 00007ffe005d5ec0 R14: 0000000000000000 R15: 0000000000000000
    ==================================================================
    
    For this device udev->product is not initialized and accessing it causes a NULL pointer deref.
    
    The fix is to check for NULL before strscpy() and copy empty string, if
    product is NULL
    
    Reported-by: syzbot+66010012fd4c531a1a96@syzkaller.appspotmail.com
    Signed-off-by: Vandana BN <bnvandana@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    [bwh: Backported to 4.9: This function uses strlcpy() instead of strscpy()]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ca60f42d7965af9f22392caa4074ab0f58c7e1fe
Author: Jouni Malinen <jouni@codeaurora.org>
Date:   Wed Sep 11 16:03:05 2019 +0300

    mac80211: Do not send Layer 2 Update frame before authorization
    
    commit 3e493173b7841259a08c5c8e5cbe90adb349da7e upstream.
    
    The Layer 2 Update frame is used to update bridges when a station roams
    to another AP even if that STA does not transmit any frames after the
    reassociation. This behavior was described in IEEE Std 802.11F-2003 as
    something that would happen based on MLME-ASSOCIATE.indication, i.e.,
    before completing 4-way handshake. However, this IEEE trial-use
    recommended practice document was published before RSN (IEEE Std
    802.11i-2004) and as such, did not consider RSN use cases. Furthermore,
    IEEE Std 802.11F-2003 was withdrawn in 2006 and as such, has not been
    maintained amd should not be used anymore.
    
    Sending out the Layer 2 Update frame immediately after association is
    fine for open networks (and also when using SAE, FT protocol, or FILS
    authentication when the station is actually authenticated by the time
    association completes). However, it is not appropriate for cases where
    RSN is used with PSK or EAP authentication since the station is actually
    fully authenticated only once the 4-way handshake completes after
    authentication and attackers might be able to use the unauthenticated
    triggering of Layer 2 Update frame transmission to disrupt bridge
    behavior.
    
    Fix this by postponing transmission of the Layer 2 Update frame from
    station entry addition to the point when the station entry is marked
    authorized. Similarly, send out the VLAN binding update only if the STA
    entry has already been authorized.
    
    Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
    Reviewed-by: Johannes Berg <johannes@sipsolutions.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    [bwh: Backported to 4.9: adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab567894b3c1b80b6aa3df2eb85e5528c2834fdd
Author: Dedy Lansky <dlansky@codeaurora.org>
Date:   Sun Jul 29 14:59:16 2018 +0300

    cfg80211/mac80211: make ieee80211_send_layer2_update a public function
    
    commit 30ca1aa536211f5ac3de0173513a7a99a98a97f3 upstream.
    
    Make ieee80211_send_layer2_update() a common function so other drivers
    can re-use it.
    
    Signed-off-by: Dedy Lansky <dlansky@codeaurora.org>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    [bwh: Backported to 4.9 as dependency of commit 3e493173b784
     "mac80211: Do not send Layer 2 Update frame before authorization":
     - Retain type-casting of skb_put() return value
     - Adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 246eee7b5748cca95ddadadc2d350427ff7bb70a
Author: Laura Abbott <labbott@redhat.com>
Date:   Wed May 23 11:43:46 2018 -0700

    arm64: Make sure permission updates happen for pmd/pud
    
    commit 82034c23fcbc2389c73d97737f61fa2dd6526413 upstream.
    
    Commit 15122ee2c515 ("arm64: Enforce BBM for huge IO/VMAP mappings")
    disallowed block mappings for ioremap since that code does not honor
    break-before-make. The same APIs are also used for permission updating
    though and the extra checks prevent the permission updates from happening,
    even though this should be permitted. This results in read-only permissions
    not being fully applied. Visibly, this can occasionaly be seen as a failure
    on the built in rodata test when the test data ends up in a section or
    as an odd RW gap on the page table dump. Fix this by using
    pgattr_change_is_safe instead of p*d_present for determining if the
    change is permitted.
    
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Tested-by: Peter Robinson <pbrobinson@gmail.com>
    Reported-by: Peter Robinson <pbrobinson@gmail.com>
    Fixes: 15122ee2c515 ("arm64: Enforce BBM for huge IO/VMAP mappings")
    Signed-off-by: Laura Abbott <labbott@redhat.com>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f45a0a170355546cc47ba7bbf3973fe187d05cf
Author: Will Deacon <will@kernel.org>
Date:   Wed Feb 21 12:59:27 2018 +0000

    arm64: Enforce BBM for huge IO/VMAP mappings
    
    commit 15122ee2c515a253b0c66a3e618bc7ebe35105eb upstream.
    
    ioremap_page_range doesn't honour break-before-make and attempts to put
    down huge mappings (using p*d_set_huge) over the top of pre-existing
    table entries. This leads to us leaking page table memory and also gives
    rise to TLB conflicts and spurious aborts, which have been seen in
    practice on Cortex-A75.
    
    Until this has been resolved, refuse to put block mappings when the
    existing entry is found to be present.
    
    Fixes: 324420bf91f60 ("arm64: add support for ioremap() block mappings")
    Reported-by: Hanjun Guo <hanjun.guo@linaro.org>
    Reported-by: Lei Li <lious.lilei@hisilicon.com>
    Acked-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Will Deacon <will.deacon@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3103206a65f99ee05fa3b8a274b55a02c8ae4a5e
Author: Ben Hutchings <ben.hutchings@codethink.co.uk>
Date:   Tue Jan 14 15:44:11 2020 +0000

    arm64: mm: Change page table pointer name in p[md]_set_huge()
    
    This is preparation for the following backported fixes.  It was done
    upstream as part of commit 20a004e7b017 "arm64: mm: Use
    READ_ONCE/WRITE_ONCE when accessing page tables", the rest of which
    does not seem suitable for stable.
    
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17c41390302670834945cb0c7770e2cfe14211c4
Author: Kristina Martsenko <kristina.martsenko@arm.com>
Date:   Wed Dec 13 17:07:20 2017 +0000

    arm64: don't open code page table entry creation
    
    commit 193383043f14a398393dc18bae8380f7fe665ec3 upstream.
    
    Instead of open coding the generation of page table entries, use the
    macros/functions that exist for this - pfn_p*d and p*d_populate. Most
    code in the kernel already uses these macros, this patch tries to fix
    up the few places that don't. This is useful for the next patch in this
    series, which needs to change the page table entry logic, and it's
    better to have that logic in one place.
    
    The KVM extended ID map is special, since we're creating a level above
    CONFIG_PGTABLE_LEVELS and the required function isn't available. Leave
    it as is and add a comment to explain it. (The normal kernel ID map code
    doesn't need this change because its page tables are created in assembly
    (__create_page_tables)).
    
    Tested-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Reviewed-by: Suzuki K Poulose <suzuki.poulose@arm.com>
    Reviewed-by: Marc Zyngier <marc.zyngier@arm.com>
    Tested-by: Bob Picco <bob.picco@oracle.com>
    Reviewed-by: Bob Picco <bob.picco@oracle.com>
    Signed-off-by: Kristina Martsenko <kristina.martsenko@arm.com>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    [bwh: Backported to 4.9: adjust context]
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 120db145140a9f64275f8efd56a3c20793c5ae47
Author: Ard Biesheuvel <ardb@kernel.org>
Date:   Fri Oct 21 12:22:56 2016 +0100

    arm64: mm: BUG on unsupported manipulations of live kernel mappings
    
    commit e98216b52176ba2bfa4bdb02f178f4d08832d465 upstream.
    
    Now that we take care not manipulate the live kernel page tables in a
    way that may lead to TLB conflicts, the case where a table mapping is
    replaced by a block mapping can no longer occur. So remove the handling
    of this at the PUD and PMD levels, and instead, BUG() on any occurrence
    of live kernel page table manipulations that modify anything other than
    the permission bits.
    
    Since mark_rodata_ro() is the only caller where the kernel mappings that
    are being manipulated are actually live, drop the various conditional
    flush_tlb_all() invocations, and add a single call to mark_rodata_ro()
    instead.
    
    Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 65b32fd4eabc5209019894627b1bda65611fd1cb
Author: Sanjay Konduri <sanjay.konduri@redpinesignals.com>
Date:   Tue May 15 14:34:30 2018 +0530

    rsi: add fix for crash during assertions
    
    commit abd39c6ded9db53aa44c2540092bdd5fb6590fa8 upstream.
    
    Observed crash in some scenarios when assertion has occurred,
    this is because hw structure is freed and is tried to get
    accessed in some functions where null check is already
    present. So, avoided the crash by making the hw to NULL after
    freeing.
    
    Signed-off-by: Sanjay Konduri <sanjay.konduri@redpinesignals.com>
    Signed-off-by: Sushant Kumar Mishra <sushant.mishra@redpinesignals.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit cbad0dc270e7e2c8cf3b28e5daeac42edc399ad0
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Tue May 14 15:41:42 2019 -0700

    fs/select: avoid clang stack usage warning
    
    commit ad312f95d41c9de19313c51e388c4984451c010f upstream.
    
    The select() implementation is carefully tuned to put a sensible amount
    of data on the stack for holding a copy of the user space fd_set, but
    not too large to risk overflowing the kernel stack.
    
    When building a 32-bit kernel with clang, we need a little more space
    than with gcc, which often triggers a warning:
    
      fs/select.c:619:5: error: stack frame size of 1048 bytes in function 'core_sys_select' [-Werror,-Wframe-larger-than=]
      int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
    
    I experimentally found that for 32-bit ARM, reducing the maximum stack
    usage by 64 bytes keeps us reliably under the warning limit again.
    
    Link: http://lkml.kernel.org/r/20190307090146.1874906-1-arnd@arndb.de
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Andi Kleen <ak@linux.intel.com>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: "Darrick J. Wong" <darrick.wong@oracle.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Miles Chen <miles.chen@mediatek.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f8f6561e7c5d7a2e999ab1952566985f79fa5789
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Mar 7 16:58:35 2019 +0100

    ethtool: reduce stack usage with clang
    
    commit 3499e87ea0413ee5b2cc028f4c8ed4d424bc7f98 upstream.
    
    clang inlines the dev_ethtool() more aggressively than gcc does, leading
    to a larger amount of used stack space:
    
    net/core/ethtool.c:2536:24: error: stack frame size of 1216 bytes in function 'dev_ethtool' [-Werror,-Wframe-larger-than=]
    
    Marking the sub-functions that require the most stack space as
    noinline_for_stack gives us reasonable behavior on all compilers.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Reviewed-by: Michal Kubecek <mkubecek@suse.cz>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Miles Chen <miles.chen@mediatek.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f6d018785dbcf8032418d3242028bf42a34846bf
Author: Jiri Kosina <jkosina@suse.cz>
Date:   Fri Jan 10 15:32:51 2020 +0100

    HID: hidraw, uhid: Always report EPOLLOUT
    
    [ Upstream commit 9e635c2851df6caee651e589fbf937b637973c91 ]
    
    hidraw and uhid device nodes are always available for writing so we should
    always report EPOLLOUT and EPOLLWRNORM bits, not only in the cases when
    there is nothing to read.
    
    Reported-by: Linus Torvalds <torvalds@linux-foundation.org>
    Fixes: be54e7461ffdc ("HID: uhid: Fix returning EPOLLOUT from uhid_char_poll")
    Fixes: 9f3b61dc1dd7b ("HID: hidraw: Fix returning EPOLLOUT from hidraw_poll")
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3f2c636c21e4e826905e0289c36fc039368dbb15
Author: Marcel Holtmann <marcel@holtmann.org>
Date:   Wed Dec 4 03:37:13 2019 +0100

    HID: hidraw: Fix returning EPOLLOUT from hidraw_poll
    
    [ Upstream commit 9f3b61dc1dd7b81e99e7ed23776bb64a35f39e1a ]
    
    When polling a connected /dev/hidrawX device, it is useful to get the
    EPOLLOUT when writing is possible. Since writing is possible as soon as
    the device is connected, always return it.
    
    Right now EPOLLOUT is only returned when there are also input reports
    are available. This works if devices start sending reports when
    connected, but some HID devices might need an output report first before
    sending any input reports. This change will allow using EPOLLOUT here as
    well.
    
    Fixes: 378b80370aa1 ("hidraw: Return EPOLLOUT from hidraw_poll")
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0856815500b28e206a4d4e805eeff032004fc7af
Author: Fabian Henneke <fabian.henneke@gmail.com>
Date:   Tue Jul 9 13:03:37 2019 +0200

    hidraw: Return EPOLLOUT from hidraw_poll
    
    [ Upstream commit 378b80370aa1fe50f9c48a3ac8af3e416e73b89f ]
    
    Always return EPOLLOUT from hidraw_poll when a device is connected.
    This is safe since writes are always possible (but will always block).
    
    hidraw does not support non-blocking writes and instead always calls
    blocking backend functions on write requests. Hence, so far, a call to
    poll never returned EPOLLOUT, which confuses tools like socat.
    
    Signed-off-by: Fabian Henneke <fabian.henneke@gmail.com>
    In-reply-to: <CA+hv5qkyis03CgYTWeWX9cr0my-d2Oe+aZo+mjmWRXgjrGqyrw@mail.gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>