commit b0cdffaa546e24acf92ab3b0d4e917a51aff6a82
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Jan 9 10:18:00 2020 +0100

    Linux 4.14.163

commit c8b4d608f6efb84b12d9e98d0aed33676f893363
Author: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Date:   Thu Dec 5 17:28:52 2019 +0300

    perf/x86/intel/bts: Fix the use of page_private()
    
    [ Upstream commit ff61541cc6c1962957758ba433c574b76f588d23 ]
    
    Commit
    
      8062382c8dbe2 ("perf/x86/intel/bts: Add BTS PMU driver")
    
    brought in a warning with the BTS buffer initialization
    that is easily tripped with (assuming KPTI is disabled):
    
    instantly throwing:
    
    > ------------[ cut here ]------------
    > WARNING: CPU: 2 PID: 326 at arch/x86/events/intel/bts.c:86 bts_buffer_setup_aux+0x117/0x3d0
    > Modules linked in:
    > CPU: 2 PID: 326 Comm: perf Not tainted 5.4.0-rc8-00291-gceb9e77324fa #904
    > RIP: 0010:bts_buffer_setup_aux+0x117/0x3d0
    > Call Trace:
    >  rb_alloc_aux+0x339/0x550
    >  perf_mmap+0x607/0xc70
    >  mmap_region+0x76b/0xbd0
    ...
    
    It appears to assume (for lost raisins) that PagePrivate() is set,
    while later it actually tests for PagePrivate() before using
    page_private().
    
    Make it consistent and always check PagePrivate() before using
    page_private().
    
    Fixes: 8062382c8dbe2 ("perf/x86/intel/bts: Add BTS PMU driver")
    Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Vince Weaver <vincent.weaver@maine.edu>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Link: https://lkml.kernel.org/r/20191205142853.28894-2-alexander.shishkin@linux.intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3cc5cbcc504df58afd0213b16335db522bdf85bf
Author: SeongJae Park <sjpark@amazon.de>
Date:   Tue Nov 26 16:36:05 2019 +0100

    xen/blkback: Avoid unmapping unmapped grant pages
    
    [ Upstream commit f9bd84a8a845d82f9b5a081a7ae68c98a11d2e84 ]
    
    For each I/O request, blkback first maps the foreign pages for the
    request to its local pages.  If an allocation of a local page for the
    mapping fails, it should unmap every mapping already made for the
    request.
    
    However, blkback's handling mechanism for the allocation failure does
    not mark the remaining foreign pages as unmapped.  Therefore, the unmap
    function merely tries to unmap every valid grant page for the request,
    including the pages not mapped due to the allocation failure.  On a
    system that fails the allocation frequently, this problem leads to
    following kernel crash.
    
      [  372.012538] BUG: unable to handle kernel NULL pointer dereference at 0000000000000001
      [  372.012546] IP: [<ffffffff814071ac>] gnttab_unmap_refs.part.7+0x1c/0x40
      [  372.012557] PGD 16f3e9067 PUD 16426e067 PMD 0
      [  372.012562] Oops: 0002 [#1] SMP
      [  372.012566] Modules linked in: act_police sch_ingress cls_u32
      ...
      [  372.012746] Call Trace:
      [  372.012752]  [<ffffffff81407204>] gnttab_unmap_refs+0x34/0x40
      [  372.012759]  [<ffffffffa0335ae3>] xen_blkbk_unmap+0x83/0x150 [xen_blkback]
      ...
      [  372.012802]  [<ffffffffa0336c50>] dispatch_rw_block_io+0x970/0x980 [xen_blkback]
      ...
      Decompressing Linux... Parsing ELF... done.
      Booting the kernel.
      [    0.000000] Initializing cgroup subsys cpuset
    
    This commit fixes this problem by marking the grant pages of the given
    request that didn't mapped due to the allocation failure as invalid.
    
    Fixes: c6cc142dac52 ("xen-blkback: use balloon pages for all mappings")
    
    Reviewed-by: David Woodhouse <dwmw@amazon.de>
    Reviewed-by: Maximilian Heyne <mheyne@amazon.de>
    Reviewed-by: Paul Durrant <pdurrant@amazon.co.uk>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    Signed-off-by: SeongJae Park <sjpark@amazon.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26752e31fd64283720020bd4c82985fbaefbbd9c
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Sun Nov 17 14:55:38 2019 +0100

    s390/smp: fix physical to logical CPU map for SMT
    
    [ Upstream commit 72a81ad9d6d62dcb79f7e8ad66ffd1c768b72026 ]
    
    If an SMT capable system is not IPL'ed from the first CPU the setup of
    the physical to logical CPU mapping is broken: the IPL core gets CPU
    number 0, but then the next core gets CPU number 1. Correct would be
    that all SMT threads of CPU 0 get the subsequent logical CPU numbers.
    
    This is important since a lot of code (like e.g. the CPU topology
    code) assumes that CPU maps are setup like this. If the mapping is
    broken the system will not IPL due to broken topology masks:
    
    [    1.716341] BUG: arch topology broken
    [    1.716342]      the SMT domain not a subset of the MC domain
    [    1.716343] BUG: arch topology broken
    [    1.716344]      the MC domain not a subset of the BOOK domain
    
    This scenario can usually not happen since LPARs are always IPL'ed
    from CPU 0 and also re-IPL is intiated from CPU 0. However older
    kernels did initiate re-IPL on an arbitrary CPU. If therefore a re-IPL
    from an old kernel into a new kernel is initiated this may lead to
    crash.
    
    Fix this by setting up the physical to logical CPU mapping correctly.
    
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33e1cea2dc772298f27cff484debf17d9299c916
Author: Eric Dumazet <edumazet@google.com>
Date:   Thu Nov 7 18:29:11 2019 -0800

    net: add annotations on hh->hh_len lockless accesses
    
    [ Upstream commit c305c6ae79e2ce20c22660ceda94f0d86d639a82 ]
    
    KCSAN reported a data-race [1]
    
    While we can use READ_ONCE() on the read sides,
    we need to make sure hh->hh_len is written last.
    
    [1]
    
    BUG: KCSAN: data-race in eth_header_cache / neigh_resolve_output
    
    write to 0xffff8880b9dedcb8 of 4 bytes by task 29760 on cpu 0:
     eth_header_cache+0xa9/0xd0 net/ethernet/eth.c:247
     neigh_hh_init net/core/neighbour.c:1463 [inline]
     neigh_resolve_output net/core/neighbour.c:1480 [inline]
     neigh_resolve_output+0x415/0x470 net/core/neighbour.c:1470
     neigh_output include/net/neighbour.h:511 [inline]
     ip6_finish_output2+0x7a2/0xec0 net/ipv6/ip6_output.c:116
     __ip6_finish_output net/ipv6/ip6_output.c:142 [inline]
     __ip6_finish_output+0x2d7/0x330 net/ipv6/ip6_output.c:127
     ip6_finish_output+0x41/0x160 net/ipv6/ip6_output.c:152
     NF_HOOK_COND include/linux/netfilter.h:294 [inline]
     ip6_output+0xf2/0x280 net/ipv6/ip6_output.c:175
     dst_output include/net/dst.h:436 [inline]
     NF_HOOK include/linux/netfilter.h:305 [inline]
     ndisc_send_skb+0x459/0x5f0 net/ipv6/ndisc.c:505
     ndisc_send_ns+0x207/0x430 net/ipv6/ndisc.c:647
     rt6_probe_deferred+0x98/0xf0 net/ipv6/route.c:615
     process_one_work+0x3d4/0x890 kernel/workqueue.c:2269
     worker_thread+0xa0/0x800 kernel/workqueue.c:2415
     kthread+0x1d4/0x200 drivers/block/aoe/aoecmd.c:1253
     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:352
    
    read to 0xffff8880b9dedcb8 of 4 bytes by task 29572 on cpu 1:
     neigh_resolve_output net/core/neighbour.c:1479 [inline]
     neigh_resolve_output+0x113/0x470 net/core/neighbour.c:1470
     neigh_output include/net/neighbour.h:511 [inline]
     ip6_finish_output2+0x7a2/0xec0 net/ipv6/ip6_output.c:116
     __ip6_finish_output net/ipv6/ip6_output.c:142 [inline]
     __ip6_finish_output+0x2d7/0x330 net/ipv6/ip6_output.c:127
     ip6_finish_output+0x41/0x160 net/ipv6/ip6_output.c:152
     NF_HOOK_COND include/linux/netfilter.h:294 [inline]
     ip6_output+0xf2/0x280 net/ipv6/ip6_output.c:175
     dst_output include/net/dst.h:436 [inline]
     NF_HOOK include/linux/netfilter.h:305 [inline]
     ndisc_send_skb+0x459/0x5f0 net/ipv6/ndisc.c:505
     ndisc_send_ns+0x207/0x430 net/ipv6/ndisc.c:647
     rt6_probe_deferred+0x98/0xf0 net/ipv6/route.c:615
     process_one_work+0x3d4/0x890 kernel/workqueue.c:2269
     worker_thread+0xa0/0x800 kernel/workqueue.c:2415
     kthread+0x1d4/0x200 drivers/block/aoe/aoecmd.c:1253
     ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:352
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 1 PID: 29572 Comm: kworker/1:4 Not tainted 5.4.0-rc6+ #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
    Workqueue: events rt6_probe_deferred
    
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Reported-by: syzbot <syzkaller@googlegroups.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 55db26f2e970de124c01afe67adb40b0f99c7312
Author: Anand Moon <linux.amoon@gmail.com>
Date:   Mon Sep 2 05:49:35 2019 +0000

    arm64: dts: meson: odroid-c2: Disable usb_otg bus to avoid power failed warning
    
    [ Upstream commit 72c9b5f6f75fbc6c47e0a2d02bc3838a2a47c90a ]
    
    usb_otg bus needs to get initialize from the u-boot to be configured
    to used as power source to SBC or usb otg port will get configured
    as host device. Right now this support is missing in the u-boot and
    phy driver so to avoid power failed warning, we would disable this
    feature  until proper fix is found.
    
    [    2.716048] phy phy-c0000000.phy.0: USB ID detect failed!
    [    2.720186] phy phy-c0000000.phy.0: phy poweron failed --> -22
    [    2.726001] ------------[ cut here ]------------
    [    2.730583] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8
    [    2.738983] Modules linked in:
    [    2.742005] CPU: 0 PID: 12 Comm: kworker/0:1 Not tainted 5.2.9-1-ARCH #1
    [    2.748643] Hardware name: Hardkernel ODROID-C2 (DT)
    [    2.753566] Workqueue: events deferred_probe_work_func
    [    2.758649] pstate: 60000005 (nZCv daif -PAN -UAO)
    [    2.763394] pc : _regulator_put+0x3c/0xe8
    [    2.767361] lr : _regulator_put+0x3c/0xe8
    [    2.771326] sp : ffff000011aa3a50
    [    2.774604] x29: ffff000011aa3a50 x28: ffff80007ed1b600
    [    2.779865] x27: ffff80007f7036a8 x26: ffff80007f7036a8
    [    2.785126] x25: 0000000000000000 x24: ffff000011a44458
    [    2.790387] x23: ffff000011344218 x22: 0000000000000009
    [    2.795649] x21: ffff000011aa3b68 x20: ffff80007ed1b500
    [    2.800910] x19: ffff80007ed1b500 x18: 0000000000000010
    [    2.806171] x17: 000000005be5943c x16: 00000000f1c73b29
    [    2.811432] x15: ffffffffffffffff x14: ffff0000117396c8
    [    2.816694] x13: ffff000091aa37a7 x12: ffff000011aa37af
    [    2.821955] x11: ffff000011763000 x10: ffff000011aa3730
    [    2.827216] x9 : 00000000ffffffd0 x8 : ffff000010871760
    [    2.832477] x7 : 00000000000000d0 x6 : ffff0000119d151b
    [    2.837739] x5 : 000000000000000f x4 : 0000000000000000
    [    2.843000] x3 : 0000000000000000 x2 : 38104b2678c20100
    [    2.848261] x1 : 0000000000000000 x0 : 0000000000000024
    [    2.853523] Call trace:
    [    2.855940]  _regulator_put+0x3c/0xe8
    [    2.859562]  regulator_put+0x34/0x48
    [    2.863098]  regulator_bulk_free+0x40/0x58
    [    2.867153]  devm_regulator_bulk_release+0x24/0x30
    [    2.871896]  release_nodes+0x1f0/0x2e0
    [    2.875604]  devres_release_all+0x64/0xa4
    [    2.879571]  really_probe+0x1c8/0x3e0
    [    2.883194]  driver_probe_device+0xe4/0x138
    [    2.887334]  __device_attach_driver+0x90/0x110
    [    2.891733]  bus_for_each_drv+0x8c/0xd8
    [    2.895527]  __device_attach+0xdc/0x160
    [    2.899322]  device_initial_probe+0x24/0x30
    [    2.903463]  bus_probe_device+0x9c/0xa8
    [    2.907258]  deferred_probe_work_func+0xa0/0xf0
    [    2.911745]  process_one_work+0x1b4/0x408
    [    2.915711]  worker_thread+0x54/0x4b8
    [    2.919334]  kthread+0x12c/0x130
    [    2.922526]  ret_from_fork+0x10/0x1c
    [    2.926060] ---[ end trace 51a68f4c0035d6c0 ]---
    [    2.930691] ------------[ cut here ]------------
    [    2.935242] WARNING: CPU: 0 PID: 12 at drivers/regulator/core.c:2039 _regulator_put+0x3c/0xe8
    [    2.943653] Modules linked in:
    [    2.946675] CPU: 0 PID: 12 Comm: kworker/0:1 Tainted: G        W         5.2.9-1-ARCH #1
    [    2.954694] Hardware name: Hardkernel ODROID-C2 (DT)
    [    2.959613] Workqueue: events deferred_probe_work_func
    [    2.964700] pstate: 60000005 (nZCv daif -PAN -UAO)
    [    2.969445] pc : _regulator_put+0x3c/0xe8
    [    2.973412] lr : _regulator_put+0x3c/0xe8
    [    2.977377] sp : ffff000011aa3a50
    [    2.980655] x29: ffff000011aa3a50 x28: ffff80007ed1b600
    [    2.985916] x27: ffff80007f7036a8 x26: ffff80007f7036a8
    [    2.991177] x25: 0000000000000000 x24: ffff000011a44458
    [    2.996439] x23: ffff000011344218 x22: 0000000000000009
    [    3.001700] x21: ffff000011aa3b68 x20: ffff80007ed1bd00
    [    3.006961] x19: ffff80007ed1bd00 x18: 0000000000000010
    [    3.012222] x17: 000000005be5943c x16: 00000000f1c73b29
    [    3.017484] x15: ffffffffffffffff x14: ffff0000117396c8
    [    3.022745] x13: ffff000091aa37a7 x12: ffff000011aa37af
    [    3.028006] x11: ffff000011763000 x10: ffff000011aa3730
    [    3.033267] x9 : 00000000ffffffd0 x8 : ffff000010871760
    [    3.038528] x7 : 00000000000000fd x6 : ffff0000119d151b
    [    3.043790] x5 : 000000000000000f x4 : 0000000000000000
    [    3.049051] x3 : 0000000000000000 x2 : 38104b2678c20100
    [    3.054312] x1 : 0000000000000000 x0 : 0000000000000024
    [    3.059574] Call trace:
    [    3.061991]  _regulator_put+0x3c/0xe8
    [    3.065613]  regulator_put+0x34/0x48
    [    3.069149]  regulator_bulk_free+0x40/0x58
    [    3.073203]  devm_regulator_bulk_release+0x24/0x30
    [    3.077947]  release_nodes+0x1f0/0x2e0
    [    3.081655]  devres_release_all+0x64/0xa4
    [    3.085622]  really_probe+0x1c8/0x3e0
    [    3.089245]  driver_probe_device+0xe4/0x138
    [    3.093385]  __device_attach_driver+0x90/0x110
    [    3.097784]  bus_for_each_drv+0x8c/0xd8
    [    3.101578]  __device_attach+0xdc/0x160
    [    3.105373]  device_initial_probe+0x24/0x30
    [    3.109514]  bus_probe_device+0x9c/0xa8
    [    3.113309]  deferred_probe_work_func+0xa0/0xf0
    [    3.117796]  process_one_work+0x1b4/0x408
    [    3.121762]  worker_thread+0x54/0x4b8
    [    3.125384]  kthread+0x12c/0x130
    [    3.128575]  ret_from_fork+0x10/0x1c
    [    3.132110] ---[ end trace 51a68f4c0035d6c1 ]---
    [    3.136753] dwc2: probe of c9000000.usb failed with error -22
    
    Fixes: 5a0803bd5ae2 ("ARM64: dts: meson-gxbb-odroidc2: Enable USB Nodes")
    Cc: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Cc: Jerome Brunet <jbrunet@baylibre.com>
    Cc: Neil Armstrong <narmstrong@baylibre.com>
    Acked-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com>
    Signed-off-by: Anand Moon <linux.amoon@gmail.com>
    Signed-off-by: Kevin Hilman <khilman@baylibre.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a6c433bf734165adf58d742b18924381d624ca80
Author: Masashi Honma <masashi.honma@gmail.com>
Date:   Fri Sep 27 11:51:46 2019 +0900

    ath9k_htc: Discard undersized packets
    
    [ Upstream commit cd486e627e67ee9ab66914d36d3127ef057cc010 ]
    
    Sometimes the hardware will push small packets that trigger a WARN_ON
    in mac80211. Discard them early to avoid this issue.
    
    This patch ports 2 patches from ath9k to ath9k_htc.
    commit 3c0efb745a172bfe96459e20cbd37b0c945d5f8d "ath9k: discard
    undersized packets".
    commit df5c4150501ee7e86383be88f6490d970adcf157 "ath9k: correctly
    handle short radar pulses".
    
    [  112.835889] ------------[ cut here ]------------
    [  112.835971] WARNING: CPU: 5 PID: 0 at net/mac80211/rx.c:804 ieee80211_rx_napi+0xaac/0xb40 [mac80211]
    [  112.835973] Modules linked in: ath9k_htc ath9k_common ath9k_hw ath mac80211 cfg80211 libarc4 nouveau snd_hda_codec_hdmi intel_rapl_msr intel_rapl_common x86_pkg_temp_thermal intel_powerclamp coretemp snd_hda_codec_realtek snd_hda_codec_generic ledtrig_audio snd_hda_intel snd_hda_codec video snd_hda_core ttm snd_hwdep drm_kms_helper snd_pcm crct10dif_pclmul snd_seq_midi drm snd_seq_midi_event crc32_pclmul snd_rawmidi ghash_clmulni_intel snd_seq aesni_intel aes_x86_64 crypto_simd cryptd snd_seq_device glue_helper snd_timer sch_fq_codel i2c_algo_bit fb_sys_fops snd input_leds syscopyarea sysfillrect sysimgblt intel_cstate mei_me intel_rapl_perf soundcore mxm_wmi lpc_ich mei kvm_intel kvm mac_hid irqbypass parport_pc ppdev lp parport ip_tables x_tables autofs4 hid_generic usbhid hid raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1 raid0 multipath linear e1000e ahci libahci wmi
    [  112.836022] CPU: 5 PID: 0 Comm: swapper/5 Not tainted 5.3.0-wt #1
    [  112.836023] Hardware name: MouseComputer Co.,Ltd. X99-S01/X99-S01, BIOS 1.0C-W7 04/01/2015
    [  112.836056] RIP: 0010:ieee80211_rx_napi+0xaac/0xb40 [mac80211]
    [  112.836059] Code: 00 00 66 41 89 86 b0 00 00 00 e9 c8 fa ff ff 4c 89 b5 40 ff ff ff 49 89 c6 e9 c9 fa ff ff 48 c7 c7 e0 a2 a5 c0 e8 47 41 b0 e9 <0f> 0b 48 89 df e8 5a 94 2d ea e9 02 f9 ff ff 41 39 c1 44 89 85 60
    [  112.836060] RSP: 0018:ffffaa6180220da8 EFLAGS: 00010286
    [  112.836062] RAX: 0000000000000024 RBX: ffff909a20eeda00 RCX: 0000000000000000
    [  112.836064] RDX: 0000000000000000 RSI: ffff909a2f957448 RDI: ffff909a2f957448
    [  112.836065] RBP: ffffaa6180220e78 R08: 00000000000006e9 R09: 0000000000000004
    [  112.836066] R10: 000000000000000a R11: 0000000000000001 R12: 0000000000000000
    [  112.836068] R13: ffff909a261a47a0 R14: 0000000000000000 R15: 0000000000000004
    [  112.836070] FS:  0000000000000000(0000) GS:ffff909a2f940000(0000) knlGS:0000000000000000
    [  112.836071] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  112.836073] CR2: 00007f4e3ffffa08 CR3: 00000001afc0a006 CR4: 00000000001606e0
    [  112.836074] Call Trace:
    [  112.836076]  <IRQ>
    [  112.836083]  ? finish_td+0xb3/0xf0
    [  112.836092]  ? ath9k_rx_prepare.isra.11+0x22f/0x2a0 [ath9k_htc]
    [  112.836099]  ath9k_rx_tasklet+0x10b/0x1d0 [ath9k_htc]
    [  112.836105]  tasklet_action_common.isra.22+0x63/0x110
    [  112.836108]  tasklet_action+0x22/0x30
    [  112.836115]  __do_softirq+0xe4/0x2da
    [  112.836118]  irq_exit+0xae/0xb0
    [  112.836121]  do_IRQ+0x86/0xe0
    [  112.836125]  common_interrupt+0xf/0xf
    [  112.836126]  </IRQ>
    [  112.836130] RIP: 0010:cpuidle_enter_state+0xa9/0x440
    [  112.836133] Code: 3d bc 20 38 55 e8 f7 1d 84 ff 49 89 c7 0f 1f 44 00 00 31 ff e8 28 29 84 ff 80 7d d3 00 0f 85 e6 01 00 00 fb 66 0f 1f 44 00 00 <45> 85 ed 0f 89 ff 01 00 00 41 c7 44 24 10 00 00 00 00 48 83 c4 18
    [  112.836134] RSP: 0018:ffffaa61800e3e48 EFLAGS: 00000246 ORIG_RAX: ffffffffffffffde
    [  112.836136] RAX: ffff909a2f96b340 RBX: ffffffffabb58200 RCX: 000000000000001f
    [  112.836137] RDX: 0000001a458adc5d RSI: 0000000026c9b581 RDI: 0000000000000000
    [  112.836139] RBP: ffffaa61800e3e88 R08: 0000000000000002 R09: 000000000002abc0
    [  112.836140] R10: ffffaa61800e3e18 R11: 000000000000002d R12: ffffca617fb40b00
    [  112.836141] R13: 0000000000000002 R14: ffffffffabb582d8 R15: 0000001a458adc5d
    [  112.836145]  ? cpuidle_enter_state+0x98/0x440
    [  112.836149]  ? menu_select+0x370/0x600
    [  112.836151]  cpuidle_enter+0x2e/0x40
    [  112.836154]  call_cpuidle+0x23/0x40
    [  112.836156]  do_idle+0x204/0x280
    [  112.836159]  cpu_startup_entry+0x1d/0x20
    [  112.836164]  start_secondary+0x167/0x1c0
    [  112.836169]  secondary_startup_64+0xa4/0xb0
    [  112.836173] ---[ end trace 9f4cd18479cc5ae5 ]---
    
    Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a0758704a2d8cb58697be6d91ed3c0cab7d97d47
