Commit Graph

144 Commits

Author SHA1 Message Date
lucaswei
1c4149c525 Merge android-4.19-stable (4.19.135) into android-msm-pixel-4.19-lts
Merge 4.19.135 into android-4.19-stable
Linux 4.19.135
    ath9k: Fix regression with Atheros 9271
    ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
  * dm integrity: fix integrity recalculation that is improperly skipped
      drivers/md/dm.c
      include/linux/device-mapper.h
  * ASoC: qcom: Drop HAS_DMA dependency to fix link failure
      sound/soc/qcom/Kconfig
  * ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
      include/sound/rt5670.h
  * x86, vmlinux.lds: Page-align end of ..page_aligned sections
      include/asm-generic/vmlinux.lds.h
    parisc: Add atomic64_set_release() define to avoid CPU soft lockups
    drm/amd/powerplay: fix a crash when overclocking Vega M
    drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
  * io-mapping: indicate mapping failure
      include/linux/io-mapping.h
  * mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
      mm/slab_common.c
  * mm: memcg/slab: synchronize access to kmem_cache dying flag using a spinlock
      mm/slab_common.c
  * mm/memcg: fix refcount error while moving and swapping
      mm/memcontrol.c
  * Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
      Makefile
    vt: Reject zero-sized screen buffer size.
    fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
    serial: 8250_mtk: Fix high-speed baud rates clamping
    serial: 8250: fix null-ptr-deref in serial8250_start_tx()
    staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
    staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
    staging: wlan-ng: properly check endpoint types
    Revert "cifs: Fix the target file was deleted when rename failed."
  * usb: xhci: Fix ASM2142/ASM3142 DMA addressing
      drivers/usb/host/xhci-pci.c
    usb: xhci-mtk: fix the failure of bandwidth allocation
  * binder: Don't use mmput() from shrinker function.
      drivers/android/binder_alloc.c
    RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
    x86: math-emu: Fix up 'cmp' insn for clang ias
  * arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
      arch/arm64/kernel/debug-monitors.c
    hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
    hwmon: (adm1275) Make sure we are reading enough data for different chips
    usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
    Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
    dmaengine: ioat setting ioat timeout as module parameter
    hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
  * regmap: dev_get_regmap_match(): fix string comparison
      drivers/base/regmap/regmap.c
    spi: mediatek: use correct SPI_CFG2_REG MACRO
  * Input: add `SW_MACHINE_COVER`
      include/linux/mod_devicetable.h
      include/uapi/linux/input-event-codes.h
    dmaengine: tegra210-adma: Fix runtime PM imbalance on error
  * HID: apple: Disable Fn-key key-re-mapping on clone keyboards
      drivers/hid/hid-apple.c
    HID: steam: fixes race in handling device list.
    HID: alps: support devices with report id 2
    HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
    scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
    scripts/decode_stacktrace: strip basepath from all paths
    serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
  * bonding: check return value of register_netdevice() in bond_newlink()
      drivers/net/bonding/bond_netlink.c
    i2c: rcar: always clear ICSAR to avoid side effects
    net: ethernet: ave: Fix error returns in ave_init
    ipvs: fix the connection sync failed in some cases
    qed: suppress "don't support RoCE & iWARP" flooding on HW init
    mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
  * bonding: check error value of register_netdevice() immediately
      drivers/net/bonding/bond_main.c
    net: smc91x: Fix possible memory leak in smc_drv_probe()
    drm: sun4i: hdmi: Fix inverted HPD result
    ieee802154: fix one possible memleak in adf7242_probe
    net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
  * ax88172a: fix ax88172a_unbind() failures
      drivers/net/usb/ax88172a.c
    hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
    fpga: dfl: fix bug in port reset handshake
    bnxt_en: Fix race when modifying pause settings.
    btrfs: fix page leaks after failure to lock page for delalloc
    btrfs: fix mount failure caused by race with umount
    btrfs: fix double free on ulist after backref resolution failure
    ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
  * ALSA: info: Drop WARN_ON() from buffer NULL sanity check
      sound/core/info.c
  * uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
      kernel/events/uprobes.c
    IB/umem: fix reference count leak in ib_umem_odp_get()
  * tipc: clean up skb list lock handling on send path
      net/tipc/bcast.c
      net/tipc/group.c
      net/tipc/link.c
      net/tipc/node.c
      net/tipc/socket.c
    spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
    SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
    irqdomain/treewide: Keep firmware node unconditionally allocated
  * fuse: fix weird page warning
      fs/fuse/dev.c
    drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
    drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
    net: sky2: initialize return of gm_phy_read
    drivers/net/wan/lapbether: Fixed the value of hard_header_len
    xtensa: update *pos in cpuinfo_op.next
    xtensa: fix __sync_fetch_and_{and,or}_4 declarations
    scsi: scsi_transport_spi: Fix function pointer check
    mac80211: allow rx of mesh eapol frames with default rx key
    pinctrl: amd: fix npins for uart0 in kerncz_groups
    gpio: arizona: put pm_runtime in case of failure
    gpio: arizona: handle pm_runtime_get_sync failure case
  * soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
      drivers/soc/qcom/rpmh.c
    ANDROID: build: update ABI definitions
  * ANDROID: update the kernel release format for GKI
      Makefile
      scripts/setlocalversion
  * ANDROID: Incremental fs: magic number compatible 32-bit
      fs/incfs/vfs.c
  * ANDROID: kbuild: don't merge .*..compoundliteral in modules
      scripts/module-lto.lds.S
  * ANDROID: GKI: preserve ABI for struct sock_cgroup_data
      include/linux/cgroup-defs.h
  * Revert "genetlink: remove genl_bind"
      include/net/genetlink.h
      net/netlink/genetlink.c
  * Revert "arm64/alternatives: use subsections for replacement sequences"
      arch/arm64/include/asm/alternative.h
      arch/arm64/kernel/vmlinux.lds.S
    Merge 4.19.134 into android-4.19-stable
Linux 4.19.134
    spi: sprd: switch the sequence of setting WDG_LOAD_LOW and _HIGH
  * rxrpc: Fix trace string
      include/trace/events/rxrpc.h
    libceph: don't omit recovery_deletes in target_copy()
  * printk: queue wake_up_klogd irq_work only if per-CPU areas are ready
      include/linux/printk.h
      init/main.c
      kernel/printk/internal.h
      kernel/printk/printk.c
      kernel/printk/printk_safe.c
  * genirq/affinity: Handle affinity setting on inactive interrupts correctly
      kernel/irq/manage.c
  * sched/fair: handle case of task_h_load() returning 0
      kernel/sched/fair.c
  * sched: Fix unreliable rseq cpu_id for new tasks
      kernel/sched/core.c
  * arm64: compat: Ensure upper 32 bits of x0 are zero on syscall return
      arch/arm64/include/asm/syscall.h
      arch/arm64/kernel/syscall.c
  * arm64: ptrace: Consistently use pseudo-singlestep exceptions
      arch/arm64/include/asm/thread_info.h
      arch/arm64/kernel/ptrace.c
      arch/arm64/kernel/signal.c
      arch/arm64/kernel/syscall.c
  * arm64: ptrace: Override SPSR.SS when single-stepping is enabled
      arch/arm64/include/asm/debug-monitors.h
      arch/arm64/kernel/debug-monitors.c
      arch/arm64/kernel/ptrace.c
  * thermal/drivers/cpufreq_cooling: Fix wrong frequency converted from power
      drivers/thermal/cpu_cooling.c
    misc: atmel-ssc: lock with mutex instead of spinlock
    dmaengine: fsl-edma: Fix NULL pointer exception in fsl_edma_tx_handler
    intel_th: Fix a NULL dereference when hub driver is not loaded
    intel_th: pci: Add Emmitsburg PCH support
    intel_th: pci: Add Tiger Lake PCH-H support
    intel_th: pci: Add Jasper Lake CPU support
    powerpc/book3s64/pkeys: Fix pkey_access_permitted() for execute disable pkey
    hwmon: (emc2103) fix unable to change fan pwm1_enable attribute
    riscv: use 16KB kernel stack on 64-bit
    MIPS: Fix build for LTS kernel caused by backporting lpj adjustment
  * timer: Fix wheel index calculation on last level
      kernel/time/timer.c
  * timer: Prevent base->clk from moving backward
      kernel/time/timer.c
    uio_pdrv_genirq: fix use without device tree and no interrupt
    Input: i8042 - add Lenovo XiaoXin Air 12 to i8042 nomux list
    mei: bus: don't clean driver pointer
  * Revert "zram: convert remaining CLASS_ATTR() to CLASS_ATTR_RO()"
      drivers/block/zram/zram_drv.c
  * fuse: Fix parameter for FS_IOC_{GET,SET}FLAGS
      fs/fuse/file.c
  * ovl: fix unneeded call to ovl_change_flags()
      fs/overlayfs/file.c
  * ovl: relax WARN_ON() when decoding lower directory file handle
      fs/overlayfs/export.c
  * ovl: inode reference leak in ovl_is_inuse true case.
      fs/overlayfs/super.c
    serial: mxs-auart: add missed iounmap() in probe failure and remove
    virtio: virtio_console: add missing MODULE_DEVICE_TABLE() for rproc serial
    virt: vbox: Fix guest capabilities mask check
  * virt: vbox: Fix VBGL_IOCTL_VMMDEV_REQUEST_BIG and _LOG req numbers to match upstream
      include/uapi/linux/vboxguest.h
    USB: serial: option: add Quectel EG95 LTE modem
    USB: serial: option: add GosunCn GM500 series
    USB: serial: ch341: add new Product ID for CH340
    USB: serial: cypress_m8: enable Simply Automated UPB PIM
    USB: serial: iuu_phoenix: fix memory corruption
    usb: gadget: function: fix missing spinlock in f_uac1_legacy
    usb: chipidea: core: add wakeup support for extcon
    usb: dwc2: Fix shutdown callback in platform
    USB: c67x00: fix use after free in c67x00_giveback_urb
    ALSA: hda/realtek - Enable Speaker for ASUS UX533 and UX534
    ALSA: hda/realtek - change to suitable link model for ASUS platform
  * ALSA: usb-audio: Fix race against the error recovery URB submission
      sound/usb/midi.c
    ALSA: line6: Sync the pending work cancel at disconnection
    ALSA: line6: Perform sanity check for each URB creation
  * HID: quirks: Ignore Simply Automated UPB PIM
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
  * HID: quirks: Always poll Obins Anne Pro 2 keyboard
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
  * HID: magicmouse: do not set up autorepeat
      drivers/hid/hid-magicmouse.c
    slimbus: core: Fix mismatch in of_node_get/put
    mtd: rawnand: oxnas: Release all devices in the _remove() path
    mtd: rawnand: oxnas: Unregister all devices on error
    mtd: rawnand: oxnas: Keep track of registered devices
    mtd: rawnand: brcmnand: fix CS0 layout
    mtd: rawnand: timings: Fix default tR_max and tCCS_min timings
    mtd: rawnand: marvell: Fix probe error path
    mtd: rawnand: marvell: Use nand_cleanup() when the device is not yet registered
  * soc: qcom: rpmh-rsc: Allow using free WAKE TCS for active request
      drivers/soc/qcom/rpmh-rsc.c
  * soc: qcom: rpmh-rsc: Clear active mode configuration for wake TCS
      drivers/soc/qcom/rpmh-rsc.c
  * soc: qcom: rpmh: Invalidate SLEEP and WAKE TCSes before flushing new data
      drivers/soc/qcom/rpmh.c
  * soc: qcom: rpmh: Update dirty flag only when data changes
      drivers/soc/qcom/rpmh.c
    perf stat: Zero all the 'ena' and 'run' array slot stats for interval mode
    apparmor: ensure that dfa state tables have entries
    copy_xstate_to_kernel: Fix typo which caused GDB regression
  * regmap: debugfs: Don't sleep while atomic for fast_io regmaps
      drivers/base/regmap/regmap-debugfs.c
    ARM: dts: socfpga: Align L2 cache-controller nodename with dtschema
    Revert "thermal: mediatek: fix register index error"
    staging: comedi: verify array index is correct before using it
    usb: gadget: udc: atmel: fix uninitialized read in debug printk
    spi: spi-sun6i: sun6i_spi_transfer_one(): fix setting of clock rate
    arm64: dts: meson: add missing gxl rng clock
    phy: sun4i-usb: fix dereference of pointer phy0 before it is null checked
    iio:health:afe4404 Fix timestamp alignment and prevent data leak.
  * ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Flight S
      sound/usb/quirks.c
    ACPI: video: Use native backlight on Acer TravelMate 5735Z
    Input: mms114 - add extra compatible for mms345l
  * ALSA: usb-audio: Add registration quirk for Kingston HyperX Cloud Alpha S
      sound/usb/quirks.c
    ACPI: video: Use native backlight on Acer Aspire 5783z
  * ALSA: usb-audio: Rewrite registration quirk handling
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/quirks.h
    mmc: sdhci: do not enable card detect interrupt for gpio cd type
    doc: dt: bindings: usb: dwc3: Update entries for disabling SS instances in park mode
  * ALSA: usb-audio: Create a registration quirk for Kingston HyperX Amp (0951:16d8)
      sound/usb/card.c
      sound/usb/quirks.c
      sound/usb/quirks.h
  * scsi: sr: remove references to BLK_DEV_SR_VENDOR, leave it enabled
      drivers/scsi/Kconfig
    ARM: at91: pm: add quirk for sam9x60's ulp1
  * HID: quirks: Remove ITE 8595 entry from hid_have_special_driver
      drivers/hid/hid-quirks.c
    net: sfp: add some quirks for GPON modules
    net: sfp: add support for module quirks
  * Revert "usb/ehci-platform: Set PM runtime as active on resume"
      drivers/usb/host/ehci-platform.c
  * Revert "usb/xhci-plat: Set PM runtime as active on resume"
      drivers/usb/host/xhci-plat.c
  * Revert "usb/ohci-platform: Fix a warning when hibernating"
      drivers/usb/host/ohci-platform.c
  * of: of_mdio: Correct loop scanning logic
      drivers/of/of_mdio.c
    net: dsa: bcm_sf2: Fix node reference count
    spi: spi-fsl-dspi: Fix lockup if device is shutdown during SPI transfer
    spi: fix initial SPI_SR value in spi-fsl-dspi
    iio:health:afe4403 Fix timestamp alignment and prevent data leak.
    iio:pressure:ms5611 Fix buffer element alignment
    iio:humidity:hts221 Fix alignment and data leak issues
    iio: pressure: zpa2326: handle pm_runtime_get_sync failure
    iio: mma8452: Add missed iio_device_unregister() call in mma8452_probe()
    iio: magnetometer: ak8974: Fix runtime PM imbalance on error
    iio:humidity:hdc100x Fix alignment and data leak issues
    iio:magnetometer:ak8974: Fix alignment and data leak issues
  * arm64/alternatives: don't patch up internal branches
      arch/arm64/kernel/alternative.c
    i2c: eg20t: Load module automatically if ID matches
    gfs2: read-only mounts should grab the sd_freeze_gl glock
    tpm_tis: extra chip->ops check on error path in tpm_tis_core_init
  * arm64/alternatives: use subsections for replacement sequences
      arch/arm64/include/asm/alternative.h
      arch/arm64/kernel/vmlinux.lds.S
    m68k: mm: fix node memblock init
    m68k: nommu: register start of the memory with memblock
    drm/exynos: fix ref count leak in mic_pre_enable
    drm/msm: fix potential memleak in error branch
  * vlan: consolidate VLAN parsing code and limit max parsing depth
      include/linux/if_vlan.h
  * sched: consistently handle layer3 header accesses in the presence of VLANs
      include/linux/if_vlan.h
      include/net/inet_ecn.h
      include/net/pkt_sched.h
      net/core/filter.c
      net/sched/act_skbedit.c
      net/sched/cls_api.c
      net/sched/cls_flow.c
      net/sched/em_meta.c
  * cgroup: Fix sock_cgroup_data on big-endian.
      include/linux/cgroup-defs.h
  * cgroup: fix cgroup_sk_alloc() for sk_clone_lock()
      include/linux/cgroup-defs.h
      include/linux/cgroup.h
      kernel/cgroup/cgroup.c
      net/core/sock.c
  * tcp: md5: allow changing MD5 keys in all socket states
      net/ipv4/tcp.c
  * tcp: md5: refine tcp_md5_do_add()/tcp_md5_hash_key() barriers
      net/ipv4/tcp.c
      net/ipv4/tcp_ipv4.c
  * tcp: md5: do not send silly options in SYNCOOKIES
      net/ipv4/tcp_output.c
  * tcp: md5: add missing memory barriers in tcp_md5_do_add()/tcp_md5_hash_key()
      net/ipv4/tcp.c
      net/ipv4/tcp_ipv4.c
  * tcp: make sure listeners don't initialize congestion-control state
      net/ipv4/tcp.c
      net/ipv4/tcp_cong.c
  * tcp: fix SO_RCVLOWAT possible hangs under high mem pressure
      net/ipv4/tcp_input.c
    net: usb: qmi_wwan: add support for Quectel EG95 LTE modem
    net_sched: fix a memory leak in atm_tc_init()
  * net: Added pointer check for dst->ops->neigh_lookup in dst_neigh_lookup_skb
      include/net/dst.h
    llc: make sure applications use ARPHRD_ETHER
  * l2tp: remove skb_dst_set() from l2tp_xmit_skb()
      net/l2tp/l2tp_core.c
  * ipv4: fill fl4_icmp_{type,code} in ping_v4_sendmsg
      net/ipv4/ping.c
  * genetlink: remove genl_bind
      include/net/genetlink.h
      net/netlink/genetlink.c
  * net: rmnet: fix lower interface leak
      drivers/net/ethernet/qualcomm/rmnet/rmnet_config.c
    perf: Make perf able to build with latest libbfd
  * UPSTREAM: media: v4l2-ctrl: Add H264 profile and levels
      drivers/media/v4l2-core/v4l2-ctrls.c
      include/uapi/linux/v4l2-controls.h
  * UPSTREAM: media: v4l2-ctrl: Add control for h.264 chroma qp offset
      drivers/media/v4l2-core/v4l2-ctrls.c
      include/uapi/linux/v4l2-controls.h
  * ANDROID: GKI: ASoC: compress: revert some code to avoid race condition
      sound/core/compress_offload.c
    ANDROID: GKI: Update the ABI xml representation.
  * ANDROID: GKI: kernel: tick-sched: Add an API for wakeup callbacks
      include/linux/tick.h
      kernel/time/tick-sched.c
  * ANDROID: ASoC: Compress: Check and set pcm_new driver op
      sound/soc/soc-compress.c
    Revert "ANDROID: GKI: arm64: gki_defconfig: Disable CONFIG_ARM64_TAGGED_ADDR_ABI"
    ANDROID: arm64: configs: enabe CONFIG_TMPFS
  * Revert "ALSA: compress: fix partial_drain completion state"
      include/sound/compress_driver.h
      sound/core/compress_offload.c
    Merge 4.19.133 into android-4.19-stable
    ANDROID: GKI: enable CONFIG_EXT4_FS_POSIX_ACL.
    ANDROID: GKI: set CONFIG_STATIC_USERMODEHELPER_PATH
Linux 4.19.133
    s390/mm: fix huge pte soft dirty copying
    ARC: elf: use right ELF_ARCH
    ARC: entry: fix potential EFA clobber when TIF_SYSCALL_TRACE
  * dm: use noio when sending kobject event
      drivers/md/dm.c
    drm/radeon: fix double free
    btrfs: fix fatal extent_buffer readahead vs releasepage race
    Revert "ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb"
  * bpf: Check correct cred for CAP_SYSLOG in bpf_dump_raw_ok()
      include/linux/filter.h
      kernel/bpf/syscall.c
      net/core/sysctl_net_core.c
    kprobes: Do not expose probe addresses to non-CAP_SYSLOG
  * module: Do not expose section addresses to non-CAP_SYSLOG
      kernel/module.c
  * module: Refactor section attr into bin attribute
      kernel/module.c
  * kernel: module: Use struct_size() helper
      kernel/module.c
  * kallsyms: Refactor kallsyms_show_value() to take cred
      include/linux/filter.h
      include/linux/kallsyms.h
      kernel/kallsyms.c
      kernel/module.c
    KVM: x86: Mark CR4.TSD as being possibly owned by the guest
    KVM: x86: Inject #GP if guest attempts to toggle CR4.LA57 in 64-bit mode
    KVM: x86: bit 8 of non-leaf PDPEs is not reserved
    KVM: arm64: Stop clobbering x0 for HVC_SOFT_RESTART
  * KVM: arm64: Fix definition of PAGE_HYP_DEVICE
      arch/arm64/include/asm/pgtable-prot.h
  * ALSA: usb-audio: add quirk for MacroSilicon MS2109
      sound/usb/quirks-table.h
    ALSA: hda - let hs_mic be picked ahead of hp_mic
    ALSA: opl3: fix infoleak in opl3
    mlxsw: spectrum_router: Remove inappropriate usage of WARN_ON()
    net: macb: mark device wake capable when "magic-packet" property present
    bnxt_en: fix NULL dereference in case SR-IOV configuration fails
    cxgb4: fix all-mask IP address comparison
    nbd: Fix memory leak in nbd_add_socket
    arm64: kgdb: Fix single-step exception handling oops
  * ALSA: compress: fix partial_drain completion state
      include/sound/compress_driver.h
      sound/core/compress_offload.c
    net: hns3: fix use-after-free when doing self test
    smsc95xx: avoid memory leak in smsc95xx_bind
    smsc95xx: check return value of smsc95xx_reset
    net: cxgb4: fix return error value in t4_prep_fw
    drm/mediatek: Check plane visibility in atomic_update
  * net: qrtr: Fix an out of bounds read qrtr_endpoint_post()
      net/qrtr/qrtr.c
    x86/entry: Increase entry_stack size to a full page
    nvme-rdma: assign completion vector correctly
    block: release bip in a right way in error path
    usb: dwc3: pci: Fix reference count leak in dwc3_pci_resume_work
    scsi: mptscsih: Fix read sense data size
    ARM: imx6: add missing put_device() call in imx6q_suspend_init()
    cifs: update ctime and mtime during truncate
    s390/kasan: fix early pgm check handler execution
  * drm: panel-orientation-quirks: Use generic orientation-data for Acer S1003
      drivers/gpu/drm/drm_panel_orientation_quirks.c
  * drm: panel-orientation-quirks: Add quirk for Asus T101HA panel
      drivers/gpu/drm/drm_panel_orientation_quirks.c
    i40e: protect ring accesses with READ- and WRITE_ONCE
    ixgbe: protect ring accesses with READ- and WRITE_ONCE
  * spi: spidev: fix a potential use-after-free in spidev_release()
      drivers/spi/spidev.c
  * spi: spidev: fix a race between spidev_release and spidev_remove
      drivers/spi/spidev.c
    gpu: host1x: Detach driver on unregister
    drm/tegra: hub: Do not enable orphaned window group
    ARM: dts: omap4-droid4: Fix spi configuration and increase rate
  * regmap: fix alignment issue
      drivers/base/regmap/regmap.c
    spi: spi-fsl-dspi: Fix external abort on interrupt in resume or exit paths
    spi: spi-fsl-dspi: use IRQF_SHARED mode to request IRQ
    spi: spi-fsl-dspi: Fix lockup if device is removed during SPI transfer
    spi: spi-fsl-dspi: Adding shutdown hook
    KVM: s390: reduce number of IO pins to 1
    ANDROID: GKI: update abi based on padding fields being added
  * ANDROID: GKI: USB: Gadget: add Android ABI padding to struct usb_gadget
      include/linux/usb/gadget.h
  * ANDROID: GKI: sound/usb/card.h: add Android ABI padding to struct snd_usb_endpoint
      sound/usb/card.h
  * ANDROID: fscrypt: fix DUN contiguity with inline encryption + IV_INO_LBLK_32 policies
      fs/crypto/bio.c
      fs/crypto/inline_crypt.c
  * ANDROID: f2fs: add back compress inode check
      fs/f2fs/f2fs.h
    Merge 4.19.132 into android-4.19-stable
