tree 0bf7e1f1cc59d0b60a5da811e3e6391ee8486488
parent 4ba52630fceea53254630ac23798c4f1891041cf
parent a829146c3fdcf6d0b76d9c54556a223820f1f73b
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1610530513 -0800
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1610530514 -0800

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

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

Adrian Hunter (1):
      scsi: ufs-pci: Ensure UFS device is in PowerDown mode for suspend-to-disk ->poweroff()

Alexey Dobriyan (2):
      proc: change ->nlink under proc_subdir_lock
      proc: fix lookup in /proc/net subdirectories after setns(2)

Antoine Tenart (4):
      net-sysfs: take the rtnl lock when storing xps_cpus
      net-sysfs: take the rtnl lock when accessing xps_cpus_map and num_tc
      net-sysfs: take the rtnl lock when storing xps_rxqs
      net-sysfs: take the rtnl lock when accessing xps_rxqs_map and num_tc

Ard Biesheuvel (1):
      crypto: ecdh - avoid buffer overflow in ecdh_set_secret()

Arnd Bergmann (1):
      usb: gadget: select CONFIG_CRC32

Bard Liao (1):
      Revert "device property: Keep secondary firmware node secondary by type"

Bart Van Assche (2):
      scsi: ide: Do not set the RQF_PREEMPT flag for sense requests
      scsi: scsi_transport_spi: Set RQF_PM for domain validation commands

Bean Huo (1):
      scsi: ufs: Fix wrong print message in dev_err()

Bjørn Mork (2):
      net: usb: qmi_wwan: add Quectel EM160R-GL
      USB: serial: option: add Quectel EM160R-GL

Chandana Kishori Chiluveru (1):
      usb: gadget: configfs: Preserve function ordering after bind failure

Charan Teja Reddy (1):
      dmabuf: fix use-after-free of dmabuf's file->f_inode

Christophe JAILLET (1):
      staging: mt7621-dma: Fix a resource leak in an error handling path

Cong Wang (1):
      erspan: fix version 1 check in gre_parse_header()

Dan Carpenter (1):
      atm: idt77252: call pci_disable_device() on error path

Dan Williams (1):
      x86/mm: Fix leak of pmd ptlock

Daniel Palmer (1):
      USB: serial: option: add LongSung M5710 module support

David Disseldorp (1):
      scsi: target: Fix XCOPY NAA identifier lookup

Davide Caratti (1):
      net/sched: sch_taprio: ensure to reset/destroy all child qdiscs

Dexuan Cui (1):
      video: hyperv_fb: Fix the mmap() regression for v5.4.y and older

Dinghao Liu (2):
      net: ethernet: mvneta: Fix error handling in mvneta_probe
      net: ethernet: Fix memleak in ethoc_probe

Dominique Martinet (1):
      kbuild: don't hardcode depmod path

Eddie Hung (1):
      usb: gadget: configfs: Fix use-after-free issue with udc_name

Filipe Manana (1):
      btrfs: send: fix wrong file path when there is an inode with a pending rmdir

Florian Fainelli (1):
      net: systemport: set dev->max_mtu to UMAC_MAX_MTU_SIZE

Florian Westphal (1):
      netfilter: xt_RATEEST: reject non-null terminated string from userspace

Greg Kroah-Hartman (2):
      crypto: asym_tpm: correct zero out potential secrets
      Linux 5.4.89

Grygorii Strashko (1):
      net: ethernet: ti: cpts: fix ethtool output when no ptp_clock registered

Guillaume Nault (1):
      ipv4: Ignore ECN bits for fib lookups in fib_compute_spec_dst()

Hans de Goede (1):
      Bluetooth: revert: hci_h5: close serdev device and free hu in h5_close

Heiner Kallweit (1):
      r8169: work around power-saving bug on some chip versions

Huang Shijie (1):
      lib/genalloc: fix the overflow when size is too big

Jakub Kicinski (1):
      iavf: fix double-release of rtnl_lock

Jeff Dike (1):
      virtio_net: Fix recursive call to cpus_read_lock()

Jerome Brunet (1):
      usb: gadget: f_uac2: reset wMaxPacketSize

Johan Hovold (4):
      USB: serial: iuu_phoenix: fix DMA from stack
      USB: yurex: fix control-URB timeout handling
      USB: usblp: fix DMA to stack
      USB: serial: keyspan_pda: remove unused variable

John Wang (1):
      net/ncsi: Use real net-device for response handler