Author: Masashi Honma <masashi.honma@gmail.com>
Date:   Fri Sep 27 11:51:45 2019 +0900

    ath9k_htc: Modify byte order for an error message
    
    [ Upstream commit e01fddc19d215f6ad397894ec2a851d99bf154e2 ]
    
    rs_datalen is be16 so we need to convert it before printing.
    
    Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
    Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 85aa8f877cc99717353089ac02cdc322491137fe
Author: David Howells <dhowells@redhat.com>
Date:   Thu Oct 10 15:52:34 2019 +0100

    rxrpc: Fix possible NULL pointer access in ICMP handling
    
    [ Upstream commit f0308fb0708078d6c1d8a4d533941a7a191af634 ]
    
    If an ICMP packet comes in on the UDP socket backing an AF_RXRPC socket as
    the UDP socket is being shut down, rxrpc_error_report() may get called to
    deal with it after sk_user_data on the UDP socket has been cleared, leading
    to a NULL pointer access when this local endpoint record gets accessed.
    
    Fix this by just returning immediately if sk_user_data was NULL.
    
    The oops looks like the following:
    
    #PF: supervisor read access in kernel mode
    #PF: error_code(0x0000) - not-present page
    ...
    RIP: 0010:rxrpc_error_report+0x1bd/0x6a9
    ...
    Call Trace:
     ? sock_queue_err_skb+0xbd/0xde
     ? __udp4_lib_err+0x313/0x34d
     __udp4_lib_err+0x313/0x34d
     icmp_unreach+0x1ee/0x207
     icmp_rcv+0x25b/0x28f
     ip_protocol_deliver_rcu+0x95/0x10e
     ip_local_deliver+0xe9/0x148
     __netif_receive_skb_one_core+0x52/0x6e
     process_backlog+0xdc/0x177
     net_rx_action+0xf9/0x270
     __do_softirq+0x1b6/0x39a
     ? smpboot_register_percpu_thread+0xce/0xce
     run_ksoftirqd+0x1d/0x42
     smpboot_thread_fn+0x19e/0x1b3
     kthread+0xf1/0xf6
     ? kthread_delayed_work_timer_fn+0x83/0x83
     ret_from_fork+0x24/0x30
    
    Fixes: 17926a79320a ("[AF_RXRPC]: Provide secure RxRPC sockets for use by userspace and kernel both")
    Reported-by: syzbot+611164843bd48cc2190c@syzkaller.appspotmail.com
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 544d4b9fc42469a8dd5e05bc6cbce31d6848b0e0
Author: Florian Westphal <fw@strlen.de>
Date:   Mon Jun 17 16:02:28 2019 +0200

    selftests: rtnetlink: add addresses with fixed life time
    
    [ Upstream commit 3cfa148826e3c666da1cc2a43fbe8689e2650636 ]
    
    This exercises kernel code path that deal with addresses that have
    a limited lifetime.
    
    Without previous fix, this triggers following crash on net-next:
     BUG: KASAN: null-ptr-deref in check_lifetime+0x403/0x670
     Read of size 8 at addr 0000000000000010 by task kworker [..]
    
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 72e77ea7b5935428d816124fb5a104a777410d51
Author: Daniel Axtens <dja@axtens.net>
Date:   Mon Jun 3 16:56:57 2019 +1000

    powerpc/pseries/hvconsole: Fix stack overread via udbg
    
    [ Upstream commit 934bda59f286d0221f1a3ebab7f5156a996cc37d ]
    
    While developing KASAN for 64-bit book3s, I hit the following stack
    over-read.
    
    It occurs because the hypercall to put characters onto the terminal
    takes 2 longs (128 bits/16 bytes) of characters at a time, and so
    hvc_put_chars() would unconditionally copy 16 bytes from the argument
    buffer, regardless of supplied length. However, udbg_hvc_putc() can
    call hvc_put_chars() with a single-byte buffer, leading to the error.
    
      ==================================================================
      BUG: KASAN: stack-out-of-bounds in hvc_put_chars+0xdc/0x110
      Read of size 8 at addr c0000000023e7a90 by task swapper/0
    
      CPU: 0 PID: 0 Comm: swapper Not tainted 5.2.0-rc2-next-20190528-02824-g048a6ab4835b #113
      Call Trace:
        dump_stack+0x104/0x154 (unreliable)
        print_address_description+0xa0/0x30c
        __kasan_report+0x20c/0x224
        kasan_report+0x18/0x30
        __asan_report_load8_noabort+0x24/0x40
        hvc_put_chars+0xdc/0x110
        hvterm_raw_put_chars+0x9c/0x110
        udbg_hvc_putc+0x154/0x200
        udbg_write+0xf0/0x240
        console_unlock+0x868/0xd30
        register_console+0x970/0xe90
        register_early_udbg_console+0xf8/0x114
        setup_arch+0x108/0x790
        start_kernel+0x104/0x784
        start_here_common+0x1c/0x534
    
      Memory state around the buggy address:
       c0000000023e7980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       c0000000023e7a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1
      >c0000000023e7a80: f1 f1 01 f2 f2 f2 00 00 00 00 00 00 00 00 00 00
                               ^
       c0000000023e7b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
       c0000000023e7b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      ==================================================================
    
    Document that a 16-byte buffer is requred, and provide it in udbg.
    
    Signed-off-by: Daniel Axtens <dja@axtens.net>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d3f3d3999307fa2566848ee3951a8afaa02076f5
