Merge branch 'android13-5.10' into android13-5.10-lts

Catch up on the non-lts branch changes.  Commits in here include:

* 1524a5cab607 Merge tag 'android13-5.10.234_r00' into android13-5.10
* 5039b2dffe4a BACKPORT: usb: xhci: Fix NULL pointer dereference on certain command aborts
* 6b7c856caf89 UPSTREAM: Revert "PCI: Use preserve_config in place of pci_flags"
* 37e047edf179 ANDROID: GKI: Update rockchip symbols to add iova APIs
* 76b049b5861c UPSTREAM: binder: log transaction code on failure
* 894f9150d02a UPSTREAM: binder: add failed transaction logging info
* deba2e8f0eb7 UPSTREAM: f2fs: Introduce linear search for dentries
* 00f88ea1b71f BACKPORT: sched/fair: Move update_nohz_stats() to the CONFIG_NO_HZ_COMMON block to simplify the code & fix an unused function warning
* baac115536de ANDROID: KABI macros to release excess KABI fields for use with backports
* e3c68400aafc Merge tag 'android13-5.10.233_r00' into android13-5.10
* 3e93d4249b82 ANDROID: GKI: Add Paragon symbol list
* cbc1671ddfcc UPSTREAM: selinux: ignore unknown extended permissions
* 0bc810b14580 UPSTREAM: KVM: arm64: Release pfn, i.e. put page, if copying MTE tags hits ZONE_DEVICE
* 608ac7d1391e UPSTREAM: KVM: arm64: Fix AArch32 register narrowing on userspace write
* 0c1ae322c416 UPSTREAM: coresight: etm4x: Do not hardcode IOMEM access for register restore
* 7282ad778034 UPSTREAM: coresight: etm4x: Fix unbalanced pm_runtime_enable()
* 15122b56a834 UPSTREAM: ASoC: hdmi-codec: fix missing report for jack initial status
* 8e928fe4d94d UPSTREAM: bpf: sync_linked_regs() must preserve subreg_def
* 07e17f7f8788 UPSTREAM: ALSA: usb-audio: Fix a DMA to stack memory bug
* 5415f35f0d70 UPSTREAM: ALSA: usb-audio: Fix out of bounds reads when finding clock sources
* 9f71abb43117 ANDROID: fix kernelci build break: redefinition of 'kallsyms_on_each_symbol'
* 114c458f409b UPSTREAM: ALSA: usb-audio: Fix potential out-of-bound accesses for Extigy and Mbox devices

Change-Id: I55e45c3b156c0938389cc57b141d6ad147f36a60
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
diff --git a/BUILD.bazel b/BUILD.bazel
index e3bae9b24..887e08e 100644
--- a/BUILD.bazel
+++ b/BUILD.bazel
@@ -19,6 +19,7 @@
     "android/abi_gki_aarch64_galaxy",
     "android/abi_gki_aarch64_generic",
     "android/abi_gki_aarch64_hikey960",
+    "android/abi_gki_aarch64_paragon",
     "android/abi_gki_aarch64_rockchip",
     "android/abi_gki_aarch64_rtkstb",
     "android/abi_gki_aarch64_telechips",
diff --git a/android/abi_gki_aarch64.xml b/android/abi_gki_aarch64.xml
index e9d3618..937726c 100644
--- a/android/abi_gki_aarch64.xml
+++ b/android/abi_gki_aarch64.xml
@@ -553,6 +553,7 @@
       <elf-symbol name='alloc_chrdev_region' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe3ec2f2b'/>
       <elf-symbol name='alloc_etherdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x35259fd5'/>
       <elf-symbol name='alloc_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x15b12fac'/>
+      <elf-symbol name='alloc_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e7955a7'/>
       <elf-symbol name='alloc_iova_fast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x7c9bed48'/>
       <elf-symbol name='alloc_netdev_mqs' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x2c573a3e'/>
       <elf-symbol name='alloc_pages_exact' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x5fc72f0e'/>
@@ -2042,6 +2043,7 @@
       <elf-symbol name='free_buffer_head' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3e9f259e'/>
       <elf-symbol name='free_candev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xe568f91'/>
       <elf-symbol name='free_io_pgtable_ops' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x9e5c5bed'/>
+      <elf-symbol name='free_iova' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xcc5b5fba'/>
       <elf-symbol name='free_iova_fast' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x6907c213'/>
       <elf-symbol name='free_irq' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xc1514a3b'/>
       <elf-symbol name='free_netdev' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd67e457b'/>
@@ -3857,6 +3859,7 @@
       <elf-symbol name='serio_unregister_port' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x501fdc15'/>
       <elf-symbol name='set_bh_page' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x93d90098'/>
       <elf-symbol name='set_blocksize' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x3a10b4e3'/>
