commit e4abcebedac3415cf347e95749209a4a7b6f3074
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Sat Apr 20 09:17:05 2019 +0200

    Linux 5.0.9

commit 2db9f8d63d74969fc97017136b347ed2a5fb4b66
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Fri Apr 5 10:14:58 2019 +0800

    paride/pcd: Fix potential NULL pointer dereference and mem leak
    
    [ Upstream commit f0d1762554014ce0ae347b9f0d088f2c157c8c72 ]
    
    Syzkaller report this:
    
    pcd: pcd version 1.07, major 46, nice 0
    pcd0: Autoprobe failed
    pcd: No CD-ROM drive found
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN PTI
    CPU: 1 PID: 4525 Comm: syz-executor.0 Not tainted 5.1.0-rc3+ #8
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    RIP: 0010:pcd_init+0x95c/0x1000 [pcd]
    Code: c4 ab f7 48 89 d8 48 c1 e8 03 80 3c 28 00 74 08 48 89 df e8 56 a3 da f7 4c 8b 23 49 8d bc 24 80 05 00 00 48 89 f8 48 c1 e8 03 <80> 3c 28 00 74 05 e8 39 a3 da f7 49 8b bc 24 80 05 00 00 e8 cc b2
    RSP: 0018:ffff8881e84df880 EFLAGS: 00010202
    RAX: 00000000000000b0 RBX: ffffffffc155a088 RCX: ffffffffc1508935
    RDX: 0000000000040000 RSI: ffffc900014f0000 RDI: 0000000000000580
    RBP: dffffc0000000000 R08: ffffed103ee658b8 R09: ffffed103ee658b8
    R10: 0000000000000001 R11: ffffed103ee658b7 R12: 0000000000000000
    R13: ffffffffc155a778 R14: ffffffffc155a4a8 R15: 0000000000000003
    FS:  00007fe71bee3700(0000) GS:ffff8881f7300000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 000055a7334441a8 CR3: 00000001e9674003 CR4: 00000000007606e0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     ? 0xffffffffc1508000
     ? 0xffffffffc1508000
     do_one_initcall+0xbc/0x47d init/main.c:901
     do_init_module+0x1b5/0x547 kernel/module.c:3456
     load_module+0x6405/0x8c10 kernel/module.c:3804
     __do_sys_finit_module+0x162/0x190 kernel/module.c:3898
     do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007fe71bee2c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000003
    RBP: 00007fe71bee2c70 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007fe71bee36bc
    R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004
    Modules linked in: pcd(+) paride solos_pci atm ts_fsm rtc_mt6397 mac80211 nhc_mobility nhc_udp nhc_ipv6 nhc_hop nhc_dest nhc_fragment nhc_routing 6lowpan rtc_cros_ec memconsole intel_xhci_usb_role_switch roles rtc_wm8350 usbcore industrialio_triggered_buffer kfifo_buf industrialio asc7621 dm_era dm_persistent_data dm_bufio dm_mod tpm gnss_ubx gnss_serial serdev gnss max2165 cpufreq_dt hid_penmount hid menf21bmc_wdt rc_core n_tracesink ide_gd_mod cdns_csi2tx v4l2_fwnode videodev media pinctrl_lewisburg pinctrl_intel iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun joydev mousedev ppdev kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel aes_x86_64 crypto_simd
     ide_pci_generic piix input_leds cryptd glue_helper psmouse ide_core intel_agp serio_raw intel_gtt ata_generic i2c_piix4 agpgart pata_acpi parport_pc parport floppy rtc_cmos sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: bmc150_magn]
    Dumping ftrace buffer:
       (ftrace buffer empty)
    ---[ end trace d873691c3cd69f56 ]---
    
    If alloc_disk fails in pcd_init_units, cd->disk will be
    NULL, however in pcd_detect and pcd_exit, it's not check
    this before free.It may result a NULL pointer dereference.
    
    Also when register_blkdev failed, blk_cleanup_queue() and
    blk_mq_free_tag_set() should be called to free resources.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 81b74ac68c28 ("paride/pcd: cleanup queues when detection fails")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e78434f4dcd2136c537f7b430f7a5a8c45ec406e
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Wed Apr 3 11:37:07 2019 +0800

    paride/pf: Fix potential NULL pointer dereference
    
    [ Upstream commit 58ccd2d31e502c37e108b285bf3d343eb00c235b ]
    
    Syzkaller report this:
    
    pf: pf version 1.04, major 47, cluster 64, nice 0
    pf: No ATAPI disk detected
    kasan: CONFIG_KASAN_INLINE enabled
    kasan: GPF could be caused by NULL-ptr deref or user memory access
    general protection fault: 0000 [#1] SMP KASAN PTI
    CPU: 0 PID: 9887 Comm: syz-executor.0 Tainted: G         C        5.1.0-rc3+ #8
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    RIP: 0010:pf_init+0x7af/0x1000 [pf]
    Code: 46 77 d2 48 89 d8 48 c1 e8 03 80 3c 28 00 74 08 48 89 df e8 03 25 a6 d2 4c 8b 23 49 8d bc 24 80 05 00 00 48 89 f8 48 c1 e8 03 <80> 3c 28 00 74 05 e8 e6 24 a6 d2 49 8b bc 24 80 05 00 00 e8 79 34
    RSP: 0018:ffff8881abcbf998 EFLAGS: 00010202
    RAX: 00000000000000b0 RBX: ffffffffc1e4a8a8 RCX: ffffffffaec50788
    RDX: 0000000000039b10 RSI: ffffc9000153c000 RDI: 0000000000000580
    RBP: dffffc0000000000 R08: ffffed103ee44e59 R09: ffffed103ee44e59
    R10: 0000000000000001 R11: ffffed103ee44e58 R12: 0000000000000000
    R13: ffffffffc1e4b028 R14: 0000000000000000 R15: 0000000000000020
    FS:  00007f1b78a91700(0000) GS:ffff8881f7200000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f6d72b207f8 CR3: 00000001d5790004 CR4: 00000000007606f0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     ? 0xffffffffc1e50000
     do_one_initcall+0xbc/0x47d init/main.c:901
     do_init_module+0x1b5/0x547 kernel/module.c:3456
     load_module+0x6405/0x8c10 kernel/module.c:3804
     __do_sys_finit_module+0x162/0x190 kernel/module.c:3898
     do_syscall_64+0x9f/0x450 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007f1b78a90c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000139
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000020000180 RDI: 0000000000000003
    RBP: 00007f1b78a90c70 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007f1b78a916bc
    R13: 00000000004bcefa R14: 00000000006f6fb0 R15: 0000000000000004
    Modules linked in: pf(+) paride gpio_tps65218 tps65218 i2c_cht_wc ati_remote dc395x act_meta_skbtcindex act_ife ife ecdh_generic rc_xbox_dvd sky81452_regulator v4l2_fwnode leds_blinkm snd_usb_hiface comedi(C) aes_ti slhc cfi_cmdset_0020 mtd cfi_util sx8654 mdio_gpio of_mdio fixed_phy mdio_bitbang libphy alcor_pci matrix_keymap hid_uclogic usbhid scsi_transport_fc videobuf2_v4l2 videobuf2_dma_sg snd_soc_pcm179x_spi snd_soc_pcm179x_codec i2c_demux_pinctrl mdev snd_indigodj isl6405 mii enc28j60 cmac adt7316_i2c(C) adt7316(C) fmc_trivial fmc nf_reject_ipv4 authenc rc_dtt200u rtc_ds1672 dvb_usb_dibusb_mc dvb_usb_dibusb_mc_common dib3000mc dibx000_common dvb_usb_dibusb_common dvb_usb dvb_core videobuf2_common videobuf2_vmalloc videobuf2_memops regulator_haptic adf7242 mac802154 ieee802154 s5h1409 da9034_ts snd_intel8x0m wmi cx24120 usbcore sdhci_cadence sdhci_pltfm sdhci mmc_core joydev i2c_algo_bit scsi_transport_iscsi iscsi_boot_sysfs ves1820 lockd grace nfs_acl auth_rpcgss sunrp
     c
     ip_vs snd_soc_adau7002 snd_cs4281 snd_rawmidi gameport snd_opl3_lib snd_seq_device snd_hwdep snd_ac97_codec ad7418 hid_primax hid snd_soc_cs4265 snd_soc_core snd_pcm_dmaengine snd_pcm snd_timer ac97_bus snd_compress snd soundcore ti_adc108s102 eeprom_93cx6 i2c_algo_pca mlxreg_hotplug st_pressure st_sensors industrialio_triggered_buffer kfifo_buf industrialio v4l2_common videodev media snd_soc_adau_utils rc_pinnacle_grey rc_core pps_gpio leds_lm3692x nandcore ledtrig_pattern iptable_security iptable_raw iptable_mangle iptable_nat nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 iptable_filter bpfilter ip6_vti ip_vti ip_gre ipip sit tunnel4 ip_tunnel hsr veth netdevsim vxcan batman_adv cfg80211 rfkill chnl_net caif nlmon dummy team bonding vcan bridge stp llc ip6_gre gre ip6_tunnel tunnel6 tun mousedev ppdev tpm kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul crc32c_intel ghash_clmulni_intel aesni_intel ide_pci_generic aes_x86_64 piix crypto_simd input_leds psmouse cryp
     td
     glue_helper ide_core intel_agp serio_raw intel_gtt agpgart ata_generic i2c_piix4 pata_acpi parport_pc parport rtc_cmos floppy sch_fq_codel ip_tables x_tables sha1_ssse3 sha1_generic ipv6 [last unloaded: paride]
    Dumping ftrace buffer:
      (ftrace buffer empty)
    ---[ end trace 7a818cf5f210d79e ]---
    
    If alloc_disk fails in pf_init_units, pf->disk will be
    NULL, however in pf_detect and pf_exit, it's not check
    this before free.It may result a NULL pointer dereference.
    
    Also when register_blkdev failed, blk_cleanup_queue() and
    blk_mq_free_tag_set() should be called to free resources.
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Fixes: 6ce59025f118 ("paride/pf: cleanup queues when detection fails")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b59d92ac8a328d9b0212ba5fcd3318cdf8a69409
Author: Kaike Wan <kaike.wan@intel.com>
Date:   Mon Mar 18 09:55:19 2019 -0700

    IB/hfi1: Failed to drain send queue when QP is put into error state
    
    commit 662d66466637862ef955f7f6e78a286d8cf0ebef upstream.
    
    When a QP is put into error state, all pending requests in the send work
    queue should be drained. The following sequence of events could lead to a
    failure, causing a request to hang:
    
    (1) The QP builds a packet and tries to send through SDMA engine.
        However, PIO engine is still busy. Consequently, this packet is put on
        the QP's tx list and the QP is put on the PIO waiting list. The field
        qp->s_flags is set with HFI1_S_WAIT_PIO_DRAIN;
    
    (2) The QP is put into error state by the user application and
        notify_error_qp() is called, which removes the QP from the PIO waiting
        list and the packet from the QP's tx list. In addition, qp->s_flags is
        cleared of RVT_S_ANY_WAIT_IO bits, which does not include
        HFI1_S_WAIT_PIO_DRAIN bit;
    
    (3) The hfi1_schdule_send() function is called to drain the QP's send
        queue. Subsequently, hfi1_do_send() is called. Since the flag bit
        HFI1_S_WAIT_PIO_DRAIN is set in qp->s_flags, hfi1_send_ok() fails.  As
        a result, hfi1_do_send() bails out without draining any request from
        the send queue;
    
    (4) The PIO engine completes the sending and tries to wake up any QP on
        its waiting list. But the QP has been removed from the PIO waiting
        list and therefore is kept in sleep forever.
    
    The fix is to clear qp->s_flags of HFI1_S_ANY_WAIT_IO bits in step (2).
    HFI1_S_ANY_WAIT_IO includes RVT_S_ANY_WAIT_IO and HFI1_S_WAIT_PIO_DRAIN.
    
    Fixes: 2e2ba09e48b7 ("IB/rdmavt, IB/hfi1: Create device dependent s_flags")
    Cc: <stable@vger.kernel.org> # 4.19.x+
    Reviewed-by: Mike Marciniszyn <mike.marciniszyn@intel.com>
    Reviewed-by: Alex Estrin <alex.estrin@intel.com>
    Signed-off-by: Kaike Wan <kaike.wan@intel.com>
    Signed-off-by: Dennis Dalessandro <dennis.dalessandro@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b05baa9f19d070674dc6863f8341c5207c18c0e2
Author: Daniel Borkmann <daniel@iogearbox.net>
Date:   Mon Mar 25 15:54:43 2019 +0100

    bpf: fix use after free in bpf_evict_inode
    
    [ Upstream commit 1da6c4d9140cb7c13e87667dc4e1488d6c8fc10f ]
    
    syzkaller was able to generate the following UAF in bpf:
    
      BUG: KASAN: use-after-free in lookup_last fs/namei.c:2269 [inline]
      BUG: KASAN: use-after-free in path_lookupat.isra.43+0x9f8/0xc00 fs/namei.c:2318
      Read of size 1 at addr ffff8801c4865c47 by task syz-executor2/9423
    
      CPU: 0 PID: 9423 Comm: syz-executor2 Not tainted 4.20.0-rc1-next-20181109+
      #110
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0x244/0x39d lib/dump_stack.c:113
        print_address_description.cold.7+0x9/0x1ff mm/kasan/report.c:256
        kasan_report_error mm/kasan/report.c:354 [inline]
        kasan_report.cold.8+0x242/0x309 mm/kasan/report.c:412
        __asan_report_load1_noabort+0x14/0x20 mm/kasan/report.c:430
        lookup_last fs/namei.c:2269 [inline]
        path_lookupat.isra.43+0x9f8/0xc00 fs/namei.c:2318
        filename_lookup+0x26a/0x520 fs/namei.c:2348
        user_path_at_empty+0x40/0x50 fs/namei.c:2608
        user_path include/linux/namei.h:62 [inline]
        do_mount+0x180/0x1ff0 fs/namespace.c:2980
        ksys_mount+0x12d/0x140 fs/namespace.c:3258
        __do_sys_mount fs/namespace.c:3272 [inline]
        __se_sys_mount fs/namespace.c:3269 [inline]
        __x64_sys_mount+0xbe/0x150 fs/namespace.c:3269
        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
        entry_SYSCALL_64_after_hwframe+0x49/0xbe
      RIP: 0033:0x457569
      Code: fd b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7
      48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff
      ff 0f 83 cb b3 fb ff c3 66 2e 0f 1f 84 00 00 00 00
      RSP: 002b:00007fde6ed96c78 EFLAGS: 00000246 ORIG_RAX: 00000000000000a5
      RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 0000000000457569
      RDX: 0000000020000040 RSI: 0000000020000000 RDI: 0000000000000000
      RBP: 000000000072bf00 R08: 0000000020000340 R09: 0000000000000000
      R10: 0000000000200000 R11: 0000000000000246 R12: 00007fde6ed976d4
      R13: 00000000004c2c24 R14: 00000000004d4990 R15: 00000000ffffffff
    
      Allocated by task 9424:
        save_stack+0x43/0xd0 mm/kasan/kasan.c:448
        set_track mm/kasan/kasan.c:460 [inline]
        kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:553
        __do_kmalloc mm/slab.c:3722 [inline]
        __kmalloc_track_caller+0x157/0x760 mm/slab.c:3737
        kstrdup+0x39/0x70 mm/util.c:49
        bpf_symlink+0x26/0x140 kernel/bpf/inode.c:356
        vfs_symlink+0x37a/0x5d0 fs/namei.c:4127
        do_symlinkat+0x242/0x2d0 fs/namei.c:4154
        __do_sys_symlink fs/namei.c:4173 [inline]
        __se_sys_symlink fs/namei.c:4171 [inline]
        __x64_sys_symlink+0x59/0x80 fs/namei.c:4171
        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
      Freed by task 9425:
        save_stack+0x43/0xd0 mm/kasan/kasan.c:448
        set_track mm/kasan/kasan.c:460 [inline]
        __kasan_slab_free+0x102/0x150 mm/kasan/kasan.c:521
        kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:528
        __cache_free mm/slab.c:3498 [inline]
        kfree+0xcf/0x230 mm/slab.c:3817
        bpf_evict_inode+0x11f/0x150 kernel/bpf/inode.c:565
        evict+0x4b9/0x980 fs/inode.c:558
        iput_final fs/inode.c:1550 [inline]
        iput+0x674/0xa90 fs/inode.c:1576
        do_unlinkat+0x733/0xa30 fs/namei.c:4069
        __do_sys_unlink fs/namei.c:4110 [inline]
        __se_sys_unlink fs/namei.c:4108 [inline]
        __x64_sys_unlink+0x42/0x50 fs/namei.c:4108
        do_syscall_64+0x1b9/0x820 arch/x86/entry/common.c:290
        entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    In this scenario path lookup under RCU is racing with the final
    unlink in case of symlinks. As Linus puts it in his analysis:
    
      [...] We actually RCU-delay the inode freeing itself, but
      when we do the final iput(), the "evict()" function is called
      synchronously. Now, the simple fix would seem to just RCU-delay
      the kfree() of the symlink data in bpf_evict_inode(). Maybe
      that's the right thing to do. [...]
    
    Al suggested to piggy-back on the ->destroy_inode() callback in
    order to implement RCU deferral there which can then kfree() the
    inode->i_link eventually right before putting inode back into
    inode cache. By reusing free_inode_nonrcu() from there we can
    avoid the need for our own inode cache and just reuse generic
    one as we currently do.
    
    And in-fact on top of all this we should just get rid of the
    bpf_evict_inode() entirely. This means truncate_inode_pages_final()
    and clear_inode() will then simply be called by the fs core via
    evict(). Dropping the reference should really only be done when
    inode is unhashed and nothing reachable anymore, so it's better
    also moved into the final ->destroy_inode() callback.
    
    Fixes: 0f98621bef5d ("bpf, inode: add support for symlinks and fix mtime/ctime")
    Reported-by: syzbot+fb731ca573367b7f6564@syzkaller.appspotmail.com
    Reported-by: syzbot+a13e5ead792d6df37818@syzkaller.appspotmail.com
    Reported-by: syzbot+7a8ba368b47fdefca61e@syzkaller.appspotmail.com
    Suggested-by: Al Viro <viro@zeniv.linux.org.uk>
    Analyzed-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Alexei Starovoitov <ast@kernel.org>
    Acked-by: Linus Torvalds <torvalds@linux-foundation.org>
    Acked-by: Al Viro <viro@zeniv.linux.org.uk>
    Link: https://lore.kernel.org/lkml/0000000000006946d2057bbd0eef@google.com/T/
    Signed-off-by: Sasha Levin (Microsoft) <sashal@kernel.org>

commit d05fb50b3d0c58bafcae154c597ebde9e5eab318
Author: Pi-Hsun Shih <pihsun@chromium.org>
Date:   Wed Mar 13 11:44:33 2019 -0700

    include/linux/swap.h: use offsetof() instead of custom __swapoffset macro
    
    [ Upstream commit a4046c06be50a4f01d435aa7fe57514818e6cc82 ]
    
    Use offsetof() to calculate offset of a field to take advantage of
    compiler built-in version when possible, and avoid UBSAN warning when
    compiling with Clang:
    
      UBSAN: Undefined behaviour in mm/swapfile.c:3010:38
      member access within null pointer of type 'union swap_header'
      CPU: 6 PID: 1833 Comm: swapon Tainted: G S                4.19.23 #43
      Call trace:
       dump_backtrace+0x0/0x194
       show_stack+0x20/0x2c
       __dump_stack+0x20/0x28
       dump_stack+0x70/0x94
       ubsan_epilogue+0x14/0x44
       ubsan_type_mismatch_common+0xf4/0xfc
       __ubsan_handle_type_mismatch_v1+0x34/0x54
       __se_sys_swapon+0x654/0x1084
       __arm64_sys_swapon+0x1c/0x24
       el0_svc_common+0xa8/0x150
       el0_svc_compat_handler+0x2c/0x38
       el0_svc_compat+0x8/0x18
    
    Link: http://lkml.kernel.org/r/20190312081902.223764-1-pihsun@chromium.org
    Signed-off-by: Pi-Hsun Shih <pihsun@chromium.org>
    Acked-by: Michal Hocko <mhocko@suse.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1c108a1b645930bfaac6d10b0e1374554ff125c8
Author: Chao Yu <yuchao0@huawei.com>
Date:   Wed Mar 6 17:30:59 2019 +0800

    f2fs: fix to add refcount once page is tagged PG_private
    
    [ Upstream commit 240a59156d9bcfabceddb66be449e7b32fb5dc4a ]
    
    As Gao Xiang reported in bugzilla:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=202749
    
    f2fs may skip pageout() due to incorrect page reference count.
    
    The problem here is that MM defined the rule [1] very clearly that
    once page was set with PG_private flag, we should increment the
    refcount in that page, also main flows like pageout(), migrate_page()
    will assume there is one additional page reference count if
    page_has_private() returns true.
    
    But currently, f2fs won't add/del refcount when changing PG_private
    flag. Anyway, f2fs should follow MM's rule to make MM's related flows
    running as expected.
    
    [1] https://lore.kernel.org/lkml/2b19b3c4-2bc4-15fa-15cc-27a13e5c7af1@aol.com/
    
    Reported-by: Gao Xiang <gaoxiang25@huawei.com>
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b5f51f7abb4373b9cb5677aba23ec45e13f21b02
Author: Chao Yu <yuchao0@huawei.com>
Date:   Tue Mar 5 17:52:33 2019 +0800

    f2fs: fix to use kvfree instead of kzfree
    
    [ Upstream commit 2a6a7e722e7a78d774ce02b847c5b183a3ff2672 ]
    
    As Jiqun Li reported in bugzilla:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=202747
    
    System can panic due to using wrong allocate/free function pair
    in xattr interface:
    - use kvmalloc to allocate memory
    - use kzfree to free memory
    
    Let's fix to use kvfree instead of kzfree, BTW, we are safe to
    get rid of kzfree, since there is no such confidential data stored
    as xattr, we don't need to zero it before free memory.
    
    Fixes: 5222595d093e ("f2fs: use kvmalloc, if kmalloc is failed")
    Reported-by: Jiqun Li <jiqun.li@unisoc.com>
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c55d13d94f8ced4f3fc585b9e2ee12d9df5f3fc4
Author: Chao Yu <yuchao0@huawei.com>
Date:   Sat Feb 23 09:48:27 2019 +0800

    f2fs: fix to dirty inode for i_mode recovery
    
    [ Upstream commit ca597bddedd94906cd761d8be6a3ad21292725de ]
    
    As Seulbae Kim reported in bugzilla:
    
    https://bugzilla.kernel.org/show_bug.cgi?id=202637
    
    We didn't recover permission field correctly after sudden power-cut,
    the reason is in setattr we didn't add inode into global dirty list
    once i_mode is changed, so latter checkpoint triggered by fsync will
    not flush last i_mode into disk, result in this problem, fix it.
    
    Reported-by: Seulbae Kim <seulbae@gatech.edu>
    Signed-off-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4fb70c2107e99b897d68b0bd820bebad6e5b1614
Author: David Howells <dhowells@redhat.com>
Date:   Fri Mar 8 12:48:39 2019 +0000

    rxrpc: Fix client call connect/disconnect race
    
    [ Upstream commit 930c9f9125c85b5134b3e711bc252ecc094708e3 ]
    
    rxrpc_disconnect_client_call() reads the call's connection ID protocol
    value (call->cid) as part of that function's variable declarations.  This
    is bad because it's not inside the locked section and so may race with
    someone granting use of the channel to the call.
    
    This manifests as an assertion failure (see below) where the call in the
    presumed channel (0 because call->cid wasn't set when we read it) doesn't
    match the call attached to the channel we were actually granted (if 1, 2 or
    3).
    
    Fix this by moving the read and dependent calculations inside of the
    channel_lock section.  Also, only set the channel number and pointer
    variables if cid is not zero (ie. unset).
    
    This problem can be induced by injecting an occasional error in
    rxrpc_wait_for_channel() before the call to schedule().
    
    Make two further changes also:
    
     (1) Add a trace for wait failure in rxrpc_connect_call().
    
     (2) Drop channel_lock before BUG'ing in the case of the assertion failure.
    
    The failure causes a trace akin to the following:
    
    rxrpc: Assertion failed - 18446612685268945920(0xffff8880beab8c00) == 18446612685268621312(0xffff8880bea69800) is false
    ------------[ cut here ]------------
    kernel BUG at net/rxrpc/conn_client.c:824!
    ...
    RIP: 0010:rxrpc_disconnect_client_call+0x2bf/0x99d
    ...
    Call Trace:
     rxrpc_connect_call+0x902/0x9b3
     ? wake_up_q+0x54/0x54
     rxrpc_new_client_call+0x3a0/0x751
     ? rxrpc_kernel_begin_call+0x141/0x1bc
     ? afs_alloc_call+0x1b5/0x1b5
     rxrpc_kernel_begin_call+0x141/0x1bc
     afs_make_call+0x20c/0x525
     ? afs_alloc_call+0x1b5/0x1b5
     ? __lock_is_held+0x40/0x71
     ? lockdep_init_map+0xaf/0x193
     ? lockdep_init_map+0xaf/0x193
     ? __lock_is_held+0x40/0x71
     ? yfs_fs_fetch_data+0x33b/0x34a
     yfs_fs_fetch_data+0x33b/0x34a
     afs_fetch_data+0xdc/0x3b7
     afs_read_dir+0x52d/0x97f
     afs_dir_iterate+0xa0/0x661
     ? iterate_dir+0x63/0x141
     iterate_dir+0xa2/0x141
     ksys_getdents64+0x9f/0x11b
     ? filldir+0x111/0x111
     ? do_syscall_64+0x3e/0x1a0
     __x64_sys_getdents64+0x16/0x19
     do_syscall_64+0x7d/0x1a0
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Fixes: 45025bceef17 ("rxrpc: Improve management and caching of client connection objects")
    Signed-off-by: David Howells <dhowells@redhat.com>
    Reviewed-by: Marc Dionne <marc.dionne@auristor.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 78154e3198885b037aa30bbf9539747c2692656a
Author: Stanislaw Gruszka <sgruszka@redhat.com>
Date:   Thu Mar 7 16:28:18 2019 -0800

    lib/div64.c: off by one in shift
    
    [ Upstream commit cdc94a37493135e355dfc0b0e086d84e3eadb50d ]
    
    fls counts bits starting from 1 to 32 (returns 0 for zero argument).  If
    we add 1 we shift right one bit more and loose precision from divisor,
    what cause function incorect results with some numbers.
    
    Corrected code was tested in user-space, see bugzilla:
       https://bugzilla.kernel.org/show_bug.cgi?id=202391
    
    Link: http://lkml.kernel.org/r/1548686944-11891-1-git-send-email-sgruszka@redhat.com
    Fixes: 658716d19f8f ("div64_u64(): improve precision on 32bit platforms")
    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
    Reported-by: Siarhei Volkau <lis8215@gmail.com>
    Tested-by: Siarhei Volkau <lis8215@gmail.com>
    Acked-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f0f1c97f38b890c5eea33dfd60fb2d12657ba0ef
Author: Ronnie Sahlberg <lsahlber@redhat.com>
Date:   Thu Feb 7 15:48:44 2019 +1000

    cifs: return -ENODATA when deleting an xattr that does not exist
    
    [ Upstream commit 2109464184919f81efd593b4008291448c522815 ]
    
    BUGZILLA: https://bugzilla.kernel.org/show_bug.cgi?id=202007
    
    When deleting an xattr/EA:
    SMB2/3 servers will return SUCCESS when clients delete non-existing EAs.
    This means that we need to first QUERY the server and check if the EA
    exists or not so that we can return -ENODATA correctly when this happens.
    
    Signed-off-by: Ronnie Sahlberg <lsahlber@redhat.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2fbb0171b13a2fcdd7deb682527784b47cd8d624
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Fri Mar 1 10:57:57 2019 +0800

    appletalk: Fix use-after-free in atalk_proc_exit
    
    [ Upstream commit 6377f787aeb945cae7abbb6474798de129e1f3ac ]
    
    KASAN report this:
    
    BUG: KASAN: use-after-free in pde_subdir_find+0x12d/0x150 fs/proc/generic.c:71
    Read of size 8 at addr ffff8881f41fe5b0 by task syz-executor.0/2806
    
    CPU: 0 PID: 2806 Comm: syz-executor.0 Not tainted 5.0.0-rc7+ #45
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1ubuntu1 04/01/2014
    Call Trace:
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0xfa/0x1ce lib/dump_stack.c:113
     print_address_description+0x65/0x270 mm/kasan/report.c:187
     kasan_report+0x149/0x18d mm/kasan/report.c:317
     pde_subdir_find+0x12d/0x150 fs/proc/generic.c:71
     remove_proc_entry+0xe8/0x420 fs/proc/generic.c:667
     atalk_proc_exit+0x18/0x820 [appletalk]
     atalk_exit+0xf/0x5a [appletalk]
     __do_sys_delete_module kernel/module.c:1018 [inline]
     __se_sys_delete_module kernel/module.c:961 [inline]
     __x64_sys_delete_module+0x3dc/0x5e0 kernel/module.c:961
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x462e99
    Code: f7 d8 64 89 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48
    RSP: 002b:00007fb2de6b9c58 EFLAGS: 00000246 ORIG_RAX: 00000000000000b0
    RAX: ffffffffffffffda RBX: 000000000073bf00 RCX: 0000000000462e99
    RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000200001c0
    RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00007fb2de6ba6bc
    R13: 00000000004bccaa R14: 00000000006f6bc8 R15: 00000000ffffffff
    
    Allocated by task 2806:
     set_track mm/kasan/common.c:85 [inline]
     __kasan_kmalloc.constprop.3+0xa0/0xd0 mm/kasan/common.c:496
     slab_post_alloc_hook mm/slab.h:444 [inline]
     slab_alloc_node mm/slub.c:2739 [inline]
     slab_alloc mm/slub.c:2747 [inline]
     kmem_cache_alloc+0xcf/0x250 mm/slub.c:2752
     kmem_cache_zalloc include/linux/slab.h:730 [inline]
     __proc_create+0x30f/0xa20 fs/proc/generic.c:408
     proc_mkdir_data+0x47/0x190 fs/proc/generic.c:469
     0xffffffffc10c01bb
     0xffffffffc10c0166
     do_one_initcall+0xfa/0x5ca init/main.c:887
     do_init_module+0x204/0x5f6 kernel/module.c:3460
     load_module+0x66b2/0x8570 kernel/module.c:3808
     __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    Freed by task 2806:
     set_track mm/kasan/common.c:85 [inline]
     __kasan_slab_free+0x130/0x180 mm/kasan/common.c:458
     slab_free_hook mm/slub.c:1409 [inline]
     slab_free_freelist_hook mm/slub.c:1436 [inline]
     slab_free mm/slub.c:2986 [inline]
     kmem_cache_free+0xa6/0x2a0 mm/slub.c:3002
     pde_put+0x6e/0x80 fs/proc/generic.c:647
     remove_proc_entry+0x1d3/0x420 fs/proc/generic.c:684
     0xffffffffc10c031c
     0xffffffffc10c0166
     do_one_initcall+0xfa/0x5ca init/main.c:887
     do_init_module+0x204/0x5f6 kernel/module.c:3460
     load_module+0x66b2/0x8570 kernel/module.c:3808
     __do_sys_finit_module+0x238/0x2a0 kernel/module.c:3902
     do_syscall_64+0x147/0x600 arch/x86/entry/common.c:290
     entry_SYSCALL_64_after_hwframe+0x49/0xbe
    
    The buggy address belongs to the object at ffff8881f41fe500
     which belongs to the cache proc_dir_entry of size 256
    The buggy address is located 176 bytes inside of
     256-byte region [ffff8881f41fe500, ffff8881f41fe600)
    The buggy address belongs to the page:
    page:ffffea0007d07f80 count:1 mapcount:0 mapping:ffff8881f6e69a00 index:0x0
    flags: 0x2fffc0000000200(slab)
    raw: 02fffc0000000200 dead000000000100 dead000000000200 ffff8881f6e69a00
    raw: 0000000000000000 00000000800c000c 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    
    Memory state around the buggy address:
     ffff8881f41fe480: fb fb fb fb fb fb fb fb fc fc fc fc fc fc fc fc
     ffff8881f41fe500: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    >ffff8881f41fe580: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                         ^
     ffff8881f41fe600: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
     ffff8881f41fe680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
    
    It should check the return value of atalk_proc_init fails,
    otherwise atalk_exit will trgger use-after-free in pde_subdir_find
    while unload the module.This patch fix error cleanup path of atalk_init
    
    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a33383757975c454f5f8ffaf984939b5650b42fd
Author: Kevin Wang <kevin1.wang@amd.com>
Date:   Fri Feb 22 12:36:49 2019 +0800

    drm/amdkfd: use init_mqd function to allocate object for hid_mqd (CI)
    
    [ Upstream commit cac734c2dbd2514f14c8c6a17caba1990d83bf1d ]
    
    if use the legacy method to allocate object, when mqd_hiq need to run
    uninit code, it will be cause WARNING call trace.
    
    eg: (s3 suspend test)
    [   34.918944] Call Trace:
    [   34.918948]  [<ffffffff92961dc1>] dump_stack+0x19/0x1b
    [   34.918950]  [<ffffffff92297648>] __warn+0xd8/0x100
    [   34.918951]  [<ffffffff9229778d>] warn_slowpath_null+0x1d/0x20
    [   34.918991]  [<ffffffffc03ce1fe>] uninit_mqd_hiq_sdma+0x4e/0x50 [amdgpu]
    [   34.919028]  [<ffffffffc03d0ef7>] uninitialize+0x37/0xe0 [amdgpu]
    [   34.919064]  [<ffffffffc03d15a6>] kernel_queue_uninit+0x16/0x30 [amdgpu]
    [   34.919086]  [<ffffffffc03d26c2>] pm_uninit+0x12/0x20 [amdgpu]
    [   34.919107]  [<ffffffffc03d4915>] stop_nocpsch+0x15/0x20 [amdgpu]
    [   34.919129]  [<ffffffffc03c1dce>] kgd2kfd_suspend.part.4+0x2e/0x50 [amdgpu]
    [   34.919150]  [<ffffffffc03c2667>] kgd2kfd_suspend+0x17/0x20 [amdgpu]
    [   34.919171]  [<ffffffffc03c103a>] amdgpu_amdkfd_suspend+0x1a/0x20 [amdgpu]
    [   34.919187]  [<ffffffffc02ec428>] amdgpu_device_suspend+0x88/0x3a0 [amdgpu]
    [   34.919189]  [<ffffffff922e22cf>] ? enqueue_entity+0x2ef/0xbe0
    [   34.919205]  [<ffffffffc02e8220>] amdgpu_pmops_suspend+0x20/0x30 [amdgpu]
    [   34.919207]  [<ffffffff925c56ff>] pci_pm_suspend+0x6f/0x150
    [   34.919208]  [<ffffffff925c5690>] ? pci_pm_freeze+0xf0/0xf0
    [   34.919210]  [<ffffffff926b45c6>] dpm_run_callback+0x46/0x90
    [   34.919212]  [<ffffffff926b49db>] __device_suspend+0xfb/0x2a0
    [   34.919213]  [<ffffffff926b4b9f>] async_suspend+0x1f/0xa0
    [   34.919214]  [<ffffffff922c918f>] async_run_entry_fn+0x3f/0x130
    [   34.919216]  [<ffffffff922b9d4f>] process_one_work+0x17f/0x440
    [   34.919217]  [<ffffffff922bade6>] worker_thread+0x126/0x3c0
    [   34.919218]  [<ffffffff922bacc0>] ? manage_workers.isra.25+0x2a0/0x2a0
    [   34.919220]  [<ffffffff922c1c31>] kthread+0xd1/0xe0
    [   34.919221]  [<ffffffff922c1b60>] ? insert_kthread_work+0x40/0x40
    [   34.919222]  [<ffffffff92974c1d>] ret_from_fork_nospec_begin+0x7/0x21
    [   34.919224]  [<ffffffff922c1b60>] ? insert_kthread_work+0x40/0x40
    [   34.919224] ---[ end trace 38cd9f65c963adad ]---
    
    Signed-off-by: Kevin Wang <kevin1.wang@amd.com>
    Reviewed-by: Oak Zeng <Oak.Zeng@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3835c46e6ff51d24698487ef1e073573264dcfd6
Author: Yang Shi <yang.shi@linaro.org>
Date:   Wed Feb 13 17:14:23 2019 +0100

    ARM: 8839/1: kprobe: make patch_lock a raw_spinlock_t
    
    [ Upstream commit 143c2a89e0e5fda6c6fd08d7bc1126438c19ae90 ]
    
    When running kprobe on -rt kernel, the below bug is caught:
    
    |BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:931
    |in_atomic(): 1, irqs_disabled(): 128, pid: 14, name: migration/0
    |Preemption disabled at:[<802f2b98>] cpu_stopper_thread+0xc0/0x140
    |CPU: 0 PID: 14 Comm: migration/0 Tainted: G O 4.8.3-rt2 #1
    |Hardware name: Freescale LS1021A
    |[<8025a43c>] (___might_sleep)
    |[<80b5b324>] (rt_spin_lock)
    |[<80b5c31c>] (__patch_text_real)
    |[<80b5c3ac>] (patch_text_stop_machine)
    |[<802f2920>] (multi_cpu_stop)
    
    Since patch_text_stop_machine() is called in stop_machine() which
    disables IRQ, sleepable lock should be not used in this atomic context,
     so replace patch_lock to raw lock.
    
    Signed-off-by: Yang Shi <yang.shi@linaro.org>
    Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
    Reviewed-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ed3a6901a3d7e358b5a09c7b22a2750f1bf046c6
Author: Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>
Date:   Thu Feb 14 17:27:12 2019 +0530

    platform/x86: intel_pmc_core: Quirk to ignore XTAL shutdown
    
    [ Upstream commit 238f9c11351f8af8534ae0318b4d9acc77b09ee8 ]
    
    On some platforms such as HP Elite-x2-1013-g3, the platform BIOS
    enforces XTAL to remain off before S0ix state can be achieved. This may
    not be optimum when we want to enable use cases like Low Power Audio,
    Wake on Voice etc which always need 24mhz clock.
    
    This introduces a new quirk to allow S0ix entry when all other
    conditions except for XTAL clock are good on a given platform. The extra
    power consumed by XTAL clock is about 2mw but it saves much more
    platform power compared to the system that remains in just PC10.
    
    Link: https://bit.ly/2UmnrFf
    Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=201579
    Tested-by: "David E. Box" <david.e.box@linux.intel.com>
    Reported-and-tested-by: russianneuromancer <russianneuromancer@ya.ru>
    Signed-off-by: Rajneesh Bhardwaj <rajneesh.bhardwaj@linux.intel.com>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Darren Hart (VMware) <dvhart@infradead.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 36f268740bce29bfbae99e472918af34f7985ece
Author: Ilia Mirkin <imirkin@alum.mit.edu>
Date:   Sun Jan 13 17:50:10 2019 -0500

    drm/nouveau/volt/gf117: fix speedo readout register
    
    [ Upstream commit fc782242749fa4235592854fafe1a1297583c1fb ]
    
    GF117 appears to use the same register as GK104 (but still with the
    general Fermi readout mechanism).
    
    Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108980
    Signed-off-by: Ilia Mirkin <imirkin@alum.mit.edu>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3b2457ce9997efdbb333553c6037ef11cb2fdda9
Author: Jaegeuk Kim <jaegeuk@kernel.org>
Date:   Tue Jan 22 14:04:33 2019 -0800

    f2fs: sync filesystem after roll-forward recovery
    
    [ Upstream commit 812a95977fd2f0d1f220c716a98a7f22e22f488d ]
    
    Some works after roll-forward recovery can get an error which will release
    all the data structures. Let's flush them in order to make it clean.
    
    One possible corruption came from:
    
    [   90.400500] list_del corruption. prev->next should be ffffffed1f566208, but was (null)
    [   90.675349] Call trace:
    [   90.677869]  __list_del_entry_valid+0x94/0xb4
    [   90.682351]  remove_dirty_inode+0xac/0x114
    [   90.686563]  __f2fs_write_data_pages+0x6a8/0x6c8
    [   90.691302]  f2fs_write_data_pages+0x40/0x4c
    [   90.695695]  do_writepages+0x80/0xf0
    [   90.699372]  __writeback_single_inode+0xdc/0x4ac
    [   90.704113]  writeback_sb_inodes+0x280/0x440
    [   90.708501]  wb_writeback+0x1b8/0x3d0
    [   90.712267]  wb_workfn+0x1a8/0x4d4
    [   90.715765]  process_one_work+0x1c0/0x3d4
    [   90.719883]  worker_thread+0x224/0x344
    [   90.723739]  kthread+0x120/0x130
    [   90.727055]  ret_from_fork+0x10/0x18
    
    Reported-by: Sahitya Tummala <stummala@codeaurora.org>
    Reviewed-by: Chao Yu <yuchao0@huawei.com>
    Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b851a25507e2c90ff3ec64079d238c94d6d3d634
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Wed Jan 9 08:22:08 2019 -0600

    PCI/ASPM: Save LTR Capability for suspend/resume
    
    [ Upstream commit dbbfadf2319005cf528b0f15f12a05d4e4644303 ]
    
    Latency Tolerance Reporting (LTR) allows Endpoints and Switch Upstream
    Ports to report their latency requirements to upstream components.  If ASPM
    L1 PM substates are enabled, the LTR information helps determine when a
    Link enters L1.2 [1].
    
    Software must set the maximum latency values in the LTR Capability based on
    characteristics of the platform, then set LTR Mechanism Enable in the
    Device Control 2 register in the PCIe Capability.  The device can then use
    LTR to report its latency tolerance.
    
    If the device reports a maximum latency value of zero, that means the
    device requires the highest possible performance and the ASPM L1.2 substate
    is effectively disabled.
    
    We put devices in D3 for suspend, and we assume their internal state is
    lost.  On resume, previously we did not restore the LTR Capability, but we
    did restore the LTR Mechanism Enable bit, so devices would request the
    highest possible performance and ASPM L1.2 wouldn't be used.
    
    [1] PCIe r4.0, sec 5.5.1
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=201469
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 75e3256e2309dbc3063623f2d9b55ceaa889559f
Author: Mika Westerberg <mika.westerberg@linux.intel.com>
Date:   Thu Jan 31 19:38:56 2019 +0300

    PCI: Blacklist power management of Gigabyte X299 DESIGNARE EX PCIe ports
    
    [ Upstream commit 85b0cae89d5266e6a7abb2e83c6f716326fc494c ]
    
    Gigabyte X299 DESIGNARE EX motherboard has one PCIe root port that is
    connected to an Alpine Ridge Thunderbolt controller.  This port has slot
    implemented bit set in the config space but other than that it is not
    hotplug capable in the sense we are expecting in Linux (it has
    dev->is_hotplug_bridge set to 0):
    
      00:1c.4 PCI bridge: Intel Corporation 200 Series PCH PCI Express Root Port #5
        Bus: primary=00, secondary=05, subordinate=46, sec-latency=0
        Memory behind bridge: 78000000-8fffffff [size=384M]
        Prefetchable memory behind bridge: 00003800f8000000-00003800ffffffff [size=128M]
        ...
        Capabilities: [40] Express (v2) Root Port (Slot+), MSI 00
        ...
          SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug- Surprise-
                  Slot #8, PowerLimit 25.000W; Interlock- NoCompl+
          SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet- CmdCplt- HPIrq- LinkChg-
                  Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock-
          SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock-
                  Changed: MRL- PresDet+ LinkState+
    
    This system is using ACPI based hotplug to notify the OS that it needs to
    rescan the PCI bus (ACPI hotplug).
    
    If there is nothing connected in any of the Thunderbolt ports the root port
    will not have any runtime PM active children and is thus automatically
    runtime suspended pretty soon after boot by PCI PM core.  Now, when a
    device is connected the BIOS SMI handler responsible for enumerating newly
    added devices is not able to find anything because the port is in D3.
    
    Prevent this from happening by blacklisting PCI power management of this
    particular Gigabyte system.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=202031
    Reported-by: Kedar A Dongre <kedar.a.dongre@intel.com>
    Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dce48c5878ab9374bab4e5079759c27529cda6e9
Author: Leo Yan <leo.yan@linaro.org>
Date:   Tue Feb 5 16:24:53 2019 -0700

    coresight: cpu-debug: Support for CA73 CPUs
    
    [ Upstream commit a0f890aba2be33377f4eb24e13633c4a76a68f38 ]
    
    This patch is to add the AMBA device ID for CA73 CPU, so that CPU debug
    module can be initialized successfully when a SoC contain CA73 CPUs.
    
    This patch has been verified on 96boards Hikey960.
    
    Signed-off-by: Leo Yan <leo.yan@linaro.org>
    Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cf56bb03ffa3f595b6f2a305acdd2ade23c49a42
Author: Wei Hu (Xavier) <xavier.huwei@huawei.com>
Date:   Sun Feb 3 20:43:13 2019 +0800

    RDMA/hns: Fix the Oops during rmmod or insmod ko when reset occurs
    
    [ Upstream commit d061effc36f7bd38a12912977a37a50ac9140d11 ]
    
    In the reset process, the hns3 NIC driver notifies the RoCE driver to
    perform reset related processing by calling the .reset_notify() interface
    registered by the RoCE driver in hip08 SoC.
    
    In the current version, if a reset occurs simultaneously during the
    execution of rmmod or insmod ko, there may be Oops error as below:
    
     Internal error: Oops: 86000007 [#1] PREEMPT SMP
     Modules linked in: hns_roce(O) hns3(O) hclge(O) hnae3(O) [last unloaded: hns_roce_hw_v2]
     CPU: 0 PID: 14 Comm: kworker/0:1 Tainted: G           O      4.19.0-ge00d540 #1
     Hardware name: Huawei Technologies Co., Ltd.
     Workqueue: events hclge_reset_service_task [hclge]
     pstate: 60c00009 (nZCv daif +PAN +UAO)
     pc : 0xffff00000100b0b8
     lr : 0xffff00000100aea0
     sp : ffff000009afbab0
     x29: ffff000009afbab0 x28: 0000000000000800
     x27: 0000000000007ff0 x26: ffff80002f90c004
     x25: 00000000000007ff x24: ffff000008f97000
     x23: ffff80003efee0a8 x22: 0000000000001000
     x21: ffff80002f917ff0 x20: ffff8000286ea070
     x19: 0000000000000800 x18: 0000000000000400
     x17: 00000000c4d3225d x16: 00000000000021b8
     x15: 0000000000000400 x14: 0000000000000400
     x13: 0000000000000000 x12: ffff80003fac6e30
     x11: 0000800036303000 x10: 0000000000000001
     x9 : 0000000000000000 x8 : ffff80003016d000
     x7 : 0000000000000000 x6 : 000000000000003f
     x5 : 0000000000000040 x4 : 0000000000000000
     x3 : 0000000000000004 x2 : 00000000000007ff
     x1 : 0000000000000000 x0 : 0000000000000000
     Process kworker/0:1 (pid: 14, stack limit = 0x00000000af8f0ad9)
     Call trace:
      0xffff00000100b0b8
      0xffff00000100b3a0
      hns_roce_init+0x624/0xc88 [hns_roce]
      0xffff000001002df8
      0xffff000001006960
      hclge_notify_roce_client+0x74/0xe0 [hclge]
      hclge_reset_service_task+0xa58/0xbc0 [hclge]
      process_one_work+0x1e4/0x458
      worker_thread+0x40/0x450
      kthread+0x12c/0x130
      ret_from_fork+0x10/0x18
     Code: bad PC value
    
    In the reset process, we will release the resources firstly, and after the
    hardware reset is completed, we will reapply resources and reconfigure the
    hardware.
    
    We can solve this problem by modifying both the NIC and the RoCE
    driver. We can modify the concurrent processing in the NIC driver to avoid
    calling the .reset_notify and .uninit_instance ops at the same time. And
    we need to modify the RoCE driver to record the reset stage and the
    driver's init/uninit state, and check the state in the .reset_notify,
    .init_instance. and uninit_instance functions to avoid NULL pointer
    operation.
    
    Fixes: cb7a94c9c808 ("RDMA/hns: Add reset process for RoCE in hip08")
    Signed-off-by: Wei Hu (Xavier) <xavier.huwei@huawei.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ada4de039433d9d42299e933c7bd425b7c9d264
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Fri Feb 1 14:13:41 2019 +0800

    Revert "ACPI / EC: Remove old CLEAR_ON_RESUME quirk"
    
    [ Upstream commit b6a3e1475b0220378ad32bdf4d8692f058b1fc03 ]
    
    On some Samsung hardware, it is necessary to clear events accumulated by
    the EC during sleep. These ECs stop reporting GPEs until they are manually
    polled, if too many events are accumulated.
    Thus the CLEAR_ON_RESUME quirk is introduced to send EC query commands
    unconditionally after resume to clear all the EC query events on those
    platforms.
    
    Later, commit 4c237371f290 ("ACPI / EC: Remove old CLEAR_ON_RESUME quirk")
    removes the CLEAR_ON_RESUME quirk because we thought the new EC IRQ
    polling logic should handle this case.
    
    Now it has been proved that the EC IRQ Polling logic does not fix the
    issue actually because we got regression report on these Samsung
    platforms after removing the quirk.
    
    Thus revert commit 4c237371f290 ("ACPI / EC: Remove old CLEAR_ON_RESUME
    quirk") to introduce back the Samsung quirk in this patch.
    
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=44161
    Tested-by: Ortwin Glück <odi@odi.ch>
    Tested-by: Francisco Cribari <cribari@gmail.com>
    Tested-by: Balazs Varga <balazs4web@gmail.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 41c3883dfadb73fb44188bd089f4eb29cc794574
Author: Lars Persson <lars.persson@axis.com>
Date:   Wed Jan 23 12:59:42 2019 +0100

    crypto: axis - fix for recursive locking from bottom half
    
    [ Upstream commit c34a83820f59bb275e5f2d55cd5ea99c64f6ef23 ]
    
    Clients may submit a new requests from the completion callback
    context. The driver was not prepared to receive a request in this
    state because it already held the request queue lock and a recursive
    lock error is triggered.
    
    Now all completions are queued up until we are ready to drop the queue
    lock and then delivered.
    
    The fault was triggered by TCP over an IPsec connection in the LTP
    test suite:
      LTP: starting tcp4_ipsec02 (tcp_ipsec.sh -p ah -m transport -s "100 1000 65535")
      BUG: spinlock recursion on CPU#1, genload/943
       lock: 0xbf3c3094, .magic: dead4ead, .owner: genload/943, .owner_cpu: 1
      CPU: 1 PID: 943 Comm: genload Tainted: G           O    4.9.62-axis5-devel #6
      Hardware name: Axis ARTPEC-6 Platform
       (unwind_backtrace) from [<8010d134>] (show_stack+0x18/0x1c)
       (show_stack) from [<803a289c>] (dump_stack+0x84/0x98)
       (dump_stack) from [<8016e164>] (do_raw_spin_lock+0x124/0x128)
       (do_raw_spin_lock) from [<804de1a4>] (artpec6_crypto_submit+0x2c/0xa0)
       (artpec6_crypto_submit) from [<804def38>] (artpec6_crypto_prepare_submit_hash+0xd0/0x54c)
       (artpec6_crypto_prepare_submit_hash) from [<7f3165f0>] (ah_output+0x2a4/0x3dc [ah4])
       (ah_output [ah4]) from [<805df9bc>] (xfrm_output_resume+0x178/0x4a4)
       (xfrm_output_resume) from [<805d283c>] (xfrm4_output+0xac/0xbc)
       (xfrm4_output) from [<80587928>] (ip_queue_xmit+0x140/0x3b4)
       (ip_queue_xmit) from [<805a13b4>] (tcp_transmit_skb+0x4c4/0x95c)
       (tcp_transmit_skb) from [<8059f218>] (tcp_rcv_state_process+0xdf4/0xdfc)
       (tcp_rcv_state_process) from [<805a7530>] (tcp_v4_do_rcv+0x64/0x1ac)
       (tcp_v4_do_rcv) from [<805a9724>] (tcp_v4_rcv+0xa34/0xb74)
       (tcp_v4_rcv) from [<80581d34>] (ip_local_deliver_finish+0x78/0x2b0)
       (ip_local_deliver_finish) from [<8058259c>] (ip_local_deliver+0xe4/0x104)
       (ip_local_deliver) from [<805d23ec>] (xfrm4_transport_finish+0xf4/0x144)
       (xfrm4_transport_finish) from [<805df564>] (xfrm_input+0x4f4/0x74c)
       (xfrm_input) from [<804de420>] (artpec6_crypto_task+0x208/0x38c)
       (artpec6_crypto_task) from [<801271b0>] (tasklet_action+0x60/0xec)
       (tasklet_action) from [<801266d4>] (__do_softirq+0xcc/0x3a4)
       (__do_softirq) from [<80126d20>] (irq_exit+0xf4/0x15c)
       (irq_exit) from [<801741e8>] (__handle_domain_irq+0x68/0xbc)
       (__handle_domain_irq) from [<801014f0>] (gic_handle_irq+0x50/0x94)
       (gic_handle_irq) from [<80657370>] (__irq_usr+0x50/0x80)
    
    Signed-off-by: Lars Persson <larper@axis.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b9563b52e8029e9d37b515a8aa64192bda62b9a5
Author: Huazhong Tan <tanhuazhong@huawei.com>
Date:   Thu Jan 31 04:55:46 2019 +0800

    net: hns3: Fix NULL deref when unloading driver
    
    [ Upstream commit c8a8045b2d0a974149d65bbe6a7acbcde93cf85b ]
    
    When the driver is unloading, if there is a calling of ndo_open occurs
    between phy_disconnect() and unregister_netdev(), it will end up
    causing the kernel to eventually hit a NULL deref:
    
    [14942.417828] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000048
    [14942.529878] Mem abort info:
    [14942.551166]   ESR = 0x96000006
    [14942.567070]   Exception class = DABT (current EL), IL = 32 bits
    [14942.623081]   SET = 0, FnV = 0
    [14942.639112]   EA = 0, S1PTW = 0
    [14942.643628] Data abort info:
    [14942.659227]   ISV = 0, ISS = 0x00000006
    [14942.674870]   CM = 0, WnR = 0
    [14942.679449] user pgtable: 4k pages, 48-bit VAs, pgdp = 00000000224ad6ad
    [14942.695595] [0000000000000048] pgd=00000021e6673003, pud=00000021dbf01003, pmd=0000000000000000
    [14942.723163] Internal error: Oops: 96000006 [#1] PREEMPT SMP
    [14942.729358] Modules linked in: hns3(O) hclge(O) pv680_mii(O) hnae3(O) [last unloaded: hclge]
    [14942.738907] CPU: 1 PID: 26629 Comm: kworker/u4:13 Tainted: G           O      4.18.0-rc1-12928-ga960791-dirty #145
    [14942.749491] Hardware name: Huawei Technologies Co., Ltd. D05/D05, BIOS Hi1620 FPGA TB BOOT BIOS B763 08/17/2018
    [14942.760392] Workqueue: events_power_efficient phy_state_machine
    [14942.766644] pstate: 80c00009 (Nzcv daif +PAN +UAO)
    [14942.771918] pc : test_and_set_bit+0x18/0x38
    [14942.776589] lr : netif_carrier_off+0x24/0x70
    [14942.781033] sp : ffff0000121abd20
    [14942.784518] x29: ffff0000121abd20 x28: 0000000000000000
    [14942.790208] x27: ffff0000164d3cd8 x26: ffff8021da68b7b8
    [14942.795832] x25: 0000000000000000 x24: ffff8021eb407800
    [14942.801445] x23: 0000000000000000 x22: 0000000000000000
    [14942.807046] x21: 0000000000000001 x20: 0000000000000000
    [14942.812672] x19: 0000000000000000 x18: ffff000009781708
    [14942.818284] x17: 00000000004970e8 x16: ffff00000816ad48
    [14942.823900] x15: 0000000000000000 x14: 0000000000000008
    [14942.829528] x13: 0000000000000000 x12: 0000000000000f65
    [14942.835149] x11: 0000000000000001 x10: 00000000000009d0
    [14942.840753] x9 : ffff0000121abaa0 x8 : 0000000000000000
    [14942.846360] x7 : ffff000009781708 x6 : 0000000000000003
    [14942.851970] x5 : 0000000000000020 x4 : 0000000000000004
    [14942.857575] x3 : 0000000000000002 x2 : 0000000000000001
    [14942.863180] x1 : 0000000000000048 x0 : 0000000000000000
    [14942.868875] Process kworker/u4:13 (pid: 26629, stack limit = 0x00000000c909dbf3)
    [14942.876464] Call trace:
    [14942.879200]  test_and_set_bit+0x18/0x38
    [14942.883376]  phy_link_change+0x38/0x78
    [14942.887378]  phy_state_machine+0x3dc/0x4f8
    [14942.891968]  process_one_work+0x158/0x470
    [14942.896223]  worker_thread+0x50/0x470
    [14942.900219]  kthread+0x104/0x130
    [14942.903905]  ret_from_fork+0x10/0x1c
    [14942.907755] Code: d2800022 8b400c21 f9800031 9ac32044 (c85f7c22)
    [14942.914185] ---[ end trace 968c9e12eb740b23 ]---
    
    So this patch fixes it by modifying the timing to do phy_connect_direct()
    and phy_disconnect().
    
    Fixes: 256727da7395 ("net: hns3: Add MDIO support to HNS3 Ethernet driver for hip08 SoC")
    Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
    Signed-off-by: Peng Li <lipeng321@huawei.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1a2397542f643c99d6584fc508f5dae490b9c57
Author: Hsin-Yi, Wang <hsinyi@chromium.org>
Date:   Wed Jan 9 14:59:22 2019 +0800

    drm/panel: panel-innolux: set display off in innolux_panel_unprepare
    
    [ Upstream commit 46f3ceaffa81e846677bca8668e0ad40e643cffd ]
    
    Move mipi_dsi_dcs_set_display_off() from innolux_panel_disable()
    to innolux_panel_unprepare(), so they are consistent with
    innolux_panel_enable() and innolux_panel_prepare().
    
    This also fixes some mode check and irq timeout issue in MTK dsi code.
    
    Since some dsi code (e.g. mtk_dsi) have following call trace:
    1. drm_panel_disable(), which calls innolux_panel_disable()
    2. switch to cmd mode
    3. drm_panel_unprepare(), which calls innolux_panel_unprepare()
    
    However, mtk_dsi needs to be in cmd mode to be able to send commands
    (e.g. mipi_dsi_dcs_set_display_off() and mipi_dsi_dcs_enter_sleep_mode()),
    so we need these functions to be called after the switch to cmd mode happens,
    i.e. in innolux_panel_unprepare.
    
    Signed-off-by: Hsin-Yi, Wang <hsinyi@chromium.org>
    Signed-off-by: Sean Paul <seanpaul@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20190109065922.231753-1-hsinyi@chromium.org
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3fcb0274953088d0e32092cac0706235bdce7ff6
Author: wentalou <Wentao.Lou@amd.com>
Date:   Tue Dec 18 15:42:08 2018 +0800

    drm/amdgpu: psp_ring_destroy cause psp->km_ring.ring_mem NULL
    
    [ Upstream commit 14d20ec7f31ef96a2e7dcf7880b13dde1d473b56 ]
    
    psp_ring_destroy inside psp_load_fw cause psp->km_ring.ring_mem NULL.
    Call Trace occurred when psp_cmd_submit.
    should be psp_ring_stop instead.
    
    Reviewed-by: Xiangliang Yu <Xiangliang.Yu@amd.com>
    Signed-off-by: Wentao Lou <Wentao.Lou@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e7ab5c78e51653c411af66308dada30f15b02413
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Fri Dec 14 15:26:20 2018 +0000

    lkdtm: Add tests for NULL pointer dereference
    
    [ Upstream commit 59a12205d3c32aee4c13ca36889fdf7cfed31126 ]
    
    Introduce lkdtm tests for NULL pointer dereference: check access or exec
    at NULL address, since these errors tend to be reported differently from
    the general fault error text. For example from x86:
    
        pr_alert("BUG: unable to handle kernel %s at %px\n",
            address < PAGE_SIZE ? "NULL pointer dereference" : "paging request",
            (void *)address);
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8167ea40725deb8617d66a3f63c08c9d924a6b04
Author: Christophe Leroy <christophe.leroy@c-s.fr>
Date:   Wed Nov 7 20:14:10 2018 +0000

    lkdtm: Print real addresses
    
    [ Upstream commit 4c411157a42f122051ae3469bee0b5cabe89e139 ]
    
    Today, when doing a lkdtm test before the readiness of the
    random generator, (ptrval) is printed instead of the address
    at which it perform the fault:
    
    [ 1597.337030] lkdtm: Performing direct entry EXEC_USERSPACE
    [ 1597.337142] lkdtm: attempting ok execution at (ptrval)
    [ 1597.337398] lkdtm: attempting bad execution at (ptrval)
    [ 1597.337460] kernel tried to execute user page (77858000) -exploit attempt? (uid: 0)
    [ 1597.344769] Unable to handle kernel paging request for instruction fetch
    [ 1597.351392] Faulting instruction address: 0x77858000
    [ 1597.356312] Oops: Kernel access of bad area, sig: 11 [#1]
    
    If the lkdtm test is done later on, it prints an hashed address.
    
    In both cases this is pointless. The purpose of the test is to
    ensure the kernel generates an Oops at the expected address,
    so real addresses needs to be printed. This patch fixes that.
    
    Signed-off-by: Christophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: Kees Cook <keescook@chromium.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8bc6ef890c869099514bdaf72354f84c8517b7c2
Author: Darrick J. Wong <darrick.wong@oracle.com>
Date:   Sat Mar 23 12:10:29 2019 -0400

    ext4: prohibit fstrim in norecovery mode
    
    [ Upstream commit 18915b5873f07e5030e6fb108a050fa7c71c59fb ]
    
    The ext4 fstrim implementation uses the block bitmaps to find free space
    that can be discarded.  If we haven't replayed the journal, the bitmaps
    will be stale and we absolutely *cannot* use stale metadata to zap the
    underlying storage.
    
    Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 642530739f198fe6a9f419b3825b1af54aa7d83f
Author: Kairui Song <kasong@redhat.com>
Date:   Fri Mar 8 11:05:08 2019 +0800

    x86/gart: Exclude GART aperture from kcore
    
    [ Upstream commit ffc8599aa9763f39f6736a79da4d1575e7006f9a ]
    
    On machines where the GART aperture is mapped over physical RAM,
    /proc/kcore contains the GART aperture range. Accessing the GART range via
    /proc/kcore results in a kernel crash.
    
    vmcore used to have the same issue, until it was fixed with commit
    2a3e83c6f96c ("x86/gart: Exclude GART aperture from vmcore")', leveraging
    existing hook infrastructure in vmcore to let /proc/vmcore return zeroes
    when attempting to read the aperture region, and so it won't read from the
    actual memory.
    
    Apply the same workaround for kcore. First implement the same hook
    infrastructure for kcore, then reuse the hook functions introduced in the
    previous vmcore fix. Just with some minor adjustment, rename some functions
    for more general usage, and simplify the hook infrastructure a bit as there
    is no module usage yet.
    
    Suggested-by: Baoquan He <bhe@redhat.com>
    Signed-off-by: Kairui Song <kasong@redhat.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Jiri Bohac <jbohac@suse.cz>
    Acked-by: Baoquan He <bhe@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Omar Sandoval <osandov@fb.com>
    Cc: Dave Young <dyoung@redhat.com>
    Link: https://lkml.kernel.org/r/20190308030508.13548-1-kasong@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 14bec2dda7a0fc2628afef3aa282cbc8ebf7b72d
Author: Paulo Alcantara (SUSE) <paulo@paulo.ac>
Date:   Thu Mar 21 19:31:22 2019 -0300

    cifs: Fix slab-out-of-bounds when tracing SMB tcon
    
    [ Upstream commit 68ddb496800acdb46172b4981dc3753ea9b39c25 ]
    
    This patch fixes the following KASAN report:
    
    [  779.044746] BUG: KASAN: slab-out-of-bounds in string+0xab/0x180
    [  779.044750] Read of size 1 at addr ffff88814f327968 by task trace-cmd/2812
    
    [  779.044756] CPU: 1 PID: 2812 Comm: trace-cmd Not tainted 5.1.0-rc1+ #62
    [  779.044760] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-0-ga698c89-prebuilt.qemu.org 04/01/2014
    [  779.044761] Call Trace:
    [  779.044769]  dump_stack+0x5b/0x90
    [  779.044775]  ? string+0xab/0x180
    [  779.044781]  print_address_description+0x6c/0x23c
    [  779.044787]  ? string+0xab/0x180
    [  779.044792]  ? string+0xab/0x180
    [  779.044797]  kasan_report.cold.3+0x1a/0x32
    [  779.044803]  ? string+0xab/0x180
    [  779.044809]  string+0xab/0x180
    [  779.044816]  ? widen_string+0x160/0x160
    [  779.044822]  ? vsnprintf+0x5bf/0x7f0
    [  779.044829]  vsnprintf+0x4e7/0x7f0
    [  779.044836]  ? pointer+0x4a0/0x4a0
    [  779.044841]  ? seq_buf_vprintf+0x79/0xc0
    [  779.044848]  seq_buf_vprintf+0x62/0xc0
    [  779.044855]  trace_seq_printf+0x113/0x210
    [  779.044861]  ? trace_seq_puts+0x110/0x110
    [  779.044867]  ? trace_raw_output_prep+0xd8/0x110
    [  779.044876]  trace_raw_output_smb3_tcon_class+0x9f/0xc0
    [  779.044882]  print_trace_line+0x377/0x890
    [  779.044888]  ? tracing_buffers_read+0x300/0x300
    [  779.044893]  ? ring_buffer_read+0x58/0x70
    [  779.044899]  s_show+0x6e/0x140
    [  779.044906]  seq_read+0x505/0x6a0
    [  779.044913]  vfs_read+0xaf/0x1b0
    [  779.044919]  ksys_read+0xa1/0x130
    [  779.044925]  ? kernel_write+0xa0/0xa0
    [  779.044931]  ? __do_page_fault+0x3d5/0x620
    [  779.044938]  do_syscall_64+0x63/0x150
    [  779.044944]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    [  779.044949] RIP: 0033:0x7f62c2c2db31
    [ 779.044955] Code: fe ff ff 48 8d 3d 17 9e 09 00 48 83 ec 08 e8 96 02
    02 00 66 0f 1f 44 00 00 8b 05 fa fc 2c 00 48 63 ff 85 c0 75 13 31 c0
    0f 05 <48> 3d 00 f0 ff ff 77 57 f3 c3 0f 1f 44 00 00 55 53 48 89 d5 48
    89
    [  779.044958] RSP: 002b:00007ffd6e116678 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
    [  779.044964] RAX: ffffffffffffffda RBX: 0000560a38be9260 RCX: 00007f62c2c2db31
    [  779.044966] RDX: 0000000000002000 RSI: 00007ffd6e116710 RDI: 0000000000000003
    [  779.044966] RDX: 0000000000002000 RSI: 00007ffd6e116710 RDI: 0000000000000003
    [  779.044969] RBP: 00007f62c2ef5420 R08: 0000000000000000 R09: 0000000000000003
    [  779.044972] R10: ffffffffffffffa8 R11: 0000000000000246 R12: 00007ffd6e116710
    [  779.044975] R13: 0000000000002000 R14: 0000000000000d68 R15: 0000000000002000
    
    [  779.044981] Allocated by task 1257:
    [  779.044987]  __kasan_kmalloc.constprop.5+0xc1/0xd0
    [  779.044992]  kmem_cache_alloc+0xad/0x1a0
    [  779.044997]  getname_flags+0x6c/0x2a0
    [  779.045003]  user_path_at_empty+0x1d/0x40
    [  779.045008]  do_faccessat+0x12a/0x330
    [  779.045012]  do_syscall_64+0x63/0x150
    [  779.045017]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [  779.045019] Freed by task 1257:
    [  779.045023]  __kasan_slab_free+0x12e/0x180
    [  779.045029]  kmem_cache_free+0x85/0x1b0
    [  779.045034]  filename_lookup.part.70+0x176/0x250
    [  779.045039]  do_faccessat+0x12a/0x330
    [  779.045043]  do_syscall_64+0x63/0x150
    [  779.045048]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
    
    [  779.045052] The buggy address belongs to the object at ffff88814f326600
    which belongs to the cache names_cache of size 4096
    [  779.045057] The buggy address is located 872 bytes to the right of
    4096-byte region [ffff88814f326600, ffff88814f327600)
    [  779.045058] The buggy address belongs to the page:
    [  779.045062] page:ffffea00053cc800 count:1 mapcount:0 mapping:ffff88815b191b40 index:0x0 compound_mapcount: 0
    [  779.045067] flags: 0x200000000010200(slab|head)
    [  779.045075] raw: 0200000000010200 dead000000000100 dead000000000200 ffff88815b191b40
    [  779.045081] raw: 0000000000000000 0000000000070007 00000001ffffffff 0000000000000000
    [  779.045083] page dumped because: kasan: bad access detected
    
    [  779.045085] Memory state around the buggy address:
    [  779.045089]  ffff88814f327800: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [  779.045093]  ffff88814f327880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [  779.045097] >ffff88814f327900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [  779.045099]                                                           ^
    [  779.045103]  ffff88814f327980: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [  779.045107]  ffff88814f327a00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [  779.045109] ==================================================================
    [  779.045110] Disabling lock debugging due to kernel taint
    
    Correctly assign tree name str for smb3_tcon event.
    
    Signed-off-by: Paulo Alcantara (SUSE) <paulo@paulo.ac>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a419571b2da5683cc1bddf0988612e7eecc9e98f
Author: Steve French <stfrench@microsoft.com>
Date:   Sun Mar 17 15:58:38 2019 -0500

    fix incorrect error code mapping for OBJECTID_NOT_FOUND
    
    [ Upstream commit 85f9987b236cf46e06ffdb5c225cf1f3c0acb789 ]
    
    It was mapped to EIO which can be confusing when user space
    queries for an object GUID for an object for which the server
    file system doesn't support (or hasn't saved one).
    
    As Amir Goldstein suggested this is similar to ENOATTR
    (equivalently ENODATA in Linux errno definitions) so
    changing NT STATUS code mapping for OBJECTID_NOT_FOUND
    to ENODATA.
    
    Signed-off-by: Steve French <stfrench@microsoft.com>
    CC: Amir Goldstein <amir73il@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 21edc981053f290aa03c7f1787d39963ee2cfccb
Author: Xiaoli Feng <fengxiaoli0714@gmail.com>
Date:   Sat Mar 16 12:11:54 2019 +0800

    cifs: fix that return -EINVAL when do dedupe operation
    
    [ Upstream commit b073a08016a10f01dfb0d0b6c7fa89da0d544963 ]
    
    dedupe_file_range operations is combiled into remap_file_range.
    But it's always skipped for dedupe operations in function
    cifs_remap_file_range.
    
    Example to test:
    Before this patch:
      # dd if=/dev/zero of=cifs/file bs=1M count=1
      # xfs_io -c "dedupe cifs/file 4k 64k 4k" cifs/file
      XFS_IOC_FILE_EXTENT_SAME: Invalid argument
    
    After this patch:
      # dd if=/dev/zero of=cifs/file bs=1M count=1
      # xfs_io -c "dedupe cifs/file 4k 64k 4k" cifs/file
      XFS_IOC_FILE_EXTENT_SAME: Operation not supported
    
    Influence for xfstests:
    generic/091
    generic/112
    generic/127
    generic/263
    These tests report this error "do_copy_range:: Invalid
    argument" instead of "FIDEDUPERANGE: Invalid argument".
    Because there are still two bugs cause these test failed.
    https://bugzilla.kernel.org/show_bug.cgi?id=202935
    https://bugzilla.kernel.org/show_bug.cgi?id=202785
    
    Signed-off-by: Xiaoli Feng <fengxiaoli0714@gmail.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 92b646e276775041ad698c2079be6844378d1372
Author: Nathan Chancellor <natechancellor@gmail.com>
Date:   Thu Mar 7 14:27:56 2019 -0700

    x86/hw_breakpoints: Make default case in hw_breakpoint_arch_parse() return an error
    
    [ Upstream commit e898e69d6b9475bf123f99b3c5d1a67bb7cb2361 ]
    
    When building with -Wsometimes-uninitialized, Clang warns:
    
    arch/x86/kernel/hw_breakpoint.c:355:2: warning: variable 'align' is used
    uninitialized whenever switch default is taken
    [-Wsometimes-uninitialized]
    
    The default cannot be reached because arch_build_bp_info() initializes
    hw->len to one of the specified cases. Nevertheless the warning is valid
    and returning -EINVAL makes sure that this cannot be broken by future
    modifications.
    
    Suggested-by: Nick Desaulniers <ndesaulniers@google.com>
    Signed-off-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: clang-built-linux@googlegroups.com
    Link: https://github.com/ClangBuiltLinux/linux/issues/392
    Link: https://lkml.kernel.org/r/20190307212756.4648-1-natechancellor@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aca4bd1a1cc6084f74f2dba955270629a3fbf7b9
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Wed Mar 20 09:58:34 2019 +0800

    iommu/vt-d: Save the right domain ID used by hardware
    
    [ Upstream commit 84c11e4df5aa4955acaa441f0cf1cb2e50daf64b ]
    
    The driver sets a default domain id (FLPT_DEFAULT_DID) in the
    first level only pasid entry, but saves a different domain id
    in @sdev->did. The value saved in @sdev->did will be used to
    invalidate the translation caches. Hence, the driver might
    result in invalidating the caches with a wrong domain id.
    
    Cc: Ashok Raj <ashok.raj@intel.com>
    Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Fixes: 1c4f88b7f1f92 ("iommu/vt-d: Shared virtual address in scalable mode")
    Signed-off-by: Liu Yi L <yi.l.liu@intel.com>
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d965161274983e34caf8f38af287f0a1e2adbb27
Author: Lu Baolu <baolu.lu@linux.intel.com>
Date:   Wed Mar 20 09:58:33 2019 +0800

    iommu/vt-d: Check capability before disabling protected memory
    
    [ Upstream commit 5bb71fc790a88d063507dc5d445ab8b14e845591 ]
    
    The spec states in 10.4.16 that the Protected Memory Enable
    Register should be treated as read-only for implementations
    not supporting protected memory regions (PLMR and PHMR fields
    reported as Clear in the Capability register).
    
    Cc: Jacob Pan <jacob.jun.pan@linux.intel.com>
    Cc: mark gross <mgross@intel.com>
    Suggested-by: Ashok Raj <ashok.raj@intel.com>
    Fixes: f8bab73515ca5 ("intel-iommu: PMEN support")
    Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
    Signed-off-by: Joerg Roedel <jroedel@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d9fb98c921a89a178cfa36c8efcb675493644314
Author: YueHaibing <yuehaibing@huawei.com>
Date:   Thu Feb 28 20:24:59 2019 +0800

    drm/nouveau/debugfs: Fix check of pm_runtime_get_sync failure
    
    [ Upstream commit 909e9c9c428376e2a43d178ed4b0a2d5ba9cb7d3 ]
    
    pm_runtime_get_sync returns negative on failure.
    
    Fixes: eaeb9010bb4b ("drm/nouveau/debugfs: Wake up GPU before doing any reclocking")
    Signed-off-by: YueHaibing <yuehaibing@huawei.com>
    Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f0a085e99ff77b741130bcb26980472912968e4f
Author: Matthew Whitehead <tedheadster@gmail.com>
Date:   Thu Mar 14 16:46:00 2019 -0400

    x86/cpu/cyrix: Use correct macros for Cyrix calls on Geode processors
    
    [ Upstream commit 18fb053f9b827bd98cfc64f2a35df8ab19745a1d ]
    
    There are comments in processor-cyrix.h advising you to _not_ make calls
    using the deprecated macros in this style:
    
      setCx86_old(CX86_CCR4, getCx86_old(CX86_CCR4) | 0x80);
    
    This is because it expands the macro into a non-functioning calling
    sequence. The calling order must be:
    
      outb(CX86_CCR2, 0x22);
      inb(0x23);
    
    From the comments:
    
     * When using the old macros a line like
     *   setCx86(CX86_CCR2, getCx86(CX86_CCR2) | 0x88);
     * gets expanded to:
     *  do {
     *    outb((CX86_CCR2), 0x22);
     *    outb((({
     *        outb((CX86_CCR2), 0x22);
     *        inb(0x23);
     *    }) | 0x88), 0x23);
     *  } while (0);
    
    The new macros fix this problem, so use them instead. Tested on an
    actual Geode processor.
    
    Signed-off-by: Matthew Whitehead <tedheadster@gmail.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: luto@kernel.org
    Link: https://lkml.kernel.org/r/1552596361-8967-2-git-send-email-tedheadster@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit aaddd952f3db382b4d0786a39140ca2f8bd7334b
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Thu Mar 14 00:46:51 2019 -0500

    x86/hyperv: Prevent potential NULL pointer dereference
    
    [ Upstream commit 534c89c22e26b183d838294f0937ee092c82ad3a ]
    
    The page allocation in hv_cpu_init() can fail, but the code does not
    have a check for that.
    
    Add a check and return -ENOMEM when the allocation fails.
    
    [ tglx: Massaged changelog ]
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Reviewed-by: Mukesh Ojha <mojha@codeaurora.org>
    Acked-by: "K. Y. Srinivasan" <kys@microsoft.com>
    Cc: pakki001@umn.edu
    Cc: Haiyang Zhang <haiyangz@microsoft.com>
    Cc: Stephen Hemminger <sthemmin@microsoft.com>
    Cc: Sasha Levin <sashal@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: linux-hyperv@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190314054651.1315-1-kjlu@umn.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 105d043fedcb86bf04e15c67892f7343ec3e4e0f
Author: Aditya Pakki <pakki001@umn.edu>
Date:   Mon Mar 18 21:19:56 2019 -0500

    x86/hpet: Prevent potential NULL pointer dereference
    
    [ Upstream commit 2e84f116afca3719c9d0a1a78b47b48f75fd5724 ]
    
    hpet_virt_address may be NULL when ioremap_nocache fail, but the code lacks
    a check.
    
    Add a check to prevent NULL pointer dereference.
    
    Signed-off-by: Aditya Pakki <pakki001@umn.edu>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Cc: kjlu@umn.edu
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Kees Cook <keescook@chromium.org>
    Cc: Joe Perches <joe@perches.com>
    Cc: Nicolai Stange <nstange@suse.de>
    Cc: Roland Dreier <roland@purestorage.com>
    Link: https://lkml.kernel.org/r/20190319021958.17275-1-pakki001@umn.edu
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1512c986c5788f34939d0d1e391455ca4a3f8880
Author: Jianguo Chen <chenjianguo3@huawei.com>
Date:   Wed Mar 20 18:54:21 2019 +0000

    irqchip/mbigen: Don't clear eventid when freeing an MSI
    
    [ Upstream commit fca269f201a8d9985c0a31fb60b15d4eb57cef80 ]
    
    mbigen_write_msg clears eventid bits of a mbigen register
    when free a interrupt, because msi_domain_deactivate memset
    struct msg to zero. Then multiple mbigen pins with zero eventid
    will report the same interrupt number.
    
    The eventid clear call trace:
                    free_irq
                    __free_irq
                    irq_shutdown
                    irq_domain_deactivate_irq
                    __irq_domain_deactivate_irq
                    __irq_domain_deactivate_irq
                    msi_domain_deactivate
                    platform_msi_write_msg
                    mbigen_write_msg
    
    Signed-off-by: Jianguo Chen <chenjianguo3@huawei.com>
    [maz: massaged subject]
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc60ac49b0403073505612ea08e07d5b08ae41a8
Author: Fabien Dessenne <fabien.dessenne@st.com>
Date:   Thu Mar 7 19:40:36 2019 +0100

    irqchip/stm32: Don't set rising configuration registers at init
    
    [ Upstream commit 6a77623d78b307b34d4cf7886da6a907689bf388 ]
    
    The rising configuration status register (rtsr) is not banked.
    As it is shared with the co-processor, it should not be written at probe
    time, else the co-processor configuration will be lost.
    
    Fixes: f9fc1745501e ("irqchip/stm32: Add host and driver data structures")
    Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d79220ee57b8796fab5e8cbb3e505994405fd708
Author: Fabien Dessenne <fabien.dessenne@st.com>
Date:   Thu Mar 7 19:40:35 2019 +0100

    irqchip/stm32: Don't clear rising/falling config registers at init
    
    [ Upstream commit 0dda09666f50eae9c5b794dd89b1fd8a8d89d714 ]
    
    Falling and rising configuration and status registers are not banked.
    As they are shared with M4 co-processor, they should not be cleared
    at probe time, else M4 co-processor configuration will be lost.
    
    Fixes: f9fc1745501e ("irqchip/stm32: Add host and driver data structures")
    Signed-off-by: Loic Pallardy <loic.pallardy@st.com>
    Signed-off-by: Fabien Dessenne <fabien.dessenne@st.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c24b1f67cea0b9cf52c024c68e97d3d948342f7d
Author: Andrzej Hajda <a.hajda@samsung.com>
Date:   Tue Mar 19 14:05:11 2019 +0100

    drm/exynos/mixer: fix MIXER shadow registry synchronisation code
    
    [ Upstream commit 6a3b45ada960ac475ec2b4103d43e57943b2b8d3 ]
    
    MIXER on Exynos5 SoCs uses different synchronisation method than Exynos4
    to update internal state (shadow registers).
    Apparently the driver implements it incorrectly. The rule should be
    as follows:
    - do not request updating registers until previous request was finished,
      ie. MXR_CFG_LAYER_UPDATE_COUNT must be 0.
    - before setting registers synchronisation on VSYNC should be turned off,
      ie. MXR_STATUS_SYNC_ENABLE should be reset,
    - after finishing MXR_STATUS_SYNC_ENABLE should be set again.
    The patch hopefully implements it correctly.
    Below sample kernel log from page fault caused by the bug:
    
    [   25.670038] exynos-sysmmu 14650000.sysmmu: 14450000.mixer: PAGE FAULT occurred at 0x2247b800
    [   25.677888] ------------[ cut here ]------------
    [   25.682164] kernel BUG at ../drivers/iommu/exynos-iommu.c:450!
    [   25.687971] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
    [   25.693778] Modules linked in:
    [   25.696816] CPU: 5 PID: 1553 Comm: fb-release_test Not tainted 5.0.0-rc7-01157-g5f86b1566bdd #136
    [   25.705646] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [   25.711710] PC is at exynos_sysmmu_irq+0x1c0/0x264
    [   25.716470] LR is at lock_is_held_type+0x44/0x64
    
    v2: added missing MXR_CFG_LAYER_UPDATE bit setting in mixer_enable_sync
    
    Reported-by: Marian Mihailescu <mihailescu2m@gmail.com>
    Signed-off-by: Andrzej Hajda <a.hajda@samsung.com>
    Signed-off-by: Inki Dae <inki.dae@samsung.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c43003451a010ce1dcdbb05f53a265be1004931c
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Wed Mar 20 13:15:01 2019 -0700

    blk-iolatency: #include "blk.h"
    
    [ Upstream commit 373e915cd8e84544609eced57a44fbc084f8d60f ]
    
    This patch avoids that the following warning is reported when building
    with W=1:
    
    block/blk-iolatency.c:734:5: warning: no previous prototype for 'blk_iolatency_init' [-Wmissing-prototypes]
    
    Cc: Josef Bacik <jbacik@fb.com>
    Fixes: d70675121546 ("block: introduce blk-iolatency io controller") # v4.19
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8bd30e5e0ec594d6200448f0c2b889bd8bd28a5a
Author: Jiada Wang <jiada_wang@mentor.com>
Date:   Tue Mar 12 15:51:28 2019 +0900

    PM / Domains: Avoid a potential deadlock
    
    [ Upstream commit 2071ac985d37efe496782c34318dbead93beb02f ]
    
    Lockdep warns that prepare_lock and genpd->mlock can cause a deadlock
    the deadlock scenario is like following:
    First thread is probing cs2000
    cs2000_probe()
      clk_register()
        __clk_core_init()
          clk_prepare_lock()                            ----> acquires prepare_lock
            cs2000_recalc_rate()
              i2c_smbus_read_byte_data()
                rcar_i2c_master_xfer()
                  dma_request_chan()
                    rcar_dmac_of_xlate()
                      rcar_dmac_alloc_chan_resources()
                        pm_runtime_get_sync()
                          __pm_runtime_resume()
                            rpm_resume()
                              rpm_callback()
                                genpd_runtime_resume()   ----> acquires genpd->mlock
    
    Second thread is attaching any device to the same PM domain
    genpd_add_device()
      genpd_lock()                                       ----> acquires genpd->mlock
        cpg_mssr_attach_dev()
          of_clk_get_from_provider()
            __of_clk_get_from_provider()
              __clk_create_clk()
                clk_prepare_lock()                       ----> acquires prepare_lock
    
    Since currently no PM provider access genpd's critical section
    in .attach_dev, and .detach_dev callbacks, so there is no need to protect
    these two callbacks with genpd->mlock.
    This patch avoids a potential deadlock by moving out .attach_dev and .detach_dev
    from genpd->mlock, so that genpd->mlock won't be held when prepare_lock is acquired
    in .attach_dev and .detach_dev
    
    Signed-off-by: Jiada Wang <jiada_wang@mentor.com>
    Reviewed-by: Ulf Hansson <ulf.hansson@linaro.org>
    Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 66495ebfd4dff8434b494193e78aeeeba0c5c358
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Mon Mar 18 21:47:09 2019 +0300

    ACPI / utils: Drop reference in test for device presence
    
    [ Upstream commit 54e3aca84e571559915998aa6cc05e5ac37c043b ]
    
    When commit 8661423eea1a ("ACPI / utils: Add new acpi_dev_present
    helper") introduced acpi_dev_present(), it missed the fact that
    bus_find_device() took a reference on the device found by it and
    the callers of acpi_dev_present() don't drop that reference.
    
    Drop the reference on the device in acpi_dev_present().
    
    Fixes: 8661423eea1a ("ACPI / utils: Add new acpi_dev_present helper")
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd9f338db8679c4d053c2f73a0863d7309801689
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:56 2019 +0800

    perf tests: Fix a memory leak in test__perf_evsel__tp_sched_test()
    
    [ Upstream commit d982b33133284fa7efa0e52ae06b88f9be3ea764 ]
    
      =================================================================
      ==20875==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 1160 byte(s) in 1 object(s) allocated from:
          #0 0x7f1b6fc84138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138)
          #1 0x55bd50005599 in zalloc util/util.h:23
          #2 0x55bd500068f5 in perf_evsel__newtp_idx util/evsel.c:327
          #3 0x55bd4ff810fc in perf_evsel__newtp /home/work/linux/tools/perf/util/evsel.h:216
          #4 0x55bd4ff81608 in test__perf_evsel__tp_sched_test tests/evsel-tp-sched.c:69
          #5 0x55bd4ff528e6 in run_test tests/builtin-test.c:358
          #6 0x55bd4ff52baf in test_and_print tests/builtin-test.c:388
          #7 0x55bd4ff543fe in __cmd_test tests/builtin-test.c:583
          #8 0x55bd4ff5572f in cmd_test tests/builtin-test.c:722
          #9 0x55bd4ffc4087 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #10 0x55bd4ffc45c6 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #11 0x55bd4ffc49ca in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #12 0x55bd4ffc5138 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #13 0x7f1b6e34809a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
      Indirect leak of 19 byte(s) in 1 object(s) allocated from:
          #0 0x7f1b6fc83f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30)
          #1 0x7f1b6e3ac30f in vasprintf (/lib/x86_64-linux-gnu/libc.so.6+0x8830f)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 6a6cd11d4e57 ("perf test: Add test for the sched tracepoint format fields")
    Link: http://lkml.kernel.org/r/20190316080556.3075-17-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 26980cd03ea6f83b82639550a637865bdf002f23
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:55 2019 +0800

    perf tests: Fix memory leak by expr__find_other() in test__expr()
    
    [ Upstream commit f97a8991d3b998e518f56794d879f645964de649 ]
    
      =================================================================
      ==7506==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 13 byte(s) in 3 object(s) allocated from:
          #0 0x7f03339d6070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070)
          #1 0x5625e53aaef0 in expr__find_other util/expr.y:221
          #2 0x5625e51bcd3f in test__expr tests/expr.c:52
          #3 0x5625e51528e6 in run_test tests/builtin-test.c:358
          #4 0x5625e5152baf in test_and_print tests/builtin-test.c:388
          #5 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
          #6 0x5625e515572f in cmd_test tests/builtin-test.c:722
          #7 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #8 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #9 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #10 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #11 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 075167363f8b ("perf tools: Add a simple expression parser for JSON")
    Link: http://lkml.kernel.org/r/20190316080556.3075-16-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5ffefcfe9764e13924ff27a9b431f1a8a3cc9efc
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:54 2019 +0800

    perf tests: Fix a memory leak of cpu_map object in the openat_syscall_event_on_all_cpus test
    
    [ Upstream commit 93faa52e8371f0291ee1ff4994edae2b336b6233 ]
    
      =================================================================
      ==7497==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 40 byte(s) in 1 object(s) allocated from:
          #0 0x7f0333a88f30 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xedf30)
          #1 0x5625e5326213 in cpu_map__trim_new util/cpumap.c:45
          #2 0x5625e5326703 in cpu_map__read util/cpumap.c:103
          #3 0x5625e53267ef in cpu_map__read_all_cpu_map util/cpumap.c:120
          #4 0x5625e5326915 in cpu_map__new util/cpumap.c:135
          #5 0x5625e517b355 in test__openat_syscall_event_on_all_cpus tests/openat-syscall-all-cpus.c:36
          #6 0x5625e51528e6 in run_test tests/builtin-test.c:358
          #7 0x5625e5152baf in test_and_print tests/builtin-test.c:388
          #8 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
          #9 0x5625e515572f in cmd_test tests/builtin-test.c:722
          #10 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #11 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #12 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #13 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #14 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: f30a79b012e5 ("perf tools: Add reference counting for cpu_map object")
    Link: http://lkml.kernel.org/r/20190316080556.3075-15-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ece1fd3f4023b3a777801a7a2e0aa62f38916454
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
Date:   Mon Mar 18 16:41:28 2019 -0300

    perf evsel: Free evsel->counts in perf_evsel__exit()
    
    [ Upstream commit 42dfa451d825a2ad15793c476f73e7bbc0f9d312 ]
    
    Using gcc's ASan, Changbin reports:
    
      =================================================================
      ==7494==ERROR: LeakSanitizer: detected memory leaks
    
      Direct leak of 48 byte(s) in 1 object(s) allocated from:
          #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138)
          #1 0x5625e5330a5e in zalloc util/util.h:23
          #2 0x5625e5330a9b in perf_counts__new util/counts.c:10
          #3 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47
          #4 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505
          #5 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347
          #6 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47
          #7 0x5625e51528e6 in run_test tests/builtin-test.c:358
          #8 0x5625e5152baf in test_and_print tests/builtin-test.c:388
          #9 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
          #10 0x5625e515572f in cmd_test tests/builtin-test.c:722
          #11 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #12 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #13 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #14 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #15 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
      Indirect leak of 72 byte(s) in 1 object(s) allocated from:
          #0 0x7f0333a89138 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee138)
          #1 0x5625e532560d in zalloc util/util.h:23
          #2 0x5625e532566b in xyarray__new util/xyarray.c:10
          #3 0x5625e5330aba in perf_counts__new util/counts.c:15
          #4 0x5625e5330ca0 in perf_evsel__alloc_counts util/counts.c:47
          #5 0x5625e520d8e5 in __perf_evsel__read_on_cpu util/evsel.c:1505
          #6 0x5625e517a985 in perf_evsel__read_on_cpu /home/work/linux/tools/perf/util/evsel.h:347
          #7 0x5625e517ad1a in test__openat_syscall_event tests/openat-syscall.c:47
          #8 0x5625e51528e6 in run_test tests/builtin-test.c:358
          #9 0x5625e5152baf in test_and_print tests/builtin-test.c:388
          #10 0x5625e51543fe in __cmd_test tests/builtin-test.c:583
          #11 0x5625e515572f in cmd_test tests/builtin-test.c:722
          #12 0x5625e51c3fb8 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #13 0x5625e51c44f7 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #14 0x5625e51c48fb in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #15 0x5625e51c5069 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #16 0x7f033214d09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    His patch took care of evsel->prev_raw_counts, but the above backtraces
    are about evsel->counts, so fix that instead.
    
    Reported-by: Changbin Du <changbin.du@gmail.com>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: https://lkml.kernel.org/n/tip-hd1x13g59f0nuhe4anxhsmfp@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 05fe1d5b6ed181e881d73de9aa0a865695fc685f
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:52 2019 +0800

    perf top: Fix global-buffer-overflow issue
    
    [ Upstream commit 1e5b0cf8672e622257df024074e6e09bfbcb7750 ]
    
    The array str[] should have six elements.
    
      =================================================================
      ==4322==ERROR: AddressSanitizer: global-buffer-overflow on address 0x56463844e300 at pc 0x564637e7ad0d bp 0x7f30c8c89d10 sp 0x7f30c8c89d00
      READ of size 8 at 0x56463844e300 thread T9
          #0 0x564637e7ad0c in __ordered_events__flush util/ordered-events.c:316
          #1 0x564637e7b0e4 in ordered_events__flush util/ordered-events.c:338
          #2 0x564637c6a57d in process_thread /home/changbin/work/linux/tools/perf/builtin-top.c:1073
          #3 0x7f30d173a163 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x8163)
          #4 0x7f30cfffbdee in __clone (/lib/x86_64-linux-gnu/libc.so.6+0x11adee)
    
      0x56463844e300 is located 32 bytes to the left of global variable 'flags' defined in 'util/trace-event-parse.c:229:26' (0x56463844e320) of size 192
      0x56463844e300 is located 0 bytes to the right of global variable 'str' defined in 'util/ordered-events.c:268:28' (0x56463844e2e0) of size 32
      SUMMARY: AddressSanitizer: global-buffer-overflow util/ordered-events.c:316 in __ordered_events__flush
      Shadow bytes around the buggy address:
        0x0ac947081c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c50: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00
      =>0x0ac947081c60:[f9]f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c70: 00 00 00 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9
        0x0ac947081c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
        0x0ac947081cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
      Shadow byte legend (one shadow byte represents 8 application bytes):
        Addressable:           00
        Partially addressable: 01 02 03 04 05 06 07
        Heap left redzone:       fa
        Freed heap region:       fd
        Stack left redzone:      f1
        Stack mid redzone:       f2
        Stack right redzone:     f3
        Stack after return:      f5
        Stack use after scope:   f8
        Global redzone:          f9
        Global init order:       f6
        Poisoned by user:        f7
        Container overflow:      fc
        Array cookie:            ac
        Intra object redzone:    bb
        ASan internal:           fe
        Left alloca redzone:     ca
        Right alloca redzone:    cb
      Thread T9 created by T0 here:
          #0 0x7f30d179de5f in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x4ae5f)
          #1 0x564637c6b954 in __cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1253
          #2 0x564637c7173c in cmd_top /home/changbin/work/linux/tools/perf/builtin-top.c:1642
          #3 0x564637d85038 in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #4 0x564637d85577 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #5 0x564637d8597b in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #6 0x564637d860e9 in main /home/changbin/work/linux/tools/perf/perf.c:520
          #7 0x7f30cff0509a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Fixes: 16c66bc167cc ("perf top: Add processing thread")
    Fixes: 68ca5d07de20 ("perf ordered_events: Add ordered_events__flush_time interface")
    Link: http://lkml.kernel.org/r/20190316080556.3075-13-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 940df86f505d30aafc0620b2fdc9e52282c79dcc
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:51 2019 +0800

    perf maps: Purge all maps from the 'names' tree
    
    [ Upstream commit da3a53a7390a89391bd63bead0c2e9af4c5ef3d6 ]
    
    Add function __maps__purge_names() to purge all maps from the names
    tree.  We need to cleanup the names tree in maps__exit().
    
    Detected with gcc's ASan.
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 1e6285699b30 ("perf symbols: Fix slowness due to -ffunction-section")
    Link: http://lkml.kernel.org/r/20190316080556.3075-12-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 60b7f41c4aea4d09bc36c957014e4bc7aa056597
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:50 2019 +0800

    perf map: Remove map from 'names' tree in __maps__remove()
    
    [ Upstream commit b49265e04410b97b31a5ee66ef6782c1b2d6cd2c ]
    
    There are two trees for each map inserted by maps__insert(), so remove
    it from the 'names' tree in __maps__remove().
    
    Detected with gcc's ASan.
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 1e6285699b30 ("perf symbols: Fix slowness due to -ffunction-section")
    Link: http://lkml.kernel.org/r/20190316080556.3075-11-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d86bf97d119d9dfdb2c2ac9f3f5602c4107bdb57
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:49 2019 +0800

    perf hist: Add missing map__put() in error case
    
    [ Upstream commit cb6186aeffda4d27e56066c79e9579e7831541d3 ]
    
    We need to map__put() before returning from failure of
    sample__resolve_callchain().
    
    Detected with gcc's ASan.
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Krister Johansen <kjlx@templeofstupid.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 9c68ae98c6f7 ("perf callchain: Reference count maps")
    Link: http://lkml.kernel.org/r/20190316080556.3075-10-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a66a027c1ba59192b887d794c79ece8f23c61df
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:48 2019 +0800

    perf top: Fix error handling in cmd_top()
    
    [ Upstream commit 70c819e4bf1c5f492768b399d898d458ccdad2b6 ]
    
    We should go to the cleanup path, to avoid leaks, detected using gcc's
    ASan.
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/20190316080556.3075-9-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 29dddb32f56b9855bd6608d4f6e81c48e4ee3aa8
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:46 2019 +0800

    perf build-id: Fix memory leak in print_sdt_events()
    
    [ Upstream commit 8bde8516893da5a5fdf06121f74d11b52ab92df5 ]
    
    Detected with gcc's ASan:
    
      Direct leak of 4356 byte(s) in 120 object(s) allocated from:
          #0 0x7ff1a2b5a070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070)
          #1 0x55719aef4814 in build_id_cache__origname util/build-id.c:215
          #2 0x55719af649b6 in print_sdt_events util/parse-events.c:2339
          #3 0x55719af66272 in print_events util/parse-events.c:2542
          #4 0x55719ad1ecaa in cmd_list /home/changbin/work/linux/tools/perf/builtin-list.c:58
          #5 0x55719aec745d in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
          #6 0x55719aec7d1a in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
          #7 0x55719aec8184 in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
          #8 0x55719aeca41a in main /home/changbin/work/linux/tools/perf/perf.c:520
          #9 0x7ff1a07ae09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 40218daea1db ("perf list: Show SDT and pre-cached events")
    Link: http://lkml.kernel.org/r/20190316080556.3075-7-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 86cb58f1a12fdf845a56066cf25a38a4a0a8a87d
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:45 2019 +0800

    perf config: Fix a memory leak in collect_config()
    
    [ Upstream commit 54569ba4b06d5baedae4614bde33a25a191473ba ]
    
    Detected with gcc's ASan:
    
      Direct leak of 66 byte(s) in 5 object(s) allocated from:
          #0 0x7ff3b1f32070 in __interceptor_strdup (/usr/lib/x86_64-linux-gnu/libasan.so.5+0x3b070)
          #1 0x560c8761034d in collect_config util/config.c:597
          #2 0x560c8760d9cb in get_value util/config.c:169
          #3 0x560c8760dfd7 in perf_parse_file util/config.c:285
          #4 0x560c8760e0d2 in perf_config_from_file util/config.c:476
          #5 0x560c876108fd in perf_config_set__init util/config.c:661
          #6 0x560c87610c72 in perf_config_set__new util/config.c:709
          #7 0x560c87610d2f in perf_config__init util/config.c:718
          #8 0x560c87610e5d in perf_config util/config.c:730
          #9 0x560c875ddea0 in main /home/changbin/work/linux/tools/perf/perf.c:442
          #10 0x7ff3afb8609a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Cc: Taeung Song <treeze.taeung@gmail.com>
    Fixes: 20105ca1240c ("perf config: Introduce perf_config_set class")
    Link: http://lkml.kernel.org/r/20190316080556.3075-6-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5bb92662f2f109ec0898139b0bf1257679890ca8
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:44 2019 +0800

    perf config: Fix an error in the config template documentation
    
    [ Upstream commit 9b40dff7ba3caaf0d1919f98e136fa3400bd34aa ]
    
    The option 'sort-order' should be 'sort_order'.
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Milian Wolff <milian.wolff@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 893c5c798be9 ("perf config: Show default report configuration in example and docs")
    Link: http://lkml.kernel.org/r/20190316080556.3075-5-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d41f87ee413f3701a53413ad7c31cb6a00cb6200
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:43 2019 +0800

    perf tools: Fix errors under optimization level '-Og'
    
    [ Upstream commit 11c1ea6f1a9bc97bf857fd12f72eacb6c69794e2 ]
    
    Optimization level '-Og' offers a reasonable level of optimization while
    maintaining fast compilation and a good debugging experience. This patch
    tries to make it work.
    
      $ make DEBUG=1 EXTRA_CFLAGS='-Og'
      bench/epoll-ctl.c: In function ‘do_threads’:
      bench/epoll-ctl.c:274:9: error: ‘ret’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
        return ret;
               ^~~
      ...
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Link: http://lkml.kernel.org/r/20190316080556.3075-4-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 84b2a2ca6d4142568a4bba52bfcef4c2be944f4e
Author: Changbin Du <changbin.du@gmail.com>
Date:   Sat Mar 16 16:05:42 2019 +0800

    perf list: Don't forget to drop the reference to the allocated thread_map
    
    [ Upstream commit 39df730b09774bd860e39ea208a48d15078236cb ]
    
    Detected via gcc's ASan:
    
      Direct leak of 2048 byte(s) in 64 object(s) allocated from:
        6     #0 0x7f606512e370 in __interceptor_realloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xee370)
        7     #1 0x556b0f1d7ddd in thread_map__realloc util/thread_map.c:43
        8     #2 0x556b0f1d84c7 in thread_map__new_by_tid util/thread_map.c:85
        9     #3 0x556b0f0e045e in is_event_supported util/parse-events.c:2250
       10     #4 0x556b0f0e1aa1 in print_hwcache_events util/parse-events.c:2382
       11     #5 0x556b0f0e3231 in print_events util/parse-events.c:2514
       12     #6 0x556b0ee0a66e in cmd_list /home/changbin/work/linux/tools/perf/builtin-list.c:58
       13     #7 0x556b0f01e0ae in run_builtin /home/changbin/work/linux/tools/perf/perf.c:302
       14     #8 0x556b0f01e859 in handle_internal_command /home/changbin/work/linux/tools/perf/perf.c:354
       15     #9 0x556b0f01edc8 in run_argv /home/changbin/work/linux/tools/perf/perf.c:398
       16     #10 0x556b0f01f71f in main /home/changbin/work/linux/tools/perf/perf.c:520
       17     #11 0x7f6062ccf09a in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x2409a)
    
    Signed-off-by: Changbin Du <changbin.du@gmail.com>
    Reviewed-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexei Starovoitov <ast@kernel.org>
    Cc: Daniel Borkmann <daniel@iogearbox.net>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
    Fixes: 89896051f8da ("perf tools: Do not put a variable sized type not at the end of a struct")
    Link: http://lkml.kernel.org/r/20190316080556.3075-3-changbin.du@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0c6568492019a881d9233dae813ee6b693413f90
Author: Andi Kleen <ak@linux.intel.com>
Date:   Thu Mar 14 15:50:01 2019 -0700

    perf stat: Fix --no-scale
    
    [ Upstream commit 75998bb263bf48c1c85d78cd2d2f3a97d3747cab ]
    
    The -c option to enable multiplex scaling has been useless for quite
    some time because scaling is default.
    
    It's only useful as --no-scale to disable scaling. But the non scaling
    code path has bitrotted and doesn't print anything because perf output
    code relies on value run/ena information.
    
    Also even when we don't want to scale a value it's still useful to show
    its multiplex percentage.
    
    This patch:
      - Fixes help and documentation to show --no-scale instead of -c
      - Removes -c, only keeps the long option because -c doesn't support negatives.
      - Enables running/enabled even with --no-scale
      - And fixes some other problems in the no-scale output.
    
    Before:
    
      $ perf stat --no-scale -e cycles true
    
       Performance counter stats for 'true':
    
           <not counted>      cycles
    
             0.000984154 seconds time elapsed
    
    After:
    
      $ ./perf stat --no-scale -e cycles true
    
       Performance counter stats for 'true':
    
                 706,070      cycles
    
             0.001219821 seconds time elapsed
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Jiri Olsa <jolsa@kernel.org>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    LPU-Reference: 20190314225002.30108-9-andi@firstfloor.org
    Link: https://lkml.kernel.org/n/tip-xggjvwcdaj2aqy8ib3i4b1g6@git.kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c957d798c11ca0e09bc27273a4ba554b419a6ff3
Author: Himanshu Madhani <hmadhani@marvell.com>
Date:   Fri Mar 15 15:04:19 2019 -0700

    scsi: qla2xxx: Fix NULL pointer crash due to stale CPUID
    
    [ Upstream commit ac444b4f0ace05d7c4c99f6b1e5b0cae0852f025 ]
    
    This patch fixes crash due to NULL pointer derefrence because CPU pointer
    is not set and used by driver.  Instead, driver is passes CPU as tag via
    ha->isp_ops->{lun_reset|target_reset}
    
    [   30.160780] qla2xxx [0000:a0:00.1]-8038:9: Cable is unplugged...
    [   69.984045] qla2xxx [0000:a0:00.0]-8009:8: DEVICE RESET ISSUED nexus=8:0:0 cmd=00000000b0d62f46.
    [   69.992849] BUG: unable to handle kernel NULL pointer dereference at 0000000000000040
    [   70.000680] PGD 0 P4D 0
    [   70.003232] Oops: 0000 [#1] SMP PTI
    [   70.006727] CPU: 2 PID: 6714 Comm: sg_reset Kdump: loaded Not tainted 4.18.0-67.el8.x86_64 #1
    [   70.015258] Hardware name: NEC Express5800/T110j [N8100-2758Y]/MX32-PH0-NJ, BIOS F11 02/13/2019
    [   70.024016] RIP: 0010:blk_mq_rq_cpu+0x9/0x10
    [   70.028315] Code: 01 58 01 00 00 48 83 c0 28 48 3d 80 02 00 00 75 ab c3 0f 1f 44 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 48
     8b 47 08 <8b> 40 40 c3 0f 1f 00 0f 1f 44 00 00 48 83 ec 10 48 c7 c6 20 6e 7c
    [   70.047087] RSP: 0018:ffff99a481487d58 EFLAGS: 00010246
    [   70.052322] RAX: 0000000000000000 RBX: ffffffffc041b08b RCX: 0000000000000000
    [   70.059466] RDX: 0000000000000000 RSI: ffff8d10b6b16898 RDI: ffff8d10b341e400
    [   70.066615] RBP: ffffffffc03a6bd0 R08: 0000000000000415 R09: 0000000000aaaaaa
    [   70.073765] R10: 0000000000000001 R11: 0000000000000001 R12: ffff8d10b341e528
    [   70.080914] R13: ffff8d10aadefc00 R14: ffff8d0f64efa998 R15: ffff8d0f64efa000
    [   70.088083] FS:  00007f90a201e540(0000) GS:ffff8d10b6b00000(0000) knlGS:0000000000000000
    [   70.096188] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   70.101959] CR2: 0000000000000040 CR3: 0000000268886005 CR4: 00000000003606e0
    [   70.109127] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [   70.116277] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [   70.123425] Call Trace:
    [   70.125896]  __qla2xxx_eh_generic_reset+0xb1/0x220 [qla2xxx]
    [   70.131572]  scsi_ioctl_reset+0x1f5/0x2a0
    [   70.135600]  scsi_ioctl+0x18e/0x397
    [   70.139099]  ? sd_ioctl+0x7c/0x100 [sd_mod]
    [   70.143287]  blkdev_ioctl+0x32b/0x9f0
    [   70.146954]  ? __check_object_size+0xa3/0x181
    [   70.151323]  block_ioctl+0x39/0x40
    [   70.154735]  do_vfs_ioctl+0xa4/0x630
    [   70.158322]  ? syscall_trace_enter+0x1d3/0x2c0
    [   70.162769]  ksys_ioctl+0x60/0x90
    [   70.166104]  __x64_sys_ioctl+0x16/0x20
    [   70.169859]  do_syscall_64+0x5b/0x1b0
    [   70.173532]  entry_SYSCALL_64_after_hwframe+0x65/0xca
    [   70.178587] RIP: 0033:0x7f90a1b3445b
    [   70.182183] Code: 0f 1e fa 48 8b 05 2d aa 2c 00 64 c7 00 26 00 00 00 48 c7 c0 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa b8 10 00 00
     00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d fd a9 2c 00 f7 d8 64 89 01 48
    [   70.200956] RSP: 002b:00007fffdca88b68 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
    [   70.208535] RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007f90a1b3445b
    [   70.215684] RDX: 00007fffdca88b84 RSI: 0000000000002284 RDI: 0000000000000003
    [   70.222833] RBP: 00007fffdca88ca8 R08: 00007fffdca88b84 R09: 0000000000000000
    [   70.229981] R10: 0000000000000000 R11: 0000000000000246 R12: 00007fffdca88b84
    [   70.237131] R13: 0000000000000000 R14: 000055ab09b0bd28 R15: 0000000000000000
    [   70.244284] Modules linked in: nft_chain_route_ipv4 xt_CHECKSUM nft_chain_nat_ipv4 ipt_MASQUERADE nf_nat_ipv4 nf_nat nf_conntrack_ipv4
     nf_defrag_ipv4 xt_conntrack nf_conntrack libcrc32c ipt_REJECT nf_reject_ipv4 nft_counter nft_compat tun bridge stp llc nf_tables nfnetli
    nk devlink sunrpc vfat fat intel_rapl intel_pmc_core x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm wmi_bmof iTCO_wdt iTCO_
    vendor_support irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel ipmi_ssif intel_cstate intel_uncore intel_rapl_perf ipmi_si jo
    ydev pcspkr ipmi_devintf sg wmi ipmi_msghandler video acpi_power_meter acpi_pad mei_me i2c_i801 mei ip_tables ext4 mbcache jbd2 sr_mod cd
    rom sd_mod qla2xxx ast i2c_algo_bit drm_kms_helper nvme_fc syscopyarea sysfillrect uas sysimgblt fb_sys_fops nvme_fabrics ttm
    [   70.314805]  usb_storage nvme_core crc32c_intel scsi_transport_fc ahci drm libahci tg3 libata megaraid_sas pinctrl_cannonlake pinctrl_
    intel
    [   70.327335] CR2: 0000000000000040
    
    Fixes: 9cf2bab630765 ("block: kill request ->cpu member")
    Signed-off-by: Himanshu Madhani <hmadhani@marvell.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9ec3c84936f7206bb68cbba3c543cfafcaab9c63
Author: Bart Van Assche <bvanassche@acm.org>
Date:   Mon Mar 18 09:29:26 2019 -0700

    scsi: core: Also call destroy_rcu_head() for passthrough requests
    
    [ Upstream commit db983f6eef57a9d78af79bc32389b7e60eb3c47d ]
    
    cmd->rcu is initialized by scsi_initialize_rq(). For passthrough
    requests, blk_get_request() calls scsi_initialize_rq(). For filesystem
    requests, scsi_init_command() calls scsi_initialize_rq(). Make sure
    that destroy_rcu_head() is called for passthrough requests.
    
    Cc: Christoph Hellwig <hch@lst.de>
    Cc: Hannes Reinecke <hare@suse.com>
    Cc: Ewan D. Milne <emilne@redhat.com>
    Cc: Johannes Thumshirn <jthumshirn@suse.de>
    Reported-by: Ewan D. Milne <emilne@redhat.com>
    Signed-off-by: Bart Van Assche <bvanassche@acm.org>
    Reviewed-by: Hannes Reinecke <hare@suse.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 638bf55940b966047555ba1caac93799749bb350
Author: David Arcari <darcari@redhat.com>
Date:   Tue Feb 12 09:34:39 2019 -0500

    tools/power turbostat: return the exit status of a command
    
    [ Upstream commit 2a95496634a017c19641f26f00907af75b962f01 ]
    
    turbostat failed to return a non-zero exit status even though the
    supplied command (turbostat <command>) failed.  Currently when turbostat
    forks a command it returns zero instead of the actual exit status of the
    command.  Modify the code to return the exit status.
    
    Signed-off-by: David Arcari <darcari@redhat.com>
    Acked-by: Len Brown <len.brown@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4a45137bb2eb6270fee2471881526927ada2b734
Author: Matteo Croce <mcroce@redhat.com>
Date:   Mon Mar 18 22:24:03 2019 +0100

    x86/mm: Don't leak kernel addresses
    
    [ Upstream commit a3151724437f54076cc10bc02b1c4f0003ae36cd ]
    
    Since commit:
    
      ad67b74d2469d9b8 ("printk: hash addresses printed with %p")
    
    at boot "____ptrval____" is printed instead of actual addresses:
    
        found SMP MP-table at [mem 0x000f5cc0-0x000f5ccf] mapped at [(____ptrval____)]
    
    Instead of changing the print to "%px", and leaking a kernel addresses,
    just remove the print completely, like in:
    
      071929dbdd865f77 ("arm64: Stop printing the virtual memory layout").
    
    Signed-off-by: Matteo Croce <mcroce@redhat.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 8764542aa21c4659d85aff7ca61243d08041240b
Author: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
Date:   Wed Mar 6 20:11:42 2019 +0300

    sched/core: Fix buffer overflow in cgroup2 property cpu.max
    
    [ Upstream commit 4c47acd824aaaa8fc6dc519fb4e08d1522105b7a ]
    
    Add limit into sscanf format string for on-stack buffer.
    
    Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Tejun Heo <tj@kernel.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Johannes Weiner <hannes@cmpxchg.org>
    Cc: Li Zefan <lizefan@huawei.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Fixes: 0d5936344f30 ("sched: Implement interface for cgroup unified hierarchy")
    Link: https://lkml.kernel.org/r/155189230232.2620.13120481613524200065.stgit@buzz
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 02abd369fa77b4bd8d256b1b6aa8b9ec4bd68879
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Tue Mar 5 09:32:02 2019 +0100

    sched/cpufreq: Fix 32-bit math overflow
    
    [ Upstream commit a23314e9d88d89d49e69db08f60b7caa470f04e1 ]
    
    Vincent Wang reported that get_next_freq() has a mult overflow bug on
    32-bit platforms in the IOWAIT boost case, since in that case {util,max}
    are in freq units instead of capacity units.
    
    Solve this by moving the IOWAIT boost to capacity units. And since this
    means @max is constant; simplify the code.
    
    Reported-by: Vincent Wang <vincent.wang@unisoc.com>
    Tested-by: Vincent Wang <vincent.wang@unisoc.com>
    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Chunyan Zhang <zhang.lyra@gmail.com>
    Cc: Dave Hansen <dave.hansen@linux.intel.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Quentin Perret <quentin.perret@arm.com>
    Cc: Rafael J. Wysocki <rjw@rjwysocki.net>
    Cc: Rik van Riel <riel@surriel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Link: https://lkml.kernel.org/r/20190305083202.GU32494@hirez.programming.kicks-ass.net
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7aa9be519579e43c19bf341d61510ce0b7702b92
Author: Maurizio Lombardi <mlombard@redhat.com>
Date:   Mon Jan 28 15:24:42 2019 +0100

    scsi: iscsi: flush running unbind operations when removing a session
    
    [ Upstream commit 165aa2bfb42904b1bec4bf2fa257c8c603c14a06 ]
    
    In some cases, the iscsi_remove_session() function is called while an
    unbind_work operation is still running.  This may cause a situation where
    sysfs objects are removed in an incorrect order, triggering a kernel
    warning.
    
    [  605.249442] ------------[ cut here ]------------
    [  605.259180] sysfs group 'power' not found for kobject 'target2:0:0'
    [  605.321371] WARNING: CPU: 1 PID: 26794 at fs/sysfs/group.c:235 sysfs_remove_group+0x76/0x80
    [  605.341266] Modules linked in: dm_service_time target_core_user target_core_pscsi target_core_file target_core_iblock iscsi_target_mod target_core_mod nls_utf8 isofs ppdev bochs_drm nfit ttm libnvdimm drm_kms_helper syscopyarea sysfillrect sysimgblt joydev pcspkr fb_sys_fops drm i2c_piix4 sg parport_pc parport xfs libcrc32c dm_multipath sr_mod sd_mod cdrom ata_generic 8021q garp mrp ata_piix stp crct10dif_pclmul crc32_pclmul llc libata crc32c_intel virtio_net net_failover ghash_clmulni_intel serio_raw failover sunrpc dm_mirror dm_region_hash dm_log dm_mod be2iscsi bnx2i cnic uio cxgb4i cxgb4 libcxgbi libcxgb qla4xxx iscsi_boot_sysfs iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi
    [  605.627479] CPU: 1 PID: 26794 Comm: kworker/u32:2 Not tainted 4.18.0-60.el8.x86_64 #1
    [  605.721401] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS ?-20180724_192412-buildhw-07.phx2.fedoraproject.org-1.fc29 04/01/2014
    [  605.823651] Workqueue: scsi_wq_2 __iscsi_unbind_session [scsi_transport_iscsi]
    [  605.830940] RIP: 0010:sysfs_remove_group+0x76/0x80
    [  605.922907] Code: 48 89 df 5b 5d 41 5c e9 38 c4 ff ff 48 89 df e8 e0 bf ff ff eb cb 49 8b 14 24 48 8b 75 00 48 c7 c7 38 73 cb a7 e8 24 77 d7 ff <0f> 0b 5b 5d 41 5c c3 0f 1f 00 0f 1f 44 00 00 41 56 41 55 41 54 55
    [  606.122304] RSP: 0018:ffffbadcc8d1bda8 EFLAGS: 00010286
    [  606.218492] RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    [  606.326381] RDX: ffff98bdfe85eb40 RSI: ffff98bdfe856818 RDI: ffff98bdfe856818
    [  606.514498] RBP: ffffffffa7ab73e0 R08: 0000000000000268 R09: 0000000000000007
    [  606.529469] R10: 0000000000000000 R11: ffffffffa860d9ad R12: ffff98bdf978e838
    [  606.630535] R13: ffff98bdc2cd4010 R14: ffff98bdc2cd3ff0 R15: ffff98bdc2cd4000
    [  606.824707] FS:  0000000000000000(0000) GS:ffff98bdfe840000(0000) knlGS:0000000000000000
    [  607.018333] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [  607.117844] CR2: 00007f84b78ac024 CR3: 000000002c00a003 CR4: 00000000003606e0
    [  607.117844] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [  607.420926] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [  607.524236] Call Trace:
    [  607.530591]  device_del+0x56/0x350
    [  607.624393]  ? ata_tlink_match+0x30/0x30 [libata]
    [  607.727805]  ? attribute_container_device_trigger+0xb4/0xf0
    [  607.829911]  scsi_target_reap_ref_release+0x39/0x50
    [  607.928572]  scsi_remove_target+0x1a2/0x1d0
    [  608.017350]  __iscsi_unbind_session+0xb3/0x160 [scsi_transport_iscsi]
    [  608.117435]  process_one_work+0x1a7/0x360
    [  608.132917]  worker_thread+0x30/0x390
    [  608.222900]  ? pwq_unbound_release_workfn+0xd0/0xd0
    [  608.323989]  kthread+0x112/0x130
    [  608.418318]  ? kthread_bind+0x30/0x30
    [  608.513821]  ret_from_fork+0x35/0x40
    [  608.613909] ---[ end trace 0b98c310c8a6138c ]---
    
    Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
    Acked-by: Chris Leech <cleech@redhat.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b0b05ab719c36fc84810337693d9e9aa3b32e77f
Author: Zhang Rui <rui.zhang@intel.com>
Date:   Mon Mar 18 22:26:33 2019 +0800

    thermal/intel_powerclamp: fix truncated kthread name
    
    [ Upstream commit e925b5be5751f6a7286bbd9a4cbbc4ac90cc5fa6 ]
    
    kthread name only allows 15 characters (TASK_COMMON_LEN is 16).
    Thus rename the kthreads created by intel_powerclamp driver from
    "kidle_inject/ + decimal cpuid" to "kidle_inj/ + decimal cpuid"
    to avoid truncated kthead name for cpu 100 and later.
    
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 800e3fd7bfce5398ada8e58a8e67a1c63fc27e7a
Author: Matthew Garrett <matthewgarrett@google.com>
Date:   Wed Oct 10 01:30:07 2018 -0700

    thermal/int340x_thermal: fix mode setting
    
    [ Upstream commit 396ee4d0cd52c13b3f6421b8d324d65da5e7e409 ]
    
    int3400 only pushes the UUID into the firmware when the mode is flipped
    to "enable". The current code only exposes the mode flag if the firmware
    supports the PASSIVE_1 UUID, which not all machines do. Remove the
    restriction.
    
    Signed-off-by: Matthew Garrett <mjg59@google.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 891fea677cca1dfd0cc2bb7d1960672e7ab43001
Author: Matthew Garrett <matthewgarrett@google.com>
Date:   Wed Oct 10 01:30:06 2018 -0700

    thermal/int340x_thermal: Add additional UUIDs
    
    [ Upstream commit 16fc8eca1975358111dbd7ce65e4ce42d1a848fb ]
    
    Add more supported DPTF policies than the driver currently exposes.
    
    Signed-off-by: Matthew Garrett <mjg59@google.com>
    Cc: Nisha Aram <nisha.aram@intel.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f1a315ca06be80dddab380c7af1ddace3ee5f110
Author: Phil Elwell <phil@raspberrypi.org>
Date:   Tue Jan 29 09:55:57 2019 +0000

    thermal: bcm2835: Fix crash in bcm2835_thermal_debugfs
    
    [ Upstream commit 35122495a8c6683e863acf7b05a7036b2be64c7a ]
    
    "cat /sys/kernel/debug/bcm2835_thermal/regset" causes a NULL pointer
    dereference in bcm2835_thermal_debugfs. The driver makes use of the
    implementation details of the thermal framework to retrieve a pointer
    to its private data from a struct thermal_zone_device, and gets it
    wrong - leading to the crash. Instead, store its private data as the
    drvdata and retrieve the thermal_zone_device pointer from it.
    
    Fixes: bcb7dd9ef206 ("thermal: bcm2835: add thermal driver for bcm2835 SoC")
    
    Signed-off-by: Phil Elwell <phil@raspberrypi.org>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 481c8a89e89a373b8f157ac2b0df6cee07e2bbfb
Author: Marek Szyprowski <m.szyprowski@samsung.com>
Date:   Tue Jan 22 16:47:41 2019 +0100

    thermal: samsung: Fix incorrect check after code merge
    
    [ Upstream commit 3b5236cc5d086dd3ddd01113ee9255421aab9fab ]
    
    Merge commit 19785cf93b6c ("Merge branch 'linus' of
    git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal")
    broke the code introduced by commit ffe6e16f14fa ("thermal: exynos: Reduce
    severity of too early temperature read"). Restore the original code from
    the mentioned commit to finally fix the warning message during boot:
    
    thermal thermal_zone0: failed to read out thermal zone (-22)
    
    Reported-by: Marian Mihailescu <mihailescu2m@gmail.com>
    Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
    Fixes: 19785cf93b6c ("Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal")
    Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 74920ee161d47462dd54f4d16601015e82621093
Author: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Date:   Sat Jan 19 17:15:23 2019 +0100

    thermal/intel_powerclamp: fix __percpu declaration of worker_data
    
    [ Upstream commit aa36e3616532f82a920b5ebf4e059fbafae63d88 ]
    
    This variable is declared as:
            static struct powerclamp_worker_data * __percpu worker_data;
    In other words, a percpu pointer to struct ...
    
    But this variable not used like so but as a pointer to a percpu
    struct powerclamp_worker_data.
    
    So fix the declaration as:
            static struct powerclamp_worker_data __percpu *worker_data;
    
    This also quiets Sparse's warnings from __verify_pcpu_ptr(), like:
      494:49: warning: incorrect type in initializer (different address spaces)
      494:49:    expected void const [noderef] <asn:3> *__vpp_verify
      494:49:    got struct powerclamp_worker_data *
    
    Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
    Reviewed-by: Petr Mladek <pmladek@suse.com>
    Signed-off-by: Zhang Rui <rui.zhang@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6e684bd65a5cd88115fa1802664ba90449190cbc
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Mar 18 08:10:32 2019 -0600

    paride/pcd: cleanup queues when detection fails
    
    [ Upstream commit 81b74ac68c28fddb3589ad5d4d5e587baf4bb781 ]
    
    The driver allocates queues for all the units it potentially
    supports. But if we fail to detect any drives, then we fail
    loading the module without cleaning up those queues. This is
    now evident with the switch to blk-mq, though the bug has
    been there forever as far as I can tell.
    
    Also fix cleanup through regular module exit.
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Tested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 77323732005afb86d9e99b4c95993493ec955f8a
Author: Jens Axboe <axboe@kernel.dk>
Date:   Mon Mar 18 08:08:43 2019 -0600

    paride/pf: cleanup queues when detection fails
    
    [ Upstream commit 6ce59025f1182125e75c8d121daf44056b65dd1f ]
    
    The driver allocates queues for all the units it potentially
    supports. But if we fail to detect any drives, then we fail
    loading the module without cleaning up those queues. This is
    now evident with the switch to blk-mq, though the bug has
    been there forever as far as I can tell.
    
    Also fix cleanup through regular module exit.
    
    Reported-by: Randy Dunlap <rdunlap@infradead.org>
    Tested-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f208b0adaeee47ec4c58d0d57c83ae91a3a1644
Author: Colin Ian King <colin.king@canonical.com>
Date:   Sun Mar 17 23:21:24 2019 +0000

    ALSA: opl3: fix mismatch between snd_opl3_drum_switch definition and declaration
    
    [ Upstream commit b4748e7ab731e436cf5db4786358ada5dd2db6dd ]
    
    The function snd_opl3_drum_switch declaration in the header file
    has the order of the two arguments on_off and vel swapped when
    compared to the definition arguments of vel and on_off.  Fix this
    by swapping them around to match the definition.
    
    This error predates the git history, so no idea when this error
    was introduced.
    
    Signed-off-by: Colin Ian King <colin.king@canonical.com>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bdb43acc8858df05170ae16749c8350285b8ecb1
Author: Arnd Bergmann <arnd@arndb.de>
Date:   Thu Mar 7 11:10:11 2019 +0100

    mmc: davinci: remove extraneous __init annotation
    
    [ Upstream commit 9ce58dd7d9da3ca0d7cb8c9568f1c6f4746da65a ]
    
    Building with clang finds a mistaken __init tag:
    
    WARNING: vmlinux.o(.text+0x5e4250): Section mismatch in reference from the function davinci_mmcsd_probe() to the function .init.text:init_mmcsd_host()
    The function davinci_mmcsd_probe() references
    the function __init init_mmcsd_host().
    This is often because davinci_mmcsd_probe lacks a __init
    annotation or the annotation of init_mmcsd_host is wrong.
    
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Acked-by: Wolfram Sang <wsa@the-dreams.de>
    Reviewed-by: Nathan Chancellor <natechancellor@gmail.com>
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e52431f7547cd3d208b270fdf845bdb54e051543
Author: Feng Tang <feng.tang@intel.com>
Date:   Thu Mar 14 18:37:29 2019 +0800

    i40iw: Avoid panic when handling the inetdev event
    
    [ Upstream commit ec4fe4bcc584b55e24e8d1768f5510a62c0fd619 ]
    
    There is a panic reported that on a system with x722 ethernet, when doing
    the operations like:
    
            # ip link add br0 type bridge
            # ip link set eno1 master br0
            # systemctl restart systemd-networkd
    
    The system will panic "BUG: unable to handle kernel null pointer
    dereference at 0000000000000034", with call chain:
    
            i40iw_inetaddr_event
            notifier_call_chain
            blocking_notifier_call_chain
            notifier_call_chain
            __inet_del_ifa
            inet_rtm_deladdr
            rtnetlink_rcv_msg
            netlink_rcv_skb
            rtnetlink_rcv
            netlink_unicast
            netlink_sendmsg
            sock_sendmsg
            __sys_sendto
    
    It is caused by "local_ipaddr = ntohl(in->ifa_list->ifa_address)", while
    the in->ifa_list is NULL.
    
    So add a check for the "in->ifa_list == NULL" case, and skip the ARP
    operation accordingly.
    
    Signed-off-by: Feng Tang <feng.tang@intel.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 221b45319d05ce2be91aba36c398f3e2efde4591
Author: Jack Morgenstein <jackm@dev.mellanox.co.il>
Date:   Wed Mar 6 19:17:56 2019 +0200

    IB/mlx4: Fix race condition between catas error reset and aliasguid flows
    
    [ Upstream commit 587443e7773e150ae29e643ee8f41a1eed226565 ]
    
    Code review revealed a race condition which could allow the catas error
    flow to interrupt the alias guid query post mechanism at random points.
    Thiis is fixed by doing cancel_delayed_work_sync() instead of
    cancel_delayed_work() during the alias guid mechanism destroy flow.
    
    Fixes: a0c64a17aba8 ("mlx4: Add alias_guid mechanism")
    Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
    Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
    Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b21723eda4cccb9b833d123e4e92f393af67dbad
Author: Dave Airlie <airlied@redhat.com>
Date:   Fri Mar 15 11:37:20 2019 +1000

    drm/udl: use drm_gem_object_put_unlocked.
    
    [ Upstream commit 8f3b487685b2acf71b42bb30d68fd9271bec8695 ]
    
    When Daniel removed struct_mutex he didn't fix this call to the unlocked
    variant which is required since we no longer use struct mutex.
    
    This fixes a bunch of:
    WARNING: CPU: 4 PID: 1370 at drivers/gpu/drm/drm_gem.c:931 drm_gem_object_put+0x2b/0x30 [drm]
    Modules linked in: udl xt_CHECKSUM ipt_MASQUERADE tun bridge stp llc nf_conntrack_netbios_ns nf_conntrack_broadcast xt_CT ip6t>
    CPU: 4 PID: 1370 Comm: Xorg Not tainted 5.0.0+ #2
    
    backtraces when you plug in a udl device.
    
    Fixes: ae358dacd217 (drm/udl: Get rid of dev->struct_mutex usage)
    Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Sean Paul <seanpaul@chromium.org>
    Signed-off-by: Dave Airlie <airlied@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 33550275bbcf90f236aa744bbb883d464c34def4
Author: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Date:   Tue Mar 12 16:44:28 2019 +0200

    auxdisplay: hd44780: Fix memory leak on ->remove()
    
    [ Upstream commit 41c8d0adf3c4df1867d98cee4a2c4531352a33ad ]
    
    We have to free on ->remove() the allocated resources on ->probe().
    
    Fixes: d47d88361fee ("auxdisplay: Add HD44780 Character LCD support")
    Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4c12b50fc86a4bf37441eb7c3765e8c55578cff8
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Thu Mar 14 23:04:14 2019 -0500

    ALSA: sb8: add a check for request_region
    
    [ Upstream commit dcd0feac9bab901d5739de51b3f69840851f8919 ]
    
    In case request_region fails, the fix returns an error code to
    avoid NULL pointer dereference.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b3a964aea086db87c18da7eac30ea1061e90df8b
Author: Kangjie Lu <kjlu@umn.edu>
Date:   Thu Mar 14 22:58:29 2019 -0500

    ALSA: echoaudio: add a check for ioremap_nocache
    
    [ Upstream commit 6ade657d6125ec3ec07f95fa51e28138aef6208f ]
    
    In case ioremap_nocache fails, the fix releases chip and returns
    an error code upstream to avoid NULL pointer dereference.
    
    Signed-off-by: Kangjie Lu <kjlu@umn.edu>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2c20533ea60224116b4d5d03d5ff6fff276e420b
Author: Lukas Czerner <lczerner@redhat.com>
Date:   Fri Mar 15 00:22:28 2019 -0400

    ext4: report real fs size after failed resize
    
    [ Upstream commit 6c7328400e0488f7d49e19e02290ba343b6811b2 ]
    
    Currently when the file system resize using ext4_resize_fs() fails it
    will report into log that "resized filesystem to <requested block
    count>".  However this may not be true in the case of failure.  Use the
    current block count as returned by ext4_blocks_count() to report the
    block count.
    
    Additionally, report a warning that "error occurred during file system
    resize"
    
    Signed-off-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit d45fc2ba0e398bf41dd219ab0a84fb80228e0069
Author: Lukas Czerner <lczerner@redhat.com>
Date:   Fri Mar 15 00:15:32 2019 -0400

    ext4: add missing brelse() in add_new_gdb_meta_bg()
    
    [ Upstream commit d64264d6218e6892edd832dc3a5a5857c2856c53 ]
    
    Currently in add_new_gdb_meta_bg() there is a missing brelse of gdb_bh
    in case ext4_journal_get_write_access() fails.
    Additionally kvfree() is missing in the same error path. Fix it by
    moving the ext4_journal_get_write_access() before the ext4 sb update as
    Ted suggested and release n_group_desc and gdb_bh in case it fails.
    
    Fixes: 61a9c11e5e7a ("ext4: add missing brelse() add_new_gdb_meta_bg()'s error path")
    Signed-off-by: Lukas Czerner <lczerner@redhat.com>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e239811047165d8ff4ccb9e1202bee49f25ef780
Author: Jan Kara <jack@suse.cz>
Date:   Thu Mar 14 23:46:05 2019 -0400

    ext4: avoid panic during forced reboot
    
    [ Upstream commit 1dc1097ff60e4105216da7cd0aa99032b039a994 ]
    
    When admin calls "reboot -f" - i.e., does a hard system reboot by
    directly calling reboot(2) - ext4 filesystem mounted with errors=panic
    can panic the system. This happens because the underlying device gets
    disabled without unmounting the filesystem and thus some syscall running
    in parallel to reboot(2) can result in the filesystem getting IO errors.
    
    This is somewhat surprising to the users so try improve the behavior by
    switching to errors=remount-ro behavior when the system is running
    reboot(2).
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Theodore Ts'o <tytso@mit.edu>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0a7ef682097002cec926777228866149052e4751
Author: Petr Štetiar <ynezz@true.cz>
Date:   Mon Mar 11 22:08:22 2019 +0100

    mips: bcm47xx: Enable USB power on Netgear WNDR3400v2
    
    [ Upstream commit cdb8faa00e3fcdd0ad10add743516d616dc7d38e ]
    
    Eric has reported on OpenWrt's bug tracking system[1], that he's not
    able to use USB devices on his WNDR3400v2 device after the boot, until
    he turns on GPIO #21 manually through sysfs.
    
    1. https://bugs.openwrt.org/index.php?do=details&task_id=2170
    
    Cc: Rafał Miłecki <zajec5@gmail.com>
    Cc: Hauke Mehrtens <hauke@hauke-m.de>
    Reported-by: Eric Bohlman <ericbohlman@gmail.com>
    Tested-by: Eric Bohlman <ericbohlman@gmail.com>
    Signed-off-by: Petr Štetiar <ynezz@true.cz>
    Signed-off-by: Paul Burton <paul.burton@mips.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c5d7b6089be546e5680c450f81f205564cecb22d
Author: Stephane Eranian <eranian@google.com>
Date:   Thu Mar 7 10:52:33 2019 -0800

    perf/core: Restore mmap record type correctly
    
    [ Upstream commit d9c1bb2f6a2157b38e8eb63af437cb22701d31ee ]
    
    On mmap(), perf_events generates a RECORD_MMAP record and then checks
    which events are interested in this record. There are currently 2
    versions of mmap records: RECORD_MMAP and RECORD_MMAP2. MMAP2 is larger.
    The event configuration controls which version the user level tool
    accepts.
    
    If the event->attr.mmap2=1 field then MMAP2 record is returned.  The
    perf_event_mmap_output() takes care of this. It checks attr->mmap2 and
    corrects the record fields before putting it in the sampling buffer of
    the event.  At the end the function restores the modified MMAP record
    fields.
    
    The problem is that the function restores the size but not the type.
    Thus, if a subsequent event only accepts MMAP type, then it would
    instead receive an MMAP2 record with a size of MMAP record.
    
    This patch fixes the problem by restoring the record type on exit.
    
    Signed-off-by: Stephane Eranian <eranian@google.com>
    Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Fixes: 13d7a2410fa6 ("perf: Add attr->mmap2 attribute to an event")
    Link: http://lkml.kernel.org/r/20190307185233.225521-1-eranian@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 7f434180c880a89525e68aa65ca1529c90c29db1
Author: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
Date:   Sat Mar 2 09:17:32 2019 +0800

    inotify: Fix fsnotify_mark refcount leak in inotify_update_existing_watch()
    
    [ Upstream commit 62c9d2674b31d4c8a674bee86b7edc6da2803aea ]
    
    Commit 4d97f7d53da7dc83 ("inotify: Add flag IN_MASK_CREATE for
    inotify_add_watch()") forgot to call fsnotify_put_mark() with
    IN_MASK_CREATE after fsnotify_find_mark()
    
    Fixes: 4d97f7d53da7dc83 ("inotify: Add flag IN_MASK_CREATE for inotify_add_watch()")
    Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9005b534c2bac39e69c8b87365ee58865e16a97e
Author: Corentin Labbe <clabbe@baylibre.com>
Date:   Mon Feb 25 09:45:38 2019 +0000

    arc: hsdk_defconfig: Enable CONFIG_BLK_DEV_RAM
    
    [ Upstream commit 0728aeb7ead99a9b0dac2f3c92b3752b4e02ff97 ]
    
    We have now a HSDK device in our kernelci lab, but kernel builded via
    the hsdk_defconfig lacks ramfs supports, so it cannot boot kernelci jobs
    yet.
    
    So this patch enable CONFIG_BLK_DEV_RAM in hsdk_defconfig.
    
    Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
    Acked-by: Alexey Brodkin <abrodkin@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 48de44356e077706d4063c31d584c9b477b2dbf7
Author: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
Date:   Mon Feb 25 20:16:01 2019 +0300

    ARC: u-boot args: check that magic number is correct
    
    [ Upstream commit edb64bca50cd736c6894cc6081d5263c007ce005 ]
    
    In case of devboards we really often disable bootloader and load
    Linux image in memory via JTAG. Even if kernel tries to verify
    uboot_tag and uboot_arg there is sill a chance that we treat some
    garbage in registers as valid u-boot arguments in JTAG case.
    E.g. it is enough to have '1' in r0 to treat any value in r2 as
    a boot command line.
    
    So check that magic number passed from u-boot is correct and drop
    u-boot arguments otherwise. That helps to reduce the possibility
    of using garbage as u-boot arguments in JTAG case.
    
    We can safely check U-boot magic value (0x0) in linux passed via
    r1 register as U-boot pass it from the beginning. So there is no
    backward-compatibility issues.
    
    Signed-off-by: Eugeniy Paltsev <Eugeniy.Paltsev@synopsys.com>
    Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>