Author: Imre Deak <imre.deak@intel.com>
Date:   Fri May 24 00:24:33 2019 +0300

    drm/mst: Fix MST sideband up-reply failure handling
    
    [ Upstream commit d8fd3722207f154b53c80eee2cf4977c3fc25a92 ]
    
    Fix the breakage resulting in the stacktrace below, due to tx queue
    being full when trying to send an up-reply. txmsg->seqno is -1 in this
    case leading to a corruption of the mstb object by
    
            txmsg->dst->tx_slots[txmsg->seqno] = NULL;
    
    in process_single_up_tx_qlock().
    
    [  +0,005162] [drm:process_single_tx_qlock [drm_kms_helper]] set_hdr_from_dst_qlock: failed to find slot
    [  +0,000015] [drm:drm_dp_send_up_ack_reply.constprop.19 [drm_kms_helper]] failed to send msg in q -11
    [  +0,000939] BUG: kernel NULL pointer dereference, address: 00000000000005a0
    [  +0,006982] #PF: supervisor write access in kernel mode
    [  +0,005223] #PF: error_code(0x0002) - not-present page
    [  +0,005135] PGD 0 P4D 0
    [  +0,002581] Oops: 0002 [#1] PREEMPT SMP NOPTI
    [  +0,004359] CPU: 1 PID: 1200 Comm: kworker/u16:3 Tainted: G     U            5.2.0-rc1+ #410
    [  +0,008433] Hardware name: Intel Corporation Ice Lake Client Platform/IceLake U DDR4 SODIMM PD RVP, BIOS ICLSFWR1.R00.3175.A00.1904261428 04/26/2019
    [  +0,013323] Workqueue: i915-dp i915_digport_work_func [i915]
    [  +0,005676] RIP: 0010:queue_work_on+0x19/0x70
    [  +0,004372] Code: ff ff ff 0f 1f 40 00 66 2e 0f 1f 84 00 00 00 00 00 41 56 49 89 f6 41 55 41 89 fd 41 54 55 53 48 89 d3 9c 5d fa e8 e7 81 0c 00 <f0> 48 0f ba 2b 00 73 31 45 31 e4 f7 c5 00 02 00 00 74 13 e8 cf 7f
    [  +0,018750] RSP: 0018:ffffc900007dfc50 EFLAGS: 00010006
    [  +0,005222] RAX: 0000000000000046 RBX: 00000000000005a0 RCX: 0000000000000001
    [  +0,007133] RDX: 000000000001b608 RSI: 0000000000000000 RDI: ffffffff82121972
    [  +0,007129] RBP: 0000000000000202 R08: 0000000000000000 R09: 0000000000000001
    [  +0,007129] R10: 0000000000000000 R11: 0000000000000000 R12: ffff88847bfa5096
    [  +0,007131] R13: 0000000000000010 R14: ffff88849c08f3f8 R15: 0000000000000000
    [  +0,007128] FS:  0000000000000000(0000) GS:ffff88849dc80000(0000) knlGS:0000000000000000
    [  +0,008083] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  +0,005749] CR2: 00000000000005a0 CR3: 0000000005210006 CR4: 0000000000760ee0
    [  +0,007128] PKRU: 55555554
    [  +0,002722] Call Trace:
    [  +0,002458]  drm_dp_mst_handle_up_req+0x517/0x540 [drm_kms_helper]
    [  +0,006197]  ? drm_dp_mst_hpd_irq+0x5b/0x9c0 [drm_kms_helper]
    [  +0,005764]  drm_dp_mst_hpd_irq+0x5b/0x9c0 [drm_kms_helper]
    [  +0,005623]  ? intel_dp_hpd_pulse+0x205/0x370 [i915]
    [  +0,005018]  intel_dp_hpd_pulse+0x205/0x370 [i915]
    [  +0,004836]  i915_digport_work_func+0xbb/0x140 [i915]
    [  +0,005108]  process_one_work+0x245/0x610
    [  +0,004027]  worker_thread+0x37/0x380
    [  +0,003684]  ? process_one_work+0x610/0x610
    [  +0,004184]  kthread+0x119/0x130
    [  +0,003240]  ? kthread_park+0x80/0x80
    [  +0,003668]  ret_from_fork+0x24/0x50
    
    Cc: Lyude Paul <lyude@redhat.com>
    Cc: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Imre Deak <imre.deak@intel.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190523212433.9058-1-imre.deak@intel.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0f6ecead5cfd2bea08a61df2fe695b7e13105494
Author: Chad Dupuis <cdupuis@marvell.com>
Date:   Tue Mar 26 00:38:33 2019 -0700

    scsi: qedf: Do not retry ELS request if qedf_alloc_cmd fails
    
    [ Upstream commit f1c43590365bac054d753d808dbbd207d09e088d ]
    
    If we cannot allocate an ELS middlepath request, simply fail instead of
    trying to delay and then reallocate.  This delay logic is causing soft
    lockup messages:
    
    NMI watchdog: BUG: soft lockup - CPU#2 stuck for 22s! [kworker/2:1:7639]
    Modules linked in: xt_CHECKSUM ipt_MASQUERADE nf_nat_masquerade_ipv4 tun devlink ip6t_rpfilter ipt_REJECT nf_reject_ipv4 ip6t_REJECT nf_reject_ipv6 xt_conntrack ip_set nfnetlink ebtable_nat ebtable_broute bridge stp llc ip6table_nat nf_conntrack_ipv6 nf_defrag_ipv6 nf_nat_ipv6 ip6table_mangle ip6table_security ip6table_raw iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle iptable_security iptable_raw ebtable_filter ebtables ip6table_filter ip6_tables iptable_filter dm_service_time vfat fat rpcrdma sunrpc ib_isert iscsi_target_mod ib_iser libiscsi scsi_transport_iscsi ib_srpt target_core_mod ib_srp scsi_transport_srp ib_ipoib rdma_ucm ib_ucm ib_uverbs ib_umad rdma_cm ib_cm iw_cm sb_edac intel_powerclamp coretemp intel_rapl iosf_mbi kvm_intel kvm
    irqbypass crc32_pclmul ghash_clmulni_intel aesni_intel lrw gf128mul glue_helper ablk_helper cryptd iTCO_wdt iTCO_vendor_support qedr(OE) ib_core joydev ipmi_ssif pcspkr hpilo hpwdt sg ipmi_si ipmi_devintf ipmi_msghandler ioatdma shpchp lpc_ich wmi dca acpi_power_meter dm_multipath ip_tables xfs libcrc32c sd_mod crc_t10dif crct10dif_generic qedf(OE) libfcoe mgag200 libfc i2c_algo_bit drm_kms_helper scsi_transport_fc qede(OE) syscopyarea sysfillrect sysimgblt fb_sys_fops ttm qed(OE) drm crct10dif_pclmul e1000e crct10dif_common crc32c_intel scsi_tgt hpsa i2c_core ptp scsi_transport_sas pps_core dm_mirror dm_region_hash dm_log dm_mod
    CPU: 2 PID: 7639 Comm: kworker/2:1 Kdump: loaded Tainted: G           OEL ------------   3.10.0-861.el7.x86_64 #1
    Hardware name: HP ProLiant DL580 Gen9/ProLiant DL580 Gen9, BIOS U17 07/21/2016
    Workqueue: qedf_2_dpc qedf_handle_rrq [qedf]
    task: ffff959edd628fd0 ti: ffff959ed6f08000 task.ti: ffff959ed6f08000
    RIP: 0010:[<ffffffff8355913a>]  [<ffffffff8355913a>] delay_tsc+0x3a/0x60
    RSP: 0018:ffff959ed6f0bd30  EFLAGS: 00000246
    RAX: 000000008ef5f791 RBX: 5f646d635f666465 RCX: 0000025b8ededa2f
    RDX: 000000000000025b RSI: 0000000000000002 RDI: 0000000000217d1e
    RBP: ffff959ed6f0bd30 R08: ffffffffc079aae8 R09: 0000000000000200
    R10: ffffffffc07952c6 R11: 0000000000000000 R12: 6c6c615f66646571
    R13: ffff959ed6f0bcc8 R14: ffff959ed6f0bd08 R15: ffff959e00000028
    FS:  0000000000000000(0000) GS:ffff959eff480000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f4117fa1eb0 CR3: 0000002039e66000 CR4: 00000000003607e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
    [<ffffffff8355907d>] __const_udelay+0x2d/0x30
    [<ffffffffc079444a>] qedf_initiate_els+0x13a/0x450 [qedf]
    [<ffffffffc0794210>] ? qedf_srr_compl+0x2a0/0x2a0 [qedf]
    [<ffffffffc0795337>] qedf_send_rrq+0x127/0x230 [qedf]
    [<ffffffffc078ed55>] qedf_handle_rrq+0x15/0x20 [qedf]
    [<ffffffff832b2dff>] process_one_work+0x17f/0x440
    [<ffffffff832b3ac6>] worker_thread+0x126/0x3c0
    [<ffffffff832b39a0>] ? manage_workers.isra.24+0x2a0/0x2a0
    [<ffffffff832bae31>] kthread+0xd1/0xe0
    [<ffffffff832bad60>] ? insert_kthread_work+0x40/0x40
    [<ffffffff8391f637>] ret_from_fork_nospec_begin+0x21/0x21
    [<ffffffff832bad60>] ? insert_kthread_work+0x40/0x40
    
    Signed-off-by: Chad Dupuis <cdupuis@marvell.com>
    Signed-off-by: Saurav Kashyap <skashyap@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 973536f045d2850220c9b12871b38024fc75a276