Linux 4.19.132
  * efi: Make it possible to disable efivar_ssdt entirely
      drivers/firmware/efi/Kconfig
    dm zoned: assign max_io_len correctly
  * irqchip/gic: Atomically update affinity
      drivers/irqchip/irq-gic.c
    MIPS: Add missing EHB in mtc0 -> mfc0 sequence for DSPen
    cifs: Fix the target file was deleted when rename failed.
    SMB3: Honor lease disabling for multiuser mounts
    SMB3: Honor persistent/resilient handle flags for multiuser mounts
    SMB3: Honor 'seal' flag for multiuser mounts
  * Revert "ALSA: usb-audio: Improve frames size computation"
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    nfsd: apply umask on fs without ACL support
    i2c: mlxcpld: check correct size of maximum RECV_LEN packet
    i2c: algo-pca: Add 0x78 as SCL stuck low status for PCA9665
    nvme: fix a crash in nvme_mpath_add_disk
    SMB3: Honor 'posix' flag for multiuser mounts
    virtio-blk: free vblk-vqs in error path of virtblk_probe()
    drm: sun4i: hdmi: Remove extra HPD polling
    hwmon: (acpi_power_meter) Fix potential memory leak in acpi_power_meter_add()
    hwmon: (max6697) Make sure the OVERT mask is set correctly
    cxgb4: fix SGE queue dump destination buffer context
    cxgb4: use correct type for all-mask IP address comparison
    cxgb4: parse TC-U32 key values and masks natively
    cxgb4: use unaligned conversion for fetching timestamp
    drm/msm/dpu: fix error return code in dpu_encoder_init
  * crypto: af_alg - fix use-after-free in af_alg_accept() due to bh_lock_sock()
      include/crypto/if_alg.h
    kgdb: Avoid suspicious RCU usage warning
    nvme-multipath: fix deadlock between ana_work and scan_work
    nvme-multipath: set bdi capabilities once
    s390/debug: avoid kernel warning on too large number of pages
    usb: usbtest: fix missing kfree(dev->buf) in usbtest_disconnect
  * mm/slub: fix stack overruns with SLUB_STATS
      mm/slub.c
  * mm/slub.c: fix corrupted freechain in deactivate_slab()
      mm/slub.c
    usbnet: smsc95xx: Fix use-after-free after removal
    EDAC/amd64: Read back the scrub rate PCI register on F15h
  * mm: fix swap cache node allocation mask
      mm/swap_state.c
    btrfs: fix a block group ref counter leak after failure to remove block group
    ANDROID: Update ABI representation for libabigail update
    ANDROID: Update the ABI representation
    ANDROID: Update the ABI xml representation
  * ANDROID: GKI: fix ABI diffs caused by GPU heap and pool vmstat additions
      include/linux/mmzone.h
      mm/vmstat.c
  * ANDROID: sched: consider stune boost margin when computing energy
      kernel/sched/cpufreq_schedutil.c
      kernel/sched/fair.c
      kernel/sched/sched.h
      kernel/sched/tune.c
      kernel/sched/tune.h
    ANDROID: GKI: move abi files to android/
    ANDROID: GKI: drop unneeded "_whitelist" off of symbol filenames
  * UPSTREAM: binder: fix null deref of proc->context
      drivers/android/binder.c
  * ANDROID: cpufreq: schedutil: maintain raw cache when next_f is not changed
      kernel/sched/cpufreq_schedutil.c
  * UPSTREAM: net: bpf: Make bpf_ktime_get_ns() available to non GPL programs
      kernel/bpf/helpers.c
    UPSTREAM: usb: musb: mediatek: add reset FADDR to zero in reset interrupt handle
  * ANDROID: GKI: scripts: Makefile: update the lz4 command (#2)
      scripts/Makefile.lib
    ANDROID: Update the ABI xml representation
  * Revert "drm/dsi: Fix byte order of DCS set/get brightness"
      drivers/gpu/drm/drm_mipi_dsi.c
      include/drm/drm_mipi_dsi.h
    Merge 4.19.131 into android-4.19-stable
Linux 4.19.131
    Revert "tty: hvc: Fix data abort due to race in hvc_open"
    xfs: add agf freeblocks verify in xfs_agf_verify
    dm writecache: add cond_resched to loop in persistent_memory_claim()
    dm writecache: correct uncommitted_block when discarding uncommitted entry
    NFSv4 fix CLOSE not waiting for direct IO compeletion
    pNFS/flexfiles: Fix list corruption if the mirror count changes
    SUNRPC: Properly set the @subbuf parameter of xdr_buf_subsegment()
    sunrpc: fixed rollback in rpc_gssd_dummy_populate()
    Staging: rtl8723bs: prevent buffer overflow in update_sta_support_rate()
    drm/radeon: fix fb_div check in ni_init_smc_spll_table()
  * drm: rcar-du: Fix build error
      drivers/gpu/drm/rcar-du/Kconfig
  * ring-buffer: Zero out time extend if it is nested and not absolute
      kernel/trace/ring_buffer.c
  * tracing: Fix event trigger to accept redundant spaces
      kernel/trace/trace_events_trigger.c
  * arm64: perf: Report the PC value in REGS_ABI_32 mode
      arch/arm64/kernel/perf_regs.c
    ocfs2: fix panic on nfs server over ocfs2
    ocfs2: fix value of OCFS2_INVALID_SLOT
    ocfs2: load global_inode_alloc
    ocfs2: avoid inode removal while nfsd is accessing it
  * mm/slab: use memzero_explicit() in kzfree()
      mm/slab_common.c
    btrfs: fix failure of RWF_NOWAIT write into prealloc extent beyond eof
    btrfs: fix data block group relocation failure due to concurrent scrub
    x86/asm/64: Align start of __clear_user() loop to 16-bytes
    KVM: nVMX: Plumb L2 GPA through to PML emulation
    KVM: X86: Fix MSR range of APIC registers in X2APIC mode
    erofs: fix partially uninitialized misuse in z_erofs_onlinepage_fixup
    ACPI: sysfs: Fix pm_profile_attr type
    ALSA: hda/realtek - Add quirk for MSI GE63 laptop
    ALSA: hda: Add NVIDIA codec IDs 9a & 9d through a0 to patch table
    RISC-V: Don't allow write+exec only page mapping request in mmap
  * blktrace: break out of blktrace setup on concurrent calls
      kernel/trace/blktrace.c
  * kbuild: improve cc-option to clean up all temporary files
      scripts/Kbuild.include
  * arm64: sve: Fix build failure when ARM64_SVE=y and SYSCTL=n
      arch/arm64/kernel/fpsimd.c
    s390/vdso: fix vDSO clock_getres()
    s390/ptrace: fix setting syscall number
    net: alx: fix race condition in alx_remove
    ibmvnic: Harden device login requests
    hwrng: ks-sa - Fix runtime PM imbalance on error
    riscv/atomic: Fix sign extension for RV64I
    drm/amd/display: Use kfree() to free rgb_user in calculate_user_regamma_ramp()
    ata/libata: Fix usage of page address by page_address in ata_scsi_mode_select_xlat function
    sata_rcar: handle pm_runtime_get_sync failure cases
  * sched/core: Fix PI boosting between RT and DEADLINE tasks
      kernel/sched/core.c
  * sched/deadline: Initialize ->dl_boosted
      kernel/sched/deadline.c
  * i2c: core: check returned size of emulated smbus block read
      drivers/i2c/i2c-core-smbus.c
    i2c: fsi: Fix the port number field in status register
    net: bcmgenet: use hardware padding of runt frames
    netfilter: ipset: fix unaligned atomic access
    usb: gadget: udc: Potential Oops in error handling code
    ARM: imx5: add missing put_device() call in imx_suspend_alloc_ocram()
    cxgb4: move handling L2T ARP failures to caller
    net: qed: fix excessive QM ILT lines consumption
    net: qed: fix NVMe login fails over VFs
  * net: qed: fix left elements count calculation
      include/linux/qed/qed_chain.h
    RDMA/mad: Fix possible memory leak in ib_mad_post_receive_mads()
    ASoC: rockchip: Fix a reference count leak.
    RDMA/cma: Protect bind_list and listen_list while finding matching cm id
    RDMA/qedr: Fix KASAN: use-after-free in ucma_event_handler+0x532
    rxrpc: Fix handling of rwind from an ACK packet
    ARM: dts: NSP: Correct FA2 mailbox node
  * regmap: Fix memory leak from regmap_register_patch
      drivers/base/regmap/regmap.c
    x86/resctrl: Fix a NULL vs IS_ERR() static checker warning in rdt_cdp_peer_get()
    ARM: dts: Fix duovero smsc interrupt for suspend
    ASoC: fsl_ssi: Fix bclk calculation for mono channel
    regualtor: pfuze100: correct sw1a/sw2 on pfuze3000
    efi/esrt: Fix reference count leak in esre_create_sysfs_entry.
    ASoC: q6asm: handle EOS correctly
  * xfrm: Fix double ESP trailer insertion in IPsec crypto offload.
      include/net/xfrm.h
      net/xfrm/xfrm_device.c
    cifs/smb3: Fix data inconsistent when zero file range
    cifs/smb3: Fix data inconsistent when punch hole
    IB/mad: Fix use after free when destroying MAD agent
  * loop: replace kill_bdev with invalidate_bdev
      drivers/block/loop.c
    cdc-acm: Add DISABLE_ECHO quirk for Microchip/SMSC chip
  * xhci: Return if xHCI doesn't support LPM
      drivers/usb/host/xhci.c
  * xhci: Fix enumeration issue when setting max packet size for FS devices.
      drivers/usb/host/xhci.c
  * xhci: Fix incorrect EP_STATE_MASK
      drivers/usb/host/xhci.h
    scsi: zfcp: Fix panic on ERP timeout for previously dismissed ERP action
  * ALSA: usb-audio: Fix OOB access of mixer element list
      sound/usb/mixer.c
      sound/usb/mixer.h
      sound/usb/mixer_quirks.c
  * ALSA: usb-audio: add quirk for Samsung USBC Headset (AKG)
      sound/usb/quirks.c
  * ALSA: usb-audio: add quirk for Denon DCD-1500RE
      sound/usb/quirks.c
    usb: typec: tcpci_rt1711h: avoid screaming irq causing boot hangs
    usb: host: ehci-exynos: Fix error check in exynos_ehci_probe()
  * xhci: Poll for U0 after disabling USB2 LPM
      drivers/usb/host/xhci.c
    usb: host: xhci-mtk: avoid runtime suspend when removing hcd
  * USB: ehci: reopen solution for Synopsys HC bug
      drivers/usb/host/ehci-pci.c
  * usb: add USB_QUIRK_DELAY_INIT for Logitech C922
      drivers/usb/core/quirks.c
    usb: dwc2: Postponed gadget registration to the udc class driver
    USB: ohci-sm501: Add missed iounmap() in remove
  * net: core: reduce recursion limit value
      include/linux/netdevice.h
  * net: Do not clear the sock TX queue in sk_set_socket()
      include/net/sock.h
      net/core/sock.c
  * net: Fix the arp error in some cases
      net/ipv4/fib_semantics.c
    sch_cake: don't call diffserv parsing code when it is not needed
  * tcp_cubic: fix spurious HYSTART_DELAY exit upon drop in min RTT
      net/ipv4/tcp_cubic.c
    sch_cake: fix a few style nits
    sch_cake: don't try to reallocate or unshare skb unconditionally
  * ip_tunnel: fix use-after-free in ip_tunnel_lookup()
      net/ipv4/ip_tunnel.c
  * net: phy: Check harder for errors in get_phy_id()
      drivers/net/phy/phy_device.c
    ip6_gre: fix use-after-free in ip6gre_tunnel_lookup()
    tg3: driver sleeps indefinitely when EEH errors exceed eeh_max_freezes
  * tcp: grow window for OOO packets only for SACK flows
      net/ipv4/tcp_input.c
  * tcp: don't ignore ECN CWR on pure ACK
      net/ipv4/tcp_input.c
  * sctp: Don't advertise IPv4 addresses if ipv6only is set on the socket
      include/net/sctp/constants.h
      net/sctp/associola.c
      net/sctp/bind_addr.c
      net/sctp/protocol.c
    rxrpc: Fix notification call on completion of discarded calls
    rocker: fix incorrect error handling in dma_rings_init
  * net: usb: ax88179_178a: fix packet alignment padding
      drivers/net/usb/ax88179_178a.c
  * net: increment xmit_recursion level in dev_direct_xmit()
      net/core/dev.c
      net/core/sock.c
  * net: use correct this_cpu primitive in dev_recursion_level
      include/linux/netdevice.h
  * net: place xmit recursion in softnet data
      include/linux/netdevice.h
      net/core/dev.c
      net/core/filter.c
  * net: fix memleak in register_netdevice()
      net/core/dev.c
  * net: bridge: enfore alignment for ethernet address
      net/bridge/br_private.h
  * mld: fix memory leak in ipv6_mc_destroy_dev()
      net/ipv6/mcast.c
    ibmveth: Fix max MTU limit
    apparmor: don't try to replace stale label in ptraceme check
    ALSA: hda/realtek - Enable micmute LED on and HP system
    ALSA: hda/realtek: Enable mute LED on an HP system
    ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
    fix a braino in "sparc32: fix register window handling in genregs32_[gs]et()"
    i2c: tegra: Fix Maximum transfer size
    i2c: tegra: Add missing kerneldoc for some fields
    i2c: tegra: Cleanup kerneldoc comments
    EDAC/amd64: Add Family 17h Model 30h PCI IDs
  * net: sched: export __netdev_watchdog_up()
      net/sched/sch_generic.c
    net: bcmgenet: remove HFB_CTRL access
    mtd: rawnand: marvell: Fix the condition on a return code
    fanotify: fix ignore mask logic for events on child and on dir
    block/bio-integrity: don't free 'buf' if bio_integrity_add_page() failed
  * net: be more gentle about silly gso requests coming from user
      include/linux/virtio_net.h
  * ANDROID: lib/vdso: do not update timespec if clock_getres() fails
      lib/vdso/gettimeofday.c
  * Revert "ANDROID: fscrypt: add key removal notifier chain"
      fs/crypto/keyring.c
      include/linux/fscrypt.h
    ANDROID: update the ABI xml and qcom whitelist
  * ANDROID: fs: export vfs_{read|write}
      fs/read_write.c
    ANDROID: GKI: update abi definitions now that sdcardfs is gone
  * Revert "ANDROID: sdcardfs: Enable modular sdcardfs"
      fs/fs_struct.c
      fs/read_write.c
      security/security.c
  * Revert "ANDROID: vfs: Add setattr2 for filesystems with per mount permissions"
      fs/attr.c
      fs/coredump.c
      fs/inode.c
      fs/namei.c
      fs/open.c
      fs/utimes.c
      include/linux/fs.h
  * Revert "ANDROID: vfs: fix export symbol type"
      fs/attr.c
  * Revert "ANDROID: vfs: Add permission2 for filesystems with per mount permissions"
      fs/attr.c
      fs/exec.c
      fs/namei.c
      fs/notify/inotify/inotify_user.c
      fs/open.c
      fs/xattr.c
      include/linux/fs.h
      include/linux/namei.h
  * Revert "ANDROID: vfs: fix export symbol types"
      fs/namei.c
  * Revert "ANDROID: vfs: add d_canonical_path for stacked filesystem support"
      fs/notify/inotify/inotify_user.c
      include/linux/dcache.h
      include/linux/fsnotify.h
  * Revert "ANDROID: fs: Restore vfs_path_lookup() export"
      fs/internal.h
      include/linux/namei.h
  * ANDROID: sdcardfs: remove sdcardfs from system
      fs/Kconfig
      fs/Makefile
  * Revert "ALSA: usb-audio: Improve frames size computation"
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    Merge 4.19.130 into android-4.19-stable
  * ANDROID: Makefile: append BUILD_NUMBER to version string when defined
      Makefile
    ANDROID: GKI: Update ABI for incremental fs
    ANDROID: GKI: Update cuttlefish whitelist
    ANDROID: GKI: Disable INCREMENTAL_FS on x86 too
  * ANDROID: cpufreq: schedutil: drop cache when update skipped due to rate limit
      kernel/sched/cpufreq_schedutil.c
Linux 4.19.130
    KVM: x86/mmu: Set mmio_value to '0' if reserved #PF can't be generated
    kvm: x86: Fix reserved bits related calculation errors caused by MKTME
    kvm: x86: Move kvm_set_mmio_spte_mask() from x86.c to mmu.c
  * md: add feature flag MD_FEATURE_RAID0_LAYOUT
      include/uapi/linux/raid/md_p.h
    Revert "dpaa_eth: fix usage as DSA master, try 3"
  * net: core: device_rename: Use rwsem instead of a seqcount
      net/core/dev.c
  * sched/rt, net: Use CONFIG_PREEMPTION.patch
      net/core/dev.c
  * kretprobe: Prevent triggering kretprobe from within kprobe_flush_task
      include/linux/kprobes.h
    net: octeon: mgmt: Repair filling of RX ring
    e1000e: Do not wake up the system via WOL if device wakeup is disabled
    kprobes: Fix to protect kick_kprobe_optimizer() by kprobe_mutex
  * crypto: algboss - don't wait during notifier callback
      crypto/algboss.c
    crypto: algif_skcipher - Cap recv SG list at ctx->used
    drm/i915/icl+: Fix hotplug interrupt disabling after storm detection
    drm/i915: Whitelist context-local timestamp in the gen9 cmdparser
    s390: fix syscall_get_error for compat processes
    mtd: rawnand: tmio: Fix the probe error path
    mtd: rawnand: mtk: Fix the probe error path
    mtd: rawnand: plat_nand: Fix the probe error path
    mtd: rawnand: socrates: Fix the probe error path
    mtd: rawnand: oxnas: Fix the probe error path
    mtd: rawnand: oxnas: Add of_node_put()
    mtd: rawnand: orion: Fix the probe error path
    mtd: rawnand: xway: Fix the probe error path
    mtd: rawnand: sharpsl: Fix the probe error path
    mtd: rawnand: diskonchip: Fix the probe error path
  * mtd: rawnand: Pass a nand_chip object to nand_release()
      include/linux/mtd/rawnand.h
  * mtd: rawnand: Pass a nand_chip object to nand_scan()
      include/linux/mtd/rawnand.h
  * block: nr_sects_write(): Disable preemption on seqcount write
      include/linux/genhd.h
    x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
  * drm/dp_mst: Increase ACT retry timeout to 3s
      drivers/gpu/drm/drm_dp_mst_topology.c
  * ext4: avoid race conditions when remounting with options that change dax
      fs/ext4/super.c
  * ext4: fix partial cluster initialization when splitting extent
      fs/ext4/extents.c
  * selinux: fix double free
      security/selinux/ss/services.c
    drm/amdgpu: Replace invalid device ID with a valid device ID
    drm/qxl: Use correct notify port address when creating cursor ring
  * drm/dp_mst: Reformat drm_dp_check_act_status() a bit
      drivers/gpu/drm/drm_dp_mst_topology.c
  * drm: encoder_slave: fix refcouting error for modules
      drivers/gpu/drm/drm_encoder_slave.c
  * libata: Use per port sync for detach
      include/linux/libata.h
  * arm64: hw_breakpoint: Don't invoke overflow handler on uaccess watchpoints
      arch/arm64/kernel/hw_breakpoint.c
  * block: Fix use-after-free in blkdev_get()
      fs/block_dev.c
    afs: afs_write_end() should change i_size under the right lock
    afs: Fix non-setting of mtime when writing into mmap
    bcache: fix potential deadlock problem in btree_gc_coalesce
  * ext4: stop overwrite the errcode in ext4_setup_super
      fs/ext4/super.c
    perf report: Fix NULL pointer dereference in hists__fprintf_nr_sample_events()
  * usb/ehci-platform: Set PM runtime as active on resume
      drivers/usb/host/ehci-platform.c
  * usb: host: ehci-platform: add a quirk to avoid stuck
      drivers/usb/host/ehci-platform.c
      include/linux/usb/ehci_def.h
  * usb/xhci-plat: Set PM runtime as active on resume
      drivers/usb/host/xhci-plat.c
    xdp: Fix xsk_generic_xmit errno
  * net/filter: Permit reading NET in load_bytes_relative when MAC not set
      net/core/filter.c
    x86/idt: Keep spurious entries unset in system_vectors
    scsi: acornscsi: Fix an error handling path in acornscsi_probe()
    drm/sun4i: hdmi ddc clk: Fix size of m divider
    ASoC: rt5645: Add platform-data for Asus T101HA
    ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT10-A tablet
  * ASoC: core: only convert non DPCM link to DPCM link
      sound/soc/soc-core.c
    afs: Fix memory leak in afs_put_sysnames()
    selftests/net: in timestamping, strncpy needs to preserve null byte
    drivers/perf: hisi: Fix wrong value for all counters enable
    NTB: ntb_test: Fix bug when counting remote files
    NTB: perf: Fix race condition when run with ntb_test
    NTB: perf: Fix support for hardware that doesn't have port numbers
    NTB: perf: Don't require one more memory window than number of peers
    NTB: Revert the change to use the NTB device dev for DMA allocations
    NTB: ntb_tool: reading the link file should not end in a NULL byte
    ntb_tool: pass correct struct device to dma_alloc_coherent
    ntb_perf: pass correct struct device to dma_alloc_coherent
    gfs2: fix use-after-free on transaction ail lists
  * blktrace: fix endianness for blk_log_remap()
      kernel/trace/blktrace.c
  * blktrace: fix endianness in get_pdu_int()
      kernel/trace/blktrace.c
  * blktrace: use errno instead of bi_status
      kernel/trace/blktrace.c
    selftests/vm/pkeys: fix alloc_random_pkey() to make it really random
  * elfnote: mark all .note sections SHF_ALLOC
      include/linux/elfnote.h
  * include/linux/bitops.h: avoid clang shift-count-overflow warnings
      include/linux/bitops.h
  * lib/zlib: remove outdated and incorrect pre-increment optimization
      lib/zlib_inflate/inffast.c
    geneve: change from tx_error to tx_dropped on missing metadata
    crypto: omap-sham - add proper load balancing support for multicore
    pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()'
    pinctrl: imxl: Fix an error handling path in 'imx1_pinctrl_core_probe()'
  * scsi: ufs: Don't update urgent bkops level when toggling auto bkops
      drivers/scsi/ufs/ufshcd.c
    scsi: iscsi: Fix reference count leak in iscsi_boot_create_kobj
    gfs2: Allow lock_nolock mount to specify jid=X
    openrisc: Fix issue with argument clobbering for clone/fork
    rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID
    vfio/mdev: Fix reference count leak in add_mdev_supported_type
    ASoC: fsl_asrc_dma: Fix dma_chan leak when config DMA channel failed
    extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()'
    powerpc/4xx: Don't unmap NULL mbase
  * of: Fix a refcounting bug in __of_attach_node_sysfs()
      drivers/of/kobj.c
    NFSv4.1 fix rpc_call_done assignment for BIND_CONN_TO_SESSION
    net: sunrpc: Fix off-by-one issues in 'rpc_ntop6'
    clk: sprd: return correct type of value for _sprd_pll_recalc_rate
    KVM: PPC: Book3S HV: Ignore kmemleak false positives
  * scsi: ufs-qcom: Fix scheduling while atomic issue
      drivers/scsi/ufs/ufs-qcom.c
    clk: bcm2835: Fix return type of bcm2835_register_gate
    scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd()
    ASoC: fix incomplete error-handling in img_i2s_in_probe.
    x86/apic: Make TSC deadline timer detection message visible
    RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove
  * usb: gadget: Fix issue with config_ep_by_speed function
      drivers/usb/gadget/composite.c
      include/linux/usb/composite.h
    usb: gadget: fix potential double-free in m66592_probe.
    usb: gadget: lpc32xx_udc: don't dereference ep pointer before null check
    USB: gadget: udc: s3c2410_udc: Remove pointless NULL check in s3c2410_udc_nuke
    usb: dwc2: gadget: move gadget resume after the core is in L0 state
    watchdog: da9062: No need to ping manually before setting timeout
    IB/cma: Fix ports memory leak in cma_configfs
    PCI: dwc: Fix inner MSI IRQ domain registration
    PCI/PTM: Inherit Switch Downstream Port PTM settings from Upstream Port
    dm zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a zone
    powerpc/64s/pgtable: fix an undefined behaviour
    arm64: tegra: Fix ethernet phy-mode for Jetson Xavier
    scsi: target: tcmu: Userspace must not complete queued commands
    clk: samsung: exynos5433: Add IGNORE_UNUSED flag to sclk_i2s1
    fpga: dfl: afu: Corrected error handling levels
    tty: n_gsm: Fix bogus i++ in gsm_data_kick
    USB: host: ehci-mxc: Add error handling in ehci_mxc_drv_probe()
    ASoC: Intel: bytcr_rt5640: Add quirk for Toshiba Encore WT8-A tablet
    drm/msm/mdp5: Fix mdp5_init error path for failed mdp5_kms allocation
  * usb/ohci-platform: Fix a warning when hibernating
      drivers/usb/host/ohci-platform.c
    vfio-pci: Mask cap zero
    powerpc/ps3: Fix kexec shutdown hang
    powerpc/pseries/ras: Fix FWNMI_VALID off by one
    ipmi: use vzalloc instead of kmalloc for user creation
  * HID: Add quirks for Trust Panora Graphic Tablet
      drivers/hid/hid-ids.h
      drivers/hid/hid-quirks.c
    tty: n_gsm: Fix waking up upper tty layer when room available
    tty: n_gsm: Fix SOF skipping
    powerpc/64: Don't initialise init_task->thread.regs
  * PCI: Fix pci_register_host_bridge() device_register() error handling
      drivers/pci/probe.c
    clk: ti: composite: fix memory leak
    dlm: remove BUG() before panic()
    pinctrl: rockchip: fix memleak in rockchip_dt_node_to_map
    scsi: mpt3sas: Fix double free warnings
    power: supply: smb347-charger: IRQSTAT_D is volatile
    power: supply: lp8788: Fix an error handling path in 'lp8788_charger_probe()'
    scsi: qla2xxx: Fix warning after FC target reset
    PCI/ASPM: Allow ASPM on links to PCIe-to-PCI/PCI-X Bridges
    PCI: rcar: Fix incorrect programming of OB windows
  * drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish
      drivers/base/platform.c
    serial: amba-pl011: Make sure we initialize the port.lock spinlock
    i2c: pxa: fix i2c_pxa_scream_blue_murder() debug output
    PCI: v3-semi: Fix a memory leak in v3_pci_probe() error handling paths
    staging: sm750fb: add missing case while setting FB_VISUAL
  * usb: dwc3: gadget: Properly handle failed kick_transfer
      drivers/usb/dwc3/gadget.c
    thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR
    slimbus: ngd: get drvdata from correct device
    tty: hvc: Fix data abort due to race in hvc_open
    s390/qdio: put thinint indicator after early error
  * ALSA: usb-audio: Fix racy list management in output queue
      sound/usb/endpoint.c
  * ALSA: usb-audio: Improve frames size computation
      sound/usb/card.h
      sound/usb/endpoint.c
      sound/usb/endpoint.h
      sound/usb/pcm.c
    staging: gasket: Fix mapping refcnt leak when register/store fails
    staging: gasket: Fix mapping refcnt leak when put attribute fails
  * firmware: qcom_scm: fix bogous abuse of dma-direct internals
      drivers/firmware/qcom_scm.c
    pinctrl: rza1: Fix wrong array assignment of rza1l_swio_entries
    scsi: qedf: Fix crash when MFW calls for protocol stats while function is still probing
    gpio: dwapb: Append MODULE_ALIAS for platform driver
    ARM: dts: sun8i-h2-plus-bananapi-m2-zero: Fix led polarity
    scsi: qedi: Do not flush offload work if ARP not resolved
    arm64: dts: mt8173: fix unit name warnings
    staging: greybus: fix a missing-check bug in gb_lights_light_config()
    x86/purgatory: Disable various profiling and sanitizing options
    apparmor: fix nnp subset test for unconfined
    scsi: ibmvscsi: Don't send host info in adapter info MAD after LPM
    scsi: sr: Fix sr_probe() missing deallocate of device minor
    ASoC: meson: add missing free_irq() in error path
    apparmor: check/put label on apparmor_sk_clone_security()
    apparmor: fix introspection of of task mode for unconfined tasks
  * mksysmap: Fix the mismatch of '.L' symbols in System.map
      scripts/mksysmap
    NTB: Fix the default port and peer numbers for legacy drivers
    NTB: ntb_pingpong: Choose doorbells based on port number
    yam: fix possible memory leak in yam_init_driver
    pwm: img: Call pm_runtime_put() in pm_runtime_get_sync() failed case
    powerpc/crashkernel: Take "mem=" option into account
    PCI: vmd: Filter resource type bits from shadow register
    nfsd: Fix svc_xprt refcnt leak when setup callback client failed
    powerpc/perf/hv-24x7: Fix inconsistent output values incase multiple hv-24x7 events run
    clk: clk-flexgen: fix clock-critical handling
    scsi: lpfc: Fix lpfc_nodelist leak when processing unsolicited event
    mfd: wm8994: Fix driver operation if loaded as modules
    gpio: dwapb: Call acpi_gpiochip_free_interrupts() on GPIO chip de-registration
    m68k/PCI: Fix a memory leak in an error handling path
    RDMA/mlx5: Add init2init as a modify command
    vfio/pci: fix memory leaks in alloc_perm_bits()
    ps3disk: use the default segment boundary
    PCI: aardvark: Don't blindly enable ASPM L0s and don't write to read-only register
    dm mpath: switch paths in dm_blk_ioctl() code path
    serial: 8250: Fix max baud limit in generic 8250 port
    usblp: poison URBs upon disconnect
    clk: samsung: Mark top ISP and CAM clocks on Exynos542x as critical
    i2c: pxa: clear all master action bits in i2c_pxa_stop_message()
  * f2fs: report delalloc reserve as non-free in statfs for project quota
      fs/f2fs/super.c
    iio: bmp280: fix compensation of humidity
    scsi: qla2xxx: Fix issue with adapter's stopping state
  * PCI: Allow pci_resize_resource() for devices on root bus
      drivers/pci/setup-res.c
    ALSA: isa/wavefront: prevent out of bounds write in ioctl
    ALSA: hda/realtek - Introduce polarity for micmute LED GPIO
    scsi: qedi: Check for buffer overflow in qedi_set_path()
    ARM: integrator: Add some Kconfig selections
    ASoC: davinci-mcasp: Fix dma_chan refcnt leak when getting dma type
    backlight: lp855x: Ensure regulators are disabled on probe failure
    clk: qcom: msm8916: Fix the address location of pll->config_reg
    remoteproc: Fix IDR initialisation in rproc_alloc()
    iio: pressure: bmp280: Tolerate IRQ before registering
    i2c: piix4: Detect secondary SMBus controller on AMD AM4 chipsets
    ASoC: tegra: tegra_wm8903: Support nvidia, headset property
    clk: sunxi: Fix incorrect usage of round_down()
  * power: supply: bq24257_charger: Replace depends on REGMAP_I2C with select
      drivers/power/supply/Kconfig
  * ANDROID: ext4: Optimize match for casefolded encrypted dirs
      fs/ext4/ext4.h
      fs/ext4/namei.c
  * ANDROID: ext4: Handle casefolding with encryption
      fs/ext4/dir.c
      fs/ext4/ext4.h
      fs/ext4/hash.c
      fs/ext4/ialloc.c
      fs/ext4/inline.c
      fs/ext4/namei.c
      fs/ext4/super.c
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
  * ANDROID: extcon: Remove redundant EXPORT_SYMBOL_GPL
      include/linux/extcon.h
    ANDROID: update the ABI xml representation
  * ANDROID: GKI: cfg80211: add ABI changes for CONFIG_NL80211_TESTMODE
      include/net/cfg80211.h
      include/net/mac80211.h
    ANDROID: gki_defconfig: x86: Enable KERNEL_LZ4
  * ANDROID: GKI: scripts: Makefile: update the lz4 command
      scripts/Makefile.lib
  * FROMLIST: f2fs: fix use-after-free when accessing bio->bi_crypt_context
      fs/f2fs/data.c
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
  * UPSTREAM: fdt: Update CRC check for rng-seed
      drivers/of/fdt.c
    ANDROID: GKI: Update ABI for incremental fs
    ANDROID: GKI: Update whitelist and defconfig for incfs
    ANDROID: Use depmod from the hermetic toolchain
    Merge 4.19.129 into android-4.19-stable
Linux 4.19.129
    perf symbols: Fix debuginfo search for Ubuntu
    perf probe: Check address correctness by map instead of _etext
    perf probe: Fix to check blacklist address correctly
    perf probe: Do not show the skipped events
    w1: omap-hdq: cleanup to add missing newline for some dev_dbg
    mtd: rawnand: pasemi: Fix the probe error path
    mtd: rawnand: brcmnand: fix hamming oob layout
  * sunrpc: clean up properly in gss_mech_unregister()
      include/linux/sunrpc/gss_api.h
      include/linux/sunrpc/svcauth_gss.h
    sunrpc: svcauth_gss_register_pseudoflavor must reject duplicate registrations.
  * kbuild: force to build vmlinux if CONFIG_MODVERSION=y
      Makefile
    powerpc/64s: Save FSCR to init_task.thread.fscr after feature init
    powerpc/64s: Don't let DT CPU features set FSCR_DSCR
    drivers/macintosh: Fix memleak in windfarm_pm112 driver
    ARM: dts: s5pv210: Set keep-power-in-suspend for SDHCI1 on Aries
    ARM: dts: at91: sama5d2_ptc_ek: fix vbus pin
    ARM: dts: exynos: Fix GPIO polarity for thr GalaxyS3 CM36651 sensor's bus
    ARM: tegra: Correct PL310 Auxiliary Control Register initialization
  * kernel/cpu_pm: Fix uninitted local in cpu_pm
      kernel/cpu_pm.c
    alpha: fix memory barriers so that they conform to the specification
    dm crypt: avoid truncating the logical block size
    sparc64: fix misuses of access_process_vm() in genregs32_[sg]et()
    sparc32: fix register window handling in genregs32_[gs]et()
    gnss: sirf: fix error return code in sirf_probe()
    pinctrl: samsung: Save/restore eint_mask over suspend for EINT_TYPE GPIOs
    pinctrl: samsung: Correct setting of eint wakeup mask on s5pv210
    power: vexpress: add suppress_bind_attrs to true
    igb: Report speed and duplex as unknown when device is runtime suspended
    media: ov5640: fix use of destroyed mutex
    b43_legacy: Fix connection problem with WPA3
    b43: Fix connection problem with WPA3
    b43legacy: Fix case where channel status is corrupted
    Bluetooth: hci_bcm: fix freeing not-requested IRQ
    media: go7007: fix a miss of snd_card_free
    carl9170: remove P2P_GO support
    e1000e: Relax condition to trigger reset for ME workaround
    e1000e: Disable TSO for buffer overrun workaround
  * PCI: Program MPS for RCiEP devices
      drivers/pci/probe.c
    ima: Call ima_calc_boot_aggregate() in ima_eventdigest_init()
    btrfs: fix wrong file range cleanup after an error filling dealloc range
    btrfs: fix error handling when submitting direct I/O bio
  * PCI: Generalize multi-function power dependency device links
      drivers/pci/quirks.c
  * PCI: Unify ACS quirk desired vs provided checking
      drivers/pci/quirks.c
  * PCI: Make ACS quirk implementations more uniform
      drivers/pci/quirks.c
  * serial: 8250_pci: Move Pericom IDs to pci_ids.h
      include/linux/pci_ids.h
  * PCI: Add Loongson vendor ID
      include/linux/pci_ids.h
  * x86/amd_nb: Add Family 19h PCI IDs
      include/linux/pci_ids.h
  * PCI: vmd: Add device id for VMD device 8086:9A0B
      include/linux/pci_ids.h
  * PCI: Add Amazon's Annapurna Labs vendor ID
      include/linux/pci_ids.h
  * PCI: Add Genesys Logic, Inc. Vendor ID
      include/linux/pci_ids.h
  * ALSA: lx6464es - add support for LX6464ESe pci express variant
      include/linux/pci_ids.h
  * x86/amd_nb: Add PCI device IDs for family 17h, model 70h
      include/linux/pci_ids.h
  * PCI: mediatek: Add controller support for MT7629
      include/linux/pci_ids.h
  * PCI: Enable NVIDIA HDA controllers
      drivers/pci/quirks.c
      include/linux/pci_ids.h
  * PCI: Add NVIDIA GPU multi-function power dependencies
      drivers/pci/quirks.c
  * PCI: Add Synopsys endpoint EDDA Device ID
      include/linux/pci_ids.h
    misc: pci_endpoint_test: Add support to test PCI EP in AM654x
    misc: pci_endpoint_test: Add the layerscape EP device support
  * PCI: Move Rohm Vendor ID to generic list
      include/linux/pci_ids.h
  * PCI: Move Synopsys HAPS platform device IDs
      drivers/usb/dwc3/dwc3-haps.c
      include/linux/pci_ids.h
  * PCI: add USR vendor id and use it in r8169 and w6692 driver
      include/linux/pci_ids.h
  * x86/amd_nb: Add PCI device IDs for family 17h, model 30h
      include/linux/pci_ids.h
  * hwmon/k10temp, x86/amd_nb: Consolidate shared device IDs
      include/linux/pci_ids.h
  * pci:ipmi: Move IPMI PCI class id defines to pci_ids.h
      include/linux/pci_ids.h
  * PCI: Remove unused NFP32xx IDs
      include/linux/pci_ids.h
  * PCI: Add ACS quirk for Intel Root Complex Integrated Endpoints
      drivers/pci/quirks.c
  * PCI: Add ACS quirk for iProc PAXB
      drivers/pci/quirks.c
  * PCI: Avoid FLR for AMD Starship USB 3.0
      drivers/pci/quirks.c
  * PCI: Avoid FLR for AMD Matisse HD Audio & USB 3.0
      drivers/pci/quirks.c
  * PCI: Avoid Pericom USB controller OHCI/EHCI PME# defect
      drivers/pci/quirks.c
  * ext4: fix race between ext4_sync_parent() and rename()
      fs/ext4/fsync.c
  * ext4: fix error pointer dereference
      fs/ext4/xattr.c
  * ext4: fix EXT_MAX_EXTENT/INDEX to check for zeroed eh_max
      fs/ext4/ext4_extents.h
    evm: Fix possible memory leak in evm_calc_hmac_or_hash()
    ima: Directly assign the ima_default_policy pointer to ima_rules
    ima: Fix ima digest hash table key calculation
  * mm: initialize deferred pages with interrupts enabled
      include/linux/mmzone.h
      mm/page_alloc.c
    mm: thp: make the THP mapcount atomic against __split_huge_pmd_locked()
    btrfs: send: emit file capabilities after chown
    btrfs: include non-missing as a qualifier for the latest_bdev
  * string.h: fix incompatibility between FORTIFY_SOURCE and KASAN
      include/linux/string.h
    platform/x86: intel-vbtn: Only blacklist SW_TABLET_MODE on the 9 / "Laptop" chasis-type
    platform/x86: intel-hid: Add a quirk to support HP Spectre X2 (2015)
    platform/x86: hp-wmi: Convert simple_strtoul() to kstrtou32()
  * cpuidle: Fix three reference count leaks
      drivers/cpuidle/sysfs.c
    spi: dw: Return any value retrieved from the dma_transfer callback
    mmc: sdhci-esdhc-imx: fix the mask for tuning start point
    ixgbe: fix signed-integer-overflow warning
    mmc: via-sdmmc: Respect the cmd->busy_timeout from the mmc core
    staging: greybus: sdio: Respect the cmd->busy_timeout from the mmc core
    mmc: sdhci-msm: Set SDHCI_QUIRK_MULTIBLOCK_READ_ACMD12 quirk
    bcache: fix refcount underflow in bcache_device_free()
    MIPS: Fix IRQ tracing when call handle_fpe() and handle_msa_fpe()
  * PCI: Don't disable decoding when mmio_always_on is set
      drivers/pci/probe.c
    macvlan: Skip loopback packets in RX handler
    btrfs: qgroup: mark qgroup inconsistent if we're inherting snapshot to a new qgroup
    m68k: mac: Don't call via_flush_cache() on Mac IIfx
    x86/mm: Stop printing BRK addresses
    crypto: stm32/crc32 - fix multi-instance
    crypto: stm32/crc32 - fix run-time self test issue.
    crypto: stm32/crc32 - fix ext4 chksum BUG_ON()
    mips: Add udelay lpj numbers adjustment
    mips: MAAR: Use more precise address mask
    x86/boot: Correct relocation destination on old linkers
    mwifiex: Fix memory corruption in dump_station
    rtlwifi: Fix a double free in _rtl_usb_tx_urb_setup()
    net/mlx5e: IPoIB, Drop multicast packets that this interface sent
  * veth: Adjust hard_start offset on redirect XDP frames
      drivers/net/veth.c
    md: don't flush workqueue unconditionally in md_open
    mt76: avoid rx reorder buffer overflow
    net: qed*: Reduce RX and TX default ring count when running inside kdump kernel
    wcn36xx: Fix error handling path in 'wcn36xx_probe()'
    ath10k: Remove msdu from idr when management pkt send fails
    nvme: refine the Qemu Identify CNS quirk
    platform/x86: intel-vbtn: Also handle tablet-mode switch on "Detachable" and "Portable" chassis-types
    platform/x86: intel-vbtn: Do not advertise switches to userspace if they are not there
    platform/x86: intel-vbtn: Split keymap into buttons and switches parts
    platform/x86: intel-vbtn: Use acpi_evaluate_integer()
    xfs: fix duplicate verification from xfs_qm_dqflush()
    xfs: reset buffer write failure state on successful completion
  * kgdb: Fix spurious true from in_dbg_master()
      include/linux/kgdb.h
    mips: cm: Fix an invalid error code of INTVN_*_ERR
    MIPS: Truncate link address into 32bit for 32bit kernel
    Crypto/chcr: fix for ccm(aes) failed test
    xfs: clean up the error handling in xfs_swap_extents
    powerpc/spufs: fix copy_to_user while atomic
    net: allwinner: Fix use correct return type for ndo_start_xmit()
    media: cec: silence shift wrapping warning in __cec_s_log_addrs()
    net: lpc-enet: fix error return code in lpc_mii_init()
    drivers/perf: hisi: Fix typo in events attribute array
  * sched/core: Fix illegal RCU from offline CPUs
      include/linux/sched/mm.h
      kernel/cpu.c
      kernel/sched/core.c
  * exit: Move preemption fixup up, move blocking operations down
      kernel/exit.c
  * lib/mpi: Fix 64-bit MIPS build with Clang
      lib/mpi/longlong.h
    net: bcmgenet: set Rx mode before starting netif
    selftests/bpf: Fix memory leak in extract_build_id()
    netfilter: nft_nat: return EOPNOTSUPP if type or flags are not supported
  * audit: fix a net reference leak in audit_list_rules_send()
      kernel/audit.c
      kernel/audit.h
      kernel/auditfilter.c
    Bluetooth: btbcm: Add 2 missing models to subver tables
    MIPS: Make sparse_init() using top-down allocation
    media: platform: fcp: Set appropriate DMA parameters
    media: dvb: return -EREMOTEIO on i2c transfer failure.
  * audit: fix a net reference leak in audit_send_reply()
      kernel/audit.c
    dt-bindings: display: mediatek: control dpi pins mode to avoid leakage
    e1000: Distribute switch variables for initialization
    tools api fs: Make xxx__mountpoint() more scalable
    brcmfmac: fix wrong location to get firmware feature
  * staging: android: ion: use vmap instead of vm_map_ram
      drivers/staging/android/ion/ion_heap.c
    net: vmxnet3: fix possible buffer overflow caused by bad DMA value in vmxnet3_get_rss()
  * x86/kvm/hyper-v: Explicitly align hcall param for kvm_hyperv_exit
      include/uapi/linux/kvm.h
    spi: dw: Fix Rx-only DMA transfers
    mmc: meson-mx-sdio: trigger a soft reset after a timeout or CRC error
    batman-adv: Revert "disable ethtool link speed detection when auto negotiation off"
    ARM: 8978/1: mm: make act_mm() respect THREAD_SIZE
    btrfs: do not ignore error from btrfs_next_leaf() when inserting checksums
    clocksource: dw_apb_timer_of: Fix missing clockevent timers
    clocksource: dw_apb_timer: Make CPU-affiliation being optional
    spi: dw: Enable interrupts in accordance with DMA xfer mode
    kgdb: Prevent infinite recursive entries to the debugger
    kgdb: Disable WARN_CONSOLE_UNLOCKED for all kgdb
  * Bluetooth: Add SCO fallback for invalid LMP parameters error
      net/bluetooth/hci_event.c
    MIPS: Loongson: Build ATI Radeon GPU driver as module
    ixgbe: Fix XDP redirect on archs with PAGE_SIZE above 4K
  * arm64: insn: Fix two bugs in encoding 32-bit logical immediates
      arch/arm64/kernel/insn.c
    spi: dw: Zero DMA Tx and Rx configurations on stack
  * arm64: cacheflush: Fix KGDB trap detection
      arch/arm64/include/asm/cacheflush.h
    efi/libstub/x86: Work around LLVM ELF quirk build regression
    net: ena: fix error returning in ena_com_get_hash_function()
    net: atlantic: make hw_get_regs optional
    spi: pxa2xx: Apply CS clk quirk to BXT
    objtool: Ignore empty alternatives
    media: si2157: Better check for running tuner in init
  * crypto: ccp -- don't "select" CONFIG_DMADEVICES
      drivers/crypto/ccp/Kconfig
    drm: bridge: adv7511: Extend list of audio sample rates
    ACPI: GED: use correct trigger type field in _Exx / _Lxx handling
  * KVM: arm64: Synchronize sysreg state on injecting an AArch32 exception
      arch/arm64/include/asm/kvm_host.h
    xen/pvcalls-back: test for errors when calling backend_connect()
    mmc: sdio: Fix potential NULL pointer error in mmc_sdio_init_card()
    ARM: dts: at91: sama5d2_ptc_ek: fix sdmmc0 node description
    mmc: sdhci-msm: Clear tuning done flag while hs400 tuning
    agp/intel: Reinforce the barrier after GTT updates
  * perf: Add cond_resched() to task_function_call()
      kernel/events/core.c
  * fat: don't allow to mount if the FAT length == 0
      fs/fat/inode.c
  * mm/slub: fix a memory leak in sysfs_slab_add()
      mm/slub.c
    drm/vkms: Hold gem object while still in-use
  * Smack: slab-out-of-bounds in vsscanf
      security/smack/smackfs.c
    ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
    ath9x: Fix stack-out-of-bounds Write in ath9k_hif_usb_rx_cb
    ath9k: Fix use-after-free Write in ath9k_htc_rx_msg
    ath9k: Fix use-after-free Read in ath9k_wmi_ctrl_rx
    scsi: megaraid_sas: TM command refire leads to controller firmware crash
  * KVM: arm64: Make vcpu_cp1x() work on Big Endian hosts
      arch/arm64/include/asm/kvm_host.h
    KVM: MIPS: Fix VPN2_MASK definition for variable cpu_vmbits
    KVM: MIPS: Define KVM_ENTRYHI_ASID to cpu_asid_mask(&boot_cpu_data)
    KVM: nVMX: Consult only the "basic" exit reason when routing nested exit
    KVM: nSVM: leave ASID aside in copy_vmcb_control_area
    KVM: nSVM: fix condition for filtering async PF
    video: fbdev: w100fb: Fix a potential double free.
  * proc: Use new_inode not new_inode_pseudo
      fs/proc/inode.c
      fs/proc/self.c
      fs/proc/thread_self.c
  * ovl: initialize error in ovl_copy_xattr
      fs/overlayfs/copy_up.c
    selftests/net: in rxtimestamp getopt_long needs terminating null entry
    crypto: virtio: Fix dest length calculation in __virtio_crypto_skcipher_do_req()
    crypto: virtio: Fix src/dst scatterlist calculation in __virtio_crypto_skcipher_do_req()
    crypto: virtio: Fix use-after-free in virtio_crypto_skcipher_finalize_req()
    spi: pxa2xx: Fix runtime PM ref imbalance on probe error
    spi: pxa2xx: Balance runtime PM enable/disable on error
    spi: bcm2835: Fix controller unregister order
    spi: pxa2xx: Fix controller unregister order
  * spi: Fix controller unregister order
      drivers/spi/spi.c
  * spi: No need to assign dummy value in spi_unregister_controller()
      drivers/spi/spi.c
    x86/speculation: PR_SPEC_FORCE_DISABLE enforcement for indirect branches.
    x86/speculation: Avoid force-disabling IBPB based on STIBP and enhanced IBRS.
    x86/speculation: Add support for STIBP always-on preferred mode
    x86/speculation: Change misspelled STIPB to STIBP
    KVM: x86: only do L1TF workaround on affected processors
    KVM: x86/mmu: Consolidate "is MMIO SPTE" code
    kvm: x86: Fix L1TF mitigation for shadow MMU
  * KVM: x86: Fix APIC page invalidation race
      include/linux/kvm_host.h
  * x86/{mce,mm}: Unmap the entire page if the whole page is affected and poisoned
      include/linux/set_memory.h
  * ALSA: pcm: disallow linking stream to itself
      sound/core/pcm_native.c
    crypto: cavium/nitrox - Fix 'nitrox_get_first_device()' when ndevlist is fully iterated
  * PM: runtime: clk: Fix clk_pm_runtime_get() error path
      drivers/clk/clk.c
    spi: bcm-qspi: when tx/rx buffer is NULL set to 0
    spi: bcm2835aux: Fix controller unregister order
    spi: dw: Fix controller unregister order
    nilfs2: fix null pointer dereference at nilfs_segctor_do_construct()
  * cgroup, blkcg: Prepare some symbols for module and !CONFIG_CGROUP usages
      fs/fs-writeback.c
    ACPI: PM: Avoid using power resources if there are none for D0
    ACPI: GED: add support for _Exx / _Lxx handler methods
    ACPI: CPPC: Fix reference count leak in acpi_cppc_processor_probe()
    ACPI: sysfs: Fix reference count leak in acpi_sysfs_add_hotplug_profile()
  * ALSA: usb-audio: Add vendor, product and profile name for HP Thunderbolt Dock
      sound/usb/quirks-table.h
  * ALSA: usb-audio: Fix inconsistent card PM state after resume
      sound/usb/card.c
      sound/usb/usbaudio.h
    ALSA: hda/realtek - add a pintbl quirk for several Lenovo machines
    ALSA: es1688: Add the missed snd_card_free()
    efi/efivars: Add missing kobject_put() in sysfs entry creation error path
    x86/reboot/quirks: Add MacBook6,1 reboot quirk
    x86/speculation: Prevent rogue cross-process SSBD shutdown
    x86/PCI: Mark Intel C620 MROMs as having non-compliant BARs
    x86_64: Fix jiffies ODR violation
    btrfs: tree-checker: Check level for leaves and nodes
  * aio: fix async fsync creds
      fs/aio.c
  * mm: add kvfree_sensitive() for freeing sensitive data objects
      include/linux/mm.h
      mm/util.c
      security/keys/internal.h
      security/keys/keyctl.c
    perf probe: Accept the instance number of kretprobe event
    x86/cpu/amd: Make erratum #1054 a legacy erratum
    RDMA/uverbs: Make the event_queue fds return POLLERR when disassociated
    ath9k_htc: Silence undersized packet warnings
    powerpc/xive: Clear the page tables for the ESB IO mapping
    drivers/net/ibmvnic: Update VNIC protocol version reporting
    Input: synaptics - add a second working PNP_ID for Lenovo T470s
  * sched/fair: Don't NUMA balance for kthreads
      kernel/sched/fair.c
    ARM: 8977/1: ptrace: Fix mask for thumb breakpoint hook
    Input: mms114 - fix handling of mms345l
    crypto: talitos - fix ECB and CBC algs ivsize
    btrfs: Detect unbalanced tree with empty leaf before crashing btree operations
    btrfs: merge btrfs_find_device and find_device
  * lib: Reduce user_access_begin() boundaries in strncpy_from_user() and strnlen_user()
      lib/strncpy_from_user.c
      lib/strnlen_user.c
    x86: uaccess: Inhibit speculation past access_ok() in user_access_begin()
    arch/openrisc: Fix issues with access_ok()
    Fix 'acccess_ok()' on alpha and SH
  * make 'user_access_begin()' do 'access_ok()'
      include/linux/uaccess.h
      kernel/compat.c
      kernel/exit.c
      lib/strncpy_from_user.c
      lib/strnlen_user.c
    selftests: bpf: fix use of undeclared RET_IF macro
  * tun: correct header offsets in napi frags mode
      drivers/net/tun.c
    vxlan: Avoid infinite loop when suppressing NS messages with invalid options
  * bridge: Avoid infinite loop when suppressing NS messages with invalid options
      net/bridge/br_arp_nd_proxy.c
    net_failover: fixed rollback in net_failover_open()
  * ipv6: fix IPV6_ADDRFORM operation logic
      net/ipv6/ipv6_sockglue.c
  * writeback: Drop I_DIRTY_TIME_EXPIRE
      fs/ext4/inode.c
      fs/fs-writeback.c
      include/linux/fs.h
      include/trace/events/writeback.h
  * writeback: Fix sync livelock due to b_dirty_time processing
      fs/fs-writeback.c
      include/trace/events/writeback.h
  * writeback: Avoid skipping inode writeback
      fs/fs-writeback.c
      include/linux/fs.h
  * writeback: Protect inode->i_io_list with inode->i_lock
      fs/fs-writeback.c
  * Revert "writeback: Avoid skipping inode writeback"
      fs/fs-writeback.c
      include/linux/fs.h
    ANDROID: gki_defconfig: increase vbus_draw to 500mA
  * fscrypt: remove stale definition
      include/linux/fscrypt.h
  * fs-verity: remove unnecessary extern keywords
      fs/verity/fsverity_private.h
      include/linux/fsverity.h
  * fs-verity: fix all kerneldoc warnings
      fs/verity/enable.c
      fs/verity/fsverity_private.h
      fs/verity/measure.c
      fs/verity/open.c
      fs/verity/signature.c
      fs/verity/verify.c
      include/linux/fsverity.h
  * fscrypt: add support for IV_INO_LBLK_32 policies
      fs/crypto/crypto.c
      fs/crypto/fscrypt_private.h
      fs/crypto/keyring.c
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      include/uapi/linux/fscrypt.h
  * fscrypt: make test_dummy_encryption use v2 by default
      fs/crypto/policy.c
  * fscrypt: support test_dummy_encryption=v2
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      fs/ext4/ext4.h
      fs/ext4/super.c
      fs/ext4/sysfs.c
      fs/f2fs/f2fs.h
      fs/f2fs/super.c
      fs/f2fs/sysfs.c
      include/linux/fscrypt.h
  * fscrypt: add fscrypt_add_test_dummy_key()
      fs/crypto/fscrypt_private.h
      fs/crypto/keyring.c
  * linux/parser.h: add include guards
      include/linux/parser.h
  * fscrypt: remove unnecessary extern keywords
      fs/crypto/fscrypt_private.h
      include/linux/fscrypt.h
  * fscrypt: name all function parameters
      include/linux/fscrypt.h
  * fscrypt: fix all kerneldoc warnings
      fs/crypto/crypto.c
      fs/crypto/fname.c
      fs/crypto/fscrypt_private.h
      fs/crypto/hooks.c
      fs/crypto/keysetup.c
      fs/crypto/policy.c
      include/linux/fscrypt.h
    ANDROID: Update the ABI
  * ANDROID: GKI: power: power-supply: Add POWER_SUPPLY_PROP_CHARGER_STATUS property
      drivers/power/supply/power_supply_sysfs.c
      include/linux/power_supply.h
  * ANDROID: GKI: add dev to usb_gsi_request
      include/linux/usb/gadget.h
  * ANDROID: GKI: dma-buf: add dent_count to dma_buf
      include/linux/dma-buf.h
    Merge remote-tracking branch 'aosp/upstream-f2fs-stable-linux-4.19.y' into android-4.19-stable
    ANDROID: Update the ABI xml and whitelist
    ANDROID: GKI: update whitelist
  * ANDROID: extcon: Export symbol of `extcon_get_edev_name`
      drivers/extcon/extcon.c
      include/linux/extcon.h
  * ANDROID: kbuild: merge more sections with LTO
      scripts/module-lto.lds.S
  * UPSTREAM: timekeeping/vsyscall: Update VDSO data unconditionally
      arch/arm64/include/asm/vdso/vsyscall.h
      include/asm-generic/vdso/vsyscall.h
      kernel/time/vsyscall.c
  * ANDROID: GKI: Revert "genetlink: disallow subscribing to unknown mcast groups"
      net/netlink/genetlink.c
  * BACKPORT: usb: musb: Add support for MediaTek musb controller
      drivers/usb/musb/Kconfig
    UPSTREAM: usb: musb: Add musb_clearb/w() interface
    UPSTREAM: usb: musb: Add noirq type of dma create interface
    UPSTREAM: usb: musb: Add get/set toggle hooks
    UPSTREAM: dt-bindings: usb: musb: Add support for MediaTek musb controller
    Merge 4.19.128 into android-4.19-stable
  * FROMGIT: driver core: Remove unnecessary is_fwnode_dev variable in device_add()
      drivers/base/core.c
  * FROMGIT: driver core: Remove check in driver_deferred_probe_force_trigger()
      drivers/base/dd.c
  * FROMGIT: of: platform: Batch fwnode parsing when adding all top level devices
      drivers/of/platform.c
  * FROMGIT: BACKPORT: driver core: fw_devlink: Add support for batching fwnode parsing
      drivers/base/base.h
      drivers/base/core.c
      drivers/base/dd.c
      include/linux/fwnode.h
  * BACKPORT: driver core: Look for waiting consumers only for a fwnode's primary device
      drivers/base/core.c
  * BACKPORT: driver core: Add device links from fwnode only for the primary device
      drivers/base/core.c
Linux 4.19.128
    Revert "net/mlx5: Annotate mutex destroy for root ns"
  * uprobes: ensure that uprobe->offset and ->ref_ctr_offset are properly aligned
      kernel/events/uprobes.c
    x86/speculation: Add Ivy Bridge to affected list
    x86/speculation: Add SRBDS vulnerability and mitigation documentation
  * x86/speculation: Add Special Register Buffer Data Sampling (SRBDS) mitigation
      drivers/base/cpu.c
    x86/cpu: Add 'table' argument to cpu_matches()
  * x86/cpu: Add a steppings field to struct x86_cpu_id
      include/linux/mod_devicetable.h
  * nvmem: qfprom: remove incorrect write support
      drivers/nvmem/qfprom.c
    CDC-ACM: heed quirk also in error handling
    staging: rtl8712: Fix IEEE80211_ADDBA_PARAM_BUF_SIZE_MASK
    tty: hvc_console, fix crashes on parallel open/close
    vt: keyboard: avoid signed integer overflow in k_ascii
    usb: musb: Fix runtime PM imbalance on error
    usb: musb: start session in resume for host port
    iio: vcnl4000: Fix i2c swapped word reading.
    USB: serial: option: add Telit LE910C1-EUX compositions
    USB: serial: usb_wwan: do not resubmit rx urb on fatal errors
    USB: serial: qcserial: add DW5816e QDL support
  * net: check untrusted gso_size at kernel entry
      include/linux/virtio_net.h
    vsock: fix timeout in vsock_accept()
    NFC: st21nfca: add missed kfree_skb() in an error path
    net: usb: qmi_wwan: add Telit LE910C1-EUX composition
  * l2tp: do not use inet_hash()/inet_unhash()
      net/l2tp/l2tp_ip.c
      net/l2tp/l2tp_ip6.c
  * l2tp: add sk_family checks to l2tp_validate_socket
      net/l2tp/l2tp_core.c
  * devinet: fix memleak in inetdev_init()
      net/ipv4/devinet.c
  * Revert "ANDROID: Remove default y on BRIDGE_IGMP_SNOOPING"
      net/bridge/Kconfig
    ANDROID: Update the ABI xml and whitelist
    ANDROID: GKI: update whitelist
  * ANDROID: arch: arm64: vdso: export the symbols for time()
      arch/arm64/include/asm/vdso/compat_gettimeofday.h
      arch/arm64/include/asm/vdso/gettimeofday.h
      arch/arm64/kernel/vdso/vdso.lds.S
      arch/arm64/kernel/vdso/vgettimeofday.c
      arch/arm64/kernel/vdso32/vdso.lds.S
      arch/arm64/kernel/vdso32/vgettimeofday.c
  * ANDROID: Incremental fs: Remove dependency on PKCS7_MESSAGE_PARSER
      fs/incfs/Kconfig
      fs/incfs/integrity.c
    ANDROID: dm-bow: Add block_size option
  * f2fs: attach IO flags to the missing cases
      fs/f2fs/data.c
  * f2fs: add node_io_flag for bio flags likewise data_io_flag
      fs/f2fs/data.c
      fs/f2fs/f2fs.h
      fs/f2fs/sysfs.c
    f2fs: remove unused parameter of f2fs_put_rpages_mapping()
  * f2fs: handle readonly filesystem in f2fs_ioc_shutdown()
      fs/f2fs/file.c
  * f2fs: avoid utf8_strncasecmp() with unstable name
      fs/f2fs/dir.c
  * f2fs: don't return vmalloc() memory from f2fs_kmalloc()
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/node.c
      fs/f2fs/super.c
    ANDROID: GKI: set CONFIG_BLK_DEV_LOOP_MIN_COUNT to 16
  * ANDROID: Incremental fs: Cache successful hash calculations
      fs/incfs/data_mgmt.c
      fs/incfs/data_mgmt.h
      fs/incfs/vfs.c
  * ANDROID: Incremental fs: Fix four error-path bugs
      fs/incfs/data_mgmt.c
      fs/incfs/data_mgmt.h
    Merge 4.19.127 into android-4.19-stable
Linux 4.19.127
    net: smsc911x: Fix runtime PM imbalance on error
    net: ethernet: stmmac: Enable interface clocks on probe for IPQ806x
    net/ethernet/freescale: rework quiesce/activate for ucc_geth
    null_blk: return error for invalid zone size
    s390/mm: fix set_huge_pte_at() for empty ptes
  * drm/edid: Add Oculus Rift S to non-desktop list
      drivers/gpu/drm/drm_edid.c
    net: bmac: Fix read of MAC address from ROM
    x86/mmiotrace: Use cpumask_available() for cpumask_var_t variables
    i2c: altera: Fix race between xfer_msg and isr thread
    evm: Fix RCU list related warnings
    ARC: [plat-eznps]: Restrict to CONFIG_ISA_ARCOMPACT
    ARC: Fix ICCM & DCCM runtime size checks
    s390/ftrace: save traced function caller
    spi: dw: use "smp_mb()" to avoid sending spi data error
    powerpc/powernv: Avoid re-registration of imc debugfs directory
    scsi: hisi_sas: Check sas_port before using it
    drm/i915: fix port checks for MST support on gen >= 11
    airo: Fix read overflows sending packets
    net: dsa: mt7530: set CPU port to fallback mode
  * scsi: ufs: Release clock if DMA map fails
      drivers/scsi/ufs/ufshcd.c
  * mmc: fix compilation of user API
      include/uapi/linux/mmc/ioctl.h
    kernel/relay.c: handle alloc_percpu returning NULL in relay_open
    p54usb: add AirVasT USB stick device-id
    HID: i2c-hid: add Schneider SCL142ALM to descriptor override
  * HID: sony: Fix for broken buttons on DS3 USB dongles
      drivers/hid/hid-sony.c
  * mm: Fix mremap not considering huge pmd devmap
      mm/mremap.c
    libnvdimm: Fix endian conversion issues 
  * Revert "cgroup: Add memory barriers to plug cgroup_rstat_updated() race window"
      kernel/cgroup/rstat.c
  * f2fs: fix retry logic in f2fs_write_cache_pages()
      fs/f2fs/data.c
    ANDROID: Update ABI representation
    Merge 4.19.126 into android-4.19-stable
Linux 4.19.126
  * mm/vmalloc.c: don't dereference possible NULL pointer in __vunmap()
      mm/vmalloc.c
  * netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build
      include/linux/netfilter/nf_conntrack_pptp.h
      net/netfilter/nf_conntrack_pptp.c
  * bonding: Fix reference count leak in bond_sysfs_slave_add.
      drivers/net/bonding/bond_sysfs_slave.c
    crypto: chelsio/chtls: properly set tp->lsndtime
    qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
    xsk: Add overflow check for u64 division, stored into u32
    bnxt_en: Fix accumulation of bp->net_stats_prev.
    esp6: get the right proto for transport mode in esp6_gso_encap
  * netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
      include/linux/netfilter/nf_conntrack_pptp.h
      net/ipv4/netfilter/nf_nat_pptp.c
      net/netfilter/nf_conntrack_pptp.c
    netfilter: nfnetlink_cthelper: unbreak userspace helper support
    netfilter: ipset: Fix subcounter update skip
    netfilter: nft_reject_bridge: enable reject with bridge vlan
  * ip_vti: receive ipip packet by calling ip_tunnel_rcv
      net/ipv4/ip_vti.c
  * vti4: eliminated some duplicate code.
      net/ipv4/ip_vti.c
  * xfrm: fix error in comment
      include/uapi/linux/xfrm.h
  * xfrm: fix a NULL-ptr deref in xfrm_local_error
      net/xfrm/xfrm_output.c
  * xfrm: fix a warning in xfrm_policy_insert_list
      net/xfrm/xfrm_policy.c
  * xfrm interface: fix oops when deleting a x-netns interface
      net/xfrm/xfrm_interface.c
  * xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
      net/xfrm/xfrm_output.c
  * xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
      net/xfrm/xfrm_input.c
    copy_xstate_to_kernel(): don't leave parts of destination uninitialized
    x86/dma: Fix max PFN arithmetic overflow on 32 bit systems
    mac80211: mesh: fix discovery timer re-arming issue / crash
  * RDMA/core: Fix double destruction of uobject
      include/rdma/uverbs_std_types.h
    mmc: core: Fix recursive locking issue in CQE recovery path
    parisc: Fix kernel panic in mem_init()
  * iommu: Fix reference count leak in iommu_group_alloc.
      drivers/iommu/iommu.c
  * include/asm-generic/topology.h: guard cpumask_of_node() macro argument
      include/asm-generic/topology.h
  * fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()
      fs/binfmt_elf.c
  * mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()
      include/linux/mm.h
    IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode
    libceph: ignore pool overlay and cache logic on redirects
    ALSA: hda/realtek - Add new codec supported for ALC287
  * ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio
      sound/usb/mixer_maps.c
      sound/usb/quirks-table.h
  * exec: Always set cap_ambient in cap_bprm_set_creds
      security/commoncap.c
  * ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC
      sound/usb/mixer.c
    ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
  * ALSA: hwdep: fix a left shifting 1 by 31 UB bug
      sound/core/hwdep.c
    RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
    mmc: block: Fix use-after-free issue for rpmb
    ARM: dts: bcm: HR2: Fix PPI interrupt types
    ARM: dts: bcm2835-rpi-zero-w: Fix led polarity
    ARM: dts/imx6q-bx50v3: Set display interface clock parents
    IB/qib: Call kobject_put() when kobject_init_and_add() fails
    gpio: exar: Fix bad handling for ida_simple_get error path
    ARM: uaccess: fix DACR mismatch with nested exceptions
    ARM: uaccess: integrate uaccess_save and uaccess_restore
    ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
    ARM: 8843/1: use unified assembler in headers
    ARM: 8970/1: decompressor: increase tag size
    Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()
    Input: synaptics-rmi4 - really fix attn_data use-after-free
    Input: i8042 - add ThinkPad S230u to i8042 reset list
    Input: dlink-dir685-touchkeys - fix a typo in driver name
  * Input: xpad - add custom init packet for Xbox One S controllers
      drivers/input/joystick/xpad.c
  * Input: evdev - call input_flush_device() on release(), not flush()
      drivers/input/evdev.c
    Input: usbtouchscreen - add support for BonXeon TP
    samples: bpf: Fix build error
    cifs: Fix null pointer check in cifs_read
    riscv: stacktrace: Fix undefined reference to `walk_stackframe'
    IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()
  * net: freescale: select CONFIG_FIXED_PHY where needed
      drivers/net/ethernet/freescale/Kconfig
      drivers/net/ethernet/freescale/dpaa/Kconfig
    usb: gadget: legacy: fix redundant initialization warnings
    usb: dwc3: pci: Enable extcon driver for Intel Merrifield
    cachefiles: Fix race between read_waiter and read_copier involving op->to_do
    gfs2: move privileged user check to gfs2_quota_lock_check
    net: microchip: encx24j600: add missed kthread_stop
  * ALSA: usb-audio: add mapping for ASRock TRX40 Creator
      sound/usb/mixer_maps.c
      sound/usb/quirks-table.h
    gpio: tegra: mask GPIO IRQs during IRQ shutdown
    ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi
    ARM: dts: rockchip: swap clock-names of gpu nodes
    arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
    arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
    ARM: dts: rockchip: fix phy nodename for rk3228-evb
    mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails
    net/mlx4_core: fix a memory leak bug.
    net: sun: fix missing release regions in cas_init_one().
    net/mlx5: Annotate mutex destroy for root ns
    net/mlx5e: Update netdev txq on completions during closure
  * sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed
      net/sctp/sm_statefuns.c
  * sctp: Don't add the shutdown timer if its already been added
      net/sctp/sm_sideeffect.c
  * r8152: support additional Microsoft Surface Ethernet Adapter variant
      drivers/net/usb/cdc_ether.c
      drivers/net/usb/r8152.c
  * net sched: fix reporting the first-time use timestamp
      include/net/act_api.h
  * net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"
      net/ipv4/route.c
  * net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()
      net/qrtr/qrtr.c
  * net/mlx5: Add command entry handling completion
      include/linux/mlx5/driver.h
    net: ipip: fix wrong address family in init error path
  * net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*
      net/ipv4/inet_connection_sock.c
  * __netif_receive_skb_core: pass skb by reference
      net/core/dev.c
    net: dsa: mt7530: fix roaming from DSA user ports
    dpaa_eth: fix usage as DSA master, try 3
    ax25: fix setsockopt(SO_BINDTODEVICE)
  * ANDROID: modules: fix lockprove warning
      kernel/module.c
    FROMGIT: USB: dummy-hcd: use configurable endpoint naming scheme
    UPSTREAM: usb: raw-gadget: fix null-ptr-deref when reenabling endpoints
    UPSTREAM: usb: raw-gadget: documentation updates
  * UPSTREAM: usb: raw-gadget: support stalling/halting/wedging endpoints
      include/uapi/linux/usb/raw_gadget.h
  * UPSTREAM: usb: raw-gadget: fix gadget endpoint selection
      include/uapi/linux/usb/raw_gadget.h
  * UPSTREAM: usb: raw-gadget: improve uapi headers comments
      include/uapi/linux/usb/raw_gadget.h
    UPSTREAM: usb: raw-gadget: fix return value of ep read ioctls
    UPSTREAM: usb: raw-gadget: fix raw_event_queue_fetch locking
    UPSTREAM: usb: raw-gadget: Fix copy_to/from_user() checks
  * f2fs: fix wrong discard space
      fs/f2fs/segment.c
    f2fs: compress: don't compress any datas after cp stop
  * f2fs: remove unneeded return value of __insert_discard_tree()
      fs/f2fs/segment.c
  * f2fs: fix wrong value of tracepoint parameter
      fs/f2fs/namei.c
  * f2fs: protect new segment allocation in expand_inode_data
      fs/f2fs/file.c
  * f2fs: code cleanup by removing ifdef macro surrounding
      fs/f2fs/file.c
      fs/f2fs/namei.c
      fs/f2fs/xattr.h
  * writeback: Avoid skipping inode writeback
      fs/fs-writeback.c
      include/linux/fs.h
    ANDROID: GKI: Update the ABI
    ANDROID: GKI: update whitelist
  * ANDROID: GKI: support mm_event for FS/IO/UFS path
      include/linux/blk_types.h
      include/linux/mm_event.h
      mm/mm_event.c
  * ANDROID: net: bpf: permit redirect from ingress L3 to egress L2 devices at near max mtu
      net/core/filter.c
  * FROMGIT: driver core: Update device link status correctly for SYNC_STATE_ONLY links
      drivers/base/core.c
  * UPSTREAM: driver core: Fix handling of SYNC_STATE_ONLY + STATELESS device links
      drivers/base/core.c
  * BACKPORT: driver core: Fix SYNC_STATE_ONLY device link implementation
      drivers/base/core.c
    ANDROID: Bulk update the ABI xml and qcom whitelist
  * Revert "ANDROID: Incremental fs: Avoid continually recalculating hashes"
      fs/incfs/data_mgmt.c
  * f2fs: avoid inifinite loop to wait for flushing node pages at cp_error
      fs/f2fs/node.c
    f2fs: compress: fix zstd data corruption
  * f2fs: add compressed/gc data read IO stat
      fs/f2fs/data.c
      fs/f2fs/f2fs.h
      fs/f2fs/gc.c
      fs/f2fs/sysfs.c
      include/trace/events/f2fs.h
  * f2fs: fix potential use-after-free issue
      fs/f2fs/data.c
  * f2fs: compress: don't handle non-compressed data in workqueue
      fs/f2fs/data.c
  * f2fs: remove redundant assignment to variable err
      fs/f2fs/namei.c
  * f2fs: refactor resize_fs to avoid meta updates in progress
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
      fs/f2fs/gc.c
      fs/f2fs/super.c
      include/trace/events/f2fs.h
  * f2fs: use round_up to enhance calculation
      fs/f2fs/file.c
  * f2fs: introduce F2FS_IOC_RESERVE_COMPRESS_BLOCKS
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: Avoid double lock for cp_rwsem during checkpoint
      fs/f2fs/checkpoint.c
      fs/f2fs/f2fs.h
      fs/f2fs/node.c
  * f2fs: report delalloc reserve as non-free in statfs for project quota
      fs/f2fs/super.c
  * f2fs: Fix wrong stub helper update_sit_info
      fs/f2fs/f2fs.h
    f2fs: compress: let lz4 compressor handle output buffer budget properly
  * f2fs: remove blk_plugging in block_operations
      fs/f2fs/checkpoint.c
  * f2fs: introduce F2FS_IOC_RELEASE_COMPRESS_BLOCKS
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: shrink spinlock coverage
      fs/f2fs/node.c
      fs/f2fs/node.h
  * f2fs: correctly fix the parent inode number during fsync()
      fs/f2fs/file.c
  * f2fs: introduce mempool for {,de}compress intermediate page allocation
      fs/f2fs/f2fs.h
      fs/f2fs/super.c
  * f2fs: introduce f2fs_bmap_compress()
      fs/f2fs/data.c
  * f2fs: support fiemap on compressed inode
      fs/f2fs/data.c
  * f2fs: support partial truncation on compressed inode
      fs/f2fs/f2fs.h
      fs/f2fs/file.c
  * f2fs: remove redundant compress inode check
      fs/f2fs/f2fs.h
  * f2fs: use strcmp() in parse_options()
      fs/f2fs/super.c
  * f2fs: Use the correct style for SPDX License Identifier
      fs/f2fs/acl.h
      fs/f2fs/f2fs.h
      fs/f2fs/gc.h
      fs/f2fs/node.h
      fs/f2fs/segment.h
      fs/f2fs/trace.h
      fs/f2fs/xattr.h

Change-Id: I2a678a32a4d72309fd00887a7ac56241293304a9
Signed-off-by: lucaswei <lucaswei@google.com>
2020-10-27 15:33:35 +08:00
Greg Kroah-Hartman
bcf9517454 Merge 4.19.135 into android-4.19-stable
Changes in 4.19.135
	soc: qcom: rpmh: Dirt can only make you dirtier, not cleaner
	gpio: arizona: handle pm_runtime_get_sync failure case
	gpio: arizona: put pm_runtime in case of failure
	pinctrl: amd: fix npins for uart0 in kerncz_groups
	mac80211: allow rx of mesh eapol frames with default rx key
	scsi: scsi_transport_spi: Fix function pointer check
	xtensa: fix __sync_fetch_and_{and,or}_4 declarations
	xtensa: update *pos in cpuinfo_op.next
	drivers/net/wan/lapbether: Fixed the value of hard_header_len
	net: sky2: initialize return of gm_phy_read
	drm/nouveau/i2c/g94-: increase NV_PMGR_DP_AUXCTL_TRANSACTREQ timeout
	drivers/firmware/psci: Fix memory leakage in alloc_init_cpu_groups()
	fuse: fix weird page warning
	irqdomain/treewide: Keep firmware node unconditionally allocated
	SUNRPC reverting d03727b248d0 ("NFSv4 fix CLOSE not waiting for direct IO compeletion")
	spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
	tipc: clean up skb list lock handling on send path
	IB/umem: fix reference count leak in ib_umem_odp_get()
	uprobes: Change handle_swbp() to send SIGTRAP with si_code=SI_KERNEL, to fix GDB regression
	ALSA: info: Drop WARN_ON() from buffer NULL sanity check
	ASoC: rt5670: Correct RT5670_LDO_SEL_MASK
	btrfs: fix double free on ulist after backref resolution failure
	btrfs: fix mount failure caused by race with umount
	btrfs: fix page leaks after failure to lock page for delalloc
	bnxt_en: Fix race when modifying pause settings.
	fpga: dfl: fix bug in port reset handshake
	hippi: Fix a size used in a 'pci_free_consistent()' in an error handling path
	ax88172a: fix ax88172a_unbind() failures
	net: dp83640: fix SIOCSHWTSTAMP to update the struct with actual configuration
	ieee802154: fix one possible memleak in adf7242_probe
	drm: sun4i: hdmi: Fix inverted HPD result
	net: smc91x: Fix possible memory leak in smc_drv_probe()
	bonding: check error value of register_netdevice() immediately
	mlxsw: destroy workqueue when trap_register in mlxsw_emad_init
	qed: suppress "don't support RoCE & iWARP" flooding on HW init
	ipvs: fix the connection sync failed in some cases
	net: ethernet: ave: Fix error returns in ave_init
	i2c: rcar: always clear ICSAR to avoid side effects
	bonding: check return value of register_netdevice() in bond_newlink()
	serial: exar: Fix GPIO configuration for Sealevel cards based on XR17V35X
	scripts/decode_stacktrace: strip basepath from all paths
	scripts/gdb: fix lx-symbols 'gdb.error' while loading modules
	HID: i2c-hid: add Mediacom FlexBook edge13 to descriptor override
	HID: alps: support devices with report id 2
	HID: steam: fixes race in handling device list.
	HID: apple: Disable Fn-key key-re-mapping on clone keyboards
	dmaengine: tegra210-adma: Fix runtime PM imbalance on error
	Input: add `SW_MACHINE_COVER`
	spi: mediatek: use correct SPI_CFG2_REG MACRO
	regmap: dev_get_regmap_match(): fix string comparison
	hwmon: (aspeed-pwm-tacho) Avoid possible buffer overflow
	dmaengine: ioat setting ioat timeout as module parameter
	Input: synaptics - enable InterTouch for ThinkPad X1E 1st gen
	usb: gadget: udc: gr_udc: fix memleak on error handling path in gr_ep_init()
	hwmon: (adm1275) Make sure we are reading enough data for different chips
	hwmon: (scmi) Fix potential buffer overflow in scmi_hwmon_probe()
	arm64: Use test_tsk_thread_flag() for checking TIF_SINGLESTEP
	x86: math-emu: Fix up 'cmp' insn for clang ias
	RISC-V: Upgrade smp_mb__after_spinlock() to iorw,iorw
	binder: Don't use mmput() from shrinker function.
	usb: xhci-mtk: fix the failure of bandwidth allocation
	usb: xhci: Fix ASM2142/ASM3142 DMA addressing
	Revert "cifs: Fix the target file was deleted when rename failed."
	staging: wlan-ng: properly check endpoint types
	staging: comedi: addi_apci_1032: check INSN_CONFIG_DIGITAL_TRIG shift
	staging: comedi: ni_6527: fix INSN_CONFIG_DIGITAL_TRIG support
	staging: comedi: addi_apci_1500: check INSN_CONFIG_DIGITAL_TRIG shift
	staging: comedi: addi_apci_1564: check INSN_CONFIG_DIGITAL_TRIG shift
	serial: 8250: fix null-ptr-deref in serial8250_start_tx()
	serial: 8250_mtk: Fix high-speed baud rates clamping
	fbdev: Detect integer underflow at "struct fbcon_ops"->clear_margins.
	vt: Reject zero-sized screen buffer size.
	Makefile: Fix GCC_TOOLCHAIN_DIR prefix for Clang cross compilation
	mm/memcg: fix refcount error while moving and swapping
	mm: memcg/slab: synchronize access to kmem_cache dying flag using a spinlock
	mm: memcg/slab: fix memory leak at non-root kmem_cache destroy
	io-mapping: indicate mapping failure
	drm/amdgpu: Fix NULL dereference in dpm sysfs handlers
	drm/amd/powerplay: fix a crash when overclocking Vega M
	parisc: Add atomic64_set_release() define to avoid CPU soft lockups
	x86, vmlinux.lds: Page-align end of ..page_aligned sections
	ASoC: rt5670: Add new gpio1_is_ext_spk_en quirk and enable it on the Lenovo Miix 2 10
	ASoC: qcom: Drop HAS_DMA dependency to fix link failure
	dm integrity: fix integrity recalculation that is improperly skipped
	ath9k: Fix general protection fault in ath9k_hif_usb_rx_cb
	ath9k: Fix regression with Atheros 9271
	Linux 4.19.135

Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Change-Id: I0bbcde83e7c810352d998f28d3484efa2b9ede8e
2020-07-29 13:22:30 +02:00
Mikulas Patocka
cab7ef0066 dm integrity: fix integrity recalculation that is improperly skipped
commit 5df96f2b9f58a5d2dc1f30fe7de75e197f2c25f2 upstream.

Commit adc0daad366b62ca1bce3e2958a40b0b71a8b8b3 ("dm: report suspended
device during destroy") broke integrity recalculation.

The problem is dm_suspended() returns true not only during suspend,
but also during resume. So this race condition could occur:
1. dm_integrity_resume calls queue_work(ic->recalc_wq, &ic->recalc_work)
2. integrity_recalc (&ic->recalc_work) preempts the current thread
3. integrity_recalc calls if (unlikely(dm_suspended(ic->ti))) goto unlock_ret;
4. integrity_recalc exits and no recalculating is done.

To fix this race condition, add a function dm_post_suspending that is
only true during the postsuspend phase and use it instead of
dm_suspended().

Signed-off-by: Mikulas Patocka <mpatocka redhat com>
Fixes: adc0daad366b ("dm: report suspended device during destroy")
Cc: stable vger kernel org # v4.18+
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-07-29 10:16:59 +02:00
Eric Biggers
a680071d40 ANDROID: dm: add support for passing through inline crypto support
Update the device-mapper core to support exposing the inline crypto
support of the underlying device(s) through the device-mapper device.

This works by creating a "passthrough keyslot manager" for the dm
device, which declares support for the set of (crypto_mode,
data_unit_size) combos which all the underlying devices support.  When a
supported combo is used, the bio cloning code handles cloning the crypto
context to the bios for all the underlying devices.  When an unsupported
combo is used, the blk-crypto fallback is used as usual.

Crypto support on each underlying device is ignored unless the
corresponding dm target opts into exposing it.  This is needed because
for inline crypto to semantically operate on the original bio, the data
must not be transformed by the dm target.  Thus, targets like dm-linear
can expose crypto support of the underlying device, but targets like
dm-crypt can't.  (dm-crypt could use inline crypto itself, though.)

When a key is evicted from the dm device, it is evicted from all
underlying devices.

Bug: 137270441
Bug: 147814592
Change-Id: If28b574f2e28268db5eb9f325d4cf8f96cb63e3f
Signed-off-by: Eric Biggers <ebiggers@google.com>
(cherry picked from commit 44e1174c18)
2020-05-30 02:04:30 +08:00
Eric Biggers
44e1174c18 ANDROID: dm: add support for passing through inline crypto support
Update the device-mapper core to support exposing the inline crypto
support of the underlying device(s) through the device-mapper device.

This works by creating a "passthrough keyslot manager" for the dm
device, which declares support for the set of (crypto_mode,
data_unit_size) combos which all the underlying devices support.  When a
supported combo is used, the bio cloning code handles cloning the crypto
context to the bios for all the underlying devices.  When an unsupported
combo is used, the blk-crypto fallback is used as usual.

Crypto support on each underlying device is ignored unless the
corresponding dm target opts into exposing it.  This is needed because
for inline crypto to semantically operate on the original bio, the data
must not be transformed by the dm target.  Thus, targets like dm-linear
can expose crypto support of the underlying device, but targets like
dm-crypt can't.  (dm-crypt could use inline crypto itself, though.)

When a key is evicted from the dm device, it is evicted from all
underlying devices.

Bug: 137270441
Bug: 147814592
Change-Id: If28b574f2e28268db5eb9f325d4cf8f96cb63e3f
Signed-off-by: Eric Biggers <ebiggers@google.com>
2020-01-24 10:49:09 -08:00
Ivaylo Georgiev
0e5107f00a Merge android-4.19-q.73 (8feec99) into msm-4.19
* refs/heads/tmp-8feec99:
  Documentation: devicetree: Remove Exynos bindings from kernel
  Documentation: devicetree: Remove Armadeus bindings from kernel
  Revert "dt-bindings: mmc: Add supports-cqe property"
  Revert "dt-bindings: mmc: Add disable-cqe-dcmd property."
  Linux 4.19.73
  vhost: make sure log_num < in_num
  powerpc/tm: Fix restoring FP/VMX facility incorrectly on interrupts
  powerpc/tm: Remove msr_tm_active()
  PCI: Reset both NVIDIA GPU and HDA in ThinkPad P50 workaround
  ext4: unsigned int compared against zero
  ext4: fix block validity checks for journal inodes using indirect blocks
  ext4: don't perform block validity checks on the journal inode
  drm/atomic_helper: Allow DPMS On<->Off changes for unregistered connectors
  virtio/s390: fix race on airq_areas[]
  drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV
  bcache: fix race in btree_flush_write()
  bcache: add comments for mutex_lock(&b->write_lock)
  bcache: only clear BTREE_NODE_dirty bit when it is set
  NFSv4: Fix delegation state recovery
  iio: adc: gyroadc: fix uninitialized return code
  mm/migrate.c: initialize pud_entry in migrate_vma()
  i2c: at91: fix clk_offset for sama5d2
  i2c: at91: disable TXRDY interrupt after sending data
  gpio: don't WARN() on NULL descs if gpiolib is disabled
  iommu/iova: Remove stale cached32_node
  powerpc/mm: Limit rma_size to 1TB when running without HV mode
  ALSA: hda - Fix intermittent CORB/RIRB stall on Intel chips
  drm/panel: Add support for Armadeus ST0700 Adapt
  dm thin metadata: check if in fail_io mode when setting needs_check
  pstore: Fix double-free in pstore_mkfile() failure path
  resource: fix locking in find_next_iomem_res()
  resource: Fix find_next_iomem_res() iteration issue
  resource: Include resource end in walk_*() interfaces
  btrfs: correctly validate compression type
  RDMA/srp: Accept again source addresses that do not have a port number
  RDMA/srp: Document srp_parse_in() arguments
  ARM: dts: gemini: Set DIR-685 SPI CS as active low
  KVM: PPC: Book3S HV: Fix CR0 setting in TM emulation
  KVM: PPC: Use ccr field in pt_regs struct embedded in vcpu struct
  KVM: VMX: check CPUID before allowing read/write of IA32_XSS
  KVM: VMX: Fix handling of #MC that occurs during VM-Entry
  KVM: VMX: Always signal #GP on WRMSR to MSR_IA32_CR_PAT with bad value
  KVM: x86: optimize check for valid PAT value
  ceph: use ceph_evict_inode to cleanup inode's resource
  ALSA: hda - Don't resume forcibly i915 HDMI/DP codec
  cifs: Properly handle auto disabling of serverino option
  scsi: zfcp: fix request object use-after-free in send path causing wrong traces
  staging: wilc1000: fix error path cleanup in wilc_wlan_initialize()
  scsi: target/iblock: Fix overrun in WRITE SAME emulation
  scsi: target/core: Use the SECTOR_SHIFT constant
  apparmor: reset pos on failure to unpack for various functions
  IB/hfi1: Avoid hardlockup with flushlist_lock
  clk: tegra210: Fix default rates for HDA clocks
  clk: tegra: Fix maximum audio sync clock for Tegra124/210
  cifs: add spinlock for the openFileList to cifsInodeInfo
  Btrfs: fix race between block group removal and block group allocation
  drm/amdgpu/{uvd,vcn}: fetch ring's read_ptr after alloc
  drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
  kvm: Check irqchip mode before assign irqfd
  drm/amdkfd: Add missing Polaris10 ID
  ARC: mm: SIGSEGV userspace trying to access kernel virtual memory
  ARC: mm: fix uninitialised signal code in do_page_fault
  signal/arc: Use force_sig_fault where appropriate
  dm crypt: move detailed message into debug level
  cifs: smbd: take an array of reqeusts when sending upper layer data
  PCI: dwc: Use devm_pci_alloc_host_bridge() to simplify code
  mmc: sdhci-pci: Add support for Intel CML
  blk-mq: free hw queue's resource in hctx's release handler
  dm mpath: fix missing call of path selector type->end_io
  PCI: Reset Lenovo ThinkPad P50 nvgpu at boot if necessary
  PCI: Add macro for Switchtec quirk declarations
  dt-bindings: mmc: Add disable-cqe-dcmd property.
  dt-bindings: mmc: Add supports-cqe property
  ARM: dts: qcom: ipq4019: enlarge PCIe BAR range
  ARM: dts: qcom: ipq4019: Fix MSI IRQ type
  ARM: dts: qcom: ipq4019: fix PCI range
  ext4: protect journal inode's blocks using block_validity
  media: i2c: tda1997x: select V4L2_FWNODE
  cifs: Fix lease buffer length error
  KVM: x86: Always use 32-bit SMRAM save state for 32-bit kernels
  x86/kvm: move kvm_load/put_guest_xcr0 into atomic context
  kvm: mmu: Fix overflow on kvm mmu page limit calculation
  IB/mlx5: Reset access mask when looping inside page fault handler
  arm64: dts: stratix10: add the sysmgr-syscon property from the gmac's
  usb: typec: tcpm: Try PD-2.0 if sink does not respond to 3.0 source-caps
  drm/i915: Sanity check mmap length against object size
  drm/i915: Handle vm_mmap error during I915_GEM_MMAP ioctl with WC set
  CIFS: Fix leaking locked VFS cache pages in writeback retry
  CIFS: Fix error paths in writeback code
  drm: add __user attribute to ptr_to_compat()
  PCI: qcom: Don't deassert reset GPIO during probe
  PCI: qcom: Fix error handling in runtime PM support
  btrfs: init csum_list before possible free
  btrfs: scrub: fix circular locking dependency warning
  btrfs: scrub: move scrub_setup_ctx allocation out of device_list_mutex
  btrfs: scrub: pass fs_info to scrub_setup_ctx
  mmc: renesas_sdhi: Fix card initialization failure in high speed mode
  powerpc/kvm: Save and restore host AMR/IAMR/UAMOR
  spi: spi-gpio: fix SPI_CS_HIGH capability
  x86/kvmclock: set offset for kvm unstable clock
  iwlwifi: add new card for 9260 series
  iwlwifi: fix devices with PCI Device ID 0x34F0 and 11ac RF modules
  drm/nouveau: Don't WARN_ON VCPI allocation failures
  mt76: fix corrupted software generated tx CCMP PN
  iio: adc: exynos-adc: Use proper number of channels for Exynos4x12
  dt-bindings: iio: adc: exynos-adc: Add S5PV210 variant
  iio: adc: exynos-adc: Add S5PV210 variant
  KVM: VMX: Compare only a single byte for VMCS' "launched" in vCPU-run
  bcache: treat stale && dirty keys as bad keys
  bcache: replace hard coded number with BUCKET_GC_GEN_MAX
  tpm: Fix some name collisions with drivers/char/tpm.h
  mfd: Kconfig: Fix I2C_DESIGNWARE_PLATFORM dependencies
  drm/i915/ilk: Fix warning when reading emon_status with no output
  drm/vblank: Allow dynamic per-crtc max_vblank_count
  crypto: ccree - add missing inline qualifier
  crypto: ccree - fix resume race condition on init
  IB/uverbs: Fix OOPs upon device disassociation
  ARC: mm: do_page_fault fixes #1: relinquish mmap_sem if signal arrives while handle_mm_fault
  ARC: show_regs: lockdep: re-enable preemption
  media: vim2m: only cancel work if it is for right context
  btrfs: Use real device structure to verify dev extent
  btrfs: volumes: Make sure no dev extent is beyond device boundary
  powerpc/pkeys: Fix handling of pkey state across fork()
  scsi: megaraid_sas: Use 63-bit DMA addressing
  scsi: megaraid_sas: Add check for reset adapter bit
  scsi: megaraid_sas: Fix combined reply queue mode detection
  btrfs: Fix error handling in btrfs_cleanup_ordered_extents
  btrfs: Remove extent_io_ops::fill_delalloc
  Btrfs: fix deadlock with memory reclaim during scrub
  Btrfs: clean up scrub is_dev_replace parameter
  KVM: PPC: Book3S HV: Fix race between kvm_unmap_hva_range and MMU mode switch
  drm/i915: Cleanup gt powerstate from gem
  drm/i915: Restore sane defaults for KMS on GEM error load
  media: vim2m: use cancel_delayed_work_sync instead of flush_schedule_work
  media: vim2m: use workqueue
  s390/zcrypt: reinit ap queue state machine during device probe
  ARM: davinci: dm644x: define gpio interrupts as separate resources
  ARM: davinci: dm355: define gpio interrupts as separate resources
  ARM: davinci: dm646x: define gpio interrupts as separate resources
  ARM: davinci: dm365: define gpio interrupts as separate resources
  ARM: davinci: da8xx: define gpio interrupts as separate resources
  drm/amd/dm: Understand why attaching path/tile properties are needed
  drm/amd/pp: Fix truncated clock value when set watermark
  powerplay: Respect units on max dcfclk watermark
  Drivers: hv: kvp: Fix the recent regression caused by incorrect clean-up
  Drivers: hv: kvp: Fix the indentation of some "break" statements
  drm/atomic_helper: Disallow new modesets on unregistered connectors
  drm/i915/gen9+: Fix initial readout for Y tiled framebuffers
  drm/i915: Rename PLANE_CTL_DECOMPRESSION_ENABLE
  drm/i915: Fix intel_dp_mst_best_encoder()
  x86/kvm/lapic: preserve gfn_to_hva_cache len on cache reinit
  KVM: hyperv: define VP assist page helpers
  KVM: x86: hyperv: keep track of mismatched VP indexes
  KVM: x86: hyperv: consistently use 'hv_vcpu' for 'struct kvm_vcpu_hv' variables
  KVM: x86: hyperv: enforce vp_index < KVM_MAX_VCPUS
  drm/amdgpu: Update gc_9_0 golden settings.
  drm/amdgpu/gfx9: Update gfx9 golden settings.
  remoteproc: qcom: q6v5-mss: add SCM probe dependency
  x86, hibernate: Fix nosave_regions setup for hibernation
  Drivers: hv: kvp: Fix two "this statement may fall through" warnings
  keys: Fix the use of the C++ keyword "private" in uapi/linux/keyctl.h
  scsi: qla2xxx: Move log messages before issuing command to firmware
  media: cec: remove cec-edid.c
  media: cec/v4l2: move V4L2 specific CEC functions to V4L2
  drm/i915: Re-apply "Perform link quality check, unconditionally during long pulse"
  kernel/module: Fix mem leak in module_add_modinfo_attrs
  modules: always page-align module section allocations
  remoteproc: qcom: q6v5: shore up resource probe handling
  clk: s2mps11: Add used attribute to s2mps11_dt_match
  nvme-fc: use separate work queue to avoid warning
  riscv: remove unused variable in ftrace
  scripts/decode_stacktrace: match basepath using shell prefix operator, not regex
  arm64: dts: rockchip: enable usb-host regulators at boot on rk3328-rock64
  media: stm32-dcmi: fix irq = 0 case
  powerpc/64: mark start_here_multiplatform as __ref
  x86/ftrace: Fix warning and considate ftrace_jmp_replace() and ftrace_call_replace()
  selftests: fib_rule_tests: use pre-defined DEV_ADDR
  timekeeping: Use proper ktime_add when adding nsecs in coarse offset
  {nl,mac}80211: fix interface combinations on crypto controlled devices
  blk-iolatency: fix STS_AGAIN handling
  Blk-iolatency: warn on negative inflight IO counter
  hv_sock: Fix hang when a connection is closed
  batman-adv: Only read OGM tvlv_len after buffer len check
  batman-adv: fix uninit-value in batadv_netlink_get_ifindex()
  powerpc/tm: Fix FP/VMX unavailable exceptions inside a transaction
  vhost/test: fix build for vhost test - again
  vhost/test: fix build for vhost test
  drm/vmwgfx: Fix double free in vmw_recv_msg()
  sched/fair: Don't assign runtime for throttled cfs_rq
  ALSA: hda/realtek - Fix the problem of two front mics on a ThinkCentre
  ALSA: hda/realtek - Enable internal speaker & headset mic of ASUS UX431FL
  ALSA: hda/realtek - Add quirk for HP Pavilion 15
  ALSA: hda/realtek - Fix overridden device-specific initialization
  ALSA: hda - Fix potential endless loop at applying quirks
  ANDROID: regression introduced override_creds=off

Change-Id: I74d7d497d9ec70b589ac400f62e266858ee7893d
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-09-18 00:41:18 -07:00
Yufen Yu
69409854ba dm mpath: fix missing call of path selector type->end_io
[ Upstream commit 5de719e3d01b4abe0de0d7b857148a880ff2a90b ]

After commit 396eaf21ee ("blk-mq: improve DM's blk-mq IO merging via
blk_insert_cloned_request feedback"), map_request() will requeue the tio
when issued clone request return BLK_STS_RESOURCE or BLK_STS_DEV_RESOURCE.

Thus, if device driver status is error, a tio may be requeued multiple
times until the return value is not DM_MAPIO_REQUEUE.  That means
type->start_io may be called multiple times, while type->end_io is only
called when IO complete.

In fact, even without commit 396eaf21ee, setup_clone() failure can
also cause tio requeue and associated missed call to type->end_io.

The service-time path selector selects path based on in_flight_size,
which is increased by st_start_io() and decreased by st_end_io().
Missed calls to st_end_io() can lead to in_flight_size count error and
will cause the selector to make the wrong choice.  In addition,
queue-length path selector will also be affected.

To fix the problem, call type->end_io in ->release_clone_rq before tio
requeue.  map_info is passed to ->release_clone_rq() for map_request()
error path that result in requeue.

Fixes: 396eaf21ee ("blk-mq: improve DM's blk-mq IO merging via blk_insert_cloned_request feedback")
Cc: stable@vger.kernl.org
Signed-off-by: Yufen Yu <yuyufen@huawei.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2019-09-16 08:22:12 +02:00
Ivaylo Georgiev
6f910c4e90 Merge android-4.19.31 (bb418a1) into msm-4.19
* refs/heads/tmp-bb418a1:
  Linux 4.19.31
  s390/setup: fix boot crash for machine without EDAT-1
  bcache: use (REQ_META|REQ_PRIO) to indicate bio for metadata
  KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
  KVM: nVMX: Apply addr size mask to effective address for VMX instructions
  KVM: nVMX: Sign extend displacements of VMX instr's mem operands
  KVM: x86/mmu: Do not cache MMIO accesses while memslots are in flux
  KVM: x86/mmu: Detect MMIO generation wrap in any address space
  KVM: Call kvm_arch_memslots_updated() before updating memslots
  drm/amd/display: don't call dm_pp_ function from an fpu block
  drm/amd/powerplay: correct power reading on fiji
  drm/radeon/evergreen_cs: fix missing break in switch statement
  drm/fb-helper: generic: Fix drm_fbdev_client_restore()
  media: imx: csi: Stop upstream before disabling IDMA channel
  media: imx: csi: Disable CSI immediately after last EOF
  media: vimc: Add vimc-streamer for stream control
  media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
  media: lgdt330x: fix lock status reporting
  media: imx: prpencvf: Stop upstream before disabling IDMA channel
  rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
  tpm: Unify the send callback behaviour
  tpm/tpm_crb: Avoid unaligned reads in crb_recv()
  md: Fix failed allocation of md_register_thread
  perf intel-pt: Fix divide by zero when TSC is not available
  perf/x86/intel/uncore: Fix client IMC events return huge result
  perf intel-pt: Fix overlap calculation for padding
  perf auxtrace: Define auxtrace record alignment
  perf tools: Fix split_kallsyms_for_kcore() for trampoline symbols
  perf intel-pt: Fix CYC timestamp calculation after OVF
  x86/unwind/orc: Fix ORC unwind table alignment
  vt: perform safe console erase in the right order
  stable-kernel-rules.rst: add link to networking patch queue
  bcache: never writeback a discard operation
  PM / wakeup: Rework wakeup source timer cancellation
  svcrpc: fix UDP on servers with lots of threads
  NFSv4.1: Reinitialise sequence results before retransmitting a request
  nfsd: fix wrong check in write_v4_end_grace()
  nfsd: fix memory corruption caused by readdir
  nfsd: fix performance-limiting session calculation
  NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
  NFS: Fix an I/O request leakage in nfs_do_recoalesce
  NFS: Fix I/O request leakages
  cpcap-charger: generate events for userspace
  mfd: sm501: Fix potential NULL pointer dereference
  dm integrity: limit the rate of error messages
  dm: fix to_sector() for 32bit
  ipmi_si: fix use-after-free of resource->name
  arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2
  arm64: debug: Ensure debug handlers check triggering exception level
  arm64: Fix HCR.TGE status for NMI contexts
  ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
  powerpc/traps: Fix the message printed when stack overflows
  powerpc/traps: fix recoverability of machine check handling on book3s/32
  powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR configuration
  powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
  powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
  powerpc/powernv: Don't reprogram SLW image on every KVM guest entry/exit
  powerpc/83xx: Also save/restore SPRG4-7 during suspend
  powerpc/powernv: Make opal log only readable by root
  powerpc/wii: properly disable use of BATs when requested.
  powerpc/32: Clear on-stack exception marker upon exception return
  security/selinux: fix SECURITY_LSM_NATIVE_LABELS on reused superblock
  selinux: add the missing walk_size + len check in selinux_sctp_bind_connect
  jbd2: fix compile warning when using JBUFFER_TRACE
  jbd2: clear dirty flag when revoking a buffer from an older transaction
  serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
  serial: 8250_pci: Fix number of ports for ACCES serial cards
  serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
  serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
  bpf: only test gso type on gso packets
  drm/i915: Relax mmap VMA check
  can: flexcan: FLEXCAN_IFLAG_MB: add () around macro argument
  gpio: pca953x: Fix dereference of irq data in shutdown
  media: i2c: ov5640: Fix post-reset delay
  i2c: tegra: fix maximum transfer size
  parport_pc: fix find_superio io compare code, should use equal test.
  intel_th: Don't reference unassigned outputs
  device property: Fix the length used in PROPERTY_ENTRY_STRING()
  kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
  mm/memory.c: do_fault: avoid usage of stale vm_area_struct
  mm/vmalloc: fix size check for remap_vmalloc_range_partial()
  mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
  dmaengine: usb-dmac: Make DMAC system sleep callbacks explicit
  usb: typec: tps6598x: handle block writes separately with plain-I2C adapters
  usb: chipidea: tegra: Fix missed ci_hdrc_remove_device()
  clk: ingenic: Fix doc of ingenic_cgu_div_info
  clk: ingenic: Fix round_rate misbehaving with non-integer dividers
  clk: samsung: exynos5: Fix kfree() of const memory on setting driver_override
  clk: samsung: exynos5: Fix possible NULL pointer exception on platform_device_alloc() failure
  clk: clk-twl6040: Fix imprecise external abort for pdmclk
  clk: uniphier: Fix update register for CPU-gear
  ext2: Fix underflow in ext2_max_size()
  cxl: Wrap iterations over afu slices inside 'afu_list_lock'
  IB/hfi1: Close race condition on user context disable and close
  PCI: dwc: skip MSI init if MSIs have been explicitly disabled
  PCI/DPC: Fix print AER status in DPC event handling
  PCI/ASPM: Use LTR if already enabled by platform
  ext4: fix crash during online resizing
  ext4: add mask of ext4 flags to swap
  ext4: update quota information while swapping boot loader inode
  ext4: cleanup pagecache before swap i_data
  ext4: fix check of inode in swap_inode_boot_loader
  cpufreq: pxa2xx: remove incorrect __init annotation
  cpufreq: tegra124: add missing of_node_put()
  cpufreq: kryo: Release OPP tables on module removal
  x86/kprobes: Prohibit probing on optprobe template code
  irqchip/brcmstb-l2: Use _irqsave locking variants in non-interrupt code
  irqchip/gic-v3-its: Avoid parsing _indirect_ twice for Device table
  libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
  soc: qcom: rpmh: Avoid accessing freed memory from batch API
  Btrfs: fix corruption reading shared and compressed extents after hole punching
  btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
  Btrfs: setup a nofs context for memory allocation at __btrfs_set_acl
  Btrfs: setup a nofs context for memory allocation at btrfs_create_tree()
  m68k: Add -ffreestanding to CFLAGS
  ovl: Do not lose security.capability xattr over metadata file copy-up
  ovl: During copy up, first copy up data and then xattrs
  splice: don't merge into linked buffers
  fs/devpts: always delete dcache dentry-s in dput()
  scsi: qla2xxx: Fix LUN discovery if loop id is not assigned yet by firmware
  scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
  scsi: sd: Optimal I/O size should be a multiple of physical block size
  scsi: aacraid: Fix performance issue on logical drives
  scsi: virtio_scsi: don't send sc payload with tmfs
  s390/virtio: handle find on invalid queue gracefully
  s390/setup: fix early warning messages
  clocksource/drivers/arch_timer: Workaround for Allwinner A64 timer instability
  clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
  clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
  regulator: s2mpa01: Fix step values for some LDOs
  regulator: max77620: Initialize values for DT properties
  regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
  spi: pxa2xx: Setup maximum supported DMA transfer length
  spi: ti-qspi: Fix mmap read when more than one CS in use
  netfilter: ipt_CLUSTERIP: fix warning unused variable cn
  mmc:fix a bug when max_discard is 0
  mmc: sdhci-esdhc-imx: fix HS400 timing issue
  ACPI / device_sysfs: Avoid OF modalias creation for removed device
  xen: fix dom0 boot on huge systems
  tracing/perf: Use strndup_user() instead of buggy open-coded version
  tracing: Do not free iter->trace in fail path of tracing_open_pipe()
  tracing: Use strncpy instead of memcpy for string keys in hist triggers
  CIFS: Fix read after write for files with read caching
  CIFS: Do not skip SMB2 message IDs on send failures
  CIFS: Do not reset lease state to NONE on lease break
  crypto: arm64/aes-ccm - fix bugs in non-NEON fallback routine
  crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
  crypto: x86/morus - fix handling chunked inputs and MAY_SLEEP
  crypto: x86/aesni-gcm - fix crash on empty plaintext
  crypto: x86/aegis - fix handling chunked inputs and MAY_SLEEP
  crypto: testmgr - skip crc32c context test for ahash algorithms
  crypto: skcipher - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
  crypto: pcbc - remove bogus memcpy()s with src == dest
  crypto: morus - fix handling chunked inputs
  crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
  crypto: arm64/crct10dif - revert to C code for short inputs
  crypto: arm64/aes-neonbs - fix returning final keystream block
  crypto: arm/crct10dif - revert to C code for short inputs
  crypto: aegis - fix handling chunked inputs
  crypto: aead - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
  fix cgroup_do_mount() handling of failure exits
  libnvdimm: Fix altmap reservation size calculation
  libnvdimm/pmem: Honor force_raw for legacy pmem regions
  libnvdimm, pfn: Fix over-trim in trim_pfn_device()
  libnvdimm/label: Clear 'updating' flag after label-set update
  nfit/ars: Attempt short-ARS even in the no_init_ars case
  nfit/ars: Attempt a short-ARS whenever the ARS state is idle at boot
  acpi/nfit: Fix bus command validation
  nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
  stm class: Prevent division by zero
  tmpfs: fix uninitialized return value in shmem_link
  selftests: fib_tests: sleep after changing carrier. again.
  net: set static variable an initial value in atl2_probe()
  bnxt_en: Wait longer for the firmware message response to complete.
  bnxt_en: Fix typo in firmware message timeout logic.
  nfp: bpf: fix ALU32 high bits clearance bug
  nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
  net: thunderx: add nicvf_send_msg_to_pf result check for set_rx_mode_task
  net: thunderx: make CFG_DONE message to run through generic send-ack sequence
  bpf, lpm: fix lookup bug in map_delete_elem
  mac80211_hwsim: propagate genlmsg_reply return code
  phonet: fix building with clang
  ARCv2: don't assume core 0x54 has dual issue
  ARCv2: support manual regfile save on interrupts
  ARC: uacces: remove lp_start, lp_end from clobber list
  ARCv2: lib: memcpy: fix doing prefetchw outside of buffer
  ixgbe: fix older devices that do not support IXGBE_MRQC_L3L4TXSWEN
  tmpfs: fix link accounting when a tmpfile is linked in
  mm: handle lru_add_drain_all for UP properly
  net: marvell: mvneta: fix DMA debug warning
  ARM: tegra: Restore DT ABI on Tegra124 Chromebooks
  arm64: Relax GIC version check during early boot
  ARM: dts: armada-xp: fix Armada XP boards NAND description
  qed: Fix iWARP syn packet mac address validation.
  qed: Fix iWARP buffer size provided for syn packet processing.
  ASoC: topology: free created components in tplg load error
  mailbox: bcm-flexrm-mailbox: Fix FlexRM ring flush timeout issue
  xfrm: Fix inbound traffic via XFRM interfaces across network namespaces
  net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
  qmi_wwan: apply SET_DTR quirk to Sierra WP7607
  pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
  net: dsa: bcm_sf2: Do not assume DSA master supports WoL
  net: systemport: Fix reception of BPDUs
  scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
  keys: Fix dependency loop between construction record and auth key
  assoc_array: Fix shortcut creation
  ARM: 8835/1: dma-mapping: Clear DMA ops on teardown
  af_key: unconditionally clone on broadcast
  bpf: fix lockdep false positive in stackmap
  bpf: only adjust gso_size on bytestream protocols
  ARM: 8824/1: fix a migrating irq bug when hotplug cpu
  esp: Skip TX bytes accounting when sending from a request socket
  clk: sunxi: A31: Fix wrong AHB gate number
  kallsyms: Handle too long symbols in kallsyms.c
  clk: sunxi-ng: v3s: Fix TCON reset de-assert bit
  Input: st-keyscan - fix potential zalloc NULL dereference
  auxdisplay: ht16k33: fix potential user-after-free on module unload
  i2c: bcm2835: Clear current buffer pointers and counts after a transfer
  i2c: cadence: Fix the hold bit setting
  net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
  mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs
  x86/CPU: Add Icelake model number
  net: dsa: bcm_sf2: potential array overflow in bcm_sf2_sw_suspend()
  scsi: qla2xxx: Fix panic from use after free in qla2x00_async_tm_cmd
  Revert "mm: use early_pfn_to_nid in page_ext_init"
  mm/gup: fix gup_pmd_range() for dax
  NFS: Don't use page_file_mapping after removing the page
  xprtrdma: Make sure Send CQ is allocated on an existing compvec
  floppy: check_events callback should not return a negative number
  ipvs: fix dependency on nf_defrag_ipv6
  blk-mq: insert rq with DONTPREP to hctx dispatch list when requeue
  netfilter: compat: initialize all fields in xt_init
  mac80211: Fix Tx aggregation session tear down with ITXQs
  mac80211: call drv_ibss_join() on restart
  Input: matrix_keypad - use flush_delayed_work()
  Input: ps2-gpio - flush TX work when closing port
  Input: cap11xx - switch to using set_brightness_blocking()
  ARM: OMAP2+: fix lack of timer interrupts on CPU1 after hotplug
  ASoC: samsung: Prevent clk_get_rate() calls in atomic context
  KVM: arm64: Forbid kprobing of the VHE world-switch code
  KVM: arm/arm64: vgic: Always initialize the group of private IRQs
  arm/arm64: KVM: Don't panic on failure to properly reset system registers
  arm/arm64: KVM: Allow a VCPU to fully reset itself
  KVM: arm/arm64: Reset the VCPU without preemption and vcpu state loaded
  ASoC: rsnd: fixup rsnd_ssi_master_clk_start() user count check
  ASoC: dapm: fix out-of-bounds accesses to DAPM lookup tables
  ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
  ARM: dts: Configure clock parent for pwm vibra
  Input: pwm-vibra - stop regulator after disabling pwm, not before
  Input: pwm-vibra - prevent unbalanced regulator
  s390/dasd: fix using offset into zero size array error
  arm64: dts: rockchip: fix graph_port warning on rk3399 bob kevin and excavator
  KVM: arm/arm64: vgic: Make vgic_dist->lpi_list_lock a raw_spinlock
  clocksource: timer-ti-dm: Fix pwm dmtimer usage of fck reparenting
  ASoC: rt5682: Correct the setting while select ASRC clk for AD/DA filter
  gpu: ipu-v3: Fix CSI offsets for imx53
  drm/imx: imx-ldb: add missing of_node_puts
  gpu: ipu-v3: Fix i.MX51 CSI control registers offset
  drm/imx: ignore plane updates on disabled crtcs
  crypto: rockchip - update new iv to device in multiple operations
  crypto: rockchip - fix scatterlist nents error
  crypto: ahash - fix another early termination in hash walk
  crypto: cfb - remove bogus memcpy() with src == dest
  crypto: cfb - add missing 'chunksize' property
  crypto: ccree - don't copy zero size ciphertext
  crypto: ccree - unmap buffer before copying IV
  crypto: ccree - fix free of unallocated mlli buffer
  crypto: caam - fix DMA mapping of stack memory
  crypto: caam - fixed handling of sg list
  crypto: ccree - fix missing break in switch statement
  crypto: caam - fix hash context DMA unmap size
  stm class: Fix an endless loop in channel allocation
  mei: bus: move hw module get/put to probe/release
  mei: hbm: clean the feature flags on link reset
  iio: adc: exynos-adc: Fix NULL pointer exception on unbind
  ASoC: codecs: pcm186x: Fix energysense SLEEP bit
  ASoC: codecs: pcm186x: fix wrong usage of DECLARE_TLV_DB_SCALE()
  ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
  9p/net: fix memory leak in p9_client_create
  9p: use inode->i_lock to protect i_size_write() under 32-bit
  media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
  ANDROID: cuttlefish_defconfig: Enable CONFIG_INPUT_MOUSEDEV
  FROMLIST: psi: introduce psi monitor
  FROMLIST: refactor header includes to allow kthread.h inclusion in psi_types.h
  FROMLIST: psi: track changed states
  FROMLIST: psi: split update_stats into parts
  FROMLIST: psi: rename psi fields in preparation for psi trigger addition
  FROMLIST: psi: make psi_enable static
  FROMLIST: psi: introduce state_mask to represent stalled psi states
  ANDROID: cuttlefish_defconfig: Enable CONFIG_PSI
  UPSTREAM: kernel: cgroup: add poll file operation
  UPSTREAM: fs: kernfs: add poll file operation
  UPSTREAM: psi: avoid divide-by-zero crash inside virtual machines
  UPSTREAM: psi: clarify the Kconfig text for the default-disable option
  UPSTREAM: psi: fix aggregation idle shut-off
  UPSTREAM: psi: fix reference to kernel commandline enable
  UPSTREAM: psi: make disabling/enabling easier for vendor kernels
  UPSTREAM: kernel/sched/psi.c: simplify cgroup_move_task()
  UPSTREAM: psi: cgroup support
  UPSTREAM: psi: pressure stall information for CPU, memory, and IO
  UPSTREAM: sched: introduce this_rq_lock_irq()
  UPSTREAM: sched: sched.h: make rq locking and clock functions available in stats.h
  UPSTREAM: sched: loadavg: make calc_load_n() public
  BACKPORT: sched: loadavg: consolidate LOAD_INT, LOAD_FRAC, CALC_LOAD
  UPSTREAM: delayacct: track delays from thrashing cache pages
  UPSTREAM: mm: workingset: tell cache transitions from workingset thrashing

Conflicts:
	arch/arm/kernel/irq.c
	drivers/scsi/sd.c
	include/linux/sched.h
	init/Kconfig
	kernel/sched/Makefile
	kernel/sched/sched.h
	kernel/workqueue.c
	sound/soc/soc-dapm.c

Change-Id: Ia2dcc01c712134c57037ca6788d51172f66bcd93
Signed-off-by: Ivaylo Georgiev <irgeorgiev@codeaurora.org>
2019-04-05 01:06:22 -07:00
NeilBrown
7668d6e45f dm: fix to_sector() for 32bit
commit 0bdb50c531f7377a9da80d3ce2d61f389c84cb30 upstream.

A dm-raid array with devices larger than 4GB won't assemble on
a 32 bit host since _check_data_dev_sectors() was added in 4.16.
This is because to_sector() treats its argument as an "unsigned long"
which is 32bits (4GB) on a 32bit host.  Using "unsigned long long"
is more correct.

Kernels as early as 4.2 can have other problems due to to_sector()
being used on the size of a device.

Fixes: 0cf4503174 ("dm raid: add support for the MD RAID0 personality")
cc: stable@vger.kernel.org (v4.2+)
Reported-and-tested-by: Guillaume Perréal <gperreal@free.fr>
Signed-off-by: NeilBrown <neil@brown.name>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-03-23 20:10:09 +01:00
David Zeuthen
8d258cdc24 ANDROID: dm: do_mounts_dm: Update init/do_mounts_dm.c to the latest ChromiumOS version.
This is needed for AVB.

Bug: None
Test: Compiles.
Change-Id: I45b5d435652ab66ec07420ab17f2c7889f7e4d95
Signed-off-by: David Zeuthen <zeuthen@google.com>
2018-08-28 16:46:04 +05:30
Will Drewry
ee3ad542dd CHROMIUM: dm: boot time specification of dm=
This is a wrap-up of three patches pending upstream approval.
I'm bundling them because they are interdependent, and it'll be
easier to drop it on rebase later.

1. dm: allow a dm-fs-style device to be shared via dm-ioctl

Integrates feedback from Alisdair, Mike, and Kiyoshi.

Two main changes occur here:

- One function is added which allows for a programmatically created
mapped device to be inserted into the dm-ioctl hash table.  This binds
the device to a name and, optional, uuid which is needed by udev and
allows for userspace management of the mapped device.

- dm_table_complete() was extended to handle all of the final
functional changes required for the table to be operational once
called.

2. init: boot to device-mapper targets without an initr*

Add a dm= kernel parameter modeled after the md= parameter from
do_mounts_md.  It allows for device-mapper targets to be configured at
boot time for use early in the boot process (as the root device or
otherwise).  It also replaces /dev/XXX calls with major:minor opportunistically.

The format is dm="name uuid ro,table line 1,table line 2,...".  The
parser expects the comma to be safe to use as a newline substitute but,
otherwise, uses the normal separator of space.  Some attempt has been
made to make it forgiving of additional spaces (using skip_spaces()).

A mapped device created during boot will be assigned a minor of 0 and
may be access via /dev/dm-0.

An example dm-linear root with no uuid may look like:

root=/dev/dm-0  dm="lroot none ro, 0 4096 linear /dev/ubdb 0, 4096 4096 linear /dv/ubdc 0"

Once udev is started, /dev/dm-0 will become /dev/mapper/lroot.

Older upstream threads:
http://marc.info/?l=dm-devel&m=127429492521964&w=2
http://marc.info/?l=dm-devel&m=127429499422096&w=2
http://marc.info/?l=dm-devel&m=127429493922000&w=2

Latest upstream threads:
https://patchwork.kernel.org/patch/104859/
https://patchwork.kernel.org/patch/104860/
https://patchwork.kernel.org/patch/104861/

Bug: 27175947

Signed-off-by: Will Drewry <wad@chromium.org>

Review URL: http://codereview.chromium.org/2020011

Change-Id: I92bd53432a11241228d2e5ac89a3b20d19b05a31

[AmitP: Refactored the original changes based on upstream changes,
        commit e52347bd66 ("Documentation/admin-guide: split the kernel parameter list to a separate file")]
Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
2018-08-28 16:46:04 +05:30
Dan Williams
b3a9a0c36e dax: Introduce a ->copy_to_iter dax operation
Similar to the ->copy_from_iter() operation, a platform may want to
deploy an architecture or device specific routine for handling reads
from a dax_device like /dev/pmemX. On x86 this routine will point to a
machine check safe version of copy_to_iter(). For now, add the plumbing
to device-mapper and the dax core.

Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2018-05-22 23:18:31 -07:00
Linus Torvalds
83c7c18b16 Merge tag 'for-4.17/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
Pull device mapper updates from Mike Snitzer:

 - DM core passthrough ioctl fix to retain reference to DM table, and
   that table's block devices, while issuing the ioctl to one of those
   block devices.

 - DM core passthrough ioctl fix to _not_ override the fmode_t used to
   issue the ioctl. Overriding by using the fmode_t that the block
   device was originally open with during DM table load is a liability.

 - Add DM core support for secure erase forwarding and update the DM
   linear and DM striped targets to support them.

 - A DM core 4.16 stable fix to allow abnormal IO (e.g. discard, write
   same, write zeroes) for targets that make use of the non-splitting IO
   variant (as is done for multipath or thinp when layered directly on
   NVMe).

 - Allow DM targets to return a payload in response to a DM message that
   they are sent. This is useful for DM targets that would like to
   provide statistics data in response to DM messages.

 - Update DM bufio to support non-power-of-2 block sizes. Numerous other
   related changes prepare the DM bufio code for this support.

 - Fix DM crypt to use a bounded amount of memory across the entire
   system. This is to avoid OOM that can otherwise occur in response to
   certain pathological IO workloads (e.g. discarding a large DM crypt
   device).

 - Add a 'check_at_most_once' feature to the DM verity target to allow
   verity to be used on mobile devices that have very limited resources.

 - Fix the DM integrity target to fail early if a keyed algorithm (e.g.
   HMAC) is to be used but the key isn't set.

 - Add non-power-of-2 support to the DM unstripe target.

 - Eliminate the use of a Variable Length Array in the DM stripe target.

 - Update the DM log-writes target to record metadata (REQ_META flag).

 - DM raid fixes for its nosync status and some variable range issues.

* tag 'for-4.17/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (28 commits)
  dm: remove fmode_t argument from .prepare_ioctl hook
  dm: hold DM table for duration of ioctl rather than use blkdev_get
  dm raid: fix parse_raid_params() variable range issue
  dm verity: make verity_for_io_block static
  dm verity: add 'check_at_most_once' option to only validate hashes once
  dm bufio: don't embed a bio in the dm_buffer structure
  dm bufio: support non-power-of-two block sizes
  dm bufio: use slab cache for dm_buffer structure allocations
  dm bufio: reorder fields in dm_buffer structure
  dm bufio: relax alignment constraint on slab cache
  dm bufio: remove code that merges slab caches
  dm bufio: get rid of slab cache name allocations
  dm bufio: move dm-bufio.h to include/linux/
  dm bufio: delete outdated comment
  dm: add support for secure erase forwarding
  dm: backfill abnormal IO support to non-splitting IO submission
  dm raid: fix nosync status
  dm mpath: use DM_MAPIO_SUBMITTED instead of magic number 0 in process_queued_bios()
  dm stripe: get rid of a Variable Length Array (VLA)
  dm log writes: record metadata flag for better flags record
  ...
2018-04-06 11:50:19 -07:00
Mike Snitzer
5bd5e8d891 dm: remove fmode_t argument from .prepare_ioctl hook
Use the fmode_t that is passed to dm_blk_ioctl() rather than
inconsistently (varies across targets) drop it on the floor by
overriding it with the fmode_t stored in 'struct dm_dev'.

All the persistent reservation functions weren't using the fmode_t they
got back from .prepare_ioctl so remove them.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2018-04-04 12:12:39 -04:00
Denis Semakin
00716545c8 dm: add support for secure erase forwarding
Set QUEUE_FLAG_SECERASE in DM device's queue_flags if a DM table's
data devices support secure erase.

Also, add support for secure erase to both the linear and striped
targets.

Signed-off-by: Denis Semakin <d.semakin@omprussia.ru>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2018-04-03 15:04:21 -04:00
Mike Snitzer
1eb5fa849f dm: allow targets to return output from messages they are sent
Could be useful for a target to return stats or other information.
If a target does DMEMIT() anything to @result from its .message method
then it must return 1 to the caller.

Signed-off-By: Mike Snitzer <snitzer@redhat.com>
2018-04-03 15:04:10 -04:00
Bart Van Assche
233bde21aa block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>
It happens often while I'm preparing a patch for a block driver that
I'm wondering: is a definition of SECTOR_SIZE and/or SECTOR_SHIFT
available for this driver? Do I have to introduce definitions of these
constants before I can use these constants? To avoid this confusion,
move the existing definitions of SECTOR_SIZE and SECTOR_SHIFT into the
<linux/blkdev.h> header file such that these become available for all
block drivers. Make the SECTOR_SIZE definition in the uapi msdos_fs.h
header file conditional to avoid that including that header file after
<linux/blkdev.h> causes the compiler to complain about a SECTOR_SIZE
redefinition.

Note: the SECTOR_SIZE / SECTOR_SHIFT / SECTOR_BITS definitions have
not been removed from uapi header files nor from NAND drivers in
which these constants are used for another purpose than converting
block layer offsets and sizes into a number of sectors.

Cc: David S. Miller <davem@davemloft.net>
Cc: Mike Snitzer <snitzer@redhat.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Minchan Kim <minchan@kernel.org>
Cc: Nitin Gupta <ngupta@vflare.org>
Reviewed-by: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
2018-03-17 14:45:23 -06:00
Mike Snitzer
ac514ffc96 dm mpath: delay the retry of a request if the target responded as busy
Add DM_ENDIO_DELAY_REQUEUE to allow request-based multipath's
multipath_end_io() to instruct dm-rq.c:dm_done() to delay a requeue.
This is beneficial to do if BLK_STS_RESOURCE is returned from the target
(because target is busy).

Relative to blk-mq: kick the hw queues via blk_mq_requeue_work(),
indirectly from dm-rq.c:__dm_mq_kick_requeue_list(), after a delay.

For old .request_fn: use blk_delay_queue().

bio-based multipath doesn't have feature parity with request-based for
retryable error requeues; that is something that'll need fixing in the
future.

Suggested-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Acked-by: Bart Van Assche <bart.vanassche@wdc.com>
[as interpreted from Bart's "... patch looks fine to me."]
2018-01-29 13:44:54 -05:00
Brian Norris
f6e7baadd9 dm: move dm_table_destroy() to same header as dm_table_create()
If anyone is going to use dm_table_create(), they probably should be
able to use dm_table_destroy() too. Move the dm_table_destroy()
definition outside the private header, near dm_table_create()

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2018-01-17 09:16:06 -05:00
Mike Snitzer
22c11858e8 dm: introduce DM_TYPE_NVME_BIO_BASED
If dm_table_determine_type() establishes DM_TYPE_NVME_BIO_BASED then
all devices in the DM table do not support partial completions.  Also,
the table has a single immutable target that doesn't require DM core to
split bios.

This will enable adding NVMe optimizations to bio-based DM.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-12-20 10:51:10 -05:00
Mike Snitzer
64f52b0e31 dm: improve performance by moving dm_io structure to per-bio-data
Eliminates need for a separate mempool to allocate 'struct dm_io'
objects from.  As such, it saves an extra mempool allocation for each
original bio that DM core is issued.

This complicates the per-bio-data accessor functions by needing to
conditonally add extra padding to get to a target's per-bio-data.  But
in the end this provides a decent performance improvement for all
bio-based DM devices.

On an NVMe-loop based testbed to a ramdisk (~3100 MB/s): bio-based
DM linear performance improved by 2% (went from 2665 to 2777 MB/s).

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-12-16 20:43:13 -05:00
NeilBrown
f31c21e436 dm: remove unused 'num_write_bios' target interface
No DM target provides num_write_bios and none has since dm-cache's
brief use in 2013.

Having the possibility of num_write_bios > 1 complicates bio
allocation.  So remove the interface and assume there is only one bio
needed.

If a target ever needs more, it must provide a suitable bioset and
allocate itself based on its particular needs.

Signed-off-by: NeilBrown <neilb@suse.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-12-13 12:15:58 -05:00
Mikulas Patocka
c3ca015fab dax: remove the pmem_dax_ops->flush abstraction
Commit abebfbe2f7 ("dm: add ->flush() dax operation support") is
buggy. A DM device may be composed of multiple underlying devices and
all of them need to be flushed. That commit just routes the flush
request to the first device and ignores the other devices.

It could be fixed by adding more complex logic to the device mapper. But
there is only one implementation of the method pmem_dax_ops->flush - that
is pmem_dax_flush() - and it calls arch_wb_cache_pmem(). Consequently, we
don't need the pmem_dax_ops->flush abstraction at all, we can call
arch_wb_cache_pmem() directly from dax_flush() because dax_dev->ops->flush
can't ever reach anything different from arch_wb_cache_pmem().

It should be also pointed out that for some uses of persistent memory it
is needed to flush only a very small amount of data (such as 1 cacheline),
and it would be overkill if we go through that device mapper machinery for
a single flushed cache line.

Fix this by removing the pmem_dax_ops->flush abstraction and call
arch_wb_cache_pmem() directly from dax_flush(). Also, remove the device
mapper code that forwards the flushes.

Fixes: abebfbe2f7 ("dm: add ->flush() dax operation support")
Cc: stable@vger.kernel.org
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-09-11 11:00:55 -04:00
Eric Biggers
5916a22b83 dm: constify argument arrays
The arrays of 'struct dm_arg' are never modified by the device-mapper
core, so constify them so that they are placed in .rodata.

(Exception: the args array in dm-raid cannot be constified because it is
allocated on the stack and modified.)

Signed-off-by: Eric Biggers <ebiggers@google.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-08-28 11:47:18 -04:00
Bart Van Assche
604407890e dm: fix printk() rate limiting code
Using the same rate limiting state for different kinds of messages
is wrong because this can cause a high frequency message to suppress
a report of a low frequency message. Hence use a unique rate limiting
state per message type.

Fixes: 71a16736a1 ("dm: use local printk ratelimit")
Cc: stable@vger.kernel.org
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-08-28 09:58:27 -04:00
Linus Torvalds
b6ffe9ba46 Merge tag 'libnvdimm-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dan Williams:
 "libnvdimm updates for the latest ACPI and UEFI specifications. This
  pull request also includes new 'struct dax_operations' enabling to
  undo the abuse of copy_user_nocache() for copy operations to pmem.

  The dax work originally missed 4.12 to address concerns raised by Al.

  Summary:

   - Introduce the _flushcache() family of memory copy helpers and use
     them for persistent memory write operations on x86. The
     _flushcache() semantic indicates that the cache is either bypassed
     for the copy operation (movnt) or any lines dirtied by the copy
     operation are written back (clwb, clflushopt, or clflush).

   - Extend dax_operations with ->copy_from_iter() and ->flush()
     operations. These operations and other infrastructure updates allow
     all persistent memory specific dax functionality to be pushed into
     libnvdimm and the pmem driver directly. It also allows dax-specific
     sysfs attributes to be linked to a host device, for example:
     /sys/block/pmem0/dax/write_cache

   - Add support for the new NVDIMM platform/firmware mechanisms
     introduced in ACPI 6.2 and UEFI 2.7. This support includes the v1.2
     namespace label format, extensions to the address-range-scrub
     command set, new error injection commands, and a new BTT
     (block-translation-table) layout. These updates support inter-OS
     and pre-OS compatibility.

   - Fix a longstanding memory corruption bug in nfit_test.

   - Make the pmem and nvdimm-region 'badblocks' sysfs files poll(2)
     capable.

   - Miscellaneous fixes and small updates across libnvdimm and the nfit
     driver.

  Acknowledgements that came after the branch was pushed: commit
  6aa734a2f3 ("libnvdimm, region, pmem: fix 'badblocks'
  sysfs_get_dirent() reference lifetime") was reviewed by Toshi Kani
  <toshi.kani@hpe.com>"

* tag 'libnvdimm-for-4.13' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (42 commits)
  libnvdimm, namespace: record 'lbasize' for pmem namespaces
  acpi/nfit: Issue Start ARS to retrieve existing records
  libnvdimm: New ACPI 6.2 DSM functions
  acpi, nfit: Show bus_dsm_mask in sysfs
  libnvdimm, acpi, nfit: Add bus level dsm mask for pass thru.
  acpi, nfit: Enable DSM pass thru for root functions.
  libnvdimm: passthru functions clear to send
  libnvdimm, btt: convert some info messages to warn/err
  libnvdimm, region, pmem: fix 'badblocks' sysfs_get_dirent() reference lifetime
  libnvdimm: fix the clear-error check in nsio_rw_bytes
  libnvdimm, btt: fix btt_rw_page not returning errors
  acpi, nfit: quiet invalid block-aperture-region warnings
  libnvdimm, btt: BTT updates for UEFI 2.7 format
  acpi, nfit: constify *_attribute_group
  libnvdimm, pmem: disable dax flushing when pmem is fronting a volatile region
  libnvdimm, pmem, dax: export a cache control attribute
  dax: convert to bitmask for flags
  dax: remove default copy_from_iter fallback
  libnvdimm, nfit: enable support for volatile ranges
  libnvdimm, pmem: fix persistence warning
  ...
2017-07-07 09:44:06 -07:00
Damien Le Moal
10999307c1 dm: introduce dm_remap_zone_report()
A target driver support zoned block devices and exposing it as such may
receive REQ_OP_ZONE_REPORT request for the user to determine the mapped
device zone configuration. To process properly such request, the target
driver may need to remap the zone descriptors provided in the report
reply. The helper function dm_remap_zone_report() does this generically
using only the target start offset and length and the start offset
within the target device.

dm_remap_zone_report() will remap the start sector of all zones
reported. If the report includes sequential zones, the write pointer
position of these zones will also be remapped.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-06-19 11:03:51 -04:00
Damien Le Moal
dd88d313be dm table: add zoned block devices validation
1) Introduce DM_TARGET_ZONED_HM feature flag:

The target drivers currently available will not operate correctly if a
table target maps onto a host-managed zoned block device.

To avoid problems, introduce the new feature flag DM_TARGET_ZONED_HM to
allow a target to explicitly state that it supports host-managed zoned
block devices.  This feature is checked for all targets in a table if
any of the table's block devices are host-managed.

Note that as host-aware zoned block devices are backward compatible with
regular block devices, they can be used by any of the current target
types.  This new feature is thus restricted to host-managed zoned block
devices.

2) Check device area zone alignment:

If a target maps to a zoned block device, check that the device area is
aligned on zone boundaries to avoid problems with REQ_OP_ZONE_RESET
operations (resetting a partially mapped sequential zone would not be
possible).  This also facilitates the processing of zone report with
REQ_OP_ZONE_REPORT bios.

3) Check block devices zone model compatibility

When setting the DM device's queue limits, several possibilities exists
for zoned block devices:
1) The DM target driver may want to expose a different zone model
(e.g. host-managed device emulation or regular block device on top of
host-managed zoned block devices)
2) Expose the underlying zone model of the devices as-is

To allow both cases, the underlying block device zone model must be set
in the target limits in dm_set_device_limits() and the compatibility of
all devices checked similarly to the logical block size alignment.  For
this last check, introduce validate_hardware_zoned_model() to check that
all targets of a table have the same zone model and that the zone size
of the target devices are equal.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com>
[Mike Snitzer refactored Damien's original work to simplify the code]
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-06-19 11:03:50 -04:00
Joe Perches
d2c3c8dcb5 dm: convert DM printk macros to pr_<level> macros
Using pr_<level> is the more common logging style.

Standardize style and use new macro DM_FMT.
Use no_printk in DMDEBUG macros when CONFIG_DM_DEBUG is not #defined.

Signed-off-by: Joe Perches <joe@perches.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-06-19 11:03:50 -04:00
Dan Williams
abebfbe2f7 dm: add ->flush() dax operation support
Allow device-mapper to route flush operations to the
per-target implementation. In order for the device stacking to work we
need a dax_dev and a pgoff relative to that device. This gives each
layer of the stack the information it needs to look up the operation
pointer for the next level.

This conceptually allows for an array of mixed device drivers with
varying flush implementations.

Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2017-06-15 14:34:59 -07:00
Dan Williams
7e026c8c0a dm: add ->copy_from_iter() dax operation support
Allow device-mapper to route copy_from_iter operations to the
per-target implementation. In order for the device stacking to work we
need a dax_dev and a pgoff relative to that device. This gives each
layer of the stack the information it needs to look up the operation
pointer for the next level.

This conceptually allows for an array of mixed device drivers with
varying copy_from_iter implementations.

Reviewed-by: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2017-06-09 09:22:21 -07:00
Christoph Hellwig
4e4cbee93d block: switch bios to blk_status_t
Replace bi_error with a new bi_status to allow for a clear conversion.
Note that device mapper overloaded bi_error with a private value, which
we'll have to keep arround at least for now and thus propagate to a
proper blk_status_t value.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-06-09 09:27:32 -06:00
Christoph Hellwig
2a842acab1 block: introduce new block status code type
Currently we use nornal Linux errno values in the block layer, and while
we accept any error a few have overloaded magic meanings.  This patch
instead introduces a new  blk_status_t value that holds block layer specific
status codes and explicitly explains their meaning.  Helpers to convert from
and to the previous special meanings are provided for now, but I suspect
we want to get rid of them in the long run - those drivers that have a
errno input (e.g. networking) usually get errnos that don't know about
the special block layer overloads, and similarly returning them to userspace
will usually return somethings that strictly speaking isn't correct
for file system operations, but that's left as an exercise for later.

For now the set of errors is a very limited set that closely corresponds
to the previous overloaded errno values, but there is some low hanging
fruite to improve it.

blk_status_t (ab)uses the sparse __bitwise annotations to allow for sparse
typechecking, so that we can easily catch places passing the wrong values.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-06-09 09:27:32 -06:00
Christoph Hellwig
1be5690984 dm: change ->end_io calling convention
Turn the error paramter into a pointer so that target drivers can change
the value, and make sure only DM_ENDIO_* values are returned from the
methods.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-06-09 09:27:32 -06:00
Linus Torvalds
53ef7d0e20 Merge tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dan Williams:
 "The bulk of this has been in multiple -next releases. There were a few
  late breaking fixes and small features that got added in the last
  couple days, but the whole set has received a build success
  notification from the kbuild robot.

  Change summary:

   - Region media error reporting: A libnvdimm region device is the
     parent to one or more namespaces. To date, media errors have been
     reported via the "badblocks" attribute attached to pmem block
     devices for namespaces in "raw" or "memory" mode. Given that
     namespaces can be in "device-dax" or "btt-sector" mode this new
     interface reports media errors generically, i.e. independent of
     namespace modes or state.

     This subsequently allows userspace tooling to craft "ACPI 6.1
     Section 9.20.7.6 Function Index 4 - Clear Uncorrectable Error"
     requests and submit them via the ioctl path for NVDIMM root bus
     devices.

   - Introduce 'struct dax_device' and 'struct dax_operations': Prompted
     by a request from Linus and feedback from Christoph this allows for
     dax capable drivers to publish their own custom dax operations.
     This fixes the broken assumption that all dax operations are
     related to a persistent memory device, and makes it easier for
     other architectures and platforms to add customized persistent
     memory support.

   - 'libnvdimm' core updates: A new "deep_flush" sysfs attribute is
     available for storage appliance applications to manually trigger
     memory controllers to drain write-pending buffers that would
     otherwise be flushed automatically by the platform ADR
     (asynchronous-DRAM-refresh) mechanism at a power loss event.
     Support for "locked" DIMMs is included to prevent namespaces from
     surfacing when the namespace label data area is locked. Finally,
     fixes for various reported deadlocks and crashes, also tagged for
     -stable.

   - ACPI / nfit driver updates: General updates of the nfit driver to
     add DSM command overrides, ACPI 6.1 health state flags support, DSM
     payload debug available by default, and various fixes.

  Acknowledgements that came after the branch was pushed:

   - commmit 565851c972 "device-dax: fix sysfs attribute deadlock":
     Tested-by: Yi Zhang <yizhan@redhat.com>

   - commit 23f4984483 "libnvdimm: rework region badblocks clearing"
     Tested-by: Toshi Kani <toshi.kani@hpe.com>"

* tag 'libnvdimm-for-4.12' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (52 commits)
  libnvdimm, pfn: fix 'npfns' vs section alignment
  libnvdimm: handle locked label storage areas
  libnvdimm: convert NDD_ flags to use bitops, introduce NDD_LOCKED
  brd: fix uninitialized use of brd->dax_dev
  block, dax: use correct format string in bdev_dax_supported
  device-dax: fix sysfs attribute deadlock
  libnvdimm: restore "libnvdimm: band aid btt vs clear poison locking"
  libnvdimm: fix nvdimm_bus_lock() vs device_lock() ordering
  libnvdimm: rework region badblocks clearing
  acpi, nfit: kill ACPI_NFIT_DEBUG
  libnvdimm: fix clear length of nvdimm_forget_poison()
  libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
  libnvdimm, region: sysfs trigger for nvdimm_flush()
  libnvdimm: fix phys_addr for nvdimm_clear_poison
  x86, dax, pmem: remove indirection around memcpy_from_pmem()
  block: remove block_device_operations ->direct_access()
  block, dax: convert bdev_dax_supported() to dax_direct_access()
  filesystem-dax: convert to dax_direct_access()
  Revert "block: use DAX for partition table reads"
  ext2, ext4, xfs: retrieve dax_device for iomap operations
  ...
2017-05-05 18:49:20 -07:00
Christoph Hellwig
412445acb6 dm: introduce a new DM_MAPIO_KILL return value
This untangles the DM_MAPIO_* values returned from ->clone_and_map_rq
from the error codes used by the block layer.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-05-01 18:19:03 -04:00
Christoph Hellwig
7ed8578a96 dm rq: change ->rq_end_io calling conventions
Instead of returning either a DM_ENDIO_* constant or an error code, add
a new DM_ENDIO_DONE value that means keep errno as is.  This allows us
to easily keep the existing error code in case where we can't push back,
and it also preparares for the new block level status codes with strict
type checking.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-05-01 18:19:03 -04:00
Mike Snitzer
7e25a76061 Merge branch 'dm-4.12' into dm-4.12-post-merge 2017-05-01 18:18:04 -04:00
Bart Van Assche
7e0d574f26 dm: introduce enum dm_queue_mode to cleanup related code
Introduce an enumeration type for the queue mode.  This patch does
not change any functionality but makes the DM code easier to read.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-04-27 17:08:44 -04:00
Dan Williams
817bf40265 dm: teach dm-targets to use a dax_device + dax_operations
Arrange for dm to lookup the dax services available from member devices.
Update the dax-capable targets, linear and stripe, to route dax
operations to the underlying device. Changes the target-internal
->direct_access() method to more closely align with the dax_operations
->direct_access() calling convention.

Cc: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2017-04-25 13:20:36 -07:00
Mikulas Patocka
e2460f2a4b dm: mark targets that pass integrity data
A dm-crypt on dm-integrity device incorrectly advertises an integrity
profile on the DM crypt device.  It can be seen in the files
"/sys/block/dm-*/integrity/*" that both dm-integrity and dm-crypt target
advertise the integrity profile.  That is incorrect, only the
dm-integrity target should advertise the integrity profile.

A general problem in DM is that if we have a DM device that depends on
another device with an integrity profile, the upper device will always
advertise the integrity profile, even when the target driver doesn't
support handling integrity data.

Most targets don't support integrity data, so we provide a whitelist of
targets that support it (linear, delay and striped).  The targets that
support passing integrity data to the lower device are marked with the
flag DM_TARGET_PASSES_INTEGRITY.  The DM core will now advertise
integrity data on a DM device only if all the targets support the
integrity data.

Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-04-24 12:04:32 -04:00
Dan Williams
f26c5719b2 dm: add dax_device and dax_operations support
Allocate a dax_device to represent the capacity of a device-mapper
instance. Provide a ->direct_access() method via the new dax_operations
indirection that mirrors the functionality of the current direct_access
support via block_device_operations.  Once fs/dax.c has been converted
to use dax_operations the old dm_blk_direct_access() will be removed.

A new helper dm_dax_get_live_target() is introduced to separate some of
the dm-specifics from the direct_access implementation.

This enabling is only for the top-level dm representation to upper
layers. Converting target direct_access implementations is deferred to a
separate patch.

Cc: Toshi Kani <toshi.kani@hpe.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
2017-04-20 11:57:52 -07:00
Christoph Hellwig
48920ff2a5 block: remove the discard_zeroes_data flag
Now that we use the proper REQ_OP_WRITE_ZEROES operation everywhere we can
kill this hack.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-08 11:25:38 -06:00
Christoph Hellwig
ac62d6208a dm: support REQ_OP_WRITE_ZEROES
Copy & paste from the REQ_OP_WRITE_SAME code.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-04-08 11:25:38 -06:00
Milan Broz
9b4b5a797c dm table: add flag to allow target to handle its own integrity metadata
Add DM_TARGET_INTEGRITY flag that specifies bio integrity metadata is
not inherited but implemented in the target itself.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2017-03-07 13:28:32 -05:00
Christoph Hellwig
eb8db831be dm: always defer request allocation to the owner of the request_queue
DM already calls blk_mq_alloc_request on the request_queue of the
underlying device if it is a blk-mq device.  But now that we allow drivers
to allocate additional data and initialize it ahead of time we need to do
the same for all drivers.   Doing so and using the new cmd_size
infrastructure in the block layer greatly simplifies the dm-rq and mpath
code, and should also make arbitrary combinations of SQ and MQ devices
with SQ or MQ device mapper tables easily possible as a further step.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Mike Snitzer <snitzer@redhat.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
2017-01-27 15:08:35 -07:00
Mike Snitzer
a8ac51e4ab dm rq: add DM_MAPIO_DELAY_REQUEUE to delay requeue of blk-mq requests
Otherwise blk-mq will immediately dispatch requests that are requeued
via a BLK_MQ_RQ_QUEUE_BUSY return from blk_mq_ops .queue_rq.

Delayed requeue is implemented using blk_mq_delay_kick_requeue_list()
with a delay of 5 secs.  In the context of DM multipath (all paths down)
it doesn't make any sense to requeue more quickly.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2016-09-14 13:56:38 -04:00
Linus Torvalds
f0c98ebc57 Merge tag 'libnvdimm-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dan Williams:

 - Replace pcommit with ADR / directed-flushing.

   The pcommit instruction, which has not shipped on any product, is
   deprecated.  Instead, the requirement is that platforms implement
   either ADR, or provide one or more flush addresses per nvdimm.

   ADR (Asynchronous DRAM Refresh) flushes data in posted write buffers
   to the memory controller on a power-fail event.

   Flush addresses are defined in ACPI 6.x as an NVDIMM Firmware
   Interface Table (NFIT) sub-structure: "Flush Hint Address Structure".
   A flush hint is an mmio address that when written and fenced assures
   that all previous posted writes targeting a given dimm have been
   flushed to media.

 - On-demand ARS (address range scrub).

   Linux uses the results of the ACPI ARS commands to track bad blocks
   in pmem devices.  When latent errors are detected we re-scrub the
   media to refresh the bad block list, userspace can also request a
   re-scrub at any time.

 - Support for the Microsoft DSM (device specific method) command
   format.

 - Support for EDK2/OVMF virtual disk device memory ranges.

 - Various fixes and cleanups across the subsystem.

* tag 'libnvdimm-for-4.8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (41 commits)
  libnvdimm-btt: Delete an unnecessary check before the function call "__nd_device_register"
  nfit: do an ARS scrub on hitting a latent media error
  nfit: move to nfit/ sub-directory
  nfit, libnvdimm: allow an ARS scrub to be triggered on demand
  libnvdimm: register nvdimm_bus devices with an nd_bus driver
  pmem: clarify a debug print in pmem_clear_poison
  x86/insn: remove pcommit
  Revert "KVM: x86: add pcommit support"
  nfit, tools/testing/nvdimm/: unify shutdown paths
  libnvdimm: move ->module to struct nvdimm_bus_descriptor
  nfit: cleanup acpi_nfit_init calling convention
  nfit: fix _FIT evaluation memory leak + use after free
  tools/testing/nvdimm: add manufacturing_{date|location} dimm properties
  tools/testing/nvdimm: add virtual ramdisk range
  acpi, nfit: treat virtual ramdisk SPA as pmem region
  pmem: kill __pmem address space
  pmem: kill wmb_pmem()
  libnvdimm, pmem: use nvdimm_flush() for namespace I/O writes
  fs/dax: remove wmb_pmem()
  libnvdimm, pmem: flush posted-write queues on shutdown
  ...
2016-07-28 17:38:16 -07:00
Toshi Kani
545ed20e6d dm: add infrastructure for DAX support
Change mapped device to implement direct_access function,
dm_blk_direct_access(), which calls a target direct_access function.
'struct target_type' is extended to have target direct_access interface.
This function limits direct accessible size to the dm_target's limit
with max_io_len().

Add dm_table_supports_dax() to iterate all targets and associated block
devices to check for DAX support.  To add DAX support to a DM target the
target must only implement the direct_access function.

Add a new dm type, DM_TYPE_DAX_BIO_BASED, which indicates that mapped
device supports DAX and is bio based.  This new type is used to assure
that all target devices have DAX support and remain that way after
QUEUE_FLAG_DAX is set in mapped device.

At initial table load, QUEUE_FLAG_DAX is set to mapped device when setting
DM_TYPE_DAX_BIO_BASED to the type.  Any subsequent table load to the
mapped device must have the same type, or else it fails per the check in
table_load().

Signed-off-by: Toshi Kani <toshi.kani@hpe.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2016-07-20 23:49:49 -04:00
Mike Snitzer
e83068a5fa dm mpath: add optional "queue_mode" feature
Allow a user to specify an optional feature 'queue_mode <mode>' where
<mode> may be "bio", "rq" or "mq" -- which corresponds to bio-based,
request_fn rq-based, and blk-mq rq-based respectively.

If the queue_mode feature isn't specified the default for the
"multipath" target is still "rq" but if dm_mod.use_blk_mq is set to Y
it'll default to mode "mq".

This new queue_mode feature introduces the ability for each multipath
device to have its own queue_mode (whereas before this feature all
multipath devices effectively had to have the same queue_mode).

This commit also goes a long way to eliminate the awkward (ab)use of
DM_TYPE_*, the associated filter_md_type() and other relatively fragile
and difficult to maintain code.

Signed-off-by: Mike Snitzer <snitzer@redhat.com>
2016-06-10 15:16:02 -04:00