tree 8ef2f2793c213cba90dc9961cb2ad27db5ec2e2b
parent 708635fcf671fb7704255fbc7405b3cd364c1d57
parent a4bea6a4f1e0e5132fdedb5c0a74cbba696342fd
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1601025155 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1601025156 -0700

merge-upstream/v5.4.67 from branch/tag: upstream/v5.4.67 into branch: cos-5.4

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

Alexey Kardashevskiy (1):
      powerpc/dma: Fix dma_map_ops::get_required_mask

Aneesh Kumar K.V (1):
      powerpc/book3s64/radix: Fix boot failure with large amount of guest memory

Arvind Sankar (1):
      x86/boot/compressed: Disable relocation relaxation

Bob Peterson (1):
      gfs2: initialize transaction tr_ailX_lists earlier

Chris Wilson (1):
      drm/i915: Filter wake_flags passed to default_wake_function

Christophe JAILLET (1):
      clk: davinci: Use the correct size when allocating memory

Christophe Leroy (1):
      selftests/vm: fix display of page size in map_hugetlb

Chuck Lever (1):
      NFS: Zero-stateid SETATTR should first return delegation

Dan Carpenter (1):
      scsi: libsas: Fix error path in sas_notify_lldd_dev_found()

Dan Williams (1):
      dm/dax: Fix table reference counts

Daniel Mack (1):
      dsa: Allow forwarding of redirected IGMP traffic

David Milburn (3):
      nvme-fc: cancel async events before freeing event struct
      nvme-rdma: cancel async events before freeing event struct
      nvme-tcp: cancel async events before freeing event struct

Dexuan Cui (1):
      Drivers: hv: vmbus: hibernation: do not hang forever in vmbus_bus_resume()

Dinghao Liu (2):
      scsi: pm8001: Fix memleak in pm8001_exec_internal_task_abort
      ASoC: qcom: common: Fix refcount imbalance on error

Evan Nimmo (1):
      i2c: algo: pca: Reapply i2c bus settings after reset

Gabriel Krisman Bertazi (1):
      f2fs: Return EOF on unaligned end of file DIO read

Greentime Hu (1):
      riscv: Add sfence.vma after early page table changes

Greg Kroah-Hartman (2):
      Revert "ALSA: hda - Fix silent audio output and corrupted input on MSI X570-A PRO"
      Linux 5.4.67

Gustav Wiklander (1):
      spi: Fix memory leak on splited transfers

Haiyang Zhang (1):
      hv_netvsc: Remove "unlikely" from netvsc_select_queue

Hans de Goede (1):
      Input: i8042 - add Entroware Proteus EL07R4 to nomux and reset lists

Harald Freudenberger (1):
      s390/zcrypt: fix kmalloc 256k failure

Heikki Krogerus (1):
      usb: typec: ucsi: Prevent mode overrun

Huacai Chen (1):
      KVM: MIPS: Change the definition of kvm type

Hui Wang (1):
      ALSA: hda/realtek - The Mic on a RedmiBook doesn't work

Ilias Apalodimas (1):
      arm64: bpf: Fix branch offset in JIT

J. Bruce Fields (1):
      SUNRPC: stop printk reading past end of string

James Smart (1):
      scsi: lpfc: Fix FLOGI/PLOGI receive race condition in pt2pt discovery

Jan Kara (2):
      dm: Call proper helper to determine dax support
      dax: Fix compilation for CONFIG_DAX && !CONFIG_FS_DAX

Javed Hasan (1):
      scsi: libfc: Fix for double free()

Jerome Brunet (1):
      ASoC: meson: axg-toddr: fix channel order on g12 platforms

Jiri Olsa (1):
      perf test: Fix the "signal" test inline assembly

Joao Martins (1):
      iommu/amd: Fix potential @entry null deref

Laurent Pinchart (1):
      rapidio: Replace 'select' DMAENGINES 'with depends on'

Luke D Jones (1):
      ALSA: hda: fixup headset for ASUS GX502 laptop

Marc Zyngier (1):
      arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late

Matthias Schiffer (1):
      i2c: mxs: use MXS_DMA_CTRL_WAIT4END instead of DMA_CTRL_ACK

Miaohe Lin (1):
      net: handle the return value of pskb_carve_frag_list() correctly

Michael Kelley (1):
      Drivers: hv: vmbus: Add timeout to vmbus_wait_for_unload

Namhyung Kim (3):
      perf evlist: Fix cpu/thread map leak
      perf parse-event: Fix memory leak in evsel->unit
      perf test: Free formats for perf pmu parse test

Naresh Kumar PBS (1):
      RDMA/bnxt_re: Restrict the max_gids to 256

Nathan Chancellor (1):
      clk: rockchip: Fix initialization of mux_pll_src_4plls_p

Olga Kornievskaia (1):
      NFSv4.1 handle ERR_DELAY error reclaiming locking state on delegation recall

Oliver Neukum (2):
      USB: UAS: fix disconnect by unplugging a hub
      usblp: fix race between disconnect() and read()

Omar Sandoval (1):
      block: only call sched requeue_request() for scheduled requests

Pavel Tatashin (1):
      mm/memory_hotplug: drain per-cpu pages again during memory offline

Penghao (1):
      USB: quirks: Add USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk for BYD zhaoxin notebook

Prateek Sood (1):
      firmware_loader: fix memory leak for paged buffer

Quentin Perret (1):
      ehci-hcd: Move include to keep CRC stable

Ronnie Sahlberg (1):
      cifs: fix DFS mount with cifsacl/modefromsid

Sahitya Tummala (1):
      f2fs: fix indefinite loop scanning for free nid

Sasha Neftin (1):
      e1000e: Add support for Comet Lake

Stafford Horne (1):
      openrisc: Fix cache API compile issue when not inlining

Stephan Gerhold (1):
      ASoC: qcom: Set card->owner to avoid warnings

Sunghyun Jin (1):
      percpu: fix first chunk size calculation for populated bitmap

Tetsuo Handa (1):
      fbcon: Fix user font detection test at fbcon_resize().

Thomas Bogendoerfer (2):
      MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
      MIPS: SNI: Fix spurious interrupts

Tobias Diedrich (1):
      serial: 8250_pci: Add Realtek 816a and 816b

Vincent Huang (1):
      Input: trackpoint - add new trackpoint variant IDs

Vincent Whitchurch (2):
      regulator: pwm: Fix machine constraints application
      spi: spi-loopback-test: Fix out-of-bounds read

Volker Rümelin (1):
      i2c: i801: Fix resume bug

Yu Kuai (2):
      drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail
      drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()

BUG=b/169393722
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to upstream/v5.4.67.

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