Author: Al Viro <viro@zeniv.linux.org.uk>
Date:   Sun Apr 21 18:53:50 2019 -0400

    fix compat handling of FICLONERANGE, FIDEDUPERANGE and FS_IOC_FIEMAP
    
    commit 6b2daec19094a90435abe67d16fb43b1a5527254 upstream.
    
    Unlike FICLONE, all of those take a pointer argument; they do need
    compat_ptr() applied to arg.
    
    Fixes: d79bdd52d8be ("vfs: wire up compat ioctl for CLONE/CLONE_RANGE")
    Fixes: 54dbc1517237 ("vfs: hoist the btrfs deduplication ioctl to the vfs")
    Fixes: ceac204e1da9 ("fs: make fiemap work from compat_ioctl")
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee21b594af100be62eea7732b1f0114b2609c613
Author: Leo Yan <leo.yan@linaro.org>
Date:   Wed Nov 27 22:15:43 2019 +0800

    tty: serial: msm_serial: Fix lockup for sysrq and oops
    
    commit 0e4f7f920a5c6bfe5e851e989f27b35a0cc7fb7e upstream.
    
    As the commit 677fe555cbfb ("serial: imx: Fix recursive locking bug")
    has mentioned the uart driver might cause recursive locking between
    normal printing and the kernel debugging facilities (e.g. sysrq and
    oops).  In the commit it gave out suggestion for fixing recursive
    locking issue: "The solution is to avoid locking in the sysrq case
    and trylock in the oops_in_progress case."
    
    This patch follows the suggestion (also used the exactly same code with
    other serial drivers, e.g. amba-pl011.c) to fix the recursive locking
    issue, this can avoid stuck caused by deadlock and print out log for
    sysrq and oops.
    
    Fixes: 04896a77a97b ("msm_serial: serial driver for MSM7K onboard serial peripheral.")
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Reviewed-by: Jeffrey Hugo <jeffrey.l.hugo@gmail.com>
    Link: https://lore.kernel.org/r/20191127141544.4277-2-leo.yan@linaro.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 08bb799e43a9f4eee1fc00372df0477a6a0fb570
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Wed Oct 16 16:56:50 2019 +0200

    dt-bindings: clock: renesas: rcar-usb2-clock-sel: Fix typo in example
    
    commit 830dbce7c76ea529decac7d23b808c1e7da3d891 upstream.
    
    The documented compatible value for R-Car H3 is
    "renesas,r8a7795-rcar-usb2-clock-sel", not
    "renesas,r8a77950-rcar-usb2-clock-sel".
    
    Fixes: 311accb64570db45 ("clk: renesas: rcar-usb2-clock-sel: Add R-Car USB 2.0 clock selector PHY")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
    Acked-by: Rob Herring <robh@kernel.org>
    Link: https://lore.kernel.org/r/20191016145650.30003-1-geert+renesas@glider.be
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2d7c27957cac081eeacea7c38d8c9c59049883dc
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Wed Oct 9 12:01:47 2019 -0300

    media: usb: fix memory leak in af9005_identify_state
    
    commit 2289adbfa559050d2a38bcd9caac1c18b800e928 upstream.
    
    In af9005_identify_state when returning -EIO the allocated buffer should
    be released. Replace the "return -EIO" with assignment into ret and move
    deb_info() under a check.
    
    Fixes: af4e067e1dcf ("V4L/DVB (5625): Add support for the AF9005 demodulator from Afatech")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0902316524bf0d0e6de17263f9e02a3dd4e1d0ae
Author: Stephan Gerhold <stephan@gerhold.net>
Date:   Wed Nov 6 18:31:24 2019 +0100

    regulator: ab8500: Remove AB8505 USB regulator
    
    commit 99c4f70df3a6446c56ca817c2d0f9c12d85d4e7c upstream.
    
    The USB regulator was removed for AB8500 in
    commit 41a06aa738ad ("regulator: ab8500: Remove USB regulator").
    It was then added for AB8505 in
    commit 547f384f33db ("regulator: ab8500: add support for ab8505").
    
    However, there was never an entry added for it in
    ab8505_regulator_match. This causes all regulators after it
    to be initialized with the wrong device tree data, eventually
    leading to an out-of-bounds array read.
    
    Given that it is not used anywhere in the kernel, it seems
    likely that similar arguments against supporting it exist for
    AB8505 (it is controlled by hardware).
    
    Therefore, simply remove it like for AB8500 instead of adding
    an entry in ab8505_regulator_match.
    
    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-1-stephan@gerhold.net
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6b74fc7903ed26c81a2351682501db6afd4acd51
Author: Colin Ian King <colin.king@canonical.com>
Date:   Fri Oct 25 15:33:39 2019 +0200

    media: flexcop-usb: ensure -EIO is returned on error condition
    
    commit 74a96b51a36de4d86660fbc56b05d86668162d6b upstream.
    
    An earlier commit hard coded a return 0 to function flexcop_usb_i2c_req
    even though the an -EIO was intended to be returned in the case where
    ret != buflen.  Fix this by replacing the return 0 with the return of
    ret to return the error return code.
    
    Addresses-Coverity: ("Unused value")
    
    Fixes: b430eaba0be5 ("[media] flexcop-usb: don't use stack for DMA")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Sean Young <sean@mess.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit f3cb0d22715681a02dbb287bb2f7c4989744e2ee
Author: Navid Emamdoost <navid.emamdoost@gmail.com>
Date:   Thu Nov 21 14:20:36 2019 -0600

    Bluetooth: Fix memory leak in hci_connect_le_scan
    
    commit d088337c38a5cd8f0230fbf2d514ff7672f9d0d3 upstream.
    
    In the implementation of hci_connect_le_scan() when conn is added via
    hci_conn_add(), if hci_explicit_conn_params_set() fails the allocated
    memory for conn is leaked. Use hci_conn_del() to release it.
    
    Fixes: f75113a26008 ("Bluetooth: add hci_connect_le_scan")
    Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bb5a3cc04468c8de9f957b9396ec6102911d3b0a
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Nov 19 09:17:05 2019 +0300

    Bluetooth: delete a stray unlock
    
    commit df66499a1fab340c167250a5743931dc50d5f0fa upstream.
    
    We used to take a lock in amp_physical_cfm() but then we moved it to
    the caller function.  Unfortunately the unlock on this error path was
    overlooked so it leads to a double unlock.
    
    Fixes: a514b17fab51 ("Bluetooth: Refactor locking in amp_physical_cfm")
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 29ea30c084917f5bde08c318e3e36dd495191030
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Nov 14 16:01:18 2019 +0100

    Bluetooth: btusb: fix PM leak in error case of setup
    
    commit 3d44a6fd0775e6215e836423e27f8eedf8c871ea upstream.
    
    If setup() fails a reference for runtime PM has already
    been taken. Proper use of the error handling in btusb_open()is needed.
    You cannot just return.
    
    Fixes: ace31982585a3 ("Bluetooth: btusb: Add setup callback for chip init on USB")
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4d445d3e83f208fa0c8b533915e9645353100ff5
Author: Michael Haener <michael.haener@siemens.com>
Date:   Fri Nov 29 10:16:49 2019 +0100

    platform/x86: pmc_atom: Add Siemens CONNECT X300 to critclk_systems DMI table
    
    commit e8796c6c69d129420ee94a1906b18d86b84644d4 upstream.
    
    The CONNECT X300 uses the PMC clock for on-board components and gets
    stuck during boot if the clock is disabled. Therefore, add this
    device to the critical systems list.
    Tested on CONNECT X300.
    
    Fixes: 648e921888ad ("clk: x86: Stop marking clocks as CLK_IS_CRITICAL")
    Signed-off-by: Michael Haener <michael.haener@siemens.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit fb7b53cecb818b98cd1fada81286f53b34d4bb9f