+      <elf-symbol name='set_cached_acl' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x4d70e944'/>
       <elf-symbol name='set_capacity_revalidate_and_notify' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xd52ef3a6'/>
       <elf-symbol name='set_cpus_allowed_ptr' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0xbd179a66'/>
       <elf-symbol name='set_disk_ro' type='func-type' binding='global-binding' visibility='default-visibility' is-defined='yes' crc='0x24462b13'/>
@@ -80750,6 +80753,7 @@
         <parameter type-id='7292109c'/>
         <return type-id='95e97e5e'/>
       </function-type>
+      <pointer-type-def type-id='f3a719f4' size-in-bits='64' id='b2ea0a72'/>
       <pointer-type-def type-id='751b0878' size-in-bits='64' id='b2edd032'/>
       <function-type size-in-bits='64' id='b2f05574'>
         <parameter type-id='666fb412'/>
@@ -122065,6 +122069,13 @@
         <parameter type-id='eaa32e2f' name='cookie' filepath='drivers/iommu/io-pgtable.c' line='31' column='1'/>
         <return type-id='bf4bdb64'/>
       </function-decl>
+      <function-decl name='alloc_iova' mangled-name='alloc_iova' filepath='drivers/iommu/iova.c' line='388' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='388' column='1'/>
+        <parameter type-id='7359adad' name='size' filepath='drivers/iommu/iova.c' line='388' column='1'/>
+        <parameter type-id='7359adad' name='limit_pfn' filepath='drivers/iommu/iova.c' line='389' column='1'/>
+        <parameter type-id='b50a4934' name='size_aligned' filepath='drivers/iommu/iova.c' line='390' column='1'/>
+        <return type-id='b2ea0a72'/>
+      </function-decl>
       <function-decl name='alloc_iova_fast' mangled-name='alloc_iova_fast' filepath='drivers/iommu/iova.c' line='511' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='alloc_iova_fast'>
         <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='511' column='1'/>
         <parameter type-id='7359adad' name='size' filepath='drivers/iommu/iova.c' line='511' column='1'/>
@@ -130057,6 +130068,11 @@
         <parameter type-id='bf4bdb64' name='ops' filepath='drivers/iommu/io-pgtable.c' line='59' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
+      <function-decl name='free_iova' mangled-name='free_iova' filepath='drivers/iommu/iova.c' line='490' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_iova'>
+        <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='490' column='1'/>
+        <parameter type-id='7359adad' name='pfn' filepath='drivers/iommu/iova.c' line='490' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='free_iova_fast' mangled-name='free_iova_fast' filepath='drivers/iommu/iova.c' line='550' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='free_iova_fast'>
         <parameter type-id='0c2c419d' name='iovad' filepath='drivers/iommu/iova.c' line='550' column='1'/>
         <parameter type-id='7359adad' name='pfn' filepath='drivers/iommu/iova.c' line='550' column='1'/>
@@ -138666,38 +138682,38 @@
         <parameter type-id='f23e2572' name='p' filepath='kernel/sched/core.c' line='6721' column='1'/>
         <return type-id='48b5725f'/>
       </function-decl>
-      <function-decl name='sched_trace_cfs_rq_avg' mangled-name='sched_trace_cfs_rq_avg' filepath='kernel/sched/fair.c' line='11738' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_avg'>
-        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11738' column='1'/>
+      <function-decl name='sched_trace_cfs_rq_avg' mangled-name='sched_trace_cfs_rq_avg' filepath='kernel/sched/fair.c' line='11734' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_avg'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11734' column='1'/>
         <return type-id='847e6fee'/>
       </function-decl>
-      <function-decl name='sched_trace_cfs_rq_cpu' mangled-name='sched_trace_cfs_rq_cpu' filepath='kernel/sched/fair.c' line='11762' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_cpu'>
-        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11762' column='1'/>
+      <function-decl name='sched_trace_cfs_rq_cpu' mangled-name='sched_trace_cfs_rq_cpu' filepath='kernel/sched/fair.c' line='11758' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_cpu'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11758' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
-      <function-decl name='sched_trace_cfs_rq_path' mangled-name='sched_trace_cfs_rq_path' filepath='kernel/sched/fair.c' line='11748' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_path'>
-        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11748' column='1'/>
-        <parameter type-id='26a90f95' name='str' filepath='kernel/sched/fair.c' line='11748' column='1'/>
-        <parameter type-id='95e97e5e' name='len' filepath='kernel/sched/fair.c' line='11748' column='1'/>
+      <function-decl name='sched_trace_cfs_rq_path' mangled-name='sched_trace_cfs_rq_path' filepath='kernel/sched/fair.c' line='11744' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_cfs_rq_path'>
+        <parameter type-id='a6892387' name='cfs_rq' filepath='kernel/sched/fair.c' line='11744' column='1'/>
+        <parameter type-id='26a90f95' name='str' filepath='kernel/sched/fair.c' line='11744' column='1'/>
+        <parameter type-id='95e97e5e' name='len' filepath='kernel/sched/fair.c' line='11744' column='1'/>
         <return type-id='26a90f95'/>
       </function-decl>
