tree 46dbb34468d01f37ab45c6245d3c85bab54bd245
parent b0d9a8b23b73cbfc32d58762c8f5a0a668131b51
parent 4707d8e5727387e36ea99c74d5ff0ad227700fd0
author Lakitu Kernel Bot <cloud-image-merge-automation@prod.google.com> 1591174611 -0700
committer Vaibhav Rustagi <vaibhavrustagi@google.com> 1591198527 +0000

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

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

Al Viro (1):
      copy_xstate_to_kernel(): don't leave parts of destination uninitialized

Alexander Dahl (1):
      x86/dma: Fix max PFN arithmetic overflow on 32 bit systems

Alexander Potapenko (1):
      fs/binfmt_elf.c: allocate initialized memory in fill_thread_core_info()

Andrew Oakley (1):
      ALSA: usb-audio: add mapping for ASRock TRX40 Creator

Andy Shevchenko (1):
      usb: dwc3: pci: Enable extcon driver for Intel Merrifield

Antony Antony (1):
      xfrm: fix error in comment

Arnd Bergmann (2):
      net: freescale: select CONFIG_FIXED_PHY where needed
      include/asm-generic/topology.h: guard cpumask_of_node() macro argument

Björn Töpel (1):
      xsk: Add overflow check for u64 division, stored into u32

Bob Peterson (1):
      gfs2: move privileged user check to gfs2_quota_lock_check

Boris Sukholitko (1):
      __netif_receive_skb_core: pass skb by reference

Brendan Shanks (1):
      Input: evdev - call input_flush_device() on release(), not flush()

Changming Liu (1):
      ALSA: hwdep: fix a left shifting 1 by 31 UB bug

Chris Chiu (1):
      ALSA: usb-audio: mixer: volume quirk for ESS Technology Asus USB DAC

Christophe JAILLET (1):
      Input: dlink-dir685-touchkeys - fix a typo in driver name

Chuhong Yuan (1):
      net: microchip: encx24j600: add missed kthread_stop

DENG Qingfang (1):
      net: dsa: mt7530: fix roaming from DSA user ports

Denis V. Lunev (1):
      IB/i40iw: Remove bogus call to netdev_master_upper_dev_get()

Eric Dumazet (2):
      ax25: fix setsockopt(SO_BINDTODEVICE)
      crypto: chelsio/chtls: properly set tp->lsndtime

Eric W. Biederman (1):
      exec: Always set cap_ambient in cap_bprm_set_creds

Evan Green (1):
      Input: synaptics-rmi4 - really fix attn_data use-after-free

Greg Kroah-Hartman (1):
      Linux 4.19.126

Hamish Martin (1):
      ARM: dts: bcm: HR2: Fix PPI interrupt types

Helge Deller (1):
      parisc: Fix kernel panic in mem_init()

James Hilliard (1):
      Input: usbtouchscreen - add support for BonXeon TP

Jason Gunthorpe (1):
      RDMA/core: Fix double destruction of uobject

Jere Leppänen (1):
      sctp: Start shutdown on association restart if in SHUTDOWN-SENT state and socket is closed

Jeremy Sowden (1):
      vti4: eliminated some duplicate code.

Jerry Lee (1):
      libceph: ignore pool overlay and cache logic on redirects

Jiri Pirko (1):
      mlxsw: spectrum: Fix use-after-free of split/unsplit/type_set in case reload fails

Johan Jonker (5):
      ARM: dts: rockchip: fix phy nodename for rk3228-evb
      arm64: dts: rockchip: fix status for &gmac2phy in rk3328-evb.dts
      arm64: dts: rockchip: swap interrupts interrupt-names rk3399 gpu node
      ARM: dts: rockchip: swap clock-names of gpu nodes
      ARM: dts: rockchip: fix pinctrl sub nodename for spi in rk322x.dtsi

Kaike Wan (1):
      IB/qib: Call kobject_put() when kobject_init_and_add() fails

Kailang Yang (1):
      ALSA: hda/realtek - Add new codec supported for ALC287