Author: Omar Sandoval <osandov@fb.com>
Date:   Tue Nov 26 16:58:08 2019 -0800

    xfs: don't check for AG deadlock for realtime files in bunmapi
    
    commit 69ffe5960df16938bccfe1b65382af0b3de51265 upstream.
    
    Commit 5b094d6dac04 ("xfs: fix multi-AG deadlock in xfs_bunmapi") added
    a check in __xfs_bunmapi() to stop early if we would touch multiple AGs
    in the wrong order. However, this check isn't applicable for realtime
    files. In most cases, it just makes us do unnecessary commits. However,
    without the fix from the previous commit ("xfs: fix realtime file data
    space leak"), if the last and second-to-last extents also happen to have
    different "AG numbers", then the break actually causes __xfs_bunmapi()
    to return without making any progress, which sends
    xfs_itruncate_extents_flags() into an infinite loop.
    
    Fixes: 5b094d6dac04 ("xfs: fix multi-AG deadlock in xfs_bunmapi")
    Signed-off-by: Omar Sandoval <osandov@fb.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 35ddeb365a88ab87bb69cb4fc43160cbf378795d
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date:   Mon Nov 25 19:56:53 2019 +0300

    scsi: qla2xxx: Drop superfluous INIT_WORK of del_work
    
    commit 600954e6f2df695434887dfc6a99a098859990cf upstream.
    
    del_work is already initialized inside qla2x00_alloc_fcport, there's no
    need to overwrite it. Indeed, it might prevent complete traversal of
    workqueue list.
    
    Fixes: a01c77d2cbc45 ("scsi: qla2xxx: Move session delete to driver work queue")
    Cc: Quinn Tran <qutran@marvell.com>
    Link: https://lore.kernel.org/r/20191125165702.1013-5-r.bolshakov@yadro.com
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Tested-by: Hannes Reinecke <hare@suse.de>
    Reviewed-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 46a3c4fb68da8d8d78c81d443d9e80084e13853e
Author: Scott Mayhew <smayhew@redhat.com>
Date:   Wed Oct 9 15:11:37 2019 -0400

    nfsd4: fix up replay_matches_cache()
    
    commit 6e73e92b155c868ff7fce9d108839668caf1d9be upstream.
    
    When running an nfs stress test, I see quite a few cached replies that
    don't match up with the actual request.  The first comment in
    replay_matches_cache() makes sense, but the code doesn't seem to
    match... fix it.
    
    This isn't exactly a bugfix, as the server isn't required to catch every
    case of a false retry.  So, we may as well do this, but if this is
    fixing a problem then that suggests there's a client bug.
    
    Fixes: 53da6a53e1d4 ("nfsd4: catch some false session retries")
    Signed-off-by: Scott Mayhew <smayhew@redhat.com>
    Signed-off-by: J. Bruce Fields <bfields@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 05c3fa01b50856ff17abef3c42caee9879696ebb
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Tue Sep 24 10:26:53 2019 +0300

    PM / devfreq: Check NULL governor in available_governors_show
    
    commit d68adc8f85cd757bd33c8d7b2660ad6f16f7f3dc upstream.
    
    The governor is initialized after sysfs attributes become visible so in
    theory the governor field can be NULL here.
    
    Fixes: bcf23c79c4e46 ("PM / devfreq: Fix available_governor sysfs")
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d9c64efbe05e4cced2c1ffbf93b658eab5714f54
Author: Catalin Marinas <catalin.marinas@arm.com>
Date:   Mon Jan 6 14:35:39 2020 +0000

    arm64: Revert support for execute-only user mappings
    
    commit 24cecc37746393432d994c0dbc251fb9ac7c5d72 upstream.
    
    The ARMv8 64-bit architecture supports execute-only user permissions by
    clearing the PTE_USER and PTE_UXN bits, practically making it a mostly
    privileged mapping but from which user running at EL0 can still execute.
    
    The downside, however, is that the kernel at EL1 inadvertently reading
    such mapping would not trip over the PAN (privileged access never)
    protection.
    
    Revert the relevant bits from commit cab15ce604e5 ("arm64: Introduce
    execute-only page access permissions") so that PROT_EXEC implies
    PROT_READ (and therefore PTE_USER) until the architecture gains proper
    support for execute-only user mappings.
    
    Fixes: cab15ce604e5 ("arm64: Introduce execute-only page access permissions")
    Cc: <stable@vger.kernel.org> # 4.9.x-
    Acked-by: Will Deacon <will@kernel.org>
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7650b4b1df091815bbbbb837d308dd4154684f8a
Author: Wen Yang <wenyang@linux.alibaba.com>
Date:   Fri Jan 3 11:02:48 2020 +0800

    ftrace: Avoid potential division by zero in function profiler
    
    commit e31f7939c1c27faa5d0e3f14519eaf7c89e8a69d upstream.
    
    The ftrace_profile->counter is unsigned long and
    do_div truncates it 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/20200103030248.14516-1-wenyang@linux.alibaba.com
    
    Cc: stable@vger.kernel.org
    Fixes: e330b3bcd8319 ("tracing: Show sample std dev in function profiling")
    Fixes: 34886c8bc590f ("tracing: add average time in function to function profiler")
    Signed-off-by: Wen Yang <wenyang@linux.alibaba.com>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 66a10703d6164a0dbb3efdda66555a5570449c25
Author: chenqiwu <chenqiwu@xiaomi.com>
Date:   Thu Dec 19 14:29:53 2019 +0800

    exit: panic before exit_mm() on global init exit
    
    commit 43cf75d96409a20ef06b756877a2e72b10a026fc upstream.
    
    Currently, when global init and all threads in its thread-group have exited
    we panic via:
    do_exit()
    -> exit_notify()
       -> forget_original_parent()
          -> find_child_reaper()
    This makes it hard to extract a useable coredump for global init from a
    kernel crashdump because by the time we panic exit_mm() will have already
    released global init's mm.
    This patch moves the panic futher up before exit_mm() is called. As was the
    case previously, we only panic when global init and all its threads in the
    thread-group have exited.
    
    Signed-off-by: chenqiwu <chenqiwu@xiaomi.com>
    Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    [christian.brauner@ubuntu.com: fix typo, rewrite commit message]
    Link: https://lore.kernel.org/r/1576736993-10121-1-git-send-email-qiwuchen55@gmail.com
    Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 8d70c0d57805d3e7cdef93061bef930cc019a5d8
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Oct 30 11:09:21 2019 +0100

    ALSA: firewire-motu: Correct a typo in the clock proc string
    
    commit 0929249e3be3bb82ee6cfec0025f4dde952210b3 upstream.
    
    Just fix a typo of "S/PDIF" in the clock name string.
    
    Fixes: 4638ec6ede08 ("ALSA: firewire-motu: add proc node to show current statuc of clock and packet formats")
    Acked-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://lore.kernel.org/r/20191030100921.3826-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d7867fbbd4d6dccf94aee75dd1281bd95ec46863
Author: Colin Ian King <colin.king@canonical.com>
Date:   Fri Nov 22 13:13:54 2019 +0000

    ALSA: cs4236: fix error return comparison of an unsigned integer
    
    commit d60229d84846a8399257006af9c5444599f64361 upstream.
    
    The return from pnp_irq is an unsigned integer type resource_size_t
    and hence the error check for a positive non-error code is always
    going to be true.  A check for a non-failure return from pnp_irq
    should in fact be for (resource_size_t)-1 rather than >= 0.
    
    Addresses-Coverity: ("Unsigned compared against 0")
    Fixes: a9824c868a2c ("[ALSA] Add CS4232 PnP BIOS support")
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Link: https://lore.kernel.org/r/20191122131354.58042-1-colin.king@canonical.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit bc5e8a8a58be3e7414fb5abdbe49d731cbd26f2f
Author: Steven Rostedt (VMware) <rostedt@goodmis.org>
Date:   Wed Dec 11 15:44:22 2019 -0500

    tracing: Have the histogram compare functions convert to u64 first
    
    commit 106f41f5a302cb1f36c7543fae6a05de12e96fa4 upstream.
    
    The compare functions of the histogram code would be specific for the size
    of the value being compared (byte, short, int, long long). It would
    reference the value from the array via the type of the compare, but the
    value was stored in a 64 bit number. This is fine for little endian
    machines, but for big endian machines, it would end up comparing zeros or
    all ones (depending on the sign) for anything but 64 bit numbers.
    
    To fix this, first derference the value as a u64 then convert it to the type
    being compared.
    
    Link: http://lkml.kernel.org/r/20191211103557.7bed6928@gandalf.local.home
    
    Cc: stable@vger.kernel.org
    Fixes: 08d43a5fa063e ("tracing: Add lock-free tracing_map")
    Acked-by: Tom Zanussi <zanussi@kernel.org>
    Reported-by: Sven Schnelle <svens@stackframe.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit af24719234048a2634edbd797e6da43869ba5293
Author: Prateek Sood <prsood@codeaurora.org>
Date:   Tue Dec 10 09:15:16 2019 +0000

    tracing: Fix lock inversion in trace_event_enable_tgid_record()
    
    commit 3a53acf1d9bea11b57c1f6205e3fe73f9d8a3688 upstream.
    
           Task T2                             Task T3
    trace_options_core_write()            subsystem_open()
    
     mutex_lock(trace_types_lock)           mutex_lock(event_mutex)
    
     set_tracer_flag()
    
       trace_event_enable_tgid_record()       mutex_lock(trace_types_lock)
    
        mutex_lock(event_mutex)
    
    This gives a circular dependency deadlock between trace_types_lock and
    event_mutex. To fix this invert the usage of trace_types_lock and
    event_mutex in trace_options_core_write(). This keeps the sequence of
    lock usage consistent.
    
    Link: http://lkml.kernel.org/r/0101016eef175e38-8ca71caf-a4eb-480d-a1e6-6f0bbc015495-000000@us-west-2.amazonses.com
    
    Cc: stable@vger.kernel.org
    Fixes: d914ba37d7145 ("tracing: Add support for recording tgid of tasks")
    Signed-off-by: Prateek Sood <prsood@codeaurora.org>
    Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3444204d610b8ab60353d6731d1670edfa5fe911
Author: Russell King <rmk+kernel@armlinux.org.uk>
Date:   Sat Dec 7 16:20:18 2019 +0000

    gpiolib: fix up emulated open drain outputs
    
    commit 256efaea1fdc4e38970489197409a26125ee0aaa upstream.
    
    gpiolib has a corner case with open drain outputs that are emulated.
    When such outputs are outputting a logic 1, emulation will set the
    hardware to input mode, which will cause gpiod_get_direction() to
    report that it is in input mode. This is different from the behaviour
    with a true open-drain output.
    
    Unify the semantics here.
    
    Cc: <stable@vger.kernel.org>
    Suggested-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ea0b4277ea9df06e484632e92615c37e70545e65
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Tue Dec 10 10:53:45 2019 -0800

    ata: ahci_brcm: Fix AHCI resources management
    
    commit c0cdf2ac4b5bf3e5ef2451ea29fb4104278cdabc upstream.
    
    The AHCI resources management within ahci_brcm.c is a little
    convoluted, largely because it historically had a dedicated clock that
    was managed within this file in the downstream tree. Once brough
    upstream though, the clock was left to be managed by libahci_platform.c
    which is entirely appropriate.
    
    This patch series ensures that the AHCI resources are fetched and
    enabled before any register access is done, thus avoiding bus errors on
    platforms which clock gate the controller by default.
    
    As a result we need to re-arrange the suspend() and resume() functions
    in order to avoid accessing registers after the clocks have been turned
    off respectively before the clocks have been turned on. Finally, we can
    refactor brcm_ahci_get_portmask() in order to fetch the number of ports
    from hpriv->mmio which is now accessible without jumping through hoops
    like we used to do.
    
    The commit pointed in the Fixes tag is both old and new enough not to
    require major headaches for backporting of this patch.
    
    Fixes: eba68f829794 ("ata: ahci_brcmstb: rename to support across Broadcom SoC's")
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0cbbbcda858601c2e2c1535c8819fa1a606d47f1
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Mon Oct 1 10:33:00 2018 -0700

    ata: ahci_brcm: Allow optional reset controller to be used
    
    commit 2b2c47d9e1fe90311b725125d6252a859ee87a79 upstream.
    
    On BCM63138, we need to reset the AHCI core prior to start utilizing it,
    grab the reset controller device cookie and do that.
    
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit eb3f6286e76aa16295081db7ce0229fda6fce4a1
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Tue Dec 10 10:53:44 2019 -0800

    ata: libahci_platform: Export again ahci_platform_<en/dis>able_phys()
    
    commit 84b032dbfdf1c139cd2b864e43959510646975f8 upstream.
    
    This reverts commit 6bb86fefa086faba7b60bb452300b76a47cde1a5
    ("libahci_platform: Staticize ahci_platform_<en/dis>able_phys()") we are
    going to need ahci_platform_{enable,disable}_phys() in a subsequent
    commit for ahci_brcm.c in order to properly control the PHY
    initialization order.
    
    Also make sure the function prototypes are declared in
    include/linux/ahci_platform.h as a result.
    
    Cc: stable@vger.kernel.org
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 238d4e749b773eb58678ea93b8f6cfdf5c454b5a
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Nov 29 11:28:22 2019 +0100

    compat_ioctl: block: handle BLKREPORTZONE/BLKRESETZONE
    
    commit 673bdf8ce0a387ef585c13b69a2676096c6edfe9 upstream.
    
    These were added to blkdev_ioctl() but not blkdev_compat_ioctl,
    so add them now.
    
    Cc: <stable@vger.kernel.org> # v4.10+
    Fixes: 3ed05a987e0f ("blk-zoned: implement ioctls")
    Reviewed-by: Damien Le Moal <damien.lemoal@wdc.com>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 77d19c9c3e078392810c79805a8f3f017fabbfe0
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Fri Nov 29 11:28:22 2019 +0100

    compat_ioctl: block: handle Persistent Reservations
    
    commit b2c0fcd28772f99236d261509bcd242135677965 upstream.
    
    These were added to blkdev_ioctl() in linux-5.5 but not
    blkdev_compat_ioctl, so add them now.
    
    Cc: <stable@vger.kernel.org> # v4.4+
    Fixes: bbd3e064362e ("block: add an API for Persistent Reservations")
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    
    Fold in followup patch from Arnd with missing pr.h header include.
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>

commit 123d28f803deb26b2ae2ac285c1b6ff44cd88e1d
Author: Lukas Wunner <lukas@wunner.de>
Date:   Thu Dec 5 12:54:49 2019 +0100

    dmaengine: Fix access to uninitialized dma_slave_caps
    
    commit 53a256a9b925b47c7e67fc1f16ca41561a7b877c upstream.
    
    dmaengine_desc_set_reuse() allocates a struct dma_slave_caps on the
    stack, populates it using dma_get_slave_caps() and then accesses one
    of its members.
    
    However dma_get_slave_caps() may fail and this isn't accounted for,
    leading to a legitimate warning of gcc-4.9 (but not newer versions):
    
       In file included from drivers/spi/spi-bcm2835.c:19:0:
       drivers/spi/spi-bcm2835.c: In function 'dmaengine_desc_set_reuse':
    >> include/linux/dmaengine.h:1370:10: warning: 'caps.descriptor_reuse' is used uninitialized in this function [-Wuninitialized]
         if (caps.descriptor_reuse) {
    
    Fix it, thereby also silencing the gcc-4.9 warning.
    
    The issue has been present for 4 years but surfaces only now that
    the first caller of dmaengine_desc_set_reuse() has been added in
    spi-bcm2835.c. Another user of reusable DMA descriptors has existed
    for a while in pxa_camera.c, but it sets the DMA_CTRL_REUSE flag
    directly instead of calling dmaengine_desc_set_reuse(). Nevertheless,
    tag this commit for stable in case there are out-of-tree users.
    
    Fixes: 272420214d26 ("dmaengine: Add DMA_CTRL_REUSE")
    Reported-by: kbuild test robot <lkp@intel.com>
    Signed-off-by: Lukas Wunner <lukas@wunner.de>
    Cc: stable@vger.kernel.org # v4.3+
    Link: https://lore.kernel.org/r/ca92998ccc054b4f2bfd60ef3adbab2913171eac.1575546234.git.lukas@wunner.de
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ee4cdf398aeceae9560601dfe5953e93455b0f0d
Author: Amir Goldstein <amir73il@gmail.com>
Date:   Sun Dec 22 20:45:28 2019 +0200

    locks: print unsigned ino in /proc/locks
    
    commit 98ca480a8f22fdbd768e3dad07024c8d4856576c upstream.
    
    An ino is unsigned, so display it as such in /proc/locks.
    
    Cc: stable@vger.kernel.org
    Signed-off-by: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Jeff Layton <jlayton@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45b0a5affcbe3d7e3ab0dd5bc19338404a60a4b2
Author: Aleksandr Yashkin <a.yashkin@inango-systems.com>
Date:   Mon Dec 23 18:38:16 2019 +0500

    pstore/ram: Write new dumps to start of recycled zones
    
    commit 9e5f1c19800b808a37fb9815a26d382132c26c3d upstream.
    
    The ram_core.c routines treat przs as circular buffers. When writing a
    new crash dump, the old buffer needs to be cleared so that the new dump
    doesn't end up in the wrong place (i.e. at the end).
    
    The solution to this problem is to reset the circular buffer state before
    writing a new Oops dump.
    
    Signed-off-by: Aleksandr Yashkin <a.yashkin@inango-systems.com>
    Signed-off-by: Nikolay Merinov <n.merinov@inango-systems.com>
    Signed-off-by: Ariel Gilman <a.gilman@inango-systems.com>
    Link: https://lore.kernel.org/r/20191223133816.28155-1-n.merinov@inango-systems.com
    Fixes: 896fc1f0c4c6 ("pstore/ram: Switch to persistent_ram routines")
    Cc: stable@vger.kernel.org
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit abb59358f1c4d9490688ef7e133afcb6b5bcb7ca
Author: Shakeel Butt <shakeelb@google.com>
Date:   Sat Jan 4 12:59:43 2020 -0800

    memcg: account security cred as well to kmemcg
    
    commit 84029fd04c201a4c7e0b07ba262664900f47c6f5 upstream.
    
    The cred_jar kmem_cache is already memcg accounted in the current kernel
    but cred->security is not.  Account cred->security to kmemcg.
    
    Recently we saw high root slab usage on our production and on further
    inspection, we found a buggy application leaking processes.  Though that
    buggy application was contained within its memcg but we observe much
    more system memory overhead, couple of GiBs, during that period.  This
    overhead can adversely impact the isolation on the system.
    
    One source of high overhead we found was cred->security objects, which
    have a lifetime of at least the life of the process which allocated
    them.
    
    Link: http://lkml.kernel.org/r/20191205223721.40034-1-shakeelb@google.com
    Signed-off-by: Shakeel Butt <shakeelb@google.com>
    Acked-by: Chris Down <chris@chrisdown.name>
    Reviewed-by: Roman Gushchin <guro@fb.com>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1501713aee057266a0774f757678e482a1dd047b
Author: Chanho Min <chanho.min@lge.com>
Date:   Sat Jan 4 12:59:36 2020 -0800

    mm/zsmalloc.c: fix the migrated zspage statistics.
    
    commit ac8f05da5174c560de122c499ce5dfb5d0dfbee5 upstream.
    
    When zspage is migrated to the other zone, the zone page state should be
    updated as well, otherwise the NR_ZSPAGE for each zone shows wrong
    counts including proc/zoneinfo in practice.
    
    Link: http://lkml.kernel.org/r/1575434841-48009-1-git-send-email-chanho.min@lge.com
    Fixes: 91537fee0013 ("mm: add NR_ZSMALLOC to vmstat")
    Signed-off-by: Chanho Min <chanho.min@lge.com>
    Signed-off-by: Jinsuk Choi <jjinsuk.choi@lge.com>
    Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Acked-by: Minchan Kim <minchan@kernel.org>
    Cc: <stable@vger.kernel.org>        [4.9+]
    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 26e5eab93db02f82fd24ff76ce363958c6433936
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Sat Dec 7 23:48:09 2019 +0100

    media: cec: avoid decrementing transmit_queue_sz if it is 0
    
    commit 95c29d46ab2a517e4c26d0a07300edca6768db17 upstream.
    
    WARN if transmit_queue_sz is 0 but do not decrement it.
    The CEC adapter will become unresponsive if it goes below
    0 since then it thinks there are 4 billion messages in the
    queue.
    
    Obviously this should not happen, but a driver bug could
    cause this.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Cc: <stable@vger.kernel.org>      # for v4.12 and up
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d106de1b9e3670abffb2a4e18dbc88170c30b452
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Wed Dec 4 08:52:08 2019 +0100

    media: cec: CEC 2.0-only bcast messages were ignored
    
    commit cec935ce69fc386f13959578deb40963ebbb85c3 upstream.
    
    Some messages are allowed to be a broadcast message in CEC 2.0
    only, and should be ignored by CEC 1.4 devices.
    
    Unfortunately, the check was wrong, causing such messages to be
    marked as invalid under CEC 2.0.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Cc: <stable@vger.kernel.org>      # for v4.10 and up
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 981004da1a3323e19b21157d07fab8b5ca3592a1
Author: Hans Verkuil <hverkuil-cisco@xs4all.nl>
Date:   Sat Dec 7 23:43:23 2019 +0100

    media: pulse8-cec: fix lost cec_transmit_attempt_done() call
    
    commit e5a52a1d15c79bb48a430fb263852263ec1d3f11 upstream.
    
    The periodic PING command could interfere with the result of
    a CEC transmit, causing a lost cec_transmit_attempt_done()
    call.
    
    Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
    Cc: <stable@vger.kernel.org>      # for v4.10 and up
    Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6547dc3b6d4c01f2eca3236b013b60692d3746b8
Author: Paul Burton <paulburton@kernel.org>
Date:   Wed Jan 1 20:50:38 2020 -0800

    MIPS: Avoid VDSO ABI breakage due to global register variable
    
    commit bbcc5672b0063b0e9d65dc8787a4f09c3b5bb5cc upstream.
    
    Declaring __current_thread_info as a global register variable has the
    effect of preventing GCC from saving & restoring its value in cases
    where the ABI would typically do so.
    
    To quote GCC documentation:
    
    > If the register is a call-saved register, call ABI is affected: the
    > register will not be restored in function epilogue sequences after the
    > variable has been assigned. Therefore, functions cannot safely return
    > to callers that assume standard ABI.
    
    When our position independent VDSO is built for the n32 or n64 ABIs all
    functions it exposes should be preserving the value of $gp/$28 for their
    caller, but in the presence of the __current_thread_info global register
    variable GCC stops doing so & simply clobbers $gp/$28 when calculating
    the address of the GOT.
    
    In cases where the VDSO returns success this problem will typically be
    masked by the caller in libc returning & restoring $gp/$28 itself, but
    that is by no means guaranteed. In cases where the VDSO returns an error
    libc will typically contain a fallback path which will now fail
    (typically with a bad memory access) if it attempts anything which
    relies upon the value of $gp/$28 - eg. accessing anything via the GOT.
    
    One fix for this would be to move the declaration of
    __current_thread_info inside the current_thread_info() function,
    demoting it from global register variable to local register variable &
    avoiding inadvertently creating a non-standard calling ABI for the VDSO.
    Unfortunately this causes issues for clang, which doesn't support local
    register variables as pointed out by commit fe92da0f355e ("MIPS: Changed
    current_thread_info() to an equivalent supported by both clang and GCC")
    which introduced the global register variable before we had a VDSO to
    worry about.
    
    Instead, fix this by continuing to use the global register variable for
    the kernel proper but declare __current_thread_info as a simple extern
    variable when building the VDSO. It should never be referenced, and will
    cause a link error if it is. This resolves the calling convention issue
    for the VDSO without having any impact upon the build of the kernel
    itself for either clang or gcc.
    
    Signed-off-by: Paul Burton <paulburton@kernel.org>
    Fixes: ebb5e78cc634 ("MIPS: Initial implementation of a VDSO")
    Reported-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Reviewed-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Tested-by: Jason A. Donenfeld <Jason@zx2c4.com>
    Cc: Arnd Bergmann <arnd@arndb.de>
    Cc: Christian Brauner <christian.brauner@canonical.com>
    Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
    Cc: <stable@vger.kernel.org> # v4.4+
    Cc: linux-mips@vger.kernel.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 016120b3ebe79152f7ad59526303d00f67037d4d
Author: Stefan Mavrodiev <stefan@olimex.com>
Date:   Tue Dec 17 14:46:32 2019 +0200

    drm/sun4i: hdmi: Remove duplicate cleanup calls
    
    commit 57177d214ee0816c4436c23d6c933ccb32c571f1 upstream.
    
    When the HDMI unbinds drm_connector_cleanup() and drm_encoder_cleanup()
    are called. This also happens when the connector and the encoder are
    destroyed. This double call triggers a NULL pointer exception.
    
    The patch fixes this by removing the cleanup calls in the unbind
    function.
    
    Cc: <stable@vger.kernel.org>
    Fixes: 9c5681011a0c ("drm/sun4i: Add HDMI support")
    Signed-off-by: Stefan Mavrodiev <stefan@olimex.com>
    Signed-off-by: Maxime Ripard <maxime@cerno.tech>
    Link: https://patchwork.freedesktop.org/patch/msgid/20191217124632.20820-1-stefan@olimex.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 772593318160f81dddc84752aa599d2e48e0dc4d
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Dec 18 20:26:06 2019 +0100

    ALSA: ice1724: Fix sleep-in-atomic in Infrasonic Quartet support code
    
    commit 0aec96f5897ac16ad9945f531b4bef9a2edd2ebd upstream.
    
    Jia-Ju Bai reported a possible sleep-in-atomic scenario in the ice1724
    driver with Infrasonic Quartet support code: namely, ice->set_rate
    callback gets called inside ice->reg_lock spinlock, while the callback
    in quartet.c holds ice->gpio_mutex.
    
    This patch fixes the invalid call: it simply moves the calls of
    ice->set_rate and ice->set_mclk callbacks outside the spinlock.
    
    Reported-by: Jia-Ju Bai <baijiaju1990@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/5d43135e-73b9-a46a-2155-9e91d0dcdf83@gmail.com
    Link: https://lore.kernel.org/r/20191218192606.12866-1-tiwai@suse.de
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 2acb20ebfbdec80b432da19809e76fff32dfae04
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Wed Dec 4 16:52:37 2019 -0800

    drm: limit to INT_MAX in create_blob ioctl
    
    [ Upstream commit 5bf8bec3f4ce044a223c40cbce92590d938f0e9c ]
    
    The hardened usercpy code is too paranoid ever since commit 6a30afa8c1fb
    ("uaccess: disallow > INT_MAX copy sizes")
    
    Code itself should have been fine as-is.
    
    Link: http://lkml.kernel.org/r/20191106164755.31478-1-daniel.vetter@ffwll.ch
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
    Reported-by: syzbot+fb77e97ebf0612ee6914@syzkaller.appspotmail.com
    Fixes: 6a30afa8c1fb ("uaccess: disallow > INT_MAX copy sizes")
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Stephen Rothwell <sfr@canb.auug.org.au>
    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 4fe7cb918a4782f2cf127b9152b7cabfa670d2bd
Author: Christian Brauner <christian.brauner@ubuntu.com>
Date:   Wed Oct 9 13:48:09 2019 +0200

    taskstats: fix data-race
    
    [ Upstream commit 0b8d616fb5a8ffa307b1d3af37f55c15dae14f28 ]
    
    When assiging and testing taskstats in taskstats_exit() there's a race
    when setting up and reading sig->stats when a thread-group with more
    than one thread exits:
    
    write to 0xffff8881157bbe10 of 8 bytes by task 7951 on cpu 0:
     taskstats_tgid_alloc kernel/taskstats.c:567 [inline]
     taskstats_exit+0x6b7/0x717 kernel/taskstats.c:596
     do_exit+0x2c2/0x18e0 kernel/exit.c:864
     do_group_exit+0xb4/0x1c0 kernel/exit.c:983
     get_signal+0x2a2/0x1320 kernel/signal.c:2734
     do_signal+0x3b/0xc00 arch/x86/kernel/signal.c:815
     exit_to_usermode_loop+0x250/0x2c0 arch/x86/entry/common.c:159
     prepare_exit_to_usermode arch/x86/entry/common.c:194 [inline]
     syscall_return_slowpath arch/x86/entry/common.c:274 [inline]
     do_syscall_64+0x2d7/0x2f0 arch/x86/entry/common.c:299
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    read to 0xffff8881157bbe10 of 8 bytes by task 7949 on cpu 1:
     taskstats_tgid_alloc kernel/taskstats.c:559 [inline]
     taskstats_exit+0xb2/0x717 kernel/taskstats.c:596
     do_exit+0x2c2/0x18e0 kernel/exit.c:864
     do_group_exit+0xb4/0x1c0 kernel/exit.c:983
     __do_sys_exit_group kernel/exit.c:994 [inline]
     __se_sys_exit_group kernel/exit.c:992 [inline]
     __x64_sys_exit_group+0x2e/0x30 kernel/exit.c:992
     do_syscall_64+0xcf/0x2f0 arch/x86/entry/common.c:296
     entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    Fix this by using smp_load_acquire() and smp_store_release().
    
    Reported-by: syzbot+c5d03165a1bd1dead0c1@syzkaller.appspotmail.com
    Fixes: 34ec12349c8a ("taskstats: cleanup ->signal->stats allocation")
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
    Acked-by: Marco Elver <elver@google.com>
    Reviewed-by: Will Deacon <will@kernel.org>
    Reviewed-by: Andrea Parri <parri.andrea@gmail.com>
    Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
    Link: https://lore.kernel.org/r/20191009114809.8643-1-christian.brauner@ubuntu.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 54e15cac21c92a273b1163684670a807885fdd1c
Author: Brian Foster <bfoster@redhat.com>
Date:   Tue Dec 3 07:53:15 2019 -0800

    xfs: fix mount failure crash on invalid iclog memory access
    
    [ Upstream commit 798a9cada4694ca8d970259f216cec47e675bfd5 ]
    
    syzbot (via KASAN) reports a use-after-free in the error path of
    xlog_alloc_log(). Specifically, the iclog freeing loop doesn't
    handle the case of a fully initialized ->l_iclog linked list.
    Instead, it assumes that the list is partially constructed and NULL
    terminated.
    
    This bug manifested because there was no possible error scenario
    after iclog list setup when the original code was added.  Subsequent
    code and associated error conditions were added some time later,
    while the original error handling code was never updated. Fix up the
    error loop to terminate either on a NULL iclog or reaching the end
    of the list.
    
    Reported-by: syzbot+c732f8644185de340492@syzkaller.appspotmail.com
    Signed-off-by: Brian Foster <bfoster@redhat.com>
    Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0fb3b1b499391d4afe4cbc805ecfaaf495e2124
Author: Andy Whitcroft <apw@canonical.com>
Date:   Wed Sep 25 15:39:12 2019 +0100

    PM / hibernate: memory_bm_find_bit(): Tighten node optimisation
    
    [ Upstream commit da6043fe85eb5ec621e34a92540735dcebbea134 ]
    
    When looking for a bit by number we make use of the cached result from the
    preceding lookup to speed up operation.  Firstly we check if the requested
    pfn is within the cached zone and if not lookup the new zone.  We then
    check if the offset for that pfn falls within the existing cached node.
    This happens regardless of whether the node is within the zone we are
    now scanning.  With certain memory layouts it is possible for this to
    false trigger creating a temporary alias for the pfn to a different bit.
    This leads the hibernation code to free memory which it was never allocated
    with the expected fallout.
    
    Ensure the zone we are scanning matches the cached zone before considering
    the cached node.
    
    Deep thanks go to Andrea for many, many, many hours of hacking and testing
    that went into cornering this bug.
    
    Reported-by: Andrea Righi <andrea.righi@canonical.com>
    Tested-by: Andrea Righi <andrea.righi@canonical.com>
    Signed-off-by: Andy Whitcroft <apw@canonical.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4df4720b6c1d609cd8ecd9bc55b3528766854c16
Author: Juergen Gross <jgross@suse.com>
Date:   Thu Dec 12 15:17:50 2019 +0100

    xen/balloon: fix ballooned page accounting without hotplug enabled
    
    [ Upstream commit c673ec61ade89bf2f417960f986bc25671762efb ]
    
    When CONFIG_XEN_BALLOON_MEMORY_HOTPLUG is not defined
    reserve_additional_memory() will set balloon_stats.target_pages to a
    wrong value in case there are still some ballooned pages allocated via
    alloc_xenballooned_pages().
    
    This will result in balloon_process() no longer be triggered when
    ballooned pages are freed in batches.
    
    Reported-by: Nicholas Tsirakis <niko.tsirakis@gmail.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ce254bc68edf06f93d3c0271851c619ff729d31
Author: Paul Durrant <pdurrant@amazon.com>
Date:   Tue Dec 10 14:53:05 2019 +0000

    xen-blkback: prevent premature module unload
    
    [ Upstream commit fa2ac657f9783f0891b2935490afe9a7fd29d3fa ]
    
    Objects allocated by xen_blkif_alloc come from the 'blkif_cache' kmem
    cache. This cache is destoyed when xen-blkif is unloaded so it is
    necessary to wait for the deferred free routine used for such objects to
    complete. This necessity was missed in commit 14855954f636 "xen-blkback:
    allow module to be cleanly unloaded". This patch fixes the problem by
    taking/releasing extra module references in xen_blkif_alloc/free()
    respectively.
    
    Signed-off-by: Paul Durrant <pdurrant@amazon.com>
    Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
    Signed-off-by: Juergen Gross <jgross@suse.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 556f40b79de5e23fba28f5e35831d1526df52a26
Author: Parav Pandit <parav@mellanox.com>
Date:   Thu Dec 12 11:12:13 2019 +0200

    IB/mlx4: Follow mirror sequence of device add during device removal
    
    [ Upstream commit 89f988d93c62384758b19323c886db917a80c371 ]
    
    Current code device add sequence is:
    
    ib_register_device()
    ib_mad_init()
    init_sriov_init()
    register_netdev_notifier()
    
    Therefore, the remove sequence should be,
    
    unregister_netdev_notifier()
    close_sriov()
    mad_cleanup()
    ib_unregister_device()
    
    However it is not above.
    Hence, make do above remove sequence.
    
    Fixes: fa417f7b520ee ("IB/mlx4: Add support for IBoE")
    Signed-off-by: Parav Pandit <parav@mellanox.com>
    Reviewed-by: Maor Gottlieb <maorg@mellanox.com>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Link: https://lore.kernel.org/r/20191212091214.315005-3-leon@kernel.org
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29f57767bfc3ab9b3c6f6638692ebc5158a46ead
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Fri Nov 29 15:24:25 2019 +0100

    s390/cpum_sf: Avoid SBD overflow condition in irq handler
    
    [ Upstream commit 0539ad0b22877225095d8adef0c376f52cc23834 ]
    
    The s390 CPU Measurement sampling facility has an overflow condition
    which fires when all entries in a SBD are used.
    The measurement alert interrupt is triggered and reads out all samples
    in this SDB. It then tests the successor SDB, if this SBD is not full,
    the interrupt handler does not read any samples at all from this SDB
    The design waits for the hardware to fill this SBD and then trigger
    another meassurement alert interrupt.
    
    This scheme works nicely until
    an perf_event_overflow() function call discards the sample due to
    a too high sampling rate.
    The interrupt handler has logic to read out a partially filled SDB
    when the perf event overflow condition in linux common code is met.
    This causes the CPUM sampling measurement hardware and the PMU
    device driver to operate on the same SBD's trailer entry.
    This should not happen.
    
    This can be seen here using this trace:
       cpumsf_pmu_add: tear:0xb5286000
       hw_perf_event_update: sdbt 0xb5286000 full 1 over 0 flush_all:0
       hw_perf_event_update: sdbt 0xb5286008 full 0 over 0 flush_all:0
            above shows 1. interrupt
       hw_perf_event_update: sdbt 0xb5286008 full 1 over 0 flush_all:0
       hw_perf_event_update: sdbt 0xb5286008 full 0 over 0 flush_all:0
            above shows 2. interrupt
            ... this goes on fine until...
       hw_perf_event_update: sdbt 0xb5286068 full 1 over 0 flush_all:0
       perf_push_sample1: overflow
          one or more samples read from the IRQ handler are rejected by
          perf_event_overflow() and the IRQ handler advances to the next SDB
          and modifies the trailer entry of a partially filled SDB.
       hw_perf_event_update: sdbt 0xb5286070 full 0 over 0 flush_all:1
          timestamp: 14:32:52.519953
    
    Next time the IRQ handler is called for this SDB the trailer entry shows
    an overflow count of 19 missed entries.
       hw_perf_event_update: sdbt 0xb5286070 full 1 over 19 flush_all:1
          timestamp: 14:32:52.970058
    
    Remove access to a follow on SDB when event overflow happened.
    
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 42c5538af3c01b79f1f06f147172a1a295376b2f
Author: Thomas Richter <tmricht@linux.ibm.com>
Date:   Thu Nov 28 10:26:41 2019 +0100

    s390/cpum_sf: Adjust sampling interval to avoid hitting sample limits
    
    [ Upstream commit 39d4a501a9ef55c57b51e3ef07fc2aeed7f30b3b ]
    
    Function perf_event_ever_overflow() and perf_event_account_interrupt()
    are called every time samples are processed by the interrupt handler.
    However function perf_event_account_interrupt() has checks to avoid being
    flooded with interrupts (more then 1000 samples are received per
    task_tick).  Samples are then dropped and a PERF_RECORD_THROTTLED is
    added to the perf data. The perf subsystem limit calculation is:
    
        maximum sample frequency := 100000 --> 1 samples per 10 us
        task_tick = 10ms = 10000us --> 1000 samples per task_tick
    
    The work flow is
    
    measurement_alert() uses SDBT head and each SBDT points to 511
     SDB pages, each with 126 sample entries. After processing 8 SBDs
     and for each valid sample calling:
    
         perf_event_overflow()
           perf_event_account_interrupts()
    
    there is a considerable amount of samples being dropped, especially when
    the sample frequency is very high and near the 100000 limit.
    
    To avoid the high amount of samples being dropped near the end of a
    task_tick time frame, increment the sampling interval in case of
    dropped events. The CPU Measurement sampling facility on the s390
    supports only intervals, specifiing how many CPU cycles have to be
    executed before a sample is generated. Increase the interval when the
    samples being generated hit the task_tick limit.
    
    Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
    Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 34ab847d906944ecd1976ad6f49870563bb0b322
Author: Zhiqiang Liu <liuzhiqiang26@huawei.com>
Date:   Tue Dec 10 10:42:25 2019 +0800

    md: raid1: check rdev before reference in raid1_sync_request func
    
    [ Upstream commit 028288df635f5a9addd48ac4677b720192747944 ]
    
    In raid1_sync_request func, rdev should be checked before reference.
    
    Signed-off-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
    Signed-off-by: Song Liu <songliubraving@fb.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f42504ab0aec92b757468bb3cf4fa345d6ff822d
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Dec 9 20:58:56 2019 -0700

    net: make socket read/write_iter() honor IOCB_NOWAIT
    
    [ Upstream commit ebfcd8955c0b52eb793bcbc9e71140e3d0cdb228 ]
    
    The socket read/write helpers only look at the file O_NONBLOCK. not
    the iocb IOCB_NOWAIT flag. This breaks users like preadv2/pwritev2
    and io_uring that rely on not having the file itself marked nonblocking,
    but rather the iocb itself.
    
    Cc: netdev@vger.kernel.org
    Acked-by: David Miller <davem@davemloft.net>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fbff45d2413eb11a0534b3faf9b00636b21337c3
Author: EJ Hsu <ejh@nvidia.com>
Date:   Tue Dec 3 23:34:56 2019 -0800

    usb: gadget: fix wrong endpoint desc
    
    [ Upstream commit e5b5da96da50ef30abb39cb9f694e99366404d24 ]
    
    Gadget driver should always use config_ep_by_speed() to initialize
    usb_ep struct according to usb device's operating speed. Otherwise,
    usb_ep struct may be wrong if usb devcie's operating speed is changed.
    
    The key point in this patch is that we want to make sure the desc pointer
    in usb_ep struct will be set to NULL when gadget is disconnected.
    This will force it to call config_ep_by_speed() to correctly initialize
    usb_ep struct based on the new operating speed when gadget is
    re-connected later.
    
    Reviewed-by: Peter Chen <peter.chen@nxp.com>
    Signed-off-by: EJ Hsu <ejh@nvidia.com>
    Signed-off-by: Felipe Balbi <balbi@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bca6d54dcc98b944bf5efb34e982a06f935b2099
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Thu Oct 24 10:52:52 2019 +0200

    drm/nouveau: Move the declaration of struct nouveau_conn_atom up a bit
    
    [ Upstream commit 37a68eab4cd92b507c9e8afd760fdc18e4fecac6 ]
    
    Place the declaration of struct nouveau_conn_atom above that of
    struct nouveau_connector. This commit makes no changes to the moved
    block what so ever, it just moves it up a bit.
    
    This is a preparation patch to fix some issues with connector handling
    on pre nv50 displays (which do not use atomic modesetting).
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Lyude Paul <lyude@redhat.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 82df1d3fa11bc7b25789efa4232bf0c188c8bc72
Author: Jason Yan <yanaijie@huawei.com>
Date:   Fri Dec 6 09:11:18 2019 +0800

    scsi: libsas: stop discovering if oob mode is disconnected
    
    [ Upstream commit f70267f379b5e5e11bdc5d72a56bf17e5feed01f ]
    
    The discovering of sas port is driven by workqueue in libsas. When libsas
    is processing port events or phy events in workqueue, new events may rise
    up and change the state of some structures such as asd_sas_phy.  This may
    cause some problems such as follows:
    
    ==>thread 1                       ==>thread 2
    
                                      ==>phy up
                                      ==>phy_up_v3_hw()
                                        ==>oob_mode = SATA_OOB_MODE;
                                      ==>phy down quickly
                                      ==>hisi_sas_phy_down()
                                        ==>sas_ha->notify_phy_event()
                                        ==>sas_phy_disconnected()
                                          ==>oob_mode = OOB_NOT_CONNECTED
    ==>workqueue wakeup
    ==>sas_form_port()
      ==>sas_discover_domain()
        ==>sas_get_port_device()
          ==>oob_mode is OOB_NOT_CONNECTED and device
             is wrongly taken as expander
    
    This at last lead to the panic when libsas trying to issue a command to
    discover the device.
    
    [183047.614035] Unable to handle kernel NULL pointer dereference at
    virtual address 0000000000000058
    [183047.622896] Mem abort info:
    [183047.625762]   ESR = 0x96000004
    [183047.628893]   Exception class = DABT (current EL), IL = 32 bits
    [183047.634888]   SET = 0, FnV = 0
    [183047.638015]   EA = 0, S1PTW = 0
    [183047.641232] Data abort info:
    [183047.644189]   ISV = 0, ISS = 0x00000004
    [183047.648100]   CM = 0, WnR = 0
    [183047.651145] user pgtable: 4k pages, 48-bit VAs, pgdp =
    00000000b7df67be
    [183047.657834] [0000000000000058] pgd=0000000000000000
    [183047.662789] Internal error: Oops: 96000004 [#1] SMP
    [183047.667740] Process kworker/u16:2 (pid: 31291, stack limit =
    0x00000000417c4974)
    [183047.675208] CPU: 0 PID: 3291 Comm: kworker/u16:2 Tainted: G
    W  OE 4.19.36-vhulk1907.1.0.h410.eulerosv2r8.aarch64 #1
    [183047.687015] Hardware name: N/A N/A/Kunpeng Desktop Board D920S10,
    BIOS 0.15 10/22/2019
    [183047.695007] Workqueue: 0000:74:02.0_disco_q sas_discover_domain
    [183047.700999] pstate: 20c00009 (nzCv daif +PAN +UAO)
    [183047.705864] pc : prep_ata_v3_hw+0xf8/0x230 [hisi_sas_v3_hw]
    [183047.711510] lr : prep_ata_v3_hw+0xb0/0x230 [hisi_sas_v3_hw]
    [183047.717153] sp : ffff00000f28ba60
    [183047.720541] x29: ffff00000f28ba60 x28: ffff8026852d7228
    [183047.725925] x27: ffff8027dba3e0a8 x26: ffff8027c05fc200
    [183047.731310] x25: 0000000000000000 x24: ffff8026bafa8dc0
    [183047.736695] x23: ffff8027c05fc218 x22: ffff8026852d7228
    [183047.742079] x21: ffff80007c2f2940 x20: ffff8027c05fc200
    [183047.747464] x19: 0000000000f80800 x18: 0000000000000010
    [183047.752848] x17: 0000000000000000 x16: 0000000000000000
    [183047.758232] x15: ffff000089a5a4ff x14: 0000000000000005
    [183047.763617] x13: ffff000009a5a50e x12: ffff8026bafa1e20
    [183047.769001] x11: ffff0000087453b8 x10: ffff00000f28b870
    [183047.774385] x9 : 0000000000000000 x8 : ffff80007e58f9b0
    [183047.779770] x7 : 0000000000000000 x6 : 000000000000003f
    [183047.785154] x5 : 0000000000000040 x4 : ffffffffffffffe0
    [183047.790538] x3 : 00000000000000f8 x2 : 0000000002000007
    [183047.795922] x1 : 0000000000000008 x0 : 0000000000000000
    [183047.801307] Call trace:
    [183047.803827]  prep_ata_v3_hw+0xf8/0x230 [hisi_sas_v3_hw]
    [183047.809127]  hisi_sas_task_prep+0x750/0x888 [hisi_sas_main]
    [183047.814773]  hisi_sas_task_exec.isra.7+0x88/0x1f0 [hisi_sas_main]
    [183047.820939]  hisi_sas_queue_command+0x28/0x38 [hisi_sas_main]
    [183047.826757]  smp_execute_task_sg+0xec/0x218
    [183047.831013]  smp_execute_task+0x74/0xa0
    [183047.834921]  sas_discover_expander.part.7+0x9c/0x5f8
    [183047.839959]  sas_discover_root_expander+0x90/0x160
    [183047.844822]  sas_discover_domain+0x1b8/0x1e8
    [183047.849164]  process_one_work+0x1b4/0x3f8
    [183047.853246]  worker_thread+0x54/0x470
    [183047.856981]  kthread+0x134/0x138
    [183047.860283]  ret_from_fork+0x10/0x18
    [183047.863931] Code: f9407a80 528000e2 39409281 72a04002 (b9405800)
    [183047.870097] kernel fault(0x1) notification starting on CPU 0
    [183047.875828] kernel fault(0x1) notification finished on CPU 0
    [183047.881559] Modules linked in: unibsp(OE) hns3(OE) hclge(OE)
    hnae3(OE) mem_drv(OE) hisi_sas_v3_hw(OE) hisi_sas_main(OE)
    [183047.892418] ---[ end trace 4cc26083fc11b783  ]---
    [183047.897107] Kernel panic - not syncing: Fatal exception
    [183047.902403] kernel fault(0x5) notification starting on CPU 0
    [183047.908134] kernel fault(0x5) notification finished on CPU 0
    [183047.913865] SMP: stopping secondary CPUs
    [183047.917861] Kernel Offset: disabled
    [183047.921422] CPU features: 0x2,a2a00a38
    [183047.925243] Memory Limit: none
    [183047.928372] kernel reboot(0x2) notification starting on CPU 0
    [183047.934190] kernel reboot(0x2) notification finished on CPU 0
    [183047.940008] ---[ end Kernel panic - not syncing: Fatal exception
    ]---
    
    Fixes: 2908d778ab3e ("[SCSI] aic94xx: new driver")
    Link: https://lore.kernel.org/r/20191206011118.46909-1-yanaijie@huawei.com
    Reported-by: Gao Chuan <gaochuan4@huawei.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Signed-off-by: Jason Yan <yanaijie@huawei.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5fac6ee295213de276fb0da852d773af43c24d46
Author: Dan Carpenter <dan.carpenter@oracle.com>
Date:   Tue Dec 3 12:45:09 2019 +0300

    scsi: iscsi: qla4xxx: fix double free in probe
    
    [ Upstream commit fee92f25777789d73e1936b91472e9c4644457c8 ]
    
    On this error path we call qla4xxx_mem_free() and then the caller also
    calls qla4xxx_free_adapter() which calls qla4xxx_mem_free().  It leads to a
    couple double frees:
    
    drivers/scsi/qla4xxx/ql4_os.c:8856 qla4xxx_probe_adapter() warn: 'ha->chap_dma_pool' double freed
    drivers/scsi/qla4xxx/ql4_os.c:8856 qla4xxx_probe_adapter() warn: 'ha->fw_ddb_dma_pool' double freed
    
    Fixes: afaf5a2d341d ("[SCSI] Initial Commit of qla4xxx")
    Link: https://lore.kernel.org/r/20191203094421.hw7ex7qr3j2rbsmx@kili.mountain
    Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 28725bba2be905b00fce2533ac6f48a9f8426df7
Author: Roman Bolshakov <r.bolshakov@yadro.com>
Date:   Mon Nov 25 19:56:56 2019 +0300

    scsi: qla2xxx: Don't call qlt_async_event twice
    
    [ Upstream commit 2c2f4bed9b6299e6430a65a29b5d27b8763fdf25 ]
    
    MBA_PORT_UPDATE generates duplicate log lines in target mode because
    qlt_async_event is called twice. Drop the calls within the case as the
    function will be called right after the switch statement.
    
    Cc: Quinn Tran <qutran@marvell.com>
    Link: https://lore.kernel.org/r/20191125165702.1013-8-r.bolshakov@yadro.com
    Acked-by: Himanshu Madhani <hmadhani@marvel.com>
    Reviewed-by: Hannes Reinecke <hare@suse.de>
    Tested-by: Hannes Reinecke <hare@suse.de>
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed07b2358eb0ab1648c005bf3bd77091333a2bd3
Author: Bo Wu <wubo40@huawei.com>
Date:   Sat Dec 7 03:22:46 2019 +0000

    scsi: lpfc: Fix memory leak on lpfc_bsg_write_ebuf_set func
    
    [ Upstream commit 9a1b0b9a6dab452fb0e39fe96880c4faf3878369 ]
    
    When phba->mbox_ext_buf_ctx.seqNum != phba->mbox_ext_buf_ctx.numBuf,
    dd_data should be freed before return SLI_CONFIG_HANDLED.
    
    When lpfc_sli_issue_mbox func return fails, pmboxq should be also freed in
    job_error tag.
    
    Link: https://lore.kernel.org/r/EDBAAA0BBBA2AC4E9C8B6B81DEEE1D6915E7A966@DGGEML525-MBS.china.huawei.com
    Signed-off-by: Bo Wu <wubo40@huawei.com>
    Reviewed-by: Zhiqiang Liu <liuzhiqiang26@huawei.com>
    Reviewed-by: James Smart <james.smart@broadcom.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5083f6c6acb213b8319a61de2e33402887a067dc
Author: Steve Wise <larrystevenwise@gmail.com>
Date:   Mon Dec 2 20:03:20 2019 -0600

    rxe: correctly calculate iCRC for unaligned payloads
    
    [ Upstream commit 2030abddec6884aaf5892f5724c48fc340e6826f ]
    
    If RoCE PDUs being sent or received contain pad bytes, then the iCRC
    is miscalculated, resulting in PDUs being emitted by RXE with an incorrect
    iCRC, as well as ingress PDUs being dropped due to erroneously detecting
    a bad iCRC in the PDU.  The fix is to include the pad bytes, if any,
    in iCRC computations.
    
    Note: This bug has caused broken on-the-wire compatibility with actual
    hardware RoCE devices since the soft-RoCE driver was first put into the
    mainstream kernel.  Fixing it will create an incompatibility with the
    original soft-RoCE devices, but is necessary to be compatible with real
    hardware devices.
    
    Fixes: 8700e3e7c485 ("Soft RoCE driver")
    Signed-off-by: Steve Wise <larrystevenwise@gmail.com>
    Link: https://lore.kernel.org/r/20191203020319.15036-2-larrystevenwise@gmail.com
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e47a078195d365e883a7dc36e0701552e383a47c
Author: Chuhong Yuan <hslester96@gmail.com>
Date:   Fri Dec 6 09:24:26 2019 +0800

    RDMA/cma: add missed unregister_pernet_subsys in init failure
    
    [ Upstream commit 44a7b6759000ac51b92715579a7bba9e3f9245c2 ]
    
    The driver forgets to call unregister_pernet_subsys() in the error path
    of cma_init().
    Add the missed call to fix it.
    
    Fixes: 4be74b42a6d0 ("IB/cma: Separate port allocation to network namespaces")
    Signed-off-by: Chuhong Yuan <hslester96@gmail.com>
    Reviewed-by: Parav Pandit <parav@mellanox.com>
    Link: https://lore.kernel.org/r/20191206012426.12744-1-hslester96@gmail.com
    Signed-off-by: Doug Ledford <dledford@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5f565ba27cbca21432d2cb8e2a2da905715ab7e
Author: Leonard Crestez <leonard.crestez@nxp.com>
Date:   Thu Nov 14 01:21:31 2019 +0200

    PM / devfreq: Don't fail devfreq_dev_release if not in list
    
    [ Upstream commit 42a6b25e67df6ee6675e8d1eaf18065bd73328ba ]
    
    Right now devfreq_dev_release will print a warning and abort the rest of
    the cleanup if the devfreq instance is not part of the global
    devfreq_list. But this is a valid scenario, for example it can happen if
    the governor can't be found or on any other init error that happens
    after device_register.
    
    Initialize devfreq->node to an empty list head in devfreq_add_device so
    that list_del becomes a safe noop inside devfreq_dev_release and we can
    continue the rest of the cleanup.
    
    Signed-off-by: Leonard Crestez <leonard.crestez@nxp.com>
    Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
    Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Chanwoo Choi <cw00.choi@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit eb9723e635d9d3cd5ea76d599933de710b9251c2
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Dec 2 09:55:46 2019 +0100

    iio: adc: max9611: Fix too short conversion time delay
    
    [ Upstream commit 9fd229c478fbf77c41c8528aa757ef14210365f6 ]
    
    As of commit b9ddd5091160793e ("iio: adc: max9611: Fix temperature
    reading in probe"), max9611 initialization sometimes fails on the
    Salvator-X(S) development board with:
    
        max9611 4-007f: Invalid value received from ADC 0x8000: aborting
        max9611: probe of 4-007f failed with error -5
    
    The max9611 driver tests communications with the chip by reading the die
    temperature during the probe function, which returns an invalid value.
    
    According to the datasheet, the typical ADC conversion time is 2 ms, but
    no minimum or maximum values are provided.  Maxim Technical Support
    confirmed this was tested with temperature Ta=25 degreeC, and promised
    to inform me if a maximum/minimum value is available (they didn't get
    back to me, so I assume it is not).
    
    However, the driver assumes a 1 ms conversion time.  Usually the
    usleep_range() call returns after more than 1.8 ms, hence it succeeds.
    When it returns earlier, the data register may be read too early, and
    the previous measurement value will be returned.  After boot, this is
    the temperature POR (power-on reset) value, causing the failure above.
    
    Fix this by increasing the delay from 1000-2000 µs to 3000-3300 µs.
    
    Note that this issue has always been present, but it was exposed by the
    aformentioned commit.
    
    Fixes: 69780a3bbc0b1e7e ("iio: adc: Add Maxim max9611 ADC driver")
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org>
    Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
    Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a123233fc320ea72c048d41d348b568de1ece023
Author: James Smart <jsmart2021@gmail.com>
Date:   Thu Nov 14 15:15:26 2019 -0800

    nvme_fc: add module to ops template to allow module references
    
    [ Upstream commit 863fbae929c7a5b64e96b8a3ffb34a29eefb9f8f ]
    
    In nvme-fc: it's possible to have connected active controllers
    and as no references are taken on the LLDD, the LLDD can be
    unloaded.  The controller would enter a reconnect state and as
    long as the LLDD resumed within the reconnect timeout, the
    controller would resume.  But if a namespace on the controller
    is the root device, allowing the driver to unload can be problematic.
    To reload the driver, it may require new io to the boot device,
    and as it's no longer connected we get into a catch-22 that
    eventually fails, and the system locks up.
    
    Fix this issue by taking a module reference for every connected
    controller (which is what the core layer did to the transport
    module). Reference is cleared when the controller is removed.
    
    Acked-by: Himanshu Madhani <hmadhani@marvell.com>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Signed-off-by: James Smart <jsmart2021@gmail.com>
    Signed-off-by: Keith Busch <kbusch@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>