-      <function-decl name='sched_trace_rd_span' mangled-name='sched_trace_rd_span' filepath='kernel/sched/fair.c' line='11816' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rd_span'>
-        <parameter type-id='c13bca88' name='rd' filepath='kernel/sched/fair.c' line='11816' column='1'/>
+      <function-decl name='sched_trace_rd_span' mangled-name='sched_trace_rd_span' filepath='kernel/sched/fair.c' line='11812' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rd_span'>
+        <parameter type-id='c13bca88' name='rd' filepath='kernel/sched/fair.c' line='11812' column='1'/>
         <return type-id='5f8a1ac4'/>
       </function-decl>
-      <function-decl name='sched_trace_rq_avg_dl' mangled-name='sched_trace_rq_avg_dl' filepath='kernel/sched/fair.c' line='11778' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_dl'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11778' column='1'/>
+      <function-decl name='sched_trace_rq_avg_dl' mangled-name='sched_trace_rq_avg_dl' filepath='kernel/sched/fair.c' line='11774' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_dl'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11774' column='1'/>
         <return type-id='847e6fee'/>
       </function-decl>
-      <function-decl name='sched_trace_rq_avg_irq' mangled-name='sched_trace_rq_avg_irq' filepath='kernel/sched/fair.c' line='11788' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_irq'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11788' column='1'/>
+      <function-decl name='sched_trace_rq_avg_irq' mangled-name='sched_trace_rq_avg_irq' filepath='kernel/sched/fair.c' line='11784' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_irq'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11784' column='1'/>
         <return type-id='847e6fee'/>
       </function-decl>
-      <function-decl name='sched_trace_rq_avg_rt' mangled-name='sched_trace_rq_avg_rt' filepath='kernel/sched/fair.c' line='11768' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_rt'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11768' column='1'/>
+      <function-decl name='sched_trace_rq_avg_rt' mangled-name='sched_trace_rq_avg_rt' filepath='kernel/sched/fair.c' line='11764' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_avg_rt'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11764' column='1'/>
         <return type-id='847e6fee'/>
       </function-decl>
-      <function-decl name='sched_trace_rq_cpu' mangled-name='sched_trace_rq_cpu' filepath='kernel/sched/fair.c' line='11798' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_cpu'>
-        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11798' column='1'/>
+      <function-decl name='sched_trace_rq_cpu' mangled-name='sched_trace_rq_cpu' filepath='kernel/sched/fair.c' line='11794' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='sched_trace_rq_cpu'>
+        <parameter type-id='6ed6b432' name='rq' filepath='kernel/sched/fair.c' line='11794' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
       <var-decl name='sched_uclamp_used' type-id='237c0d27' mangled-name='sched_uclamp_used' visibility='default' filepath='kernel/sched/core.c' line='972' column='1' elf-symbol-id='sched_uclamp_used'/>
@@ -139344,6 +139360,12 @@
         <parameter type-id='95e97e5e' name='size' filepath='fs/block_dev.c' line='157' column='1'/>
         <return type-id='95e97e5e'/>
       </function-decl>
+      <function-decl name='set_cached_acl' mangled-name='set_cached_acl' filepath='fs/posix_acl.c' line='63' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_cached_acl'>
+        <parameter type-id='7e666abe' name='inode' filepath='fs/posix_acl.c' line='63' column='1'/>
+        <parameter type-id='95e97e5e' name='type' filepath='fs/posix_acl.c' line='63' column='1'/>
+        <parameter type-id='2871909b' name='acl' filepath='fs/posix_acl.c' line='63' column='1'/>
+        <return type-id='48b5725f'/>
+      </function-decl>
       <function-decl name='set_capacity_revalidate_and_notify' mangled-name='set_capacity_revalidate_and_notify' filepath='block/genhd.c' line='52' column='1' visibility='default' binding='global' size-in-bits='64' elf-symbol-id='set_capacity_revalidate_and_notify'>
         <parameter type-id='33c599da' name='disk' filepath='block/genhd.c' line='52' column='1'/>
         <parameter type-id='a42536cd' name='size' filepath='block/genhd.c' line='52' column='1'/>
