tree 476cfbf14a39e8e7c099653416709448e65792d5
parent ff0cd046d80d4bdb59281575cd789e9ef45b15d0
parent cf13ba74e8eb7f37cba10d64f17e39b2679a8178
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1704532858 -0800
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1704532859 -0800

merge-upstream/v5.10.206 from branch/tag: upstream/v5.10.206 into branch: main-R97-cos-5.10

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

Alexander Atanasov (1):
      scsi: core: Always send batch on reset or error handling command

Alexis Lothoré (1):
      pinctrl: at91-pio4: use dedicated lock class for IRQ

Alper Ak (1):
      USB: serial: option: add Quectel EG912Y module support

Archie Pusaka (1):
      Bluetooth: use inclusive language in SMP

Bart Van Assche (3):
      scsi: core: Introduce scsi_get_sector()
      scsi: core: Use scsi_cmd_to_rq() instead of scsi_cmnd.request
      scsi: core: Use a structure member to track the SCSI command submitter

Chen-Yu Tsai (1):
      wifi: cfg80211: Add my certificate

Christoffer Sandberg (1):
      Input: soc_button_array - add mapping for airplane mode button

Dan Carpenter (1):
      usb: fotg210-hcd: delete an incorrect bounds test

Dan Sneddon (2):
      spi: atmel: Switch to transfer_one transfer method
      spi: atmel: Fix CS and initialization bug

David Howells (4):
      afs: Fix the dynamic root's d_delete to always delete unused dentries
      afs: Fix dynamic root lookup DNS check
      keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
      afs: Fix overwriting of result of DNS query

Eric Dumazet (3):
      net: sched: ife: fix potential use-after-free
      net/rose: fix races in rose_kill_by_device()
      net: check dev->gso_max_size in gso_features_check()

Fabio Estevam (1):
      dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp

Fedor Pchelkin (1):
      net: 9p: avoid freeing uninit memory in p9pdu_vreadf

Frédéric Danis (1):
      Bluetooth: L2CAP: Send reject on command corrupted request

Geert Uytterhoeven (1):
      reset: Fix crash when freeing non-existent optional resets

Greg Kroah-Hartman (2):
      Revert "MIPS: Loongson64: Enable DMA noncoherent support"
      Linux 5.10.206

Hangyu Hua (1):
      9p/net: fix possible memory leak in p9_check_errors()

Haoran Liu (1):
      Input: ipaq-micro-keys - add error handling for devm_kmemdup

Heiko Carstens (1):
      s390/vx: fix save/restore of fpu kernel context

Heiner Kallweit (1):
      net: warn if gso_type isn't set for a GSO SKB

Herve Codina (1):
      lib/vsprintf: Fix %pfwf when current node refcount == 0

Hyunwoo Kim (1):
      Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg

Javier Carrasco (1):
      iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table

Johannes Berg (2):
      wifi: mac80211: mesh_plink: fix matches_local logic
      wifi: cfg80211: fix certs build to not depend on file order

Josef Bacik (1):
      btrfs: do not allow non subvolume root targets for snapshot

Kai Vehmanen (2):
      ALSA: hda/hdmi: Add quirk to force pin connectivity on NUC10
      ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB

Kunwu Chan (1):
      ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init

Liu Jian (1):
      net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()

Luiz Augusto von Dentz (3):
      Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
      Bluetooth: SMP: Convert BT_ERR/BT_DBG to bt_dev_err/bt_dev_dbg
      Bluetooth: SMP: Fix crash when receiving new connection when debug is enabled

Mark Glover (1):
      USB: serial: ftdi_sio: update Actisense PIDs constant names

Martin K. Petersen (2):
      scsi: core: Add scsi_prot_ref_tag() helper
      scsi: core: Make scsi_get_lba() return the LBA

Mike Tipton (1):
      interconnect: Treat xlate() returning NULL node as an error

Mikulas Patocka (1):
      dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()

Moshe Shemesh (1):
      net/mlx5: Fix fw tracer first block check

Namjae Jeon (1):
      ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE

Pablo Neira Ayuso (1):
      netfilter: nf_tables: skip set commit for deleted/destroyed sets

Paulo Alcantara (4):
      smb: client: fix OOB in smb2_query_reparse_point()
      smb: client: fix NULL deref in asn1_ber_decoder()
      smb: client: fix OOB in SMB2_query_info_init()
      smb: client: fix OOB in smbCalcSize()

Quan Nguyen (1):
      i2c: aspeed: Handle the coalesced stop conditions with the start conditions.

Rahul Rameshbabu (1):
      net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors

Reinhard Speyerer (1):
      USB: serial: option: add Quectel RM500Q R13 firmware support

Ronald Wahl (1):
      net: ks8851: Fix TX stall caused by TX buffer overrun

Rouven Czerwinski (1):
      net: rfkill: gpio: set GPIO direction

Shifeng Li (1):
      net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()

Slark Xiao (1):
      USB: serial: option: add Foxconn T99W265 with new baseline

Steven Rostedt (Google) (3):
      tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
      ring-buffer: Fix wake ups when buffer_percent is set to 100
      tracing: Fix blocked reader of snapshot buffer

Su Hui (1):
      iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw

Thomas Gleixner (1):
      x86/alternatives: Sync core before enabling interrupts

Tony Lindgren (2):
      bus: ti-sysc: Flush posted write only after srst_udelay
      ARM: dts: Fix occasional boot hang for am3 usb

Ville Baillie (1):
      spi: atmel: Fix PDC transfer setup bug

Vlad Buslov (1):
      Revert "net/mlx5e: fix double free of encap_header"

Wadim Egorov (1):
      iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()

Wei Yongjun (1):
      scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()

Xiao Yao (1):
      Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE

Zhipeng Lu (1):
      ethernet: atheros: fix a memleak in atl1e_setup_ring_resources

BUG=b/318925983
TEST=tryjob, validation and K8s e2e
RELEASE_NOTE=Updated the Linux kernel to v5.10.206.

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