tree 3142c5f6e682fa25fa348a4c8e25c410662aad91
parent 5451c40e92fbfc19edc953cb9affea60eee60378
parent 2d16cf4817bc6944a2adb5bf4db607c8258e87da
author Lakitu Kernel Bot <cloud-image-merge-automation@prod.google.com> 1590829066 -0700
committer Vaibhav Rustagi <vaibhavrustagi@google.com> 1590872233 +0000

merge-upstream/v4.19.125 from branch/tag: upstream/v4.19.125 into branch: cos-4.19

Changelog:
-------------------------------------------------------------

Al Viro (1):
      fix multiplication overflow in copy_fdtable()

Alan Stern (1):
      USB: core: Fix misleading driver bug report

Alexander Monakov (1):
      iommu/amd: Fix over-read of ACPI UID from IVRS table

Alexander Usyskin (1):
      mei: release me_cl object reference

Arjun Vynipadath (2):
      cxgb4: free mac_hlist properly
      cxgb4/cxgb4vf: Fix mac_hlist initialization and free

Arnd Bergmann (1):
      ubsan: build ubsan.c more conservatively

Artem Borisov (1):
      HID: alps: Add AUI1657 device ID

Arun Easi (1):
      scsi: qla2xxx: Fix hang when issuing nvme disconnect-all in NPIV

Bob Peterson (1):
      Revert "gfs2: Don't demote a glock until its revokes are written"

Brent Lu (1):
      ALSA: pcm: fix incorrect hw_base increase

Christian Gmeiner (1):
      drm/etnaviv: fix perfmon domain interation

Christian Lachner (1):
      ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Xtreme

Christoph Hellwig (1):
      ubifs: remove broken lazytime support

Christophe JAILLET (4):
      i2c: mux: demux-pinctrl: Fix an error handling path in 'i2c_demux_pinctrl_probe()'
      dmaengine: tegra210-adma: Fix an error handling path in 'tegra_adma_probe()'
      iio: sca3000: Remove an erroneous 'get_device()'
      iio: dac: vf610: Fix an error handling path in 'vf610_dac_probe()'

Colin Xu (1):
      drm/i915/gvt: Init DPLL/DDI vreg for virtual display instead of inheritance.

Cristian Ciocaltea (1):
      dmaengine: owl: Use correct lock in owl_dma_get_pchan()

Daniel Jordan (2):
      padata: initialize pd->cpu with effective cpumask
      padata: purge get_cpu and reorder_via_wq from padata_do_serial

Daniel Playfair Cal (1):
      HID: i2c-hid: reset Synaptics SYNA2393 on resume

David Howells (2):
      rxrpc: Trace discarded ACKs
      rxrpc: Fix ack discard

Dexuan Cui (1):
      nfit: Add Hyper-V NVDIMM DSM command set to white list

Doug Berger (2):
      net: bcmgenet: code movement
      net: bcmgenet: abort suspend on error

Dragos Bogdan (1):
      staging: iio: ad2s1210: Fix SPI reading

Fabrice Gasnier (2):
      iio: adc: stm32-adc: fix device used to request dma
      iio: adc: stm32-dfsdm: fix device used to request dma

Frédéric Pierret (fepitre) (1):
      gcc-common.h: Update for GCC 10

Geert Uytterhoeven (1):
      media: fdp1: Fix R-Car M3-N naming in debug message

Greg Kroah-Hartman (1):
      Linux 4.19.125

Guenter Roeck (1):
      brcmfmac: abort and release host after error

Gustavo A. R. Silva (1):
      staging: most: core: replace strcpy() by strscpy()

Hans de Goede (2):
      HID: quirks: Add HID_QUIRK_NO_INIT_REPORTS quirk for Dell K12A keyboard-dock
      platform/x86: asus-nb-wmi: Do not load on Asus T100TA and T200TA

Herbert Xu (1):
      padata: Replace delayed timer with immediate workqueue in padata_reorder

James Hilliard (1):
      component: Silence bind error on -EPROBE_DEFER

Jiri Kosina (1):
      HID: alps: ALPS_1657 is too specific; use U1_UNICORN_LEGACY instead