diff --git a/android/abi_gki_aarch64_paragon b/android/abi_gki_aarch64_paragon
new file mode 100644
index 0000000..872b459
--- /dev/null
+++ b/android/abi_gki_aarch64_paragon
@@ -0,0 +1,156 @@
+[abi_symbol_list]
+  vfs_llseek
+  zlib_inflateEnd
+  zlib_inflate
+  zlib_inflateInit2
+  zlib_inflate_workspacesize
+  vm_zone_stat
+  unload_nls
+  sync_inodes_sb
+  kfree_link
+  iov_iter_zero
+  iov_iter_revert
+  __blockdev_direct_IO
+  grab_cache_page_write_begin
+  add_to_page_cache_locked
+  lru_cache_add
+  write_cache_pages
+  errseq_set
+  __filemap_set_wb_err
+  mark_buffer_async_write
+  redirty_page_for_writepage
+  __test_set_page_writeback
+  end_page_writeback
+  generic_error_remove_page
+  block_is_partially_uptodate
+  buffer_migrate_page
+  block_invalidatepage
+  __set_page_dirty_buffers
+  truncate_pagecache
+  generic_file_splice_read
+  iter_file_splice_write
+  generic_file_mmap
+  vfs_fsync_range
+  balance_dirty_pages_ratelimited
+  pagecache_write_end
+  pagecache_write_begin
+  create_empty_buffers
+  try_to_writeback_inodes_sb
+  generic_perform_write
+  generic_file_direct_write
+  file_remove_privs
+  generic_write_checks
+  generic_fillattr
+  sync_inode
+  filemap_write_and_wait_range
+  igrab
+  generic_file_open
+  generic_read_dir
+  fiemap_fill_next_extent
+  lockref_get
+  drop_nlink
+  inc_nlink
+  d_instantiate
+  __posix_acl_create
+  d_splice_alias
+  d_move
+  d_rehash
+  d_find_alias
+  truncate_setsize
+  posix_acl_chmod
+  in_group_p
+  inode_dio_wait
+  setattr_prepare
+  generic_permission
+  inode_nohighmem
+  init_special_inode
+  unlock_new_inode
+  iget5_locked
+  d_obtain_alias
+  ilookup
+  shrink_dcache_sb
+  invalidate_bdev
+  clear_inode
+  truncate_inode_pages
+  inode_get_bytes
+  __mark_inode_dirty
+  posix_acl_equiv_mode
+  posix_acl_valid
+  posix_acl_from_xattr
+  posix_acl_to_xattr
+  make_bad_inode
+  set_nlink
+  load_nls
+  load_nls_default
+  current_umask
+  d_drop
+  mount_bdev
+  kill_block_super
+  inode_init_once
+  pagecache_get_page
+  blkdev_issue_flush
+  __bread_gfp
+  __lock_buffer
+  __getblk_gfp
+  I_BDEV
+  inode_set_bytes
+  sb_set_blocksize
+  blkdev_issue_zeroout
+  blkdev_issue_discard
+  __bforget
+  sync_dirty_buffer
+  unlock_buffer
+  mark_buffer_dirty
+  __wait_on_buffer
+  copy_page
+  submit_bh
+  end_buffer_read_sync
+  sync_blockdev
+  clean_bdev_aliases
+  blk_finish_plug
+  mpage_readpage
+  blk_start_plug
+  put_pages_list
+  ktime_get_coarse_real_ts64
+  wait_for_completion_io
+  blkdev_issue_write_same
+  try_to_free_buffers
+  set_bh_page
+  alloc_buffer_head
+  __getblk_gfp
+  __cond_resched_lock
+  free_buffer_head
+  submit_bh
+  __bread_gfp
+  __find_get_block
+  bdevname
+  __lock_buffer
+  bit_waitqueue
+  wake_bit_function
+  unlock_buffer
+  yield
+  sync_dirty_buffer
+  mark_buffer_dirty
+  blkdev_issue_flush
+  __wait_on_buffer
+  blk_finish_plug
+  write_dirty_buffer
+  blk_start_plug
+  __brelse
+  congestion_wait
+  add_to_page_cache_lru
+  wait_on_page_writeback
+  inode_newsize_ok
+  __insert_inode_hash
+  d_add_ci
+  generic_fh_to_dentry
+  generic_fh_to_parent
+  ihold
+  is_bad_inode
+  overflowgid
+  overflowuid
+  read_cache_page
+  sb_min_blocksize
+  sync_filesystem
+  truncate_inode_pages_final
+  set_cached_acl
diff --git a/android/abi_gki_aarch64_rockchip b/android/abi_gki_aarch64_rockchip
index b335c27..2cb6486 100644
--- a/android/abi_gki_aarch64_rockchip
+++ b/android/abi_gki_aarch64_rockchip
@@ -2327,6 +2327,7 @@
   proc_remove
 
 # required by rknpu.ko
