tree bf5343943022c09d8295e505d84b84e146793ee1
parent 05527634e331a75ed62d2ad0ff98f9e8f94c4352
parent 1ded0ef2419e8f83a17d65594523ec3aeb2e3d0f
author COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1662024233 -0700
committer COS Kernel Merge Bot <cloud-image-merge-automation@prod.google.com> 1662024235 -0700

merge-upstream/v5.15.64 from branch/tag: upstream/v5.15.64 into branch: cos-5.15

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

Alex Elder (1):
      net: ipa: don't assume SMEM is page-aligned

Anand Jain (2):
      btrfs: replace: drop assert for suspended replace
      btrfs: add info when mount fails due to stale replace target

Antony Antony (1):
      xfrm: clone missing x->lastused in xfrm_do_migrate

Arun Easi (1):
      scsi: qla2xxx: Fix response queue handler reading stale packets

Aya Levin (1):
      net/mlx5e: Fix wrong application of the LRO state

Badari Pulavarty (1):
      mm/damon/dbgfs: avoid duplicate context directory creation

Bernard Pidoux (1):
      rose: check NULL rose_loopback_neigh->loopback

Brian Foster (1):
      s390: fix double free of GS and RI CBs on fork() failure

Chen Lifu (1):
      riscv: lib: uaccess: fix CSR_STATUS SR_SUM bit

Chen Zhongjin (1):
      x86/unwind/orc: Unwind ftrace trampolines with correct ORC entry

Christian Brauner (1):
      ntfs: fix acl handling

Christoph Hellwig (1):
      block: add a bdev_max_zone_append_sectors helper

Conor Dooley (1):
      riscv: traps: add missing prototype

Daniel Borkmann (1):
      bpf: Don't use tnum_range on array range checking for poke descriptors

David Hildenbrand (1):
      mm/hugetlb: fix hugetlb not supporting softdirty tracking

David Howells (2):
      rxrpc: Fix locking in rxrpc's sendmsg
      smb3: missing inode locks in punch hole

Duoming Zhou (1):
      nfc: pn533: Fix use-after-free bugs caused by pn532_cmd_timeout

Filipe Manana (3):
      btrfs: put initial index value of a directory in a constant
      btrfs: pass the dentry to btrfs_log_new_name() instead of the inode
      btrfs: fix silent failure when deleting root reference

Florian Westphal (1):
      netfilter: ebtables: reject blobs that don't provide all entry points

Gaosheng Cui (1):
      audit: fix potential double free on error path from fsnotify_add_inode_mark

Gerald Schaefer (1):
      s390/mm: do not trigger write fault when vma does not allow VM_WRITE

Goldwyn Rodrigues (1):
      btrfs: check if root is readonly while setting security xattr

Greg Kroah-Hartman (3):
      Revert "usbnet: smsc95xx: Fix deadlock on runtime resume"
      Revert "usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling"
      Linux 5.15.64

Guoqing Jiang (2):
      Revert "md-raid: destroy the bitmap after destroying the thread"
      md: call __md_stop_writes in md_stop

Hayes Wang (2):
      r8152: fix the units of some registers for RTL8156A
      r8152: fix the RX FIFO settings when suspending

Heiner Kallweit (1):
      net: stmmac: work around sporadic tx issue on link-up

Helge Deller (2):
      parisc: Make CONFIG_64BIT available for ARCH=parisc64 only
      parisc: Fix exception handler for fldw and fstw instructions

Herbert Xu (1):
      af_key: Do not call xfrm_probe_algs in parallel

Ian Rogers (1):
      perf stat: Clear evsel->reset_group for each stat run

Jacob Keller (1):
      ixgbe: stop resetting SYSTIME in ixgbe_ptp_start_cyclecounter

Jakub Kicinski (2):
      wifi: rtlwifi: remove always-true condition pointed out by GCC 12
      net: use eth_hw_addr_set() instead of ether_addr_copy()

James Clark (1):
      perf python: Fix build when PYTHON_CONFIG is user supplied

