tree 4a08b564012f22f9b3cf9a45501f96ebd1ac48f4
parent 06a6bcccd8aa5feb3e59333df9a2e00d9e469029
parent ceed81a883dc43e2073ecdcfd273fa179e24df5b
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1610960489 -0800
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1610960489 -0800

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

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

Alan Maguire (1):
      bpftool: Fix compilation failure for net.o with older glibc

Aleksander Jan Bajkowski (1):
      net: dsa: lantiq_gswip: Exclude RMII from modes that report 1 GbE

Andreas Kemnade (1):
      ARM: OMAP2+: omap_device: fix idling of devices during probe

Arnd Bergmann (6):
      can: kvaser_pciefd: select CONFIG_CRC32
      qed: select CONFIG_CRC32
      wil6210: select CONFIG_CRC32
      block: rsxx: select CONFIG_CRC32
      lightnvm: select CONFIG_CRC32
      wan: ds26522: select CONFIG_BITREVERSE

Aya Levin (1):
      net/mlx5e: ethtool, Fix restriction of autoneg with 56G

Ayush Sawal (6):
      chtls: Fix hardware tid leak
      chtls: Remove invalid set_tcb call
      chtls: Fix panic when route to peer not configured
      chtls: Replace skb_dequeue with skb_peek
      chtls: Added a check to avoid NULL pointer dereference
      chtls: Fix chtls resources release sequence

Christophe JAILLET (2):
      net/sonic: Fix some resource leaks in error handling paths
      dmaengine: mediatek: mtk-hsdma: Fix a resource leak in the error handling path of the probe function

Chunyan Zhang (1):
      i2c: sprd: use a specific timeout to avoid system hang up issue

Colin Ian King (2):
      octeontx2-af: fix memory leak of lmac and lmac->name
      cpufreq: powernow-k8: pass policy rather than use cpufreq_cpu_get()

Dan Carpenter (2):
      dmaengine: dw-edma: Fix use after free in dw_edma_alloc_chunk()
      regmap: debugfs: Fix a reversed if statement in regmap_debugfs_init()

Dinghao Liu (3):
      iommu/intel: Fix memleak in intel_irq_remapping_alloc
      net/mlx5e: Fix memleak in mlx5e_create_l2_table_groups
      net/mlx5e: Fix two double free cases

Dmitry Baryshkov (1):
      regulator: qcom-rpmh-regulator: correct hfsmps515 definition

Fenghua Yu (2):
      x86/resctrl: Use an IPI instead of task_work_add() to update PQR_ASSOC MSR
      x86/resctrl: Don't move a task to the same resource group

Florian Westphal (2):
      net: fix pmtu check in nopmtudisc mode
      net: ip: always refragment ip defragmented packets

Greg Kroah-Hartman (1):
      Linux 5.4.90

Hans de Goede (1):
      i2c: i801: Fix the i2c-mux gpiod_lookup_table not being properly terminated

Ido Schimmel (2):
      nexthop: Fix off-by-one error in error path
      nexthop: Unlink nexthop group entry in error path

Jakub Kicinski (1):
      net: vlan: avoid leaks on register_vlan_dev() failures

Jiri Slaby (1):
      x86/asm/32: Add ENDs to some functions and relabel with SYM_CODE_*

Jouni K. Seppänen (1):
      net: cdc_ncm: correct overhead in delayed_ndp_size

Julian Wiedmann (1):
      s390/qeth: fix L2 header access in qeth_l3_osa_features_check()

Lorenzo Bianconi (1):
      iio: imu: st_lsm6dsx: fix edge-trigger interrupts

Marc Kleine-Budde (2):
      can: tcan4x5x: fix bittiming const, use common bittiming from m_can driver
      can: m_can: m_can_class_unregister(): remove erroneous m_can_clk_stop()

Marc Zyngier (1):
      KVM: arm64: Don't access PMCR_EL0 when no PMU is available

Mark Zhang (1):
      net/mlx5: Use port_num 1 instead of 0 when delete a RoCE address

Matthew Rosato (1):
      vfio iommu: Add dma available capability

Ming Lei (1):
      block: fix use-after-free in disk_part_iter_next

Nick Desaulniers (1):
      vmlinux.lds.h: Add PGO and AutoFDO input sections

Ping Cheng (1):
      HID: wacom: Fix memory leakage caused by kfifo_alloc

Roman Guskov (1):
      spi: stm32: FIFO threshold level - fix align packet size

Samuel Holland (2):
      net: stmmac: dwmac-sun8i: Balance internal PHY resource references
      net: stmmac: dwmac-sun8i: Balance internal PHY power

Sean Tranchetti (2):
      net: ipv6: fib: flush exceptions when purging route
      tools: selftests: add test for changing routes with PTMU exceptions

Shravya Kumbham (3):
      dmaengine: xilinx_dma: check dma_async_device_register return value
      dmaengine: xilinx_dma: fix incompatible param warning in _child_probe()
      dmaengine: xilinx_dma: fix mixed_enum_type coverity warning

Stefan Chulski (1):
      net: mvpp2: disable force link UP during port init procedure

Valdis Kletnieks (1):
      exfat: Month timestamp metadata accidentally incremented

Vasily Averin (1):
      net: drop bogus skb with CHECKSUM_PARTIAL and offset beyond end of trimmed packet

Xiaolei Wang (1):
      regmap: debugfs: Fix a memory leak when calling regmap_attach_dev

Yonglong Liu (1):
      net: hns3: fix a phy loopback fail issue

Yufeng Mo (1):
      net: hns3: fix the number of queues actually used by ARQ

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

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