+  alloc_iova
   dev_pm_domain_attach_by_name
   drm_gem_dumb_destroy
   drm_gem_handle_delete
@@ -2334,6 +2335,7 @@
   drm_gem_prime_import_dev
   drm_gem_vm_open
   drm_prime_gem_destroy
+  free_iova
   set_user_nice
   vmf_insert_mixed
   vm_insert_page
diff --git a/arch/arm64/kvm/guest.c b/arch/arm64/kvm/guest.c
index e319134..b820587 100644
--- a/arch/arm64/kvm/guest.c
+++ b/arch/arm64/kvm/guest.c
@@ -255,7 +255,7 @@ static int set_core_reg(struct kvm_vcpu *vcpu, const struct kvm_one_reg *reg)
 	if (*vcpu_cpsr(vcpu) & PSR_MODE32_BIT) {
 		int i, nr_reg;
 
-		switch (*vcpu_cpsr(vcpu)) {
+		switch (*vcpu_cpsr(vcpu) & PSR_AA32_MODE_MASK) {
 		/*
 		 * Either we are dealing with user mode, and only the
 		 * first 15 registers (+ PC) must be narrowed to 32bit.
@@ -1037,6 +1037,7 @@ int kvm_vm_ioctl_mte_copy_tags(struct kvm *kvm,
 		page = pfn_to_online_page(pfn);
 		if (!page) {
 			/* Reject ZONE_DEVICE memory */
+			kvm_release_pfn_clean(pfn);
 			ret = -EFAULT;
 			goto out;
 		}
diff --git a/build.config.gki.aarch64 b/build.config.gki.aarch64
index c7410ba..b1c263f 100644
--- a/build.config.gki.aarch64
+++ b/build.config.gki.aarch64
@@ -21,6 +21,7 @@
 android/abi_gki_aarch64_virtual_device
 android/abi_gki_aarch64_db845c
 android/abi_gki_aarch64_hikey960
+android/abi_gki_aarch64_paragon
 android/abi_gki_aarch64_rockchip
 android/abi_gki_aarch64_rtkstb
 android/abi_gki_aarch64_telechips
diff --git a/drivers/android/binder.c b/drivers/android/binder.c
index 5de5258..bebc982 100644
--- a/drivers/android/binder.c
+++ b/drivers/android/binder.c
@@ -3824,9 +3824,13 @@ static void binder_transaction(struct binder_proc *proc,
 	}
 
 	binder_debug(BINDER_DEBUG_FAILED_TRANSACTION,
-		     "%d:%d transaction failed %d/%d, size %lld-%lld line %d\n",
-		     proc->pid, thread->pid, return_error, return_error_param,
-		     (u64)tr->data_size, (u64)tr->offsets_size,
+		     "%d:%d transaction %s to %d:%d failed %d/%d/%d, code %u size %lld-%lld line %d\n",
+		     proc->pid, thread->pid, reply ? "reply" :
+		     (tr->flags & TF_ONE_WAY ? "async" : "call"),
+		     target_proc ? target_proc->pid : 0,
+		     target_thread ? target_thread->pid : 0,
+		     t_debug_id, return_error, return_error_param,
+		     tr->code, (u64)tr->data_size, (u64)tr->offsets_size,
 		     return_error_line);
 
 	{
diff --git a/drivers/hwtracing/coresight/coresight-etm4x-core.c b/drivers/hwtracing/coresight/coresight-etm4x-core.c
index 3ddf957..11ea9d8 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x-core.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x-core.c
@@ -1715,8 +1715,10 @@ static void __etm4_cpu_restore(struct etmv4_drvdata *drvdata)
 {
 	int i;
 	struct etmv4_save_state *state = drvdata->save_state;
-	struct csdev_access tmp_csa = CSDEV_ACCESS_IOMEM(drvdata->base);
-	struct csdev_access *csa = &tmp_csa;
+	struct csdev_access *csa = &drvdata->csdev->access;
+
+	if (WARN_ON(!drvdata->csdev))
+		return;
 
 	etm4_cs_unlock(drvdata, csa);
 	etm4x_relaxed_write32(csa, state->trcclaimset, TRCCLAIMSET);
@@ -2033,6 +2035,9 @@ static int etm4_probe_platform_dev(struct platform_device *pdev)
 	ret = etm4_probe(&pdev->dev, NULL, 0);
 
 	pm_runtime_put(&pdev->dev);
+	if (ret)
+		pm_runtime_disable(&pdev->dev);
+
 	return ret;
 }
 
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index 21241f5..b89c1ab 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -378,7 +378,8 @@ static void xhci_handle_stopped_cmd_ring(struct xhci_hcd *xhci,
 	if ((xhci->cmd_ring->dequeue != xhci->cmd_ring->enqueue) &&
 	    !(xhci->xhc_state & XHCI_STATE_DYING)) {
 		xhci->current_cmd = cur_cmd;
-		xhci_mod_cmd_timer(xhci, XHCI_CMD_DEFAULT_TIMEOUT);
+		if (cur_cmd)
+			xhci_mod_cmd_timer(xhci, XHCI_CMD_DEFAULT_TIMEOUT);
 		xhci_ring_cmd_db(xhci);
 	}
 }
diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index 14a010d..f182d4f 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -199,7 +199,8 @@ static unsigned long dir_block_index(unsigned int level,
 static struct f2fs_dir_entry *find_in_block(struct inode *dir,
 				struct page *dentry_page,
 				const struct f2fs_filename *fname,
-				int *max_slots)
+				int *max_slots,
+				bool use_hash)
 {
 	struct f2fs_dentry_block *dentry_blk;
 	struct f2fs_dentry_ptr d;
@@ -207,7 +208,7 @@ static struct f2fs_dir_entry *find_in_block(struct inode *dir,
 	dentry_blk = (struct f2fs_dentry_block *)page_address(dentry_page);
 
 	make_dentry_ptr_block(dir, &d, dentry_blk);
-	return f2fs_find_target_dentry(&d, fname, max_slots);
+	return f2fs_find_target_dentry(&d, fname, max_slots, use_hash);
 }
 
 #ifdef CONFIG_UNICODE
@@ -284,7 +285,8 @@ static inline int f2fs_match_name(const struct inode *dir,
 }
 
 struct f2fs_dir_entry *f2fs_find_target_dentry(const struct f2fs_dentry_ptr *d,
-			const struct f2fs_filename *fname, int *max_slots)
+			const struct f2fs_filename *fname, int *max_slots,
+			bool use_hash)
 {
 	struct f2fs_dir_entry *de;
 	unsigned long bit_pos = 0;
@@ -307,7 +309,7 @@ struct f2fs_dir_entry *f2fs_find_target_dentry(const struct f2fs_dentry_ptr *d,
 			continue;
 		}
 
-		if (de->hash_code == fname->hash) {
+		if (!use_hash || de->hash_code == fname->hash) {
 			res = f2fs_match_name(d->inode, fname,
 					      d->filename[bit_pos],
 					      le16_to_cpu(de->name_len));
@@ -334,11 +336,12 @@ struct f2fs_dir_entry *f2fs_find_target_dentry(const struct f2fs_dentry_ptr *d,
 static struct f2fs_dir_entry *find_in_level(struct inode *dir,
 					unsigned int level,
 					const struct f2fs_filename *fname,
-					struct page **res_page)
+					struct page **res_page,
+					bool use_hash)
 {
 	int s = GET_DENTRY_SLOTS(fname->disk_name.len);
 	unsigned int nbucket, nblock;
-	unsigned int bidx, end_block;
+	unsigned int bidx, end_block, bucket_no;
 	struct page *dentry_page;
 	struct f2fs_dir_entry *de = NULL;
 	bool room = false;
@@ -347,8 +350,11 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
 	nbucket = dir_buckets(level, F2FS_I(dir)->i_dir_level);
 	nblock = bucket_blocks(level);
 
+	bucket_no = use_hash ? le32_to_cpu(fname->hash) % nbucket : 0;
+
+start_find_bucket:
 	bidx = dir_block_index(level, F2FS_I(dir)->i_dir_level,
-			       le32_to_cpu(fname->hash) % nbucket);
+			       bucket_no);
 	end_block = bidx + nblock;
 
 	for (; bidx < end_block; bidx++) {
@@ -364,7 +370,7 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
 			}
 		}
 
-		de = find_in_block(dir, dentry_page, fname, &max_slots);
+		de = find_in_block(dir, dentry_page, fname, &max_slots, use_hash);
 		if (IS_ERR(de)) {
 			*res_page = ERR_CAST(de);
 			de = NULL;
@@ -379,12 +385,18 @@ static struct f2fs_dir_entry *find_in_level(struct inode *dir,
 		f2fs_put_page(dentry_page, 0);
 	}
 
-	if (!de && room && F2FS_I(dir)->chash != fname->hash) {
-		F2FS_I(dir)->chash = fname->hash;
-		F2FS_I(dir)->clevel = level;
-	}
+	if (de)
+		return de;
 
-	return de;
+	if (likely(use_hash)) {
+		if (room && F2FS_I(dir)->chash != fname->hash) {
+			F2FS_I(dir)->chash = fname->hash;
+			F2FS_I(dir)->clevel = level;
+		}
+	} else if (++bucket_no < nbucket) {
+		goto start_find_bucket;
+	}
+	return NULL;
 }
 
 struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir,
@@ -395,11 +407,15 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir,
 	struct f2fs_dir_entry *de = NULL;
 	unsigned int max_depth;
 	unsigned int level;
+	bool use_hash = true;
 
 	*res_page = NULL;
 
+#if IS_ENABLED(CONFIG_UNICODE)
+start_find_entry:
+#endif
 	if (f2fs_has_inline_dentry(dir)) {
-		de = f2fs_find_in_inline_dir(dir, fname, res_page);
+		de = f2fs_find_in_inline_dir(dir, fname, res_page, use_hash);
 		goto out;
 	}
 
@@ -415,11 +431,18 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir,
 	}
 
 	for (level = 0; level < max_depth; level++) {
-		de = find_in_level(dir, level, fname, res_page);
+		de = find_in_level(dir, level, fname, res_page, use_hash);
 		if (de || IS_ERR(*res_page))
 			break;
 	}
+
 out:
+#if IS_ENABLED(CONFIG_UNICODE)
+	if (IS_CASEFOLDED(dir) && !de && use_hash) {
+		use_hash = false;
+		goto start_find_entry;
+	}
+#endif
 	/* This is to increase the speed of f2fs_create */
 	if (!de)
 		F2FS_I(dir)->task = current;
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 7685c42..8f2cb935 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3475,7 +3475,8 @@ int f2fs_prepare_lookup(struct inode *dir, struct dentry *dentry,
 			struct f2fs_filename *fname);
 void f2fs_free_filename(struct f2fs_filename *fname);
 struct f2fs_dir_entry *f2fs_find_target_dentry(const struct f2fs_dentry_ptr *d,
-			const struct f2fs_filename *fname, int *max_slots);
+			const struct f2fs_filename *fname, int *max_slots,
+			bool use_hash);
 int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,
 			unsigned int start_pos, struct fscrypt_str *fstr);
 void f2fs_do_make_empty_dir(struct inode *inode, struct inode *parent,
@@ -4090,7 +4091,8 @@ int f2fs_write_inline_data(struct inode *inode, struct page *page);
 int f2fs_recover_inline_data(struct inode *inode, struct page *npage);
 struct f2fs_dir_entry *f2fs_find_in_inline_dir(struct inode *dir,
 					const struct f2fs_filename *fname,
-					struct page **res_page);
+					struct page **res_page,
+					bool use_hash);
 int f2fs_make_empty_inline_dir(struct inode *inode, struct inode *parent,
 			struct page *ipage);
 int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c
index 5bcd242..9ae6833 100644
--- a/fs/f2fs/inline.c
+++ b/fs/f2fs/inline.c
@@ -351,7 +351,8 @@ int f2fs_recover_inline_data(struct inode *inode, struct page *npage)
 
 struct f2fs_dir_entry *f2fs_find_in_inline_dir(struct inode *dir,
 					const struct f2fs_filename *fname,
-					struct page **res_page)
+					struct page **res_page,
+					bool use_hash)
 {
 	struct f2fs_sb_info *sbi = F2FS_SB(dir->i_sb);
 	struct f2fs_dir_entry *de;
@@ -368,7 +369,7 @@ struct f2fs_dir_entry *f2fs_find_in_inline_dir(struct inode *dir,
 	inline_dentry = inline_data_addr(dir, ipage);
 
 	make_dentry_ptr_inline(dir, &d, inline_dentry);
-	de = f2fs_find_target_dentry(&d, fname, NULL);
+	de = f2fs_find_target_dentry(&d, fname, NULL, use_hash);
 	unlock_page(ipage);
 	if (IS_ERR(de)) {
 		*res_page = ERR_CAST(de);
diff --git a/include/linux/android_kabi.h b/include/linux/android_kabi.h
index e4a4f85..ee60f4c 100644
--- a/include/linux/android_kabi.h
+++ b/include/linux/android_kabi.h
@@ -86,6 +86,14 @@
  */
 #define ANDROID_KABI_RESERVE(number)	_ANDROID_KABI_RESERVE(number)
 
+/*
+ * ANDROID_KABI_BACKPORT_OK
+ *   Used to allow padding originally reserved with ANDROID_KABI_RESERVE
+ *   to be used for backports of non-LTS patches by partners. These
+ *   fields can by used by replacing with ANDROID_KABI_BACKPORT_USE()
+ *   for partner backports.
+ */
+#define ANDROID_KABI_BACKPORT_OK(number) ANDROID_KABI_RESERVE(number)
 
 /*
  * Macros to use _after_ the ABI is frozen
@@ -101,6 +109,17 @@
 	_ANDROID_KABI_REPLACE(_ANDROID_KABI_RESERVE(number), _new)
 
 /*
+ * ANDROID_KABI_BACKPORT_USE(number, _new)
+ *   Use a previous padding entry that was defined with
+ *   ANDROID_KABI_BACKPORT_OK(). This is functionally identical
+ *   to ANDROID_KABI_USE() except that it differentiates the
+ *   normal use of KABI fields for LTS from KABI fields that
+ *   were released for use with other backports from upstream.
+ */
+#define ANDROID_KABI_BACKPORT_USE(number, _new) \
+	ANDROID_KABI_USE(number, _new)
+
+/*
  * ANDROID_KABI_USE2(number, _new1, _new2)
  *   Use a previous padding entry that was defined with ANDROID_KABI_RESERVE for
  *   two new variables that fit into 64 bits.  This is good for when you do not
diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
index 4dbf49c..40ca2559 100644
--- a/include/linux/kallsyms.h
+++ b/include/linux/kallsyms.h
@@ -108,14 +108,6 @@ static inline unsigned long kallsyms_lookup_name(const char *name)
 	return 0;
 }
 
-static inline int kallsyms_on_each_symbol(int (*fn)(void *, const char *,
-						    struct module *,
-						    unsigned long),
-					  void *data)
-{
-	return 0;
-}
-
 static inline int kallsyms_lookup_size_offset(unsigned long addr,
 					      unsigned long *symbolsize,
 					      unsigned long *offset)
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 1854c3a..8799455 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -8757,28 +8757,6 @@ group_type group_classify(unsigned int imbalance_pct,
 	return group_has_spare;
 }
 
-static bool update_nohz_stats(struct rq *rq)
-{
-#ifdef CONFIG_NO_HZ_COMMON
-	unsigned int cpu = rq->cpu;
-
-	if (!rq->has_blocked_load)
-		return false;
-
-	if (!cpumask_test_cpu(cpu, nohz.idle_cpus_mask))
-		return false;
-
-	if (!time_after(jiffies, rq->last_blocked_load_update_tick))
-		return true;
-
-	update_blocked_averages(cpu);
-
-	return rq->has_blocked_load;
-#else
-	return false;
-#endif
-}
-
 /**
  * update_sg_lb_stats - Update sched_group's statistics for load balancing.
  * @env: The load balancing environment.
@@ -10766,6 +10744,24 @@ void nohz_balance_enter_idle(int cpu)
 	WRITE_ONCE(nohz.has_blocked, 1);
 }
 
+static bool update_nohz_stats(struct rq *rq)
+{
+	unsigned int cpu = rq->cpu;
+
+	if (!rq->has_blocked_load)
+		return false;
+
+	if (!cpumask_test_cpu(cpu, nohz.idle_cpus_mask))
+		return false;
+
+	if (!time_after(jiffies, rq->last_blocked_load_update_tick))
+		return true;
+
+	update_blocked_averages(cpu);
+
+	return rq->has_blocked_load;
+}
+
 /*
  * Internal function that runs load balance for all idle cpus. The load balance
  * can be a simple update of blocked load or a complete load balance with
diff --git a/sound/soc/codecs/hdmi-codec.c b/sound/soc/codecs/hdmi-codec.c
index 6cc0283..6791807 100644
--- a/sound/soc/codecs/hdmi-codec.c
+++ b/sound/soc/codecs/hdmi-codec.c
@@ -836,8 +836,9 @@ static int hdmi_dai_probe(struct snd_soc_dai *dai)
 static void hdmi_codec_jack_report(struct hdmi_codec_priv *hcp,
 				   unsigned int jack_status)
 {
-	if (hcp->jack && jack_status != hcp->jack_status) {
-		snd_soc_jack_report(hcp->jack, jack_status, SND_JACK_LINEOUT);
+	if (jack_status != hcp->jack_status) {
+		if (hcp->jack)
+			snd_soc_jack_report(hcp->jack, jack_status, SND_JACK_LINEOUT);
 		hcp->jack_status = jack_status;
 	}
 }
@@ -866,6 +867,13 @@ static int hdmi_codec_set_jack(struct snd_soc_component *component,
 
 	if (hcp->hcd.ops->hook_plugged_cb) {
 		hcp->jack = jack;
+
+		/*
+		 * Report the initial jack status which may have been provided
+		 * by the parent hdmi driver while the hpd hook was registered.
+		 */
+		snd_soc_jack_report(jack, hcp->jack_status, SND_JACK_LINEOUT);
+
 		return 0;
 	}