Jens Axboe (1):
      io_uring: fix issue with io_write() not always undoing sb_start_write()

Jeremy Sowden (1):
      netfilter: bitwise: improve error goto labels

Jing-Ting Wu (1):
      cgroup: Fix race condition at rebind_subsystems()

Jisheng Zhang (1):
      riscv: lib: uaccess: fold fixups into body

Jonathan Toppins (1):
      bonding: 802.3ad: fix no transmission of LACPDUs

Juergen Gross (1):
      xen/privcmd: fix error exit of privcmd_ioctl_dm_op()

Kan Liang (1):
      perf/x86/lbr: Enable the branch type for the Arch LBR by default

Karol Herbst (1):
      nouveau: explicitly wait on the fence in nouveau_bo_move_m2mf

Khazhismel Kumykov (1):
      writeback: avoid use-after-free after removing device

Kiwoong Kim (1):
      scsi: ufs: core: Enable link lost interrupt

Kuniyuki Iwashima (15):
      net: Fix data-races around sysctl_[rw]mem_(max|default).
      net: Fix data-races around weight_p and dev_weight_[rt]x_bias.
      net: Fix data-races around netdev_max_backlog.
      net: Fix data-races around netdev_tstamp_prequeue.
      ratelimit: Fix data-races in ___ratelimit().
      net: Fix data-races around sysctl_optmem_max.
      net: Fix a data-race around sysctl_tstamp_allow_data.
      net: Fix a data-race around sysctl_net_busy_poll.
      net: Fix a data-race around sysctl_net_busy_read.
      net: Fix a data-race around netdev_budget.
      net: Fix data-races around sysctl_max_skb_frags.
      net: Fix a data-race around netdev_budget_usecs.
      net: Fix data-races around sysctl_fb_tunnels_only_for_init_net.
      net: Fix data-races around sysctl_devconf_inherit_init_net.
      net: Fix a data-race around sysctl_somaxconn.

Lai Jiangshan (1):
      x86/entry: Move CLD to the start of the idtentry macro

Liam Howlett (1):
      binder_alloc: add missing mmap_lock calls when using the VMA

Liu Shixin (1):
      bootmem: remove the vmemmap pages from kmemleak in put_page_bootmem

Maciej Fijalkowski (2):
      ice: xsk: Force rings to be sized to power of 2
      ice: xsk: prohibit usage of non-balanced queue id

Maciej Żenczykowski (1):
      net: ipvtap - add __init/__exit annotations to module init/exit funcs

Maor Dickman (1):
      net/mlx5e: Fix wrong tc flag used when set hw-tc-offload off

Martin Liška (1):
      eth: sun: cassini: remove dead code

Moshe Shemesh (1):
      net/mlx5: Avoid false positive lockdep warning by adding lock_class_key

Naohiro Aota (4):
      block: add bdev_max_segments() helper
      btrfs: zoned: revive max_zone_append_bytes
      btrfs: replace BTRFS_MAX_EXTENT_SIZE with fs_info->max_extent_size
      btrfs: convert count_max_extents() to use fs_info->max_extent_size

Nikolay Aleksandrov (1):
      xfrm: policy: fix metadata dst->dev xmit null pointer dereference

Olga Kornievskaia (1):
      NFSv4.2 fix problems with __nfs42_ssc_open

Pablo Neira Ayuso (14):
      netfilter: nf_tables: disallow updates of implicit chain
      netfilter: nf_tables: make table handle allocation per-netns friendly
      netfilter: nft_payload: report ERANGE for too long offset and length
      netfilter: nft_payload: do not truncate csum_offset and csum_type
      netfilter: nf_tables: do not leave chain stats enabled on error
      netfilter: nft_osf: restrict osf to ipv4, ipv6 and inet families
      netfilter: nft_tunnel: restrict it to netdev family
      netfilter: nf_tables: consolidate rule verdict trace call
      netfilter: nft_cmp: optimize comparison for 16-bytes
      netfilter: nf_tables: upfront validation of data via nft_data_init()
      netfilter: nf_tables: disallow jump to implicit chain from set element
      netfilter: nf_tables: disallow binding to already bound chain
      netfilter: flowtable: add function to invoke garbage collection immediately
      netfilter: flowtable: fix stuck flows on cleanup due to pending work