Kai-Heng Feng (1):
      ALSA: hda/realtek: Enable mute and micmute LED on HP EliteBook 850 G7

Kailang Yang (1):
      ALSA: hda/realtek - Fix speaker volume control on Lenovo C940

Lai Jiangshan (1):
      kvm: check tlbs_dirty directly

Lijun Pan (1):
      ibmvnic: continue fatal error reset after passive init

Linus Torvalds (1):
      depmod: handle the case of /sbin/depmod without /sbin in PATH

Manish Chopra (1):
      qede: fix offload for IPIP tunnel packets

Manish Narani (1):
      usb: gadget: u_ether: Fix MTU size mismatch with RX packet size

Martin Blumenstingl (2):
      net: dsa: lantiq_gswip: Enable GSWIP_MII_CFG_EN also for internal PHYs
      net: dsa: lantiq_gswip: Fix GSWIP_MII_CFG(p) register access

Matthew Auld (1):
      drm/i915: clear the gpu reloc batch

Michael Grzeschik (1):
      USB: xhci: fix U1/U2 handling for hardware with XHCI_INTEL_HOST quirk set

Nathan Chancellor (1):
      powerpc: Handle .text.{hot,unlikely}.* in linker script

Pablo Neira Ayuso (1):
      netfilter: nft_dynset: report EOPNOTSUPP on missing set feature

Paolo Bonzini (1):
      KVM: x86: fix shift out of bounds reported by UBSAN

PeiSen Hou (1):
      ALSA: hda/realtek: Add two "Intel Reference board" SSID in the ALC256.

Randy Dunlap (2):
      net: sched: prevent invalid Scell_log shift count
      usb: usbip: vhci_hcd: protect shift size

Rasmus Villemoes (2):
      ethernet: ucc_geth: fix use-after-free in ucc_geth_remove()
      ethernet: ucc_geth: set dev->max_mtu to 1518

Roland Dreier (1):
      CDC-NCM: remove "connected" log message

Sean Young (1):
      USB: cdc-acm: blacklist another IR Droid device

Serge Semin (1):
      usb: dwc3: ulpi: Use VStsDone to detect PHY regs access completion

Shannon Nelson (1):
      ionic: account for vlan tag len in rx buffer len

Sriharsha Allenki (1):
      usb: gadget: Fix spinlock lockup on usb_function_deactivate

Stefan Chulski (4):
      net: mvpp2: Add TCAM entry to drop flow control pause frames
      net: mvpp2: prs: fix PPPoE with ipv6 packet parse
      net: mvpp2: Fix GoP port 3 Networking Complex Control configurations
      net: mvpp2: fix pkt coalescing int-threshold configuration

Subash Abhinov Kasiviswanathan (1):
      netfilter: x_tables: Update remaining dereference to RCU

Sylwester Dziedziuch (1):
      i40e: Fix Error I40E_AQ_RC_EINVAL when removing VFs

Takashi Iwai (2):
      ALSA: usb-audio: Fix UBSAN warnings for MIDI jacks
      ALSA: hda/via: Fix runtime PM for Clevo W35xSS

Tetsuo Handa (1):
      USB: cdc-wdm: Fix use after free in service_outstanding_interrupt().

Thinh Nguyen (1):
      usb: uas: Add PNY USB Portable SSD to unusual_uas

Vasily Averin (1):
      netfilter: ipset: fix shift-out-of-bounds in htable_bits()

Xie He (1):
      net: hdlc_ppp: Fix issues when mod_timer is called while timer is running

Yang Yingliang (1):
      USB: gadget: legacy: fix return error code in acm_ms_bind()

Ying-Tsun Huang (1):
      x86/mtrr: Correct the range check before performing MTRR type lookups

Yu Kuai (1):
      usb: chipidea: ci_hdrc_imx: add missing put_device() call in usbmisc_get_init_data()

Yunfeng Ye (1):
      workqueue: Kick a worker based on the actual activation of delayed works

Yunjian Wang (3):
      tun: fix return value when the number of iovs exceeds MAX_SKB_FRAGS
      net: hns: fix return value check in __lb_other_process()
      vhost_net: fix ubuf refcount incorrectly when sendmsg fails

Zqiang (1):
      usb: gadget: function: printer: Fix a memory leak for interface descriptor

bo liu (1):
      ALSA: hda/conexant: add a new hda codec CX11970

taehyun.cho (1):
      usb: gadget: enable super speed plus

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

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