John Hubbard (1):
      rapidio: fix an error in get_user_pages_fast() error handling

Josh Poimboeuf (1):
      x86/unwind/orc: Fix unwind_get_return_address_ptr() for inactive tasks

Juliet Kim (1):
      Revert "net/ibmvnic: Fix EOI when running in XIVE mode"

Kevin Hao (1):
      i2c: dev: Fix the race between the release of i2c_dev and cdev

Klaus Doth (1):
      misc: rtsx: Add short delay after exit from ASPM

Matthias Kaehlcke (1):
      tty: serial: qcom_geni_serial: Fix wrap around of TX buffer

Maxim Petrov (1):
      stmmac: fix pointer check after utilization in stmmac_interrupt

Miaohe Lin (1):
      KVM: SVM: Fix potential memory leak in svm_cpu_init()

Michael Ellerman (1):
      powerpc/64s: Disable STRICT_KERNEL_RWX

Mika Westerberg (1):
      thunderbolt: Drop duplicated get_switch_at_route()

Miquel Raynal (1):
      mtd: spinand: Propagate ECC information to the MTD structure

Navid Emamdoost (1):
      apparmor: Fix use-after-free in aa_audit_rule_init

Oscar Carter (1):
      staging: greybus: Fix uninitialized scalar variable

PeiSen Hou (1):
      ALSA: hda/realtek - Add more fixup entries for Clevo machines

Peter Ujfalusi (2):
      iio: adc: stm32-adc: Use dma_request_chan() instead dma_request_slave_channel()
      iio: adc: stm32-dfsdm: Use dma_request_chan() instead dma_request_slave_channel()

Peter Zijlstra (1):
      x86/uaccess, ubsan: Fix UBSAN vs. SMAP

Qiushi Wu (1):
      rxrpc: Fix a memory leak in rxkad_verify_response()

Quinn Tran (1):
      scsi: qla2xxx: Delete all sessions before unregister local nvme port

Richard Clark (1):
      aquantia: Fix the media type of AQC100 ethernet controller in the driver

Richard Weinberger (1):
      ubi: Fix seq_file usage in detailed_erase_block_info debugfs file

Roberto Sassu (3):
      ima: Set file->f_mode instead of file->f_flags in ima_calc_file_hash()
      evm: Check also if *tfm is an error pointer in init_desc()
      ima: Fix return value of ima_write_policy()

Russell Currey (1):
      powerpc: Remove STRICT_KERNEL_RWX incompatibility with RELOCATABLE

Scott Bahling (1):
      ALSA: iec1712: Initialize STDSP24 properly when using the model=staudio option

Sebastian Reichel (1):
      HID: multitouch: add eGalaxTouch P80H84 support

Stefano Garzarella (1):
      vhost/vsock: fix packet delivery order to monitoring devices

Thomas Gleixner (2):
      x86/apic: Move TSC deadline timer debug printk
      ARM: futex: Address build warning

Tyrel Datwyler (1):
      scsi: ibmvscsi: Fix WARN_ON during event pool release

Vincent Chen (1):
      riscv: set max_pfn to the PFN of the last page

Vishal Verma (2):
      libnvdimm/btt: Remove unnecessary code in btt_freelist_init
      libnvdimm/btt: Fix LBA masking during 'free list' population

Wei Yongjun (1):
      ipack: tpci200: fix error return code in tpci200_register()

Wu Bo (1):
      ceph: fix double unlock in handle_cap_export()

Xiyu Yang (3):
      configfs: fix config_item refcnt leak in configfs_rmdir()
      apparmor: fix potential label refcnt leak in aa_change_profile
      apparmor: Fix aa_label refcnt leak in policy_update

Yoshiyuki Kurauchi (1):
      gtp: set NLM_F_MULTI flag in gtp_genl_dump_pdp()

BUG=b/157628267
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Upgraded the Linux kernel to upstream/v4.19.125

Signed-off-by: Lakitu Kernel Bot <cloud-image-merge-automation@prod.google.com>
Change-Id: I33758e2e9ca6a19d01cebebf918d9af6c844a675