Kefeng Wang (1):
      riscv: stacktrace: Fix undefined reference to `walk_stackframe'

Kevin Locke (1):
      Input: i8042 - add ThinkPad S230u to i8042 reset list

Konstantin Khlebnikov (1):
      mm: remove VM_BUG_ON(PageSlab()) from page_mapcount()

Lei Xue (1):
      cachefiles: Fix race between read_waiter and read_copier involving op->to_do

Linus Lüssing (1):
      mac80211: mesh: fix discovery timer re-arming issue / crash

Liviu Dudau (1):
      mm/vmalloc.c: don't dereference possible NULL pointer in __vunmap()

Manivannan Sadhasivam (1):
      net: qrtr: Fix passing invalid reference to qrtr_local_enqueue()

Marc Payne (1):
      r8152: support additional Microsoft Surface Ethernet Adapter variant

Martin KaFai Lau (1):
      net: inet_csk: Fix so_reuseport bind-address cache in tb->fast*

Masahiro Yamada (1):
      usb: gadget: legacy: fix redundant initialization warnings

Matteo Croce (1):
      samples: bpf: Fix build error

Michael Braun (1):
      netfilter: nft_reject_bridge: enable reject with bridge vlan

Michael Chan (1):
      bnxt_en: Fix accumulation of bp->net_stats_prev.

Moshe Shemesh (2):
      net/mlx5: Add command entry handling completion
      net/mlx5e: Update netdev txq on completions during closure

Neil Horman (1):
      sctp: Don't add the shutdown timer if its already been added

Nicolas Dichtel (1):
      xfrm interface: fix oops when deleting a x-netns interface

Pablo Neira Ayuso (3):
      netfilter: nfnetlink_cthelper: unbreak userspace helper support
      netfilter: nf_conntrack_pptp: prevent buffer overflows in debug code
      netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build

Peng Hao (1):
      mmc: block: Fix use-after-free issue for rpmb

Phil Sutter (1):
      netfilter: ipset: Fix subcounter update skip

Qiushi Wu (6):
      net: sun: fix missing release regions in cas_init_one().
      net/mlx4_core: fix a memory leak bug.
      RDMA/pvrdma: Fix missing pci disable in pvrdma_pci_probe()
      iommu: Fix reference count leak in iommu_group_alloc.
      qlcnic: fix missing release in qlcnic_83xx_interrupt_test.
      bonding: Fix reference count leak in bond_sysfs_slave_add.

Robert Beckett (1):
      ARM: dts/imx6q-bx50v3: Set display interface clock parents

Roi Dayan (1):
      net/mlx5: Annotate mutex destroy for root ns

Roman Mashak (1):
      net sched: fix reporting the first-time use timestamp

Russell King (3):
      ARM: uaccess: consolidate uaccess asm to asm/uaccess-asm.h
      ARM: uaccess: integrate uaccess_save and uaccess_restore
      ARM: uaccess: fix DACR mismatch with nested exceptions

Sarthak Garg (1):
      mmc: core: Fix recursive locking issue in CQE recovery path

Stefan Agner (1):
      ARM: 8843/1: use unified assembler in headers

Stephen Warren (1):
      gpio: tegra: mask GPIO IRQs during IRQ shutdown

Steve French (1):
      cifs: Fix null pointer check in cifs_read

Takashi Iwai (3):
      gpio: exar: Fix bad handling for ida_simple_get error path
      ALSA: hda/realtek - Add a model for Thinkpad T570 without DAC workaround
      ALSA: usb-audio: Quirks for Gigabyte TRX40 Aorus Master onboard audio

Vadim Fedorenko (1):
      net: ipip: fix wrong address family in init error path

Valentine Fatiev (1):
      IB/ipoib: Fix double free of skb in case of multicast traffic in CM mode

Vincent Stehlé (1):
      ARM: dts: bcm2835-rpi-zero-w: Fix led polarity

Vladimir Oltean (1):
      dpaa_eth: fix usage as DSA master, try 3

Wei Yongjun (1):
      Input: synaptics-rmi4 - fix error return code in rmi_driver_probe()

Xin Long (6):
      xfrm: allow to accept packets with ipv6 NEXTHDR_HOP in xfrm_input
      xfrm: call xfrm_output_gso when inner_protocol is set in xfrm_output
      xfrm: fix a warning in xfrm_policy_insert_list
      xfrm: fix a NULL-ptr deref in xfrm_local_error
      ip_vti: receive ipip packet by calling ip_tunnel_rcv
      esp6: get the right proto for transport mode in esp6_gso_encap

Yuqi Jin (1):
      net: revert "net: get rid of an signed integer overflow in ip_idents_reserve()"

Łukasz Patron (1):
      Input: xpad - add custom init packet for Xbox One S controllers

Łukasz Stelmach (1):
      ARM: 8970/1: decompressor: increase tag size

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

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