Paolo Abeni (2):
      tcp: expose the tcp_mark_push() and tcp_skb_entail() helpers
      mptcp: stop relying on tcp_tx_skb_cache

Pawan Gupta (1):
      x86/bugs: Add "unknown" reporting for MMIO Stale Data

Peter Xu (1):
      mm/smaps: don't access young/dirty bit if pte unpresent

Peter Zijlstra (2):
      x86/nospec: Unwreck the RSB stuffing
      x86/nospec: Fix i386 RSB stuffing

Phil Auld (1):
      drivers/base: fix userspace break from using bin_attributes for cpumap and cpulist

Qu Wenruo (1):
      btrfs: remove unnecessary parameter delalloc_start for writepage_delalloc()

Quanyang Wang (1):
      asm-generic: sections: refactor memory_intersects

Quinn Tran (1):
      scsi: qla2xxx: edif: Fix dropped IKE message

R Mohamed Shah (1):
      ionic: VF initial random MAC address if no assigned mac

Randy Dunlap (1):
      kernel/sys_ni: add compat entry for fadvise64_64

Riwen Lu (1):
      ACPI: processor: Remove freq Qos request for all CPUs

Sabrina Dubroca (1):
      Revert "net: macsec: update SCI upon MAC address change."

Salvatore Bonaccorso (1):
      Documentation/ABI: Mention retbleed vulnerability info file for sysfs

Saurabh Sengar (1):
      scsi: storvsc: Remove WQ_MEM_RECLAIM from storvsc_error_wq

Sergei Antonov (1):
      net: moxa: get rid of asymmetry in DMA mapping/unmapping

Seth Forshee (1):
      fs: require CAP_SYS_ADMIN in target namespace for idmapped mounts

Shakeel Butt (1):
      Revert "memcg: cleanup racy sum avoidance code"

Shannon Nelson (3):
      ionic: widen queue_lock use around lif init and deinit
      ionic: clear broken state on generation change
      ionic: fix up issues with handling EAGAIN on FW cmds

Shigeru Yoshida (1):
      fbdev: fbcon: Properly revert changes when vc_resize() failed

Siddh Raman Pant (1):
      loop: Check for overflow while configuring loop

Stephane Eranian (2):
      perf/x86/intel/uncore: Fix broken read_counter() for SNB IMC PMU
      perf/x86/intel/ds: Fix precise store latency handling

Sylwester Dziedziuch (1):
      i40e: Fix incorrect address type for IPv6 flow rules

Trond Myklebust (2):
      NFS: Don't allocate nfs_fattr on the stack in __nfs42_ssc_open()
      SUNRPC: RPC level errors should set task->tk_rpc_status

Vikas Gupta (1):
      bnxt_en: fix NQ resource accounting during vf creation on 57500 chips

Vlad Buslov (1):
      net/mlx5e: Properly disable vlan strip on non-UL reps

Werner Sembach (4):
      Input: i8042 - move __initconst to fix code styling warning
      Input: i8042 - merge quirk tables
      Input: i8042 - add TUXEDO devices to i8042 quirk tables
      Input: i8042 - add additional TUXEDO devices to i8042 quirk tables

Xiaolei Wang (1):
      net: phy: Don't WARN for PHY_READY state in mdio_bus_phy_resume()

Xin Xiong (1):
      xfrm: fix refcount leak in __xfrm_policy_check()

Yonglong Li (1):
      mptcp: Fix crash due to tcp_tsorted_anchor was initialized before release skb

Yu Kuai (1):
      blk-mq: fix io hung due to missing commit_rqs

Zenghui Yu (1):
      arm64: Fix match_list for erratum 1286807 on Arm Cortex-A76

Zixuan Fu (1):
      btrfs: fix possible memory leak in btrfs_get_dev_args_from_path()

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

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