Files
android_kernel_xiaomi_sm8450/kernel/workqueue.c
Raghavendra Rao Ananta ff798ab7d9 Merge remote-tracking branch 'remotes/origin/tmp-935f8bc6f7aa' into msm-lahaina
* remotes/origin/tmp-935f8bc6f7aa:
  UPSTREAM: fix "sched/membarrier: Fix p->mm->membarrier_state racy load"
  ANDROID: update gki_defconfig
  ANDROID: Fix arm64 allmodconfig build
  Linux 5.4-rc1
  ANDROID: allmodconfig: Force gki_defconfig as base
  ANDROID: usb: gadget: Fix dependency for f_accessory
  csky: Move static keyword to the front of declaration
  csky: entry: Remove unneeded need_resched() loop
  csky: Fixup csky_pmu.max_period assignment
  csky: Fixup add zero_fp fixup perf backtrace panic
  csky: Use generic free_initrd_mem()
  Revert "Revert "ext4: make __ext4_get_inode_loc plug""
  random: try to actively add entropy rather than passively wait for it
  Documentation/process: Clarify disclosure rules
  selftests/ftrace: Fix same probe error test
  mm, tracing: Print symbol name for call_site in trace events
  tracing: Have error path in predicate_parse() free its allocated memory
  tracing: Fix clang -Wint-in-bool-context warnings in IF_ASSIGN macro
  tracing/probe: Fix to check the difference of nr_args before adding probe
  mm, page_alloc: allow hugepage fallback to remote nodes when madvised
  mm, page_alloc: avoid expensive reclaim when compaction may not succeed
  Revert "Revert "Revert "mm, thp: consolidate THP gfp handling into alloc_hugepage_direct_gfpmask""
  Revert "Revert "mm, thp: restore node-local hugepage allocations""
  i2c: slave-eeprom: Add read only mode
  i2c: i801: Bring back Block Process Call support for certain platforms
  i2c: riic: Clear NACK in tend isr
  i2c: qcom-geni: Disable DMA processing on the Lenovo Yoga C630
  iommu/amd: Lock code paths traversing protection_domain->dev_list
  iommu/amd: Lock dev_data in attach/detach code paths
  iommu/amd: Check for busy devices earlier in attach_device()
  iommu/amd: Take domain->lock for complete attach/detach path
  iommu/amd: Remove amd_iommu_devtable_lock
  iommu/amd: Remove domain->updated
  net: tap: clean up an indentation issue
  nfp: abm: fix memory leak in nfp_abm_u32_knode_replace
  mmc: host: sdhci-pci: Add Genesys Logic GL975x support
  tcp: better handle TCP_USER_TIMEOUT in SYN_SENT state
  sk_buff: drop all skb extensions on free and skb scrubbing
  tcp_bbr: fix quantization code to not raise cwnd if not probing bandwidth
  mlxsw: spectrum_flower: Fail in case user specifies multiple mirror actions
  Documentation: Clarify trap's description
  mlxsw: spectrum: Clear VLAN filters during port initialization
  net: ena: clean up indentation issue
  NFC: st95hf: clean up indentation issue
  mmc: tegra: Implement ->set_dma_mask()
  mmc: sdhci: Let drivers define their DMA mask
  mmc: sdhci-of-esdhc: set DMA snooping based on DMA coherence
  mmc: sdhci: improve ADMA error reporting
  net: phy: micrel: add Asym Pause workaround for KSZ9021
  net: socionext: ave: Avoid using netdev_err() before calling register_netdev()
  ptp: correctly disable flags on old ioctls
  lib: dimlib: fix help text typos
  net: dsa: microchip: Always set regmap stride to 1
  nfp: flower: fix memory leak in nfp_flower_spawn_vnic_reprs
  nfp: flower: prevent memory leak in nfp_flower_spawn_phy_reprs
  net/sched: Set default of CONFIG_NET_TC_SKB_EXT to N
  vrf: Do not attempt to create IPv6 mcast rule if IPv6 is disabled
  keys: Add Jarkko Sakkinen as co-maintainer
  btrfs: qgroup: Fix reserved data space leak if we have multiple reserve calls
  btrfs: qgroup: Fix the wrong target io_tree when freeing reserved data space
  block: fix null pointer dereference in blk_mq_rq_timed_out()
  net: sched: sch_sfb: don't call qdisc_put() while holding tree lock
  net: sched: multiq: don't call qdisc_put() while holding tree lock
  net: sched: sch_htb: don't call qdisc_put() while holding tree lock
  net/rds: Check laddr_check before calling it
  tcp: honor SO_PRIORITY in TIME_WAIT state
  ipv6: tcp: provide sk->sk_priority to ctl packets
  ipv6: add priority parameter to ip6_xmit()
  bpf: Fix bpf_event_output re-entry issue
  net: dsa: qca8k: Fix port enable for CPU port
  sch_netem: fix rcu splat in netem_enqueue()
  kcm: disable preemption in kcm_parse_func_strparser()
  net: ethernet: stmmac: Fix signedness bug in ipq806x_gmac_of_parse()
  net: nixge: Fix a signedness bug in nixge_probe()
  of: mdio: Fix a signedness bug in of_phy_get_and_connect()
  net: axienet: fix a signedness bug in probe
  net: stmmac: dwmac-meson8b: Fix signedness bug in probe
  net: socionext: Fix a signedness bug in ave_probe()
  enetc: Fix a signedness bug in enetc_of_get_phy()
  net: netsec: Fix signedness bug in netsec_probe()
  net: broadcom/bcmsysport: Fix signedness in bcm_sysport_probe()
  net: hisilicon: Fix signedness bug in hix5hd2_dev_probe()
  cxgb4: Signedness bug in init_one()
  net: aquantia: Fix aq_vec_isr_legacy() return value
  dimlib: make DIMLIB a hidden symbol
  rq-qos: get rid of redundant wbt_update_limits()
  powerpc/eeh: Fix eeh eeh_debugfs_break_device() with SRIOV devices
  CIFS: Fix oplock handling for SMB 2.1+ protocols
  smb3: missing ACL related flags
  perf unwind: Fix libunwind build failure on i386 systems
  binfmt_elf: Do not move brk for INTERP-less ET_EXEC
  arch/sparc/include/asm/pgtable_64.h: fix build
  mm: treewide: clarify pgtable_page_{ctor,dtor}() naming
  ntfs: remove (un)?likely() from IS_ERR() conditions
  IB/hfi1: remove unlikely() from IS_ERR*() condition
  xfs: remove unlikely() from WARN_ON() condition
  wimax/i2400m: remove unlikely() from WARN*() condition
  fs: remove unlikely() from WARN_ON() condition
  xen/events: remove unlikely() from WARN() condition
  bpf: Clean up indentation issue in BTF kflag processing
  jffs2: Fix mounting under new mount API
  libbpf: Teach btf_dumper to emit stand-alone anonymous enum definitions
  MAINTAINERS: Add myself as reviewer for the PWM subsystem
  MAINTAINERS: Add patchwork link for PWM entry
  MAINTAINERS: Add a selection of PWM related keywords to the PWM entry
  pwm: mediatek: Add MT7629 compatible string
  io_uring: make CQ ring wakeups be more efficient
  ipv6: do not free rt if FIB_LOOKUP_NOREF is set on suppress rule
  openvswitch: change type of UPCALL_PID attribute to NLA_UNSPEC
  dt-bindings: net: ravb: Add support for r8a774b1 SoC
  net: stmmac: Fix page pool size
  macsec: drop skb sk before calling gro_cells_receive
  iocost: bump up default latency targets for hard disks
  iocost: improve nr_lagging handling
  iocost: better trace vrate changes
  smb3: pass mode bits into create calls
  net: print proper warning on dst underflow
  net/sched: cbs: Fix not adding cbs instance to list
  drivers: net: Fix Kconfig indentation
  net: Fix Kconfig indentation
  MAINTAINERS: add Yanjun to FORCEDETH maintainers list
  block: don't release queue's sysfs lock during switching elevator
  blk-mq: move lockdep_assert_held() into elevator_exit
  checkpatch: check for nested (un)?likely() calls
  hexagon: drop empty and unused free_initrd_mem
  mm: factor out common parts between MADV_COLD and MADV_PAGEOUT
  mm: introduce MADV_PAGEOUT
  mm: change PAGEREF_RECLAIM_CLEAN with PAGE_REFRECLAIM
  mm: introduce MADV_COLD
  mm: untag user pointers in mmap/munmap/mremap/brk
  vfio/type1: untag user pointers in vaddr_get_pfn
  tee/shm: untag user pointers in tee_shm_register
  media/v4l2-core: untag user pointers in videobuf_dma_contig_user_get
  drm/radeon: untag user pointers in radeon_gem_userptr_ioctl
  drm/amdgpu: untag user pointers
  userfaultfd: untag user pointers
  fs/namespace: untag user pointers in copy_mount_options
  mm: untag user pointers in get_vaddr_frames
  mm: untag user pointers in mm/gup.c
  mm: untag user pointers passed to memory syscalls
  lib: untag user pointers in strn*_user
  lib/lzo/lzo1x_compress.c: fix alignment bug in lzo-rle
  ipc/sem.c: convert to use built-in RCU list checking
  ipc/mqueue: improve exception handling in do_mq_notify()
  ipc/mqueue.c: delete an unnecessary check before the macro call dev_kfree_skb()
  bug: move WARN_ON() "cut here" into exception handler
  bug: consolidate __WARN_FLAGS usage
  bug: clean up helper macros to remove __WARN_TAINT()
  bug: lift "cut here" out of __warn()
  bug: consolidate warn_slowpath_fmt() usage
  bug: rename __WARN_printf_taint() to __WARN_printf()
  bug: refactor away warn_slowpath_fmt_taint()
  scripts/gdb: handle split debug
  kgdb: don't use a notifier to enter kgdb at panic; call directly
  compiler: enable CONFIG_OPTIMIZE_INLINING forcibly
  uaccess: add missing __must_check attributes
  kexec: restore arch_kexec_kernel_image_probe declaration
  kexec: bail out upon SIGKILL when allocating memory.
  cpumask: nicer for_each_cpumask_and() signature
  fork: improve error message for corrupted page tables
  fat: delete an unnecessary check before brelse()
  fs/reiserfs/do_balan.c: remove set but not used variable
  fs/reiserfs/journal.c: remove set but not used variable
  fs/reiserfs/do_balan.c: remove set but not used variables
  fs/reiserfs/fix_node.c: remove set but not used variables
  fs/reiserfs/prints.c: remove set but not used variables
  fs/reiserfs/objectid.c: remove set but not used variables
  fs/reiserfs/lbalance.c: remove set but not used variables
  fs/reiserfs/stree.c: remove set but not used variables
  fs/reiserfs/journal.c: remove set but not used variables
  fs: reiserfs: remove unnecessary check of bh in remove_from_transaction()
  checkpatch: make git output use LANGUAGE=en_US.utf8
  checkpatch: remove obsolete period from "ambiguous SHA1" query
  checkpatch: allow consecutive close braces
  checkpatch: prefer __section over __attribute__((section(...)))
  checkpatch: exclude sizeof sub-expressions from MACRO_ARG_REUSE
  checkpatch.pl: warn on invalid commit id
  checkpatch: improve SPDX license checking
  checkpatch: don't interpret stack dumps as commit IDs
  lib/hexdump: make print_hex_dump_bytes() a nop on !DEBUG builds
  lib/extable.c: add missing prototypes
  lib/generic-radix-tree.c: make 2 functions static inline
  strscpy: reject buffer sizes larger than INT_MAX
  include/trace/events/writeback.h: fix -Wstringop-truncation warnings
  kernel-doc: core-api: include string.h into core-api
  augmented rbtree: rework the RB_DECLARE_CALLBACKS macro definition
  augmented rbtree: add new RB_DECLARE_CALLBACKS_MAX macro
  augmented rbtree: add comments for RB_DECLARE_CALLBACKS macro
  rbtree: avoid generating code twice for the cached versions (tools copy)
  kernel/elfcore.c: include proper prototypes
  linux/coff.h: add include guard
  memcg, kmem: do not fail __GFP_NOFAIL charges
  selftests/bpf: adjust strobemeta loop to satisfy latest clang
  selftests/bpf: delete unused variables in test_sysctl
  libbpf: fix false uninitialized variable warning
  bpf/xskmap: Return ERR_PTR for failure case instead of NULL.
  selftests/bpf: test_progs: fix client/server race in tcp_rtt
  drm/amd/display: prevent memory leak
  perf parser: Remove needless include directives
  perf build: Add detection of java-11-openjdk-devel package
  perf jvmti: Include JVMTI support for s390
  perf vendor events: Remove P8 HW events which are not supported
  perf evlist: Fix access of freed id arrays
  perf stat: Fix free memory access / memory leaks in metrics
  perf tools: Replace needless mmap.h with what is needed, event.h
  perf evsel: Move config terms to a separate header
  perf evlist: Remove unused perf_evlist__fprintf() method
  perf evsel: Introduce evsel_fprintf.h
  perf evsel: Remove need for symbol_conf in evsel_fprintf.c
  KVM: nVMX: cleanup and fix host 64-bit mode checks
  sched/fair: Avoid redundant EAS calculation
  sched/core: Remove double update_max_interval() call on CPU startup
  sched/core: Fix preempt_schedule() interrupt return comment
  sched/fair: Fix -Wunused-but-set-variable warnings
  sched/core: Fix migration to invalid CPU in __set_cpus_allowed_ptr()
  sched/membarrier: Return -ENOMEM to userspace on memory allocation failure
  sched/membarrier: Skip IPIs when mm->mm_users == 1
  selftests, sched/membarrier: Add multi-threaded test
  sched/membarrier: Fix p->mm->membarrier_state racy load
  sched/membarrier: Call sync_core only before usermode for same mm
  sched/membarrier: Remove redundant check
  sched/membarrier: Fix private expedited registration check
  tasks, sched/core: RCUify the assignment of rq->curr
  tasks, sched/core: With a grace period after finish_task_switch(), remove unnecessary code
  tasks, sched/core: Ensure tasks are available for a grace period after leaving the runqueue
  tasks: Add a count of task RCU users
  sunrpc: clean up indentation issue
  btrfs: Fix a regression which we can't convert to SINGLE profile
  KVM: vmx: fix build warnings in hv_enable_direct_tlbflush() on i386
  KVM: x86: Don't check kvm_rebooting in __kvm_handle_fault_on_reboot()
  KVM: x86: Drop ____kvm_handle_fault_on_reboot()
  KVM: VMX: Add error handling to VMREAD helper
  KVM: VMX: Optimize VMX instruction error and fault handling
  btrfs: relocation: fix use-after-free on dead relocation roots
  KVM: x86: Check kvm_rebooting in kvm_spurious_fault()
  KVM: selftests: fix ucall on x86
  perf copyfile: Move copyfile routines to separate files
  libperf: Add perf_evlist__poll() function
  libperf: Add perf_evlist__add_pollfd() function
  libperf: Add perf_evlist__alloc_pollfd() function
  libperf: Add libperf_init() call to the tests
  libperf: Merge libperf_set_print() into libperf_init()
  libperf: Add libperf dependency for tests targets
  libperf: Use sys/types.h to get ssize_t, not unistd.h
  perf tools: No need to include internal/lib.h from util/util.h
  libperf: Move 'page_size' global variable to libperf
  libperf: Add perf_evlist__id_add_fd() function
  libperf: Add perf_evlist__id_add() function
  libperf: Add perf_evlist__read_format() function
  libperf: Add perf_evlist__first()/last() functions
  libperf: Add perf_evsel__alloc_id/perf_evsel__free_id functions
  libperf: Move 'heads' from 'struct evlist' to 'struct perf_evlist'
  libperf: Move 'ids' from 'struct evsel' to 'struct perf_evsel'
  libperf: Move 'id' from 'struct evsel' to 'struct perf_evsel'
  libperf: Move 'sample_id' from 'struct evsel' to 'struct perf_evsel'
  libperf: Add missing 'struct xyarray' forward declaration
  libperf: Move 'pollfd' from 'struct evlist' to 'struct perf_evlist'
  libperf: Move 'mmap_len' from 'struct evlist' to 'struct perf_evlist'
  libperf: Move 'nr_mmaps' from 'struct evlist' to 'struct perf_evlist'
  libperf: Move 'system_wide' from 'struct evsel' to 'struct perf_evsel'
  libperf: Add 'flush' to 'struct perf_mmap'
  libperf: Add 'event_copy' to 'struct perf_mmap'
  libperf: Add 'overwrite' to 'struct perf_mmap'
  libperf: Add prev/start/end to struct perf_mmap
  libperf: Add 'refcnt' to struct perf_mmap
  libperf: Add 'cpu' to struct perf_mmap
  libperf: Add 'fd' to struct perf_mmap
  libperf: Add 'mask' to struct perf_mmap
  libperf: Add perf_mmap struct
  perf evlist: Adopt backwards ring buffer state enum
  libperf: Link libapi.a in libperf.so
  perf tools: Rename perf_evlist__purge() to evlist__purge()
  perf tools: Rename perf_evlist__exit() to evlist__exit()
  perf tools: Rename perf_evlist__alloc_mmap() to evlist__alloc_mmap()
  perf tools: Rename perf_evlist__munmap() to evlist__munmap()
  perf tools: Rename perf_evlist__mmap() to evlist__mmap()
  perf tools: Rename 'struct perf_mmap' to 'struct mmap'
  tools: Add missing stdio.h include to asm/bug.h header
  libtraceevent: Man pages for tep plugins APIs
  libtraceevent: Move traceevent plugins in its own subdirectory
  libtraceevent: Add tep_get_event() in event-parse.h
  libtraceevent: Man pages fix, changes in event printing APIs
  libtraceevent: Man pages fix, rename tep_ref_get() to tep_get_ref()
  libtraceevent: Man pages for libtraceevent event print related API
  libtraceevent: Round up in tep_print_event() time precision
  perf list: Allow plurals for metric, metricgroup
  perf vendor events: Minor fixes to the README
  perf vendor events amd: Remove redundant '['
  perf vendor events amd: Add L3 cache events for Family 17h
  net: macb: Remove dead code
  net: stmmac: selftests: Flow Control test can also run with ASYM Pause
  gianfar: Make reset_gfar static
  atm: he: clean up an indentation issue
  ppp: Fix memory leak in ppp_write
  net/ibmvnic: prevent more than one thread from running in reset
  net/ibmvnic: unlock rtnl_lock in reset so linkwatch_event can run
  tracing/probe: Fix same probe event argument matching
  netfilter: nf_tables: bogus EBUSY when deleting flowtable after flush
  netfilter: ebtables: use __u8 instead of uint8_t in uapi header
  Revert "locking/pvqspinlock: Don't wait if vCPU is preempted"
  dt-bindings: pwm: Update bindings for MT7629 SoC
  pwm: mediatek: Update license and switch to SPDX tag
  pwm: mediatek: Use pwm_mediatek as common prefix
  pwm: mediatek: Allocate the clks array dynamically
  pwm: mediatek: Remove the has_clks field
  wil6210: use after free in wil_netif_rx_any()
  thermal: db8500: Rewrite to be a pure OF sensor
  thermal: db8500: Use dev helper variable
  thermal: db8500: Finalize device tree conversion
  smb3: Add missing reparse tags
  tpm: Wrap the buffer from the caller to tpm_buf in tpm_send()
  MAINTAINERS: keys: Update path to trusted.h
  KEYS: trusted: correctly initialize digests and fix locking issue
  selftests/tpm2: Add log and *.pyc to .gitignore
  selftests/tpm2: Add the missing TEST_FILES assignment
  mm/zsmalloc.c: fix a -Wunused-function warning
  zswap: do not map same object twice
  zswap: use movable memory if zpool support allocate movable memory
  zpool: add malloc_support_movable to zpool_driver
  shmem: fix obsolete comment in shmem_getpage_gfp()
  mm/madvise: reduce code duplication in error handling paths
  mm: mmap: increase sockets maximum memory size pgoff for 32bits
  mm/mmap.c: refine find_vma_prev() with rb_last()
  riscv: make mmap allocation top-down by default
  mips: use generic mmap top-down layout and brk randomization
  mips: replace arch specific way to determine 32bit task with generic version
  mips: adjust brk randomization offset to fit generic version
  mips: use STACK_TOP when computing mmap base address
  mips: properly account for stack randomization and stack guard gap
  arm: use generic mmap top-down layout and brk randomization
  arm: use STACK_TOP when computing mmap base address
  arm: properly account for stack randomization and stack guard gap
  arm64, mm: make randomization selected by generic topdown mmap layout
  arm64, mm: move generic mmap layout functions to mm
  arm64: consider stack randomization for mmap base only when necessary
  arm64: make use of is_compat_task instead of hardcoding this test
  mm, fs: move randomize_stack_top from fs to mm
  uprobe: collapse THP pmd after removing all uprobes
  khugepaged: enable collapse pmd for pte-mapped THP
  uprobe: use FOLL_SPLIT_PMD instead of FOLL_SPLIT
  mm, thp: introduce FOLL_SPLIT_PMD
  uprobe: use original page when all uprobes are removed
  mm: move memcmp_pages() and pages_identical()
  mm: thp: make deferred split shrinker memcg aware
  mm: shrinker: make shrinker not depend on memcg kmem
  mm: move mem_cgroup_uncharge out of __page_cache_release()
  mm: thp: extract split_queue_* into a struct
  mm,thp: avoid writes to file with THP in pagecache
  mm,thp: add read-only THP support for (non-shmem) FS
  khugepaged: rename collapse_shmem() and khugepaged_scan_shmem()
  mm,thp: stats for file backed THP
  filemap: update offset check in filemap_fault()
  filemap: check compound_head(page)->mapping in pagecache_get_page()
  filemap: check compound_head(page)->mapping in filemap_fault()
  thp: update split_huge_page_pmd() comment
  mm/migrate.c: clean up useless code in migrate_vma_collect_pmd()
  hugetlbfs: don't retry when pool page allocations start to fail
  mm, compaction: raise compaction priority after it withdrawns
  mm, reclaim: cleanup should_continue_reclaim()
  mm, reclaim: make should_continue_reclaim perform dryrun detection
  memcg, kmem: deprecate kmem.limit_in_bytes
  mm/memcontrol.c: fix a -Wunused-function warning
  mm, oom: consider present pages for the node size
  mm/oom_kill.c: fix oom_cpuset_eligible() comment
  mm/oom: add oom_score_adj and pgtables to Killed process message
  memcg, oom: don't require __GFP_FS when invoking memcg OOM killer
  mm/oom_kill.c: add task UID to info message on an oom kill
  mm/mempolicy.c: remove unnecessary nodemask check in kernel_migrate_pages()
  mm/compaction.c: remove unnecessary zone parameter in isolate_migratepages()
  mm/compaction.c: clear total_{migrate,free}_scanned before scanning a new zone
  z3fold: fix memory leak in kmem cache
  mm: silence -Woverride-init/initializer-overrides
  mm: use CPU_BITS_NONE to initialize init_mm.cpu_bitmask
  mm/vmalloc.c: move 'area->pages' after if statement
  mm/vmalloc: modify struct vmap_area to reduce its size
  mm/vmalloc: do not keep unpurged areas in the busy tree
  mm/sparse.c: remove NULL check in clear_hwpoisoned_pages()
  mm/sparse.c: don't manually decrement num_poisoned_pages
  mm/sparse.c: use __nr_to_section(section_nr) to get mem_section
  mm/sparse.c: fix ALIGN() without power of 2 in sparse_buffer_alloc()
  mm/sparse.c: fix memory leak of sparsemap_buf in aligned memory
  mm/memory_hotplug.c: s/is/if
  mm/memory_hotplug: online_pages cannot be 0 in online_pages()
  mm/memory_hotplug: make sure the pfn is aligned to the order when onlining
  mm/memory_hotplug: simplify online_pages_range()
  mm/memory_hotplug: drop PageReserved() check in online_pages_range()
  mm/memory_hotplug.c: use PFN_UP / PFN_DOWN in walk_system_ram_range()
  mm/memory_hotplug.c: prevent memory leak when reusing pgdat
  drivers/base/memory.c: don't store end_section_nr in memory blocks
  driver/base/memory.c: validate memory block size early
  drivers/base/memory.c: fixup documentation of removable/phys_index/block_size_bytes
  drivers/base/node.c: simplify unregister_memory_block_under_nodes()
  mm/memory_hotplug: remove move_pfn_range()
  mm: do not hash address in print_bad_pte()
  mm: consolidate pgtable_cache_init() and pgd_cache_init()
  microblaze: switch to generic version of pte allocation
  sh: switch to generic version of pte allocation
  ia64: switch to generic version of pte allocation
  mm: remove quicklist page table caches
  mm: release the spinlock on zap_pte_range
  mm: remove redundant assignment of entry
  net/xdp: convert put_page() to put_user_page*()
  drivers/gpu/drm/via: convert put_page() to put_user_page*()
  mm/gup: add make_dirty arg to put_user_pages_dirty_lock()
  mm: vmscan: do not share cgroup iteration between reclaimers
  mm: memcontrol: switch to rcu protection in drain_all_stock()
  mm, memcg: throttle allocators when failing reclaim over memory.high
  mm: page cache: store only head pages in i_pages
  mm/filemap.c: rewrite mapping_needs_writeback in less fancy manner
  mm/filemap.c: don't initiate writeback if mapping has no dirty pages
  mm, page_owner, debug_pagealloc: save and dump freeing stack trace
  mm, page_owner: keep owner info when freeing the page
  mm, page_owner: record page owner for each subpage
  mm: replace list_move_tail() with add_page_to_lru_list_tail()
  mm: introduce compound_nr()
  mm: introduce page_shift()
  mm: introduce page_size()
  mm/rmap.c: remove set but not used variable 'cstart'
  mm/page_poison.c: fix a typo in a comment
  lib/test_kasan.c: add roundtrip tests
  kasan: add memory corruption identification for software tag-based mode
  mm/kmemleak: increase the max mem pool to 1M
  mm/kmemleak.c: record the current memory pool size
  mm: kmemleak: use the memory pool for early allocations
  mm: kmemleak: simple memory allocation pool for kmemleak objects
  mm: kmemleak: make the tool tolerant to struct scan_area allocation failures
  kmemleak: increase DEBUG_KMEMLEAK_EARLY_LOG_SIZE default to 16K
  mm/slub.c: fix -Wunused-function compiler warnings
  mm, slab: move memcg_cache_params structure to mm/slab.h
  mm, slab: extend slab/shrink to shrink all memcg caches
  ocfs2: fix spelling mistake "ambigous" -> "ambiguous"
  ocfs2: checkpoint appending truncate log transaction before flushing
  ocfs2: wait for recovering done after direct unlock request
  ocfs2: delete unnecessary checks before brelse()
  fs/ocfs2/dir.c: remove set but not used variables
  fs/ocfs2/file.c: remove set but not used variables
  fs/ocfs2/namei.c: remove set but not used variables
  ocfs2: remove unused ocfs2_orphan_scan_exit() declaration
  ocfs2: remove unused ocfs2_calc_tree_trunc_credits()
  ocfs2: further debugfs cleanups
  jbd2: remove jbd2_journal_inode_add_[write|wait]
  ocfs2: use jbd2_inode dirty range scoping
  kbuild: clean compressed initramfs image
  z3fold: fix retry mechanism in page reclaim
  mm: add dummy can_do_mlock() helper
  Revert "mm/z3fold.c: fix race between migration and destruction"
  fat: work around race with userspace's read via blockdev while mounting
  powerpc/nvdimm: use H_SCM_QUERY hcall on H_OVERLAP error
  powerpc/nvdimm: Use HCALL error as the return value
  selftests/powerpc: Add test case for tlbie vs mtpidr ordering issue
  pNFS/filelayout: enable LAYOUTGET on OPEN
  NFS: Optimise the default readahead size
  ia64: Fix some warnings introduced in merge window
  ANDROID: staging: ion: make cma heap a module
  ANDROID: GKI: export cma symbols for cma heap as a module
  drm/amdgpu/gfx10: add support for wks firmware loading
  drm/amdgpu/display: include slab.h in dcn21_resource.c
  libnvdimm/region: Enable MAP_SYNC for volatile regions
  libnvdimm: prevent nvdimm from requesting key when security is disabled
  libnvdimm/region: Initialize bad block for volatile namespaces
  libnvdimm/nfit_test: Fix acpi_handle redefinition
  libnvdimm/altmap: Track namespace boundaries in altmap
  libnvdimm: Fix endian conversion issues 
  libnvdimm/dax: Pick the right alignment default when creating dax devices
  powerpc/book3s64: Export has_transparent_hugepage() related functions.
  xfs: avoid unused to_mp() function warning
  xfs: log proper length of superblock
  skge: fix checksum byte order
  arcnet: provide a buffer big enough to actually receive packets
  iwlwifi: fw: don't send GEO_TX_POWER_LIMIT command to FW version 36
  mt76: mt7615: fix mt7615 firmware path definitions
  Btrfs: fix race setting up and completing qgroup rescan workers
  nfc: enforce CAP_NET_RAW for raw sockets
  ieee802154: enforce CAP_NET_RAW for raw sockets
  ax25: enforce CAP_NET_RAW for raw sockets
  appletalk: enforce CAP_NET_RAW for raw sockets
  mISDN: enforce CAP_NET_RAW for raw sockets
  net: sched: fix possible crash in tcf_action_destroy()
  kvm: nvmx: limit atomic switch MSRs
  kvm: svm: Intercept RDPRU
  kvm: x86: Add "significant index" flag to a few CPUID leaves
  fuse: Make fuse_args_to_req static
  fuse: fix memleak in cuse_channel_open
  fuse: fix beyond-end-of-page access in fuse_parse_cache()
  fuse: unexport fuse_put_request
  fuse: kmemcg account fs data
  fuse: on 64-bit store time in d_fsdata directly
  fuse: fix missing unlock_page in fuse_writepage()
  io_uring: compare cached_cq_tail with cq.head in_io_uring_poll
  Btrfs: fix missing error return if writeback for extent buffer never started
  btrfs: adjust dirty_metadata_bytes after writeback failure of extent buffer
  Btrfs: fix selftests failure due to uninitialized i_mode in test inodes
  KVM: x86/mmu: Skip invalid pages during zapping iff root_count is zero
  KVM: x86/mmu: Explicitly track only a single invalid mmu generation
  KVM: x86/mmu: Revert "KVM: x86/mmu: Remove is_obsolete() call"
  KVM: x86/mmu: Revert "Revert "KVM: MMU: reclaim the zapped-obsolete page first""
  KVM: x86/mmu: Revert "Revert "KVM: MMU: collapse TLB flushes when zap all pages""
  KVM: x86/mmu: Revert "Revert "KVM: MMU: zap pages in batch""
  KVM: x86/mmu: Revert "Revert "KVM: MMU: add tracepoint for kvm_mmu_invalidate_all_pages""
  KVM: x86/mmu: Revert "Revert "KVM: MMU: show mmu_valid_gen in shadow page related tracepoints""
  KVM: x86/mmu: Use fast invalidate mechanism to zap MMIO sptes
  KVM: x86/mmu: Treat invalid shadow pages as obsolete
  KVM: LAPIC: Tune lapic_timer_advance_ns smoothly
  KVM: vmx: Introduce handle_unexpected_vmexit and handle WAITPKG vmexit
  drm/amdgpu/display: fix 64 bit divide
  KVM: vmx: Emulate MSR IA32_UMWAIT_CONTROL
  KVM: x86: Add support for user wait instructions
  KVM: x86: Add comments to document various emulation types
  KVM: VMX: Handle single-step #DB for EMULTYPE_SKIP on EPT misconfig
  KVM: x86: Remove emulation_result enums, EMULATE_{DONE,FAIL,USER_EXIT}
  KVM: VMX: Remove EMULATE_FAIL handling in handle_invalid_guest_state()
  KVM: x86: Move triple fault request into RM int injection
  KVM: x86: Handle emulation failure directly in kvm_task_switch()
  KVM: x86: Exit to userspace on emulation skip failure
  KVM: x86: Move #UD injection for failed emulation into emulation code
  KVM: x86: Add explicit flag for forced emulation on #UD
  KVM: x86: Move #GP injection for VMware into x86_emulate_instruction()
  KVM: x86: Don't attempt VMWare emulation on #GP with non-zero error code
  KVM: x86: Refactor kvm_vcpu_do_singlestep() to remove out param
  ALSA: usb-audio: Add DSD support for EVGA NU Audio
  KVM: x86: Clean up handle_emulation_failure()
  KVM: x86: Relocate MMIO exit stats counting
  KVM: nVMX: Check Host Address Space Size on vmentry of nested guests
  KVM: selftests: hyperv_cpuid: add check for NoNonArchitecturalCoreSharing bit
  KVM: x86: hyper-v: set NoNonArchitecturalCoreSharing CPUID bit when SMT is impossible
  cpu/SMT: create and export cpu_smt_possible()
  KVM: hyperv: Fix Direct Synthetic timers assert an interrupt w/o lapic_in_kernel
  KVM: x86: Manually flush collapsible SPTEs only when toggling flags
  KVM: selftests: Remove duplicate guest mode handling
  KVM: selftests: Introduce VM_MODE_PXXV48_4K
  KVM: selftests: Create VM earlier for dirty log test
  KVM: selftests: Move vm type into _vm_create() internally
  KVM: x86: announce KVM_CAP_HYPERV_ENLIGHTENED_VMCS support only when it is available
  KVM: x86: svm: remove unneeded nested_enable_evmcs() hook
  KVM/Hyper-V/VMX: Add direct tlb flush support
  KVM/Hyper-V: Add new KVM capability KVM_CAP_HYPERV_DIRECT_TLBFLUSH
  x86/Hyper-V: Fix definition of struct hv_vp_assist_page
  kvm: x86: Add Intel PMU MSRs to msrs_to_save[]
  powerpc/mm: Fixup tlbie vs mtpidr/mtlpidr ordering issue on POWER9
  powerpc/book3s64/radix: Rename CPU_FTR_P9_TLBIE_BUG feature flag
  powerpc/book3s64/mm: Don't do tlbie fixup for some hardware revisions
  powerpc/pseries: Call H_BLOCK_REMOVE when supported
  powerpc/pseries: Read TLB Block Invalidate Characteristics
  iommu/amd: Wait for completion of IOTLB flush in attach_device
  net/mlx5e: Fix matching on tunnel addresses type
  net/mlx5e: Fix traffic duplication in ethtool steering
  net/mlx5: Add device ID of upcoming BlueField-2
  net/mlx5: DR, Allow matching on vport based on vhca_id
  net/mlx5: DR, Fix getting incorrect prev node in ste_free
  net/mlx5: DR, Remove redundant vport number from action
  net/mlx5: DR, Fix SW steering HW bits and definitions
  iommu/amd: Unmap all L7 PTEs when downgrading page-sizes
  iommu/amd: Introduce first_pte_l7() helper
  iommu/amd: Fix downgrading default page-sizes in alloc_pte()
  iommu/amd: Fix pages leak in free_pagetable()
  rtw88: configure firmware after HCI started
  CIFS: fix max ea value size
  fs/cifs/sess.c: Remove set but not used variable 'capabilities'
  fs/cifs/smb2pdu.c: Make SMB2_notify_init static
  smb3: fix leak in "open on server" perf counter
  KVM: PPC: Book3S HV: use smp_mb() when setting/clearing host_ipi flag
  MAINTAINERS: Add Amit Kucheria as reviewer for thermal
  thermal: Add some error messages
  thermal: Fix use-after-free when unregistering thermal zone device
  thermal/drivers/core: Use put_device() if device_register() fails
  thermal_hwmon: Sanitize thermal_zone type
  thermal: intel: Use dev_get_drvdata
  thermal: intel: int3403: replace printk(KERN_WARN...) with pr_warn(...)
  thermal: intel: int340x_thermal: Remove unnecessary acpi_has_method() uses
  thermal: int340x: processor_thermal: Add Ice Lake support
  s390/cio: exclude subchannels with no parent from pseudo check
  s390/cio: avoid calling strlen on null pointer
  s390/topology: avoid firing events before kobjs are created
  NTB: fix IDT Kconfig typos/spellos
  ntb_hw_amd: Add memory window support for new AMD hardware
  ntb_hw_amd: Add a new NTB PCI device ID
  NTB: ntb_transport: remove redundant assignment to rc
  ntb_hw_switchtec: make ntb_mw_set_trans() work when addr == 0
  ntb: point to right memory window index
  nfsd: fix nfs read eof detection
  xfs: revert 1baa2800e6 ("xfs: remove the unused XFS_ALLOC_USERDATA flag")
  xfs: removed unneeded variable
  xfs: convert inode to extent format after extent merge due to shift
  x86/purgatory: Disable the stackleak GCC plugin for the purgatory
  block: drop device references in bsg_queue_rq()
  io_uring: correctly handle non ->{read,write}_iter() file_operations
  nfsd: Make nfsd_reset_boot_verifier_locked static
  selftests: tpm2: install python files
  selftests: livepatch: add missing fragments to config
  selftests: watchdog: cleanup whitespace in usage options
  selftest/ftrace: Fix typo in trigger-snapshot.tc
  selftests: watchdog: Add optional file argument
  selftests/seccomp: fix build on older kernels
  perf record: Move restricted maps check to after a possible fallback to not collect kernel samples
  perf record: Fix priv level with branch sampling for paranoid=2
  block: t10-pi: fix -Wswitch warning
  ANDROID: update arm64 gki_defconfig
  net: dsa: Use the correct style for SPDX License Identifier
  net: dsa: b53: Use the correct style for SPDX License Identifier
  ionic: Fix an error code in ionic_lif_alloc()
  net: ena: Select DIMLIB for ENA_ETHERNET
  thermal: thermal_mmio: remove some dead code
  firmware: bcm47xx_nvram: _really_ correct size_t printf format
  modules: make MODULE_IMPORT_NS() work even when modular builds are disabled
  pktcdvd: remove warning on attempting to register non-passthrough dev
  Update ABI definition after libabigail upgrade
  qede: qede_fp: simplify a bit 'qede_rx_build_skb()'
  net: stmmac: selftest: avoid large stack usage
  net: dsa: sja1105: Add dependency for NET_DSA_SJA1105_TAS
  net_sched: add policy validation for action attributes
  net_sched: add max len check for TCA_KIND
  net: remove netx ethernet driver
  net: qrtr: Stop rx_worker before freeing node
  net/phy: fix DP83865 10 Mbps HDX loopback disable function
  usbnet: ignore endpoints with invalid wMaxPacketSize
  cdc_ncm: fix divide-by-zero caused by invalid wMaxPacketSize
  PCI: Add pci_irq_vector() and other stubs when !CONFIG_PCI
  ANDROID: abi update for 5.4-rc1-prerelease merge
  smb3: allow decryption keys to be dumped by admin for debugging
  zd1211rw: zd_usb: Use "%zu" to format size_t
  rtw88: pci: release tx skbs DMAed when stop
  rtw88: pci: extract skbs free routine for trx rings
  ipv6: fix a typo in fib6_rule_lookup()
  sch_netem: fix a divide by zero in tabledist()
  dt-bindings: net: remove un-implemented property
  pwm: mediatek: Drop the check for of_device_get_match_data()
  pwm: atmel: Consolidate driver data initialization
  pwm: atmel: Remove unneeded check for match data
  pwm: atmel: Remove platform_device_id and use only dt bindings
  pwm: stm32-lp: Add check in case requested period cannot be achieved
  pwm: Ensure pwm_apply_state() doesn't modify the state argument
  ipv4: Revert removal of rt_uses_gateway
  selftests: Update fib_nexthop_multiprefix to handle missing ping6
  selftests: Update fib_tests to handle missing ping6
  dt-bindings: net: dwmac: fix 'mac-mode' type
  net/sched: act_sample: don't push mac header on ip6gre ingress
  pwm: fsl-ftm: Don't update the state for the caller of pwm_apply_state()
  pwm: sun4i: Don't update the state for the caller of pwm_apply_state()
  pwm: rockchip: Don't update the state for the caller of pwm_apply_state()
  pwm: Let pwm_get_state() return the last implemented state
  pwm: Introduce local struct pwm_chip in pwm_apply_state()
  pwm: rockchip: Set polarity unconditionally in .get_state()
  pwm: bcm2835: Suppress error message during deferred probe
  pwm: bcm2835: Fix period_ns range check
  pwm: bcm2835: Suppress error message for invalid period_ns
  pwm: rcar: Remove a redundant condition in rcar_pwm_apply()
  pwm: sprd: Add Spreadtrum PWM support
  dt-bindings: pwm: sprd: Add Spreadtrum PWM documentation
  ANDROID: update gki_defconfig
  Revert "ANDROID: sched/fair: add arch scaling function for max frequency capping"
  Revert "ANDROID: cpufreq: arch_topology: implement max frequency capping"
  Revert "ANDROID: arm64: enable max frequency capping"
  Revert "ANDROID: arm: enable max frequency capping"
  Revert "ANDROID: sched: Update max cpu capacity in case of max frequency constraints"
  Revert "ANDROID: sched: Prevent unnecessary active balance of single task in sched group"
  Revert "ANDROID: sched: Enable idle balance to pull single task towards cpu with higher capacity"
  Revert "ANDROID: sched/fair: Attempt to improve throughput for asym cap systems"
  Revert "ANDROID: sched/fair: Don't balance misfits if it would overload local group"
  Revert "ANDROID: sched/fair: Also do misfit in overloaded groups"
  Revert "FROMLIST: arm64: defconfig: Enable CONFIG_ENERGY_MODEL"
  Revert "FROMLIST: thermal: cpu_cooling: Make the power-related code depend on IPA"
  Revert "FROMLIST: thermal: cpu_cooling: Migrate to using the EM framework"
  pwm: mediatek: Add MT8516 SoC support
  dt-bindings: pwm: mediatek: Add documentation for MT8516
  pwm: Remove dev_err() usage after platform_get_irq()
  pwm: imx: Document known limitations
  pwm: jz4740: Document known limitations
  powerpc/mm: Fix an Oops in kasan_mmu_init()
  powerpc/mm: Add a helper to select PAGE_KERNEL_RO or PAGE_READONLY
  powerpc/64s: Set reserved PCR bits
  powerpc: Fix definition of PCR bits to work with old binutils
  powerpc/book3s64/radix: Remove WARN_ON in destroy_context()
  powerpc/tm: Add tm-poison test
  ANDROID: Remove CONFIG_USELIB from x86 gki config
  pwm: sifive: Remove redundant error message
  pwm: mxs: Use devm_platform_ioremap_resource() to simplify code
  MIPS: Detect bad _PFN_SHIFT values
  MIPS: Disable pte_special() for MIPS32 with RiXi
  NFSv4: Handle NFS4ERR_OLD_STATEID in LOCKU
  NFSv4: Handle NFS4ERR_OLD_STATEID in CLOSE/OPEN_DOWNGRADE
  NFSv4: Fix OPEN_DOWNGRADE error handling
  pNFS: Handle NFS4ERR_OLD_STATEID on layoutreturn by bumping the state seqid
  NFSv4: Add a helper to increment stateid seqids
  NFSv4: Handle RPC level errors in LAYOUTRETURN
  NFSv4: Handle NFS4ERR_DELAY correctly in return-on-close
  NFSv4: Clean up pNFS return-on-close error handling
  arm64: tegra: Add PCIe slot supply information in p2972-0000 platform
  arm64: tegra: Add configuration for PCIe C5 sideband signals
  PCI: tegra: Add support to enable slot regulators
  PCI: tegra: Add support to configure sideband pins
  pNFS: Ensure we do clear the return-on-close layout stateid on fatal errors
  NFS: remove unused check for negative dentry
  NFSv3: use nfs_add_or_obtain() to create and reference inodes
  NFS: Refactor nfs_instantiate() for dentry referencing callers
  SUNRPC: Fix congestion window race with disconnect
  SUNRPC: Don't try to parse incomplete RPC messages
  SUNRPC: Rename xdr_buf_read_netobj to xdr_buf_read_mic
  SUNRPC: Fix buffer handling of GSS MIC without slack
  perf/core: Fix several typos in comments
  perf session: Return error code for perf_session__new() function on failure
  perf probe: Fix to clear tev->nargs in clear_probe_trace_event()
  perf probe: Skip same probe address for a given line
  perf tools: Fix segfault in cpu_cache_level__read()
  tools arch x86: Sync asm/cpufeatures.h with the kernel sources
  tools arch x86 uapi: Synch asm/unistd.h with the kernel sources
  tools uapi asm-generic: Sync unistd.h with the kernel sources
  tools headers uapi: Sync prctl.h with the kernel sources
  perf tests: Fix static build test
  ANDROID: gki_defconfig: CONFIG_MMC_BLOCK=m
  ANDROID: net: enable wireless core features with GKI_LEGACY_WEXT_ALLCONFIG
  nfsd: degraded slot-count more gracefully as allocation nears exhaustion.
  nfsd: handle drc over-allocation gracefully.
  lz4: do not export static symbol
  riscv: Avoid interrupts being erroneously enabled in handle_exception()
  riscv: dts: sifive: Drop "clock-frequency" property of cpu nodes
  riscv: dts: sifive: Add ethernet0 to the aliases node
  RISC-V: Export kernel symbols for kvm
  KVM: RISC-V: Add KVM_REG_RISCV for ONE_REG interface
  arch/riscv: disable excess harts before picking main boot hart
  platform/x86: i2c-multi-instantiate: Derive the device name from parent
  platform/x86: pmc_atom: Add Siemens SIMATIC IPC277E to critclk_systems DMI table
  ALSA: hda - Add laptop imic fixup for ASUS M9V laptop
  perf kvm stat: Set 'trace_cycles' as default event for 'perf kvm record' in powerpc
  perf kvm: Add arch neutral function to choose event for perf kvm record
  perf kvm: Move kvm-stat header file from conditional inclusion to common include section
  perf test: Fix spelling mistake "allos" -> "allocate"
  perf stat: Fix a segmentation fault when using repeat forever
  perf stat: Reset previous counts on repeat with interval
  tools lib traceevent: Convert remaining %p[fF] users to %p[sS]
  perf tools: Move event synthesizing routines to separate .c file
  crypto: hisilicon - avoid unused function warning
  hwrng: core - don't wait on add_early_randomness()
  crypto: hisilicon - Fix return value check in hisi_zip_acompress()
  crypto: hisilicon - Matching the dma address for dma_pool_free()
  crypto: hisilicon - Fix double free in sec_free_hw_sgl()
  crypto: inside-secure - Fix unused variable warning when CONFIG_PCI=n
  crypto: talitos - fix missing break in switch statement
  perf memswap: Adopt 'struct u64_swap' from evsel.h
  perf tools: Move event synthesizing routines to separate header
  perf auxtrace: Add missing 'struct perf_sample' forward declaration
  perf sched: Add missing event.h include directive
  perf annotate: Add missing machine.h include directive
  perf hist: Add missing 'struct branch_stack' forward declaration
  perf python: Remove debug.h
  perf callchain: Remove needless event.h include
  perf stat: Move perf_stat_synthesize_config() to event.h
  perf event: Move perf_event__synthesize* to event.h
  perf env: Remove needless cpumap.h header
  perf symbols: Add missing dso.h header
  perf probe: Add missing build-id.h header.
  perf tools: Remove util.h from where it is not needed
  perf tools: Remove debug.h from places where it is not needed
  perf debug: No need to include ui/util.h
  perf tools: Remove needless builtin.h include directives
  perf tools: Add PMU event JSON files for ARM Cortex-A76 and, Neoverse N1.
  perf jvmti: Link against tools/lib/string.o to have weak strlcpy()
  ASoC: ti: fix SND_SOC_DM365_VOICE_CODEC dependencies
  ASoC: pcm3168a: The codec does not support S32_LE
  ASoC: core: use list_del_init and move it back to soc_cleanup_component
  netfilter: nf_tables: allow lookups in dynamic sets
  netfilter: nf_tables_offload: fix always true policy is unset check
  netfilter: nf_tables: add NFT_CHAIN_POLICY_UNSET and use it
  ALSA: hda/realtek - PCI quirk for Medion E4254
  ARM: aspeed: ast2500 is ARMv6K
  ALSA: hda - Apply AMD controller workaround for Raven platform
  nios2: force the string buffer NULL-terminated
  selftests: Add test cases for `ip nexthop flush proto XX`
  dt-bindings: net: Correct the documentation of KSZ9021 skew values
  net/ncsi: Disable global multicast filter
  ibmvnic: Warn unknown speed message only when carrier is present
  ionic: Remove unnecessary ternary operator in ionic_debugfs_add_ident
  iomap: move the iomap_dio_rw ->end_io callback into a structure
  iomap: split size and error for iomap_dio_rw ->end_io
  clk: Drop !clk checks in debugfs dumping
  Hexagon: change maintainer to Brian Cain
  iwlwifi: mvm: fix build w/o CONFIG_THERMAL
  ANDROID: gki_defconfig: Enable HiSilicon SoCs
  ANDROID: gki_defconfig: Enable SERIAL_DEV_BUS
  ANDROID: gki_defconfig: Add GKI_HACKS_to_FIX config
  ANDROID: init: GKI: enable hidden configs for GPIO
  ANDROID: init: GKI: enable hidden configs for SND_SOC
  ANDROID: init: GKI: enable hidden configs for regmap
  ANDROID: init: GKI: enable hidden configs for DRM
  ANDROID: init: GKI: add GKI_HACKS_TO_FIX
  ata: libahci_platform: Add of_node_put() before loop exit
  drm/panfrost: Prevent race when handling page fault
  drm/panfrost: Remove NULL checks for regulator
  drm/panfrost: Fix regulator_get_optional() misuse
  timer: Read jiffies once when forwarding base clk
  selftests/ftrace: Update kprobe event error testcase
  tracing/probe: Reject exactly same probe event
  drm: Measure Self Refresh Entry/Exit times to avoid thrashing
  drm: Fix kerneldoc and remove unused struct member in self_refresh helper
  tracing/probe: Fix to allow user to enable events on unloaded modules
  of: restore old handling of cells_name=NULL in of_*_phandle_with_args()
  RISC-V: Enable VIRTIO drivers in RV64 and RV32 defconfig
  RISC-V: Fix building error when CONFIG_SPARSEMEM_MANUAL=y
  riscv: dts: Add DT support for SiFive FU540 PWM driver
  xsk: relax UMEM headroom alignment
  bpf: fix BTF limits
  bpf: fix BTF verification of enums
  libbpf: Remove getsockopt() check for XDP_OPTIONS
  tools/power/x86/intel-speed-select: Fix perf-profile command output
  tools/power/x86/intel-speed-select: Extend core-power command set
  tools/power/x86/intel-speed-select: Fix some debug prints
  tools/power/x86/intel-speed-select: Format get-assoc information
  tools/power/x86/intel-speed-select: Allow online/offline based on tdp
  tools/power/x86/intel-speed-select: Fix high priority core mask over count
  usbnet: sanity checking of packet sizes and device mtu
  powerpc/mm/mce: Keep irqs disabled during lockless page table walk
  s390/cpumf: Remove mixed white space
  s390/cpum_sf: Support ioctl PERF_EVENT_IOC_PERIOD
  s390/zcrypt: CEX7S exploitation support
  s390/cio: fix intparm documentation
  s390/pkey: Add sysfs attributes to emit AES CIPHER key blobs
  microblaze: Switch to standard restart handler
  gfs2: Convert gfs2 to fs_context
  vfs: Convert spufs to use the new mount API
  vfs: Convert hypfs to use the new mount API
  hypfs: Fix error number left in struct pointer member
  vfs: Convert functionfs to use the new mount API
  vfs: Convert bpf to use the new mount API
  UPSTREAM: ALSA: pcm: add support for 352.8KHz and 384KHz sample rate
  ANDROID: gki_defconfig: enable CONFIG_UIO
  virtio-fs: add virtiofs filesystem
  ASoC: rsnd: do error check after rsnd_channel_normalization()
  drm/atomic: Rename crtc_state->pageflip_flags to async_flip
  io_uring: IORING_OP_TIMEOUT support
  io_uring: use cond_resched() in sqthread
  io_uring: fix potential crash issue due to io_get_req failure
  io_uring: ensure poll commands clear ->sqe
  io_uring: fix use-after-free of shadow_req
  io_uring: use kmemdup instead of kmalloc and memcpy
  drm/atomic: Reject FLIP_ASYNC unconditionally
  drm/atomic: Take the atomic toys away from X
  HID: core: fix dmesg flooding if report field larger than 32bit
  HID: core: Add printk_once variants to hid_warn() etc
  HID: core: reformat and reduce hid_printk macros
  KVM: coalesced_mmio: add bounds checking
  drm/amdgpu: flag navi12 and 14 as experimental for 5.4
  virtio-fs: add Documentation/filesystems/virtiofs.rst
  reset: reset-scmi: add missing handle initialisation
  firmware: arm_scmi: reset: fix reset_state assignment in scmi_domain_reset
  sched/core: Convert vcpu_is_preempted() from macro to an inline function
  arm64: Fix reference to docs for ARM64_TAGGED_ADDR_ABI
  ASoC: atmel_ssc_dai: Remove wrong spinlock usage
  drm/kms: Duct-tape for mode object lifetime checks
  microblaze: defconfig synchronization
  microblaze: Enable Xilinx AXI emac driver by default
  arch/microblaze: support get_user() of size 8 bytes
  clk: imx: imx8mn: fix pll mux bit
  clk: imx: imx8mm: fix pll mux bit
  clk: imx: clk-pll14xx: unbypass PLL by default
  clk: imx: pll14xx: avoid glitch when set rate
  clk: mvebu: ap80x: add AP807 clock support
  clk: mvebu: ap806: Prepare the introduction of AP807 clock support
  clk: mvebu: ap806: add AP-DCLK (hclk) to system controller driver
  clk: mvebu: ap806: be more explicit on what SaR is
  clk: mvebu: ap80x-cpu: add AP807 CPU clock support
  clk: mvebu: ap806-cpu: prepare mapping of AP807 CPU clock
  dt-bindings: ap806: Document AP807 clock compatible
  dt-bindings: ap80x: Document AP807 CPU clock compatible
  clk: sprd: add missing kfree
  clk: at91: allow 24 Mhz clock as input for PLL
  powerpc: Use ftrace_graph_ret_addr() when unwinding
  powerpc/ftrace: Enable HAVE_FUNCTION_GRAPH_RET_ADDR_PTR
  ftrace: Look up the address of return_to_handler() using helpers
  nbd: fix possible page fault for nbd disk
  nbd: rename the runtime flags as NBD_RT_ prefixed
  block, bfq: push up injection only after setting service time
  block, bfq: increase update frequency of inject limit
  block, bfq: reduce upper bound for inject limit to max_rq_in_driver+1
  block, bfq: update inject limit only after injection occurred
  block: centralize PI remapping logic to the block layer
  block: use symbolic constants for t10_pi type
  rpmsg: glink-smem: Name the edge based on parent remoteproc
  usercopy: Avoid HIGHMEM pfn warning
  f2fs: add a condition to detect overflow in f2fs_ioc_gc_range()
  clk: Make clk_bulk_get_all() return a valid "id"
  clk: actions: Fix factor clk struct member access
  drm/amdgpu: add navi12 pci id
  drm/amdgpu: add navi14 PCI ID for work station SKU
  drm/amdkfd: Swap trap temporary registers in gfx10 trap handler
  drm/amd/powerplay: implement sysfs for getting dpm clock
  drm/amd/display: Restore backlight brightness after system resume
  drm/amd/display: Implement voltage limitation for dali
  drm/amd/display: add Asic ID for Dali
  drm/amdgpu: Fix KFD-related kernel oops on Hawaii
  drm/amd/amdgpu: power up sdma engine when S3 resume back
  drm/amdgpu: Check for valid number of registers to read
  drm/radeon: Bail earlier when radeon.cik_/si_support=0 is passed
  drm/amd/display: Add missing HBM support and raise Vega20's uclk.
  drm/amd/display: dce11.x /dce12 update formula input
  drm/amdgpu: remove program of lbpw for renoir
  drm/amdgpu: Remove clock gating restore.
  drm/amdgpu: Add smu lock around in pp_smu_i2c_bus_access
  drm/amd/display: update renoir_ip_offset.h
  SUNRPC: RPC level errors should always set task->tk_rpc_status
  SUNRPC: Don't receive TCP data into a request buffer that has been reset
  SUNRPC: Dequeue the request from the receive queue while we're re-encoding
  drm/amdgpu: disable stutter mode for renoir
  drm/amd/display: Add stereo mux and dig programming calls for dcn21
  LSM: SafeSetID: Stop releasing uninitialized ruleset
  clk: qcom: rcg: Return failure for RCG update
  clk: remove extra ---help--- tags in Kconfig
  clk: add include guard to clk-conf.h
  clk: Evict unregistered clks from parent caches
  clk: mediatek: Runtime PM support for MT8183 mcucfg clock provider
  clk: mediatek: Register clock gate with device
  clk: mediatek: add pericfg clocks for MT8183
  dt-bindings: clock: mediatek: add pericfg for MT8183
  clk: bcm2835: Mark PLLD_PER as CRITICAL
  clk: bcm2835: Add BCM2711_CLOCK_EMMC2 support
  clk: bcm2835: Introduce SoC specific clock registration
  dt-bindings: bcm2835-cprman: Add bcm2711 support
  PCI: vmd: Fix shadow offsets to reflect spec changes
  PCI: vmd: Fix config addressing when using bus offsets
  selftests/ftrace: Select an existing function in kprobe_eventname test
  ASoC: core: delete component->card_list in soc_remove_component only
  ASoC: fsl_sai: Fix noise when using EDMA
  CONFIG_MMC=m
  unicode: make array 'token' static const, makes object smaller
  unicode: Move static keyword to the front of declarations
  tracing/kprobe: Fix NULL pointer access in trace_porbe_unlink()
  tracing: Make sure variable reference alias has correct var_ref_idx
  tracing: Be more clever when dumping hex in __print_hex()
  ftrace: Simplify ftrace hash lookup code in clear_func_from_hash()
  gfs2: clear buf_in_tr when ending a transaction in sweep_bh_for_rgrps
  powerpc: dump kernel log before carrying out fadump or kdump
  docs: powerpc: Add missing documentation reference
  arm64: fix function types in COND_SYSCALL
  selftests, arm64: add kernel headers path for tags_test
  arm64: fix unreachable code issue with cmpxchg
  sched/fair: Remove unused cfs_rq_clock_task() function
  ALSA: usb-audio: Add Hiby device family to quirks for native DSD support
  watchdog: f71808e_wdt: Add F81803 support
  watchdog: qcom: remove unnecessary variable from private storage
  watchdog: qcom: support pre-timeout when the bark irq is available
  watchdog: imx_sc: this patch just fixes whitespaces
  watchdog: apseed: Add access_cs0 option for alt-boot
  watchdog: aspeed: add support for dual boot
  watchdog: orion_wdt: use timer1 as a pretimeout
  watchdog: Add i.MX7ULP watchdog support
  dt-bindings: watchdog: Add i.MX7ULP bindings
  dt-bindings: watchdog: sun4i: Add the watchdog clock
  dt-bindings: watchdog: sun4i: Add the watchdog interrupts
  dt-bindings: watchdog: Convert Allwinner watchdog to a schema
  dt-bindings: watchdog: Add YAML schemas for the generic watchdog bindings
  watchdog: aspeed: Add support for AST2600
  dt-bindings: watchdog: Add ast2600 compatible
  watchdog: ziirave_wdt: Update checked I2C functionality mask
  watchdog: ziirave_wdt: Drop ziirave_firm_write_block_data()
  watchdog: ziirave_wdt: Fix DOWNLOAD_START payload
  watchdog: ziirave_wdt: Drop status polling code
  watchdog: ziirave_wdt: Fix RESET_PROCESSOR payload
  watchdog: ziirave_wdt: Fix DOWNLOAD_END payload
  watchdog: ziirave_wdt: Fix JUMP_TO_BOOTLOADER payload
  watchdog: ziirave_wdt: Fix misleading error message
  watchdog: ziirave_wdt: Don't try to program readonly flash
  watchdog: ziirave_wdt: Don't read out more than 'len' firmware bytes
  watchdog: ziirave_wdt: Don't check if ihex record length is zero
  watchdog: ziirave_wdt: Make use of put_unaligned_le16
  watchdog: ziirave_wdt: Zero out only what's necessary
  watchdog: ziirave_wdt: Fix incorrect use of ARRAY_SIZE
  watchdog: ziirave_wdt: Skip zeros when calculating checksum
  watchdog: ziirave_wdt: Check packet length only once
  watchdog: ziirave_wdt: Simplify ziirave_firm_write_pkt()
  watchdog: ziirave_wdt: Log bootloader/firmware info during probe
  watchdog: ziirave_wdt: Don't bail out on unexpected timeout value
  watchdog: ziirave_wdt: Be more verbose during firmware update
  watchdog: ziirave_wdt: Be verbose about errors in probe()
  watchdog: ziirave_wdt: Add missing newline
  watchdog: imx_sc: Remove unnecessary error log
  watchdog: imx2_wdt: fix min() calculation in imx2_wdt_set_timeout
  watchdog: cpwd: use generic compat_ptr_ioctl
  watchdog: diag288_wdt: Remove leftover includes from conversion to watchdog API
  mailbox: qcom-apcs: fix max_register value
  mailbox: qcom: Add support for IPQ8074 APCS
  dt-bindings: mailbox: qom: Add ipq8074 APPS compatible
  mailbox: qcom: Add support for Qualcomm SM8150 and SC7180 SoCs
  dt-bindings: mailbox: Add APSS shared for SM8150 and SC7180 SoCs
  mbox: qcom: replace integer with valid macro
  mbox: qcom: add APCS child device for QCS404
  mailbox: mediatek: cmdq: clear the event in cmdq initial flow
  mailbox: mediatek: cmdq: support mt8183 gce function
  mailbox: mediatek: cmdq: move the CMDQ_IRQ_MASK into cmdq driver data
  dt-binding: gce: add binding for gce client reg property
  dt-binding: gce: add gce header file for mt8183
  dt-binding: gce: remove thread-num property
  mailbox: armada-37xx-rwtm: Use device-managed registration API
  drm/nouveau/bar/gm20b: Avoid BAR1 teardown during init
  drm/nouveau: Fix ordering between TTM and GEM release
  drm/nouveau/prime: Extend DMA reservation object lock
  drm/nouveau: Fix fallout from reservation object rework
  drm/nouveau/kms/nv50-: Don't create MSTMs for eDP connectors
  ANDROID: Log which device failed to suspend in dpm_suspend_start()
  cifs: update internal module version number
  cifs: modefromsid: write mode ACE first
  ALSA: hda/realtek - Fix alienware headset mic
  ALSA: dice: fix wrong packet parameter for Alesis iO26
  clk: at91: select parent if main oscillator or bypass is enabled
  clk: at91: fix update bit maps on CFG_MOR write
  watchdog: remove w90x900 driver
  watchdog: remove ks8695 driver
  watchdog: pnx4008_wdt: allow compile-testing
  mlxsw: spectrum_buffers: Add the ability to query the CPU port's shared buffer
  mlxsw: spectrum: Register CPU port with devlink
  mlxsw: spectrum_buffers: Prevent changing CPU port's configuration
  net: ena: fix incorrect update of intr_delay_resolution
  net: ena: fix retrieval of nonadaptive interrupt moderation intervals
  net: ena: fix update of interrupt moderation register
  net: ena: remove all old adaptive rx interrupt moderation code from ena_com
  net: ena: remove ena_restore_ethtool_params() and relevant fields
  net: ena: remove old adaptive interrupt moderation code from ena_netdev
  net: ena: remove code duplication in ena_com_update_nonadaptive_moderation_interval _*()
  net: ena: enable the interrupt_moderation in driver_supported_features
  net: ena: reimplement set/get_coalesce()
  net: ena: switch to dim algorithm for rx adaptive interrupt moderation
  net: ena: add intr_moder_rx_interval to struct ena_com_dev and use it
  net: phy: adin: implement Energy Detect Powerdown mode via phy-tunable
  ethtool: implement Energy Detect Powerdown support via phy-tunable
  xen-netfront: do not assume sk_buff_head list is empty in error handling
  s390/ctcm: Delete unnecessary checks before the macro call “dev_kfree_skb”
  ANDROID: Removed extraneous serial 8250 configs
  net: ena: don't wake up tx queue when down
  drop_monitor: Better sanitize notified packets
  netdevsim: Set offsets to various protocol layers
  docs: net: dsa: sja1105: Add info about the Time-Aware Scheduler
  net: dsa: sja1105: Configure the Time-Aware Scheduler via tc-taprio offload
  net: dsa: sja1105: Advertise the 8 TX queues
  net: dsa: sja1105: Add static config tables for scheduling
  net: dsa: Pass ndo_setup_tc slave callback to drivers
  taprio: Add support for hardware offloading
  RDMA: Fix double-free in srq creation error flow
  RDMA/efa: Fix incorrect error print
  IB/mlx5: Free mpi in mp_slave mode
  Adding SERIAL_OF_PLATFORM module to gki
  cifs: cifsroot: add more err checking
  smb3: add missing worker function for SMB3 change notify
  cifs: Add support for root file systems
  cifs: modefromsid: make room for 4 ACE
  smb3: fix potential null dereference in decrypt offload
  smb3: fix unmount hang in open_shroot
  smb3: allow disabling requesting leases
  smb3: improve handling of share deleted (and share recreated)
  smb3: display max smb3 requests in flight at any one time
  smb3: only offload decryption of read responses if multiple requests
  cifs: add a helper to find an existing readable handle to a file
  smb3: enable offload of decryption of large reads via mount option
  smb3: allow parallelizing decryption of reads
  cifs: add a debug macro that prints \\server\share for errors
  smb3: fix signing verification of large reads
  smb3: allow skipping signature verification for perf sensitive configurations
  smb3: add dynamic tracepoints for flush and close
  smb3: log warning if CSC policy conflicts with cache mount option
  smb3: add mount option to allow RW caching of share accessed by only 1 client
  smb3: add some more descriptive messages about share when mounting cache=ro
  smb3: add mount option to allow forced caching of read only share
  cifs: fix dereference on ses before it is null checked
  cifs: add new debugging macro cifs_server_dbg
  cifs: use existing handle for compound_op(OP_SET_INFO) when possible
  cifs: create a helper to find a writeable handle by path name
  cifs: remove set but not used variables
  smb3: Incorrect size for netname negotiate context
  cifs: remove unused variable
  cifs: remove redundant assignment to variable rc
  smb3: add missing flag definitions
  cifs: add passthrough for smb2 setinfo
  cifs: prepare SMB2_Flush to be usable in compounds
  cifs: allow chmod to set mode bits using special sid
  cifs: get mode bits from special sid on stat
  fs: cifs: cifsssmb: remove redundant assignment to variable ret
  cifs: fix a comment for the timeouts when sending echos
  IB/mlx5: Use the original address for the page during free_pages
  f2fs: fix to add missing F2FS_IO_ALIGNED() condition
  f2fs: fix to fallback to buffered IO in IO aligned mode
  f2fs: fix to handle error path correctly in f2fs_map_blocks
  f2fs: fix extent corrupotion during directIO in LFS mode
  f2fs: check all the data segments against all node ones
  f2fs: Add a small clarification to CONFIG_FS_F2FS_FS_SECURITY
  f2fs: fix inode rwsem regression
  f2fs: fix to avoid accessing uninitialized field of inode page in is_alive()
  f2fs: avoid infinite GC loop due to stale atomic files
  net: phylink: clarify where phylink should be used
  bnxt_en: Add a new BNXT_FW_RESET_STATE_POLL_FW_DOWN state.
  bnxt_en: Update firmware interface spec. to 1.10.0.100.
  bnxt_en: Increase timeout for HWRM_DBG_COREDUMP_XX commands
  bnxt_en: Don't proceed in .ndo_set_rx_mode() when device is not in open state.
  null_blk: format pr_* logs with pr_fmt
  null_blk: match the type of parameter nr_devices
  null_blk: do not fail the module load with zero devices
  ARM: dts: dir685: Drop spi-cpol from the display
  tcp: Add snd_wnd to TCP_INFO
  tcp: Add TCP_INFO counter for packets received out-of-order
  net: mdio: switch to using gpiod_get_optional()
  dm: introduce DM_GET_TARGET_VERSION
  RDMA/bnxt_re: Fix spelling mistake "missin_resp" -> "missing_resp"
  RDMA/hns: Package operations of rq inline buffer into separate functions
  RDMA/hns: Optimize cmd init and mode selection for hip08
  PCI: dwc: Add validation that PCIe core is set to correct mode
  PCI: dwc: al: Add Amazon Annapurna Labs PCIe controller driver
  dt-bindings: PCI: Add Amazon's Annapurna Labs PCIe host bridge binding
  PCI: Add quirk to disable MSI-X support for Amazon's Annapurna Labs Root Port
  PCI/VPD: Prevent VPD access for Amazon's Annapurna Labs Root Port
  PCI: Add ACS quirk for Amazon Annapurna Labs root ports
  PCI: Add Amazon's Annapurna Labs vendor ID
  s390: remove pointless drivers-y in drivers/s390/Makefile
  s390/cpum_sf: Fix line length and format string
  s390/pci: fix MSI message data
  ceph: call ceph_mdsc_destroy from destroy_fs_client
  libceph: use ceph_kvmalloc() for osdmap arrays
  libceph: avoid a __vmalloc() deadlock in ceph_kvmalloc()
  ceph: allow object copies across different filesystems in the same cluster
  ceph: include ceph_debug.h in cache.c
  ceph: move static keyword to the front of declarations
  rbd: pull rbd_img_request_create() dout out into the callers
  ceph: reconnect connection if session hang in opening state
  libceph: drop unused con parameter of calc_target()
  ceph: use release_pages() directly
  rbd: fix response length parameter for encoded strings
  ceph: allow arbitrary security.* xattrs
  ceph: only set CEPH_I_SEC_INITED if we got a MAC label
  ceph: turn ceph_security_invalidate_secctx into static inline
  ceph: add buffered/direct exclusionary locking for reads and writes
  libceph: handle OSD op ceph_pagelist_append() errors
  ceph: don't return a value from void function
  ceph: don't freeze during write page faults
  ceph: update the mtime when truncating up
  ceph: fix indentation in __get_snap_name()
  ceph: remove incorrect comment above __send_cap
  ceph: remove CEPH_I_NOFLUSH
  ceph: remove unneeded test in try_flush_caps
  ceph: have __mark_caps_flushing return flush_tid
  ceph: fix comments over ceph_add_cap
  ceph: eliminate session->s_trim_caps
  ceph: fetch cap_gen under spinlock in ceph_add_cap
  ceph: remove ceph_get_cap_mds and __ceph_get_cap_mds
  ceph: don't SetPageError on writepage errors
  ceph: auto reconnect after blacklisted
  ceph: invalidate all write mode filp after reconnect
  ceph: return -EIO if read/write against filp that lost file locks
  ceph: add helper function that forcibly reconnects to ceph cluster.
  ceph: pass filp to ceph_get_caps()
  ceph: track and report error of async metadata operation
  ceph: allow closing session in restarting/reconnect state
  libceph: add function that clears osd client's abort_err
  libceph: add function that reset client's entity addr
  ceph: don't list vxattrs in listxattr()
  ceph: allow copy_file_range when src and dst inode are same
  ceph: fix directories inode i_blkbits initialization
  bpf: fix accessing bpf_sysctl.file_pos on s390
  xdp: Fix race in dev_map_hash_update_elem() when replacing element
  samples/bpf: fix xdpsock l2fwd tx for unaligned mode
  ixgbe: fix xdp handle calculations
  i40e: fix xdp handle calculations
  selftests/bpf: add bpf-gcc support
  net: stmmac: socfpga: re-use the `interface` parameter from platform data
  net: sched: use get_dev() action API in flow_action infra
  net: sched: take reference to psample group in flow_action infra
  net: sched: extend flow_action_entry with destructor
  MAINTAINERS: update FORCEDETH MAINTAINERS info
  net/wan: dscc4: remove broken dscc4 driver
  MAINTAINERS: xen-netback: update my email address
  net: stmmac: Hold rtnl lock in suspend/resume callbacks
  ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
  qed: fix spelling mistake "fullill" -> "fulfill"
  net: dsa: b53: Add support for port_egress_floods callback
  udp: correct reuseport selection with connected sockets
  um: irq: Fix LAST_IRQ usage in init_IRQ()
  block: also check RQF_STATS in blk_mq_need_time_stamp()
  block: make rq sector size accessible for block stats
  mtd: pmc551: Remove set but not used variable 'soff_lo'
  mtd: cfi_cmdset_0002: Fix do_erase_chip() to get chip as erasing mode
  mtd: sm_ftl: Fix memory leak in sm_init_zone() error path
  mtd: parsers: Move CMDLINE parser
  mtd: parsers: Move OF parser
  mtd: parsers: Move BCM63xx parser
  mtd: parsers: Move BCM47xx parser
  mtd: parsers: Move TI AR7 parser
  mtd: pismo: Simplify getting the adapter of a client
  mtd: phram: Module parameters add writable permissions
  mtd: pxa2xx: Use ioremap_cache insted of ioremap_cached
  jffs2: Fix memory leak in jffs2_scan_eraseblock() error path
  jffs2: Remove jffs2_gc_fetch_page and jffs2_gc_release_page
  jffs2: Fix possible null-pointer dereferences in jffs2_add_frag_to_fragtree()
  ubi: block: Warn if volume size is not multiple of 512
  ubifs: Fix memory leak bug in alloc_ubifs_info() error path
  ubifs: Fix memory leak in __ubifs_node_verify_hmac error path
  ubifs: Fix memory leak in read_znode() error path
  ubi: ubi_wl_get_peb: Increase the number of attempts while getting PEB
  ubi: Don't do anchor move within fastmap area
  ubifs: Remove redundant assignment to pointer fname
  um: Add SPDX headers for files in arch/um/include
  um: Add SPDX headers for files in arch/um/os-Linux
  um: Add SPDX headers to files in arch/um/kernel/
  um: Add SPDX headers for files in arch/um/drivers
  um: virtio: Implement VHOST_USER_PROTOCOL_F_REPLY_ACK
  um: virtio: Implement VHOST_USER_PROTOCOL_F_SLAVE_REQ
  um: drivers: Add virtio vhost-user driver
  um: Use real DMA barriers
  um: Don't use generic barrier.h
  um: time-travel: Restrict time update in IRQ handler
  um: time-travel: Fix periodic timers
  um: Enable CONFIG_CONSTRUCTORS
  um: Place (soft)irq text with macros
  um: Fix VDSO compiler warning
  um: Implement TRACE_IRQFLAGS_SUPPORT
  um: Remove misleading #define ARCh_IRQ_ENABLED
  um: Avoid using uninitialized regs
  um: Remove sig_info[SIGALRM]
  um: Error handling fixes in vector drivers
  um: Add checks to mtu parameter parsing
  um: Added support for unix socket transports and bess transport
  um: Add legacy tap support and rename existing vector to hybrid
  um: Remove meaningless clearing of clean-files
  um: Fix off by one error in IRQ enumeration
  net/rds: Fix 'ib_evt_handler_call' element in 'rds_ib_stat_names'
  net_sched: let qdisc_put() accept NULL pointer
  net: dsa: Fix load order between DSA drivers and taggers
  net/sched: fix race between deactivation and dequeue for NOLOCK qdisc
  x86: bug.h: use asm_inline in _BUG_FLAGS definitions
  x86: alternative.h: use asm_inline for all alternative variants
  compiler-types.h: add asm_inline definition
  compiler_types.h: don't #define __inline
  lib/zstd/mem.h: replace __inline by inline
  staging: rtl8723bs: replace __inline by inline
  afs dynroot: switch to simple_dir_operations
  platform/x86: asus-wmi: Make it depend on ACPI battery API
  ASoC: sdm845: remove unneeded semicolon
  Documentation: kbuild: Add document about reproducible builds
  io_uring: increase IORING_MAX_ENTRIES to 32K
  bfq: Fix bfq linkage error
  docs: printk-formats: Stop encouraging use of unnecessary %h[xudi] and %hh[xudi]
  Documentation: Add "earlycon=sbi" to the admin guide
  doc🔒 remove reference to clever use of read-write lock
  devices.txt: improve entry for comedi (char major 98)
  genksyms: convert to SPDX License Identifier for lex.l and parse.y
  modpost: use __section in the output to *.mod.c
  modpost: use MODULE_INFO() for __module_depends
  export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
  KVM: X86: Use IPI shorthands in kvm guest when support
  bus: qcom: fix spelling mistake "ambigous" -> "ambiguous"
  of: Let of_for_each_phandle fallback to non-negative cell_count
  iommu: pass cell_count = -1 to of_for_each_phandle with cells_name
  dm bufio: introduce a global cache replacement
  raid5: use bio_end_sector in r5_next_bio
  raid5: remove STRIPE_OPS_REQ_PENDING
  net: devlink: move reload fail indication to devlink core and expose to user
  net: devlink: split reload op into two
  mlx4: Split restart_one into two functions
  md: add feature flag MD_FEATURE_RAID0_LAYOUT
  md/raid0: avoid RAID0 data corruption due to layout confusion.
  raid5: don't set STRIPE_HANDLE to stripe which is in batch list
  raid5: don't increment read_errors on EILSEQ return
  IB/hfi1: Define variables as unsigned long to fix KASAN warning
  IB/{rdmavt, hfi1, qib}: Add a counter for credit waits
  IB/hfi1: Add traces for TID RDMA READ
  RDMA/siw: Relax from kmap_atomic() use in TX path
  IB/iser: Support up to 16MB data transfer in a single command
  RDMA/siw: Fix page address mapping in TX path
  RDMA: Fix goto target to release the allocated memory
  RDMA/usnic: Avoid overly large buffers on stack
  RDMA/odp: Add missing cast for 32 bit
  RDMA/hns: Use devm_platform_ioremap_resource() to simplify code
  Documentation/infiniband: update name of some functions
  RDMA/cma: Fix false error message
  ip: support SO_MARK cmsg
  rtw88: report RX power for each antenna
  rtw88: fix wrong rx power calculation
  rtlwifi: rtl8192de: replace _rtl92d_evm_db_to_percentage with generic version
  rtlwifi: rtl8192cu: replace _rtl92c_evm_db_to_percentage with generic version
  rtlwifi: rtl8192ce: replace _rtl92c_evm_db_to_percentage with generic version
  rtw88: allows to receive AMSDU in AMPDU
  rtw88: add dynamic cck pd mechanism
  rtw88: move IQK/DPK into phy_calibration
  rtw88: 8822c: add SW DPK support
  rtw88: 8822c: add FW IQK support
  rtw88: 8822c: Enable interrupt migration
  rtw88: 8822c: update pwr_seq to v13
  rtw88: 8822c: update PHY parameter to v38
  powerpc/xmon: Fix output of XIVE IPI
  powerpc/xmon: Improve output of XIVE interrupts
  rtlwifi: rtl8188ee: rtl8192ce: rtl8192de: rtl8723ae: rtl8821ae: Remove some unused bit manipulation macros
  rtlwifi: rtl8723be: Convert inline routines to little-endian words
  rtlwifi: rtl8723be: Convert macros that set descriptor
  rtlwifi: rtl8723be: Replace local bit manipulation macros
  rtlwifi: rtl8723be: Remove unused SET_XXX and GET_XXX macros
  rtlwifi: rtl8723ae: Convert inline routines to little-endian words
  rtlwifi: rtl8723ae: Convert macros that set descriptor
  rtlwifi: rtl8723ae: Replace local bit manipulation macros
  rtlwifi: rtl8723ae: Remove unused GET_XXX and SET_XXX macros
  dm bufio: remove old-style buffer cleanup
  dm bufio: introduce a global queue
  dm bufio: refactor adjust_total_allocated
  dm bufio: call adjust_total_allocated from __link_buffer and __unlink_buffer
  libertas: use mesh_wdev->ssid instead of priv->mesh_ssid
  ssb: make array pwr_info_offset static const, makes object smaller
  CREDITS: Update email address
  i2c: tegra: Move suspend handling to NOIRQ phase
  i2c: imx: ACPI support for NXP i2c controller
  powerpc/mm/radix: remove useless kernel messages
  powerpc/fadump: support holes in kernel boot memory area
  powerpc/fadump: remove RMA_START and RMA_END macros
  powerpc/fadump: update documentation about option to release opalcore
  powerpc/fadump: consider f/w load area
  powerpc/opalcore: provide an option to invalidate /sys/firmware/opal/core file
  powerpc/opalcore: export /sys/firmware/opal/core for analysing opal crashes
  powerpc/fadump: update documentation about CONFIG_PRESERVE_FA_DUMP
  powerpc/fadump: add support to preserve crash data on FADUMP disabled kernel
  powerpc/fadump: improve how crashed kernel's memory is reserved
  powerpc/fadump: consider reserved ranges while releasing memory
  powerpc/fadump: make crash memory ranges array allocation generic
  powerpc/fadump: process architected register state data provided by firmware
  powerpc/fadump: make use of memblock's bottom up allocation mode
  powerpc/fadump: Update documentation about OPAL platform support
  powerpc/fadump: handle invalidation of crashdump and re-registraion
  powerpc/fadump: Warn before processing partial crashdump
  powerpc/fadump: process the crashdump by exporting it as /proc/vmcore
  powerpc/fadump: support copying multiple kernel boot memory regions
  powerpc/fadump: define OPAL register/un-register callback functions
  powerpc/fadump: reset metadata address during clean up
  powerpc/fadump: register kernel metadata address with opal
  powerpc/fadump: improve fadump_reserve_mem()
  powerpc/fadump: add fadump support on powernv
  powerpc/opal: add MPIPL interface definitions
  powerpc/fadump: use FADump instead of fadump for how it is pronounced
  pseries/fadump: move out platform specific support from generic code
  powerpc/fadump: release all the memory above boot memory size
  powerpc/fadump: add source info while displaying region contents
  pseries/fadump: define RTAS register/un-register callback functions
  powerpc/fadump: introduce callbacks for platform specific operations
  powerpc/fadump: move rtas specific definitions to platform code
  powerpc/fadump: use helper functions to reserve/release cpu notes buffer
  powerpc/fadump: Improve fadump documentation
  powerpc/fadump: declare helper functions in internal header file
  powerpc/fadump: add helper functions
  powerpc/fadump: move internal macros/definitions to a new header
  powerpc: improve prom_init_check rule
  powerpc/kvm: Add ifdefs around template code
  powerpc/kvm: Explicitly mark kvm guest code as __init
  powerpc/64s: Remove overlaps_kvm_tmp()
  powerpc/kvm: Move kvm_tmp into .text, shrink to 64K
  powerpc/powernv: Fix build with IOMMU_API=n
  powerpc/eeh: Fix build with STACKTRACE=n
  PTP: add support for one-shot output
  PTP: introduce new versions of IOCTLs
  brcmsmac: Use DIV_ROUND_CLOSEST directly to make it readable
  bcma: make arrays pwr_info_offset and sprom_sizes static const, shrinks object size
  rtlwifi: rtl8821ae: make array static const and remove redundant assignment
  brcmfmac: don't realloc wiphy during PCIe reset
  brcmfmac: split brcmf_attach() and brcmf_detach() functions
  brcmfmac: move "cfg80211_ops" pointer to another struct
  hwmon: submitting-patches: Add note on comment style
  pinctrl: meson-gxbb: Fix wrong pinning definition for uart_c
  hwmon: submitting-patches: Point to with_info API
  MAINTAINERS: Add PCI native host/endpoint controllers designated reviewer
  crypto: caam - Cast to long first before pointer conversion
  crypto: ccree - enable CTS support in AES-XTS
  crypto: inside-secure - Probe transform record cache RAM sizes
  crypto: inside-secure - Base RD fetchcount on actual RD FIFO size
  crypto: inside-secure - Base CD fetchcount on actual CD FIFO size
  crypto: inside-secure - Enable extended algorithms on newer HW
  crypto: inside-secure: Corrected configuration of EIP96_TOKEN_CTRL
  crypto: inside-secure - Add EIP97/EIP197 and endianness detection
  padata: remove cpu_index from the parallel_queue
  padata: unbind parallel jobs from specific CPUs
  padata: use separate workqueues for parallel and serial work
  padata, pcrypt: take CPU hotplug lock internally in padata_alloc_possible
  crypto: pcrypt - remove padata cpumask notifier
  padata: make padata_do_parallel find alternate callback CPU
  workqueue: require CPU hotplug read exclusion for apply_workqueue_attrs
  workqueue: unconfine alloc/apply/free_workqueue_attrs()
  padata: allocate workqueue internally
  arm64: dts: imx8mq: Add CAAM node
  netfilter: conntrack: remove two unused functions from nf_conntrack_timestamp.h.
  netfilter: conntrack: remove CONFIG_NF_CONNTRACK checks from nf_conntrack_zones.h.
  netfilter: remove CONFIG_NETFILTER checks from headers.
  netfilter: conntrack: remove CONFIG_NF_CONNTRACK check from nf_conntrack_acct.h.
  netfilter: conntrack: move code to linux/nf_conntrack_common.h.
  netfilter: br_netfilter: update stub br_nf_pre_routing_ipv6 parameter to `void *priv`.
  netfilter: conntrack: wrap two inline functions in config checks.
  netfilter: replace defined(CONFIG...) || defined(CONFIG...MODULE) with IS_ENABLED(CONFIG...).
  netfilter: conntrack: use consistent style when defining inline functions
  netfilter: move nf_bridge_frag_data struct definition to a more appropriate header.
  netfilter: synproxy: move code between headers.
  netfilter: move inline nf_ip6_ext_hdr() function to a more appropriate header.
  netfilter: remove nf_conntrack_icmpv6.h header.
  netfilter: update include directives.
  netfilter: inline xt_hashlimit, ebt_802_3 and xt_physdev headers
  netfilter: ip_tables: remove unused function declarations.
  s390: add support for IBM z15 machines
  s390/crypto: Support for SHA3 via CPACF (MSA6)
  s390/startup: add pgm check info printing
  spi: mediatek: support large PA
  spi: mediatek: add spi support for mt6765 IC
  dt-bindings: spi: update bindings for MT6765 SoC
  netfilter: fix coding-style errors.
  netfilter: fix include guards.
  ASoC: fsl_sai: Implement set_bclk_ratio
  netfilter: nf_tables_offload: remove rules when the device unregisters
  netfilter: nf_tables_offload: refactor the nft_flow_offload_rule function
  netfilter: nf_tables_offload: refactor the nft_flow_offload_chain function
  Revert "drm/bridge: adv7511: Attach to DSI host at probe time"
  sched/psi: Correct overly pessimistic size calculation
  sched/fair: Speed-up energy-aware wake-ups
  vfs: Make fs_parse() handle fs_param_is_fd-type params better
  vfs: Convert ramfs, shmem, tmpfs, devtmpfs, rootfs to use the new mount API
  shmem_parse_one(): switch to use of fs_parse()
  shmem_parse_options(): take handling a single option into a helper
  shmem_parse_options(): don't bother with mpol in separate variable
  shmem_parse_options(): use a separate structure to keep the results
  netfilter: nf_tables_offload: add __nft_offload_get_chain function
  ipmi_si_intf: Fix race in timer shutdown handling
  io_uring: make sqpoll wakeup possible with getevents
  io_uring: extend async work merging
  xen/pci: reserve MCFG areas earlier
  hwmon: (nct7904) Fix incorrect SMI status register setting of LTD temperature and fan.
  leds: lm3532: Fix optional led-max-microamp prop error handling
  ice: Bump version
  ice: Enable DDP package download
  ice: Initialize DDP package structures
  ice: Implement Dynamic Device Personalization (DDP) download
  orangefs: remove redundant assignment to err
  orangefs: Add octal zero prefix
  ice: Fix FW version formatting in dmesg
  ice: send driver version to firmware
  nvmet: fix a wrong error status returned in error log page
  nvme: send discovery log page change events to userspace
  nvme: add uevent variables for controller devices
  nvme: enable aen regardless of the presence of I/O queues
  nvme-fabrics: allow discovery subsystems accept a kato
  nvmet: Use PTR_ERR_OR_ZERO() in nvmet_init_discovery()
  nvme: Remove redundant assignment of cq vector
  nvme: Assign subsys instance from first ctrl
  nvme: tcp: remove redundant assignment to variable ret
  nvme: include admin_q sync with nvme_sync_queues
  nvme: Treat discovery subsystems as unique subsystems
  nvme: fix ns removal hang when failing to revalidate due to a transient error
  nvme: make nvme_report_ns_ids propagate error back
  nvme: make nvme_identify_ns propagate errors back
  nvme: pass status to nvme_error_status
  nvme-fc: Fail transport errors with NVME_SC_HOST_PATH
  nvme-tcp: fail command with NVME_SC_HOST_PATH_ERROR send failed
  nvme: fail cancelled commands with NVME_SC_HOST_PATH_ERROR
  wil6210: ignore reset errors for FW during probe
  wil6210: fix RX short frame check
  wil6210: use writel_relaxed in wil_debugfs_iomem_x32_set
  wil6210: report boottime_ns in scan results
  wil6210: properly initialize discovery_expired_work
  wil6210: verify cid value is valid
  wil6210: make sure DR bit is read before rest of the status message
  wil6210: fix PTK re-key race
  wil6210: add debugfs to show PMC ring content
  wil6210: add wil_netif_rx() helper function
  ath10k: fix channel info parsing for non tlv target
  ath10k: adjust skb length in ath10k_sdio_mbox_rx_packet
  ath10k: free beacon buf later in vdev teardown
  MAINTAINERS: Switch PDx86 subsystem status to Odd Fixes
  platform/chrome: cros_usbpd_logger: null check create_singlethread_workqueue
  platform/chrome: cros_ec_chardev: Add a poll handler to receive MKBP events
  platform/chrome: cros_ec_rpmsg: Fix race with host command when probe failed
  platform/chrome: chromeos_tbmc: Report wake events
  parisc: Have git ignore generated real2.S and firmware.c
  dm: add clone target
  module: Remove leftover '#undef' from export header
  block: fix race between switching elevator and removing queues
  scsi: core: remove dummy q->dev check
  block: bypass blk_set_runtime_active for uninitialized q->dev
  fuse: reserve byteswapped init opcodes
  fuse: reserve values for mapping protocol
  fuse: allow skipping control interface and forced unmount
  fuse: dissociate DESTROY from fuseblk
  fuse: delete dentry if timeout is zero
  fuse: separate fuse device allocation and installation in fuse_conn
  fuse: add fuse_iqueue_ops callbacks
  fuse: extract fuse_fill_super_common()
  fuse: export fuse_dequeue_forget() function
  fuse: export fuse_get_unique()
  fuse: export fuse_send_init_request()
  fuse: export fuse_len_args()
  fuse: export fuse_end_request()
  fuse: fix request limit
  mmc: renesas_sdhi_internal_dmac: Add MMC_CAP2_MERGE_CAPABLE
  mmc: queue: Fix bigger segments usage
  pinctrl: sh-pfc: Unlock on error in sh_pfc_func_set_mux()
  cxgb4: Fix spelling typos
  net: dsa: microchip: remove NET_DSA_TAG_KSZ_COMMON
  net: dsa: microchip: add ksz9567 to ksz9477 driver
  net: dsa: microchip: add KSZ9477 I2C driver
  quota: fix wrong condition in is_quota_modification()
  ARM: dts: aspeed: Add AST2600 pinmux nodes
  ARM: dts: aspeed: Add AST2600 and EVB
  Staging: gasket: Use temporaries to reduce line length.
  Staging: octeon: Avoid several usecases of strcpy
  staging: vhciq_core: replace snprintf with scnprintf
  staging: wilc1000: avoid twice IRQ handler execution for each single interrupt
  staging: wilc1000: remove unused interrupt status handling code
  staging: fbtft: make several arrays static const, makes object smaller
  staging: rtl8188eu: make two arrays static const, makes object smaller
  staging: rtl8723bs: core: Remove Macro "IS_MAC_ADDRESS_BROADCAST"
  dt-bindings: anybus-controller: move to staging/ tree
  staging: emxx_udc: remove local TRUE/FALSE definition
  staging: wilc1000: look for rtc_clk clock
  staging: dt-bindings: wilc1000: add optional rtc_clk property
  staging: nvec: make use of devm_platform_ioremap_resource
  staging: exfat: drop unused function parameter
  gpiolib: of: add a fallback for wlf,reset GPIO name
  pinctrl: bcm: remove redundant assignment to pointer log
  pinctrl: iproc: Add 'get_direction' support
  Staging: exfat: Avoid use of strcpy
  staging: exfat: use integer constants
  staging: exfat: cleanup spacing for casts
  staging: exfat: cleanup spacing for operators
  gpio: htc-egpio: Remove unused exported htc_egpio_get_wakeup_irq()
  powerpc/xive: Fix bogus error code returned by OPAL
  powerpc/pseries: correctly track irq state in default idle
  powerpc/watchpoint: Disable watchpoint hit by larx/stcx instructions
  powerpc/powernv: Add new opal message type
  powerpc/powernv: Enhance opal message read interface
  powerpc/powernv: Remove unused pnv_npu_try_dma_set_bypass() function
  seltests/powerpc: Add a selftest for memcpy_mcsafe
  powerpc/memcpy: Fix stack corruption for smaller sizes
  powerpc: Add attributes for setjmp/longjmp
  gpio: remove explicit comparison with 0
  nfp: read chip model from the PluDevice register
  tcp: force a PSH flag on TSO packets
  ipv6: Don't use dst gateway directly in ip6_confirm_neigh()
  net: stmmac: pci: Add HAPS support using GMAC5
  net: phy: dp83867: Add SGMII mode type switching
  net: phy: dp83867: Add documentation for SGMII mode type
  null_blk: validate the number of devices
  null_blk: fix module name at log message
  docs: block: null_blk: enhance document style
  dm raid: fix updating of max_discard_sectors limit
  module: remove unneeded casts in cmp_name()
  module: move CONFIG_UNUSED_SYMBOLS to the sub-menu of MODULES
  module: remove redundant 'depends on MODULES'
  software node: Initialize the return value in software_node_find_by_name()
  module: Fix link failure due to invalid relocation on namespace offset
  KVM: x86: Fix INIT signal handling in various CPU states
  i40e: fix potential RX buffer starvation for AF_XDP
  net/ixgbevf: make array api static const, makes object smaller
  iavf: fix MAC address setting for VFs when filter is rejected
  i40e: clear __I40E_VIRTCHNL_OP_PENDING on invalid min Tx rate
  i40e: use BIT macro to specify the cloud filter field flags
  i40e: Fix message for other card without FEC.
  i40e: fix missed "Negotiated" string in i40e_print_link_message()
  i40e: mark additional missing bits as reserved
  i40e: remove I40E_AQC_ADD_CLOUD_FILTER_OIP
  i40e: use ktime_get_real_ts64 instead of ktime_to_timespec64
  ixgbe: use skb_get_queue_mapping in tx path
  i40e: check __I40E_VF_DISABLE bit in i40e_sync_filters_subtask
  ixgbe: fix memory leaks
  KVM: VMX: Introduce exit reason for receiving INIT signal on guest-mode
  KVM: VMX: Stop the preemption timer during vCPU reset
  KVM: LAPIC: Micro optimize IPI latency
  kvm: Nested KVM MMUs need PAE root too
  KVM: x86: set ctxt->have_exception in x86_decode_insn()
  KVM: x86: always stop emulation on page fault
  cpuidle-haltpoll: Enable kvm guest polling when dedicated physical CPUs are available
  cpuidle-haltpoll: do not set an owner to allow modunload
  cpuidle-haltpoll: return -ENODEV on modinit failure
  cpuidle-haltpoll: set haltpoll as preferred governor
  cpuidle: allow governor switch on cpuidle_register_driver()
  KVM: nVMX: trace nested VM-Enter failures detected by H/W
  KVM: nVMX: add tracepoint for failed nested VM-Enter
  x86: KVM: svm: Fix a check in nested_svm_vmrun()
  spi: bcm2835: Speed up RX-only DMA transfers by zero-filling TX FIFO
  spi: bcm2835: Speed up TX-only DMA transfers by clearing RX FIFO
  dmaengine: bcm2835: Avoid accessing memory when copying zeroes
  spi: bcm2835: Cache CS register value for ->prepare_message()
  ASoC: dmaengine: Replace strncpy() with strscpy_pad() for pcm->name
  dmaengine: bcm2835: Document struct bcm2835_dmadev
  spi: Guarantee cacheline alignment of driver-private data
  dmaengine: bcm2835: Allow reusable descriptors
  dmaengine: bcm2835: Allow cyclic transactions without interrupt
  spi: bcm2835: Drop dma_pending flag
  dt-bindings: net: dwmac: document 'mac-mode' property
  net: stmmac: implement support for passive mode converters via dt
  qed: Fix Config attribute frame format.
  qed*: Fix size of config attribute dump.
  ovl: filter of trusted xattr results in audit
  ovl: Fix dereferencing possible ERR_PTR()
  ms_block: fix spelling mistake "randomally" -> "randomly"
  mmc: dw_mmc: hi3798cv200: make array degrees static const, makes object smaller
  mmc: sdhci: Convert to use sdio_irq_claimed()
  mmc: sdhci: Drop redundant code for SDIO IRQs
  mmc: sdhci: Drop redundant check in sdhci_ack_sdio_irq()
  mmc: core: Fixup processing of SDIO IRQs during system suspend/resume
  mmc: core: WARN if SDIO IRQs are enabled for non-powered card in suspend
  mmc: core: Clarify that the ->ack_sdio_irq() callback is mandatory
  mmc: core: Clarify sdio_irq_pending flag for MMC_CAP2_SDIO_IRQ_NOTHREAD
  mmc: core: Move code to get pending SDIO IRQs to a function
  mmc: mtk-sd: Re-store SDIO IRQs mask at system resume
  mmc: dw_mmc: Re-store SDIO IRQs mask at system resume
  mmc: core: Add helper function to indicate if SDIO IRQs is enabled
  nfp: devlink: set unknown fw_load_policy
  devlink: add unknown 'fw_load_policy' value
  mmc: sdhci-pci-o2micro: Fix O2 Host data read/write DLL Lock phase shift issue
  mmc: sdhci-pci-o2micro: Move functions in preparation to fix DLL lock phase shift issue
  mmc: sdhci-pci-o2micro: Change O2 Host PLL and DLL register name
  mmc: sdhci: Fix incorrect switch to HS mode
  mmc: sdhci-of-aspeed: Depend on CONFIG_OF_ADDRESS
  mmc: sdhci-of-aspeed: Allow max-frequency limitation of SDCLK
  mmc: sdhci-of-aspeed: Uphold clocks-on post-condition of set_clock()
  mmc: sdhci-of-aspeed: Drop redundant assignment to host->clock
  mmc: mmc_spi: Convert to use for_each_sg()
  mmc: sdhi: fill in actual_clock
  mmc: sdhci: use lower/upper_32_bits() macros for DMA addresses
  mmc: sdhci-cadence: override spec version
  mmc: sdhci: constify references of parameters to __sdhci_read_caps()
  mmc: mediatek: enable SDIO IRQ low level trigger function
  mmc: sdhci: Export sdhci_abort_tuning function symbol
  PCI: Add Genesys Logic, Inc. Vendor ID
  mmc: sdhci: Add PLL Enable support to internal clock setup
  mmc: sdhci: Change timeout of loop for checking internal clock stable
  mmc: sdhci-of-arasan: Add Support for Intel LGM eMMC
  dt-bindings: mmc: sdhci-of-arasan: Add new compatible for Intel LGM eMMC
  mmc: sdhci-of-aspeed: Fix return value check in aspeed_sdc_probe()
  dt-bindings: mmc: sdhci-of-aspeed: Update example ranges property
  mmc: bcm2835: Take SWIOTLB memory size limitation into account
  mmc: sdhci-of-aspeed: Add support for the ASPEED SD controller
  dt-bindings: mmc: sdhci-of-aspeed: Document Aspeed SD controller
  mmc: mediatek: support 24bits segment size
  mmc: mediatek: fix controller busy when plug out SD
  mmc: renesas_sdhi_sys_dmac: Remove all R-Car Gen3 SoCs
  mmc: jz4740: Drop dependency on arch header
  mmc: jz4740: Code cleanup
  mmc: sdhci-cadence: use struct_size() helper
  mmc: sdhci-of-esdhc: add erratum A011334 support in ls1028a 1.0 SoC
  mmc: Remove dev_err() usage after platform_get_irq()
  mmc: sdhci-pci: Add another Id for Intel CML
  mmc: sdhci-s3c: Mark expected switch fall-through
  mmc: atmel-mci: Mark expected switch fall-throughs
  mmc: sdhci-pltfm: Use devm_platform_ioremap_resource() to simplify code
  mmc: mmci: Clarify comments and some code for busy detection
  memstick: r592: Use dev_get_drvdata
  mmc: sdhci-pci: Use dev_get_drvdata
  mmc: sdhci-iproc: Add support for emmc2 of the BCM2711
  dt-bindings: mmc: sdhci-iproc: Add brcm,bcm2711-emmc2
  dt-bindings: mmc: sunxi: Add H5 compatibles
  dt-bindings: mmc: sunxi: reorder MMC compatibles
  mmc: mxs: use devm_platform_ioremap_resource() to simplify code
  mmc: usdhi6rol0: Add maintainers
  gpio: creg-snps: use devm_platform_ioremap_resource() to simplify code
  gpio: devres: Switch to EXPORT_SYMBOL_GPL()
  gpio: of: Switch to EXPORT_SYMBOL_GPL()
  gpio: of: Make of_gpio_simple_xlate() private
  gpio: of: Make of_get_named_gpiod_flags() private
  KVM: x86: Return to userspace with internal error on unexpected exit reason
  configfs: calculate the symlink target only once
  configfs: make configfs_create() return inode
  configfs: factor dirent removal into helpers
  configfs: fix a deadlock in configfs_symlink()
  arm64: use asm-generic/dma-mapping.h
  swiotlb-xen: merge xen_unmap_single into xen_swiotlb_unmap_page
  swiotlb-xen: simplify cache maintainance
  swiotlb-xen: use the same foreign page check everywhere
  swiotlb-xen: remove xen_swiotlb_dma_mmap and xen_swiotlb_dma_get_sgtable
  xen: remove the exports for xen_{create,destroy}_contiguous_region
  xen/arm: remove xen_dma_ops
  xen/arm: simplify dma_cache_maint
  xen/arm: use dev_is_dma_coherent
  xen/arm: consolidate page-coherent.h
  xen/arm: use dma-noncoherent.h calls for xen-swiotlb cache maintainance
  iommu/vt-d: Declare Broadwell igfx dmar support snafu
  iommu/vt-d: Add Scalable Mode fault information
  iommu/vt-d: Use bounce buffer for untrusted devices
  iommu/vt-d: Add trace events for device dma map/unmap
  iommu/vt-d: Don't switch off swiotlb if bounce page is used
  iommu/vt-d: Check whether device requires bounce buffer
  swiotlb: Split size parameter to map/unmap APIs
  regulator: core: Fix error return for /sys access
  regulator: da9211: fix obtaining "enable" GPIO
  regulator: max77686: fix obtaining "maxim,ena" GPIO
  ASoC: wcd9335: remove redundant use of ret variable
  gpio: aspeed: Add in ast2600 details to Aspeed driver
  gpio: aspeed: Use ngpio property from device tree if available
  gpio: aspeed: Setup irqchip dynamically
  gpio/aspeed: Fix incorrect number of banks
  gpio: aspeed: Update documentation with ast2600 controllers
  pinctrl: iproc-gpio: Handle interrupts for multiple instances
  pinctrl: iproc-gpio: Fix incorrect pinconf configurations
  dt-bindings: arm: Convert Realtek board/soc bindings to json-schema
  dt-bindings: arm: Convert Actions Semi bindings to jsonschema
  cfg80211: Purge frame registrations on iftype change
  net: stmmac: ARP Offload for GMAC4+ Cores
  net: stmmac: Add support for VLAN Insertion Offload in GMAC4+
  net: stmmac: Add support for SA Insertion/Replacement in GMAC4+
  net: stmmac: xgmac: Reinitialize correctly a variable
  net: stmmac: Add VLAN HASH filtering support in GMAC4+
  net: stmmac: Prevent divide-by-zero
  net: hns3: add some DFX info for reset issue
  net: hns3: check NULL pointer before use
  net: hns3: modify some logs format
  net: hns3: fix port setting handle for fibre port
  net: hns3: fix shaper parameter algorithm
  net: hns3: revert to old channel when setting new channel num fail
  net: hns3: add ethtool_ops.set_channels support for HNS3 VF driver
  mac80211_hwsim: Register support for HE meshpoint
  nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
  mac80211: allow drivers to set max MTU
  cfg80211: Do not compare with boolean in nl80211_common_reg_change_event
  mac80211: IBSS: send deauth when expiring inactive STAs
  mac80211: don't check if key is NULL in ieee80211_key_link()
  mac80211: clear crypto tx tailroom counter upon keys enable
  mac80211: remove unnecessary key condition
  mac80211: list features in WEP/TKIP disable in better order
  cfg80211: always shut down on HW rfkill
  mac80211: vht: add support VHT EXT NSS BW in parsing VHT
  cfg80211: fix boundary value in ieee80211_frequency_to_channel()
  scsi: hisi_sas: Fix the conflict between device gone and host reset
  scsi: hisi_sas: Add BIST support for phy loopback
  scsi: hisi_sas: Add hisi_sas_debugfs_alloc() to centralise allocation
  scsi: hisi_sas: Remove some unused function arguments
  scsi: hisi_sas: Remove redundant work declaration
  scsi: hisi_sas: Remove hisi_sas_hw.slot_complete
  scsi: hisi_sas: Assign NCQ tag for all NCQ commands
  scsi: hisi_sas: Update all the registers after suspend and resume
  scsi: hisi_sas: Retry 3 times TMF IO for SAS disks when init device
  scsi: hisi_sas: Remove sleep after issue phy reset if sas_smp_phy_control() fails
  scsi: hisi_sas: Directly return when running I_T_nexus reset if phy disabled
  scsi: hisi_sas: Use true/false as input parameter of sas_phy_reset()
  scsi: hisi_sas: add debugfs auto-trigger for internal abort time out
  scsi: virtio_scsi: unplug LUNs when events missed
  scsi: scsi_dh_rdac: zero cdb in send_mode_select()
  scsi: fcoe: fix null-ptr-deref Read in fc_release_transport
  gpio: Initialize the irqchip valid_mask with a callback
  Documentation/process: Volunteer as the ambassador for Intel
  misc: mic: Use PTR_ERR_OR_ZERO rather than its implementation
  netfilter: nft_{fwd,dup}_netdev: add offload support
  net/mlx5: FWTrace, Reduce stack usage
  net/mlx5: Fix addr's type in mlx5dr_icm_dm
  net/mlx5: Fix rt's type in dr_action_create_reformat_action
  netfilter: nft_synproxy: add synproxy stateful object support
  hwmon: (shtc1) add support for the SHTC3 sensor
  hwmon: (shtc1) fix shtc1 and shtw1 id mask
  iocost_monitor: Report debt
  iocost_monitor: Report more info with higher accuracy
  iocost_monitor: Always use strings for json values
  blk-iocost: Don't let merges push vtime into the future
  blk-iocost: Account force-charged overage in absolute vtime
  blk-iocost: Fix incorrect operation order during iocg free
  KVM: x86: Add kvm_emulate_{rd,wr}msr() to consolidate VXM/SVM code
  KVM: x86: Refactor up kvm_{g,s}et_msr() to simplify callers
  doc: kvm: Fix return description of KVM_SET_MSRS
  KVM: X86: Tune PLE Window tracepoint
  KVM: VMX: Change ple_window type to unsigned int
  KVM: X86: Remove tailing newline for tracepoints
  KVM: X86: Trace vcpu_id for vmexit
  Documentation: nfp: add nfp driver specific notes
  kdoc: fix nfp_fw_load documentation
  nfp: devlink: add 'reset_dev_on_drv_probe' support
  nfp: devlink: add 'fw_load_policy' support
  nfp: add devlink param infrastructure
  nfp: honor FW reset and loading policies
  nfp: nsp: add support for hwinfo set operation
  nfp: nsp: add support for optional hwinfo lookup
  nfp: nsp: add support for fw_loaded command
  devlink: add 'reset_dev_on_drv_probe' param
  devlink: extend 'fw_load_policy' values
  net: dsa: mv88e6xxx: add RXNFC support
  net: dsa: mv88e6xxx: introduce .port_set_policy
  net: dsa: mv88e6xxx: complete ATU state definitions
  io_uring: limit parallelism of buffered writes
  io_uring: add io_queue_async_work() helper
  waitid: Add support for waiting for the current process group
  export.h: remove defined(__KERNEL__), which is no longer needed
  KVM: x86: Manually calculate reserved bits when loading PDPTRS
  KVM: x86: Disable posted interrupts for non-standard IRQs delivery modes
  fuse: stop copying pages to fuse_req
  fuse: stop copying args to fuse_req
  fuse: clean up fuse_req
  fuse: simplify request allocation
  fuse: unexport request ops
  fuse: convert retrieve to simple api
  fuse: convert release to simple api
  cuse: convert init to simple api
  fuse: convert init to simple api
  fuse: convert writepages to simple api
  fuse: convert readdir to simple api
  fuse: convert readpages to simple api
  fuse: convert direct_io to simple api
  fuse: add simple background helper
  fuse: convert sync write to simple api
  fuse: covert readpage to simple api
  fuse: fuse_short_read(): don't take fuse_req as argument
  fuse: convert ioctl to simple api
  fuse: move page alloc
  fuse: convert readlink to simple api
  fuse: add pages to fuse_args
  fuse: convert destroy to simple api
  fuse: add nocreds to fuse_args
  fuse: convert fuse_force_forget() to simple api
  fuse: add noreply to fuse_args
  fuse: convert flush to simple api
  fuse: simplify 'nofail' request
  fuse: rearrange and resize fuse_args fields
  fuse: flatten 'struct fuse_args'
  fuse: fix deadlock with aio poll and fuse_iqueue::waitq.lock
  ARM: 8906/1: drivers/amba: add reset control to amba bus probe
  ARM: 8905/1: Emit __gnu_mcount_nc when using Clang 10.0.0 or newer
  ARM: 8904/1: skip nomap memblocks while finding the lowmem/highmem boundary
  io_uring: optimize submit_and_wait API
  ALSA: firewire-tascam: check intermediate state of clock status and retry
  ALSA: firewire-tascam: handle error code when getting current source of clock
  rtc: meson: mark PM functions as __maybe_unused
  rtc: sc27xx: Remove clearing SPRD_RTC_POWEROFF_ALM_FLAG flag
  libperf: Adopt perf_cpu_map__max() function
  libperf: Add missing event.h file to install rule
  perf tests: Add libperf automated test for 'make -C tools/perf build-test'
  perf python: Add missing python/perf.so dependency for libperf
  ath9k: release allocated buffer if timed out
  ath9k_htc: release allocated buffer if timed out
  nfsd: add support for upcall version 2
  nfsd: add a "GetVersion" upcall for nfsdcld
  ath9k: Remove unneeded variable to store return value
  nfsd: Reset the boot verifier on all write I/O errors
  nfsd: Don't garbage collect files that might contain write errors
  nfsd: Support the server resetting the boot verifier
  nfsd: nfsd_file cache entries should be per net namespace
  ath10k: add reorder and change PN check logic for mac80211
  ath10k: add mic bytes for pmf management packet
  kexec: Fix file verification on S390
  security: constify some arrays in lockdown LSM
  platform/x86: asus-wmi: Refactor charge threshold to use the battery hooking API
  PCI: hv: Use bytes 4 and 5 from instance ID as the PCI domain numbers
  posix-cpu-timers: Fix permission check regression
  gpiolib: acpi: make acpi_can_fallback_to_crs() static
  spi: bcm2835: Work around DONE bit erratum
  regulator: uniphier: Add Pro5 USB3 VBUS support
  dt-bindings: regulator: add regulator-fixed-clock binding
  regulator: fixed: add possibility to enable by clock
  regulator: s2mps11: Consistently use local variable
  usb-storage: export symbols in USB_STORAGE namespace
  usb-storage: remove single-use define for debugging
  docs: Add documentation for Symbol Namespaces
  scripts: Coccinelle script for namespace dependencies.
  modpost: add support for generating namespace dependencies
  export: allow definition default namespaces in Makefiles or sources
  module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
  modpost: add support for symbol namespaces
  module: add support for symbol namespaces.
  export: explicitly align struct kernel_symbol
  module: support reading multiple values per modinfo tag
  net/mlx4_en: ethtool: make array modes static const, makes object smaller
  objtool: Clobber user CFLAGS variable
  x86/umip: Add emulation (spoofing) for UMIP covered instructions in 64-bit processes as well
  io_uring: add support for link with drain
  io_uring: fix wrong sequence setting logic
  ARM: multi_v5_defconfig: make DaVinci part of the ARM v5 multiplatform build
  ARM: davinci: support multiplatform build for ARM v5
  ARM: exynos: Enable support for ARM architected timers
  ARM: samsung: Fix system restart on S3C6410
  i40e: Add support for X710 device
  igc: Add tx_csum offload functionality
  ixgbe: sync the first fragment unconditionally
  i40e: Remove EMPR traces from debugfs facility
  i40e: Implement debug macro hw_dbg using dev_dbg
  platform/x86: asus-wmi: Rename CHARGE_THRESHOLD to RSOC
  platform/x86: asus-wmi: Reorder ASUS_WMI_CHARGE_THRESHOLD
  i40e: fix hw_dbg usage in i40e_hmc_get_object_va
  igc: Remove unneeded PCI bus defines
  iavf: allow permanent MAC address to change
  igc: Add NVM checksum validation
  fm10k: use a local variable for the frag pointer
  Documentation: iavf: Update the Intel LAN driver doc for iavf
  igc: Remove useless forward declaration
  e1000e: Make speed detection on hotplugging cable more reliable
  ixgbevf: Link lost in VM on ixgbevf when restoring from freeze or suspend
  iavf: remove unused debug function iavf_debug_d
  clk: mediatek: Add MT6779 clock support
  clk: mediatek: Add dt-bindings for MT6779 clocks
  dt-bindings: mediatek: bindings for MT6779 clk
  clk: qcom: fix QCS404 TuringCC regmap
  kbuild: allow Clang to find unused static inline functions for W=1 build
  ASoC: hdmi-codec: Add an op to set callback function for plug event
  random: Use wait_event_freezable() in add_hwgenerator_randomness()
  crypto: ux500 - Fix COMPILE_TEST warnings
  crypto: x86/aes-ni - use AES library instead of single-use AES cipher
  crypto: cavium/zip - Add missing single_release()
  crypto: marvell - Use kzfree rather than its implementation
  crypto: caam - dispose of IRQ mapping only after IRQ is freed
  crypto: caam - check irq_of_parse_and_map for errors
  crypto: caam - use devres to unmap JR's registers
  btrfs: Relinquish CPUs in btrfs_compare_trees
  btrfs: Don't assign retval of btrfs_try_tree_write_lock/btrfs_tree_read_lock_atomic
  btrfs: create structure to encode checksum type and length
  btrfs: turn checksum type define into an enum
  btrfs: add enospc debug messages for ticket failure
  btrfs: do not account global reserve in can_overcommit
  btrfs: use btrfs_try_granting_tickets in update_global_rsv
  btrfs: always reserve our entire size for the global reserve
  btrfs: change the minimum global reserve size
  btrfs: rename btrfs_space_info_add_old_bytes
  btrfs: remove orig_bytes from reserve_ticket
  btrfs: fix may_commit_transaction to deal with no partial filling
  btrfs: rework wake_all_tickets
  btrfs: refactor the ticket wakeup code
  btrfs: stop partially refilling tickets when releasing space
  btrfs: add space reservation tracepoint for reserved bytes
  btrfs: roll tracepoint into btrfs_space_info_update helper
  btrfs: do not allow reservations if we have pending tickets
  btrfs: stop clearing EXTENT_DIRTY in inode I/O tree
  btrfs: treat RWF_{,D}SYNC writes as sync for CRCs
  btrfs: use correct count in btrfs_file_write_iter()
  btrfs: tie extent buffer and it's token together
  btrfs: assume valid token for btrfs_set/get_token helpers
  btrfs: define separate btrfs_set/get_XX helpers
  btrfs: Make btrfs_find_name_in_ext_backref return struct btrfs_inode_extref
  btrfs: Make btrfs_find_name_in_backref return btrfs_inode_ref struct
  btrfs: move dev_stats helpers to volumes.c
  btrfs: move struct io_ctl to free-space-cache.h
  btrfs: move functions for tree compare to send.c
  btrfs: rename and export read_node_slot
  btrfs: move private raid56 definitions from ctree.h
  btrfs: move math functions to misc.h
  btrfs: move cond_wake_up functions out of ctree
  btrfs: use proper error values on allocation failure in clone_fs_devices
  btrfs: proper error handling when invalid device is found in find_next_devid
  btrfs: fix allocation of free space cache v1 bitmap pages
  btrfs: Detect unbalanced tree with empty leaf before crashing btree operations
  btrfs: Deprecate BTRFS_SUBVOL_CREATE_ASYNC flag
  btrfs: improve error handling in run_delalloc_nocow
  btrfs: comment and minor simplifications in run_delalloc_nocow
  btrfs: streamline code in run_delalloc_nocow in case of inline extents
  btrfs: simplify extent type checks in run_delalloc_nocow
  btrfs: improve comments around nocow path
  btrfs: refactor variable scope in run_delalloc_nocow
  btrfs: only reserve metadata_size for inodes
  btrfs: rename the btrfs_calc_*_metadata_size helpers
  btrfs: tree-checker: Add EXTENT_DATA_REF check
  btrfs: tree-checker: Add simple keyed refs check
  btrfs: tree-checker: Add EXTENT_ITEM and METADATA_ITEM check
  btrfs: fix error pointer check in __btrfs_map_block()
  btrfs: dev stat drop useless goto
  btrfs: dev stats item key conversion per cpu type is not needed
  btrfs: Make reada_tree_block_flagged private
  btrfs: compression: replace set_level callbacks by a common helper
  btrfs: define compression levels statically
  Btrfs: fix use-after-free when using the tree modification log
  btrfs: replace: BTRFS_DEV_REPLACE_ITEM_STATE_x defines should go
  btrfs: introduce an evict flushing state
  btrfs: refactor priority_reclaim_metadata_space
  btrfs: factor out the ticket flush handling
  btrfs: unify error handling for ticket flushing
  btrfs: add a flush step for delayed iputs
  btrfs: unexport the temporary exported functions
  btrfs: migrate the block group cleanup code
  btrfs: migrate the alloc_profile helpers
  btrfs: migrate the chunk allocation code
  btrfs: migrate the block group space accounting helpers
  btrfs: export block group accounting helpers
  btrfs: migrate the dirty bg writeout code
  btrfs: migrate inc/dec_block_group_ro code
  btrfs: temporarily export btrfs_get_restripe_target
  btrfs: migrate the block group read/creation code
  btrfs: migrate the block group removal code
  btrfs: temporarily export inc_block_group_ro
  btrfs: migrate the block group caching code
  btrfs: sysfs: move helper macros to sysfs.c
  btrfs: sysfs: move type conversion helpers to sysfs.c
  btrfs: cleanup kobject.h includes
  btrfs: factor out sysfs code for updating sprout fsid
  btrfs: factor out sysfs code for deleting block group and space infos
  btrfs: factor out sysfs code for sending device uevent
  btrfs: sysfs: replace direct access to feature set names with a helper
  btrfs: sysfs: unexport space_info_ktype
  btrfs: factor out sysfs code for creating space infos
  btrfs: sysfs: unexport btrfs_raid_ktype
  btrfs: factor sysfs code out of link_block_group
  btrfs: move sysfs declarations out of ctree.h
  btrfs: opencode reset of all device stats
  btrfs: reset device stat using btrfs_dev_stat_set
  btrfs: qgroup: Try our best to delete qgroup relations
  btrfs: clarify btrfs_ioctl_get_dev_stats padding
  Btrfs: make test_find_first_clear_extent_bit fail on incorrect results
  Btrfs: fix memory leaks in the test test_find_first_clear_extent_bit
  btrfs: delete debugfs code
  btrfs: sysfs: add debugging exports
  btrfs: make caching_thread use btrfs_find_next_key
  btrfs: temporarily export fragment_free_space
  btrfs: export the caching control helpers
  btrfs: export the excluded extents helpers
  btrfs: export the block group caching helpers
  btrfs: migrate nocow and reservation helpers
  btrfs: migrate the block group ref counting stuff
  btrfs: migrate the block group lookup code
  btrfs: move basic block_group definitions to their own header
  btrfs: move btrfs_add_free_space out of a header file
  btrfs: tree-log: use symbolic name for first replay stage
  btrfs: async-thread: convert defines to enums
  btrfs: tree-log: convert defines to enums
  btrfs: remove unused key type set/get helpers
  btrfs: remove unused btrfs_device::flush_bio_sent
  Btrfs: remove unnecessary condition in btrfs_clone() to avoid too much nesting
  btrfs: Refactor btrfs_calc_avail_data_space
  btrfs: Remove unnecessary check from join_running_log_trans
  Btrfs: wake up inode cache waiters sooner to reduce waiting time
  Btrfs: fix inode cache waiters hanging on path allocation failure
  Btrfs: fix inode cache waiters hanging on failure to start caching thread
  Btrfs: fix inode cache block reserve leak on failure to allocate data space
  Btrfs: fix hang when loading existing inode cache off disk
  btrfs: tree-checker: Add ROOT_ITEM check
  btrfs: extent-tree: Make sure we only allocate extents from block groups with the same type
  btrfs: delayed-inode: Kill the BUG_ON() in btrfs_delete_delayed_dir_index()
  btrfs: volumes: Remove ENOSPC-prone btrfs_can_relocate()
  btrfs: extent-tree: Add comment for inc_block_group_ro()
  btrfs: volumes: Add comment for find_free_dev_extent_start()
  btrfs: volumes: Unexport find_free_dev_extent_start()
  btrfs: assert tree mod log lock in __tree_mod_log_insert
  btrfs: assert extent map tree lock in add_extent_mapping
  btrfs: Add an assertion to warn incorrect case in insert_inline_extent()
  btrfs: Remove leftover of in-band dedupe
  btrfs: Remove delalloc_end argument from extent_clear_unlock_delalloc
  btrfs: Move free_pages_out label in inline extent handling branch in compress_file_range
  btrfs: Return number of compressed extents directly in compress_file_range
  btrfs: use common vfs LABEL ioctl definitions
  btrfs: Remove unused locking functions
  btrfs: reduce stack usage for btrfsic_process_written_block
  btrfs: remove set but not used variable 'offset'
  Btrfs: fix ENOSPC errors, leading to transaction aborts, when cloning extents
  Btrfs: factor out extent dropping code from hole punch handler
  regulator: lp87565: Simplify lp87565_buck_set_ramp_delay
  ASoC: rt5677: keep analog power register at SND_SOC_BIAS_OFF
  f2fs: Fix indefinite loop in f2fs_gc()
  clk: qcom: clk-rpmh: Add support for SM8150
  dt-bindings: clock: Document SM8150 rpmh-clock compatible
  clk: qcom: clk-rpmh: Convert to parent data scheme
  dt-bindings: clock: Document the parent clocks
  clk: qcom: gcc: Use floor ops for SDCC clocks
  clk: qcom: gcc-qcs404: Use floor ops for sdcc clks
  clk: qcom: gcc-sdm845: Use floor ops for sdcc clks
  KVM: arm/arm64: vgic: Allow more than 256 vcpus for KVM_IRQ_LINE
  tools/power/x86/intel-speed-select: Display core count for bucket
  platform/x86: ISST: Allow additional TRL MSRs
  pinctrl: intel: mark intel_pin_to_gpio __maybe_unused
  spi-gpio: Use PTR_ERR_OR_ZERO() in spi_gpio_request()
  ASoC: rt5677: Remove magic number register writes
  ASoC: soc-core: self contained soc_unbind_aux_dev()
  ASoC: soc-core: add soc_unbind_aux_dev()
  ASoC: soc-core: self contained soc_bind_aux_dev()
  ASoC: soc-core: move soc_probe_link_dais() next to soc_remove_link_dais()
  ASoC: soc-core: self contained soc_probe_link_dais()
  ASoC: soc-core: add new soc_link_init()
  ASoC: soc-core: move soc_probe_dai() next to soc_remove_dai()
  ASoC: soc-core: self contained soc_remove_link_dais()
  ASoC: soc-core: self contained soc_remove_link_components()
  ASoC: soc-core: self contained soc_probe_link_components()
  regulator: slg51000: use devm_gpiod_get_optional() in probe
  regulator: lp8788-ldo: make array en_mask static const, makes object smaller
  ASoC: rt1308: make array pd static const, makes object smaller
  ASoC: rt1305: make array pd static const, makes object smaller
  ASoC: rt1011: make array pd static const, makes object smaller
  SoC: simple-card-utils: set 0Hz to sysclk when shutdown
  ASoC: rockchip: ignore 0Hz sysclk
  ASoC: codecs: ad193x: make two arrays static const, makes object smaller
  ASoC: es8316: support fixed and variable both clock rates
  ASoC: es8316: fix redundant codes of clock
  ASoC: ams-delta: Take control over audio mute GPIO pins
  ASoC: dmaengine: Make the pcm->name equal to pcm->id if the name is not set
  crypto: caam - make sure clocks are enabled first
  crypto: arm/aes-ce - implement ciphertext stealing for CBC
  crypto: arm/aes-neonbs - implement ciphertext stealing for XTS
  crypto: arm/aes-ce - implement ciphertext stealing for XTS
  crypto: arm64/aes-neonbs - implement ciphertext stealing for XTS
  crypto: arm64/aes - implement support for XTS ciphertext stealing
  crypto: arm64/aes-cts-cbc - move request context data to the stack
  crypto: arm64/aes-cts-cbc-ce - performance tweak
  crypto: skcipher - add the ability to abort a skcipher walk
  crypto: arm64/aes-neon - limit exposed routines if faster driver is enabled
  crypto: arm64/aes-neonbs - replace tweak mask literal with composition
  crypto: arm/aes-neonbs - replace tweak mask literal with composition
  crypto: arm/aes-ce - replace tweak mask literal with composition
  crypto: arm/aes-ce - switch to 4x interleave
  crypto: arm/aes-ce - yield the SIMD unit between scatterwalk steps
  crypto: arm/aes - fix round key prototypes
  crypto: skcipher - Unmap pages after an external error
  crypto: arm64/aes - Use PTR_ERR_OR_ZERO rather than its implementation.
  m68k: coldfire: Include the GPIO driver header
  netfilter: nf_tables_offload: move indirect flow_block callback logic to core
  netfilter: nf_tables_offload: avoid excessive stack usage
  netfilter: nf_tables: Fix an Oops in nf_tables_updobj() error handling
  parisc: Disable HP HSC-PCI Cards to prevent kernel crash
  parisc: add support for kexec_file_load() syscall
  parisc: wire up kexec_file_load syscall
  parisc: add kexec syscall support
  parisc: add __pdc_cpu_rendezvous()
  dt-bindings: PCI: tegra: Add PCIe slot supplies regulator entries
  dt-bindings: PCI: tegra: Add sideband pins configuration entries
  PCI: tegra: Add Tegra194 PCIe support
  ALSA: lx6464es - add support for LX6464ESe pci express variant
  scsi: ufs-hisi: use devm_platform_ioremap_resource() to simplify code
  scsi: ufshcd: use devm_platform_ioremap_resource() to simplify code
  scsi: hisi_sas: use devm_platform_ioremap_resource() to simplify code
  scsi: ufs: Use kmemdup in ufshcd_read_string_desc()
  scsi: arm64: dts: qcom: sdm845: Specify UFS device-reset GPIO
  scsi: ufs-qcom: Implement device_reset vops
  scsi: ufs: Introduce vops for resetting device
  scsi: lpfc: Fix reset recovery paths that are not recovering
  scsi: lpfc: Convert existing %pf users to %ps
  ARM: dts: mmp2: add OLPC XO 1.75 machine
  ARM: dts: mmp2: rename the USB PHY node
  ARM: dts: mmp2: specify reg-shift for the UARTs
  ARM: dts: mmp2: add camera interfaces
  ARM: dts: mmp2: fix the SPI nodes
  ARM: dts: mmp2: trivial whitespace fix
  scsi: qla2xxx: Update driver version to 10.01.00.19-k
  scsi: qla2xxx: Fix stale session
  scsi: qla2xxx: Fix stuck login session
  scsi: qla2xxx: Fix driver reload for ISP82xx
  scsi: qla2xxx: Fix flash read for Qlogic ISPs
  scsi: qla2xxx: Fix message indicating vectors used by driver
  scsi: sd: Improve unaligned completion resid message
  scsi: fnic: fix msix interrupt allocation
  tools/power/x86/intel-speed-select: Fix memory leak
  tools/power/x86/intel-speed-select: Output success/failed for command output
  tools/power/x86/intel-speed-select: Output human readable CPU list
  tools/power/x86/intel-speed-select: Change turbo ratio output to maximum turbo frequency
  tools/power/x86/intel-speed-select: Switch output to MHz
  tools/power/x86/intel-speed-select: Simplify output for turbo-freq and base-freq
  tools/power/x86/intel-speed-select: Fix cpu-count output
  tools/power/x86/intel-speed-select: Fix help option typo
  tools/power/x86/intel-speed-select: Fix package typo
  tools/power/x86/intel-speed-select: Fix a read overflow in isst_set_tdp_level_msr()
  platform/x86: intel_int0002_vgpio: Use device_init_wakeup
  platform/x86: intel_int0002_vgpio: Fix wakeups not working on Cherry Trail
  platform/x86: compal-laptop: Initialize "value" in ec_read_u8()
  platform/x86: touchscreen_dmi: Add info for the Trekstor Primebook C11B 2-in-1
  platform/x86: thinkpad_acpi: Add ThinkPad PrivacyGuard
  platform/x86: pmc_atom: Add Siemens SIMATIC IPC227E to critclk_systems DMI table
  platform/x86: intel_pmc_core_pltdrv: Module removal warning fix
  platform/x86: intel_pmc_core: Do not ioremap RAM
  platform/x86: asus-wmi: Fix condition in charge_threshold_store()
  net/tls: align non temporal copy to cache lines
  net/tls: remove the record tail optimization
  net/tls: use RCU for the adder to the offload record list
  net/tls: unref frags in order
  net: hns3: make array spec_opcode static const, makes object smaller
  be2net: make two arrays static const, makes object smaller
  ionic: Remove unused including <linux/version.h>
  net: stmmac: Limit max speeds of XGMAC if asked to
  net: stmmac: selftests: Add Split Header test
  net: stmmac: dwmac4: Enable RX Jumbo frame support
  net: stmmac: selftests: Set RX tail pointer in Flow Control test
  net: stmmac: selftests: Add missing checks for support of SA
  ext4: add missing bigalloc documentation.
  ipmr: remove hard code cache_resolve_queue_len limit
  hv_netvsc: Sync offloading features to VF NIC
  hv_netvsc: Allow scatter-gather feature to be tunable
  tcp: ulp: fix possible crash in tcp_diag_get_aux_size()
  net: fib_notifier: move fib_notifier_ops from struct net into per-net struct
  ethernet: micrel: Use DIV_ROUND_CLOSEST directly to make it readable
  PCI: Get rid of dev->has_secondary_link flag
  PCI: Make pcie_downstream_port() available outside of access.c
  libnvdimm: Enable unit test infrastructure compile checks
  mm, notifier: Catch sleeping/blocking for !blockable
  kernel.h: Add non_block_start/end()
  drm/radeon: guard against calling an unpaired radeon_mn_unregister()
  csky: add missing brackets in a macro for tlb.h
  pagewalk: use lockdep_assert_held for locking validation
  pagewalk: separate function pointers from iterator data
  mm: split out a new pagewalk.h header from mm.h
  mm/mmu_notifiers: annotate with might_sleep()
  mm/mmu_notifiers: prime lockdep
  mm/mmu_notifiers: add a lockdep map for invalidate_range_start/end
  ALSA: firewire-lib: remove WARN_ON() at destruction of AMDTP domain
  EDAC/amd64: Add PCI device IDs for family 17h, model 70h
  f2fs: convert inline_data in prior to i_size_write
  f2fs: fix error path of f2fs_convert_inline_page()
  f2fs: add missing documents of reserve_root/resuid/resgid
  f2fs: fix flushing node pages when checkpoint is disabled
  f2fs: enhance f2fs_is_checkpoint_ready()'s readability
  f2fs: clean up __bio_alloc()'s parameter
  f2fs: fix wrong error injection path in inc_valid_block_count()
  f2fs: fix to writeout dirty inode during node flush
  f2fs: optimize case-insensitive lookups
  clk: Add support for AST2600 SoC
  clk: aspeed: Move structures to header
  kprobes/parisc: remove arch_kprobe_on_func_entry()
  kexec_elf: support 32 bit ELF files
  kexec_elf: remove unused variable in kexec_elf_load()
  kexec_elf: remove Elf_Rel macro
  kexec_elf: remove PURGATORY_STACK_SIZE
  kexec_elf: remove parsing of section headers
  kexec_elf: change order of elf_*_to_cpu() functions
  kexec: add KEXEC_ELF
  clk/ti: Use kmemdup rather than duplicating its implementation
  gfs2: Improve mmap write vs. truncate consistency
  bfq: Add per-device weight
  bfq: Extract bfq_group_set_weight from bfq_io_set_weight_legacy
  bfq: Fix the missing barrier in __bfq_entity_update_weight_prio
  bus: ti-sysc: Remove unpaired sysc_clkdm_deny_idle()
  vfs: subtype handling moved to fuse
  fuse: convert to use the new mount API
  Drivers: hv: vmbus: Resume after fixing up old primary channels
  Drivers: hv: vmbus: Suspend after cleaning up hv_sock and sub channels
  Drivers: hv: vmbus: Clean up hv_sock channels by force upon suspend
  Drivers: hv: vmbus: Suspend/resume the vmbus itself for hibernation
  Drivers: hv: vmbus: Ignore the offers when resuming from hibernation
  Drivers: hv: vmbus: Implement suspend/resume for VSC drivers for hibernation
  Drivers: hv: vmbus: Add a helper function is_sub_channel()
  Drivers: hv: vmbus: Suspend/resume the synic for hibernation
  Drivers: hv: vmbus: Break out synic enable and disable operations
  clk: clk-cdce925: Add regulator support
  dt-bindings: clock: cdce925: Add regulator documentation
  clk: fix devm_platform_ioremap_resource.cocci warnings
  clk: spear: Make structure i2s_sclk_masks constant
  clk: st: clkgen-pll: remove unused variable 'st_pll3200c32_407_a0'
  clk: st: clkgen-fsyn: remove unused variable 'st_quadfs_fs660c32_ops'
  kcm: use BPF_PROG_RUN
  selftests/bpf: test_progs: convert test_tcp_rtt
  selftests/bpf: test_progs: convert test_sockopt_inherit
  selftests/bpf: test_progs: convert test_sockopt_multi
  selftests/bpf: test_progs: convert test_sockopt_sk
  selftests/bpf: test_progs: convert test_sockopt
  selftests/bpf: test_progs: add test__join_cgroup helper
  drm/i915: Use NOEVICT for first pass on attemping to pin a GGTT mmap
  drm/i915: to make vgpu ppgtt notificaiton as atomic operation
  drm/i915: Flush the existing fence before GGTT read/write
  drm/i915: Hold irq-off for the entire fake lock period
  kbuild: replace BASH-specific ${@:2} with shift and ${@}
  ARM: dts: logicpd-som-lv: Fix i2c2 and i2c3 Pin mux
  io_uring: expose single mmap capability
  staging: rtl8723bs: hal: remove redundant variable n
  staging: pi433: Fix typo in documentation
  staging: exfat: stop using 32-bit time_t
  staging: exfat: stopusing CONFIG_FAT_DEFAULT_IOCHARSET
  ARM: 8903/1: ensure that usable memory in bank 0 starts from a PMD-aligned address
  ARM: dts: am3517-evm: Fix missing video
  ARM: dts: logicpd-torpedo-baseboard: Fix missing video
  ARM: omap2plus_defconfig: Fix missing video
  iommu/omap: Mark pm functions __maybe_unused
  MIPS: ralink: deactivate PCI support for SOC_MT7621
  docs: mtd: Update spi nor reference driver
  lan743x: remove redundant assignment to variable rx_process_result
  kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
  kbuild: refactor scripts/Makefile.extrawarn
  ravb: TROCR register is only present on R-Car Gen3
  ravb: remove undocumented endianness selection
  ravb: remove undocumented counter processing
  ravb: correct typo in FBP field of SFO register
  doc: arm64: fix grammar dtb placed in no attributes region
  Documentation: sysrq: don't recommend 'S' 'U' before 'B'
  mailmap: Update email address for Quentin Perret
  dt-bindings: Correct spelling in example schema
  ABI: Update dev-kmsg documentation to match current kernel behaviour
  zd1211rw: use %*ph to print small buffer
  brcmfmac: use %*ph to print small buffer
  hostap: use %*ph to print small buffer
  rtlwifi: Fix file release memory leak
  rtw88: fix seq_file memory leak
  hostap: remove set but not used variable 'copied' in prism2_io_debug_proc_read
  brcmfmac: add "reset" debugfs entry for testing reset
  brcmfmac: add stub version of brcmf_debugfs_get_devdir()
  Bluetooth: hidp: Fix assumptions on the return value of hidp_send_message
  dt-bindings: cpu: Add a support cpu type for cortex-a55
  swiotlb-xen: Convert to use macro
  net: hns3: make hclge_dbg_get_m7_stats_info static
  net: hns3: disable loopback setting in hclge_mac_init
  net: hns3: remove explicit conversion to bool
  net: hns3: add client node validity judgment
  net: hns3: fix mis-assignment to hdev->reset_level in hclge_reset
  net: hns3: fix double free bug when setting ringparam
  net: hns3: fix error VF index when setting VLAN offload
  stmmac: platform: adjust messages and move to dev level
  net: phy: Do not check Link status when loopback is enabled
  block: fix elevator_get_by_features()
  net_sched: act_police: add 2 new attributes to support police 64bit rate and peakrate
  ALSA: firewire-tascam: add note for FE-8
  net: openvswitch: Set OvS recirc_id from tc chain index
  nfp: Drop unnecessary continue in nfp_net_pf_alloc_vnics
  iwlwifi: dbg: remove iwl_fw_cancel_dumps function
  iwlwifi: dbg_ini: remove periodic trigger
  iwlwifi: dbg_ini: fix dump structs doc
  iwlwifi: fw api: add DRAM buffer allocation command
  iwlwifi: dbg_ini: remove apply point, switch to time point API
  iwlwifi: add iwl_tlv_array_len()
  iwlwifi: mvm: don't log un-decrypted frames
  iwlwifi: mvm: add support for single antenna diversity
  iwlwifi: mvm: handle BAR_FRAME_RELEASE (0xc2) notification
  iwlwifi: mvm: drop BA sessions on too many old-SN frames
  iwlwifi: add sta_id to WOWLAN_CONFIG_CMD
  iwlwifi: add support for suspend-resume flow for new device generation
  iwlwifi: fix warning iwl-trans.h is included more than once
  iwlwifi: always access the trans configuration via trans
  iwlwifi: pass the iwl_trans instead of cfg to some functions
  iwlwifi: add a pointer to the trans_cfg directly in trans
  iwlwifi: pass the iwl_config_trans_params when needed
  iwlwifi: pcie: set iwl_trans->cfg later in the probe function
  iwlwifi: pcie: move some cfg mangling from trans_pcie_alloc to probe
  iwlwifi: pcie: use the cfg we passed to iwl_trans_pcie_alloc()
  iwlwifi: separate elements from cfg that are needed by trans_alloc
  iwlwifi: dbg_ini: use regions ops array instead of switch case in dump flow
  iwlwifi: dbg_ini: make a single ops struct for paging collect
  iwlwifi: dbg_ini: move tx fifo data into fw runtime
  iwlwifi: dbg_ini: use linked list for dump TLVs during dump creation
  iwlwifi: dbg_ini: separate cfg and dump flows to different modules
  iwlwifi: mvm: look for the first supported channel when add/remove phy ctxt
  iwlwifi: allocate bigger nvm data in case of UHB
  iwlwifi: remove unnecessary IWL_DEVICE_AX200_COMMON definition
  iwlwifi: dbg: align wrt log prints to the same format
  iwlwifi: dbg_ini: remove debug flow TLV
  iwlwifi: dbg_ini: verify debug TLVs at allocation phase
  iwlwifi: dbg_ini: use function to check if ini dbg mode is on
  iwlwifi: remove duplicate FW string definitions
  iwlwifi: bump FW API to 50 for 22000 series
  iwlwifi: api: fix FTM struct documentation
  iwlwifi: support per-platform antenna gain
  iwlwifi: mvm: remove check for lq_sta in __iwl_mvm_rs_tx_status()
  iwlwifi: mvm: simplify the channel switch flow for newer firmware
  iwlwifi: stop passing bogus gfp flags arguments to dma_alloc_coherent
  iwlwifi: dbg_ini: remove periphery phy and aux regions handling
  iwlwifi: dbg_ini: use linked list to store debug TLVs
  iwlwifi: dbg_ini: maintain buffer allocations from trans instead of TLVs buffer
  iwlwifi: dbg: add debug periphery registers to 9000 device family
  iwlwifi: remove unused regdb_ptrs allocation
  iwlwifi: dbg_ini: align dbg tlv functions names to a single format
  iwlwifi: scan: don't pass large argument by value
  iwlwifi: remove pm_runtime completely
  iwlwifi: remove the d0i3 related module parameters
  iwlwifi: pcie: remove some more d0i3 code from the transport
  iwlwifi: pcie: remove the refs / unrefs from the transport
  iwlwifi: remove the opmode's d0i3 handlers
  iwlwifi: remove runtime_pm_mode
  iwlwifi: Set w-pointer upon resume according to SN
  iwlwifi: mvm: use FW thermal monitoring regardless of CONFIG_THERMAL
  iwlwifi: mvm: name magic numbers with enum
  iwlwifi: scan: add support for new scan request command version
  iwlwifi: LTR updates
  iwlwifi: remove the code under IWLWIFI_PCIE_RTPM
  iwlwifi: trans: remove suspending flag
  iwlwifi: remove CMD_HIGH_PRIO
  iwlwifi: mvm: remove last leftovers of d0i3
  iwlwifi: mvm: remove iwl_mvm_update_d0i3_power_mode
  iwlwifi: mvm: remove d0i3_ap_sta_id
  iwlwifi: mvm: iwl_mvm_wowlan_config_key_params is for wowlan only
  iwlwifi: mvm: remove the d0i3 entry/exit flow
  iwlwifi: mvm: remove the tx defer for d0i3
  iwlwifi: remove all the d0i3 references
  iwlwifi: mvm: start to remove the code for d0i3
  iwlwifi: mvm: add the skb length to a print
  iwlwifi: mvm: fix scan config command size
  iwlwifi: add ldbg config cmd debug print
  iwlwifi: dbg: support debug recording suspend resume command
  iwlwifi: dbg: move debug recording stop from trans to op mode
  iwlwifi: dbg: move monitor recording functionality from header file
  iwlwifi: mvm: remove unnecessary forward declarations
  iwlwifi: mvm: Block 26-tone RU OFDMA transmissions
  iwlwifi: mvm: remove redundant condition in iwl_mvm_set_hw_rfkill_state
  iwlwifi: Send DQA enable command only if TVL is on
  iwlwifi: bump FW API to 49 for 22000 series
  PM: runtime: Documentation: add runtime_status ABI document
  Add Acer Aspire Ethos 8951G model quirk
  gpio: Fix further merge errors
  x86/asm: Make some functions local labels
  x86/asm/suspend: Get rid of bogus_64_magic
  coccinelle: platform_get_irq: Fix parse error
  iio: hid-sensor-attributes: Fix divisions for 32-bit platforms
  drm/i915/gvt: update RING_START reg of vGPU when the context is submitted to i915
  drm/i915/gvt: update vgpu workload head pointer correctly
  x86/platform/uv: Fix kmalloc() NULL check routine
  x86/cpu: Update init data for new Airmont CPU model
  x86/cpu: Add new Airmont variant to Intel family
  x86/cpu: Add Elkhart Lake to Intel family
  x86/cpu: Add Tiger Lake to Intel family
  xfs: push the grant head when the log head moves forward
  xfs: push iclog state cleaning into xlog_state_clean_log
  xfs: factor iclog state processing out of xlog_state_do_callback()
  xfs: factor callbacks out of xlog_state_do_callback()
  xfs: factor debug code out of xlog_state_do_callback()
  xfs: prevent CIL push holdoff in log recovery
  xfs: fix missed wakeup on l_flush_wait
  xfs: push the AIL in xlog_grant_head_wake
  xfs: Use WARN_ON_ONCE for bailout mount-operation
  sd: Set ELEVATOR_F_ZBD_SEQ_WRITE for ZBC disks
  block: Set ELEVATOR_F_ZBD_SEQ_WRITE for nullblk zoned disks
  block: Delay default elevator initialization
  block: Improve default elevator selection
  block: Introduce elevator features
  block: Change elevator_init_mq() to always succeed
  block: Cleanup elevator_init_mq() use
  Input: sidewinder - make array seq static const, makes object smaller
  Input: reset device timestamp on sync
  libnvdimm: Use PAGE_SIZE instead of SZ_4K for align check
  libnvdimm/label: Remove the dpa align check
  libnvdimm/pfn_dev: Add page size and struct page size to pfn superblock
  libnvdimm/pfn_dev: Add a build check to make sure we notice when struct page size change
  libnvdimm/pmem: Advance namespace seed for specific probe errors
  libnvdimm/region: Rewrite _probe_success() to _advance_seeds()
  PCI: Add ACS quirk for iProc PAXB
  parisc: Save some bytes in dino driver
  PCI: Force trailing new line to resource_alignment_param in sysfs
  PCI: Move pci_[get|set]_resource_alignment_param() into their callers
  net/mlx5e: Add port buffer's congestion counters
  net/mlx5: Expose HW capability bits for port buffer per priority congestion counters
  net/mlx5: DR, Remove redundant dev_name print from err log
  net/mlx5: DR, Fix error return code in dr_domain_init_resources()
  net/mlx5: DR, Remove useless set memory to zero use memset()
  net/mlx5e: Remove unnecessary clear_bit()s
  net/mlx5e: kTLS, Remove unused function parameter
  net/mlx5: Use PTR_ERR_OR_ZERO rather than its implementation
  net/mlx5: fix missing assignment of variable err
  net/mlx5: fix spelling mistake "offlaods" -> "offloads"
  net/mlx5e: Remove leftover declaration
  net/mlx5e: Use ipv6_stub to avoid dependency with ipv6 being a module
  net/mlx5: Kconfig: Fix MLX5_CORE dependency with PCI_HYPERV_INTERFACE
  net/mlx5e: Fix static checker warning of potential pointer math issue
  PCI: pciehp: Refer to "Indicators" instead of "LEDs" in comments
  PCI: pciehp: Remove pciehp_green_led_{on,off,blink}()
  PCI: pciehp: Remove pciehp_set_attention_status()
  PCI: pciehp: Combine adjacent indicator updates
  PCI: pciehp: Add pciehp_set_indicators() to set both indicators
  i2c: uniphier(-f): remove all dev_dbg()
  i2c: uniphier(-f): use devm_platform_ioremap_resource()
  led: triggers: Fix dereferencing of null pointer
  i2c: slave-eeprom: Add comment about address handling
  bus: ti-sysc: Fix handling of invalid clocks
  alarmtimer: Use EOPNOTSUPP instead of ENOTSUPP
  lightnvm: print error when target is not found
  lightnvm: introduce pr_fmt for the prefix nvm
  posix-cpu-timers: Always clear head pointer on dequeue
  clk: Document of_parse_clkspec() some more
  make shmem_fill_super() static
  make ramfs_fill_super() static
  devtmpfs: don't mix {ramfs,shmem}_fill_super() with mount_single()
  vfs: Convert squashfs to use the new mount API
  mtd: Kill mount_mtd()
  vfs: Convert jffs2 to use the new mount API
  vfs: Convert cramfs to use the new mount API
  vfs: Convert romfs to use the new mount API
  mtd: Provide fs_context-aware mount_mtd() replacement
  vfs: Add a single-or-reconfig keying to vfs_get_super()
  vfs: Create fs_context-aware mount_bdev() replacement
  new helper: get_tree_keyed()
  vfs: set fs_context::user_ns for reconfigure
  PCI: Clean up resource_alignment parameter to not require static buffer
  PCI: Use static const struct, not const static struct
  PCI: Add pci_info_ratelimited() to ratelimit PCI separately
  PCI/IOV: Remove group write permission from sriov_numvfs, sriov_drivers_autoprobe
  erofs: use read_cache_page_gfp for erofs_get_meta_page
  erofs: always use iget5_locked
  erofs: use read_mapping_page instead of sb_bread
  erofs: rename errln/infoln/debugln to erofs_{err, info, dbg}
  erofs: save one level of indentation
  erofs: kill use_vmap module parameter
  erofs: kill all erofs specific fault injection
  erofs: add "erofs_" prefix for common and short functions
  erofs: kill __submit_bio()
  erofs: kill prio and nofail of erofs_get_meta_page()
  erofs: localize erofs_grab_bio()
  erofs: kill verbose debug info in erofs_fill_super
  erofs: use dsb instead of layout for ondisk super_block
  erofs: better erofs symlink stuffs
  erofs: update comments in inode.c
  erofs: update erofs_fs.h comments
  erofs: use erofs_inode naming
  erofs: kill erofs_{init,exit}_inode_cache
  erofs: better naming for erofs inode related stuffs
  erofs: use feature_incompat rather than requirements
  erofs: update erofs_inode_is_data_compressed helper
  erofs: kill __packed for on-disk structures
  erofs: some macros are much more readable as a function
  erofs: on-disk format should have explicitly assigned numbers
  erofs: remove all the byte offset comments
  regulator: tps65132: Stop parsing DT when gpio is not found
  ALSA: hda/hdmi: remove redundant assignment to variable pcm_idx
  dm writecache: skip writecache_wait for pmem mode
  spi: Use an abbreviated pointer to ctlr->cur_msg in __spi_pump_messages
  spi: npcm-fiu: remove set but not used variable 'retlen'
  ASoC: SOF: imx8: Fix COMPILE_TEST error
  ASoC: meson: tdmout: add sm1 support
  ASoC: meson: axg-toddr: add sm1 support
  ASoC: meson: axg-frddr: add sm1 support
  ASoC: meson: tdmin: expose all 16 inputs
  ASoC: meson: axg-toddr: expose all 8 inputs
  ASoC: meson: axg-frddr: expose all 8 outputs
  ASoC: meson: add reset binding
  ASoC: meson: add sm1 compatibles
  ASoC: qcom: common: Include link-name in error messages
  mt76: mt7615: add support to read temperature from mcu
  mt76: mt7615: introduce mt7615_txwi_to_txp utility routine
  mt76: mt7603: use devm_platform_ioremap_resource() to simplify code
  mt76: mt76x0: remove unneeded return value on set channel
  mt76: mt76x0: remove redundant chandef copy
  mt76: make mt76_rx_convert static
  bus: uniphier-system-bus: use devm_platform_ioremap_resource()
  arm64: dts: qcom: Add Lenovo Yoga C630
  mt76: remove offchannel check in tx scheduling
  mt76: do not send BAR frame on tx aggregation flush stop
  mt76: stop rx aggregation on station removal
  mt76: dma: reset q->rx_head on rx reset
  mt76: mt7615: apply calibration-free data from OTP
  mt76: add default implementation for mt76_sw_scan/mt76_sw_scan_complete
  mt76: fix some checkpatch warnings
  mt76: mt7615: add BIP_CMAC_128 cipher support
  mt76: mt7603: remove unnecessary mcu queue initialization
  mt76: move mt76_tx_tasklet in mt76 module
  mt76: mt7615: enable survey support
  mt76: mt7603: move survey_time in mt76_dev
  mt76: mt76x02u: enable survey support
  mt76: mt76x02u: enable multi-vif support
  mt76: mt76x02: do not copy beacon skb in mt76x02_mac_set_beacon_enable
  mt76: mt76x02: introduce mt76x02_pre_tbtt_enable and mt76x02_beacon_enable macros
  mt76: mt7615: add Smart Carrier Sense support
  mt76: mt7615: rework locking scheme for mt7615_set_channel
  mt76: switch to SPDX tag instead of verbose boilerplate text
  mt76: mt76x02: fix some checkpatch warnings
  mt76: mt7615: fix some checkpatch warnings
  mt76: mt7603: fix some checkpatch warnings
  mt76: Add paragraphs to describe the config symbols fully
  mt76: mt7615: update cw_min/max related settings
  mt76: mt7615: add 4 WMM sets support
  mt76: mt7603: fix watchdog rescheduling in mt7603_set_channel
  mt76: mt7615: fix MT7615_WATCHDOG_TIME definition
  mt76: introduce mt76_mmio_read_copy routine
  mt76: mt7615: add set_key_cmd and mt76_wcid to mt7615_mac_wtbl_set_key signature
  mt76: mt7615: remove wtbl_sec_key definition
  mt76: mt7615: introduce mt7615_mac_wtbl_set_key routine
  mt76: mt7615: add mt7615_mac_wtbl_addr routine
  mt76: mt7615: move mt7615_mac_get_key_info in mac.c
  mt76: mt7615: add missing register initialization
  mt76: mt76x0u: add support to TP-Link T2UHP
  mt76: mt7615: use params->ssn value directly
  mt76: mt7603: use params->ssn value directly
  mt76: mt76x02: use params->ssn value directly
  mt76: usb: remove unneeded {put,get}_unaligned
  mt76: usb: fix endian in mt76u_copy
  mt76: mt7603: fix invalid fallback rates
  mt76: mt7615: fix invalid fallback rates
  mt76: mt7615: fix PS buffering of action frames
  mt76: mt7615: fix using VHT STBC rates
  mt76: mt76u: fix typo in mt76u_fill_rx_sg
  mt76: mt7615: sync with mt7603 rate control changes
  mt76: mt7615: reset rate index/counters on rate table update
  mt76: mt7615: move mt7615_mcu_set_rates to mac.c
  mt76: mt7603: enable hardware rate up/down selection
  mt76: mt7615: introduce mt7615_mcu_send_ram_firmware routine
  mt76: mt7615: always release sem in mt7615_load_patch
  mt76: mt7615: fall back to sw encryption for unsupported ciphers
  mt76: mt7615: clean up FWDL TXQ during/after firmware upload
  mt76: mt7615: add radar pattern test knob to debugfs
  mt76: mt7615: add csa support
  mt76: mt7615: do not perform txcalibration before cac is complited
  mt76: mt7615: add hw dfs pattern detector support
  mt76: mt7615: introduce mt7615_regd_notifier
  mt76: mt7615: fix sparse warnings: warning: restricted __le16 degrades to integer
  mt76: round up length on mt76_wr_copy
  tracing: Add "gfp_t" support in synthetic_events
  Bluetooth: btusb: Use cmd_timeout to reset Realtek device
  Bluetooth: btrtl: Fix an issue that failing to download the FW which size is over 32K bytes
  Bluetooth: mgmt: Use struct_size() helper
  Bluetooth: btrtl: Remove trailing newline from calls to rtl_dev macros
  Bluetooth: btrtl: Remove redundant prefix from calls to rtl_dev macros
  Bluetooth: btrtl: Add firmware version print
  Bluetooth: btrtl: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY
  Bluetooth: hci_qca: wait for Pre shutdown complete event before sending the Power off pulse
  bluetooth: hci_bcm: Give more time to come out of reset
  bluetooth: bcm: Add support for loading firmware for BCM4345C5
  dt-bindings: net: Add compatible for BCM4345C5 bluetooth device
  Bluetooth: hci_qca: Set HCI_QUIRK_SIMULTANEOUS_DISCOVERY for QCA UART Radio
  Bluetooth: hci_qca: Make structure qca_proto constant
  Bluetooth: 6lowpan: Make variable header_ops constant
  Bluetooth: btusb: Fix suspend issue for Realtek devices
  Bluetooth: hci_bcm: Fix -Wunused-const-variable warnings
  Bluetooth: hci_qca: Remove redundant initializations to zero
  Bluetooth: Add support for utilizing Fast Advertising Interval
  ice: Rework around device/function capabilities
  ice: change default number of receive descriptors
  ice: Minor refactor in queue management
  ice: Allow for delayed LLDP MIB change registration
  ice: update Tx context struct
  ice: Report VF link status with opcode to get resources
  ice: Check for DCB capability before initializing DCB
  ice: report link down for VF when PF's queues are not enabled
  ice: Reliably reset VFs
  ice: change work limit to a constant
  ice: small efficiency fixes
  ice: move code closer together
  ice: clean up arguments
  ice: Check root pointer for validity
  ice: Add ice_get_main_vsi to get PF/main VSI
  ice: Update fields in ice_vsi_set_num_qs when reconfiguring
  irqchip/gic-v3-its: Fix LPI release for Multi-MSI devices
  parisc: Drop comments which are already in pci.h
  parisc: Convert eisa_enumerator to use pr_cont()
  bus: ti-sysc: Fix clock handling for no-idle quirks
  parisc: Avoid warning when loading hppb driver
  s390/crypto: xts-aes-s390 fix extra run-time crypto self tests finding
  vfio-ccw: fix error return code in vfio_ccw_sch_init()
  s390: vfio-ap: fix warning reset not completed
  HID: prodikeys: Fix general protection fault during probe
  HID: wacom: add new MobileStudio Pro 13 support
  HID: sony: Fix memory corruption issue on cleanup.
  xsk: lock the control mutex in sock_diag interface
  xsk: use state member for socket synchronization
  xsk: avoid store-tearing when assigning umem
  xsk: avoid store-tearing when assigning queues
  selftests/bpf: precision tracking tests
  habanalabs: correctly cast variable to __le32
  habanalabs: show correct id in error print
  habanalabs: stop using the acronym KMD
  habanalabs: display card name as sensors header
  habanalabs: add uapi to retrieve aggregate H/W events
  habanalabs: add uapi to retrieve device utilization
  habanalabs: Make the Coresight timestamp perpetual
  habanalabs: explicitly set the queue-id enumerated numbers
  habanalabs: print to kernel log when reset is finished
  habanalabs: replace __le32_to_cpu with le32_to_cpu
  habanalabs: replace __cpu_to_le32/64 with cpu_to_le32/64
  habanalabs: Handle HW_IP_INFO if device disabled or in reset
  habanalabs: Expose devices after initialization is done
  habanalabs: improve security in Debug IOCTL
  habanalabs: use default structure for user input in Debug IOCTL
  habanalabs: Add descriptive name to PSOC app status register
  habanalabs: Add descriptive names to PSOC scratch-pad registers
  habanalabs: create two char devices per ASIC
  habanalabs: change device_setup_cdev() to be more generic
  habanalabs: maintain a list of file private data objects
  habanalabs: rename user_ctx as compute_ctx
  habanalabs: show the process context dram usage
  habanalabs: kill user process after CS rollback
  habanalabs: add handle field to context structure
  habanalabs: Use dev_get_drvdata
  habanalabs: power management through sysfs is only for GOYA
  habanalabs: cap simulator timeout
  habanalabs: add debug print when rejecting CS
  habanalabs: add comments on INFO IOCTL
  habanalabs: remove write_open_cnt property
  ixgbe: fix xdp handle calculations
  i40e: fix xdp handle calculations
  netfilter: nf_tables: fix possible null-pointer dereference in object update
  iommu/ipmmu-vmsa: Disable cache snoop transactions on R-Car Gen3
  x86/mm: Fix cpumask_of_node() error condition
  iommu/ipmmu-vmsa: Move IMTTBCR_SL0_TWOBIT_* to restore sort order
  clk: rockchip: Add clock controller for the rk3308
  r8152: adjust the settings of ups flags
  net: hns: Move static keyword to the front of declaration
  net: qed: Move static keyword to the front of declaration
  pppoatm: use %*ph to print small buffer
  net: phy: gmii2rgmii: Dont use priv field in phy device
  include: mdio: Add driver data helpers
  gianfar: use DT more consistently when selecting PHY connection type
  gianfar: cleanup gianfar.h
  gianfar: make five functions static
  gianfar: remove forward declarations
  net: stmmac: selftests: Add Jumbo Frame tests
  net: stmmac: xgmac: Enable RX Jumbo frame support
  net: stmmac: Correctly assing MAX MTU in XGMAC cores case
  net: stmmac: xgmac: Correct RAVSEL field interpretation
  net: stmmac: ethtool: Let user configure TX coalesce without RIWT
  net: stmmac: Only consider RX error when HW Timestamping is not enabled
  net: stmmac: selftests: Implement the ARP Offload test
  net: stmmac: xgmac: Implement ARP Offload
  net: stmmac: selftests: Add selftest for L3/L4 Filters
  net: stmmac: Implement L3/L4 Filters using TC Flower
  net: stmmac: Do not return error code in TC Initialization
  net: stmmac: xgmac: Add RBU handling in DMA interrupt
  net: stmmac: selftests: Return proper error code to userspace
  rocker: add missing init_net check in FIB notifier
  net: mpoa: Use kzfree rather than its implementation.
  sunrpc: Use kzfree rather than its implementation.
  ixgbe: Use kzfree() rather than its implementation.
  clk: rockchip: Add dt-binding header for rk3308
  dt-bindings: Add bindings for rk3308 clock controller
  media: videobuf-core.c: poll_wait needs a non-NULL buf pointer
  gpio: Fix up merge collision in include file
  irqchip/sifive-plic: set max threshold for ignored handlers
  riscv: move the TLB flush logic out of line
  riscv: don't use the rdtime(h) pseudo-instructions
  riscv: cleanup riscv_cpuid_to_hartid_mask
  riscv: optimize send_ipi_single
  riscv: cleanup send_ipi_mask
  hrtimer: Add a missing bracket and hide `migration_base' on !SMP
  irqchip/uniphier-aidet: Use devm_platform_ioremap_resource()
  kprobes: Prohibit probing on BUG() and WARN() address
  serial: tegra: Add PIO mode support
  serial: tegra: report clk rate errors
  serial: tegra: add support to adjust baud rate
  serial: tegra: DT for Adjusted baud rates
  serial: tegra: add support to use 8 bytes trigger
  serial: tegra: set maximum num of uart ports to 8
  serial: tegra: check for FIFO mode enabled status
  dt-binding: serial: tegra: add new chips
  serial: tegra: report error to upper tty layer
  serial: tegra: flush the RX fifo on frame error
  serial: tegra: avoid reg access when clk disabled
  serial: tegra: add support to ignore read
  serial: sprd: correct the wrong sequence of arguments
  dt-bindings: serial: Convert riscv,sifive-serial to json-schema
  serial: max310x: turn off transmitter before activating AutoCTS or auto transmitter flow control
  serial: max310x: Properly set flags in AutoCTS mode
  riscv: refactor the IPI code
  vsock/virtio: a better comment on credit update
  riscv: Add support for libdw
  net/tls: dedup the record cleanup
  net/tls: clean up the number of #ifdefs for CONFIG_TLS_DEVICE
  net/tls: narrow down the critical area of device_offload_lock
  net/tls: don't jump to return
  net/tls: use the full sk_proto pointer
  riscv: Add support for perf registers sampling
  Convert usage of IN_MULTICAST to ipv4_is_multicast
  staging: rtl8723bs: Remove return statement from void function
  staging: rtl8192e: remove unnecessary blank line
  staging: exfat: Use kmemdup in exfat_symlink()
  staging: exfat: remove unused including <linux/version.h>
  staging: exfat: remove duplicated include from exfat_super.c
  net/sched: cbs: remove redundant assignment to variable port_rate
  ionic: Add coalesce and other features
  ionic: Add RSS support
  ionic: Add driver stats
  ionic: Add netdev-event handling
  ionic: Add Tx and Rx handling
  ionic: Add initial ethtool support
  ionic: Add async link status check and basic stats
  ionic: Add Rx filter and rx_mode ndo support
  ionic: Add management of rx filters
  ionic: Add the basic NDO callbacks for netdev support
  ionic: Add notifyq support
  ionic: Add adminq action
  ionic: Add basic adminq support
  ionic: Add interrupts and doorbells
  ionic: Add basic lif support
  ionic: Add port management commands
  ionic: Add hardware init and device commands
  ionic: Add basic framework for IONIC Network device driver
  devlink: Add new info version tags for ASIC and FW
  crypto: sha256 - Remove sha256/224_init code duplication
  crypto: sha256 - Merge crypto/sha256.h into crypto/sha.h
  crypto: n2 - Rename arrays to avoid conflict with crypto/sha256.h
  crypto: chelsio - Rename arrays to avoid conflict with crypto/sha256.h
  crypto: ccree - Rename arrays to avoid conflict with crypto/sha256.h
  crypto: x86 - Rename functions to avoid conflict with crypto/sha256.h
  crypto: s390 - Rename functions to avoid conflict with crypto/sha256.h
  crypto: arm64 - Rename functions to avoid conflict with crypto/sha256.h
  crypto: arm - Rename functions to avoid conflict with crypto/sha256.h
  hwrng: timeriomem - relax check on memory resource size
  crypto: inside-secure - Added support for basic AES-CCM
  crypto: inside-secure - Added AES-OFB support
  crypto: inside-secure - Added AES-CFB support
  crypto: inside-secure - Added support for basic AES-GCM
  crypto: inside-secure - Minor code cleanup and optimizations
  crypto: inside-secure - Minor optimization recognizing CTR is always AES
  crypto: inside-secure - Made .cra_priority value a define
  crypto: inside-secure - Only enable algorithms advertised by the hardware
  crypto: inside-secure - Add support for the AES-XTS algorithm
  crypto: inside-secure - Move static cipher alg & mode settings to init
  crypto: mediatek - fix incorrect crypto key setting
  crypto: mediatek - add support to OFB/CFB mode
  crypto: mediatek - only treat EBUSY as transient if backlog
  crypto: mediatek - fix uninitialized value of gctx->textlen
  crypto: mediatek - move mtk_aes_find_dev() to the right place
  powerpc: Remove empty comment
  powerpc/imc: Dont create debugfs files for cpu-less nodes
  powerpc/64s/radix: introduce options to disable use of the tlbie instruction
  powerpc/64s: remove unnecessary translation cache flushes at boot
  powerpc/64s/pseries: radix flush translations before MMU is enabled at boot
  powerpc/64s: make mmu_partition_table_set_entry TLB flush optional
  powerpc/64s/radix: tidy up TLB flushing code
  powerpc/64s: remove register_process_table callback
  selftests/powerpc: Add basic EEH selftest
  powerpc/eeh: Add a eeh_dev_break debugfs interface
  powerpc/eeh: Add debugfs interface to run an EEH check
  powerpc/eeh: Set attention indicator while recovering
  pci-hotplug/pnv_php: Add attention indicator support
  pci-hotplug/pnv_php: Add support for IODA3 Power9 PHBs
  pci-hotplug/pnv_php: Add a reset_slot() callback
  powernv/eeh: Use generic code to handle hot resets
  powerpc/eeh: Remove stale CAPI comment
  powerpc/eeh: Defer printing stack trace
  powerpc/eeh: Check slot presence state in eeh_handle_normal_event()
  powerpc/eeh: Make permanently failed devices non-actionable
  powerpc/eeh: Fix race when freeing PDNs
  powerpc/eeh: Clean up EEH PEs after recovery finishes
  ARM: dts: aspeed-g5: Fixe gpio-ranges upper limit
  ARM; dts: aspeed: mihawk: File should not be executable
  ARM: dts: aspeed: swift: Change power supplies to version 2
  ARM: dts: aspeed: vesnin: Add secondary SPI flash chip
  ARM: dts: aspeed: vesnin: Add wdt2 with alt-boot option
  ARM: dts: aspeed-g4: Add all flash chips
  lsm: remove current_security()
  selinux: fix residual uses of current_security() for the SELinux blob
  net: dsa: mt7530: Add support for port 5
  dt-bindings: net: dsa: mt7530: Add support for port 5
  net: dsa: mt7530: Convert to PHYLINK API
  r8152: modify rtl8152_set_speed function
  dpaa2-eth: Poll Tx pending frames counter on if down
  dpaa2-eth: Add new DPNI statistics counters
  dpaa2-eth: Minor refactoring in ethtool stats
  i2c: exynos5: Remove IRQF_ONESHOT
  i2c: stm32f7: Make structure stm32f7_i2c_algo constant
  i2c: cht-wc: drop check because i2c_unregister_device() is NULL safe
  pm-graph: make setVal unbuffered again for python2 and python3
  i2c-eeprom_slave: Add support for more eeprom models
  software node: Initialize the return value in software_node_to_swnode()
  ext4: Reduce ext4 timestamp warnings
  arm64: exynos: Enable exynos-chipid driver
  percpu: Use struct_size() helper
  drm/mcde: Fix DSI transfers
  riscv: Add perf callchain support
  soc: ti: ti_sci_pm_domains: Add support for exclusive and shared access
  dt-bindings: ti_sci_pm_domains: Add support for exclusive and shared access
  firmware: ti_sci: Allow for device shared and exclusive requests
  gfs2: Use async glocks for rename
  gfs2: create function gfs2_glock_update_hold_time
  gfs2: separate holder for rgrps in gfs2_rename
  gfs2: Delete an unnecessary check before brelse()
  gfs2: Minor PAGE_SIZE arithmetic cleanups
  hwmon: (lm75) Aproximate sample times to data-sheet values
  ARM: dts: exynos: Enable GPU/Mali T604 on Arndale board
  ARM: dts: exynos: Enable GPU/Mali T604 on Chromebook Snow
  ARM: dts: exynos: Add GPU/Mali T604 node to Exynos5250
  ARM: dts: exynos: Fix min/max buck4 for GPU on Arndale board
  staging: exfat: remove the redundant check when kfree an object in exfat_destroy_inode
  staging: exfat: Fix two missing unlocks on error paths
  drm/msm: Use the correct dma_sync calls harder
  smack: use GFP_NOFS while holding inode_smack::smk_lock
  security: smack: Fix possible null-pointer dereferences in smack_socket_sock_rcv_skb()
  smack: fix some kernel-doc notations
  Smack: Don't ignore other bprm->unsafe flags if LSM_UNSAFE_PTRACE is set
  spi: fsl-spi: use devm_platform_ioremap_resource() to simplify code
  spi: zynq-qspi: use devm_platform_ioremap_resource() to simplify code
  USB: usbcore: Fix slab-out-of-bounds bug during device reset
  spi: zynqmp: use devm_platform_ioremap_resource() to simplify code
  spi: xlp: use devm_platform_ioremap_resource() to simplify code
  spi: uniphier: use devm_platform_ioremap_resource() to simplify code
  spi: tegra: use devm_platform_ioremap_resource() to simplify code
  spi: sun6i: use devm_platform_ioremap_resource() to simplify code
  spi: sun4i: use devm_platform_ioremap_resource() to simplify code
  spi: st-ssc4: use devm_platform_ioremap_resource() to simplify code
  spi: sirf: use devm_platform_ioremap_resource() to simplify code
  spi: sifive: use devm_platform_ioremap_resource() to simplify code
  spi: s3c24xx: use devm_platform_ioremap_resource() to simplify code
  spi: rb4xx: use devm_platform_ioremap_resource() to simplify code
  spi: spi-qcom-qspi: use devm_platform_ioremap_resource() to simplify code
  spi: pic32-sqi: use devm_platform_ioremap_resource() to simplify code
  spi: oc-tiny: use devm_platform_ioremap_resource() to simplify code
  spi: nuc900: use devm_platform_ioremap_resource() to simplify code
  spi: npcm: use devm_platform_ioremap_resource() to simplify code
  spi: mxs: use devm_platform_ioremap_resource() to simplify code
  fs-udf: Delete an unnecessary check before brelse()
  ext2: Delete an unnecessary check before brelse()
  udf: Drop forward function declarations
  spi: mt7621: use devm_platform_ioremap_resource() to simplify code
  udf: Verify domain identifier fields
  spi: spi-meson-spifc: use devm_platform_ioremap_resource() to simplify code
  spi: meson-spicc: use devm_platform_ioremap_resource() to simplify code
  spi: lp-8841: use devm_platform_ioremap_resource() to simplify code
  spi: spi-geni-qcom: use devm_platform_ioremap_resource() to simplify code
  spi: dw-mmio: use devm_platform_ioremap_resource() to simplify code
  spi: coldfire-qspi: use devm_platform_ioremap_resource() to simplify code
  spi: clps711x: use devm_platform_ioremap_resource() to simplify code
  spi: octeon: use devm_platform_ioremap_resource() to simplify code
  spi: cadence: use devm_platform_ioremap_resource() to simplify code
  spi: bcm63xx-hsspi: use devm_platform_ioremap_resource() to simplify code
  spi: bcm2835: use devm_platform_ioremap_resource() to simplify code
  spi: bcm2835aux: use devm_platform_ioremap_resource() to simplify code
  spi: spi-axi: use devm_platform_ioremap_resource() to simplify code
  spi: ath79: use devm_platform_ioremap_resource() to simplify code
  spi: a3700: use devm_platform_ioremap_resource() to simplify code
  spi: altera: use devm_platform_ioremap_resource() to simplify code
  bus: imx-weim: remove incorrect __init annotations
  fbdev: remove w90x900/nuc900 platform drivers
  spi: remove w90x900 driver
  net: remove w90p910-ether driver
  net: remove ks8695 driver
  drm/msm: remove unlikely() from WARN_ON() conditions
  firmware: turris-mox-rwtm: Add sysfs documentation
  firmware: Add Turris Mox rWTM firmware driver
  dt-bindings: firmware: Document cznic,turris-mox-rwtm binding
  bus: moxtet: fix unsigned comparison to less than zero
  bus: moxtet: remove set but not used variable 'dummy'
  arm64: defconfig: Enable Qualcomm QUSB2 PHY
  arm64: defconfig: Enable the EFI Framebuffer
  arm64: defconfig: Enable Qualcomm GENI based I2C controller
  PCI: iproc: Propagate errors for optional PHYs
  PCI: histb: Propagate errors for optional regulators
  PCI: armada8x: Propagate errors for optional PHYs
  PCI: imx6: Propagate errors for optional regulators
  PCI: exynos: Propagate errors for optional PHYs
  PCI: rockchip: Propagate errors for optional regulators
  merge_config.sh: ignore unwanted grep errors
  kbuild: change *FLAGS_<basetarget>.o to take the path relative to $(obj)
  MAINTAINERS: Add Robert as a EDAC reviewer
  modpost: add NOFAIL to strndup
  modpost: add guid_t type definition
  kbuild: add $(BASH) to run scripts with bash-extension
  dm stats: use struct_size() helper
  KVM: selftests: Test invalid bits in kvm_valid_regs and kvm_dirty_regs on s390x
  KVM: s390: Disallow invalid bits in kvm_valid_regs and kvm_dirty_regs
  pinctrl: qcom: sdm845: Fix UFS_RESET pin
  paride/pcd: need to check if cd->disk is null in pcd_detect
  paride/pcd: need to set queue to NULL before put_disk
  paride/pf: need to set queue to NULL before put_disk
  regulator: Defer init completion for a while after late_initcall
  ASoC: soc-core: add comment to jack at soc_remove_component()
  ASoC: tegra: use devm_platform_ioremap_resource() to simplify code
  ASoC: sirf-audio: use devm_platform_ioremap_resource() to simplify code
  ASoC: ep93xx: use devm_platform_ioremap_resource() to simplify code
  ASoC: amd: use devm_platform_ioremap_resource() to simplify code
  w1: add DS2501, DS2502, DS2505 EPROM device driver
  w1: add 1-wire master driver for IP block found in SGI ASICs
  HID: i2c-hid: modify quirks for weida's devices
  can: add support of SAE J1939 protocol
  arm64: remove __iounmap
  pcmcia/i82092: Refactored dprintk macro for dev_dbg().
  uio: Documentation: Add information on using uio_pdrv_genirq with DT
  uio: uio_pdrv_genirq: Make UIO name controllable via DT node property
  toshiba: Add correct printk log level while emitting error log
  driver-core: add include guard to linux/container.h
  sysfs: add BIN_ATTR_WO() macro
  misc: fastrpc: free dma buf scatter list
  misc: fastrpc: fix double refcounting on dmabuf
  misc: fastrpc: remove unused definition
  misc: fastrpc: Don't reference rpmsg_device after remove
  misc: fastrpc: Reference count channel context
  MAINTAINERS: add maintainer for Intel Stratix10 FW drivers
  firmware: rsu: document sysfs interface
  firmware: add Intel Stratix10 remote system update driver
  firmware: stratix10-svc: extend svc to support new RSU features
  selftests: firmware: Add request_firmware_into_buf tests
  test_firmware: add support for request_firmware_into_buf
  firmware: google: check if size is valid when decoding VPD data
  /dev/mem: Bail out upon SIGKILL.
  binder: Add binder_proc logging to binderfs
  binder: Make transaction_log available in binderfs
  binder: Add stats, state and transactions files
  binder: add a mount option to show global stats
  can: extend sockaddr_can to include j1939 members
  can: add socket type for CAN_J1939
  can: introduce CAN_REQUIRED_SIZE macro
  mailmap: update email address
  can: af_can: use spin_lock_bh() for &net->can.rcvlists_lock
  can: af_can: remove NULL-ptr checks from users of can_dev_rcv_lists_find()
  can: make use of preallocated can_ml_priv for per device struct can_dev_rcv_lists
  can: introduce CAN midlayer private and allocate it automatically
  can: af_can: can_pernet_exit(): no need to iterate over and cleanup registered CAN devices
  can: af_can: can_rx_register(): use max() instead of open coding it
  can: af_can: give variable holding the CAN receiver and the receiver list a sensible name
  can: af_can: rename find_dev_rcv_lists() to can_dev_rcv_lists_find()
  can: af_can: rename find_rcv_list() to can_rcv_list_find()
  can: proc: give variable holding the CAN per device receive lists a sensible name
  can: af_can: give variable holding the CAN per device receive lists a sensible name
  can: netns: remove "can_" prefix from members struct netns_can
  can: proc: give variables holding CAN statistics a sensible name
  can: af_can: give variables holding CAN statistics a sensible name
  can: netns: give members of struct netns_can holding the statistics a sensible name
  can: netns: give structs holding the CAN statistics a sensible name
  binder: Add default binder devices through binderfs when configured
  binder: Validate the default binderfs device names.
  tty: serial: fix platform_no_drv_owner.cocci warnings
  dt-bindings: serial: Document Freescale LINFlexD UART
  serial: fsl_linflexuart: Update compatible string
  tty: n_gsm: avoid recursive locking with async port hangup
  serial: sprd: keep console alive even if missing the 'enable' clock
  serial: sprd: add console_initcall in sprd's uart driver
  serial: sprd: check the right port and membase
  tty/serial: atmel: remove unneeded atmel_get_lines_status function
  serial: imx: use Tx ready rather than Tx empty irq
  serial: imx: fix data breakage on termios change
  serial: imx: do not disable individual irqs during termios change
  serial: imx: do not stop Rx/Tx on termios change
  serial: imx: get rid of unbounded busy-waiting loop
  tty: max310x: fix off-by-one buffer access when storing overrun
  tty: serial: linflexuart: Use DEFINE_SPINLOCK() for spinlock
  serial: 8250_pci: Implement MSI(-X) support
  serial: 8250_pci: Add F81504A series Support
  serial: mctrl_gpio: Use gpiod flags directly
  tty: serial: add dependence for CONFIG_SERIAL_FSL_LINFLEXUART
  tty: n_gsm: add ioctl to map serial device to mux'ed tty
  serial: 8250_pci: Merge 8250_moxa to 8250_pci
  serial: sprd: Add loopback function support
  serial: mxs-auart: Don't check for mctrl_gpio_to_gpiod() returning error
  serial: sh-sci: Don't check for mctrl_gpio_to_gpiod() returning error
  serial: tegra: protect IER against LCR.DLAB
  serial: tegra: add internal loopback functionality
  tty/serial: atmel: reschedule TX after RX was started
  tty: serial: Add linflexuart driver for S32V234
  tty/serial: atmel: remove redundant assignment to ret
  parport: parport_serial: Add support for Sunix Multi I/O boards
  serial: 8250_pci: Add support for Sunix serial boards
  serial: remove ks8695 driver
  serial: lantiq: Add support for Lightning Mountain SoC
  serial: lantiq: Make IRQ & ISR assignment dynamic
  serial: lantiq: Use proper DT compatible string
  serial: 8250_lpss: Enable HS UART on Elkhart Lake
  serial: 8250_lpss: Get rid of custom LPSS_DEVICE() macro
  serial: 8250_lpss: register DMA IRQ and pool with instance ID
  serial: 8250_lpss: add fractional divisor support
  serial: 8250_lpss: switch to use 8250_dwlib library
  serial: 8250_dw: switch to use 8250_dwlib library
  serial: 8250_dw: split Synopsys DesignWare 8250 common functions
  serial: 8250_dw: use pointer to uart local variable
  serial: 8250_dw: Use a unified new dev variable in remove
  serial: lantiq: Add SMP support
  tty: serial: fsl_lpuart: Ignore TX/RX interrupts if DMA is enabled
  tty: serial: fsl_lpuart: Don't enable TIE in .startup() or .resume()
  tty: serial: fsl_lpuart: Introduce lpuart*_setup_watermark_enable()
  tty: serial: fsl_lpuart: Introduce lpuart32_configure()
  tty: serial: fsl_lpuart: Introduce lpuart_rx_dma_startup()
  tty: serial: fsl_lpuart: Introduce lpuart_tx_dma_startup()
  serial: 8250_exar: Replace msleep(1) with usleep_range()
  serial: 8250_exar: Consolidate callback assignments in default_setup()
  tty: serial: qcom_geni_serial: use devm_platform_ioremap_resource() to simplify code
  serial: 8250: Don't check for mctrl_gpio_init() returning -ENOSYS
  serial: sh-sci: Don't check for mctrl_gpio_init() returning -ENOSYS
  serial: mctrl_gpio: Avoid probe failures in case of missing gpiolib
  serial: 8250_exar: Absorb remaining 8250_port INT0 support
  serial: sh-sci: Use DEVICE_ATTR_RW() for rx_fifo_trigger
  tty: serial: qcom_geni_serial: Update the oversampling rate
  serial: 8250_exar: Clear buffer before shutdown
  serial: 8250_exar: Move custom divisor support out from 8250_port
  serial: 8250_exar: Extract PM routine from 8250_port
  serial: 8250_exar: No need to autoconfigure Exar ports
  serial: sh-sci: use driver core functions, not sysfs ones.
  xilinx_uartps.c: suppress "may be used uninitialised" warning
  tty: Remove dev_err() usage after platform_get_irq()
  tty: serial: fsl_lpuart: Introduce lpuart_dma_shutdown()
  tty: serial: fsl_lpuart: Drop unnecessary lpuart*_stop_tx()
  tty: serial: fsl_lpuart: Introduce lpuart_stopped_or_empty()
  tty: serial: fsl_lpuart: Use cpu_relax() instead of barrier()
  tty: serial: fsl_lpuart: Introduce lpuart_wait_bit_set()
  tty: serial: fsl_lpuart: Use appropriate lpuart32_* I/O funcs
  tty: serial: fsl_lpuart: Clear CSTOPB unconditionally
  tty: serial: fsl_lpuart: Drop unnecessary extra parenthesis
  tty: serial: fsl_lpuart: Drop no-op bit opearation
  tty: serial: fls_lpuart: Split shared TX IRQ handler into two
  tty: serial: fsl_lpuart: Fix issue in software flow control
  tty: serial: fsl_lpuart: Drop unnecessary uart_write_wakeup()
  tty: serial: fsl_lpuart: Fix bogus indentation
  tty: serial: fsl_lpuart: Simplify RX/TX IRQ handlers
  tty: serial: fsl_lpuart: Flush HW FIFOs in .flush_buffer
  tty: serial: fsl_lpuart: flush receive FIFO after overruns
  tty: serial: fsl_lpuart: fix framing error handling when using DMA
  serial: imx: get rid of imx_uart_rts_auto()
  serial: imx: set_mctrl(): correctly restore autoRTS state
  serial: imx: set_termios(): do not enable autoRTS if RTS is unset
  serial: 8250_pnp: Move to struct dev_pm_ops
  serial/8250: Add support for NI-Serial PXI/PXIe+485 devices
  serial: stm32: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
  serial: stm32: add pm_runtime support
  serial: stm32: select pinctrl state in each suspend/resume function
  dt-bindings: serial: stm32: add wakeup option
  8250_lpss: check null return when calling pci_ioremap_bar
  tty: serial: fsl_lpuart: correct the FIFO depth size
  tty: serial: fsl_lpuart: remove sg_set_buf() for sport->rx_sgl
  tty: serial: fsl_lpuart: use kzalloc() instead of kmalloc()
  tty: serial: fsl_lpuart: add earlycon for imx8qxp platform
  tty: serial: fsl_lpuart: remove the dev.coherent_dma_mask zero setting
  serial: 8250_exar: Use struct_size() helper
  tty: nozomi: Use dev_get_drvdata
  serial: 8250: Use dev_get_drvdata where possible
  tty/isicom: remove redundant assignment to variable word_count
  tty: serial: Remove call to memset after pci_alloc_consistent
  tty: hvcs: Fix odd use of strlcpy
  serial: 8250_omap: Fix idling for unloaded serdev drivers
  tty: n_gsm: add helpers to convert mux-num to/from tty-base
  tty: n_gsm: update doc example to use header for N_GSM0710 define
  tty: n_gsm: remove obsolete mknod doc example
  dmaengine: ti: edma: Use bitmap_set() instead of open coded edma_set_bits()
  dmaengine: ti: edma: Only reset region0 access registers
  dmaengine: ti: edma: Do not reset reserved paRAM slots
  EDAC/mc_sysfs: Make debug messages consistent
  soundwire: stream: make stream name a const pointer
  soundwire: Add compute_params callback
  arm: remove wrappers for the generic dma remap helpers
  dma-mapping: introduce a dma_common_find_pages helper
  dma-mapping: always use VM_DMA_COHERENT for generic DMA remap
  vmalloc: lift the arm flag for coherent mappings to common code
  dma-mapping: provide a better default ->get_required_mask
  dma-mapping: remove the dma_declare_coherent_memory export
  remoteproc: don't allow modular build
  dma-mapping: remove the dma_mmap_from_dev_coherent export
  dma-mapping: remove dma_release_declared_memory
  dma-mapping: remove dma_{alloc,free,mmap}_writecombine
  dma-mapping: remove CONFIG_ARCH_NO_COHERENT_DMA_MMAP
  parisc: don't set ARCH_NO_COHERENT_DMA_MMAP
  arm-nommu: call dma_mmap_from_dev_coherent directly
  ALSA: pcm: use dma_can_mmap() to check if a device supports dma_mmap_*
  dma-mapping: add a dma_can_mmap helper
  dma-mapping: explicitly wire up ->mmap and ->get_sgtable
  dma-mapping: move the dma_get_sgtable API comments from arm to common code
  gpio: of: Normalize return code variable name
  gpio: gpiolib: Normalize return code variable name
  gpio: ep93xx: Pass irqchip when adding gpiochip
  eeprom: Deprecate the legacy eeprom driver
  soundwire: core: add device tree support for slave devices
  dt-bindings: soundwire: add slave bindings
  HID: apple: Fix stuck function keys when using FN
  soundwire: bus: set initial value to port_status
  erofs: using switch-case while checking the inode type.
  staging: exfat: cleanup explicit comparisons to NULL
  Staging: rtl8723bs: Use kzfree rather than its implementation
  ath6kl: fix a NULL-ptr-deref bug in ath6kl_usb_alloc_urb_from_pipe()
  wcn36xx: use dynamic allocation for large variables
  ath6kl: Fix a possible null-pointer dereference in ath6kl_htc_mbox_create()
  ath9k: dynack: set ackto to max timeout in ath_dynack_reset
  ath9k: dynack: set max timeout according to channel width
  ath9k: dynack: properly set last timeout timestamp in ath_dynack_reset
  ath9k: dyanck: introduce ath_dynack_set_timeout routine
  ath9k: dynack: fix possible deadlock in ath_dynack_node_{de}init
  ath9k: add loader for AR92XX (and older) pci(e)
  carl9170: remove set but not used variable 'udev'
  wil6210: Delete an unnecessary kfree() call in wil_tid_ampdu_rx_alloc()
  wil6210: Add EDMG channel support
  wil6210: fix wil_cid_valid with negative cid values
  dmaengine: iop-adma.c: fix printk format warning
  dmaengine: stm32-dma: Use struct_size() helper
  dt-bindings: dmaengine: dma-common: Fix the dma-channel-mask property
  dmanegine: ioat/dca: Use struct_size() helper
  dmaengine: iop-adma: remove set but not used variable 'slots_per_op'
  dmaengine: dmatest: Add support for completion polling
  dmaengine: ti: omap-dma: Remove variable override in omap_dma_tx_status()
  dmaengine: ti: omap-dma: Remove 'Assignment in if condition'
  dmaengine: ti: edma: Remove 'Assignment in if condition'
  xfs: Fix deadlock between AGI and AGF with RENAME_WHITEOUT
  xfs: define a flags field for the AG geometry ioctl structure
  Documentation: fpga: dfl: add descriptions for virtualization and new interfaces.
  fpga: dfl: fme: add global error reporting support
  fpga: dfl: afu: add STP (SignalTap) support
  fpga: dfl: afu: add error reporting support.
  fpga: dfl: afu: expose __afu_port_enable/disable function.
  fpga: dfl: afu: add userclock sysfs interfaces.
  fpga: dfl: afu: convert platform_driver to use dev_groups
  fpga: dfl: fme: convert platform_driver to use dev_groups
  fpga: dfl: make init callback optional
  kbuild: remove ARCH_{CPP,A,C}FLAGS
  kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
  ice: Only disable VLAN pruning for the VF when all VLANs are removed
  ice: Remove enable DCB when SW LLDP is activated
  ice: Report stats when VSI is down
  ice: Always notify FW of VF reset
  ice: Correctly handle return values for init DCB
  ice: Limit Max TCs on devices with more than 4 ports
  ice: Cleanup defines in ice_type.h
  ice: print extra message if topology issue
  ice: add print of autoneg state to link message
  ice: update driver unloading field for Queue Shutdown AQ command
  ice: add needed PFR during driver unload
  drm/msm/dsi: Fix return value check for clk_get_parent
  drm/msm: add atomic traces
  drm/msm/dpu: async commit support
  drm/msm: async commit support
  drm/msm: split power control from prepare/complete_commit
  drm/msm: add kms->flush_commit()
  drm/msm: convert kms->complete_commit() to crtc_mask
  drm/msm: add kms->wait_flush()
  drm/msm/dpu: handle_frame_done() from vblank irq
  drm/msm/dpu: add real wait_for_commit_done()
  drm/msm/dpu: unwind async commit handling
  drm/msm/dpu: remove unused arg
  drm/msm/dpu: remove some impossible error checking
  drm/msm/dpu: add rotation property
  drm/msm: Remove Kconfig default
  drm/msm/dpu: remove stray "\n"
  drm/msm/dpu: fix "frame done" timeouts
  drm/msm: Use struct_size() helper
  drm/msm: Use generic bulk clock function
  drm/msm/mdp5: Find correct node for creating gem address space
  drm/msm/phy/dsi_phy: silence -EPROBE_DEFER warnings
  drm/msm/a6xx: add missing MODULE_FIRMWARE()
  drm/msm/mdp5: Add msm8998 support
  drm/msm/dpu: remove dpu_mdss:hwversion
  drm/msm: Transition console to msm framebuffer
  drm/msm/hdmi: Convert to use GPIO descriptors
  drm/msm/dpu: Drop unused GPIO code
  drm/msm/dsi: Drop unused GPIO includes
  drm/msm/mdp4: Drop unused GPIO include
  drm/msm: drop use of drmP.h
  ice: Deduce TSA value from the priority value in the CEE mode
  ice: Report what the user set for coalesce [tx|rx]-usecs
  ice: Fix resource leak in ice_remove_rule_internal()
  md/raid5: use bio_end_sector to calculate last_sector
  md/raid1: fail run raid1 array when active disk less than one
  md raid0/linear: Mark array as 'broken' and fail BIOs if a member is gone
  ice: Fix EMP reset handling
  dm crypt: omit parsing of the encapsulated cipher
  dm crypt: switch to ESSIV crypto API template
  crypto: essiv - create wrapper template for ESSIV generation
  iio: imu: st_lsm6dsx: rely on IIO_G_TO_M_S_2 for gain definition for LSM9DS1
  iio: imu: st_lsm6dsx: remove invalid gain value for LSM9DS1
  staging: exfat: drop local TRUE/FALSE defines
  ARM: scoop: Use the right include
  staging: exfat: fix spelling errors in comments
  staging: exfat: cleanup braces for if/else statements
  coresight: tmc-etr: Add barrier packets when moving offset forward
  coresight: tmc-etr: Decouple buffer sync and barrier packet insertion
  coresight: tmc: Make memory width mask computation into a function
  coresight: tmc-etr: Fix perf_data check
  coresight: tmc-etr: Fix updating buffer in not-snapshot mode.
  coresight: etm4x: improve clarity of etm4_os_unlock comment
  coresight: etm4x: use module_param instead of module_param_named
  coresight: etm4x: Use explicit barriers on enable/disable
  coresight: etm4x: Remove superfluous setting of os_unlock
  coresight: acpi: Static funnel support
  coresight: Convert pr_warn to dev_warn for obsolete bindings
  coresight: tmc-etr: Check if non-secure access is enabled
  coresight: tmc-etr: Handle memory errors
  coresight: etr_buf: Consolidate refcount initialization
  coresight: cpu-debug: Add support for Qualcomm Kryo
  coresight: etm4x: Add ETM PIDs for SDM845 and MSM8996
  coresight: etm4x: Two function calls less
  net/mlx5: Add devlink flow_steering_mode parameter
  net/mlx5: Add support to use SMFS in switchdev mode
  net/mlx5: Add API to set the namespace steering mode
  net/mlx5: Add direct rule fs_cmd implementation
  net/mlx5: DR, Add CONFIG_MLX5_SW_STEERING for software steering support
  net/mlx5: DR, Expose APIs for direct rule managing
  net/mlx5: DR, Add required FW steering functionality
  net/mlx5: DR, Expose steering rule functionality
  net/mlx5: DR, Expose steering action functionality
  net/mlx5: DR, Expose steering matcher functionality
  net/mlx5: DR, Expose steering table functionality
  net/mlx5: DR, Expose steering domain functionality
  net/mlx5: DR, Add Steering entry (STE) utilities
  net/mlx5: DR, Expose an internal API to issue RDMA operations
  net/mlx5: DR, ICM pool memory allocator
  net/mlx5: DR, Add direct rule command utilities
  net/mlx5: DR, Add the internal direct rule types definitions
  net/mlx5: Add flow steering actions to fs_cmd shim layer
  hwmon: (w83793d) convert to use devm_i2c_new_dummy_device
  hwmon: (w83792d) convert to use devm_i2c_new_dummy_device
  hwmon: (w83791d) convert to use devm_i2c_new_dummy_device
  hwmon: (as370-hwmon) fix devm_platform_ioremap_resource.cocci warnings
  hwmon: (lm75) Add support for writing sampling period on PCT2075
  hwmon: (lm75) Add support for writing conversion time for TMP112
  hwmon: (lm75) Move updating the sample interval to its own function
  hwmon: (lm75) Support configuring the sample time for various chips
  hwmon: (nct7904) Fix incorrect temperature limitation register setting of LTD.
  hwmon: (as370-hwmon) Add DT bindings for Synaptics AS370 PVT
  hwmon: Add Synaptics AS370 PVT sensor driver
  pmbus: (ibm-cffps) Add support for version 2 of the PSU
  dt-bindings: hwmon: Document ibm,cffps2 compatible string
  hwmon: (iio_hwmon) Enable power exporting from IIO
  dt-bindings: Add ipsps1 as a trivial device
  hwmon: pmbus: Add Inspur Power System power supply driver
  hwmon/ltc2990: Generalise DT to fwnode support
  hwmon: (raspberrypi) update MODULE_AUTHOR() email address
  hwmon: (lm75) Modularize lm75_write and make hwmon_chip writable
  hwmon: (lm75) Add new fields into lm75_params_
  hwmon: (lm75) Create function from code to write into registers
  hwmon: (lm75) Create structure to save all the configuration parameters.
  hwmon: (nct7904) Add extra sysfs support for fan, voltage and temperature.
  hwmon: w83795: Fan control option isn't that dangerous
  hwmon: (npcm750-pwm-fan) Remove dev_err() usage after platform_get_irq()
  hwmon: (acpi_power_meter) Change log level for 'unsafe software power cap'
  hwmon: (nct6775) Integrate new model nct6116
  hwmon: (adt7475) Convert to use hwmon_device_register_with_groups()
  hwmon: (w83781d) convert to i2c_new_dummy_device
  hwmon: (smm665) convert to i2c_new_dummy_device
  hwmon: (asb100) convert to i2c_new_dummy_device
  hwmon: (k10temp) Add support for AMD family 17h, model 70h CPUs
  x86/amd_nb: Add PCI device IDs for family 17h, model 70h
  docs: hwmon: pxe1610: convert to ReST format and add to the index
  hwmon: (k8temp) update to use new hwmon registration API
  hwmon: (pmbus/max31785) Remove a useless #define
  hwmon: (lm75) add support for PCT2075
  device-tree: bindinds: add NXP PCT2075 as compatible device to LM75
  hwmon: Remove ads1015 driver
  selftests/bpf: fix endianness issues in test_sysctl
  selftests/bpf: improve unexpected success reporting in test_syctl
  selftests/bpf: fix "ctx:write sysctl:write read ok" on s390
  selftests/bpf: introduce bpf_cpu_to_be64 and bpf_be64_to_cpu
  leds: ti-lmu-common: Move static keyword to the front of declaration
  leds: lm3532: Move static keyword to the front of declarations
  i2c: fsi: Add of_put_node() before break
  usb: cdns3: Remove redundant dev_err call in cdns3_probe()
  USB: rio500: Fix lockdep violation
  USB: rio500: simplify locking
  i2c: synquacer: Make synquacer_i2c_ops constant
  usb: mtu3: register a USB Role Switch for dual role mode
  i2c: hix5hd2: Remove IRQF_ONESHOT
  ASoC: es8316: add clock control of MCLK
  iio: cros_ec: set calibscale for 3d MEMS to unit vector
  iio: dac: ad5380: fix incorrect assignment to val
  iio: imu: st_lsm6dsx: Fix FIFO diff mask for tagged fifo
  dt-bindings: iio: imu: st_lsm6dsx: add lsm9ds1 device bindings
  iio: imu: st_lsm6dsx: add support for accel/gyro unit of lsm9ds1
  spi: npcm-fiu: fix spelling mistake "frequancy" -> "frequency"
  ASoC: es8316: add DT-bindings
  i2c: i801: Use iTCO version 6 in Cannon Lake PCH and beyond
  watchdog: iTCO: Add support for Cannon Lake PCH iTCO
  EDAC/mc_sysfs: Remove pointless gotos
  EDAC: Prefer 'unsigned int' to bare use of 'unsigned'
  netfilter: nft_quota: add quota object update support
  netfilter: nf_tables: Introduce stateful object update operation
  usb: common: add USB GPIO based connection detection driver
  usb: common: create Kconfig file
  usb: roles: get usb-role-switch from parent
  xfs: add a xfs_valid_startblock helper
  MAINTAINERS: update entry for firewire audio drivers with UAPI header
  HID: sb0540: add support for Creative SB0540 IR receivers
  usb: roles: Add fwnode_usb_role_switch_get() function
  mips: compat: vdso: Use legacy syscalls as fallback
  HID: Add quirk for HP X500 PIXART OEM mouse
  closures: fix a race on wakeup from closure_sync
  bcache: Fix an error code in bch_dump_read()
  bcache: add cond_resched() in __bch_cache_cmp()
  Documentation:kernel-per-CPU-kthreads.txt: Remove reference to elevator=
  device connection: Add fwnode_connection_find_match()
  Documenation: switching-sched: Remove notes about elevator argument
  block: elevator.c: Remove now unused elevator= argument
  usb: roles: Introduce stubs for the exiting functions in role.h
  dt-bindings: usb: mtu3: add properties about USB Role Switch
  dt-bindings: usb: add binding for USB GPIO based connection detection driver
  dt-bindings: connector: add optional properties for Type-B
  dt-binding: usb: add usb-role-switch property
  usbip: Implement SG support to vhci-hcd and stub driver
  block: mq-deadline: Fix queue restart handling
  usb: roles: intel: Enable static DRD mode for role switch
  xhci-ext-caps.c: Add property to disable Intel SW switch
  usb: dwc3: remove generic PHY calibrate() calls
  usb: core: phy: add support for PHY calibration
  usb: chipidea: msm: Use device-managed registration API
  usb: host: xhci-rcar: Use xhci_plat_priv.quirks instead of code settings
  usb: host: xhci-rcar: Add a helper macro to set xhci_plat_priv
  usb: host: xhci-plat: add quirks member into struct xhci_plat_priv
  xhci: fix possible memleak on setup address fails.
  xhci: add TSP bitflag to TRB tracing
  usb: xhci: dbc: Use GFP_KERNEL instead of GFP_ATOMIC in 'xhci_dbc_alloc_requests()'
  usb: xhci: dbc: Simplify error handling in 'xhci_dbc_alloc_requests()'
  usb: cdns3: fix spelling mistake: "cnfiguration" -> "configuration"
  usb: cdns3: fix missing assignment of ret before error check on ret
  usb: cdns3: remove redundant assignment to ret on error exit path
  usb: typec: tps6598x: Fix build error without CONFIG_REGMAP_I2C
  usb: cdns3: remove set but not used variable 'priv_dev'
  usb: cdns3: Fix Wunused-but-set-variable warning
  zd1211rw: zd_usb: Use struct_size() helper
  brcmfmac: get chip's default RAM info during PCIe setup
  arm64: bpf: optimize modulo operation
  bcma: fix incorrect update of BCMA_CORE_PCI_MDIO_DATA
  brcmfmac: replace strncpy() by strscpy()
  rt2x00: do not set IEEE80211_TX_STAT_AMPDU_NO_BACK on tx status
  ipw2x00: fix spelling mistake "initializationg" -> "initialization"
  airo: fix memory leaks
  zd1211rw: remove false assertion from zd_mac_clear()
  brcmfmac: remove redundant assignment to pointer hash
  bcma: remove two unused variables
  brcm80211: Avoid possible null-pointer dereferences in wlc_phy_radio_init_2056()
  rtw88: pci: enable MSI interrupt
  rtw88: pci: Move a mass of jobs in hw IRQ to soft IRQ
  rtw88: remove redundant assignment to pointer debugfs_topdir
  rtw88: drop unused rtw_coex_coex_dm_reset()
  rtw88: Fix an error message
  rtlwifi: rtl8192ce: Fix incorrect returned values
  rtlwifi: rtl8188ee: Fix incorrect returned values
  rtlwifi: rtl8821ae: Fix incorrect returned values
  bpf: s390: add JIT support for bpf line info
  rtlwifi: rtl8192cu: Convert inline routines to little-endian words
  rtlwifi: rtl8192cu: Convert macros that set descriptor
  rtlwifi: rtl8192cu: Replace local bit manipulation macros
  rtlwifi: rtl8192cu: Remove unused GET_XXX and SET_XXX
  devpts_pty_kill(): don't bother with d_delete()
  infiniband: don't bother with d_delete()
  hypfs: don't bother with d_delete()
  rtlwifi: rtl8192ee: Remove some variable initializations
  rtlwifi: rtl8192ee: Convert inline routines to little-endian words
  rtlwifi: rtl8192ee: Convert macros that set descriptor
  fs/namei.c: keep track of nd->root refcount status
  rtlwifi: rtl8192ee: Replace local bit manipulation macros
  rtlwifi: rtl8192ee: Remove unused GET_XXX and SET_XXX
  rtlwifi: rtl_pci: Fix memory leak when hardware init fails
  rtlwifi: remove unused variables 'RTL8712_SDIO_EFUSE_TABLE' and 'MAX_PGPKT_SIZE'
  rtlwifi: rtl8192cu: Fix value set in descriptor
  mfd: don't select DMA_DECLARE_COHERENT for the sm501 and tc6393xb drivers
  usb: remove commented out dma wrappers
  usb: remove a stale comment in hcd_alloc_coherent
  usb-storage: use hcd_uses_dma to check for DMA capabilities
  usb/ohci-tmio: remove the HCD_DMA flag
  usb/ohci-sm501: remove the HCD_DMA flag
  MIPS: Drop Loongson _CACHE_* definitions
  MIPS: tlbex: Remove cpu_has_local_ebase
  MIPS: tlbex: Simplify r3k check
  MIPS: Select R3k-style TLB in Kconfig
  iommu: Don't use sme_active() in generic code
  selftests/bpf: test_progs: add missing \n to CHECK_FAIL
  selftests/bpf: test_progs: fix verbose mode garbage
  rtlwifi: fix non-kerneldoc comment in usb.c
  iommu/arm-smmu-v3: Fix build error without CONFIG_PCI_ATS
  s390/base: remove unused s390_base_mcck_handler
  s390/sclp: Fix bit checked for has_sipl
  spi: spi-fsl-dspi: Fix race condition in TCFQ/EOQ interrupt
  spi: uniphier: introduce polling mode
  spi: uniphier: remove unnecessary code
  spi: uniphier: fix wrong register overwrite
  regulator: add missing 'static inline' to a helper's stub
  ASoC: audio-graph: indicate rebind issue
  ASoC: simple-card: indicate rebind issue
  9p/vfs_super.c: Remove unused parameter data in v9fs_fill_super
  9p/cache.c: Fix memory leak in v9fs_cache_session_get_cookie
  9p: Transport error uninitialized
  9p: avoid attaching writeback_fid on mmap with type PRIVATE
  kgdb: fix comment regarding static function
  kdb: Replace strncmp with str_has_prefix
  powercap: idle_inject: Use higher resolution for idle injection
  cpuidle: play_idle: Increase the resolution to usec
  dt-bindings: gpu: mali-midgard: Add samsung exynos5250 compatible
  can: dev: can_dev_init(): convert from printk(KERN_INFO) to pr_info
  can: dev: can_dellink(): remove return at end of void function
  can: dev: can_restart(): convert NULL pointer check
  can: dev: remove unnecessary blank line
  can: dev: remove unnecessary parentheses
  can: dev: avoid long lines
  can: dev: convert block comments to network style comments
  can: mcp251x: Call wrapper instead of regulator_disable()
  can: mcp251x: Make use of device property API
  can: mcp251x: Use devm_clk_get_optional() to get the input clock
  can: mcp251x: remove deprecated board file setup example
  can: tcan4x5x: Remove checking the wake pin
  can: tcan4x5x: Remove data-ready gpio interrupt
  dt-bindings: can: tcan4x5x: Update binding to use interrupt property
  can: kvaser_pciefd: the PWM generator is running at the bus frequency of the system.
  irqdomain: Add the missing assignment of domain->fwnode for named fwnode
  gfs2: Fix recovery slot bumping
  gfs2: Fix possible fs name overflows
  gfs2: untangle the logic in gfs2_drevalidate
  gfs2: Always mark inode dirty in fallocate
  ACPI / PCI: fix acpi_pci_irq_enable() memory leak
  staging: rtl8723bs: replace __inline by inline
  staging: r8188eu: use skb_put_data instead of skb_put/memcpy pair
  staging: kpc2000: Fix long constant sparse warning
  staging: exfat: check for null return from call to FAT_getblk
  staging: greybus: light: fix a couple double frees
  cpuidle-haltpoll: vcpu hotplug support
  staging: rts5208: Fix checkpath warning
  staging: rts5208: Fixed checkpath warning.
  staging: rts5208: remove redundant sd30_mode checks
  staging: exfat: remove return and error return via a goto
  staging: exfat: fix uninitialized variable ret
  x86/mm: Remove the unused set_memory_wt() function
  x86/mm: Remove set_pages_x() and set_pages_nx()
  x86/mm: Remove the unused set_memory_array_*() functions
  x86/mm: Unexport set_memory_x() and set_memory_nx()
  perf/x86: Make more stuff static
  sched/uclamp: Always use 'enum uclamp_id' for clamp_id values
  sched/uclamp: Update CPU's refcount on TG's clamp changes
  sched/uclamp: Use TG's clamps to restrict TASK's clamps
  sched/uclamp: Propagate system defaults to the root group
  sched/uclamp: Propagate parent clamps
  sched/uclamp: Extend CPU's cgroup controller
  sched/topology: Improve load balancing on AMD EPYC systems
  arch, ia64: Make NUMA select SMP
  sched, perf: MAINTAINERS update, add submaintainers and reviewers
  staging: exfat: use BIT macro for defining sizes
  staging: exfat: cleanup blank line warnings
  x86/math64: Provide a sane mul_u64_u32_div() implementation for x86_64
  dma-mapping: fix filename references
  iommu/dma: add a new dma_map_ops of get_merge_boundary()
  dma-mapping: introduce dma_get_merge_boundary()
  mmc: queue: use bigger segments if DMA MAP layer can merge the segments
  block: add a helper function to merge the segments
  usb: chipidea: msm: Use device-managed registration API
  ext4: fix kernel oops caused by spurious casefold flag
  cpufreq: Add qcs404 to cpufreq-dt-platdev blacklist
  cpufreq: qcom: Add support for qcs404 on nvmem driver
  cpufreq: qcom: Refactor the driver to make it easier to extend
  cpufreq: qcom: Re-organise kryo cpufreq to use it for other nvmem based qcom socs
  dt-bindings: opp: Add qcom-opp bindings with properties needed for CPR
  dt-bindings: opp: qcom-nvmem: Support pstates provided by a power domain
  HID: hv: Remove dependencies on PAGE_SIZE for ring buffer
  ACPI: custom_method: fix memory leaks
  power: supply: cpcap-charger: Enable vbus boost voltage
  power: supply: sc27xx: Add POWER_SUPPLY_PROP_CALIBRATE attribute
  power: supply: sc27xx: Optimize the battery capacity calibration
  power: supply: sc27xx: Make sure the alarm capacity is larger than 0
  ACPI: thermal: Remove redundant acpi_has_method() calls
  power: supply: sc27xx: Fix the the accuracy issue of coulomb calculation
  power: supply: sc27xx: Fix conditon to enable the FGU interrupt
  power: supply: sc27xx: Add POWER_SUPPLY_PROP_ENERGY_FULL_DESIGN attribute
  Documentation: cpufreq: Update policy notifier documentation
  cpufreq: Remove CPUFREQ_ADJUST and CPUFREQ_NOTIFY policy notifier events
  ACPI / property: Fix acpi_graph_get_remote_endpoint() name in kerneldoc
  PM / Domains: Verify PM domain type in dev_pm_genpd_set_performance_state()
  PM / Domains: Simplify genpd_lookup_dev()
  power: supply: max77650: add MODULE_ALIAS()
  power: supply: isp1704: remove redundant assignment to variable ret
  power: supply: bq25890_charger: Add the BQ25895 part
  power: supply: sc27xx: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()
  power: supply: sc27xx: Introduce local variable 'struct device *dev'
  mvpp2: percpu buffers
  mvpp2: refactor BM pool functions
  power: reset: reboot-mode: Fix author email format
  power: supply: ab8500: remove set but not used variables 'vbup33_vrtcn' and 'bup_vch_range'
  power: supply: max17042_battery: Fix a typo in function names
  net: dsa: Fix off-by-one number of calls to devlink_port_unregister
  mlx5: Add missing init_net check in FIB notifier
  power: reset: gpio-restart: Fix typo when gpio reset is not found
  staging: exfat: make exfat depend on BLOCK
  x86, perf: Fix the dependency of the x86 insn decoder selftest
  Input: bu21013_ts - switch to using standard touchscreen properties
  Input: bu21013_ts - switch to using MT-B (slotted) protocol
  Input: bu21013_ts - fix suspend when wake source
  Input: bu21013_ts - use interrupt from I2C client
  Input: bu21013_ts - remove support for platform data
  Input: bu21013_ts - convert to using managed resources
  Input: bu21013_ts - remove useless comments
  Input: bu21013_ts - annotate supend/resume methods as __maybe_unused
  Input: bu21013_ts - rename some variables
  Input: bu21013_ts - convert to use GPIO descriptors
  ARM: ux500: improve BU21013 touchpad bindings
  ARM: multi_v7_defconfig: Make MAX77802 regulator driver built-in
  ARM: dts: exynos: Mark LDO10 as always-on on Peach Pit/Pi Chromebooks
  ARM: dts: exynos: Remove not accurate secondary ADC compatible
  dt-bindings: arm: idle-states: Move exit-latency-us explanation
  dt-bindings: arm: idle-states: Add punctuation to improve readability
  dt-bindings: arm: idle-states: Correct "constraint guarantees"
  dt-bindings: arm: idle-states: Correct references to wake-up delay
  dt-bindings: arm: idle-states: Use "e.g." and "i.e." consistently
  backlight: pwm_bl: Set scale type for brightness curves specified in the DT
  backlight: pwm_bl: Set scale type for CIE 1931 curves
  backlight: Expose brightness curve type through sysfs
  MAINTAINERS: Add entry for stable backlight sysfs ABI documentation
  backlight: gpio-backlight: Correct initial power state handling
  video: backlight: tosa_lcd: drop check because i2c_unregister_device() is NULL safe
  video: backlight: Drop default m for {LCD,BACKLIGHT_CLASS_DEVICE}
  pinctrl-mcp23s08: Fix property-name in dt-example
  microblaze: remove ioremap_fullcache
  tpm/tpm_ftpm_tee: Document fTPM TEE driver
  tpm/tpm_ftpm_tee: A driver for firmware TPM running inside TEE
  tpm: Remove a deprecated comments about implicit sysfs locking
  tpm_tis_core: Set TPM_CHIP_FLAG_IRQ before probing for interrupts
  tpm_tis_core: Turn on the TPM before probing IRQ's
  MAINTAINERS: fix style in KEYS-TRUSTED entry
  docs: ftrace: clarify when tracing is disabled by the trace file
  ASoC: soc-core: move soc_probe_link_components() position
  ASoC: soc-core: add snd_soc_dapm_init()
  ASoC: soc-core: dapm related setup at one place
  ASoC: soc-core: move soc_probe_component() position
  ASoC: soc-core: add soc_rtd_free()
  x86: Correct misc typos
  spi: ep93xx: Repair SPI CS lookup tables
  regulator: provide regulator_bulk_set_supply_names()
  drm/etnaviv: fix missing unlock on error in etnaviv_iommuv1_context_alloc()
  afs: Support RCU pathwalk
  afs: Provide an RCU-capable key lookup
  afs: Use afs_extract_discard() rather than iov_iter_discard()
  afs: remove unused variable 'afs_zero_fid'
  afs: remove unused variable 'afs_voltypes'
  mfd: cros_ec: Use mfd_add_hotplug_devices() helper
  mfd: cros_ec: Add convenience struct to define autodetectable CrOS EC subdevices
  mfd: cros_ec: Add convenience struct to define dedicated CrOS EC MCUs
  mfd: cros_ec: Use kzalloc and cros_ec_cmd_xfer_status helper
  mfd / platform: cros_ec: Reorganize platform and mfd includes
  mfd / platform: cros_ec: Rename config to a better name
  mfd: cros_ec: Switch to use the new cros-ec-chardev driver
  mfd / platform: cros_ec: Miscellaneous character device to talk with the EC
  mfd / platform: cros_ec: Move cros-ec core driver out from MFD
  mfd / platform: cros_ec: Handle chained ECs as platform devices
  mfd: mt6323: Add MT6323 RTC and PWRC
  mfd: mt6323: Replace boilerplate resource code with DEFINE_RES_* macros
  mfd: mt6397: Add mutex include
  dt-bindings: mfd: mediatek: Add MT6323 Power Controller
  dt-bindings: mfd: mediatek: Update RTC to include MT6323
  dt-bindings: mfd: mediatek: mt6397: Change to relative paths
  mfd: db8500-prcmu: Support the higher DB8520 ARMSS
  mfd: intel-lpss: Use MODULE_SOFTDEP() instead of implicit request
  mfd: htc-i2cpld: Drop check because i2c_unregister_device() is NULL safe
  mfd: sm501: Include the GPIO driver header
  mfd: intel-lpss: Add Intel Skylake ACPI IDs
  mfd: intel-lpss: Consistently use GENMASK()
  mfd: Add support for Merrifield Basin Cove PMIC
  mfd: ezx-pcap: Replace mutex_lock with spin_lock
  cuse: fix broken release
  fuse: cleanup fuse_wait_on_page_writeback
  fuse: require /dev/fuse reads to have enough buffer capacity (take 2)
  drivers/staging/exfat - by default, prohibit mount of fat/vfat
  power: supply: Init device wakeup after device_add()
  power: supply: ab8500_charger: Mark expected switch fall-through
  power: supply: sbs-battery: only return health when battery present
  MAINTAINERS: N900: Remove isp1704_charger.h record
  power: supply: sbs-battery: use correct flags field
  m68k: Remove ioremap_fullcache()
  m68k: Simplify ioremap_nocache()
  xtensa: virt: move PCI root complex to KIO range
  net/mlx5: Set only stag for match untagged packets
  net/mlx5: Add stub for mlx5_eswitch_mode
  net/mlx5: Avoid disabling RoCE when uninitialized
  net/mlx5: Add HW bits and definitions required for SW steering
  net/mlx5: Move device memory management to mlx5_core
  asm-generic: add unlikely to default BUG_ON(x)
  __div64_const32(): improve the generic C version
  xtensa: add support for call0 ABI in userspace
  xtensa: clean up PS_WOE_BIT usage
  power: supply: axp288_fuel_gauge: Add Minix Neo Z83-4 to the blacklist
  power: supply: axp288_fuel_gauge: Sort the DMI blacklist alphabetically
  power: supply: register HWMON devices with valid names
  net: dsa: mv88e6xxx: centralize SERDES IRQ handling
  net: dsa: mv88e6xxx: introduce .serdes_irq_status
  net: dsa: mv88e6xxx: introduce .serdes_irq_enable
  net: dsa: mv88e6xxx: pass lane to .serdes_power
  net: dsa: mv88e6xxx: merge mv88e6352_serdes_power_set
  net: dsa: mv88e6xxx: implement mv88e6352_serdes_get_lane
  net: dsa: mv88e6xxx: simplify .serdes_get_lane
  net: dsa: mv88e6xxx: introduce .serdes_irq_mapping
  net: dsa: mv88e6xxx: fix SERDES IRQ mapping
  net: dsa: mv88e6xxx: check errors in mv88e6352_serdes_irq_link
  net: hns3: remove set but not used variable 'qos'
  net: hns3: remove redundant assignment to pointer reg_info
  netlabel: remove redundant assignment to pointer iter
  r8169: don't set bit RxVlan on RTL8125
  drm/exynos: drop use of drmP.h
  leds: trigger: gpio: GPIO 0 is valid
  leds: pwm: Use struct_size() helper
  leds: is31fl32xx: Use struct_size() helper
  leds: ti-lmu-common: Fix coccinelle issue in TI LMU
  leds: lm3532: Avoid potentially unpaired regulator calls
  leds: syscon: Use resource managed variant of device register
  leds: Replace {devm_}led_classdev_register() macros with inlines
  dt-bindings: rtc: ds1307: add rx8130 compatible
  rtc: sun6i: Allow using as wakeup source from suspend
  rtc: pcf8563: let the core handle range offsetting
  rtc: pcf8563: remove useless indirection
  rtc: pcf8563: convert to devm_rtc_allocate_device
  rtc: pcf8563: add Microcrystal RV8564 compatible
  rtc: pcf8563: add Epson RTC8564 compatible
  rtc: s35390a: convert to devm_i2c_new_dummy_device()
  rtc: max77686: convert to devm_i2c_new_dummy_device()
  net/ncsi: add response handlers for PLDM over NC-SI
  rtc: pcf85363/pcf85263: fix regmap error in set_time
  rtc: snvs: switch to rtc_time64_to_tm/rtc_tm_to_time64
  rtc: snvs: set range
  devlink: Use switch-case instead of if-else
  devlink: Make port index data type as unsigned int
  net: tls: export protocol version, cipher, tx_conf/rx_conf to socket diag
  tcp: ulp: add functions to dump ulp-specific information
  net/tls: use RCU protection on icsk->icsk_ulp_data
  arm64: defconfig: Enable CPU clock drivers for Qualcomm msm8916
  arm64: defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
  ARM: multi_v7_defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
  ARM: qcom_defconfig: Add DRM_MSM to defconfigs with ARCH_QCOM
  objtool: Ignore intentional differences for the x86 insn decoder
  objtool: Update sync-check.sh from perf's check-headers.sh
  perf build: Ignore intentional differences for the x86 insn decoder
  perf intel-pt: Use shared x86 insn decoder
  perf intel-pt: Remove inat.c from build dependency list
  perf: Update .gitignore file
  objtool: Move x86 insn decoder to a common location
  perf metricgroup: Support multiple events for metricgroup
  perf metricgroup: Scale the metric result
  perf pmu: Change convert_scale from static to global
  perf symbols: Move mem_info and branch_info out of symbol.h
  perf auxtrace: Uninline functions that touch perf_session
  perf tools: Remove needless evlist.h include directives
  perf tools: Remove needless evlist.h include directives
  perf tools: Remove needless thread_map.h include directives
  perf tools: Remove needless thread.h include directives
  perf tools: Remove needless map.h include directives
  perf probe: No need for symbol.h, symbol_conf is enough
  perf tools: Remove needless sort.h include directives
  perf tools: Move 'struct events_stats' and prototypes to separate header
  perf hist: Remove needless ui/progress.h from hist.h
  perf dsos: Move the dsos struct and its methods to separate source files
  perf symbols: Move symsrc prototypes to a separate header
  perf symbols: Add missing linux/refcount.h to symbol.h
  perf symbol: Move C++ demangle defines to the only file using it
  perf dso: Adopt DSO related macros from symbol.h
  libtraceevent: Change users plugin directory
  libtraceevent: Remove tep_register_trace_clock()
  libtraceevent, perf tools: Changes in tep_print_event_* APIs
  perf event: Remove needless include directives from event.h
  arm64: dts: rockchip: limit clock rate of MMC controllers for RK3328
  perf env: Remove env.h from other headers where just a fwd decl is needed
  perf debug: Remove needless include directives from debug.h
  qede: Add support for dumping the grc data.
  qed: Add APIs for configuring grc dump config flags.
  qede: Add support for reading the config id attributes.
  qed: Add APIs for reading config id attributes.
  net: dsa: tag_8021q: Restore bridge VLANs when enabling vlan_filtering
  net: bridge: Populate the pvid flag in br_vlan_get_info
  tracing: Rename tracing_reset() to tracing_reset_cpu()
  tracing: Document the stack trace algorithm in the comments
  tracing/arm64: Have max stack tracer handle the case of return address after data
  recordmcount: Clarify what cleanup() does
  recordmcount: Remove redundant cleanup() calls
  recordmcount: Kernel style formatting
  recordmcount: Kernel style function signature formatting
  recordmcount: Rewrite error/success handling
  selftests/ftrace: Add syntax error test for multiprobe
  selftests/ftrace: Add syntax error test for immediates
  selftests/ftrace: Add a testcase for kprobe multiprobe event
  tracing/probe: Add immediate string parameter support
  tracing/probe: Add immediate parameter support
  tracing/uprobe: Add per-probe delete from event
  tracing/kprobe: Add per-probe delete from event
  tracing/uprobe: Add multi-probe per uprobe event support
  tracing/kprobe: Add multi-probe per event support
  tracing/dynevent: Pass extra arguments to match operation
  tracing/dynevent: Delete all matched events
  tracing/probe: Split trace_event related data from trace_probe
  recordmcount: Remove unused fd from uwrite() and ulseek()
  recordmcount: Remove uread()
  recordmcount: Remove redundant strcmp
  kprobes: Allow kprobes coexist with livepatch
  MIPS: PCI: refactor ioc3 special handling
  mips: remove ioremap_cachable
  MAINTAINERS: update entry of firewire audio drivers
  hwmon (coretemp) Fix a memory leak bug
  hwmon: (lm75) Fix write operations for negative temperatures
  hwmon: pmbus: ucd9000: remove unneeded include
  ext4 crypto: fix to check feature status before get policy
  mips/atomic: Fix smp_mb__{before,after}_atomic()
  mips/atomic: Fix loongson_llsc_mb() wreckage
  mips/atomic: Fix cmpxchg64 barriers
  arm64: dts: marvell: add DTS for Turris Mox
  dt-bindings: marvell: document Turris Mox compatible
  arm64: dts: marvell: armada-37xx: add SPI CS1 pinctrl
  xfs: remove the unused XFS_ALLOC_USERDATA flag
  xfs: cleanup xfs_fsb_to_db
  xfs: fix the dax supported check in xfs_ioctl_setattr_dax_invalidate
  xfs: Fix stale data exposure when readahead races with hole punch
  fs: Export generic_fadvise()
  mm: Handle MADV_WILLNEED through vfs_fadvise()
  xfs: allocate xattr buffer on demand
  xfs: consolidate attribute value copying
  xfs: move remote attr retrieval into xfs_attr3_leaf_getvalue
  xfs: remove unnecessary indenting from xfs_attr3_leaf_getvalue
  xfs: make attr lookup returns consistent
  xfs: reverse search directory freespace indexes
  xfs: speed up directory bestfree block scanning
  xfs: factor free block index lookup from xfs_dir2_node_addname_int()
  xfs: factor data block addition from xfs_dir2_node_addname_int()
  xfs: move xfs_dir2_addname()
  xfs: remove all *_ITER_CONTINUE values
  openrisc: map as uncached in ioremap
  or1k: dts: Add ethoc device to SMP devicetree
  libata/ahci: Drop PCS quirk for Denverton and beyond
  udp: Remove unlikely() from IS_ERR*() condition
  net/mlx5e: Remove unlikely() from WARN*() condition
  or1k: dts: Fix ethoc network configuration in or1ksim devicetree
  writeback: don't access page->mapping directly in track_foreign_dirty TP
  fs/namei.c: new helper - legitimize_root()
  kill the last users of user_{path,lpath,path_dir}()
  namei.h: get the comments on LOOKUP_... in sync with reality
  kill LOOKUP_NO_EVAL, don't bother including namei.h from audit.h
  bnxt_en: Fix compile error regression with CONFIG_BNXT_SRIOV not set.
  riscv: add arch/riscv/Kbuild
  [PATCH] fix d_absolute_path() interplay with fsmount()
  doc/af_xdp: include unaligned chunk case
  samples/bpf: use hugepages in xdpsock app
  samples/bpf: add buffer recycling for unaligned chunks to xdpsock
  samples/bpf: add unaligned chunks mode support to xdpsock
  libbpf: add flags to umem config
  net/mlx5e: Allow XSK frames smaller than a page
  mlx5e: modify driver for handling offsets
  ixgbe: modify driver for handling offsets
  i40e: modify driver for handling offsets
  xsk: add support to allow unaligned chunk placement
  ixgbe: simplify Rx buffer recycle
  i40e: simplify Rx buffer recycle
  selftests/bpf: Fix a typo in test_offload.py
  bpf: fix error check in bpf_tcp_gen_syncookie
  nfp: bpf: add simple map op cache
  nfp: bpf: rework MTU checking
  tools: bpftool: do not link twice against libbpf.a in Makefile
  tools: bpf: account for generated feature/ and libbpf/ directories
  tools: bpftool: improve and check builds for different make invocations
  tools: bpftool: ignore make built-in rules for getting kernel version
  bpf: s390: add JIT support for multi-function programs
  net/mlx5e: Move local var definition into ifdef block
  net: sched: cls_matchall: cleanup flow_action before deallocating
  tcp_bbr: clarify that bbr_bdp() rounds up in comments
  sched: act_vlan: implement stats_update callback
  net: stmmac: depend on COMMON_CLK
  arcnet: capmode: remove redundant assignment to pointer pkt
  bnxt_en: Add FW fatal devlink_health_reporter.
  bnxt_en: Add bnxt_fw_exception() to handle fatal firmware errors.
  bnxt_en: Add RESET_FW state logic to bnxt_fw_reset_task().
  bnxt_en: Do not send firmware messages if firmware is in error state.
  bnxt_en: Retain user settings on a VF after RESET_NOTIFY event.
  bnxt_en: Add devlink health reset reporter.
  bnxt_en: Handle firmware reset.
  bnxt_en: Handle RESET_NOTIFY async event from firmware.
  bnxt_en: Add new FW devlink_health_reporter
  bnxt_en: Add BNXT_STATE_IN_FW_RESET state.
  bnxt_en: Enable health monitoring.
  bnxt_en: Pre-map the firmware health monitoring registers.
  bnxt_en: Discover firmware error recovery capabilities.
  bnxt_en: Handle firmware reset status during IF_UP.
  bnxt_en: Register buffers for VFs before reserving resources.
  bnxt_en: Refactor bnxt_sriov_enable().
  bnxt_en: Prepare bnxt_init_one() to be called multiple times.
  bnxt_en: Suppress all error messages in hwrm_do_send_msg() in silent mode.
  bnxt_en: Simplify error checking in the SR-IOV message forwarding functions.
  bnxt_en: Convert error code in firmware message response to standard code.
  bnxt_en: Remove the -1 error return code from bnxt_hwrm_do_send_msg().
  bnxt_en: Use a common function to print the same ethtool -f error message.
  net: sgi: ioc3-eth: no need to stop queue set_multicast_list
  net: sgi: ioc3-eth: protect emcr in all cases
  net: sgi: ioc3-eth: Fix IPG settings
  net: sgi: ioc3-eth: use csum_fold
  net: sgi: ioc3-eth: use dma-direct for dma allocations
  net: sgi: ioc3-eth: refactor rx buffer allocation
  net: sgi: ioc3-eth: split ring cleaning/freeing and allocation
  net: sgi: ioc3-eth: introduce chip start function
  net: sgi: ioc3-eth: separate tx and rx ring handling
  net: sgi: ioc3-eth: get rid of ioc3_clean_rx_ring()
  net: sgi: ioc3-eth: allocate space for desc rings only once
  net: sgi: ioc3-eth: use defines for constants dealing with desc rings
  net: sgi: ioc3-eth: remove checkpatch errors/warning
  MIPS: SGI-IP27: restructure ioc3 register access
  MIPS: SGI-IP27: remove ioc3 ethernet init
  drm/amdgpu: Move null pointer dereference check
  drm/amdgpu: Fix undefined dm_ip_block for navi12
  drm/amdgpu: fix no interrupt issue for renoir emu (v2)
  drm/amdgpu: update IH_CHICKEN in oss 4.0 IP header for VG/RV series
  drm/amd/powerplay: SMU_MSG_OverridePcieParameters is unsupport for APU
  ahci: Do not export local variable ahci_em_messages
  drm/amdgpu: Handle job is NULL use case in amdgpu_device_gpu_recover
  asm-generic: don't provide __ioremap
  wimax/i2400m: remove debug containing bogus calculation of index
  PCI: Remove unnecessary returns
  PCI: OF: Correct of_irq_parse_pci() documentation
  PCI: Fix typos and whitespace errors
  RISC-V: Implement sparsemem
  riscv: Using CSR numbers to access CSRs
  media: sun4i: Make sun4i_csi_formats static
  ASoC: dt-bindings: Convert Allwinner A64 analog codec to a schema
  ASoC: dt-bindings: Convert Allwinner A33 codec to a schema
  ASoC: dt-bindings: sun4i-spdif: Fix dma-names warning
  isofs: Initialize filesystem timestamp ranges
  pstore: fs superblock limits
  fs: omfs: Initialize filesystem timestamp ranges
  fs: hpfs: Initialize filesystem timestamp ranges
  drm/panfrost: Remove unnecessary hwaccess_lock spin_lock
  drm/panfrost: Flush and disable address space when freeing page tables
  drm/panfrost: Add cache/TLB flush before switching address space
  drm/panfrost: Split mmu_hw_do_operation into locked and unlocked version
  drm/panfrost: Rework page table flushing and runtime PM interaction
  drm/panfrost: Remove unnecessary mmu->lock mutex
  drm/panfrost: Hold runtime PM reference until jobs complete
  drm/panfrost: Rework runtime PM initialization
  iommu/qcom: Use struct_size() helper
  iommu: Remove wrong default domain comments
  fs: ceph: Initialize filesystem timestamp ranges
  fs: sysv: Initialize filesystem timestamp ranges
  fs: affs: Initialize filesystem timestamp ranges
  fs: fat: Initialize filesystem timestamp ranges
  fs: cifs: Initialize filesystem timestamp ranges
  fs: nfs: Initialize filesystem timestamp ranges
  ext4: Initialize timestamps limits
  9p: Fill min and max timestamps in sb
  fs: Fill in max and min timestamps in superblock
  utimes: Clamp the timestamps before update
  mount: Add mount warning for impending timestamp expiry
  timestamp_truncate: Replace users of timespec64_trunc
  vfs: Add timestamp_truncate() api
  vfs: Add file timestamp range support
  irqchip/mmp: Coexist with GIC root IRQ controller
  irqchip/mmp: Mask off interrupts from other cores
  irqchip/mmp: Add missing chained_irq_{enter,exit}()
  irqchip/mmp: Do not use of_address_to_resource() to get mux regs
  iommu/dma: Fix for dereferencing before null checking
  irqchip/meson-gpio: Add support for meson sm1 SoCs
  dt-bindings: interrupt-controller: New binding for the meson sm1 SoCs
  iommu/mediatek: Clean up struct mtk_smi_iommu
  memory: mtk-smi: Get rid of need_larbid
  iommu/mediatek: Fix VLD_PA_RNG register backup when suspend
  memory: mtk-smi: Add bus_sel for mt8183
  memory: mtk-smi: Invoke pm runtime_callback to enable clocks
  iommu/mediatek: Add mmu1 support
  iommu/mediatek: Add mt8183 IOMMU support
  memory: mtk-smi: Add gals support
  iommu/mediatek: Move vld_pa_rng into plat_data
  iommu/mediatek: Move reset_axi into plat_data
  iommu/mediatek: Refine protect memory definition
  iommu/mediatek: Add larb-id remapped support
  iommu/mediatek: Add bclk can be supported optionally
  iommu/mediatek: Adjust the PA for the 4GB Mode
  iommu/io-pgtable-arm-v7s: Extend to support PA[33:32] for MediaTek
  iommu/io-pgtable-arm-v7s: Rename the quirk from MTK_4GB to MTK_EXT
  iommu/io-pgtable-arm-v7s: Use ias/oas to check the valid iova/pa
  iommu/io-pgtable-arm-v7s: Add paddr_to_iopte and iopte_to_paddr helpers
  iommu/mediatek: Fix iova_to_phys PA start for 4GB mode
  memory: mtk-smi: Use a struct for the platform data for smi-common
  memory: mtk-smi: Use a general config_port interface
  iommu/mediatek: Use a struct as the platform data
  dt-bindings: mediatek: Add binding for mt8183 IOMMU and SMI
  iommu: Revisit iommu_insert_resv_region() implementation
  iommu/vt-d: Fix wrong analysis whether devices share the same bus
  writeback: add tracepoints for cgroup foreign writebacks
  iommu/iova: Avoid false sharing on fq_timer_on
  blkcg: add missing NULL check in ioc_cpd_alloc()
  i2c: iproc: Make bcm_iproc_i2c_quirks constant
  i2c: iproc: Add full name of devicetree node to adapter name
  ASoC: mediatek: mt8183: fix space issues
  ASoC: mediatek: mt8183: remove forward declaration of headset_init
  ASoC: mediatek: mt8183: move headset jack to card-specific storage
  ASoC: mediatek: mt8183: move private structure
  spi: bcm-qspi: Make BSPI default mode
  spi: npcm-fiu: add NPCM FIU controller driver
  dt-binding: spi: add NPCM FIU controller
  spi: dw-pci: Add MODULE_DEVICE_TABLE
  MAINTAINERS: Add keyword pattern on regulator_get_optional()
  regulator: sy8824x: add prefixes to BUCK_EN and MODE macros
  regulator: sy8824x: use c++style for the comment block near SPDX
  regulator: mt6358: Add BROKEN dependency while waiting for MFD to merge
  ASoC: SOF/Intel: fix selection of SND_INTEL_NHTL
  ASoC: Intel: broadwell: Simplify device probe
  ASoC: Intel: bdw-rt5677: Simplify device probe
  ASoC: Intel: haswell: Simplify device probe
  ASoC: Intel: Haswell: Adjust machine device private context
  ASoC: ti: davinci-evm: Do not fail if the dai_set_sysclk returns -ENOTSUPP
  ASoC: ti: edma-pcm: Fix for legacy dma_slave_map based channel lookup
  ASoC: ti: davinci-i2s: Add S32_LE as support format
  ASoC: ti: davinci-i2s: Move the XSYNCERR workaround to .prepare callback
  iommu/amd: Silence warnings under memory pressure
  cfg80211: add local BSS receive time to survey information
  arm64: atomics: Use K constraint when toolchain appears to support it
  arm64: atomics: Undefine internal macros after use
  arm64: lse: Make ARM64_LSE_ATOMICS depend on JUMP_LABEL
  arm64: asm: Kill 'asm/atomic_arch.h'
  arm64: lse: Remove unused 'alt_lse' assembly macro
  microblaze: use the generic dma coherent remap allocator
  microblaze/nommu: use the generic uncached segment support
  crypto: hisilicon - select CRYPTO_LIB_DES while compiling SEC driver
  crypto: sha256 - Add missing MODULE_LICENSE() to lib/crypto/sha256.c
  crypto: ccp - invoke fallback for XTS ciphertext stealing
  crypto: nx - remove unused variables 'nx_driver_string' and 'nx_driver_version'
  crypto: atmel - Fix -Wunused-const-variable warning
  crypto: aegis128 - Fix -Wunused-const-variable warning
  crypto: caam - add clock entry for i.MX8MQ
  crypto: caam - always select job ring via RSR on i.MX8MQ
  crypto: caam - select DMA address size at runtime
  crypto: caam - don't hardcode inpentry size
  crypto: caam - drop explicit usage of struct jr_outentry
  crypto: caam - move cpu_to_caam_dma() selection to runtime
  crypto: caam - make CAAM_PTR_SZ dynamic
  crypto: caam - share definition for MAX_SDLEN
  crypto: caam - drop 64-bit only wr/rd_reg64()
  crypto: caam - use ioread64*_hi_lo in rd_reg64
  crytpo: caam - make use of iowrite64*_hi_lo in wr_reg64
  crypto: caam - request JR IRQ as the last step
  crypto: caam - convert caam_jr_init() to use devres
  crypto: caam - simplfy clock initialization
  crypto: caam - move DMA mask selection into a function
  crypto: caam/qi - use print_hex_dump_debug function to print debug messages
  crypto: inside-secure - add support for using the EIP197 without vendor firmware
  crypto: inside-secure - add support for PCI based FPGA development board
  crypto: inside-secure - Remove redundant algo to engine mapping code
  crypto: inside-secure - make driver selectable for non-Marvell hardware
  crypto: s5p - use correct block size of 1 for ctr(aes)
  crypto: s5p - deal gracefully with bogus input sizes
  crypto: arm64/aes - implement accelerated ESSIV/CBC mode
  crypto: arm64/aes-cts-cbc - factor out CBC en/decryption of a walk
  crypto: essiv - add tests for essiv in cbc(aes)+sha256 mode
  crypto: arm64/aegis128 - use explicit vector load for permute vectors
  crypto: picoxcell - Fix the name of the module in the description of CRYPTO_DEV_PICOXCELL
  scsi: fnic: print port speed only at driver init or speed change
  mtd: spi-nor: Rename "n25q512a" to "mt25qu512a (n25q512a)"
  mtd: spi-nor: Add support for mt35xu02g
  erofs: reduntant assignment in __erofs_get_meta_page()
  erofs: remove all likely/unlikely annotations
  MAINTAINERS: fix up exfat directory location
  staging: exfat: add exfat filesystem code to staging
  usb: gadget: net2280: Add workaround for AB chip Errata 11
  usb: gadget: net2280: Move all "ll" registers in one structure
  usb: dwc3: gadget: Workaround Mirosoft's BESL check
  ALSA: firewire-motu: add support for MOTU 4pre
  xfs: remove all *_ITER_ABORT values
  powerpc/64s/exception: reduce page fault unnecessary loads
  powerpc/64s/exception: Remove pointless KVM handler name bifurcation
  powerpc/64s/exception: program check handler do not branch into a macro
  powerpc/64s/exception: move interrupt entry code above the common handler
  powerpc/64s/exception: INT_COMMON add DAR, DSISR, reconcile options
  powerpc/64s/exception: Expand EXCEPTION_PROLOG_COMMON_1 and 2 into caller
  powerpc/64s/exception: Expand EXCEPTION_COMMON macro into caller
  powerpc/64s/exception: Add INT_COMMON gas macro to generate common exception code
  powerpc/64s/exception: Merge EXCEPTION_PROLOG_COMMON_2/3
  powerpc/64s/exception: KVM_HANDLER reorder arguments to match other macros
  powerpc/64s/exception: Add INT_KVM_HANDLER gas macro
  powerpc/64s/exception: INT_HANDLER support HDAR/HDSISR and use it in HDSI
  powerpc/64s/exception: Add the virt variant of the denorm interrupt handler
  powerpc/64s/exception: remove EXCEPTION_PROLOG_0/1, rename _2
  powerpc/64s/exceptions: Use keyword params to shorten arg lists
  net: spider_net: Use struct_size() helper
  r8169: add support for EEE on RTL8125
  r8169: add RTL8125 PHY initialization
  r8169: add support for RTL8125
  r8169: don't use bit LastFrag in tx descriptor after send
  r8169: read common register for PCI commit
  r8169: move disabling interrupt coalescing to RTL8169/RTL8168 init
  r8169: factor out reading MAC address from registers
  r8169: restrict rtl_is_8168evl_up to RTL8168 chip versions
  r8169: change interrupt mask type to u32
  powerpc/64s/exception: Replace PROLOG macros and EXC helpers with a gas macro
  powerpc/64s/exception: remove 0xb00 handler
  powerpc/64s/exception: Fix performance monitor virt handler
  powerpc/64s/exception: Add EXC_HV_OR_STD, which selects HSRR if HVMODE
  powerpc/64s/exception: move head-64.h exception code to exception-64s.S
  powerpc/64s/exception: Fix DAR load for handle_page_fault error case
  powerpc/64s/exception: machine check improve labels and comments
  powerpc/64s/exception: untangle early machine check handler branch
  powerpc/64s/exception: machine check move unrecoverable handling out of line
  powerpc/64s/exception: simplify machine check early path
  powerpc/64s/exception: machine check move tramp code
  powerpc/64s/exception: machine check restructure to reuse common macros
  powerpc/64s/exception: machine check pseries should skip the late handler for kernel MCEs
  powerpc/64s/pseries: machine check convert to use common event code
  powerpc/64s/powernv: machine check dump SLB contents
  powerpc/64s/exception: machine check use correct cfar for late handler
  powerpc/64s/exception: machine check remove machine_check_pSeries_0 branch
  powerpc/64s/exception: machine check pseries should always run the early handler
  powerpc/64s/exception: machine check adjust RFI target
  powerpc/64s/exception: machine check fix KVM guest test
  powerpc/64s/exception: machine check remove bitrotted comment
  powerpc/64s/exception: machine check fwnmi remove HV case
  net: dsa: mv88e6xxx: fix freeing unused SERDES IRQ
  net: dsa: mv88e6xxx: keep CMODE writable code private
  net: dsa: mv88e6xxx: get serdes lane after lock
  net: hns3: not allow SSU loopback while execute ethtool -t dev
  net: hns3: check reset interrupt status when reset fails
  net: hns3: add phy selftest function
  net: hns3: implement .process_hw_error for hns3 client
  net: hns3: optimize waiting time for TQP reset
  net: hns3: fix incorrect type in assignment.
  net: hns3: make some reusable codes into a function
  net: hns3: optimize some log printings
  net: hns3: reduce the parameters of some functions
  net: hns3: modify base parameter of kstrtouint in hclge_dbg_dump_tm_map
  net: hns3: use macro instead of magic number
  net: hns3: code optimization for debugfs related to "dump reg"
  powerpc/configs: Enable secure guest support in pseries and ppc64 defconfigs
  powerpc/pseries/svm: Force SWIOTLB for secure guests
  powerpc/pseries/iommu: Don't use dma_iommu_ops on secure guests
  powerpc/pseries/svm: Disable doorbells in SVM guests
  powerpc/pseries/svm: Export guest SVM status to user space via sysfs
  powerpc/pseries/svm: Unshare all pages before kexecing a new kernel
  powerpc/pseries/svm: Use shared memory for Debug Trace Log (DTL)
  powerpc/pseries/svm: Use shared memory for LPPACA structures
  powerpc/pseries: Add and use LPPACA_SIZE constant
  powerpc: Introduce the MSR_S bit
  powerpc/pseries/svm: Add helpers for UV_SHARE_PAGE and UV_UNSHARE_PAGE
  powerpc/prom_init: Add the ESM call to prom_init
  powerpc: Add support for adding an ESM blob to the zImage wrapper
  powerpc/pseries: Introduce option to build secure virtual machines
  dpaa2-eth: Add pause frame support
  dpaa2-eth: Use stored link settings
  dpaa2-eth: Remove support for changing link settings
  powerpc/powernv: Add ultravisor message log interface
  powerpc/powernv/opal-msglog: Refactor memcons code
  powerpc/kvm: Use UV_RETURN ucall to return to ultravisor
  powerpc/powernv: Access LDBAR only if ultravisor disabled
  powerpc/mm: Write to PTCR only if ultravisor disabled
  powerpc/mm: Use UV_WRITE_PATE ucall to register a PATE
  powerpc/powernv: Introduce FW_FEATURE_ULTRAVISOR
  powerpc/kernel: Add ucall_norets() ultravisor call handler
  Documentation/powerpc: Ultravisor API
  Documentation/powerpc: Add ELF note documentation
  powerpc: Add PowerPC Capabilities ELF note
  powerpc/powernv/ioda: Remove obsolete iommu_table_ops::exchange callbacks
  powerpc/pseries/iommu: Switch to xchg_no_kill
  vfio/spapr_tce: Invalidate multiple TCEs at once
  KVM: PPC: Book3S: Invalidate multiple TCEs at once
  powerpc/powernv/ioda: Split out TCE invalidation from TCE updates
  KVM: PPC: Book3S: Fix incorrect guest-to-user-translation error handling
  arm64: dts: meson-sm1-sei610: add stdout-path property back
  arm64: dts: meson-sm1-sei610: enable DVFS
  arm64: dts: khadas-vim3: add support for the SM1 based VIM3L
  dt-bindings: arm: amlogic: add Amlogic SM1 based Khadas VIM3L bindings
  arm64: dts: khadas-vim3: move common nodes into meson-khadas-vim3.dtsi
  arm64: dts: meson: g12a: add reset to tdm formatters
  arm64: dts: meson: g12a: audio clock controller provides resets
  arm64: dts: meson-sm1-sei610: enable DVFS
  arm64: dts: meson-gxm-khadas-vim2: use rc-khadas keymap
  arm64: dts: meson-gxl-s905w-tx3-mini: add rc-tx3mini keymap
  arm64: dts: meson-gxl-s905x-khadas-vim: use rc-khadas keymap
  arm64: dts: meson-gxbb-wetek-play2: add rc-wetek-play2 keymap
  arm64: dts: meson-gxbb-wetek-hub: add rc-wetek-hub keymap
  arm64: dts: meson-g12a-x96-max: add rc-x96max keymap
  arm64: dts: meson-g12b-odroid-n2: add rc-odroid keymap
  arm64: dts: meson-sm1-sei610: add USB support
  arm64: dts: meson-sm1-sei610: add HDMI display support
  arm64: dts: meson-g12: add Everything-Else power domain controller
  arm64: dts: meson: fix boards regulators states format
  arm64: dts: meson-gxbb-p201: fix snps, reset-delays-us format
  arm64: dts: meson-gxbb-nanopi-k2: add missing model
  arm64: dts: meson-g12a-x96-max: fix compatible
  arm64: dts: meson-g12a: fix reset controller compatible
  arm64: dts: meson-axg: fix MHU compatible
  arm64: dts: meson-gxl: fix internal phy compatible
  arm64: dts: meson-gx: fix periphs bus node name
  arm64: dts: meson-gx: fix mhu compatible
  arm64: dts: meson-gx: fix watchdog compatible
  arm64: dts: meson-gx: fix spifc compatible
  arm64: dts: meson-gx: fix reset controller compatible
  arm64: dts: meson-gx: drop the vpu dmc memory cell
  arm64: dts: meson: fix ethernet mac reg format
  arm64: dts: meson: g12a-common: add VRTC
  dt-bindings: power: add Amlogic Everything-Else power domains bindings
  dt-bindings: Clarify interrupts-extended usage
  scsi: bnx2fc: remove set but not used variables 'task','port','orig_task'
  scsi: bnx2fc: remove set but not used variables 'lport','host'
  scsi: bnx2fc: remove set but not used variable 'fh'
  scsi: qedf: Update the version to 8.42.3.0
  scsi: qedf: Fix race betwen fipvlan request and response path
  scsi: qedf: Use discovery list to traverse rports
  scsi: qedf: Decrease the LL2 MTU size to 2500
  scsi: qedf: Check for module unloading bit before processing link update AEN
  scsi: qedf: Initiator fails to re-login to switch after link down
  scsi: qedf: Add debug information for unsolicited processing
  scsi: qedf: Add support for 20 Gbps speed
  scsi: qedf: Interpret supported caps value correctly
  scsi: qedf: Add shutdown callback handler
  scsi: qedf: Update module description string
  scsi: qedf: Fix crash during sg_reset
  scsi: qedf: Stop sending fipvlan request on unload
  scsi: qedf: Print message during bailout conditions
  scsi: smartpqi: bump version
  scsi: smartpqi: update copyright
  scsi: smartpqi: add new pci ids
  scsi: smartpqi: correct REGNEWD return status
  scsi: smartpqi: add gigabyte controller
  scsi: smartpqi: correct hang when deleting 32 lds
  scsi: smartpqi: add bay identifier
  scsi: smartpqi: add sysfs entries
  scsi: smartpqi: add module param to hide vsep
  scsi: smartpqi: add pci ids for fiberhome controller
  scsi: smartpqi: add module param for exposure order
  scsi: lpfc: fix 12.4.0.0 GPF at boot
  scsi: lpfc: Remove bg debugfs buffers
  scsi: lpfc: Resolve checker warning for lpfc_new_io_buf()
  scsi: ufs: remove set but not used variable 'val'
  scsi: qla2xxx: fix spelling mistake "initializatin" -> "initialization"
  scsi: hisi_sas: remove set but not used variable 'irq_value'
  scsi: mpt3sas: Introduce module parameter to override queue depth
  scsi: qla2xxx: Fix a recently introduced kernel warning
  scsi: ufs: fix broken hba->outstanding_tasks
  scsi: fcoe: remove redundant call to skb_transport_header
  scsi: ufs: Disable local LCC in .link_startup_notify() in Cadence UFS
  Input: i8042 - enable wakeup on a stable struct device
  scsi: bfa: remove redundant assignment to variable error
  drm/amdgpu: Enable DC on Renoir
  drm/amd/display: Add DCN2.1 changes to DML
  drm/amd/display: Correct order of RV family clk managers for Renoir
  drm/amd/display: add Renoir to kconfig
  drm/amd/display: build dcn21 blocks
  drm/amd/display: add dcn21 core DC changes
  drm/amd/display: add dal_asic_id for renoir
  drm/amd/display: call update_bw_bounding_box
  drm/amd/display: Handle Renoir in amdgpu_dm (v2)
  drm/amd/display: Handle Renoir in DC
  drm/amd/display: Fix register names
  drm/amd/display: Add Renoir DML
  drm/amd/display: Add Renoir GPIO
  drm/amd/display: Add Renoir resource (v2)
  drm/amd/display: Add Renoir clock manager
  drm/amd/display: Add Renoir Hubbub (v2)
  drm/amd/display: Add Renoir hubbub registers list
  drm/amd/display: Add hubp block for Renoir (v2)
  drm/amd/display: Add Renoir irq_services (v2)
  drm/amd/display: Add pp_smu functions for Renoir
  drm/amd/display: Add Renoir hw_seq register list
  drm/amd/display: Add Renoir clock registers list
  drm/amd/display: Add Renoir registers (v3)
  drm/amd/powerplay: add the interface for getting ultimate frequency v3
  drm/amd/powerplay: enable populate DPM clocks table for swSMU APU
  drm/amd/powerplay: regards the APU always enable the dpm feature mask
  drm/amdgpu: Initialize and update SDMA power gating
  drm/amdgpu/psp: keep TMR in visible vram region for SRIOV
  drm/amdgpu: keep the stolen memory in visible vram region
  drm/amdgpu: fix spelling mistake "jumpimng" -> "jumping"
  drm/amdgpu/virtual_dce: drop error message in hw_init
  drm/amdgpu/si: fix ASIC tests
  drm/amd/amdgpu: hide voltage and power sensors on SI and KV parts
  drm/amdgpu: introduce vram lost for reset (v2)
  drm/amd/powerplay: enable jpeg powergating for navi1x
  drm/amdgpu: enable athub powergating for navi12
  drm/amdgpu: enable vcn powergating for navi12
  drm/amdgpu: correct in_suspend setting for navi series
  libnvdimm/security: Consolidate 'security' operations
  libnvdimm/security: Tighten scope of nvdimm->busy vs security operations
  libnvdimm/security: Introduce a 'frozen' attribute
  libnvdimm, region: Use struct_size() in kzalloc()
  perf tools: Remove debug.h from header files not needing it
  perf tools: Remove perf.h from source files not needing it
  perf tools: Remove needless perf.h include directive from headers
  perf time-utils: Adopt rdclock() from perf.h
  perf tools: Move everything related to sys_perf_event_open() to perf-sys.h
  perf header: Move CPUINFO_PROC to the only file where it is used
  perf tools: Remove needless libtraceevent include directives
  libperf: Warn when exceeding MAX_NR_CPUS in cpumap
  perf header: Replace MAX_NR_CPUS with cpu__max_cpu()
  perf machine: Replace MAX_NR_CPUS with perf_env::nr_cpus_online
  perf session: Replace MAX_NR_CPUS with perf_env::nr_cpus_online
  perf stat: Replace MAX_NR_CPUS with cpu__max_cpu()
  perf svghelper: Replace MAX_NR_CPUS with perf_env::nr_cpus_online
  perf timechart: Refactor svg_build_topology_map()
  perf c2c: Display proper cpu count in nodes column
  i2c: piix4: Add ACPI support
  i2c: piix4: Fix probing of reserved ports on AMD Family 16h Model 30h
  i2c: ocores: use request_any_context_irq() to register IRQ handler
  i2c: designware: Fix optional reset error handling
  i2c: designware: assert reset when error happen at ->probe()
  i2c: taos-evm: Make structure tsl2550_info constant
  i2c: designware-pci: Add support for Elkhart Lake PSE I2C
  i2c: designware-pci: Switch over to MSI interrupts
  nvme-rdma: Use rq_dma_dir macro
  nvme-fc: Use rq_dma_dir macro
  nvme-pci: Tidy up nvme_unmap_data
  nvme: make fabrics command run on a separate request queue
  nvme-pci: Support shared tags across queues for Apple 2018 controllers
  nvme-pci: Add support for Apple 2018+ models
  nvme-pci: Add support for variable IO SQ element size
  nvme-pci: Pass the queue to SQ_SIZE/CQ_SIZE macros
  nvme: trace bio completion
  nvme-multipath: fix ana log nsid lookup when nsid is not found
  nvmet-tcp: Add TOS for tcp transport
  nvme-tcp: Add TOS for tcp transport
  nvme-tcp: Use struct nvme_ctrl directly
  nvme-rdma: Add TOS for rdma transport
  nvme-fabrics: Add type of service (TOS) configuration
  nvmet-tcp: fix possible memory leak
  nvmet-tcp: fix possible NULL deref
  nvmet: trace: parse Get LBA Status command in detail
  nvme: trace: parse Get LBA Status command in detail
  nvme: trace: support for Get LBA Status opcode parsed
  nvme: add Get LBA Status command opcode
  nvmet: fix data units read and written counters in SMART log
  nvme-tcp: support simple polling
  nvme: tcp: selects CRYPTO_CRC32C for nvme-tcp
  nvme: don't pass cap to nvme_disable_ctrl
  nvme: move sqsize setting to the core
  nvme-pci: set ctrl sqsize to the device q_depth
  nvme: have nvme_init_identify set ctrl->cap
  nvme-tcp: Use protocol specific operations while reading socket
  nvme-tcp: cleanup nvme_tcp_recv_pdu
  ASoC: Intel: Baytrail: Fix implicit fallthrough warning
  ASoC: fsl_ssi: Fix clock control issue in master mode
  i2c: axxia: support slave mode
  i2c: icy: Add LTC2990 present on 2019 board revision
  i2c: Add i2c-icy for I2C on m68k/Amiga
  kbuild: Do not enable -Wimplicit-fallthrough for clang for now
  x86/mm/pti: Do not invoke PTI functions when PTI is disabled
  x86/mm/pti: Handle unaligned address gracefully in pti_clone_pagetable()
  i2c: bcm2835: Add full name of devicetree node to adapter name
  i2c: bcm2835: Avoid clk stretch quirk for BCM2711
  dt-bindings: i2c: bcm2835: Add brcm,bcm2711 compatible
  rpmsg: glink: Use struct_size() helper
  ima: ima_api: Use struct_size() in kzalloc()
  ima: use struct_size() in kzalloc()
  sefltest/ima: support appended signatures (modsig)
  cpupower: update German translation
  blkcg: fix missing free on error path of blk_iocost_init()
  rtc: snvs: fix possible race condition
  tools/power/cpupower: fix 64bit detection when cross-compiling
  cpupower: Add missing newline at end of file
  blkcg: blk-iocost: predeclare used structs
  ALSA: firewire-lib: fix isoc cycle count to which rx packet is scheduled
  ALSA: dice: fix error path for initialization of stream structures
  kbuild: clean up subdir-ymn calculation in Makefile.clean
  kbuild: remove unneeded '+' marker from cmd_clean
  kbuild: remove clean-dirs syntax
  kbuild: check clean srctree even earlier
  kbuild: remove prepare3 target
  kbuild: move the clean srctree check to the outputmakefile target
  kbuild: clarify where to run make mrproper when out-of-tree fails
  kbuild: Inform user to pass ARCH= for make mrproper only when necessary
  kbuild: remove 'Using ... as source for kernel' message
  kbuild: get rid of $(realpath ...) from scripts/mkmakefile
  kbuild: remove unneeded dependency for $(DOC_TARGETS)
  kbuild: remove unneeded comments and code from scripts/basic/Makefile
  arm64: atomics: Remove atomic_ll_sc compilation unit
  arm64: avoid using hard-coded registers for LSE atomics
  arm64: atomics: avoid out-of-line ll/sc atomics
  MIPS: document mixing "slightly different CCAs"
  arm64: document the choice of page attributes for pgprot_dmacoherent
  dma-mapping: make dma_atomic_pool_init self-contained
  dma-mapping: remove arch_dma_mmap_pgprot
  s390/zcrypt: fix wrong handling of cca cipher keygenflags
  arm64: Use correct ll/sc atomic constraints
  jump_label: Don't warn on __exit jump entries
  KVM: selftests: Add a test for the KVM_S390_MEM_OP ioctl
  KVM: s390: improve documentation for S390_MEM_OP
  KVM: s390: Test for bad access register and size at the start of S390_MEM_OP
  s390/kasan: add kdump support
  s390/setup: avoid using strncmp with hardcoded length
  s390/sclp: avoid using strncmp with hardcoded length
  s390/module: avoid using strncmp with hardcoded length
  s390/pci: avoid using strncmp with hardcoded length
  media: imx: remove unused including <linux/version.h>
  media: stm32-dcmi: Delete an unnecessary of_node_put() call in dcmi_probe()
  media: pvrusb2: qctrl.flag will be uninitlaized if cx2341x_ctrl_query() returns error code
  media: em28xx: Fix exception handling in em28xx_alloc_urbs()
  arm64: dts: ti: k3-j721e-main: Fix gic-its node unit-address
  arm64: dts: ti: k3-am65-main: Fix gic-its node unit-address
  arm64: dts: ti: k3-j721e-main: Add hwspinlock node
  arm64: dts: ti: k3-am65-main: Add hwspinlock node
  arm64: dts: k3-j721e: Add gpio-keys on common processor board
  dt-bindings: pinctrl: k3: Introduce pinmux definitions for J721E
  arm64: dts: ti: k3-j721e-common-proc-board: Disable unused gpio modules
  arm64: dts: ti: k3-j721e: Add gpio nodes in wakeup domain
  arm64: dts: ti: k3-j721e: Add gpio nodes in main domain
  arm64: dts: ti: k3-j721e: Update the power domain cells
  arm64: dts: ti: k3-am654: Update the power domain cells
  mtd: rawnand: omap2: Fix number of bitflips reporting with ELM
  mtd: rawnand: brcmnand: Fix ecc chunk calculation for erased page bitfips
  tools lib traceevent: Remove unneeded qsort and uses memmove instead
  tools lib traceevent: Do not free tep->cmdlines in add_new_comm() on failure
  perf evlist: Use unshare(CLONE_FS) in sb threads to let setns(CLONE_NEWNS) work
  libperf: Move 'enum perf_user_event_type' to perf/event.h
  libperf: Rename the PERF_RECORD_ structs to have a "perf" prefix
  libperf: Add 'union perf_event' to perf/event.h
  libperf: Add PERF_RECORD_COMPRESSED 'struct compressed_event' to perf/event.h
  libperf: Add PERF_RECORD_HEADER_FEATURE 'struct feature_event' to perf/event.h
  libperf: Add PERF_RECORD_TIME_CONV 'struct time_conv_event' to perf/event.h
  libperf: Add PERF_RECORD_STAT_ROUND 'struct stat_round_event' to perf/event.h
  libperf: Add PERF_RECORD_STAT 'struct stat_event' to perf/event.h
  libperf: Add PERF_RECORD_STAT_CONFIG 'struct stat_config_event' to perf/event.h
  libperf: Add PERF_RECORD_THREAD_MAP 'struct thread_map_event' to perf/event.h
  libperf: Add PERF_RECORD_SWITCH 'struct context_switch_event' to perf/event.h
  libperf: Add PERF_RECORD_ITRACE_START 'struct itrace_start_event' to perf/event.h
  libperf: Add PERF_RECORD_AUX 'struct aux_event' to perf/event.h
  libperf: Add PERF_RECORD_AUXTRACE_ERROR 'struct auxtrace_error_event' to perf/event.h
  libperf: Add PERF_RECORD_AUXTRACE 'struct auxtrace_event' to perf/event.h
  libperf: Add PERF_RECORD_AUXTRACE_INFO 'struct auxtrace_info_event' to perf/event.h
  posix-cpu-timers: Make expiry_active check actually work correctly
  mtd: spi-nor: remove superfluous pass of nor->info->sector_size
  powerpc/of/pci: Rewrite pci_parse_of_flags
  driver core: platform: Export platform_get_irq_optional()
  usb:cdns3 Fix for stuck packets in on-chip OUT buffer.
  usb: cdns3: Add Cadence USB3 DRD Driver
  usb: common: Simplify usb_decode_get_set_descriptor function.
  usb: common: Patch simplify usb_decode_set_clear_feature function.
  usb: common: Separated decoding functions from dwc3 driver.
  dt-bindings: add binding for USBSS-DRD controller.
  mtd: spi-nor: enable the debugfs for the partname and partid
  mtd: mtdcore: add debugfs nodes for querying the flash name and id
  ARM: 8891/1: EDAC: armada_xp: Add support for more SoCs
  ARM: 8888/1: EDAC: Add driver for the Marvell Armada XP SDRAM and L2 cache ECC
  ARM: 8892/1: EDAC: Add missing debugfs_create_x32 wrapper
  ARM: 8890/1: l2x0: add marvell,ecc-enable property for aurora
  ARM: 8889/1: dt-bindings: document marvell,ecc-enable binding
  ARM: 8886/1: l2x0: support parity-enable/disable on aurora
  ARM: 8885/1: aurora-l2: add defines for parity and ECC registers
  ARM: 8887/1: aurora-l2: add prefix to MAX_RANGE_SIZE
  ARM: 8902/1: l2c: move cache-aurora-l2.h to asm/hardware
  ARM: 8900/1: UNWINDER_FRAME_POINTER implementation for Clang
  posix-timers: Unbreak CONFIG_POSIX_TIMERS=n build
  blkcg: add tools/cgroup/iocost_coef_gen.py
  blkcg: add tools/cgroup/iocost_monitor.py
  blkcg: implement blk-iocost
  blk-mq: add optional request->alloc_time_ns
  blkcg: s/RQ_QOS_CGROUP/RQ_QOS_LATENCY/
  block/rq_qos: implement rq_qos_ops->queue_depth_changed()
  block/rq_qos: add rq_qos_merge()
  blkcg: separate blkcg_conf_get_disk() out of blkg_conf_prep()
  blkcg: make ->cpd_init_fn() optional
  blkcg: pass @q and @blkcg into blkcg_pol_alloc_pd_fn()
  mlxsw: spectrum_ptp: Add counters for GC events
  mlxsw: Bump firmware version to 13.2000.1886
  mlxsw: spectrum: Prevent auto negotiation on number of lanes
  mlxsw: Remove 56G speed support
  nfsd: eliminate an unnecessary acl size limit
  net: phy: force phy suspend when calling phy_stop
  phy: mdio-sun4i: use devm_platform_ioremap_resource() to simplify code
  phy: mdio-mux-meson-g12a: use devm_platform_ioremap_resource() to simplify code
  phy: mdio-moxart: use devm_platform_ioremap_resource() to simplify code
  phy: mdio-hisi-femac: use devm_platform_ioremap_resource() to simplify code
  phy: mdio-bcm-iproc: use devm_platform_ioremap_resource() to simplify code
  wimax/i2400m: remove redundant assignment to variable result
  ipv6: shrink struct ipv6_mc_socklist
  dt-bindings: Convert Arm Mali Utgard GPU to DT schema
  dt-bindings: Convert Arm Mali Bifrost GPU to DT schema
  dt-bindings: Convert Arm Mali Midgard GPU to DT schema
  soc: amlogic: Add support for Everything-Else power domains controller
  libperf: Add PERF_RECORD_ID_INDEX 'struct id_index_event' to perf/event.h
  libperf: Add PERF_RECORD_HEADER_BUILD_ID 'struct build_id_event' to perf/event.h
  libperf: Add PERF_RECORD_HEADER_TRACING_DATA 'struct tracing_data_event' to perf/event.h
  libperf: Add PERF_RECORD_HEADER_EVENT_TYPE 'struct event_type_event' to perf/event.h
  libperf: Add PERF_RECORD_EVENT_UPDATE 'struct event_update_event' to perf/event.h
  libperf: Add PERF_RECORD_CPU_MAP 'struct cpu_map_event' to perf/event.h
  libperf: Add PERF_RECORD_HEADER_ATTR 'struct attr_event' to perf/event.h
  perf top: Fix event group with more than two events
  perf top: Decay all events in the evlist
  perf clang: Delete needless util-cxx.h header
  hwmon: pwm-fan: Use platform_get_irq_optional()
  driver core: platform: Introduce platform_get_irq_optional()
  usb: xhci-mtk: add an optional xhci_ck clock
  dt-bindings: usb: mtk-xhci: add an optional xhci_ck clock
  PCI/ACPI: Remove unnecessary struct hotplug_program_ops
  PCI/ACPI: Move _HPP & _HPX functions to pci-acpi.c
  staging: most: sound: Fix error path of audio_init
  staging: rtl8192u: Fix indentation
  perf evlist: Remove needless util.h from evlist.h
  perf tools: Remove needless util.h include from builtin.h
  perf tools: Warn that perf_event_paranoid can restrict kernel symbols
  perf symbols: Use CAP_SYSLOG with kptr_restrict checks
  perf evsel: Kernel profiling is disallowed only when perf_event_paranoid > 1
  perf tools: Use CAP_SYS_ADMIN with perf_event_paranoid checks
  perf event: Check ref_reloc_sym before using it
  PCI/ACPI: Rename _HPX structs from hpp_* to hpx_*
  ima: Fix use after free in ima_read_modsig()
  net/mlx5e: Support TSO and TX checksum offloads for IP-in-IP tunnels
  net/mlx5e: Improve stateless offload capability check
  net/mlx5e: Support RSS for IP-in-IP and IPv6 tunneled packets
  net/mlx5e: Change function's position to a more fitting file
  net/mlx5e: Add device out of buffer counter
  net/mlx5e: Support LAG TX port affinity distribution
  net/mlx5e: Expose new function for TIS destroy loop
  net/mlx5e: ethtool, Fix a typo in WOL function names
  init/Kconfig: rework help of CONFIG_CC_OPTIMIZE_FOR_SIZE
  docs: kbuild: remove cc-ldoption from document again
  docs: kbuild: fix invalid ReST syntax
  RDMA/hns: Fix wrong assignment of qp_access_flags
  RDMA/hns: Delete the not-used lines
  RDMA/hns: Remove if-else judgment statements for creating srq
  RDMA/hns: Add reset process for function-clear
  RDMA/hns: Fix cast from or to restricted __le32 for driver
  RDMA/hns: Remove the some magic number
  RDMA/hns: Modify the data structure of hns_roce_av
  xfs: log proper length of btree block in scrub/repair
  xfs: reinitialize rm_flags when unpacking an offset into an rmap irec
  xfs: remove unnecessary int returns from deferred bmap functions
  xfs: remove unnecessary int returns from deferred refcount functions
  xfs: remove unnecessary int returns from deferred rmap functions
  xfs: remove unnecessary parameter from xfs_iext_inc_seq
  xfs: fix sign handling problem in xfs_bmbt_diff_two_keys
  xfs: don't return _QUERY_ABORT from xfs_rmap_has_other_keys
  xfs: fix maxicount division by zero error
  ext4: fix integer overflow when calculating commit interval
  staging: greybus: fix more header declarations
  ext4: use percpu_counters for extent_status cache hits/misses
  ext4: fix potential use after free after remounting with noblock_validity
  drm/panfrost: Use mutex_trylock in panfrost_gem_purge
  drm/shmem: Use mutex_trylock in drm_gem_shmem_purge
  drm/shmem: Do dma_unmap_sg before purging pages
  drm/panfrost: Fix possible suspend in panfrost_remove
  drm/panfrost: Add missing check for pfdev->regulator
  mm/mmu_notifiers: remove the __mmu_notifier_invalidate_range_start/end exports
  asm-generic/div64: Fix documentation of do_div() parameter
  ALSA: hda - Update descriptions about new position_fix values
  IB/mlx5: Add page fault handler for DC initiator WQE
  IB/mlx5: Remove check of FW capabilities in ODP page fault handling
  ARM: dts: ux500: Update thermal zone
  USB: serial: ftdi_sio: add support for FT232H CBUS gpios
  docs/perf: Add documentation for the i.MX8 DDR PMU
  PCI: Move ASPM declarations to linux/pci.h
  perf arch powerpc: Sync powerpc syscall.tbl
  powerpc: use the generic dma coherent remap allocator
  powerpc/64: remove support for kernel-mode syscalls
  powerpc: convert to copy_thread_tls
  powerpc/32: don't use CPU_FTR_COHERENT_ICACHE
  powerpc/32: drop CPU_FTR_UNIFIED_ID_CACHE
  powerpc/32s: use CONFIG_PPC_BOOK3S_601 instead of reading PVR
  powerpc/32s: drop CPU_FTR_USE_RTC feature
  powerpc/32s: get rid of CPU_FTR_601 feature
  powerpc/32s: add an option to exclusively select powerpc 601
  perf/imx_ddr: Add support for AXI ID filtering
  spi: bcm2835: Convert to use CS GPIO descriptors
  spi: fsl: Convert to use CS GPIO descriptors
  drivers: thermal: qcom: tsens: Fix memory leak from qfprom read
  x86/apic/vector: Warn when vector space exhaustion breaks affinity
  arm64: kpti: ensure patched kernel text is fetched from PoU
  input/vmmouse: Update the backdoor call with support for new instructions
  drm/vmwgfx: Update the backdoor call with support for new instructions
  x86/vmware: Add a header file for hypercall definitions
  arm64: fix fixmap copy for 16K pages and 48-bit VA
  tick: Mark sched_timer to expire in hard interrupt context
  hrtimer: Add kernel doc annotation for HRTIMER_MODE_HARD
  ASoC: wcd9335: Fix primary interpolator max rate
  ALSA: pcm: add support for 352.8KHz and 384KHz sample rate
  regulator: mt6358: Add support for MT6358 regulator
  regulator: Add document for MT6358 regulator
  ASoC: mediatek: mt8183: fix tdm out data is valid on rising edge
  ASoC: mediatek: mt8183: tdm hw support tdm out and 8ch i2s out
  x86/hyperv: Hide pv_ops access for CONFIG_PARAVIRT=n
  genirq/affinity: Remove const qualifier from node_to_cpumask argument
  usb: gadget: composite: Set recommended BESL values
  usb: dwc3: gadget: Set BESL config parameter
  usb: dwc3: Separate field holding multiple properties
  usb: gadget: Export recommended BESL values
  usb: phy: phy-fsl-usb: Make structure fsl_otg_initdata constant
  usb: udc: lpc32xx: silence fall-through warning
  usb: dwc3: meson-g12a: fix suspend resume regulator unbalanced disables
  usb: udc: lpc32xx: remove set but not used 3 variables
  usb: gadget: udc: core: Fix segfault if udc_bind_to_driver() for pending driver fails
  usb: dwc3: st: Add of_dev_put() in probe function
  usb: dwc3: st: Add of_node_put() before return in probe function
  usb: dwc3: don't set gadget->is_otg flag
  thermal: tegra: Fix a typo
  thermal: rcar_gen3_thermal: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()
  posix-cpu-timers: Utilize timerqueue for storage
  posix-cpu-timers: Move state tracking to struct posix_cputimers
  posix-cpu-timers: Deduplicate rlimit handling
  posix-cpu-timers: Remove pointless comparisons
  posix-cpu-timers: Get rid of 64bit divisions
  posix-cpu-timers: Consolidate timer expiry further
  posix-cpu-timers: Get rid of zero checks
  rlimit: Rewrite non-sensical RLIMIT_CPU comment
  posix-cpu-timers: Respect INFINITY for hard RTTIME limit
  posix-cpu-timers: Switch thread group sampling to array
  posix-cpu-timers: Restructure expiry array
  posix-cpu-timers: Remove cputime_expires
  posix-cpu-timers: Make expiry checks array based
  posix-cpu-timers: Provide array based sample functions
  posix-cpu-timers: Remove the odd field rename defines
  posix-cpu-timers: Switch check_*_timers() to array cache
  posix-cpu-timers: Simplify set_process_cpu_timer()
  posix-cpu-timers: Simplify timer queueing
  posix-cpu-timers: Provide array based access to expiry cache
  posix-cpu-timers: Move expiry cache into struct posix_cputimers
  sched: Move struct task_cputime to types.h
  posix-cpu-timers: Create a container struct
  posix-cpu-timers: Move prof/virt_ticks into caller
  posix-cpu-timers: Sample task times once in expiry check
  posix-cpu-timers: Get rid of pointer indirection
  posix-cpu-timers: Simplify sample functions
  posix-cpu-timers: Remove pointless return value check
  posix-cpu-timers: Use clock ID in posix_cpu_timer_rearm()
  posix-cpu-timers: Use clock ID in posix_cpu_timer_get()
  posix-cpu-timers: Use clock ID in posix_cpu_timer_set()
  posix-cpu-timers: Consolidate thread group sample code
  posix-cpu-timers: Rename thread_group_cputimer() and make it static
  posix-cpu-timers: Sample directly in timer check
  itimers: Use quick sample function
  posix-cpu-timers: Provide quick sample function for itimer
  posix-cpu-timers: Use common permission check in posix_cpu_timer_create()
  posix-cpu-timers: Use common permission check in posix_cpu_clock_get()
  posix-cpu-timers: Provide task validation functions
  mtd: spi-nor: hisi-sfc: Add of_node_put() before break
  mtd: spi-nor: aspeed-smc: Add of_node_put()
  mtd: spi-nor: Introduce spi_nor_get_flash_info()
  mtd: spi-nor: Introduce spi_nor_set_addr_width()
  mtd: spi-nor: Bring flash params init together
  mtd: spi-nor: Add the SPI_NOR_XSR_RDY flag
  mtd: spi-nor: Add s3an_post_sfdp_fixups()
  mtd: spi-nor: Add a ->setup() method
  mtd: spi-nor: Add a ->convert_addr() method
  mtd: spi-nor: Add spansion_post_sfdp_fixups()
  mtd: spi-nor: Add post_sfdp() hook to tweak flash config
  mtd: spi-nor: Rework the SPI NOR lock/unlock logic
  mtd: spi-nor: Create a ->set_4byte() method
  mtd: spi-nor: Split spi_nor_init_params()
  mtd: spi-nor: Move manufacturer quad_enable() in ->default_init()
  mtd: spi-nor: Add a default_init() fixup hook for gd25q256
  mtd: spi-nor: Add default_init() hook to tweak flash parameters
  mtd: spi-nor: Move erase_map to 'struct spi_nor_flash_parameter'
  mtd: spi-nor: Drop quad_enable() from 'struct spi-nor'
  mtd: spi-nor: Use nor->params
  mtd: spi-nor: Regroup flash parameter and settings
  mtd: spi-nor: Remove unused macro
  perf/x86/intel: Support PEBS output to PT
  perf: Allow normal events to output AUX data
  x86/intel: Add common OPTDIFFs
  x86/intel: Aggregate microserver naming
  x86/intel: Aggregate big core graphics naming
  x86/intel: Aggregate big core mobile naming
  x86/intel: Aggregate big core client naming
  sched/cpufreq: Align trace event behavior of fast switching
  ACPI: cpufreq: Switch to QoS requests instead of cpufreq notifier
  ACPI / CPPC: do not require the _PSD method
  x86/vmware: Update platform detection code for VMCALL/VMMCALL hypercalls
  thermal: armada: Fix -Wshift-negative-value
  dt-bindings: thermal: qoriq: Add optional clocks property
  thermal: qoriq: Use __maybe_unused instead of #if CONFIG_PM_SLEEP
  thermal: qoriq: Use devm_platform_ioremap_resource() instead of of_iomap()
  thermal: qoriq: Fix error path of calling qoriq_tmu_register_tmu_zone fail
  thermal: qoriq: Add clock operations
  net/mlx5: Set ODP capabilities for DC transport to max
  x86/cpufeature: Explain the macro duplication
  ALSA: usb-audio: Update DSD support quirks for Oppo and Rotel
  ALSA: usb-audio: DSD auto-detection for Playback Designs
  net: stmmac: setup higher frequency clk support for EHL & TGL
  net: stmmac: add EHL RGMII 1Gbps PCI info and PCI ID
  net: stmmac: add TGL SGMII 1Gbps PCI info and PCI ID
  net: stmmac: add EHL SGMII 1Gbps PCI info and PCI ID
  net: dsa: mv88e6xxx: fully support SERDES on Topaz family
  net: dsa: mv88e6xxx: rename port cmode macro
  net: dsa: mv88e6xxx: simplify SERDES code for Topaz and Peridot
  net: dsa: mv88e6xxx: create serdes_get_lane chip operation
  net: dsa: mv88e6xxx: update code operating on hidden registers
  net: dsa: mv88e6xxx: support 2500base-x in SGMII IRQ handler
  sctp: allow users to set ep ecn flag by sockopt
  sctp: allow users to set netns ecn flag with sysctl
  sctp: make ecn flag per netns and endpoint
  net: mediatek: remove set but not used variable 'status'
  net: dsa: sja1105: Clear VLAN filtering offload netdev feature
  net: dsa: Advertise the VLAN offload netdev ability only if switch supports it
  dt-bindings: net: ethernet: Update mt7622 docs and dts to reflect the new phylink API
  net: ethernet: mediatek: Re-add support SGMII
  net: ethernet: mediatek: Add basic PHYLINK support
  net: dsa: clear VLAN PVID flag for CPU port
  net: dsa: program VLAN on CPU port from slave
  net: dsa: check bridge VLAN in slave operations
  net: dsa: add slave VLAN helpers
  net: dsa: do not skip -EOPNOTSUPP in dsa_port_vid_add
  net: dsa: remove bitmap operations
  usb: chipidea: add role switch class support
  dt-binding: usb: usbmisc-imx: add imx7ulp compatible
  dt-binding: usb: ci-hdrc-usb2: add imx7ulp compatible
  powerpc/8xx: set STACK_END_MAGIC earlier on the init_stack
  powerpc/8xx: drop unused self-modifying code alternative to FixupDAR.
  powerpc/prom: convert PROM_BUG() to standard trap
  selftests/bpf: remove wrong nhoff in flow dissector test
  selftests/bpf: test_progs: remove unused ret
  selftests/bpf: test_progs: remove asserts from subtests
  selftests/bpf: test_progs: remove global fail/success counts
  selftests/bpf: test_progs: test__skip
  selftests/bpf: add precision tracking test
  selftests/bpf: verifier precise tests
  tools/bpf: sync bpf.h
  bpf: introduce verifier internal test flag
  mm/hmm: hmm_range_fault() infinite loop
  mm/hmm: hmm_range_fault() NULL pointer bug
  rpmsg: virtio_rpmsg_bus: replace "%p" with "%pK"
  net/mlx5: fix a -Wstringop-truncation warning
  iio: imu: st_lsm6dsx: move register definitions to sensor_settings struct
  regulator: sy8824x: add SY20278 support
  dt-bindings: sy8824x: Document SY20278 support
  regulator: sy8824x: add SY20276 support
  dt-bindings: sy8824x: Document SY20276 support
  regulator: sy8824x: add SY8824E support
  dt-bindings: sy8824x: Document SY8824E support
  regulator: add support for SY8824C regulator
  regulator: add binding for the SY8824C voltage regulator
  Revert "driver core: Add support for linking devices during device addition"
  Revert "driver core: Add edit_links() callback for drivers"
  Revert "of/platform: Add functional dependency link from DT bindings"
  ASoC: atmel_ssc_dai: implement left-justified data mode
  Revert "driver core: Add sync_state driver/bus callback"
  ASoC: atmel_ssc_dai: rework DAI format configuration
  Revert "of/platform: Pause/resume sync state during init and of_platform_populate()"
  Revert "of/platform: Create device links for all child-supplier depencencies"
  Revert "of/platform: Don't create device links for default busses"
  Revert "of/platform: Fix fn definitons for of_link_is_valid() and of_link_property()"
  ASoC: atmel: enable SOC_SSC_PDC and SOC_SSC_DMA in Kconfig
  Revert "of/platform: Fix device_links_supplier_sync_state_resume() warning"
  ASoC: cs42xx8: Force suspend/resume during system suspend/resume
  Revert "of/platform: Disable generic device linking code for PowerPC"
  ASoC: mediatek: mt8183: fix tdm out data align issue
  ASoC: rt1011: add mutex protection to set_fmt/set_tdm_slot
  ASoC: es8316: fix inverted L/R of headphone mixer volume
  ASoC: es8316: fix headphone mixer volume table
  raid5 improve too many read errors msg by adding limits
  md: don't report active array_state until after revalidate_disk() completes.
  md: only call set_in_sync() when it is expected to succeed.
  perf/smmuv3: Validate groups for global filtering
  perf/smmuv3: Validate group size
  ASoC: Intel: Skylake: Release topology when we are done with it
  ASoC: Intel: Skylake: Print module type instead of id
  ASoC: Intel: NHLT: Fix debug print format
  ASoC: dapm: Expose snd_soc_dapm_new_control_unlocked properly
  ASoC: Intel: Fix use of potentially uninitialized variable
  ASoC: Intel: Skylake: Use correct function to access iomem space
  ASoC: SOF: imx8: Fix an is IS_ERR() vs NULL check
  ASoC: sun4i: Revert A83t description
  ASoC: SOF: imx8: Fix return value check in imx8_probe()
  ASoC: mediatek: mt8183: remove unused DAPM-related variables
  selinux: avoid atomic_t usage in sidtab
  dt-bindings: irq: Convert Allwinner NMI Controller to a schema
  dt-bindings: irq: Convert Allwinner IRQ Controller to a schema
  arm64: Relax Documentation/arm64/tagged-pointers.rst
  arm64: KVM: Device mappings should be execute-never
  staging: greybus: add missing includes
  staging: greybus: move es2 to drivers/greybus/
  staging: greybus: move the greybus core to drivers/greybus
  staging: greybus: move core include files to include/linux/greybus/
  staging: greybus: loopback: Fix up some alignment checkpatch issues
  staging: greybus: log: Fix up some alignment checkpatch issues
  staging: greybus: manifest: Fix up some alignment checkpatch issues
  staging: greybus: hd: Fix up some alignment checkpatch issues
  staging: greybus: remove license "boilerplate"
  staging: greybus: fix up SPDX comment in .h files
  erofs: fix compile warnings when moving out include/trace/events/erofs.h
  staging: rtl8192u: Add or remove blank lines as required
  staging: rtl8192u: Add or remove spaces to fix style issues
  staging: rtl8712: wifi: checkpatch style fix
  staging: most-core: Fix checkpatch warnings
  io_uring: allocate the two rings together
  fs/io_uring.c: convert put_page() to put_user_page*()
  block: split .sysfs_lock into two locks
  block: add helper for checking if queue is registered
  blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue
  block: don't hold q->sysfs_lock in elevator_init_mq
  block: Remove blk_mq_register_dev()
  arm64: kvm: Replace hardcoded '1' with SYS_PAR_EL1_F
  arm64: mm: Ignore spurious translation faults taken from the kernel
  arm64: sysreg: Add some field definitions for PAR_EL1
  arm64: mm: Add ISB instruction to set_pgd()
  arm64: tlb: Ensure we execute an ISB following walk cache invalidation
  Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
  arm64: smp: Treat unknown boot failures as being 'stuck in kernel'
  arm64: smp: Don't enter kernel with NULL stack pointer or task struct
  arm64: smp: Increase secondary CPU boot timeout value
  rtc: pcf2127: bugfix: watchdog build dependency
  rtc: pcf2127: add tamper detection support
  rtc: pcf2127: add watchdog feature support
  of: unittest: Add of_node_put() before return
  RDMA/iwpm: Delete unnecessary checks before the macro call "dev_kfree_skb"
  netfilter: not mark a spinlock as __read_mostly
  RDMA/efa: Use existing FIELD_SIZEOF macro
  RDMA/efa: Remove umem check on dereg MR flow
  dt-bindings: smiapp: Align documentation with current practices
  drm/amdgpu: fix GFXOFF on Picasso and Raven2
  dt-bindings: Add vendor prefix for Inspur Corporation
  netfilter: nft_dynset: support for element deletion
  writeback, memcg: Implement foreign dirty flushing
  writeback, memcg: Implement cgroup_writeback_by_id()
  writeback: Separate out wb_get_lookup() from wb_get_create()
  bdi: Add bdi->id
  writeback: Generalize and expose wb_completion
  drm/amd: remove meaningless descending into amd/amdkfd/
  drm/amdgpu: Add APTX quirk for Dell Latitude 5495
  drm/amd/display: remove unused function setFieldWithMask
  drm/amd/powerplay: correct the pp_feature output on Arcturus
  drm/amd/powerplay: correct Vega20 dpm level related settings
  ARM: dts: kirkwood: ts219: disable the SoC's RTC
  arm64: dts: marvell: Add cpu clock node on Armada 7K/8K
  ALSA: hda - Allow runtime PM for controller if component notifier is used
  genirq/affinity: Spread vectors on node according to nr_cpu ratio
  genirq/affinity: Improve __irq_build_affinity_masks()
  arm64: dts: marvell: Convert 7k/8k usb-phy properties to phy-supply
  arm64: dts: marvell: Add 7k/8k PHYs in PCIe nodes
  arm64: dts: marvell: Add 7k/8k PHYs in USB3 nodes
  drm/amdgpu: Vega20 SMU I2C HW engine controller.
  arm64: dts: marvell: Add 7k/8k per-port PHYs in SATA nodes
  arm64: dts: marvell: Add CP110 COMPHY clocks
  arm64: dts: marvell: armada-37xx: add mailbox node
  udf: augment UDF permissions on new inodes
  drm/amd/powerplay: Add interface to lock SMU HW I2C.
  drm/amd: Import smuio_11_0 headers for EEPROM access on Vega20
  drm/amdgpu: Add RAS EEPROM table.
  Revert "drm/amdgpu: free up the first paging queue v2"
  drm/amdgpu/display: fix build error without CONFIG_DRM_AMD_DC_DSC_SUPPORT
  drm/amd/powerplay: Fix an off by one in navi10_get_smu_msg_index()
  drm/amd/display: Fix error message
  drm/amdgpu: add dummy read for some GCVM status registers
  mtd: cfi_cmdset_0002: Disable write buffer functions if FORCE_WORD_WRITE is 1
  mtd: cfi_cmdset_0002: Split do_write_oneword() to reduce exit paths
  mtd: cfi_cmdset_0002: Split wait for write buffer completion sequence
  mtd: cfi_cmdset_0002: Split write-to-buffer-reset sequence
  mtd: cfi_cmdset_0002: Split do_write_oneword() op_done goto statement
  mtd: cfi_cmdset_0002: Split do_write_oneword() to reduce function size
  mtd: cfi_cmdset_0002: Remove goto statement from do_write_buffer()
  mtd: cfi_cmdset_0002: Use chip_good() to retry in do_write_oneword()
  mtd: chips: gen_probe: kill useless initializer in mtd_do_chip_probe()
  powerpc/spinlocks: Fix oops in __spin_yield() on bare metal
  fdt: Update CRC check for rng-seed
  gpio: zynq: Pass irqchip when adding gpiochip
  ASoC: sunxi: Revert initial A83t support
  ASoC: imx-audmix: register the card on a proper dev
  ASoC: SOF: imx8: Make some functions static
  MIPS: Octeon: remove duplicated include from dma-octeon.c
  pinctrl: mvebu: add additional variant for standalone CP115
  pinctrl: mvebu: Add CP110 missing pin functionality
  dt-bindings: cp110: document the new CP115 pinctrl compatible
  i3c: master: Use dev_to_i3cmaster()
  platform/chrome: cros_ec_rpmsg: Add host command AP sleep state support
  ice: fix adminq calls during remove
  ice: Rework ice_ena_msix_range
  ice: Fix VF configuration issues due to reset
  ice: Alloc queue management bitmaps and arrays dynamically
  ice: add support for virtchnl_queue_select.[tx|rx]_queues bitmap
  ice: add support for enabling/disabling single queues
  ice: fix potential infinite loop
  ice: fix ice_is_tc_ena
  ice: add validation in OP_CONFIG_VSI_QUEUES VF message
  ice: Don't clog kernel debug log with VF MDD events errors
  ice: Introduce a local variable for a VSI in the rebuild path
  MAINTAINERS: remoteproc: update git tree location
  MAINTAINERS: rpmsg: fix git tree location
  ice: shorten local and add debug prints
  rpmsg: core: fix comments
  phy: marvell: phy-mvebu-cp110-comphy: rename instances of DLT
  phy: marvell: phy-mvebu-cp110-comphy: implement RXAUI support
  dt-bindings: pci: add PHY properties to Armada 7K/8K controller bindings
  dt-bindings: phy: Add Marvell COMPHY clocks
  phy: mvebu-cp110-comphy: Update comment about powering off all lanes at boot
  phy: mvebu-cp110-comphy: Add PCIe support
  phy: mvebu-cp110-comphy: Cosmetic change in a helper
  phy: mvebu-cp110-comphy: Add SATA support
  phy: mvebu-cp110-comphy: Add USB3 host/device support
  phy: mvebu-cp110-comphy: Allow non-Ethernet modes to be configured
  phy: mvebu-cp110-comphy: Rename the macro handling only Ethernet modes
  phy: mvebu-cp110-comphy: Add RXAUI support
  phy: mvebu-cp110-comphy: List already supported Ethernet modes
  phy: mvebu-cp110-comphy: Add SMC call support
  phy: mvebu-cp110-comphy: Explicitly initialize the lane submode
  phy: mvebu-cp110-comphy: Add clocks support
  phy-rockchip-inno-hdmi: Fix RK3328_TERM_RESISTOR_CALIB_SPEED_7_0's third value
  ice: Sanitize ice_ena_vsi and ice_dis_vsi
  ice: added sibling head to parse nodes
  ice: Fix ethtool port and PFC stats for 4x25G cards
  samples/rpmsg: Introduce a module parameter for message count
  samples/rpmsg: Replace print_hex_dump() with print_hex_dump_debug()
  remoteproc: Remove dev_err() usage after platform_get_irq()
  KVM: PPC: Book3S HV: Don't lose pending doorbell request on migration on P9
  KVM: PPC: Book3S HV: Check for MMU ready on piggybacked virtual cores
  powerpc/spinlocks: Rename SPLPAR-only spinlocks
  powerpc/spinlocks: Refactor SHARED_PROCESSOR
  powerpc/64: optimise LOAD_REG_IMMEDIATE_SYM()
  powerpc/32: replace LOAD_MSR_KERNEL() by LOAD_REG_IMMEDIATE()
  powerpc: rewrite LOAD_REG_IMMEDIATE() as an intelligent macro
  powerpc/mm: split out early ioremap path.
  powerpc/mm: refactor ioremap vm area setup.
  powerpc/mm: refactor ioremap_range() and use ioremap_page_range()
  powerpc/mm: Move ioremap functions out of pgtable_32/64.c
  powerpc/mm: make ioremap_bot common to all
  powerpc/mm: move ioremap_prot() into ioremap.c
  powerpc/mm: move common 32/64 bits ioremap functions into ioremap.c
  powerpc/mm: rework io-workaround invocation.
  powerpc/mm: drop function __ioremap()
  powerpc/mm: drop ppc_md.iounmap() and __iounmap()
  powerpc/ps3: replace __ioremap() by ioremap_prot()
  powerpc: remove the ppc44x ocm.c file
  powerpc/64: don't select ARCH_HAS_SCALED_CPUTIME on book3E
  powerpc/64s: support nospectre_v2 cmdline option
  soc: ti: ti_sci_pm_domains: Add support for exclusive and shared access
  dt-bindings: ti_sci_pm_domains: Add support for exclusive and shared access
  firmware: ti_sci: Allow for device shared and exclusive requests
  KVM: PPC: Book3S: Enable XIVE native capability only if OPAL has required functions
  xtensa: remove free_initrd_mem
  arm64: dts: sdm845: Add parent clock for rpmhcc
  xfs: bmap scrub should only scrub records once
  xfs: remove excess function parameter description in 'xfs_btree_sblock_v5hdr_verify'
  xfs: add kmem_alloc_io()
  xfs: get allocation alignment from the buftarg
  xfs: add kmem allocation trace points
  nfp: add AMDA0058 boards to firmware list
  MAINTAINERS: Update from paulmck@linux.ibm.com to paulmck@kernel.org
  rcu: Don't include <linux/ktime.h> in rcutiny.h
  perf evsel: Rename perf_missing_features::bpf_event to ::bpf
  perf tool: Rename perf_tool::bpf_event to bpf
  perf tools: Rename perf_event::bpf_event to perf_event::bpf
  perf tools: Rename perf_event::ksymbol_event to perf_event::ksymbol
  libperf: Rename the PERF_RECORD_ structs to have a "perf" suffix
  libperf: Add PERF_RECORD_SAMPLE 'struct sample_event' to perf/event.h
  libperf: Add PERF_RECORD_BPF_EVENT 'struct bpf_event' to perf/event.h
  libperf: Add PERF_RECORD_KSYMBOL 'struct ksymbol_event' to perf/event.h
  libperf: Add PERF_RECORD_THROTTLE 'struct throttle_event' to perf/event.h
  libperf: Add PERF_RECORD_READ 'struct read_event' to perf/event.h
  libperf: Add PERF_RECORD_LOST_SAMPLES 'struct lost_samples_event' to perf/event.h
  libperf: Add PERF_RECORD_LOST 'struct lost_event' to perf/event.h
  libperf: Add PERF_RECORD_FORK 'struct fork_event' to perf/event.h
  libperf: Add PERF_RECORD_NAMESPACES 'struct namespaces_event' to perf/event.h
  libperf: Add PERF_RECORD_COMM 'struct comm_event' to perf/event.h
  libperf: Add PERF_RECORD_MMAP2 'struct mmap2_event' to perf/event.h
  libperf: Add PERF_RECORD_MMAP 'struct mmap_event' to perf/event.h
  clocksource/drivers/sh_cmt: Document "cmt-48" as deprecated
  clocksource/drivers/sh_cmt: r8a7740 and sh73a0 SoC-specific match
  dt-bindings: timer: renesas, cmt: Update R-Car Gen3 CMT1 usage
  dt-bindings: timer: renesas, cmt: Add CMT0 and CMT1 to r8a77995
  dt-bindings: timer: renesas, cmt: Add CMT0 and CMT1 to r8a7792
  dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740
  dt-bindings: timer: renesas, cmt: Add CMT0234 to sh73a0 and r8a7740
  clocksource/drivers: Do not warn on probe defer
  clocksource/drivers/timer-of: Do not warn on deferred probe
  clocksource/drivers/npcm: Fix GENMASK and timer operation
  clocksource/drivers/renesas-ostm: Use DIV_ROUND_CLOSEST() helper
  arm64: dts: imx8mq: Add system counter node
  arm64: dts: imx8mm: Add system counter node
  clocksource/drivers/imx-sysctr: Add internal clock divider handle
  clocksource/drivers/tcb_clksrc: Register delay timer
  dt-bindings: timer: Convert Allwinner A13 HSTimer to a schema
  clocksource: sun4i: Add missing compatibles
  dt-bindings: timer: Add missing compatibles
  dt-bindings: timer: Convert Allwinner A10 Timer to a schema
  clocksource: Remove dev_err() usage after platform_get_irq()
  remoteproc: stm32: manage the get_irq probe defer case
  remoteproc: stm32: clear MCU PDDS at firmware start
  remoteproc: qcom: q6v5-mss: fixup q6v5_pds_enable error handling
  remoteproc: Add a sysfs interface for name
  r8169: improve DMA handling in rtl_rx
  net: sched: flower: don't take rtnl lock for cls hw offloads API
  net: sched: copy tunnel info when setting flow_action entry->tunnel
  net: sched: take reference to action dev before calling offloads
  net: sched: take rtnl lock in tc_setup_flow_action()
  net: sched: conditionally obtain rtnl lock in cls hw offloads API
  net: sched: add API for registering unlocked offload block callbacks
  net: sched: notify classifier on successful offload add/delete
  net: sched: refactor block offloads counter usage
  net: sched: change tcf block offload counter type to atomic_t
  net: sched: protect block offload-related fields with rw_semaphore
  libata: switch remaining drivers to use dma_set_mask_and_coherent
  sata_sil24: use dma_set_mask_and_coherent
  sata_qstor: use dma_set_mask_and_coherent
  sata_nv: use dma_set_mask_and_coherent
  sata_mv: use dma_set_mask_and_coherent
  pdc_adma: use dma_set_mask_and_coherent
  ahci: use dma_set_mask_and_coherent
  acard_ahci: use dma_set_mask_and_coherent
  xprtrdma: Send Queue size grows after a reconnect
  dm space map common: remove check for impossible sm_find_free() return value
  xprtrdma: Clear xprt->reestablish_timeout on close
  xprtrdma: Recycle MRs after disconnect
  fs: xfs: Remove KM_NOSLEEP and KM_SLEEP.
  leds: Allow to call led_classdev_unregister() unconditionally
  leds: lm3532: Add full scale current configuration
  dt: lm3532: Add property for full scale current.
  leds: lm3532: Fixes for the driver for stability
  leds: lm3532: Change the define for the fs current register
  leds: lm3532: Fix brightness control for i2c mode
  ARM: dts: Drop legacy custom hwmods property for dra7 gpio
  ARM: dts: Drop legacy custom hwmods property for dra7 mmc
  ARM: dts: Drop legacy custom hwmods property for dra7 i2c
  ARM: dts: Drop legacy custom hwmods property for dra7 uart
  ARM: OMAP2+: Drop legacy platform data for dra7 mcasp
  ARM: OMAP2+: Drop legacy platform data for dra7 mcspi
  media: don't do a 31 bit shift on a signed int
  media: use the BIT() macro
  media: ov9650: add a sanity check
  media: aspeed-video: address a protential usage of an unitialized var
  media: vicodec: make life easier for static analyzers
  media: remove include stdarg.h from some drivers
  ARM: OMAP2+: Delete an unnecessary kfree() call in omap_hsmmc_pdata_init()
  ARM: OMAP2+: move platform-specific asm-offset.h to arch/arm/mach-omap2
  ARM: dts: ARM: dts: Configure interconnect target module for am3517sgx
  ARM: dts: Configure interconnect target module for omap3 sgx
  ARM: dts: Configure sgx for omap5
  clk: ti: add clkctrl data omap5 sgx
  ARM: OMAP2+: Drop legacy platform data for omap4 gpu
  ARM: OMAP2+: Drop legacy platform data for omap4 d2d
  ARM: dts: Configure d2d dts data for omap4
  ARM: OMAP2+: Drop legacy watchdog platform data for omap4
  ARM: dts: Drop custom hwmod property for omap4 i2c
  ARM: OMAP2+: Drop legacy platform data for cpsw on dra7
  ARM: OMAP2+: Drop legacy platform data for cpsw on am3 and am4
  ARM: dts: Add fck for cpsw mdio for omap variants
  bus: ti-sysc: Detect d2d when debug is enabled
  bus: ti-sysc: Add module enable quirk for SGX on omap36xx
  bus: ti-sysc: Change return types of functions
  dm raid1: use struct_size() with kzalloc()
  dm writecache: optimize performance by sorting the blocks for writeback_all
  perf script: Fix memory leaks in list_scripts()
  perf report: Fix --ns time sort key output
  perf report: Use timestamp__scnprintf_nsec() for time sort key
  perf tools: Remove duplicate headers
  perf augmented_raw_syscalls: Reduce perf_event_output() boilerplate
  perf augmented_raw_syscalls: Introduce helper to get the scratch space
  perf augmented_raw_syscalls: Postpone tmp map lookup to after pid_filter
  perf augmented_raw_syscalls: Rename augmented_filename to augmented_arg
  perf trace beauty ioctl: Fix off-by-one error in cmd->string table
  perf tests: Fixes hang in zstd compression test by changing the source of random data
  perf sort: Remove needless headers from sort.h, provide fwd struct decls
  perf srcline: Add missing srcline.h header to files needing its defs
  perf cacheline: Move cacheline related routines to separate files
  perf record: Move record_opts and other record decls out of perf.h
  dm writecache: add unlikely for getting two block with same LBA
  dm writecache: remove unused member pointer in writeback_struct
  x86/ftrace: Remove mcount() declaration
  Deprecate nfsd fault injection
  dm zoned: fix invalid memory access
  RDMA/mlx5: RDMA_RX flow type support for user applications
  v4l2-core: fix coding style for the two new c files
  ALSA: oxfw: fix NULL pointer dereference to unused stream structure
  media: v4l2-core: Remove BUG() from i2c and spi helpers
  media: v4l2-core: introduce a helper to unregister a i2c subdev
  ALSA: usb-audio: remove some dead code
  media: v4l2-core: introduce a helper to unregister a spi subdev
  media: v4l2-core: move i2c helpers out of v4l2-common.c
  media: v4l2-core: move spi helpers out of v4l2-common.c
  media: v4l2-core: Module re-organization
  media: usbvision: Remove dead code
  media: aspeed: fix an incorrect return code on buffer allocation failure
  media: hantro: Enable VP8 decoding on RK3328
  media: saa7134: fix terminology around saa7134_i2c_eeprom_md7134_gate()
  media: saa7134: keep demod i2c gate closed on Medion 7134
  media: i2c: adv7842: drop check because i2c_unregister_device() is NULL safe
  media: i2c: adv7511-v4l2: drop check because i2c_unregister_device() is NULL safe
  media: hdpvr: remove redundant assignment to retval
  media: sn9c20x: Add MSI MS-1039 laptop to flip_dmi_table
  media: ti-vpe: Add cleanup in vpdma_list_cleanup()
  media: fdp1: Fix a memory leak bug
  media: saa7146: add cleanup in hexium_attach()
  media: usb: cx231xx-417: fix a memory leak bug
  media: cpia2_usb: fix memory leaks
  platform/chrome: chromeos_laptop: drop checks of NULL-safe functions
  PM / devfreq: passive: fix compiler warning
  fbdev: da8xx: use resource management for dma
  fbdev: da8xx-fb: drop a redundant if
  fbdev: da8xx-fb: use devm_platform_ioremap_resource()
  fbdev: da8xx: remove panel_power_ctrl() callback from platform data
  ARM: davinci: da850-evm: switch to using a fixed regulator for lcdc
  fbdev: da8xx: add support for a regulator
  ARM: davinci: da850-evm: model the backlight GPIO as an actual device
  ARM: davinci: dm646x: Fix a typo in the comment
  ARM: dts: da850-evm: Use generic jedec, spi-nor for flash
  ARM: davinci: dm646x: switch to using the clocksource driver
  ARM: davinci: dm644x: switch to using the clocksource driver
  MAINTAINERS: Remove stale record for gpio-intel-mid.c
  ALSA: usb-audio: Fix possible NULL dereference at create_yamaha_midi_quirk()
  phy: qcom-qmp: Correct ready status, again
  phy: qualcomm: phy-qcom-qmp: Add of_node_put() before return
  phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
  phy: ti: am654-serdes: fix an use-after-free in serdes_am654_clk_register()
  perf stat: Remove needless headers from stat.h
  perf cpumap: No need to include perf.h, ditch it
  pinctrl: bcm2835: Pass irqchip when adding gpiochip
  firmware: bcm47xx_nvram: Allow COMPILE_TEST
  s390/kaslr: reserve memory for kasan usage
  s390/mem_detect: provide single get_mem_detect_end
  s390/cmma: reuse kstrtobool for option value parsing
  s390/vdso: reuse kstrtobool for option value parsing
  s390/startup: correct command line options parsing
  s390/vmcp: correct early_param handling
  s390/numa: correct early_param handling
  firmware: bcm47xx_nvram: Correct size_t printf format
  MIPS: Treat Loongson Extensions as ASEs
  MIPS: Remove dev_err() usage after platform_get_irq()
  perf/x86/intel/pt: Get rid of reverse lookup table for ToPA
  perf/x86/intel/pt: Free up space in a ToPA descriptor
  perf/x86/intel/pt: Split ToPA metadata and page layout
  perf/x86/intel/pt: Use pointer arithmetics instead in ToPA entry calculation
  perf/x86/intel/pt: Use helpers to obtain ToPA entry size
  perf/x86/intel/pt: Clean up ToPA allocation path
  device property: Remove duplicate test for NULL
  platform/x86: intel_cht_int33fe: Use new API to gain access to the role switch
  usb: roles: intel_xhci: Supplying software node for the role mux
  udf: Use dynamic debug infrastructure
  software node: Add software_node_find_by_name()
  media: imx: add csc/scaler mem2mem device
  HID: logitech-dj: Fix crash when initial logi_dj_recv_query_paired_devices fails
  media: cec-notifier: clear cec_adap in cec_notifier_unregister
  media: cec-adap: return from cec_s_conn_info() if adap is invalid
  udf: reduce leakage of blocks related to named streams
  ACPI / property: Add two new Thunderbolt property GUIDs to the list
  thunderbolt: Add support for Intel Ice Lake
  thunderbolt: Expose active parts of NVM even if upgrade is not supported
  thunderbolt: Hide switch attributes that are not set
  thunderbolt: Do not fail adding switch if some port is not implemented
  thunderbolt: Use 32-bit writes when writing ring producer/consumer
  thunderbolt: Move NVM upgrade support flag to struct icm
  thunderbolt: Correct path indices for PCIe tunnel
  netfilter: nfnetlink_log: add support for VLAN information
  clk: meson: g12a: add support for SM1 CPU 1, 2 & 3 clocks
  clk: meson: g12a: add support for SM1 DynamIQ Shared Unit clock
  clk: meson: g12a: add support for SM1 GP1 PLL
  netfilter: nft_meta: support for time matching
  netfilter: nf_tables: Introduce new 64-bit helper register functions
  dt-bindings: clk: meson: add sm1 periph clock controller bindings
  video: pxafb: Remove cpufreq policy notifier
  video: sa1100fb: Remove cpufreq policy notifier
  arch_topology: Use CPUFREQ_CREATE_POLICY instead of CPUFREQ_NOTIFY
  cpufreq: powerpc_cbe: Switch to QoS requests for freq limits
  cpufreq: powerpc: macintosh: Switch to QoS requests for freq limits
  iio: imu: st_lsm6dsx: introduce update_fifo function pointer
  mtd: rawnand: remove w90x900 driver
  mtd: nand: fix typo, s/erasablocks/eraseblocks
  mtd: rawnand: sharpsl: add include guard to linux/mtd/sharpsl.h
  dt-bindings: mtd: Document Macronix raw NAND controller bindings
  mtd: rawnand: Add Macronix raw NAND controller driver
  drm/hisilicon/hibmc: Make CONFIG_DRM_HISI_HIBMC depend on ARM64
  drm/hisilicon: Use dev_get_drvdata
  drm/hisilicon/hibmc: Using module_pci_driver.
  arm-nommu: remove the unused pgprot_dmacoherent define
  unicore32: remove the unused pgprot_dmacoherent define
  cirrus: cs89x0: remove set but not used variable 'lp'
  Revert "net: mediatek: remove set but not used variable 'status'"
  net: mediatek: remove set but not used variable 'status'
  selftests/powerpc: Retry on host facility unavailable
  selftests/powerpc: Fix and enhance TM signal context tests
  dt-bindings: iio: light: isl29501: Rename bindings documentation file
  Kconfig: Fix the reference to the RFD77402 ToF sensor in the 'help' section
  iio: st_sensors: Fix build error
  dt-bindings: iio: adc: Add AD7606B ADC documentation
  dt-bindings: iio: adc: Migrate AD7606 documentation to yaml
  MAINTAINERS: Add Beniamin Bia for AD7606 driver
  iio: adc: ad7606: Add support for AD7606B ADC
  ARM: aspeed: Enable SMP boot
  ARM: aspeed: Add ASPEED AST2600 architecture
  ARM: aspeed: Select timer in each SoC
  dt-bindings: arm: cpus: Add ASPEED SMP
  ARM: configs: aspeed_g5: Enable AST2600
  ARM: configs: multi_v7: Add ASPEED G6
  KVM: arm/arm64: vgic: Use a single IO device per redistributor
  KVM: arm/arm64: vgic: Remove spurious semicolons
  staging: rtl8192u: Add space around binary operators
  staging: rtl8192u: remove code under TO_DO_LIST
  staging: rtl8192u: Remove unnecessary blank lines
  staging: rtl8192u: remove redundant assignment to pointer crypt
  staging: rtl8723bs: os_dep: Drop condition with no effect
  staging: rtl8723bs: hal: Drop condition with no effect
  staging: rtl8723bs: os_dep: Remove unused declarations
  ALSA: usb-audio: Clean up check_input_term()
  ARM: dts: vf610-zii-scu4-aib: Configure IRQ line for GPIO expander
  PM / devfreq: passive: Use non-devm notifiers
  PM / devfreq: exynos-bus: Convert to use dev_pm_opp_set_rate()
  PM / devfreq: exynos-bus: Correct clock enable sequence
  PM / devfreq: Correct devm_devfreq_remove_device() documentation
  PM / devfreq: events: extend events by type of counted data
  PM / devfreq: exynos-events: change matching code during probe
  jbd2: add missing tracepoint for reserved handle
  kbuild: remove unneeded '+' marker from kselftest-merge
  net: phy: sfp: Add labels to hwmon sensors
  s390/qeth: add xmit_more support for IQD devices
  s390/qeth: add BQL support for IQD devices
  s390/qeth: when in TX NAPI mode, use napi_consume_skb()
  s390/qeth: add TX NAPI support for IQD devices
  s390/qeth: collect accurate TX statistics
  s390/qdio: let drivers opt-out from Output Queue scanning
  s390/qdio: enable drivers to poll for Output completions
  bnxt_en: Fix allocation of zero statistics block size regression.
  net/core/skmsg: Delete an unnecessary check before the function call “consume_skb”
  net: hns3: Fix -Wunused-const-variable warning
  kbuild: pkg: rename scripts/package/Makefile to scripts/Makefile.package
  kbuild: pkg: add package targets to PHONY instead of FORCE
  kbuild: pkg: clean up package files/dirs from the top Makefile
  net: use unlikely for dql_avail case
  docs: process: fix broken link
  arm64: dts: imx8mq: Add mux controller to iomuxc_gpr
  ARM: dts: imx6ul-kontron-n6310: Add Kontron i.MX6UL N6310 SoM and boards
  dt-bindings: arm: fsl: Add Kontron i.MX6UL N6310 compatibles
  dt-bindings: eeprom: at25: Add Anvo ANV32E61W
  dt-bindings: vendor-prefixes: Add Anvo-Systems
  soc: imx: gpcv2: Print the correct error code
  arm64: dts: fsl: add support for Hummingboard Pulse
  dt-bindings: arm: fsl: add Hummingboard Pulse
  ARM: dts: vf610-zii-cfu1: Slow I2C0 down to 100 kHz
  arm64: dts: ls1088a: update gpio compatible
  clk: imx: imx8mn: fix audio pll setting
  arm64: dts: imx: Add i.mx8mq nitrogen8m basic dts support
  dt-bindings: arm: imx: add imx8mq nitrogen support
  fpga: altera-cvp: Add Stratix10 (V2) Support
  fpga: altera-cvp: Preparation for V2 parts.
  fpga: altera-cvp: Discover Vendor Specific offset
  arm64: dts: ls1088a-qds: Add the spi-flash nodes under the DSPI controller
  arm64: dts: ls1088a: Add the DSPI controller node
  dt-bindings: fsl: dspi: Add fsl,ls1088a-dspi compatible string
  ARM: imx: stop adjusting ar8031 phy tx delay
  ARM: dts: pbab01: correct rtc vendor
  MIPS: dts: mscc: describe the PTP ready interrupt
  MIPS: dts: mscc: describe the PTP register range
  MIPS: lantiq: update the clock alias' for the mainline PCIe PHY driver
  mips: avoid explicit UB in assignment of mips_io_port_base
  erofs: move erofs out of staging
  mtd: rawnand: Fix a memory leak bug
  mtd: onenand_base: Fix a memory leak bug
  PM / devfreq: tegra20: add COMMON_CLK dependency
  PM / devfreq: events: add Exynos PPMU new events
  PM / devfreq: Fix kernel oops on governor module load
  PM / devfreq: rk3399_dmc: Fix spelling typo
  PM / devfreq: Fix spelling typo
  PM / devfreq: Introduce driver for NVIDIA Tegra20
  PM / devfreq: tegra: Rename tegra-devfreq.c to tegra30-devfreq.c
  PM / devfreq: tegra: Enable COMPILE_TEST for the driver
  PM / devfreq: tegra: Support Tegra30
  PM / devfreq: tegra: Reconfigure hardware on governor's restart
  PM / devfreq: tegra: Move governor registration to driver's probe
  PM / devfreq: tegra: Mark ACTMON's governor as immutable
  PM / devfreq: tegra: Avoid inconsistency of current frequency value
  PM / devfreq: tegra: Clean up driver's probe / remove
  PM / devfreq: tegra: Properly disable interrupts
  PM / devfreq: tegra: Drop primary interrupt handler
  PM / devfreq: tegra: Don't set EMC clock rate to maximum on probe
  PM / devfreq: tegra: Don't ignore clk errors
  PM / devfreq: tegra: Replace write memory barrier with the read barrier
  PM / devfreq: tegra: Replace readl-writel with relaxed versions
  PM / devfreq: tegra: Fix kHz to Hz conversion
  ext4: fix punch hole for inline_data file systems
  r8169: fix DMA issue on MIPS platform
  drop_monitor: Make timestamps y2038 safe
  net/rds: Whitelist rdma_cookie and rx_tstamp for usercopy
  net/mlx5: Fix return code in case of hyperv wrong size read
  net: ipv6: fix listify ip6_rcv_finish in case of forwarding
  leds: Switch to use fwnode instead of be stuck with OF one
  leds: max77650: Switch to fwnode property API
  r8152: add a helper function about setting EEE
  r8152: saving the settings of EEE
  mailmap: map old company name to new one @microchip.com
  MAINTAINERS: at91: remove the TC entry
  MAINTAINERS: at91: Collect all pinctrl/gpio drivers in same entry
  ARM: at91: move platform-specific asm-offset.h to arch/arm/mach-at91
  null_blk: fix inline misuse
  ice: Don't allow VSI to remove unassociated ucast filter
  ice: Fix issues updating VSI MAC filters
  ice: update ethtool stats on-demand
  ice: Add input handlers for virtual channel handlers
  ice: Don't clear auto_fec bit in ice_cfg_phy_fec()
  ice: Fix flag used for module query
  ice: silence some bogus error messages
  ice: Rename ethtool private flag for lldp
  ice: reject VF attempts to enable head writeback
  MIPS: Fix build with CONFIG_PROC_VMCORE=y
  ice: Copy dcbx configuration only if mode is correct
  ice: Treat DCBx state NOT_STARTED as valid
  MIPS: mm: Fix highmem compile
  ice: Don't call synchronize_irq() for VF's from the host
  drm/amd/display: 3.2.48
  drm/amd/display: flicking observed while installing driver on Navi10 CF
  drm/amd/display: Properly read LVTMA_PWRSEQ_CNTL
  drm/amd/display: revert wait in pipelock
  drm/amd/display: Use res_cap to acquire i2c instead of pipe count
  ice: Account for all states of FW DCBx and LLDP
  drm/amd/display: Expose OTG_V_TOTAL_MID for HW Diags
  drm/amd/display: fix DML not calculating delivery time
  drm/amd/display: MST topology debugfs
  drm/amd/display: set av_mute in hw_init for HDMI
  drm/amd/display: Add Logging for Gamma Related information
  drm/amd/display: Enable HW rotation
  drm/amd/display: add Cursor Degamma logic for DCN2
  drm/amd/display: fix odm validation
  drm/amd/display: fix odm stream release
  drm/amd/display: fix dcn20 odm dpp programming
  drm/amd/display: Fix number of slices not being checked for dsc
  drm/amd/display: fix odm pipe copy
  drm/amd/display: fix trigger not generated for freesync
  drm/amd/display: fix stuck test pattern on right half of display
  drm/amd/display: support spdif
  drm/amd/display: Refactoring VTEM
  drm/amd/display: 3.2.47
  drm/amd/display: remove unused function
  drm/amd/display: cleaned up coding error in init_hw
  drm/amd/display: Add VM page fault handle implementation
  drm/amd/display: refactor Device ID for external chips
  drm/amd/display: Zero-out dsc init regs
  drm/amd/display: Implement voltage limitation stub
  drm/amd/display: add null checks before logging
  drm/amd/display: set Hratio and VRatio in dml
  drm/amd/display: fix dp stream enable
  drm/amd/display: load iram for abm 2.3
  drm/amd/display: fix MPO HUBP underflow with Scatter Gather
  drm/amd/display: fix audio endpoint not getting disabled issue
  drm/amd/display: Delete dead code in command_table_helper
  drm/amd/display: re structure odm to allow 4 to 1 support
  drm/amdgpu: set adev->num_vmhubs for gmc6,7,8
  drm/amdgpu/display: add flag for multi-display mclk switching
  drm/amd/display: update bw_calcs to take pipe sync into account (v3)
  drm/amdgpu/powerplay/vega10: enable mclk switching if monitors are synced
  drm/amdgpu/powerplay/smu7: enable mclk switching if monitors are synced
  drm/powerplay: Fix Vega20 power reading again
  amd/amdkfd: add Arcturus vf DID support
  drm/amd/powerpaly: fix navi series custom peak level value error
  drm/amdgpu: correct ras error count type
  ice: Allow egress control packets from PF_VSI
  dt-bindings: irq: mtk, sysirq: add support for mt6779
  dt-bindings: mtk-uart: add mt6779 uart bindings
  dt-bindings: mediatek: add support for mt6779 reference board
  arm64: kexec_file: add rng-seed support
  fdt: add support for rng-seed
  arm64: map FDT as RW for early_init_dt_scan()
  clocksource/drivers/hyperv: Enable TSC page clocksource on 32bit
  clocksource/drivers/hyperv: Add Hyper-V specific sched clock function
  clocksource/drivers/hyperv: Allocate Hyper-V TSC page statically
  f2fs: introduce f2fs_match_name() for cleanup
  f2fs: Fix indefinite loop in f2fs_gc()
  f2fs: allocate memory in batch in build_sit_info()
  f2fs: support FS_IOC_{GET,SET}FSLABEL
  f2fs: fix to avoid data corruption by forbidding SSR overwrite
  f2fs: Fix build error while CONFIG_NLS=m
  Revert "f2fs: avoid out-of-range memory access"
  f2fs: cleanup the code in build_sit_entries.
  f2fs: fix wrong available node count calculation
  f2fs: remove duplicate code in f2fs_file_write_iter
  f2fs: fix to migrate blocks correctly during defragment
  f2fs: use wrapped f2fs_cp_error()
  f2fs: fix to use more generic EOPNOTSUPP
  f2fs: use wrapped IS_SWAPFILE()
  f2fs: Support case-insensitive file name lookups
  f2fs: include charset encoding information in the superblock
  fs: Reserve flag for casefolding
  f2fs: fix to avoid call kvfree under spinlock
  fs: f2fs: Remove unnecessary checks of SM_I(sbi) in update_general_status()
  f2fs: disallow direct IO in atomic write
  f2fs: fix to handle quota_{on,off} correctly
  f2fs: fix to detect cp error in f2fs_setxattr()
  f2fs: fix to spread f2fs_is_checkpoint_ready()
  f2fs: support fiemap() for directory inode
  f2fs: fix to avoid discard command leak
  f2fs: fix to avoid tagging SBI_QUOTA_NEED_REPAIR incorrectly
  f2fs: fix to drop meta/node pages during umount
  f2fs: disallow switching io_bits option during remount
  f2fs: fix panic of IO alignment feature
  f2fs: introduce {page,io}_is_mergeable() for readability
  MIPS: init: Drop boot_mem_map
  MIPS: mm: Drop boot_mem_map
  rtc: pcf2127: bugfix: read rtc disables watchdog
  rtc: pcf2127: cleanup register and bit defines
  rtc: pcf2127: convert to devm_rtc_allocate_device
  rtc: sun6i: Add support for H6 RTC
  dt-bindings: rtc: sun6i: Add compatible for H6 RTC
  rtc: fsl-ftm-alarm: add FTM alarm driver
  dt-bindings: rtc: add bindings for FlexTimer Module
  dm verity: add root hash pkcs#7 signature verification
  dm crypt: reuse eboiv skcipher for IV generation
  dm: make dm_table_find_target return NULL
  EDAC/amd64: Support asymmetric dual-rank DIMMs
  MIPS: xlp: Drop boot_mem_map
  MIPS: ip22: Drop addr_is_ram
  MIPS: msp: Record prom memory
  MIPS: malta: Drop prom_free_prom_memory
  MIPS: fw: Record prom memory
  MIPS: OCTEON: Drop boot_mem_map
  mm/hmm: fix hmm_range_fault()'s handling of swapped out pages
  ata/pata_buddha: Probe via modalias instead of initcall
  null_blk: create a helper for req completion
  null_blk: create a helper for zoned devices
  null_blk: create a helper for mem-backed ops
  null_blk: create a helper for badblocks
  null_blk: create a helper for throttling
  null_blk: move duplicate code to callers
  dt-bindings: can: rcar_can: document r8a77470 support
  dt-bindings: can: rcar_canfd: document r8a77995 support
  dt-bindings: can: rcar_can: document r8a77995 support
  dt-bindings: can: rcar_can: document r8a77990 support
  soc: mediatek: cmdq: change the type of input parameter
  soc: mediatek: cmdq: reorder the parameter
  arm64: dts: allwinner: orange-pi-3: Enable WiFi
  spi: spi-fsl-dspi: Use poll mode in case the platform IRQ is missing
  spi: spi-fsl-dspi: Remove impossible to reach error check
  spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
  spi: spi-fsl-dspi: Reduce indentation level in dspi_interrupt
  ACPI: SBS: remove unused const variable 'SMBUS_PEC'
  EDAC/amd64: Cache secondary Chip Select registers
  vfio-ccw: add some logging
  ACPI / LPSS: Save/restore LPSS private registers also on Lynxpoint
  spi: spi-fsl-dspi: Exit the ISR with IRQ_NONE when it's not ours
  ARM: 8898/1: mm: Don't treat faults reported from cache maintenance as writes
  ARM: 8896/1: VDSO: Don't leak kernel addresses
  ARM: 8895/1: visit mach-* and plat-* directories when cleaning
  ARM: 8894/1: boot: Replace open-coded nop with macro
  ARM: 8893/1: boot: Explain the 8 nops
  ARM: 8876/1: fix O= building with CONFIG_FPE_FASTFPE
  ARM: 8875/1: Kconfig: default to AEABI w/ Clang
  ARM: 8873/1: perf: cleanup cppcheck shifting warning
  ARM: 8872/1: Use common outgoing-CPU-notification code
  ARM: 8871/1: iop13xx: Simplify iop13xx_atu{e,x}_pci_status checks
  ASoC: soc-core: rename soc_post_component_init() to soc_rtd_init()
  media: sunxi: Add A10 CSI driver
  media: sunxi: Refactor the Makefile and Kconfig
  media: dt-bindings: media: Add Allwinner A10 CSI binding
  media: atmel: atmel-isi: fix timeout value for stop streaming
  gpio: mt7621: Pass irqchip when adding gpiochip
  gpio: ftgpio: Fix an error handling path in 'ftgpio_gpio_probe()'
  ARM: dts: sunxi: Add missing watchdog clocks
  ARM: dts: sunxi: Add missing watchdog interrupts
  gpio: Move gpiochip_lock/unlock_as_irq to gpio/driver.h
  pinctrl: meson: meson: Add of_node_put() before return
  gpio: aspeed: Add SGPIO driver
  hid-logitech-dj: add the new Lightspeed receiver
  HID: logitech-dj: add support of the G700(s) receiver
  clk: renesas: cpg-mssr: Set GENPD_FLAG_ALWAYS_ON for clock domain
  clk: renesas: r9a06g032: Set GENPD_FLAG_ALWAYS_ON for clock domain
  clk: renesas: mstp: Set GENPD_FLAG_ALWAYS_ON for clock domain
  pinctrl/gpio: Take MUX usage into account
  soc: renesas: Enable ARM_ERRATA_754322 for affected Cortex-A9
  soc: renesas: Enable ARM_ERRATA_814220 for affected Cortex-A7
  iommu/amd: Override wrong IVRS IOAPIC on Raven Ridge systems
  arm64: dts: allwinner: h6: Add support for RTC and fix the clock tree
  Documentation: Update Documentation for iommu.passthrough
  iommu: Disable passthrough mode when SME is active
  iommu: Set default domain type at runtime
  iommu: Print default domain type on boot
  ia64: Get rid of iommu_pass_through
  x86/dma: Get rid of iommu_pass_through
  iommu/vt-d: Request passthrough mode from IOMMU core
  iommu/amd: Request passthrough mode from IOMMU core
  iommu: Use Functions to set default domain type in iommu_set_def_domain_type()
  iommu: Add helpers to set/get default domain type
  iommu: Remember when default domain type was set on kernel command line
  dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8150l support
  dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8150b support
  soc: renesas: rmobile-sysc: Set GENPD_FLAG_ALWAYS_ON for always-on domain
  dt-bindings: pinctrl: qcom-pmic-gpio: Add pm8150 support
  pinctrl: amd: disable spurious-firing GPIO IRQs
  MAINTAINERS: Remove FMC subsystem
  ARM: dts: sun7i: Add CSI0 controller
  gpio: tqmx86: Pass irqchip when adding gpiochip
  gpio: vf610: Pass irqchip when adding gpiochip
  gpio: zx: Pass irqchip when adding gpiochip
  gpio: mpc8xxx: add ls1088a platform special function
  gpio: mpc8xxx: add ls1088a platform gpio node DT binding description
  omapdrm: no need to check return value of debugfs_create functions
  drm/omap: Add 'alpha' and 'pixel blend mode' plane properties
  arm64: dts: allwinner: a64: Add A64 OlinuXino board (with eMMC)
  dt-bindings: arm: sunxi: Add compatible for A64 OlinuXino with eMMC
  ARM: dts: v3s: Change the timers compatible
  ARM: dts: h3: Change the timers compatible
  ARM: dts: a83t: Change the timers compatible
  ARM: dts: a23/a33: Change the timers compatible
  ARM: dts: sun6i: Add missing timers interrupts
  ARM: dts: sun5i: Add missing timers interrupts
  ARM: dts: sun4i: Add missing timers interrupts
  dt-bindings: mfd: Convert Allwinner GPADC bindings to a schema
  arm64: dts: allwinner: h6: Introduce Tanix TX6 board
  dt-bindings: arm: sunxi: Add compatible for Tanix TX6 board
  arm64: allwinner: h6: add I2C nodes
  dt-bindings: i2c: mv64xxx: Add compatible for the H6 i2c node.
  ARM: dts: sunxi: Add mdio bus sub-node to GMAC
  arm64: dts: allwinner: Enable DDC regulator for Beelink GS1
  arm64: dts: allwinner: h6: Enable SPDIF for Beelink GS1
  arm64: dts: allwinner: Add SPDIF node for Allwinner H6
  ARM: dts: sun8i: s3: add devicetree for Lichee zero plus w/ S3
  ARM: sunxi: dts: s3/s3l/v3: add DTSI files for S3/S3L/V3 SoCs
  dt-bindings: arm: sunxi: add binding for Lichee Zero Plus core board
  arm64: dts: allwinner: orange-pi-3: Enable HDMI output
  ARM: dts: sun8i: a83t: Enable HDMI output on Cubietruck Plus
  pinctrl: rza2: Include the appropriate headers
  pinctrl: rza2: Drop driver use of consumer flags
  pinctrl: rza1: Add of_node_put() before return
  pinctrl: sh-pfc: Include the right header
  pinctrl: sh-pfc: Rollback to mux if required when the gpio is freed
  soundwire: intel: handle disabled links
  soundwire: intel: add debugfs register dump
  soundwire: cadence_master: add debugfs register dump
  soundwire: add debugfs support
  KVM: PPC: Book3S HV: Define usage types for rmap array in guest memslot
  KVM: PPC: Book3S: Mark expected switch fall-through
  EDAC/amd64: Decode syndrome before translating address
  EDAC/amd64: Find Chip Select memory size using Address Mask
  EDAC/amd64: Initialize DIMM info for systems with more than two channels
  EDAC/amd64: Recognize DRAM device type ECC capability
  phy: mvebu-a3700-comphy: Inform users if their firmware is too old
  phy: samsung: disable bind/unbind platform driver feature
  phy: core: document phy_calibrate()
  phy: marvell: phy-mvebu-a3700-comphy: Add of_node_put() before return
  phy: marvell: phy-mvebu-cp110-comphy: Add of_node_put() before return
  phy: marvell: phy-armada38x-comphy: Add of_node_put() before return
  phy: enable compile-testing for the Lantiq PHY drivers
  phy: lantiq: vrx200-pcie: add a driver for the Lantiq VRX200 PCIe PHY
  dt-bindings: phy: add binding for the Lantiq VRX200 and ARX300 PCIe PHYs
  ext4: rework reserved cluster accounting when invalidating pages
  ext4: documentation fixes
  ext4: treat buffers with write errors as containing valid data
  drm/nouveau/volt: Fix for some cards having 0 maximum voltage
  drm/nouveau/dispnv50: Fix runtime PM ref tracking for non-blocking modesets
  drm/nouveau/dispnv04: Remove runtime PM
  drm/nouveau/gpio: check function 76 in the power check as well
  drm/nouveau/gpio: check the gpio function 16 in the power check as well
  drm/nouveau/gpio: fail if gpu external power is missing
  drm/nouveau/bios/gpio: sort gpios by values
  drm/nouveau/therm: don't attempt fan control where PMU is already managing it
  drm/nouveau/therm: skip probing for devices not specified in thermal tables
  drm/nouveau/kms/gv100-: attach pixel blend mode property to planes
  drm/nouveau/kms/gv100-: attach alpha property to planes
  drm/nouveau/kms/gv100-: add support for plane zpos property
  drm/nouveau/kms/nv50-: attach immutable zpos property to planes
  drm/nouveau/kms/nv50-: create primary plane before overlay planes
  drm/nouveau/kms/nv50-: use __drm_atomic_helper_plane_reset()
  drm/nouveau/kms/gv100-: implement csc + enable modern colour managment properties
  drm/nouveau/kms/gv100-: use premultiplied alpha blending between planes
  drm/nouveau/kms/nv50-: enable modern color management properties
  drm/nouveau/kms/gf119-: add ctm property support
  drm/nouveau/kms/nv50-: remove overlay alpha formats
  drm/nouveau/fifo/gk104-: fix parsing of mmu fault data
  drm/nouveau/fifo/gf1xx: convert to using nvkm_fault_data
  drm/nouveau/bios/init: handle INIT_RESET_END devinit opcode
  drm/nouveau/bios/init: handle INIT_RESET_BEGUN devinit opcode
  drm/nouveau/bios: downgrade absence of tmds table to info from an error
  drm/nouveau: Disable atomic support on a per-device basis
  drm/nouveau/kms/nv50-: add fp16 scanout support
  drm/nouveau/kms/nv50-: disable input lut harder
  drm/nouveau/kms/tu102-: disable input lut when input is already FP16
  drm/nouveau/kms/gv100: allow windows to use PACKED8BPP formats
  drm/nouveau: fix nvif/device.h is included more than once
  drm/nouveau/dispnv04: subdev/bios.h is included more than once
  drm/nouveau/mmu: use struct_size() helper
  drm/nouveau: drop use of drmp.h
  drm/nouveau: drop drmP.h from all header files
  drm/nouveau: drop drmP.h from nouveau_drv.h
  drm/nouveau: drop use of DRM_UDELAY
  drm/nouveau/bios/init: fix spelling mistake "CONDITON" -> "CONDITION"
  drm/nouveau/secboot: Make acr_r352_ls_gpccs_func static
  ext4: fix warning inside ext4_convert_unwritten_extents_endio
  net/ncsi: update response packet length for GCPS/GNS/GNPTS commands
  drm/panfrost: Fix sleeping while atomic in panfrost_gem_open
  ethernet: Delete unnecessary checks before the macro call “dev_kfree_skb”
  net: usb: Delete unnecessary checks before the macro call “dev_kfree_skb”
  hamradio: Delete unnecessary checks before the macro call “dev_kfree_skb”
  can: Delete unnecessary checks before the macro call “dev_kfree_skb”
  mISDN: Delete unnecessary checks before the macro call “dev_kfree_skb”
  net: fec: add C45 MDIO read/write support
  drm/amd/display: fix calc_pll_max_vco_construct
  drm/amdgpu: enable VCN DPG for Renoir
  Revert "drm/amdgpu: use direct loading on renoir vcn for the moment"
  drm/amdgpu: update gc/sdma goldensetting for rn
  drm/amd/powerplay: Disable renoir smu feature retrieve for the moment
  dt-bindings: net: meson-dwmac: convert to yaml
  dt-bindings: net: snps, dwmac: update reg minItems maxItems
  drm/amd/powerplay: enable renoir dpm feature
  drm/amdgpu: enable SDMA power gating for rn
  drm/amdgpu/sdma4: set sdma clock gating for rn
  drm/amdgpu/mmhub1: set mmhub clock gating for rn
  drm/amdgpu: enable DF clock gating for rn
  drm/amdgpu: enable athub clock gating for rn
  drm/amdgpu: enable IH clock gating for rn
  drm/amdgpu: enable vcn clock gating for rn
  drm/amdgpu: enable rom clock gating for rn
  drm/amdgpu: enable HDP clock gating for rn
  drm/amdgpu: enable BIF clock gating for rn
  drm/amdgpu: enable sdma clock gating for rn
  drm/amdgpu: enable mmhub clock gating for rn
  drm/amdgpu: enable gfx clock gating for rn
  drm/amd/powerplay: add DPMCLOCKS table implementation
  drm/amd/powerplay: init smu tables for rn
  drm/amd/powerplay: add smu tables for rn
  drm/amd/powerplay: using valid mapping check for rn
  drm/amd/powerplay: fix checking gfxoff status for rn
  drm/amdgpu: add and enable gfxoff feature
  drm/amdgpu: add set_gfx_cgpg implement (v2)
  drm/amd/powerplay: udpate smu_v12_0_check_fw_version (v2)
  drm/amd/powerplay: powerup sdma/vcn for all apu series
  drm/amdgpu/powerplay: add Renoir VCN power management
  drm/amdgpu: skip dpm init for renoir
  drm/amdgpu/powerplay: add power up/down SDMA interfaces for renoir
  drm/amdgpu/powerplay: add smu ip block for renoir (v2)
  drm/amdgpu/powerplay: add smu_v12_0.c & smu_v12_0.h for renoir
  drm/amdgpu/powerplay: add initial renoir_ppt.c for renoir (v3)
  drm/amd/powerplay: add smu12_driver_if.h (v3)
  drm/amdgpu/powerplay: Add smu_v12_0_ppsmc.h (v2)
  drm/amd/display: fix a potential null pointer dereference
  drm/amdgpu/powerplay: remove redundant assignment to variable baco_state
  drm/amdkfd: Make deallocate_hiq_sdma_mqd static
  drm/amdgpu/sdma5: fix number of sdma5 trap irq types for navi1x
  drm/amd/display: Enable SST DSC in DM
  Revert "drm/amd/display: Fix underscan not using proper scaling"
  Revert "drm/amd/display: add global master update lock for DCN2"
  Revert "drm/amd/display: navi10 bring up skip dsc encoder config"
  Revert "drm/amd/display: skip dsc config for navi10 bring up"
  drm/amdgpu: fix dma_fence_wait without reference
  drm/powerplay: Fix Vega20 Average Power value v4
  amd/amdgpu: add Arcturus vf DID support
  drm/amdgpu: unity mc base address for arcturus
  drm/amdgpu: disable agp for sriov
  misc: xilinx_sdfec: fix spelling mistake: "Schdule" -> "Schedule"
  misc: xilinx_sdfec: Prevent integer overflow in xsdfec_table_write()
  misc: xilinx_sdfec: Prevent a divide by zero in xsdfec_reg0_write()
  misc: xilinx_sdfec: Return -EFAULT if copy_from_user() fails
  misc: xilinx_sdfec: Fix a couple small information leaks
  rtc: Add Amlogic Virtual Wake RTC
  dt-bindings: rtc: new binding for Amlogic VRTC
  vfio_pci: Restore original state on release
  i40e: fix retrying in i40e_aq_get_phy_capabilities
  i40e: Persistent LLDP support
  i40e: allow reset in recovery mode
  i40e: Remove function i40e_update_dcb_config()
  i40e: Fix crash caused by stress setting of VF MAC addresses
  i40e: reset veb.tc_stats when resetting veb.stats
  i40e: Update FW API version to 1.9
  i40e: check_recovery_mode had wrong if statement
  i40e: Add drop mode parameter to set mac config
  i40e: fix shifts of signed values
  i40e: add check on i40e_configure_tx_ring() return value
  i40e: Check if transceiver implements DDM before access
  i40e: reduce stack usage in i40e_set_fc
  libperf: Fix alignment trap with xyarray contents in 'perf stat'
  perf c2c: Fix report with offline cpus
  libperf: Add perf_thread_map__nr/perf_thread_map__pid functions
  perf cpumap: Remove needless includes from cpumap.h
  perf evsel: Switch to libperf's cpumap.h
  perf x86 kvm-stat: Add missing string.h header
  perf evsel: util/evsel.h needs stdio.h as it uses FILE
  perf evsel: Remove needless stddef.h from util/evsel.h
  perf evsel: Remove needless counts.h header from util/evsel.h
  perf evsel: Add missing perf/evsel.h header in util/evsel.h
  perf scripting python: Add missing counts.h header
  perf stat: Add missing counts.h
  perf tests: Add missing counts.h
  perf script: Add missing counts.h
  perf evlist: Add missing xyarray.h header
  perf bpf: Add missing xyarray.h header
  perf counts: Add missing headers needed for types used
  perf evsel: Move xyarray.h from evsel.c to evsel.h to reduce include dep tree
  perf metricgroup: Remove needless includes from metricgroup.h
  perf kvm s390: Add missing string.h header
  nl80211: add NL80211_CMD_UPDATE_FT_IES to supported commands
  mac80211: minstrel_ht: fix infinite loop because supported is not being shifted
  dt-bindings: arm: rockchip: remove reference to fennec board
  ARM: dts: rockchip: remove rk3288 fennec board support
  arm64: dts: rockchip: add rk3328 VPU node
  platform/chrome: wilco_ec: Add batt_ppid_info command to telemetry driver
  spi: spi-fsl-qspi: Add ls2080a compatibility string to bindings
  nexthops: remove redundant assignment to variable err
  spi: fsl-qspi: Enhance binding to extend example for flash entry
  MAINTAINERS: Extend patterns for Samsung SoC, Security Subsystem and clock drivers
  soc: samsung: chipid: Select missing dependency for EXYNOS_CHIPID
  soc: samsung: chipid: Remove the regmap lookup error log
  perf arm64: Add missing debug.h header
  ASoC: soc-core: initialize list at one place
  ASoC: SOF: topology: fix get control data return type and arguments
  ASoC: soc-core: initialize component list
  ASoC: soc-topology: use for_each_component_dais() at remove_dai()
  ASoC: soc-dai: use bit field for bus_control
  ASoC: soc-core: soc_cleanup_card_resources() become void
  ASoC: soc-core: add NOTE to snd_soc_rtdcom_lookup()
  ASoC: soc-core: use device_register()
  ASoC: mediatek: mt8183: switch tdm pins gpio function when playback on or off
  ASoC: mediatek: mt2701: Fix -Wunused-const-variable warnings
  ASoC: wm8988: fix typo in wm8988_right_line_controls
  ASoC: SOF: imx: Add i.MX8 HW support
  ASoC: SOF: Add OF DSP device support
  dt-bindings: dsp: fsl: Add DSP core binding support
  arm64: dts: fsl: Remove num-lanes property from PCIe nodes
  ASoC: AMD: Fix Kconfig warning without GPIOLIB
  arm64: Add tagged-address-abi.rst to index.rst
  ARM: dts: ls1021a: Remove num-lanes property from PCIe nodes
  PCI: dwc: Return directly when num-lanes is not found
  Revert "iommu/arm-smmu-v3: Disable detection of ATS and PRI"
  iommu/arm-smmu-v3: Avoid locking on invalidation path when not using ATS
  dt-bindings: PCI: designware: Remove the num-lanes from Required properties
  EDAC/amd64: Support more than two controllers for chip selects handling
  driver core: initialize a default DMA mask for platform device
  ipmi: move message error checking to avoid deadlock
  ipmi_ssif: avoid registering duplicate ssif interface
  drm: meson: use match data to detect vpu compatibility
  HID: multitouch: add support for the Smart Tech panel
  HID: multitouch: do not filter mice nodes
  ARM: dts: ux500: Remove ab8500_ldo_usb regulator from device tree
  ARM: dts: ux500: Move ab8500 nodes to ste-ab8500.dtsi
  HID: do not call hid_set_drvdata(hdev, NULL) in drivers
  HID: wacom: do not call hid_set_drvdata(hdev, NULL)
  arm64: defconfig: Enable SM8150 GCC and pinctrl driver
  libperf: Move perf's cpu_map__idx() to perf_cpu_map__idx()
  libperf: Move perf's cpu_map__empty() to perf_cpu_map__empty()
  perf tools: Use perf_cpu_map__nr instead of cpu_map__nr
  tools headers: Add missing perf_event.h include
  NFS: Have nfs4_proc_get_lease_time() call nfs4_call_sync_custom()
  NFS: Have nfs41_proc_secinfo_no_name() call nfs4_call_sync_custom()
  NFS: Have nfs41_proc_reclaim_complete() call nfs4_call_sync_custom()
  NFS: Have _nfs4_proc_secinfo() call nfs4_call_sync_custom()
  NFS: Have nfs4_proc_setclientid() call nfs4_call_sync_custom()
  NFS: Add an nfs4_call_sync_custom() function
  arm64: dts: mt8183: add I2C nodes
  drm/amdgpu/powerplay: silence a warning in smu_v11_0_setup_pptable
  block: move same page handling from __bio_add_pc_page to the callers
  block: create a bio_try_merge_pc_page helper
  block: improve the gap check in __bio_add_pc_page
  powerpc/configs: Disable /dev/port in skiroot defconfig
  selftests/powerpc: Ignore generated files
  powerpc: Document xmon options
  powerpc/eeh: Slightly simplify eeh_add_to_parent_pe()
  powerpc/eeh: Remove unused return path from eeh_pe_dev_traverse()
  powerpc/eeh: Fix crash when edev->pdev changes
  powerpc/eeh: Convert log messages to eeh_edev_* macros
  powerpc/eeh: Introduce EEH edev logging macros
  powerpc/eeh: Add bdfn field to eeh_dev
  powerpc/eeh: Refactor around eeh_probe_devices()
  powerpc/eeh: EEH for pSeries hot plug
  powerpc/eeh: Initialize EEH address cache earlier
  powerpc/eeh: Improve debug messages around device addition
  powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag
  powerpc/64: Adjust order in pcibios_init()
  powerpc: remove meaningless KBUILD_ARFLAGS addition
  drm/i915: Update DRIVER_DATE to 20190822
  crypto: talitos - Fix build warning in aead_des3_setkey
  crypto: n2/des - fix build breakage after DES updates
  crypto: s390/aes - fix typo in XTS_BLOCK_SIZE identifier
  arm64: Define Documentation/arm64/tagged-address-abi.rst
  drm/i915: Kill the undead i915_gem_batch_pool.c
  arm64: dts: mt8183: fix pwrap gic number
  arm: dts: mediatek: add basic support for MT7629 SoC
  ALSA: usb-audio: Remove superfluous bLength checks
  ALSA: usb-audio: Unify the release of usb_mixer_elem_info objects
  ALSA: usb-audio: Simplify parse_audio_unit()
  ALSA: usb-audio: More validations of descriptor units
  KVM: VMX: Fix and tweak the comments for VM-Enter
  KVM: Assert that struct kvm_vcpu is always as offset zero
  KVM: X86: Add pv tlb shootdown tracepoint
  KVM: x86: Unconditionally call x86 ops that are always implemented
  KVM: x86/mmu: Consolidate "is MMIO SPTE" code
  KVM: x86/mmu: Add explicit access mask for MMIO SPTEs
  KVM: x86: Rename access permissions cache member in struct kvm_vcpu_arch
  x86: KVM: svm: eliminate hardcoded RIP advancement from vmrun_interception()
  x86: KVM: svm: eliminate weird goto from vmrun_interception()
  x86: KVM: svm: remove hardcoded instruction length from intercepts
  x86: KVM: add xsetbv to the emulator
  x86: KVM: clear interrupt shadow on EMULTYPE_SKIP
  x86: kvm: svm: propagate errors from skip_emulated_instruction()
  x86: KVM: svm: don't pretend to advance RIP in case wrmsr_interception() results in #GP
  KVM: x86: Fix x86_decode_insn() return when fetching insn bytes fails
  KVM: x86: use Intel speculation bugs and features as derived in generic x86 code
  KVM: x86: always expose VIRT_SSBD to guests
  KVM: x86: fix reporting of AMD speculation bug CPUID leaf
  ALSA: hda/realtek - Blacklist PC beep for Lenovo ThinkCentre M73/93
  ALSA: hda/realtek - Check beep whitelist before assigning in all codecs
  drm/i915: Replace i915_vma_put_fence()
  drm/i915: Pull obj->userfault tracking under the ggtt->mutex
  drm/i915: Track ggtt fence reservations under its own mutex
  HID: logitech: Fix general protection fault caused by Logitech driver
  HID: hidraw: Fix invalid read in hidraw_ioctl
  drm: fix module name in edid_firmware log message
  drm/i915: Generalise the clflush dma-worker
  cpufreq: Print driver name if cpufreq_suspend() fails
  net/mlx5e: Add mlx5e HV VHCA stats agent
  net/mlx5: Add HV VHCA control agent
  net/mlx5: Add HV VHCA infrastructure
  net/mlx5: Add wrappers for HyperV PCIe operations
  PCI: hv: Add a Hyper-V PCI interface driver for software backchannel interface
  PCI: hv: Add a paravirtual backchannel in software
  soundwire: intel: remove unused variables
  ARM: dts: aspeed: swift: Add eMMC device
  cpufreq: mediatek: Add support for mt8183
  cpufreq: mediatek: change to regulator_get_optional
  cpufreq: imx-cpufreq-dt: Add i.MX8MN support
  cpufreq: Use imx-cpufreq-dt for i.MX8MN's speed grading
  cpufreq: qcom-hw: invoke frequency-invariance setter function
  cpufreq: qcom-hw: Update logic to detect turbo frequency
  crypto: sha256_generic - Switch to the generic lib/crypto/sha256.c lib code
  crypto: sha256 - Add sha224 support to sha256 library code
  crypto: sha256 - Make lib/crypto/sha256.c suitable for generic use
  crypto: sha256 - Use get/put_unaligned_be32 to get input, memzero_explicit
  crypto: sha256 - Move lib/sha256.c to lib/crypto
  crypto: sha256_generic - Fix some coding style issues
  crypto: sha256 - Fix some coding style issues
  crypto: vmx/xts - use fallback for ciphertext stealing
  crypto: s390/xts-aes - invoke fallback for ciphertext stealing
  crypto: x86/xts - implement support for ciphertext stealing
  crypto: hisilicon - Fix warning on printing %p with dma_addr_t
  fs: cifs: move from the crypto cipher API to the new DES library interface
  crypto: des - remove now unused __des3_ede_setkey()
  crypto: x86/des - switch to library interface
  crypto: des - split off DES library from generic DES cipher driver
  crypto: des - remove unused function
  crypto: 3des - move verification out of exported routine
  crypto: ux500/des - switch to new verification routines
  crypto: talitos/des - switch to new verification routines
  crypto: sun4i/des - switch to new verification routines
  crypto: stm32/des - switch to new verification routines
  crypto: rk3288/des - switch to new verification routines
  crypto: qce/des - switch to new verification routines
  crypto: picoxcell/des - switch to new verification routines
  crypto: omap/des - switch to new verification routines
  crypto: n2/des - switch to new verification routines
  crypto: cesa/des - switch to new verification routines
  crypto: ixp4xx/des - switch to new verification routines
  crypto: safexcel/des - switch to new verification routines
  crypto: hisilicon/des - switch to new verification routines
  crypto: hifn/des - switch to new verification routines
  crypto: ccree/des - switch to new verification routines
  crypto: ccp/des - switch to new verification routines
  crypto: nitrox/des - switch to new verification routines
  crypto: cpt/des - switch to new verification routines
  crypto: caam/des - switch to new verification routines
  crypto: bcm/des - switch to new verification routines
  crypto: atmel/des - switch to new verification routines
  crypto: sparc/des - switch to new verification routines
  crypto: s390/des - switch to new verification routines
  crypto: des/3des_ede - add new helpers to verify keys
  MAINTAINERS: nx crypto: Fix typo in a filepath
  lib/mpi: Eliminate unused umul_ppmm definitions for MIPS
  random: Support freezable kthreads in add_hwgenerator_randomness()
  drm/amdkfd: remove set but not used variable 'pdd'
  drm/amd/display: remove duplicated include from dc_link.c
  drm/amdgpu: remove duplicated include from gfx_v9_0.c
  drm/amdgpu: remove set but not used variable 'psp_enabled'
  drm/amd/display: Fix 32-bit divide error in wait_for_alt_mode
  drm/amdgpu: prevent memory leaks in AMDGPU_CS ioctl
  drm/amd/display: Lock the CRTC when setting CRC source
  drm/amd/display: Split out DC programming for CRC capture
  drm/amd/display: Use connector list for finding DPRX CRC aux
  drm/amd/display: Check return code for CRC drm_crtc_vblank_get
  drm/amd/amdgpu: disable MMHUB PG for navi10
  drm/amd/powerplay: correct typo
  drm/amd/powerplay: correct SW smu11 thermal range settings
  drm/amd/powerplay: set Arcturus default fclk as bootup value on dpm disabled
  drm/amd/powerplay: get bootup fclk value
  drm/amd/powerplay: expose supported clock domains only through sysfs
  drm/amd/powerplay: update Arcturus smc fw and driver interface header
  drm/amd/powerplay: remove duplicate macro smu_get_uclk_dpm_states in amdgpu_smu.h
  drm/amd/powerplay: fix variable type errors in smu_v11_0_setup_pptable
  drm/amd/powerplay: add smu_smc_read_sensor support for arcturus
  drm/amdgpu: Fix a typo in the include header guard of 'navi12_ip_offset.h'
  drm/amdgpu/psp: move TMR to cpu invisible vram region
  drm/amdgpu: remove redundant argument for psp_funcs::cmd_submit callback
  drm/amdkfd: Fill the name field in node topology with asic name v2
  drm/amdgpu: Set no-retry as default.
  drm/amdgpu: add firmware header printing for psp fw loading (v2)
  drm/amdgpu: fix debug level for ppt offset/size
  drm/amdgpu: remove special autoload handling for navi12
  drm/amd/display: Calculate bpc based on max_requested_bpc
  drm/amdgpu/gfx9: update pg_flags after determining if gfx off is possible
  csky: Fixup 610 vipt cache flush mechanism
  mm/mmu_notifiers: remove unregister_no_release
  RDMA/odp: remove ib_ucontext from ib_umem
  RDMA/odp: use mmu_notifier_get/put for 'struct ib_ucontext_per_mm'
  soc: qcom: aoss: Add AOSS QMP support
  dt-bindings: soc: qcom: aoss: Add SM8150 and SC7180 support
  dt-bindings: firmware: scm: Add SM8150 and SC7180 support
  dt-bindings: firmware: scm: re-order compatible list
  soc: qcom: smem: Update max processor count
  net/mlx5e: Add trace point for neigh update
  net/mlx5e: Add trace point for neigh used value update
  net/mlx5e: Add tc flower tracepoints
  net/mlx5e: Only access fully initialized flows in neigh update
  net/mlx5e: Refactor neigh update for concurrent execution
  net/mlx5e: Refactor neigh used value update for concurrent execution
  net/mlx5e: Protect neigh hash encap list with spinlock and rcu
  net/mlx5e: Refactor mlx5e_neigh_update_table->encap_lock
  net/mlx5e: Extend neigh hash entry with rcu
  net/mlx5e: Always take reference to neigh entry
  net/mlx5e: Extract code that queues neigh update work into function
  arm64: dts: qcom: sm8150: Add apps shared nodes
  arm64: dts: qcom: sm8150: Add reserved-memory regions
  arm64: dts: qcom: sm8150-mtp: Add regulators
  arm64: dts: qcom: sm8150-mtp: Add base dts file
  arm64: dts: qcom: pm8150l: Add base dts file
  arm64: dts: qcom: pm8150b: Add base dts file
  arm64: dts: qcom: pm8150: Add base dts file
  arm64: dts: qcom: sm8150: Add base dts file
  ACPI: PM: s2idle: Always set up EC GPE for system wakeup
  ACPI: PM: s2idle: Avoid rearming SCI for wakeup unnecessarily
  media: dt-bindings: media: Convert Allwinner A10 IR to a schema
  media: dt-bindings: media: Add YAML schemas for the generic RC bindings
  media: ttusb-dec: Fix info-leak in ttusb_dec_send_command()
  media: dvb-frontends/cxd2099: Make en_templ constant
  media: ec168: Make structure ec168_props constant
  media: firewire: Make structure fdtv_ca constant
  media: dvb-bt8xx: Make variable dst_config constant
  media: dvb-usb: add T230 to dvbsky
  media: dvb-usb: remove T230 from cxusb
  media: dvb-core: fix a memory leak bug
  media: ttpci: unknown protocol is rc-mm-32
  media: dvb-frontends: fix a memory leak bug
  media: dvb-frontends: fix memory leaks
  media: mceusb: fix (eliminate) TX IR signal length limit
  media: rc: add keymap for HardKernel ODROID remote
  media: rc: add keymap for WeTeK Play 2 remote
  media: rc: add keymap for WeTek Hub remote
  media: rc: add keymap for Tanix TX5 max remote
  media: rc: add keymap for Tanix TX3 mini remote
  media: rc: add keymap for Khadas VIM/EDGE remote
  media: rc: add keymap for Amediatech X96-MAX remote
  media: si2168: Refactor command setup code
  media: dvb-frontends: use ida for pll number
  drm/i915/selftests: Fixup a couple of missing serialisation with vma
  net: stmmac: dwc-qos: use devm_platform_ioremap_resource() to simplify code
  net: stmmac: dwmac-anarion: use devm_platform_ioremap_resource() to simplify code
  net: stmmac: dwmac-meson: use devm_platform_ioremap_resource() to simplify code
  net: stmmac: dwmac-meson8b: use devm_platform_ioremap_resource() to simplify code
  net: systemport: use devm_platform_ioremap_resource() to simplify code
  net: bcmgenet: use devm_platform_ioremap_resource() to simplify code
  pxa168_eth: use devm_platform_ioremap_resource() to simplify code
  net: mvneta: use devm_platform_ioremap_resource() to simplify code
  net: fec: use devm_platform_ioremap_resource() to simplify code
  ezchip: nps_enet: use devm_platform_ioremap_resource() to simplify code
  cirrus: cs89x0: use devm_platform_ioremap_resource() to simplify code
  net: sxgbe: use devm_platform_ioremap_resource() to simplify code
  net: ks8851-ml: use devm_platform_ioremap_resource() to simplify code
  net: socionext: use devm_platform_ioremap_resource() to simplify code
  via-rhine: use devm_platform_ioremap_resource() to simplify code
  net: ethernet: ti: use devm_platform_ioremap_resource() to simplify code
  amd-xgbe: use devm_platform_ioremap_resource() to simplify code
  NFSv4: Fix a memory leak bug
  selftests: mlxsw: Add a test case for devlink-trap
  selftests: mlxsw: Add test cases for devlink-trap L2 drops
  mlxsw: spectrum: Add devlink-trap support
  mlxsw: Add trap group for layer 2 discards
  mlxsw: Add layer 2 discard trap IDs
  mlxsw: reg: Add new trap actions
  mlxsw: core: Add API to set trap action
  tools: bpftool: add "bpftool map freeze" subcommand
  tools: bpftool: show frozen status for maps
  xprtrdma: Optimize rpcrdma_post_recvs()
  dt-bindings: rng: mtk-rng: Add documentation for MT8516
  xprtrdma: Inline XDR chunk encoder functions
  xprtrdma: Fix bc_max_slots return value
  dt-bindings: ata: fix typo in Allwinner R40 reset specific paragraph
  posix-cpu-timers: Remove tsk argument from run_posix_cpu_timers()
  posix-cpu-timers: Sanitize bogus WARNONS
  dt-bindings: arm-boards: Update pointer to ARM CPU bindings
  ARM: s3c64xx: squash samsung_usb_phy.h into setup-usb-phy.c
  arm64: sdm845: add adsp and cdsp fastrpc nodes
  arm64: add arch/arm64/Kbuild
  arm64: entry: Move ct_user_exit before any other exception
  bpf: sync bpf.h to tools/
  bpf: clarify when bpf_trace_printk discards lines
  bpf: fix 'struct pt_reg' typo in documentation
  bpf: clarify description for CONFIG_BPF_EVENTS
  drm: kirin: Move ade drm init to kirin drm drv
  drm: kirin: Pass driver data to crtc init and plane init
  drm: kirin: Add alloc_hw_ctx/clean_hw_ctx ops in driver data
  drm: kirin: Make driver_data variable non-global
  drm: kirin: Fix dev->driver_data setting
  drm: kirin: Rename plane_init and crtc_init
  drm: kirin: Add register connect helper functions in drm init
  drm: kirin: Move drm driver to driver data
  drm: kirin: Move config max_width and max_height to driver data
  drm: kirin: Move plane number and primay plane in driver data
  drm: kirin: Move mode config function to driver_data
  drm: kirin: Move channel formats to driver data
  drm: kirin: Move ade crtc/plane help functions to driver_data
  drm: kirin: Reanme dc_ops to kirin_drm_data
  drm: kirin: Move kirin_crtc, kirin_plane, kirin_format to kirin_drm_drv.h
  drm: kirin: Move workqueue to ade_hw_ctx structure
  drm: kirin: Move request irq handle in ade hw ctx alloc
  drm: kirin: Dynamically allocate the hw_ctx
  drm: kirin: Rename ade_crtc to kirin_crtc
  drm: kirin: Rename ade_plane to kirin_plane
  drm: kirin: Remove out_format from ade_crtc
  drm: kirin: Remove uncessary parameter indirection
  drm: kirin: Remove unreachable return
  drm: kirin: Remove HISI_KIRIN_DW_DSI config option
  drm: kirin: Fix for hikey620 display offset problem
  RDMA/mlx5: Use odp instead of mr->umem in pagefault_mr
  RDMA/mlx5: Use ib_umem_start instead of umem.address
  RDMA/core: Make invalidate_range a device operation
  RDMA/odp: Use kvcalloc for the dma_list and page_list
  RDMA/odp: Check for overflow when computing the umem_odp end
  RDMA/odp: Provide ib_umem_odp_release() to undo the allocs
  RDMA/odp: Split creating a umem_odp from ib_umem_get
  RDMA/odp: Make the three ways to create a umem_odp clear
  RMDA/odp: Consolidate umem_odp initialization
  RDMA/odp: Make it clearer when a umem is an implicit ODP umem
  dma-mapping: remove is_device_dma_capable
  RDMA/odp: Iterate over the whole rbtree directly
  usb/max3421: remove the dummy {un,}map_urb_for_dma methods
  usb: add a HCD_DMA flag instead of guestimating DMA capabilities
  drm/i915: Don't deballoon unused ggtt drm_mm_node in linux guest
  usb: host: ohci-pxa27x: Fix and & vs | typo
  iommu/arm-smmu-v3: Fix ATC invalidation ordering wrt main TLBs
  drm/i915/gtt: Add some range asserts
  iommu/arm-smmu-v3: Rework enabling/disabling of ATS for PCI masters
  iommu/arm-smmu-v3: Don't issue CMD_SYNC for zero-length invalidations
  iommu/arm-smmu-v3: Remove boolean bitfield for 'ats_enabled' flag
  iommu/arm-smmu-v3: Disable detection of ATS and PRI
  usb: usbfs: only account once for mmap()'ed usb memory usage
  usb: usb-skeleton: make comment block in line with coding style
  ARM: dts: at91: at91sam9x5dm.dtsi: Style cleanup
  ARM: dts: at91: at91sam9x5_lcd.dtsi: Style cleanup
  ARM: dts: at91: at91sam9xx5ek: Style cleanup
  ARM: dts: at91: at91sam9g15: Style cleanup
  ARM: dts: at91: kizboxmini: Style cleanup
  ARM: dts: at91: cosino: Style cleanup
  ARM: dts: at91: ariettag25: style cleanup
  ARM: dts: at91: ariag25: Style cleanup
  ARM: dts: at91: Add label for sam9x5's internal RTC
  drm/i915: Do not create a new max_bpc prop for MST connectors
  PCI: mobiveil: Fix the CPU base address setup in inbound window
  RDMA/odp: Use the common interval tree library instead of generic
  drm/i915/execlists: Set priority hint prior to submission
  staging: rtl8192u: fix spacing in ieee80211
  staging: rtl8192u: fix macro alignment in ieee80211
  staging: rtl8192u: fix OPEN_BRACE errors in ieee80211
  staging: rtl8192e: remove set but not used variable 'data_len'
  staging: rtl8192e: remove two set but not used variables
  staging: rtl8192u: ieee80211: remove set but not used variable 'data_len'
  merge_config.sh: Check error codes from make
  kbuild: move modkern_{c,a}flags to Makefile.lib from Makefile.build
  kbuild: add CONFIG_ASM_MODVERSIONS
  .gitignore: ignore modules.order explicitly
  staging: erofs: detect potential multiref due to corrupted images
  kbuild: split final module linking out into Makefile.modfinal
  xprtrdma: Clean up xprt_rdma_set_connect_timeout()
  xprtrdma: Use an llist to manage free rpcrdma_reps
  xprtrdma: Remove rpcrdma_buffer::rb_mrlock
  xprtrdma: Cache free MRs in each rpcrdma_req
  hrtimer: Don't take expiry_lock when timer is currently migrated
  hrtimer: Protect lockless access to timer->base
  iommu/arm-smmu-v3: Document ordering guarantees of command insertion
  net/mlx5: Create bypass and loopback flow steering namespaces for RDMA RX
  net/mlx5: Add per-namespace flow table default miss action support
  ASoC: sun4i-i2s: Add support for DSP formats
  ASoC: sun4i-i2s: Replace call to params_width by local variable
  ASoC: sun4i-i2s: Use the actual format width instead of an hardcoded one
  ASoC: sun4i-i2s: Use the physical / slot width for the clocks
  drm/i915: Replace PIN_NONFAULT with calls to PIN_NOEVICT
  btf: do not use CONFIG_OUTPUT_FORMAT
  staging: rts5208: remove redundant assignment to retval
  staging: kpc2000: kpc2000_i2c: Fix different address spaces warnings
  staging: android: Remove ion device tree bindings from the TODO
  staging: rtl8712: Improve naming of include hearder guards
  staging: erofs: avoid loop in submit chains
  staging: rtl8723bs: core: Remove unneeded declaration WFD_OUI
  staging: comedi: ni_mio_common: Fix a typo in ni_mio_common.c
  staging: erofs: avoid endless loop of invalid lookback distance 0
  ARM: ux500: improve BU21013 touchpad bindings
  samples: bpf: syscall_nrs: use mmap2 if defined
  xdp: xdp_umem: replace kmap on vmap for umem map
  libbpf: use LFS (_FILE_OFFSET_BITS) instead of direct mmap2 syscall
  powerpc: add machine check safe copy_to_user
  powerpc/memcpy: Add memcpy_mcsafe for pmem
  powerpc/mce: Handle UE event for memcpy_mcsafe
  extable: Add function to search only kernel exception table
  powerpc/mce: Make machine_check_ue_event() static
  powerpc/mce: Fix MCE handling for huge pages
  powerpc/mce: Schedule work from irq_work
  arm64: dts: renesas: Update 'vsps' properties for readability
  arm64: dts: renesas: r8a77965-salvator-x(s): Enable HDMI sound
  ASoC: sun4i-i2s: Add support for TDM slots
  ASoC: soc-core: remove unneeded dai_link check from snd_soc_remove_dai_link()
  ASoC: soc-core: merge snd_soc_initialize_card_lists()
  ASoC: dt-bindings: Introduce compatible string for imx8qm
  ASoC: fsl_sai: Add support for imx8qm
  kbuild: rebuild modules when module linker scripts are updated
  kbuild: move KBUILD_LDS, KBUILD_VMLINUX_{OBJS,LIBS} to makefiles.rst
  treewide: remove dummy Makefiles for single targets
  kbuild: make single targets work more correctly
  kbuild: Parameterize kallsyms generation and correct reporting
  kbuild: re-implement detection of CONFIG options leaked to user-space
  kbuild: unify clean-dirs rule for in-kernel and external module
  kbuild: unify vmlinux-dirs and module-dirs rules
  kbuild: unset variables in top Makefile instead of setting 0
  kbuild: do not descend to ./Kbuild when cleaning
  arm64: dts: renesas: r8a774c0: Fix register range of display node
  drm/nouveau: Initialize GEM object before TTM object
  gpio/ixp4xx: Register the base PA instead of its VA in fwnode
  s390/paes: Prepare paes functions for large key blobs
  s390/pkey: add CCA AES cipher key support
  s390/zcrypt: Add low level functions for CCA AES cipher keys
  s390/zcrypt: extend cca_findcard function and helper
  s390/pkey: pkey cleanup: narrow in-kernel API, fix some variable types
  s390/startup: round down "mem" option to page boundary
  s390/startup: adjust _sdma and _edma to page boundaries
  s390/stacktrace: use common arch_stack_walk infrastructure
  s390/kasan: avoid report in get_wchan
  s390/process: avoid potential reading of freed stack
  s390/kasan: provide uninstrumented __strlen
  s390: clean .bss before running uncompressed kernel
  PCI: kirin: Make structure kirin_dw_pcie_ops constant
  s390/startup: purge obsolete .gitignore patterns
  s390/startup: add initial pgm check handler
  s390/mm: use refcount_t for refcount
  s390/extmem: use refcount_t for refcount
  s390/pci: PCI_IOV_RESOURCES loop refactoring in zpci_map_resources
  s390: move vmalloc option parsing to startup code
  Documentation/s390: remove outdated debugging390 documentation
  Documentation/s390: remove outdated dasd documentation
  drm/i915/gtt: Include asm/smp.h
  drm/i915/hdmi: make hdcp2_msg_data const
  drm/i915/hdmi: stylistic cleanup around hdcp2_msg_data
  drm/i915/dp: make hdcp2_dp_msg_data const
  drm/i915/dp: avoid shadowing variables
  drm/i915/dp: stylistic cleanup around hdcp2_msg_data
  pinctrl: st: Add of_node_put() before return
  ARM: dts: ux500: Drop TV-out muxgroup on HREFs
  dt-bindings: clk: emev2: Rename bindings documentation file
  clk: sunxi-ng: h6: Allow I2S to change parent rate
  ARM: debug-ll: Add support for r7s9210
  mac80211: minstrel_ht: improve rate probing for devices with static fallback
  mac80211: minstrel_ht: fix default max throughput rate indexes
  mac80211: minstrel_ht: reduce unnecessary rate probing attempts
  mac80211: minstrel_ht: fix per-group max throughput rate initialization
  nl80211: Add support for EDMG channels
  soundwire: intel: move shutdown() callback and don't export symbol
  soundwire: cadence_master: add kernel parameter to override interrupt mask
  soundwire: intel_init: add kernel module parameter to filter out links
  soundwire: cadence_master: fix divider setting in clock register
  soundwire: cadence_master: make use of mclk_freq property
  soundwire: intel: read mclk_freq property from firmware
  soundwire: add new mclk_freq field for properties
  soundwire: stream: remove unnecessary variable initializations
  soundwire: stream: fix disable sequence
  soundwire: include mod_devicetable.h to avoid compiling warnings
  soundwire: cadence_master: use firmware defaults for frame shape
  soundwire: export helpers to find row and column values
  soundwire: bus: improve dynamic debug comments for enumeration
  soundwire: cadence_master: revisit interrupt settings
  soundwire: intel: fix channel number reported by hardware
  soundwire: intel: prevent possible dereference in hw_params
  arm64: dts: renesas: r8a77970: Sort nodes
  arm64: dts: renesas: r8a7796: Sort nodes
  mac80211: fix possible NULL pointerderef in obss pd code
  mac80211: add assoc-at support
  arm64: dts: renesas: r8a774c0: Sort nodes
  cfg80211: Support assoc-at timer in sta-info
  cfg80211: apply same mandatory rate flags for 5GHz and 6GHz
  cfg80211: ibss: use 11a mandatory rates for 6GHz band operation
  cfg80211: use same IR permissive rules for 6GHz band
  cfg80211: add 6GHz in code handling array with NUM_NL80211_BANDS entries
  cfg80211: extend ieee80211_operating_class_to_band() for 6GHz
  cfg80211: util: add 6GHz channel to freq conversion and vice versa
  arm64: dts: renesas: r8a774c0: cat874: Sort nodes
  arm64: dts: renesas: r8a774a1: Sort nodes
  cfg80211: add 6GHz UNII band definitions
  nl80211: add 6GHz band definition to enum nl80211_band
  mac80211: add missing length field increment when generating Radiotap header
  mac80211: 80Mhz was not reported properly when using tx_status_ext
  mac80211: fix bad guard when reporting legacy rates
  mac80211: fix TX legacy rate reporting when tx_status_ext is used
  ARM: dts: r8a77470: Add PMU device node
  drm/i915/gtt: Relax assertion for pt_used
  mtd: spi-nor: intel-spi: Whitelist 4B read commands
  mtd: spi-nor: fix a memory leak bug
  mtd: spi-nor: Fix an error code in spi_nor_read_raw()
  rtc: rv3029: revert error handling patch to rv3029_eeprom_write()
  rtc: ds1672: remove unnecessary check
  rtc: remove superfluous error message
  PCI: hv: Detect and fix Hyper-V PCI domain number collision
  mtd: spi-nor: Fix Cadence QSPI RCU Schedule Stall
  pinctrl: st: Include the right header
  pinctrl: rk805: Make structures constant
  pinctrl: tegra: Flush pinctrl writes during resume
  pinctrl: tegra: Fix write barrier placement in pmx_writel
  pinctrl: bcm-iproc: Pass irqchip when adding gpiochip
  ARM: dts: aspeed: Enable first MMC slot on AST2500 EVB
  dmaengine: dw: platform: Split OF helpers to separate module
  dmaengine: dw: platform: Split ACPI helpers to separate module
  dmaengine: dw: platform: Move handle check to dw_dma_acpi_controller_register()
  dmaengine: dw: platform: Switch to acpi_dma_controller_register()
  dmaengine: dw: platform: Use devm_platform_ioremap_resource()
  dmaengine: dw: platform: Enable iDMA 32-bit on Intel Elkhart Lake
  dmaengine: dw: platform: Use struct dw_dma_chip_pdata
  dmaengine: dw: Export struct dw_dma_chip_pdata for wider use
  dmaengine: acpi: Add kernel doc parameter descriptions
  dmaengine: acpi: Set up DMA mask based on CSRT
  ARM: dts: aspeed: Describe SD controllers
  staging: erofs: add two missing erofs_workgroup_put for corrupted images
  staging: erofs: cannot set EROFS_V_Z_INITED_BIT if fill_inode_lazy fails
  staging: erofs: some compressed cluster should be submitted for corrupted images
  staging: erofs: fix an error handling in erofs_readdir()
  staging: erofs: refuse to mount images with malformed volume name
  PM: QoS: Get rid of unused flags
  cpufreq: intel_pstate: Implement QoS supported freq constraints
  pm-graph v5.5
  cpufreq: remove redundant assignment to ret
  PM / wakeup: Unexport wakeup_source_sysfs_{add,remove}()
  PM / wakeup: Register wakeup class kobj after device is added
  PM / wakeup: Fix sysfs registration error path
  PM / wakeup: Show wakeup sources stats in sysfs
  PM / wakeup: Use wakeup_source_register() in wakelock.c
  PM / wakeup: Drop wakeup_source_init(), wakeup_source_prepare()
  ACPI/PCI: Remove surplus parentheses from a return statement
  ACPICA: Update version to 20190816.
  ACPICA: Add "Windows 2019" string to _OSI support.
  ACPICA: Differentiate Windows 8.1 from Windows 8.
  ACPICA: Fully deploy ACPI_PRINTF_LIKE macro
  ACPICA: iASL,acpi_dump: Improve y/n query
  ACPICA: Fix issues with arg types within printf format strings
  ACPICA: Macros: remove pointer math on a null pointer
  ACPICA: Increase total number of possible Owner IDs
  ACPICA: Debugger: remove redundant assignment on obj_desc
  Documentation: ACPI: DSD: Convert LED documentation to ReST
  soc: amlogic: meson-gx-socinfo: Add of_node_put() before return
  ACPI / APEI: Release resources if gen_pool_add() fails
  ice: improve print for VF's when adding/deleting MAC filters
  ice: Change type for queue counts
  ice: Move VF resources definition to SR-IOV specific file
  ice: Increase size of Mailbox receive queue for many VFs
  ice: Reduce wait times during VF bringup/reset
  ice: update GLINT_DYN_CTL and GLINT_VECT2FUNC register access
  ice: Do not always bring up PF VSI in ice_ena_vsi()
  ice: allow empty Rx descriptors
  ice: Fix kernel hang with DCB reset in CEE mode
  ice: Set WB_ON_ITR when we don't re-enable interrupts
  Input: soc_button_array - use platform_device_register_resndata()
  Input: psmouse - drop all unneeded functions from mouse headers
  ice: fix set pause param autoneg check
  net/mlx5: Add lag_tx_port_affinity capability bit
  net/mlx5: Expose IP-in-IP capability bit
  net/mlx5: Add support for VNIC_ENV internal rq counter
  net/mlx5: Improve functions documentation
  net/mlx5: Add missing include file to lib/crypto.c
  s390/lcs: don't use intparm for channel IO
  s390/ctcm: don't use intparm for channel IO
  s390/qeth: streamline control code for promisc mode
  s390/qeth: get vnicc sub-cmd type from reply data
  s390/qeth: merge qeth_reply struct into qeth_cmd_buffer
  s390/qeth: keep cmd alive after IO completion
  s390/qeth: use correct length field in SNMP cmd callback
  s390/qeth: propagate length of processed cmd IO data to callback
  s390/qeth: use node_descriptor struct
  netdevsim: Fix build error without CONFIG_INET
  xprtrdma: Ensure creating an MR does not trigger FS writeback
  arm64: dts: add support for SM1 based SEI Robotics SEI610
  dt-bindings: arm: Add kryo485 compatible
  xprtrdma: Move rpcrdma_mr_get out of frwr_map
  xprtrdma: Combine rpcrdma_mr_put and rpcrdma_mr_unmap_and_put
  posix-cpu-timers: Fixup stale comment
  alarmtimers: Avoid rtc.h include
  posix-timers: Cleanup forward declarations and includes
  net/mlx5: Fix the order of fc_stats cleanup
  net/mlx5e: Fix deallocation of non-fully init encap entries
  Documentation: net: mlx5: Devlink health documentation updates
  net/mlx5e: Report and recover from CQE with error on RQ
  net/mlx5e: RX, Handle CQE with error at the earliest stage
  net/mlx5e: Report and recover from rx timeout
  net/mlx5e: Report and recover from CQE error on ICOSQ
  net/mlx5e: Split open/close ICOSQ into stages
  net/mlx5e: Add support to rx reporter diagnose
  net/mlx5e: Add helper functions for reporter's basics
  net/mlx5e: Add cq info to tx reporter diagnose
  net/mlx5e: Extend tx reporter diagnostics output
  net/mlx5e: Extend tx diagnose function
  net/mlx5e: Generalize tx reporter's functionality
  net/mlx5e: Change naming convention for reporter's functions
  net/mlx5e: Rename reporter header file
  hrtimer: Improve comments on handling priority inversion against softirq kthread
  posix-timers: Use a callback for cancel synchronization on PREEMPT_RT
  xprtrdma: Simplify rpcrdma_mr_pop
  drm/i915: Fix DP-MST crtc_mask
  drm/i915/tgl: update DMC firmware to 2.04
  drm/i915/tgl: Move transcoders to pipes' powerwells
  drm/i915/tgl: add support for reading the timestamp frequency
  rtc: class: add debug message when registration fails
  rtc: pcf2123: add proper compatible string
  rtc: pcf2123: let the core handle range offsetting
  rtc: pcf2123: convert to devm_rtc_allocate_device
  rtc: pcf2123: remove useless error path goto
  rtc: pcf2123: rename struct and variables
  rtc: pcf2123: stop using dev.platform_data
  rtc: pcf2123: implement .alarm_irq_enable
  rtc; pcf2123: fix possible alarm race condition
  rtc: pcf2123: don't use weekday alarm
  drm/i915/tgl: disable DDIC
  net: dsa: mv88e6xxx: wrap SERDES IRQ in power function
  net: dsa: mv88e6xxx: enable SERDES after setup
  net: dsa: mv88e6xxx: do not change STP state on port disabling
  net: dsa: enable and disable all ports
  net: dsa: do not enable or disable non user ports
  net: dsa: use a single switch statement for port setup
  ice: Restructure VFs initialization flows
  ice: Assume that more than one Rx queue is rare in ice_napi_poll
  ice: Use the software based tail when checking for hung Tx ring
  dt-bindings: arm: amlogic: add SEI Robotics SEI610 bindings
  dt-bindings: arm: amlogic: add SM1 bindings
  soc: amlogic: clk-measure: Add support for SM1
  dt-bindings: soc: amlogic: clk-measure: Add SM1 compatible
  r8152: divide the tx and rx bottom functions
  PCI/IOV: Move sysfs SR-IOV functions to iov.c
  PCI: sysfs: Change permissions from symbolic to octal
  PCI: sysfs: Change DEVICE_ATTR() to DEVICE_ATTR_WO()
  PCI: sysfs: Define device attributes with DEVICE_ATTR*()
  Input: add support for polling to input devices
  Input: wacom_w8001 - allocate additional space for 'phys'
  nbd: fix max number of supported devs
  nbd: fix zero cmd timeout handling v2
  nbd: add missing config put
  nbd: add function to convert blk req op to nbd cmd
  nbd: add set cmd timeout helper
  led: triggers: Fix a memory leak bug
  xprtrdma: Toggle XPRT_CONGESTED in xprtrdma's slot methods
  xprtrdma: Rename rpcrdma_buffer::rb_all
  xprtrdma: Rename CQE field in Receive trace points
  ASoC: mchp-i2s-mcc: Fix simultaneous capture and playback in master mode
  ASoC: mchp-i2s-mcc: Wait for RX/TX RDY only if controller is running
  ASoC: mchp-i2s-mcc: Fix unprepare of GCLK
  ASoC: sun4i-i2s: Support more channels
  ASoC: sun4i-i2s: Pass the channels number as an argument
  ASoC: sun4i-i2s: Remove duplicated quirks structure
  ASoC: sun4i-i2s: Fix the LRCK period on A83t
  ASoC: sun4i-i2s: Fix MCLK Enable bit offset on A83t
  ASoC: sun4i-i2s: Fix WSS and SR fields for the A83t
  ASoC: sun4i-i2s: Fix the LRCK polarity
  ASoC: sun4i-i2s: Fix LRCK and BCLK polarity offsets on newer SoCs
  ASoC: sun4i-i2s: RX and TX counter registers are swapped
  ASoC: sun4i-i2s: Fix the MCLK and BCLK dividers on newer SoCs
  ASoC: sun4i-i2s: Use module clock as BCLK parent on newer SoCs
  ASoC: sun4i-i2s: Move the format configuration to a callback
  ASoC: sun4i-i2s: Move the channel configuration to a callback
  RDMA: Delete DEBUG code
  ASoC: intel: cht_bsw_max98090_ti: Add all Chromebooks that need pmc_plt_clk_0 quirk
  ASoC: sun4i-i2s: Rework MCLK divider calculation
  ASoC: sun4i-i2s: Replace call to params_channels by local variable
  ASoC: sun4i-i2s: Don't use the oversample to calculate BCLK
  ASoC: sun4i-i2s: Switch to devm for PCM register
  arm64: Change the tagged_addr sysctl control semantics to only prevent the opt-in
  arm64: Tighten the PR_{SET, GET}_TAGGED_ADDR_CTRL prctl() unused arguments
  ASoC: sun4i-i2s: Register regmap and PCM before our component
  ASoC: wm8904: implement input mode select as a mux
  ASoC: wm8904: fix typo in DAPM kcontrol name
  RDMA/hns: Fix some white space check_mtu_validate()
  drm/i915: Update DRIVER_DATE to 20190820
  tools: bpftool: implement "bpftool btf show|list"
  libbpf: add bpf_btf_get_next_id() to cycle through BTF objects
  libbpf: refactor bpf_*_get_next_id() functions
  tools: bpf: synchronise BPF UAPI header with tools
  bpf: add new BPF_BTF_GET_NEXT_ID syscall command
  arm64: perf_event: Add missing header needed for smp_processor_id()
  dt-bindings: display: rockchip: update DSI controller
  block: sed-opal: Removed duplicate OPAL_METHOD_LENGTH definition
  block: sed-opal: Remove always false conditional statement
  block: sed-opal: Add/remove spaces
  soc: amlogic: meson-gx-socinfo: Add SM1 and S905X3 IDs
  Tools: hv: move to tools buildsystem
  libperf: Fix arch include paths
  tools headers: Fixup bitsperlong per arch includes
  perf top: Show info message while collecting samples
  perf ui browser: Allow specifying message to show when no samples are available to display
  perf ui: Introduce non-interactive ui__info_window() function
  perf ui: Make 'exit_msg' optional in ui__question_window()
  perf cs-etm: Support sample flags 'insn' and 'insnlen'
  perf report: Prefer DWARF callstacks to LBR ones when captured both
  perf report: Dump LBR callstack data by -D jointly with thread stack
  perf record: Enable LBR callstack capture jointly with thread stack
  tools lib traceevent: Fix "robust" test of do_generate_dynamic_list_file
  perf evsel: Add comment for 'idx' member in 'struct perf_sample_id
  xprtrdma: Boost client's max slot table size to match Linux server
  tools arch x86: Sync asm/cpufeatures.h with the with the kernel
  nfsd: remove duplicated include from filecache.c
  xprtrdma: Boost maximum transport header size
  tools headers: Synchronize linux/bits.h with the kernel sources
  mtd: spi-nor : Remove SPI_NOR_HAS_TB flag on s25fl512s
  tools headers: Grab copy of linux/const.h, needed by linux/bits.h
  test_bpf: Fix a new clang warning about xor-ing two numbers
  perf tools: tools/include should come before tools/uapi/include
  bpf: add include guard to tnum.h
  tools headers: Add limits.h to access __WORDSIZE
  xprtrdma: Fix calculation of ri_max_segs again
  HID: wacom: support named keys on older devices
  HID: wacom: Fix several minor compiler warnings
  xprtrdma: Update obsolete comment
  vfs: don't allow writes to swap files
  mm: set S_SWAPFILE on blockdev swap devices
  xprtrdma: Refresh the documenting comment in frwr_ops.c
  mtd: spi-nor: intel-spi: Add support for Intel Tiger Lake SPI serial flash
  mtd: spi-nor: add support for sst26wf016b memory IC
  drm/i915/gtt: Relax pd_used assertion
  SUNRPC: Inline xdr_commit_encode
  drm/i915: Dynamically allocate s0ix struct for VLV
  drm/i915/tgl: Gen12 render context size
  drm/i915/tgl: Updated Private PAT programming
  drm/i915/tgl: Introduce initial Tiger Lake workarounds
  drm/i915/tgl: Gen12 csb support
  mtd: spi-nor: Add Winbond w25q256jvm
  bpf: add BTF ids in procfs for file descriptors to BTF objects
  bpf: Use PTR_ERR_OR_ZERO in xsk_map_inc()
  SUNRPC: Remove rpc_wake_up_queued_task_on_wq()
  fs: nfs: Fix possible null-pointer dereferences in encode_attrs()
  drm/i915/tgl: add GEN12_MAX_CONTEXT_HW_ID
  drm/i915/tgl: add Gen12 default indirect ctx offset
  drm/i915/tgl: Report valid VDBoxes with SFC capability
  drm/i915: Be defensive when starting vma activity
  drm/i915: Serialize insertion into the file->mm.request_list
  drm/i915: Sanitize PHY state during display core uninit
  dt-bindings: reset: hisilicon: Add ao reset controller
  dt-bindings: reset: hisilicon: Update compatible documentation
  dt-bindings: gpu: mali-utgard: add hisilicon,hi6220-mali compatible
  spi: spi-fsl-dspi: Move dspi_interrupt above dspi_transfer_one_message
  ASoC: intel: cht_bsw_max98090_ti: Add all Chromebooks that need pmc_plt_clk_0 quirk
  ASoC: meson: g12a-tohdmitx: require regmap mmio
  ASoC: meson: axg-tdm-formatter: free reset on device removal
  spi: spi-fsl-dspi: Fix typos
  spi: spi-fsl-dspi: Use reverse Christmas tree declaration order
  spi: spi-fsl-dspi: Replace legacy spi_master names with spi_controller
  spi: spi-fsl-dspi: Remove pointless assignment of master->transfer to NULL
  spi: spi-fsl-dspi: Remove unused initialization of 'ret' in dspi_probe
  spi: spi-fsl-dspi: Reduce indentation in dspi_release_dma()
  spi: spi-fsl-dspi: Change usage pattern of SPI_MCR_* and SPI_CTAR_* macros
  spi: spi-fsl-dspi: Demistify magic value in SPI_SR_CLEAR
  spi: spi-fsl-dspi: Use BIT() and GENMASK() macros
  spi: spi-fsl-dspi: Remove unused defines and includes
  spi: spi-fsl-dspi: Fix code alignment
  dmabuf: Mark up onstack timer for selftests
  drm/i915: Fix HW readout for crtc_clock in HDMI mode
  memremap: provide a not device managed memremap_pages
  memremap: don't use a separate devm action for devmap_managed_enable_get
  memremap: remove the dev field in struct dev_pagemap
  resource: add a not device managed request_free_mem_region variant
  mm/mmu_notifiers: check if mmu notifier callbacks are allowed to fail
  mm: remove CONFIG_MIGRATE_VMA_HELPER
  mm: remove the unused MIGRATE_PFN_DEVICE flag
  mm: remove the unused MIGRATE_PFN_ERROR flag
  nouveau: simplify nouveau_dmem_migrate_vma
  nouveau: simplify nouveau_dmem_migrate_to_ram
  nouveau: remove a few function stubs
  nouveau: factor out dmem fence completion
  nouveau: factor out device memory address calculation
  nouveau: reset dma_nr in nouveau_dmem_migrate_alloc_and_copy
  mm: turn migrate_vma upside down
  drm/amdkfd: use mmu_notifier_put
  drm/amdkfd: fix a use after free race with mmu_notifer unregister
  drm/radeon: use mmu_notifier_get/put for struct radeon_mn
  hmm: use mmu_notifier_get/put for 'struct hmm'
  spi: Fix the number of CS lines documented as an example
  csky: Support kernel non-aligned access
  spi: zynq-qspi: Fix missing spi_unregister_controller when unload module
  ASoC: uniphier: Fix double reset assersion when transitioning to suspend state
  csky: Fixup defer cache flush for 610
  iommu/arm-smmu: Ensure 64-bit I/O accessors are available on 32-bit CPU
  can: mcp251x: remove custom DMA mapped buffer
  can: mcp251x: Use DT-supplied interrupt flags
  can: mcp251x: Use dev_name() during request_threaded_irq()
  can: mcp251x: mcp251x_hw_reset(): allow more time after a reset
  can: mcp251x: use u8 instead of uint8_t
  can: mcp251x: fix print formating strings
  can: mcp251x: avoid long lines
  can: mcp251x: remove unnecessary blank lines
  can: mcp251x: convert block comments to network style comments
  can: m_can_platform: m_can_plat_probe(): add missing error handling if mcan_class is NULL
  can: m_can_platform: remove not needed casts to struct m_can_plat_priv *
  can: tcan4x5x: fix data length in regmap write path
  can: tcan4x5x: tcan4x5x_can_probe(): add missing error handling if mcan_class is NULL
  can: tcan4x5x: remove not needed casts to struct tcan4x5x_priv *
  can: tcan4x5x: remove unused struct tcan4x5x_priv::tcan4x5x_lock
  can: hi311x: remove custom DMA mapped buffer
  can: peak_pci: Make structure peak_pciec_i2c_bit_ops constant
  can: rcar_can: Remove unused platform data support
  dmaengine: change alignment of mux_configure32 and fsl_edma_chan_mux
  dmaengine: make mux_configure32 static
  dmaengine: mv_xor_v2: Fix -Wshift-negative-value
  MAINTAINERS: dmaengine: dw axi dmac: Fix typo in a path
  powerpc/pseries/mobility: use cond_resched when updating device tree
  powerpc/rtas: allow rescheduling while changing cpu states
  powerpc/rtas: use device model APIs and serialization during LPM
  powerpc/603: Fix handling of the DIRTY flag
  powerpc/64s/radix: Remove redundant pfn_pte bitop, add VM_BUG_ON
  powerpc/64: Add VIRTUAL_BUG_ON checks for __va and __pa addresses
  powerpc/perf: fix imc allocation failure handling
  powerpc/64s/radix: Fix memory hot-unplug page table split
  powerpc/64s/radix: Fix memory hotplug section page table creation
  powerpc/64: allow compiler to cache 'current'
  powerpc/32: Add warning on misaligned copy_page() or clear_page()
  powerpc/mm: ppc 603 doesn't need update_mmu_cache()
  powerpc/mm: Simplify update_mmu_cache() on BOOK3S32
  powerpc/mm: move update_mmu_cache() into book3s hash utils.
  powerpc/mm: move FSL_BOOK3 version of update_mmu_cache()
  powerpc/mm: define empty update_mmu_cache() as static inline
  powerpc/mm: don't display empty early ioremap area
  powerpc/32s: Fix boot failure with DEBUG_PAGEALLOC without KASAN.
  powerpc/futex: Fix warning: 'oldval' may be used uninitialized in this function
  powerpc/kasan: Fix shadow area set up for modules.
  powerpc/kasan: Fix parallel loading of modules.
  powerpc/hw_breakpoint: move instruction stepping out of hw_breakpoint_handler()
  powerpc/ptdump: drop non vital #ifdefs
  powerpc/ptdump: get out of note_prot_wx() when CONFIG_PPC_DEBUG_WX is not selected.
  powerpc/ptdump: drop dummy KERN_VIRT_START on PPC32
  powerpc/ptdump: fix walk_pagetables() address mismatch
  powerpc/ptdump: Fix addresses display on PPC32
  dmaengine: dw: Update Intel Elkhart Lake Service Engine acronym
  dt-bindings: dmaengine: nbpfaxi: Rename bindings documentation file
  drm/komeda: Add support for 'memory-region' DT node property
  iommu/arm-smmu: Make private implementation details static
  clk: meson: axg-audio: add g12a reset support
  dt-bindings: clock: meson: add resets to the audio clock controller
  locks: fix a memory leak bug in __break_lease()
  irqchip: Remove dev_err() usage after platform_get_irq()
  irqchip: Add include guard to irq-partition-percpu.h
  irqchip/mmp: Do not call irq_set_default_host() on DT platforms
  irqchip/gic-v3-its: Remove the redundant set_bit for lpi_map
  irqchip/gic-v3: Add quirks for HIP06/07 invalid GICD_TYPER erratum 161010803
  irqchip/gic: Skip DT quirks when evaluating IIDR-based quirks
  irqchip/gic-v3: Warn about inconsistent implementations of extended ranges
  irqchip/gic-v3: Add EPPI range support
  dt-bindings: interrupt-controller: arm,gic-v3: Describe EPPI range support
  irqchip/gic-v3: Dynamically allocate PPI partition descriptors
  irqchip/gic-v3: Dynamically allocate PPI NMI refcounts
  irqchip/gic: Prepare for more than 16 PPIs
  irqchip/gic-v3: Add ESPI range support
  dma-buf: Use %zu for printing sizeof
  Revert "init/Kconfig: Fix infinite Kconfig recursion on PPC"
  dt-bindings: interrupt-controller: arm,gic-v3: Describe ESPI range support
  irqchip/gic-v3: Add INTID range and convertion primitives
  irqchip/gic: Rework gic_configure_irq to take the full ICFGR base
  powerpc/Makefile: Always pass --synthetic to nm if supported
  gpio: ftgpio: Move hardware initialization
  gpio: Use callback presence to determine need of valid_mask
  pinctrl: stmfx: Use the callback to populate valid_mask
  gpio: Pass mask and size with the init_valid_mask()
  gpio: stubs in headers should be inline
  gpio: mockup: don't depend twice on GPIOLIB
  csky: Fixup arch_get_unmapped_area() implementation
  x86/PCI: Remove superfluous returns from void functions
  dw-hdmi-cec: use cec_notifier_cec_adap_(un)register
  drm: dw-hdmi: use cec_notifier_conn_(un)register
  drivers: qcom: Add BCM vote macro to header
  arm64: dts: sdm845: Add dynamic CPU power coefficients
  lockdown: Print current->comm in restriction messages
  efi: Restrict efivar_ssdt_load when the kernel is locked down
  tracefs: Restrict tracefs when the kernel is locked down
  debugfs: Restrict debugfs when the kernel is locked down
  kexec: Allow kexec_file() with appropriate IMA policy when locked down
  lockdown: Lock down perf when in confidentiality mode
  bpf: Restrict bpf when kernel lockdown is in confidentiality mode
  lockdown: Lock down tracing and perf kprobes when in confidentiality mode
  lockdown: Lock down /proc/kcore
  x86/mmiotrace: Lock down the testmmiotrace module
  lockdown: Lock down module params that specify hardware parameters (eg. ioport)
  lockdown: Lock down TIOCSSERIAL
  lockdown: Prohibit PCMCIA CIS storage when the kernel is locked down
  acpi: Disable ACPI table override if the kernel is locked down
  acpi: Ignore acpi_rsdp kernel param when the kernel has been locked down
  ACPI: Limit access to custom_method when the kernel is locked down
  x86/msr: Restrict MSR access when the kernel is locked down
  x86: Lock down IO port access when the kernel is locked down
  PCI: Lock down BAR access when the kernel is locked down
  hibernate: Disable when the kernel is locked down
  kexec_file: Restrict at runtime if the kernel is locked down
  kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE
  lockdown: Copy secure_boot flag in boot params across kexec reboot
  kexec_load: Disable at runtime if the kernel is locked down
  lockdown: Restrict /dev/{mem,kmem,port} when the kernel is locked down
  lockdown: Enforce module signatures if the kernel is locked down
  security: Add a static lockdown policy LSM
  security: Add a "locked down" LSM hook
  security: Support early LSMs
  scsi: lpfc: Update lpfc version to 12.4.0.0
  scsi: lpfc: Merge per-protocol WQ/CQ pairs into single per-cpu pair
  scsi: lpfc: Add NVMe sequence level error recovery support
  scsi: lpfc: Support dynamic unbounded SGL lists on G7 hardware.
  scsi: lpfc: Add MDS driver loopback diagnostics support
  scsi: lpfc: Add first and second level hardware revisions to sysfs reporting
  scsi: lpfc: Migrate to %px and %pf in kernel print calls
  scsi: lpfc: Add simple unlikely optimizations to reduce NVME latency
  scsi: lpfc: Fix coverity warnings
  scsi: lpfc: Fix nvme first burst module parameter description
  scsi: lpfc: Fix BlockGuard enablement on FCoE adapters
  scsi: lpfc: Fix reported physical link speed on a disabled trunked link
  scsi: lpfc: Fix Max Frame Size value shown in fdmishow output
  scsi: lpfc: Fix upcall to bsg done in non-success cases
  scsi: lpfc: Fix sli4 adapter initialization with MSI
  scsi: lpfc: Fix nvme sg_seg_cnt display if HBA does not support NVME
  scsi: lpfc: Fix nvme target mode ABTSing a received ABTS
  scsi: lpfc: Fix hang when downloading fw on port enabled for nvme
  scsi: lpfc: Fix too many sg segments spamming in kernel log
  scsi: lpfc: Fix crash due to port reset racing vs adapter error handling
  scsi: lpfc: Fix deadlock on host_lock during cable pulls
  scsi: lpfc: Fix error in remote port address change
  scsi: lpfc: Fix driver nvme rescan logging
  scsi: lpfc: Fix sg_seg_cnt for HBAs that don't support NVME
  scsi: lpfc: Fix propagation of devloss_tmo setting to nvme transport
  scsi: lpfc: Fix loss of remote port after devloss due to lack of RPIs
  scsi: lpfc: Fix devices that don't return after devloss followed by rediscovery
  scsi: lpfc: Fix null ptr oops updating lpfc_devloss_tmo via sysfs attribute
  scsi: lpfc: Fix FLOGI handling across multiple link up/down conditions
  scsi: lpfc: Fix oops when fewer hdwqs than cpus
  scsi: lpfc: Fix irq raising in lpfc_sli_hba_down
  scsi: lpfc: Fix Oops in nvme_register with target logout/login
  scsi: lpfc: Fix issuing init_vpi mbox on SLI-3 card
  scsi: lpfc: Fix ADISC reception terminating login state if a NVME target
  scsi: lpfc: Fix discovery when target has no GID_FT information
  scsi: lpfc: Fix port relogin failure due to GID_FT interaction
  scsi: lpfc: Fix leak of ELS completions on adapter reset
  scsi: lpfc: Fix failure to clear non-zero eq_delay after io rate reduction
  scsi: lpfc: Fix crash on driver unload in wq free
  scsi: lpfc: Fix ELS field alignments
  scsi: lpfc: Fix PLOGI failure with high remoteport count
  scsi: lpfc: Limit xri count for kdump environment
  scsi: lpfc: remove NULL check before some freeing functions
  scsi: ufs-qcom: Make structure ufs_hba_qcom_vops constant
  scsi: lpfc: use spin_lock_irqsave in IRQ context
  scsi: lpfc: remove redundant code
  scsi: fnic: remove redundant assignment of variable rc
  scsi: qla2xxx: cleanup trace buffer initialization
  scsi: qla2xxx: qla2x00_alloc_fw_dump: set ha->eft
  sctp: remove net sctp.x_enable working as a global switch
  sctp: add SCTP_AUTH_SUPPORTED sockopt
  sctp: add sctp_auth_init and sctp_auth_free
  sctp: use ep and asoc auth_enable properly
  sctp: add SCTP_ASCONF_SUPPORTED sockopt
  sctp: check asoc peer.asconf_capable before processing asconf
  sctp: not set peer.asconf_capable in sctp_association_init
  sctp: add asconf_enable in struct sctp_endpoint
  net: remove empty inet_exit_net
  tc-testing: concurrency: wrap piped rule update commands
  tc-testing: use dedicated DUMMY interface name for dummy dev
  r8152: fix accessing skb after napi_gro_receive
  drm/i915: Assume exclusive access to objects inside resume
  x86/irq: Check for VECTOR_UNUSED directly
  x86/irq: Move IS_ERR_OR_NULL() check into common do_IRQ() code
  x86/irq: Improve definition of VECTOR_SHUTDOWN et al
  irqchip/irq-ingenic-tcu: Fix COMPILE_TEST building
  MIPS: Octeon: Fix a typo in #define OCTOEN_SERIAL_LEN
  selftests: use "$(MAKE)" instead of "make"
  net: phy: realtek: support NBase-T MMD EEE registers on RTL8125
  net: phy: add EEE-related constants
  net: flow_offload: convert block_ing_cb_list to regular list type
  vfio/type1: remove duplicate retrieval of reserved regions
  vfio/type1: Add IOVA range capability support
  vfio/type1: check dma map request is within a valid iova range
  x86/fixmap: Cleanup outdated comments
  vfio/spapr_tce: Fix incorrect tce_iommu_group memory free
  vfio-mdev/mtty: Simplify interrupt generation
  vfio: re-arrange vfio region definitions
  vfio/type1: Update iova list on detach
  vfio/type1: Check reserved region conflict and update iova list
  vfio/type1: Introduce iova list and add iommu aperture validity check
  arm64: dts: qcom: qcs404: Update memory map to v3
  drm/i915: Use 0 for the unordered context
  x86/platform/intel/iosf_mbi Rewrite locking
  drm/i915: Select DMABUF_SELFTESTS for the default i915.ko debug build
  lkdtm: Split WARNING into separate tests
  media: pixfmt-compressed.rst: improve H264/HEVC/MPEG1+2/VP8+9 documentation
  media: docs-rst: Document memory-to-memory video decoder interface
  media: vicodec: set flags for vdec/stateful OUTPUT coded formats
  media: mtk-vcodec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION
  media: venus: vdec: flag OUTPUT formats with V4L2_FMT_FLAG_DYN_RESOLUTION
  media: videodev2.h: add V4L2_FMT_FLAG_DYN_RESOLUTION
  media: videodev2.h: add V4L2_FMT_FLAG_CONTINUOUS_BYTESTREAM
  media: hantro: Enable H264 decoding on rk3288
  media: hantro: Add support for H264 decoding on G1
  media: hantro: Add core bits to support H264 decoding
  drm/drv: Use // for comments in example code
  dma-buf: Add selftests for dma-fence
  soc: samsung: chipid: Fix memory leak in error path
  dma-buf: Introduce selftesting framework
  drm/panfrost: Remove opp table when unloading
  drm/panfrost: Enable devfreq to work without regulator
  drm/panfrost: Implement per FD address spaces
  drm/panfrost: Fix missing unlock on error in panfrost_mmu_map_fault_addr()
  media: hantro: Move copy_metadata() before doing a decode operation
  media: cedrus: Specify H264 startcode and decoding mode
  media: cedrus: Cleanup control initialization
  media: uapi: h264: Get rid of the p0/b0/b1 ref-lists
  media: uapi: h264: Add the concept of start code
  media: uapi: h264: Add the concept of decoding mode
  media: uapi: h264: Rename pixel format
  media: lib/sort.c: implement sort() variant taking context argument
  iommu/arm-smmu: Add context init implementation hook
  iommu/arm-smmu: Add reset implementation hook
  iommu/arm-smmu: Add configuration implementation hook
  iommu/arm-smmu: Move Secure access quirk to implementation
  iommu/arm-smmu: Add implementation infrastructure
  iommu/arm-smmu: Rename arm-smmu-regs.h
  iommu/arm-smmu: Abstract GR0 accesses
  iommu/arm-smmu: Abstract context bank accesses
  iommu/arm-smmu: Abstract GR1 accesses
  iommu/arm-smmu: Get rid of weird "atomic" write
  iommu/arm-smmu: Split arm_smmu_tlb_inv_range_nosync()
  iommu/arm-smmu: Rework cb_base handling
  iommu/arm-smmu: Convert context bank registers to bitfields
  iommu/arm-smmu: Convert GR1 registers to bitfields
  iommu/arm-smmu: Convert GR0 registers to bitfields
  iommu/qcom: Mask TLBI addresses correctly
  iommu/arm-smmu: Mask TLBI address correctly
  drm/i915: i915_active.retire() is optional
  selftests, arm64: fix uninitialized symbol in tags_test.c
  media: gspca: zero usb_buf on error
  media: rockchip/rga: Update maintainership
  nfsd: Fix the documentation for svcxdr_tmpalloc()
  nfsd: Fix up some unused variable warnings
  nfsd: close cached files prior to a REMOVE or RENAME that would replace target
  nfsd: rip out the raparms cache
  nfsd: have nfsd_test_lock use the nfsd_file cache
  nfsd: hook up nfs4_preprocess_stateid_op to the nfsd_file cache
  nfsd: convert fi_deleg_file and ls_file fields to nfsd_file
  nfsd: convert nfs4_file->fi_fds array to use nfsd_files
  media: hdpvr: add terminating 0 at end of string
  media: radio/si470x: kill urb on error
  media: vidioc-queryctrl.rst: fix broken c:type references
  media: stm32-dcmi: add support of several sub-devices
  media: stm32-dcmi: add media controller support
  media: stm32-dcmi: trace the supported fourcc/mbus_code
  media: stm32-dcmi: improve sensor subdev naming
  media: Fix various misspellings of disconnected
  nfsd: hook nfsd_commit up to the nfsd_file cache
  nfsd: hook up nfsd_read to the nfsd_file cache
  nfsd: hook up nfsd_write to the new nfsd_file cache
  nfsd: add a new struct file caching facility to nfsd
  vfs: Export flush_delayed_fput for use by knfsd.
  notify: export symbols for use by the knfsd file cache
  locks: create a new notifier chain for lease attempts
  sunrpc: add a new cache_detail operation for when a cache is flushed
  media: Clarify how menus are hidden by SUBDRV_AUTOSELECT
  svcrdma: Use llist for managing cache of recv_ctxts
  svcrdma: Remove svc_rdma_wq
  block: remove struct request_queue queue_head
  drm/i915/gen11: Allow usage of all GPIO pins
  arm64: dts: rockchip: fix vcc_host_5v regulator for usb3 host
  drm/i915: Serialize against vma moves
  gpu: ipu-v3: image-convert: only sample into the next tile if necessary
  gpu: ipu-v3: image-convert: move tile burst alignment out of loop
  gpu: ipu-v3: image-convert: bail on invalid tile sizes
  gpu: ipu-v3: image-convert: fix image downsize coefficients and tiling calculation
  gpu: ipu-v3: image-convert: limit input seam position to hardware requirements
  gpu: ipu-v3: image-convert: fix output seam valid interval
  gpu: ipu-v3: image-convert: move output seam valid interval calculation into find_best_seam
  arm64: dts: imx8qxp: Add DSP DT node
  arm64: dts: imx8mn: Add cpu-freq support
  arm64: dts: imx8mn-ddr4-evk: Add rohm,bd71847 PMIC support
  arm64: dts: imx8mn-ddr4-evk: Add i2c1 support
  arm64: dts: freescale: Add i.MX8MN DDR4 EVK board support
  arm64: dts: imx8mn: Add gpio-ranges property
  arm64: dts: freescale: Add i.MX8MN dtsi support
  gpu: ipu-v3: image-convert: enable V4L2_PIX_FMT_BGRX32 and _RGBX32
  gpu: ipu-v3: enable remaining 32-bit RGB V4L2 pixel formats
  arm64: dts: imx8mm: Enable cpu-idle driver
  arm64: dts: ls1028a: Add esdhc node in dts
  arm64: dts: ls1028a: Add properties node for Display output pixel clock
  arm64: dts: lx2160a: Fix incorrect I2C clock divider
  arm64: dts: ls1028a: Fix incorrect I2C clock divider
  arm64: dts: ls1012a: Fix incorrect I2C clock divider
  arm64: dts: ls1088a: Fix incorrect I2C clock divider
  arm64: dts: ls1028a: fix gpio nodes
  arm64: dts: ls1028a: Add Thermal Monitor Unit node
  udlfb: Make dlfb_ops constant
  video: fbdev/mmp/core: Use struct_size() in kzalloc()
  video: fbdev: viafb: Remove dead code
  video: fbdev: aty[128]fb: Remove dead code
  video: fbdev: sh_mobile_lcdcfb: Mark expected switch fall-through
  video: fbdev: radeonfb: Use dev_get_drvdata
  video: fbdev: sm712fb: Use dev_get_drvdata
  video: fbdev: pvr2fb: remove unnecessary comparison of unsigned integer with < 0
  efifb: BGRT: Improve efifb_bgrt_sanity_check
  genirq: Force interrupt threading on RT
  clk: imx8mn: Add necessary frequency support for ARM PLL table
  clk: imx8mn: Add missing rate_count assignment for each PLL structure
  arm64: dts: renesas: r8a77980: Fix IPMMU-VC0 base address
  arm64: dts: renesas: ebisu, draak: Limit EtherAVB to 100Mbps
  arm64: dts: renesas: hihope-common: Add HDMI audio support
  iommu/omap: Use the correct type for SLAB_HWCACHE_ALIGN
  soc: renesas: rcar-sysc: Eliminate local variable gov
  soc: renesas: rcar-sysc: Add goto to of_node_put() before return
  ARM: dts: r8a7779: Use SYSC "always-on" PM Domain for HSCIF
  ARM: vf610-zii-cfu1: Add node for switch watchdog
  bus: imx-weim: use module_platform_driver()
  HID: intel-ish-hid: ipc: check the NO_D3 flag to distinguish resume paths
  HID: intel-ish-hid: ipc: make ish suspend paths clear
  HID: intel-ish-hid: ipc: set NO_D3 flag only when needed
  ARM: dts: imx6: drop gpmi-nand address and size cells
  ARM: dts: imx6: replace simple-bus by simple-mfd for anatop
  clk: imx8mn: fix int pll clk gate
  clk: imx8mn: Add GIC clock
  clk: imx8mn: Fix incorrect parents
  clk: imx8mm: Fix incorrect parents
  clk: imx8mq: Fix sys3 pll references
  drm/i915: Only emit the 'send bug report' once for a GPU hang
  m68k: defconfig: Update defconfigs for v5.3-rc2
  m68k: atari: Rename shifter to shifter_st to avoid conflict
  m68k: Prevent some compiler warnings in Coldfire builds
  m68k: mac: Revisit floppy disc controller base addresses
  ARM: dts: imx6qdl-colibri: add phy to fec
  ARM: dts: imx7-colibri: add recovery for I2C for iMX7
  ARM: dts: imx7-colibri: Add sleep pinctrl to ethernet
  ARM: dts: imx7-colibri: prepare module device tree for FlexCAN
  ARM: dts: imx7-colibri: disable HS400
  livepatch: Nullify obj->mod in klp_module_coming()'s error path
  ARM: dts: imx7-colibri: make sure module supplies are always on
  lib/stackdepot: Fix outdated comments
  pinctrl: intel: remap the pin number to gpio offset for irq enabled pin
  drm/i915/gt: Mark up the nested engine-pm timeline lock as irqsafe
  ARM: dts: imx7d: cl-som-imx7: add compatible for phy
  x86/msr-index: Move AMD MSRs where they belong
  drm/i915: Always wrap the ring offset before resetting
  ARM: dts: imx7d: cl-som-imx7: make ethernet work again
  ARM: dts: imx6ul: Add csi node
  drivers: thermal: processor_thermal_device: Export sysfs interface for TCC offset
  drm/xen-front: Make structure fb_funcs constant
  powerpc/xmon: Add a dump of all XIVE interrupts
  powerpc/xive: Fix dump of XIVE interrupt under pseries
  powerpc/xmon: Check for HV mode when dumping XIVE info from OPAL
  powerpc/powernv/ioda2: Create bigger default window with 64k IOMMU pages
  powerpc/powernv/ioda2: Allocate TCE table levels on demand for default DMA window
  powerpc/iommu: Allow bypass-only for DMA
  powerpc/powernv/ioda: Fix race in TCE level allocation
  powerpc/pseries: Fix cpu_hotplug_lock acquisition in resize_hpt()
  net: hns: add phy_attached_info() to the hns driver
  net: ethernet: mediatek: Add MT7628/88 SoC support
  net: ethernet: mediatek: Rename NEXT_RX_DESP_IDX to NEXT_DESP_IDX
  net: ethernet: mediatek: Rename MTK_QMTK_INT_STATUS to MTK_QDMA_INT_STATUS
  dt-bindings: net: mediatek: Add support for MediaTek MT7628/88 SoC
  be2net: eliminate enable field from be_aic_obj
  tipc: clean up skb list lock handling on send path
  net: hns3: add phy_attached_info() to the hns3 driver
  net: hns3: prevent unnecessary MAC TNL interrupt
  net: hns3: change print level of RAS error log from warning to error
  net: hns3: fix error and incorrect format
  net: hns3: modify redundant initialization of variable
  net: hns3: add or modify comments
  tools: iio: add .gitignore
  iio: adc: sc27xx: Change to polling mode to read data
  iio: hid-sensor-attributes: Convert to use int_pow()
  iio: adc: max1027: Use device-managed APIs
  staging: iio: accel: adis16240: Improve readability on write_raw function
  MAINTAINERS: ftm-quaddec: Fix typo in a filepath
  dt-bindings: iio: adc: ad7192: Add binding documentation for AD7192
  staging: iio: adc: ad7192: Add low_pass_3db_filter_frequency
  staging: iio: adc: ad7192: Remove platform data
  pinctrl: intel: Allow to request locked pads
  iio: imu: adis16460: fix variable signedness
  iio: accel: kxcjk1013: Improve comments on KIOX010A and KIOX020A ACPI ids
  KVM: Call kvm_arch_vcpu_blocking early into the blocking sequence
  KVM: arm/arm64: vgic: Make function comments match function declarations
  arm64/kvm: Remove VMID rollover I-cache maintenance
  KVM: arm/arm64: vgic-irqfd: Implement kvm_arch_set_irq_inatomic
  KVM: arm/arm64: vgic-its: Check the LPI translation cache on MSI injection
  KVM: arm/arm64: vgic-its: Cache successful MSI->LPI translation
  KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on vgic teardown
  KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on ITS disable
  KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on disabling LPIs
  KVM: arm/arm64: vgic-its: Invalidate MSI-LPI translation cache on specific commands
  KVM: arm/arm64: vgic-its: Add MSI-LPI translation cache invalidation
  KVM: arm/arm64: vgic: Add __vgic_put_lpi_locked primitive
  KVM: arm/arm64: vgic: Add LPI translation cache definition
  drm/i915: Propagate fence errors
  usb: typec: fusb302: Call fusb302_debugfs_init earlier
  usb: typec: fusb302: Use usb_debug_root as root for our debugfs entry
  usb: typec: tcpm: Use usb_debug_root as root for our debugfs entry
  drm/i915/uc: Never fail on HuC firmware errors
  drm/i915/uc: Don't always fail on unavailable GuC firmware
  drm/i915/guc: Don't open log relay if GuC is not running
  nvmem: imx: add i.MX8QM platform support
  dt-bindings: fsl: scu: add new compatible string for ocotp
  nvmem: mxs-ocotp: update MODULE_AUTHOR() email address
  nvmem: meson-mx-efuse: allow reading data smaller than word_size
  nvmem: sunxi_sid: fix A64 SID controller support
  nvmem: imx-ocotp: Add i.MX8MN support
  dt-bindings: imx-ocotp: Add i.MX8MN compatible
  slimbus: fix slim_tid_txn()
  slimbus: qcom-ngd-ctrl: Add of_node_put() before return
  drm/vboxvideo: Make structure vbox_fb_helper_funcs constant
  staging: gasket: Remove unnecessary line-breaks in function signatures
  staging: erofs: use common file type conversion
  staging: rtl8192e: rtllib_crypt_ccmp.c: Use crypto API ccm(aes)
  staging: rtl8192u: ieee80211: ieee80211_crypt_ccmp.c: Use crypto API ccm(aes)
  clk: Remove extraneous 'for' word in comments
  xsk: support BPF_EXIST and BPF_NOEXIST flags in XSKMAP
  xsk: remove AF_XDP socket from map when the socket is released
  selftests/bpf: add sockopt clone/inheritance test
  bpf: sync bpf.h to tools/
  bpf: support cloning sk storage on accept()
  bpf: export bpf_map_inc_not_zero
  selftests/bpf: fix race in test_tcp_rtt test
  libbpf: relicense bpf_helpers.h and bpf_endian.h
  net: Don't call XDP_SETUP_PROG when nothing is changed
  net/mlx5e: Add AF_XDP need_wakeup support
  net/mlx5e: Move the SW XSK code from NAPI poll to a separate function
  samples/bpf: add use of need_wakeup flag in xdpsock
  libbpf: add support for need_wakeup flag in AF_XDP part
  ixgbe: add support for AF_XDP need_wakeup feature
  i40e: add support for AF_XDP need_wakeup feature
  xsk: add support for need_wakeup flag in AF_XDP rings
  xsk: replace ndo_xsk_async_xmit with ndo_xsk_wakeup
  net: stmmac: selftests: Add selftest for VLAN TX Offload
  net: stmmac: Add support for VLAN Insertion Offload
  net: stmmac: xgmac: Add EEE support
  net: stmmac: selftests: Add tests for SA Insertion/Replacement
  net: stmmac: Add support for SA Insertion/Replacement in XGMAC cores
  net: stmmac: Add ethtool register dump for XGMAC cores
  net: stmmac: dwxgmac: Add Flexible PPS support
  net: stmmac: Add a counter for Split Header packets
  net: stmmac: Add Split Header support and enable it in XGMAC cores
  net: stmmac: xgmac: Correctly return that RX descriptor is not last one
  net: stmmac: Prepare to add Split Header support
  net: stmmac: Get correct timestamp values from XGMAC
  Documentation: Add a section for devlink-trap testing
  selftests: devlink_trap: Add test cases for devlink-trap
  selftests: forwarding: devlink_lib: Add devlink-trap helpers
  selftests: forwarding: devlink_lib: Allow tests to define devlink device
  Documentation: Add description of netdevsim traps
  netdevsim: Add devlink-trap support
  Documentation: Add devlink-trap documentation
  devlink: Add generic packet traps and groups
  devlink: Add packet trap infrastructure
  drop_monitor: Allow user to start monitoring hardware drops
  drop_monitor: Add support for summary alert mode for hardware drops
  drop_monitor: Add support for packet alert mode for hardware drops
  drop_monitor: Consider all monitoring states before performing configuration
  drop_monitor: Add basic infrastructure for hardware drops
  drop_monitor: Initialize hardware per-CPU data
  drop_monitor: Move per-CPU data init/fini to separate functions
  net: bridge: mdb: allow add/delete for host-joined groups
  net: bridge: mdb: dump host-joined entries as well
  net: bridge: mdb: factor out mdb filling
  net: bridge: mdb: move vlan comments
  net: phy: remove genphy_config_init
  net: dsa: remove calls to genphy_config_init
  net: phy: remove calls to genphy_config_init
  dma-fence: Store the timestamp in the same union as the cb_list
  dma-fence: Simply wrap dma_fence_signal_locked with dma_fence_signal
  dma-fence: Avoid list_del during fence->cb_list iteration
  dma-fence: Shrink size of struct dma_fence
  drm/panel: tpo-td043mtea1: remove redundant assignment
  drm/i915/uc: Never fail on uC preparation step
  drm/i915/uc: Cleanup fw fetch on every GuC/HuC init failure
  drm/i915/uc: Cleanup fw fetch only if it was successful
  batman-adv: Add Sven to MAINTAINERS file
  x86/cpu: Use constant definitions for CPU models
  drm/i915/selftests: Check the context size
  drm/i915/gtt: Fold gen8 insertions into one
  arm64: dts: qcom: qcs404-evb: Mark WCSS clocks protected
  ipvlan: set hw_enc_features like macvlan
  drm/i915/uc: Add explicit DISABLED state for firmware
  selftests: Fix get_ifidx and callers in nettest.c
  dt-bindings: pci: pci-msi: Correct the unit-address of the pci node name
  genirq: remove the is_affinity_mask_valid hook
  ia64: remove CONFIG_SWIOTLB ifdefs
  ia64: remove support for machvecs
  drm/i915: Wrappers for display register waits
  ipmi: Free receive messages when in an oops
  f2fs: fix livelock in swapfile writes
  drm/i915: Move gmbus definitions out of i915_reg.h
  drm/i915: Move engine IDs out of i915_reg.h
  drm/i915: Move i915_power_well_id out of i915_reg.h
  net: dsa: mv88e6xxx: check for mode change in port_setup_mac
  drm/i915/execlists: Lift process_csb() out of the irq-off spinlock
  bus: fsl-mc: remove explicit device_link_del
  drm/omap: displays: Remove unused panel drivers
  video: omapfb2: Make standard and custom panel drivers mutually exclusive
  dt-bindings: net: add bindings for ADIN PHY driver
  net: phy: adin: add ethtool get_stats support
  net: phy: adin: implement downshift configuration via phy-tunable
  net: phy: adin: implement PHY subsystem software reset
  net: phy: adin: add EEE translation layer from Clause 45 to Clause 22
  net: phy: adin: add support MDI/MDIX/Auto-MDI selection
  net: phy: adin: make RMII fifo depth configurable
  net: phy: adin: make RGMII internal delays configurable
  net: phy: adin: configure RGMII/RMII/MII modes on config
  net: phy: adin: add {write,read}_mmd hooks
  net: phy: adin: add support for interrupts
  net: phy: adin: hook genphy_{suspend, resume} into the driver
  net: phy: adin: add support for Analog Devices PHYs
  ia64: move the screen_info setup to common code
  ia64: move the ROOT_DEV setup to common code
  ia64: rework iommu probing
  ia64: remove the unused sn_coherency_id symbol
  ia64: remove the SGI UV simulator support
  ia64: remove the zx1 swiotlb machvec
  ia64: remove CONFIG_ACPI ifdefs
  ia64: remove CONFIG_PCI ifdefs
  ia64: remove the hpsim platform
  ia64: remove now unused machvec indirections
  ia64: remove support for the SGI SN2 platform
  drivers: remove the SGI SN2 IOC4 base support
  drivers: remove the SGI SN2 IOC3 base support
  qla2xxx: remove SGI SN2 support
  qla1280: remove SGI SN2 support
  misc/sgi-xp: remove SGI SN2 support
  char/mspec: remove SGI SN2 support
  tty/serial: remove the ioc3_serial driver
  tty/serial: remove the ioc4_serial driver
  tty/serial: remove the sn_console driver
  PCI/hotplug: remove the sgi_hotplug driver
  ide: remove the sgiioc4 driver
  char/agp: remove the sgi-agp driver
  char: remove the SGI tiocx/mbcs driver
  char: remove the SGI snsc driver
  Input: cros_ec_keyb - add back missing mask for event_type
  nfsd: Remove unnecessary NULL checks
  clk: composite: Drop unused clk.h include
  clk: Overwrite clk_hw::init with NULL during clk_register()
  clk: sunxi: Don't call clk_hw_get_name() on a hw that isn't registered
  clk: ti: Don't reference clk_init_data after registration
  clk: qcom: Remove error prints from DFS registration
  rtc: sun6i: Don't reference clk_init_data after registration
  clk: zx296718: Don't reference clk_init_data after registration
  clk: milbeaut: Don't reference clk_init_data after registration
  clk: socfpga: deindent code to proper indentation
  phy: ti: am654-serdes: Don't reference clk_init_data after registration
  clk: sprd: Don't reference clk_init_data after registration
  clk: socfpga: Don't reference clk_init_data after registration
  clk: sirf: Don't reference clk_init_data after registration
  clk: qcom: Don't reference clk_init_data after registration
  clk: meson: axg-audio: Don't reference clk_init_data after registration
  clk: lochnagar: Don't reference clk_init_data after registration
  clk: actions: Don't reference clk_init_data after registration
  drm/i915: Markup expected timeline locks for i915_active
  drm/i915/gt: Mark context->active_count as protected by timeline->mutex
  locks: print a warning when mount fails due to lack of "mand" support
  ARM: dts: add device tree for Mecer Xtreme Mini S6
  drm/i915/wopcm: Fix SPDX tag location
  drm/i915/wopcm: Update error messages
  drm/i915/wopcm: Try to use already locked WOPCM layout
  drm/i915/wopcm: Check WOPCM layout separately from calculations
  drm/i915/uc: Move FW size sanity check back to fetch
  perf unwind: Remove unnecessary test
  drm/i915/buddy: use kmemleak_update_trace
  drm/i915/buddy: tidy up i915_buddy_fini
  perf unwind: Fix libunwind when tid != pid
  perf map: Use zalloc for map_groups
  perf report: Add --switch-on/--switch-off events
  misc/sgi-gru: use mmu_notifier_get/put for struct gru_mm_struct
  mm/mmu_notifiers: add a get/put scheme for the registration
  mm/mmu_notifiers: do not speculatively allocate a mmu_notifier_mm
  mm/mmu_notifiers: hoist do_mmu_notifier_register down_write to the caller
  PCI/P2PDMA: Update pci_p2pdma_distance_many() documentation
  PCI/P2PDMA: Allow IOMMU for host bridge whitelist
  PCI/P2PDMA: dma_map() requests that traverse the host bridge
  PCI/P2PDMA: Store mapping method in an xarray
  PCI/P2PDMA: Factor out __pci_p2pdma_map_sg()
  PCI/P2PDMA: Introduce pci_p2pdma_unmap_sg()
  PCI/P2PDMA: Add attrs argument to pci_p2pdma_map_sg()
  PCI/P2PDMA: Whitelist some Intel host bridges
  PCI/P2PDMA: Factor out host_bridge_whitelist()
  PCI/P2PDMA: Apply host bridge whitelist for ACS
  PCI/P2PDMA: Factor out __upstream_bridge_distance()
  PCI/P2PDMA: Add constants for map type results to upstream_bridge_distance()
  PCI/P2PDMA: Add provider's pci_dev to pci_p2pdma_pagemap struct
  PCI/P2PDMA: Introduce private pagemap structure
  drm: rcar-du: lvds: Fix bridge_to_rcar_lvds
  drm: Remove bridge support from legacy helpers
  drm: Don't include drm/drm_encoder_slave.h when not needed
  arm64: dts: rockchip: Add dts for Leez RK3399 P710 SBC
  PM: sleep: Replace strncmp() with str_has_prefix()
  x86/boot: Use common BUILD_BUG_ON
  ASoC: SOF: pcm: add ALH support
  ASoC: SOF: topology: initial support for Intel ALH DAI type
  ASoC: SOF: rename SOUNDWIRE to ALH
  ASoC: SOF: topology: Add dummy support for i.MX8 DAIs
  ASoC: imx-audmux: Add driver suspend and resume to support MEGA Fast
  arm64: dts: rockchip: enable internal SPI flash for RockPro64.
  dma-buf: Restore seqlock around dma_resv updates
  Revert "ARM: dts: rockchip: add startup delay to rk3288-veyron panel-regulators"
  platform/x86: asus-wmi: Remove unnecessary blank lines
  platform/x86: asus-wmi: Drop indentation level by inverting conditionals
  platform/x86: asus-wmi: Use clamp_val() instead of open coded variant
  platform/x86: asus-wmi: Replace sscanf() with kstrtoint()
  drm/i915: Use the associated uncore for the vm
  USB: phy: fsl-usb: convert platform driver to use dev_groups
  ALSA: hda - Define a fallback_pin_fixup_tbl for alc269 family
  ALSA: hda - Expand pin_match function to match upcoming new tbls
  platform/x86: asus-wmi: Refactor charge_threshold_store()
  platform/x86: asus-wmi: Add support for charge threshold
  platform/x86: asus-nb-wmi: Support ALS on the Zenbook UX430UNR
  platform/x86: touchscreen_dmi: Add info for the Irbis TW90 tablet
  platform/x86: touchscreen_dmi: Add info for the Chuwi Surbook Mini tablet
  drm/i915: Extract intel_frontbuffer active tracking
  printk: Replace strncmp() with str_has_prefix()
  btf: fix return value check in btf_vmlinux_init()
  tools: bpftool: move "__printf()" attributes to header file
  tools: bpftool: fix format string for p_err() in detect_common_prefix()
  tools: bpftool: fix format string for p_err() in query_flow_dissector()
  tools: bpftool: fix argument for p_err() in BTF do_dump()
  tools: bpftool: fix format strings and arguments for jsonw_printf()
  tools: bpftool: fix arguments for p_err() in do_event_pipe()
  powerpc/xive: Implement get_irqchip_state method for XIVE to fix shutdown race
  KVM: PPC: Book3S HV: Don't push XIVE context when not using XIVE device
  KVM: PPC: Book3S HV: Fix race in re-enabling XIVE escalation interrupts
  KVM: PPC: Book3S HV: XIVE: Free escalation interrupts before disabling the VP
  arm64: defconfig: Enable CONFIG_ACPI_APEI_PCIEAER
  libbpf: make libbpf.map source of truth for libbpf version
  tools: bpftool: add documentation for net attach/detach
  tools: bpftool: add bash-completion for net attach/detach
  tools: bpftool: add net detach command to detach XDP on interface
  tools: bpftool: add net attach command to attach XDP on interface
  net: mscc: PTP Hardware Clock (PHC) support
  net: mscc: remove the frame_info cpuq member
  net: mscc: improve the frame header parsing readability
  net: mscc: describe the PTP register range
  Documentation/bindings: net: ocelot: document the PTP ready IRQ
  Documentation/bindings: net: ocelot: document the PTP bank
  soc: fsl: dpio: remove explicit device_link_remove
  arm64: defconfig: Enable the DesignWare watchdog
  drm/i915: Protect request retirement with timeline->mutex
  drm/i915/gt: Guard timeline pinning without relying on struct_mutex
  drm/i915/gt: Convert timeline tracking to spinlock
  drm/i915/gt: Track timeline activeness in enter/exit
  soc: fsl: guts: Add definition for LS1028A
  soc/fsl/qbman: Update device tree with reserved memory
  soc/fsl/qbman: Fixup qman_shutdown_fq()
  soc/fsl/qbman: Disable interrupts during portal recovery
  soc/fsl/qbman: Fix drain_mr_fqni()
  soc/fsl/qbman: Cleanup QMan queues if device was already initialized
  soc/fsl/qbman: Cleanup buffer pools if BMan was initialized prior to bootup
  soc/fsl/qbman: Rework QBMan private memory setup
  soc: fsl: qbman: Remove dev_err() usage after platform_get_irq()
  drm/i915/cml: Add Missing PCI IDs
  qed: Add driver API for flashing the config attributes.
  qed: Add API for configuring NVM attributes.
  Revert "ALSA: hda: Add codec on bus address table lately"
  ARM: lpc32xx: allow multiplatform build
  ARM: lpc32xx: clean up header files
  serial: lpc32xx: allow compile testing
  net: lpc-enet: allow compile testing
  net: lpc-enet: fix printk format strings
  net: lpc-enet: fix badzero.cocci warnings
  net: lpc-enet: move phy setup into platform code
  net: lpc-enet: factor out iram access
  gpio: lpc32xx: allow building on non-lpc32xx targets
  serial: lpc32xx_hs: allow compile-testing
  watchdog: pnx4008_wdt: allow compile-testing
  usb: udc: lpc32xx: allow compile-testing
  usb: ohci-nxp: enable compile-testing
  writeback, cgroup: inode_switch_wbs() shouldn't give up on wb_switch_rwsem trylock fail
  writeback, cgroup: Adjust WB_FRN_TIME_CUT_DIV to accelerate foreign inode switching
  USB: storage: isd200: remove redundant assignment to variable sendToTransport
  usb: typec: fusb302: Always provide fwnode for the port
  dt-bindings: usb: fusb302: Remove deprecated properties
  usb: typec: fusb302: Remove unused properties
  page_pool: fix logic in __page_pool_get_cached
  rds: check for excessive looping in rds_send_xmit
  net/rds: Add a few missing rds_stat_names entries
  RDS: don't use GFP_ATOMIC for sk_alloc in rds_create
  RDS: limit the number of times we loop in rds_send_xmit
  perf top: Add --switch-on/--switch-off events
  selftests: netdevsim: add devlink regions tests
  netdevsim: implement support for devlink region and snapshots
  selftests: netdevsim: add devlink params tests
  selftests: net: push jq workaround into separate helper
  page_pool: remove unnecessary variable init
  r8169: sync EEE handling for RTL8168h with vendor driver
  r8169: use the generic EEE management functions
  net: phy: realtek: add support for EEE registers on integrated PHY's
  net: phy: swphy: emulate register MII_ESTATUS
  net: phy: read MII_CTRL1000 in genphy_read_status only if needed
  net/rds: Add RDS6_INFO_SOCKETS and RDS6_INFO_RECV_MESSAGES options
  ARM: exynos: Enable exynos-chipid driver
  soc: samsung: chipid: Convert exynos-chipid driver to use the regmap API
  soc: samsung: Add exynos chipid driver support
  ARM: samsung: Include GPIO driver header
  ARM: dts: bcm283x: Enable HDMI at board level
  ASoC: SOF: Intel: initial support for Elkhart Lake
  ASoC: Intel: common: add ACPI matching tables for EHL
  ASoC: SOF: Intel: initial support for Tiger Lake.
  ASoC: Intel: common: add ACPI matching tables for Tiger Lake
  regulator: act8865: operating mode and suspend state support
  regulator: core: Add label to collate of_node_put() statements
  regulator: act8865 regulator modes and suspend states
  ASoC: SOF: ipc: add ALH parameters
  ASoC: Intel: boards: Add Cometlake machine driver support
  sgi-xpc: Use GFP_ATOMIC for kmalloc in atomic context.
  sgi-xp: xpc_uv: Make structure xpc_arch_ops_uv constant
  drm/amdgpu: Use new mode2 reset interface for RV.
  drm/amd/poweplay: Add amd_pm_funcs callback for mode 2
  drm/amd/powerpay: Implement mode2 reset callback for SMU10
  drm/amd/powerplay: add mode2 reset callback for pp_smu_mgr
  drm/amd/powerplay: Fix meaning of 0x1E PPSMC_MSG
  dmr/amdgpu: Fix compile error with CONFIG_DRM_AMDGPU_GART_DEBUGFS
  drm/amd/powerplay/smu7: enforce minimal VBITimeout (v2)
  xilinx_sdfec: Convert to IDA
  drm/amd/amdgpu: Update VM function pointer
  drm/amdkfd: Fill amdgpu_task_info for KFD VMs
  drm/amdgpu: Set VM_L2_CNTL.PDE_FAULT_CLASSIFICATION to 0 for GFX10
  drm/amdgpu: Add more page fault info printing for GFX10
  drm/amdgpu: Add printing for RW extracted from VM_L2_PROTECTION_FAULT_STATUS
  drm/amdkfd/gfx10: Calling amdgpu functions to invalidate TLB
  drm/amdgpu: Export function to flush TLB of specific vm hub
  drm/amd/display: Load NV12 SOC BB from firmware
  drm/amd/display: Enable MPO with pre-blend color processing (RGB)
  drm/amd/display: audio cannot switch to internal when display turns off
  drm/amd/display: check hpd before retry verify link cap
  drm/amd/display: enable dcn_mem_pwr as golden setting updates
  drm/amd/display: 3.2.46
  drm/amd/display: fix dcn20 global sync dml param extraction
  drm/amd/display: 3.2.45
  drm/amd/display: Add and refine DSC logs in enable sequence
  drm/amd/display: Add Logging for Gamma Related information (2/2)
  drm/amd/display: Remove redundant definition of dwb_source enums
  drm/amd/display: Add enum for H-timing divider mode
  drm/amd/display: Register VUPDATE_NO_LOCK interrupts for DCN2
  drm/amd/display: wake up ogam mem pwr before programming ocsc
  drm/amd/display: Correct DSC PPS log
  drm/amd/display: Check if set_blank_data_double_buffer exists before call
  drm/amd/display: Fix type of ODMCombineType field
  drm/amd/display: Add Logging for Gamma Related information (1/2)
  drm/amd/display: Remove 4:2:2 DSC support
  drm/amd/display: reprogram VM config when system resume
  drm/amd/display: Enable type C hotplug
  drm/amd/display: HUBP/HUBBUB register programming fixes
  drm/amd/display: update optc odm interface for more than 2 opps
  drm/amd/display: Update DML parameters
  drm/amd/display: Remove duplicate interface for programming FB
  drm/amd/display: fix pipe selection logic in validate
  drm/amd/display: 3.2.44
  drm/amd/display: Set DSC before DIG front-end is connected to its back-end
  drm/amd/display: Change DSC policy from slices per column to minimum slice height
  drm/amd/display: Add HLG support in color module
  MAINTAINERS: add maintainer for SD-FEC
  Docs: misc: xilinx_sdfec: Add documentation
  misc: xilinx_sdfec: Add stats & status ioctls
  misc: xilinx_sdfec: Support poll file operation
  misc: xilinx_sdfec: Add ability to get/set config
  misc: xilinx_sdfec: Add ability to configure LDPC
  misc: xilinx_sdfec: Add ability to configure turbo
  misc: xilinx_sdfec: Store driver config and state
  drm/amd/display: clean up DML for DCN2x
  drm/amd/display: enabling seamless boot sequence for dcn2
  drm/amd/display: fix dcn-specific clk_mgr init_clocks
  drm/amd/display: Make init_hw and init_pipes generic for seamless boot
  drm/amd/display: 3.2.43
  drm/amd/display: wait for pending complete when enabling a plane
  drm/amd/display: refactor gpio to allocate hw_container in constructor
  drm/amd/display: Add work-around option to skip DCN20 clock updates
  drm/amd/display: fixup DPP programming sequence
  drm/amd/display: make firmware info only load once during dc_bios create
  drm/amd/display: Synchronous DisplayPort Link Training
  drm/amd/display: Improve sharing of HUBBUB register lists
  drm/amd/display: Add 22, 24, and 26 degamma
  drm/amd/display: Fix frames_to_insert math
  drm/amd/display: fix issue where 252-255 values are clipped
  drm/amd/display: reset hdmi tmds rate and data scramble on pipe reset
  drm/amd/display: reset drr programming on pipe reset
  drm/amd/display: Add DFS reference clock field
  drm/amd/display: Add PIXEL_RATE control regs for more instances
  drm/scheduler: use job count instead of peek
  drm/amdgpu: MODULE_FIRMWARE requires linux/module.h
  drm/amdgpu/powerplay: fix spelling mistake "unsuported" -> "unsupported"
  drm/amdgpu: implement querying ras error count for mmhub
  drm/amdgpu: use exiting amdgpu_ctx_total_num_entities function
  drm/amdgpu: fix typo error amdgput -> amdgpu
  drm/amd/powerplay: fix message of SetHardMinByFreq failed when feature is disabled
  drm/amd/powerplay: add arcturus_is_dpm_running function for arcturus
  drm/amd/powerplay: remove redundancy debug log about smu unsupported features
  drm/amdgpu: simplify and cleanup setting the dma mask
  drm/radeon: simplify and cleanup setting the dma mask
  drm/amdgpu: handle PCIe root ports with addressing limitations
  drm/radeon: handle PCIe root ports with addressing limitations
  devcoredump: fix typo in comment
  devcoredump: use memory_read_from_buffer
  of/platform: Disable generic device linking code for PowerPC
  perf trace: Add --switch-on/--switch-off events
  perf evswitch: Add hint when not finding specified on/off events
  perf evswitch: Move enoent error message printing to separate function
  perf evswitch: Introduce init() method to set the on/off evsels from the command line
  perf evswitch: Introduce OPTS_EVSWITCH() for cmd line processing
  perf evswitch: Add the names of on/off events
  perf evswitch: Move switch logic to use in other tools
  perf evswitch: Move struct to a separate header to use in other tools
  perf script: Allow specifying event to switch off processing of other events
  perf script: Allow showing the --switch-on event
  perf script: Allow specifying event to switch on processing of other events
  perf vendor events intel: Add Tremontx event file v1.02
  lib/test_printf: Remove obvious comments from %pd and %pD tests
  lib/test_printf: Add test of null/invalid pointer dereference for dentry
  vsprintf: Prevent crash when dereferencing invalid pointers for %pD
  regulator: max8660: remove redundant assignment of variable ret
  ASoC: core: Move pcm_mutex up to card level from snd_soc_pcm_runtime
  ASoC: 88pm860x: remove unused variables 'pcm_switch_controls' and 'aif1_mux'
  ASoC: cs42l56: remove unused variable 'adc_swap_enum'
  ASoC: es8328: Fix copy-paste error in es8328_right_line_controls
  ASoC: es8328: remove unused variable 'pga_tlv'
  ASoC: tlv320aic31xx: remove unused variable 'cm_m_enum'
  ASoC: tlv320aic23: remove unused variable 'tlv320aic23_rec_src'
  ASoC: rt1011: remove unused variable 'dac_vol_tlv' and 'adc_vol_tlv'
  ASoC: max98371: remove unused variable 'max98371_noload_gain_tlv'
  ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'
  ASoC: cs42l73: remove unused variables 'vsp_output_mux' and 'xsp_output_mux'
  ASoC: Intel: Skylake: Print constant literals from format specifier
  ASoC: mediatek: mt6358: add delay after dmic clock on
  ASoC: mediatek: mt8183-mt6358-ts3a227-max98357: remove unused variables
  ASoC: mediatek: mt8183-da7219-max98357: remove unused variable
  ASoC: mt2701: remove unused variables
  ASoC: soc-core: Fix -Wunused-const-variable warning
  ASoC: wm8737: Fix copy-paste error in wm8737_snd_controls
  ASoC: cs4349: Use PM ops 'cs4349_runtime_pm'
  ASoC: es8328: Fix copy-paste error in es8328_right_line_controls
  powerpc/64s: Make boot look nice(r)
  powerpc/xive: Add a check for memory allocation failure
  powerpc/xive: Use GFP_KERNEL instead of GFP_ATOMIC in 'xive_irq_bitmap_add()'
  staging: sm750fb: fix odd license text
  drm/i915: Move tasklet kicking to __i915_request_queue caller
  staging: erofs: correct all misused ENOTSUPP
  staging: erofs: differentiate unsupported on-disk format
  staging: erofs: introduce EFSCORRUPTED and more logs
  kasan/arm64: fix CONFIG_KASAN_SW_TAGS && KASAN_INLINE
  staging: comedi: usbduxsigma: remove redundant assignment to variable fx2delay
  staging: rtl8192u: fix up indentation of a statement
  staging: gasket: apex: Make structure apex_desc constant
  staging: erofs: removing an extra call to iloc() in fill_inode()
  drm/i915/icl: Add gen11 specific render breadcrumbs
  drm/i915/icl: Add command cache invalidate
  drm/i915/icl: Implement gen11 flush including tile cache
  drm/i915/selftest/buddy: fixup igt_buddy_alloc_range
  drm/i915: Convert a few more bland dmesg info to be device specific
  arm64: unexport set_memory_x and set_memory_nx
  crypto: arm64/aegis128 - implement plain NEON version
  crypto: aegis128 - provide a SIMD implementation based on NEON intrinsics
  crypto: aegis128 - add support for SIMD acceleration
  crypto: xts - add support for ciphertext stealing
  crypto: aead - Do not allow authsize=0 if auth. alg has digestsize>0
  crypto: streebog - remove two unused variables
  crypto: aes-generic - remove unused variable 'rco_tab'
  Documentation: crypto: crypto_engine: Fix Sphinx warning
  crypto: cavium/nitrox - Configure asymmetric queue manager Hardware unit
  crypto: cavium/nitrox - Allocate asymmetric crypto command queues
  crypto: cryptd - Use refcount_t for refcount
  hwrng: core - Freeze khwrng thread during suspend
  crypto: caam/qi - execute library only on DPAA 1.x
  crypto: hisilicon - fix error handle in hisi_zip_create_req_q
  crypto: hisilicon - add missing single_release
  crypto: hisilicon - init curr_sgl_dma to fix compile warning
  crypto: hisilicon - add dependency for CRYPTO_DEV_HISI_ZIP
  crypto: hisilicon - fix kbuild warnings
  csky: Fixup ioremap function losing
  media: MAINTAINERS: Add entry for the ov5670 driver
  media: imx7-media-csi: add i.MX6UL support
  media: dt-bindings: imx7-csi: add i.MX6UL/L support
  media: imx: mipi csi-2: Don't fail if initial state times-out
  media: docs-rst: Clarify duration of LP-11 mode
  media: v4l: Documentation: Raw Bayer formats are not RGB formats
  media: v4l: Documentation: Serial busses use parallel mbus codes
  media: i2c: ov5645: Fix power sequence
  media: omap3isp: Don't set streaming state on random subdevs
  media: omap3isp: Set device on omap3isp subdevs
  media: ov5640: Add support for flash and lens devices
  media: ov8856: Check reading clock frequency succeeded
  media: ov5675: Add support for OV5675 sensor
  PCI: imx6: Limit DBI register length
  arm64: smp: disable hotplug on trusted OS resident CPU
  drm/etnaviv: implement softpin
  drm/etnaviv: allow to request specific virtual address for gem mapping
  drm/etnaviv: skip command stream validation on PPAS capable GPUs
  PCI: pci-hyperv: Fix build errors on non-SYSFS config
  drm/etnaviv: implement per-process address spaces on MMUv2
  drm/etnaviv: provide MMU context to etnaviv_gem_mapping_get
  drm/etnaviv: split out starting of FE idle loop
  drm/etnaviv: rework MMU handling
  drm/etnaviv: replace MMU flush marker with flush sequence
  drm/etnaviv: share a single cmdbuf suballoc region across all GPUs
  drm/etnaviv: split out cmdbuf mapping into address space
  drm/etnaviv: simplify unbind checks
  drm/etnaviv: pass mmu pointer to etnaviv_core_dump_mmu
  drm/etnaviv: dump only failing submit
  interconnect: qcom: remove COMPILE_TEST from CONFIG_INTERCONNECT_QCOM_QCS404
  gpio: aspeed: Pass irqchip when adding gpiochip
  gpio: hlwd: Pass irqchip when adding gpiochip
  gpio: xlp: Pass irqchip when adding gpiochip
  dt-bindings: gpio: davinci: Add new compatible for J721E SoCs
  gpio: cadence: Pass irqchip when adding gpiochip
  gpio: thunderx: Switch to GPIOLIB_IRQCHIP
  qcom: spmi-gpio: convert to hierarchical IRQ helpers in gpio core
  gpio: ixp4xx: Convert to hierarchical GPIOLIB_IRQCHIP
  gpio: Add support for hierarchical IRQ domains
  drm/vmwgfx: Assign eviction priorities to resources
  drm/vmwgfx: drop reminaing users of drmP.h
  drm/vmwgfx: drop use of drmP.h in header files
  drm/vmwgfx: Kill unneeded legacy security features
  net/mvpp2: Replace tasklet with softirq hrtimer
  tools/testing/nvdimm: Fix fallthrough warning
  netfilter: nft_bitwise: Adjust parentheses to fix memcmp size argument
  netfilter: remove deprecation warnings from uapi headers.
  tools: bpftool: compile with $(EXTRA_WARNINGS)
  drm/panel: Add driver for the Toppoly TD043MTEA1 panel
  drm/panel: Add driver for the Toppoly TD028TTEC1 panel
  drm/panel: Add driver for the Sony ACX565AKM panel
  drm/panel: Add driver for the Sharp LS037V7DW01 panel
  drm/panel: Add driver for the NEC NL8048HL11 panel
  drm/panel: Add driver for the LG Philips LB035Q02 panel
  dt-bindings: display: panel: Add bindings for NEC NL8048HL11 panel
  dt-bindings: Add legacy 'toppoly' vendor prefix
  dt-bindings: Add vendor prefix for LG Display
  media: vsp1: fix memory leak of dl on error return path
  ALSA: hda: Unexport a few more stuff
  ALSA: hda: Drop export of snd_hdac_bus_add/remove_device()
  Input: remove dev_err() usage after platform_get_irq()
  drm/aspeed: gfc_crtc: Make structure aspeed_gfx_funcs constant
  net: phy: realtek: add NBase-T PHY auto-detection
  kbuild: remove meaningless 'targets' in ./Kbuild
  kbuild: remove 'make /' support
  kbuild: fix modkern_aflags implementation
  kbuild: refactor part-of-module more
  kbuild: move the Module.symvers check for external module build
  kbuild: treat an object as multi-used when $(foo-) is set
  ARM: orion/mvebu: unify debug-ll virtual addresses
  ARM: dove: clean up mach/*.h headers
  r8169: fix sporadic transmit timeout issue
  drm/arm: drop use of drmP.h
  drm/armada: drop use of drmP.h
  drm/tegra: drop use of drmP.h
  drm/i2c/tda998x: drop use of drmP.h
  EDAC/mc: Cleanup _edac_mc_free() code
  ALSA: hda: Add codec on bus address table lately
  ALSA: hda - Drop unsol event handler for Intel HDMI codecs
  arm64/efi: Move variable assignments after SECTIONS
  arm64: Clarify when cpu_enable() is called
  arm64: memory: rename VA_START to PAGE_END
  arm64: memory: fix flipped VA space fallout
  ALSA: sb: remove redundant assignment to variable result
  USB: usbfs: Add a capability flag for runtime suspend
  block: annotate refault stalls from IO submission
  staging: fsl-dpaa2/ethsw: do not force user to bring interface down
  staging: fsl-dpaa2/ethsw: register_netdev only when ready
  staging: fsl-dpaa2/ethsw: reword error message
  staging: fsl-dpaa2/ethsw: remove redundant VLAN check
  staging: fsl-dpaa2/ethsw: remove unnecessary memset
  staging: fsl-dpaa2/ethsw: use bool when encoding learning/flooding state
  staging: fsl-dpaa2/ethsw: remove debug message
  staging: fsl-dpaa2/ethsw: add line terminator to all formats
  staging: fsl-dpaa2/ethsw: enable switch ports only on dev_open
  staging: fsl-dpaa2/ethsw: remove IGMP default address
  drm/bridge: dumb-vga-dac: Fix dereferencing -ENODEV DDC channel
  perf ui: No need to set ui_browser to 1 twice
  perf record: Support aarch64 random socket_id assignment
  perf.data documentation: Clarify HEADER_SAMPLE_TOPOLOGY format
  tools: Keep list of tools in alphabetical order
  perf evsel: Provide meaningful warning when trying to use 'aux_output' on older kernels
  perf intel-pt: Add brief documentation for PEBS via Intel PT
  perf tools: Add aux-output config term
  perf intel-pt: Process options for PEBS event synthesis
  perf tools: Add itrace option 'o' to synthesize aux-output events
  perf tools: Add aux_output attribute flag
  perf record: Add an option to take an AUX snapshot on exit
  perf ftrace: Improve error message about capability to use ftrace
  perf ftrace: Use CAP_SYS_ADMIN instead of euid==0
  perf tools: Add CAP_SYSLOG define for older systems
  perf tools: Add NO_LIBCAP=1 to the minimal build test
  perf tools: Add helpers to use capabilities if present
  ARM: iop32x: merge everything into mach-iop32x/
  ARM: iop32x: make mach/uncompress.h independent of mach/hardware.h
  ARM: xscale: fix multi-cpu compilation
  dma: iop-adma: allow building without platform headers
  dmaengine: iop-adma: use correct printk format strings
  dmaengine: iop-adma: include prefetch.h
  ARM: remove Intel iop33x and iop13xx support
  dt-bindings: gpio: Document GPIOs via Moxtet bus
  drivers: gpio: Add support for GPIOs over Moxtet bus
  bus: moxtet: Add sysfs and debugfs documentation
  dt-bindings: bus: Document moxtet bus binding
  bus: Add support for Moxtet bus
  i2c-cht-wc: Fix lockdep warning
  ARM: multi_v7_defconfig: Enable SPI_STM32_QSPI support
  ARM: remove w90x900 platform
  ARM: remove ks8695 platform
  drm/bridge: dw-hdmi-i2s: add .get_eld support
  drm/bridge: dw-hdmi-i2s: enable only the required i2s lanes
  drm/bridge: dw-hdmi-i2s: reset audio fifo before applying new params
  drm/bridge: dw-hdmi-i2s: set the channel allocation
  dt-bindings: i2c: i2c-emev2: Rename bindings documentation file
  drm/bridge: dw-hdmi-i2s: enable lpcm multi channels
  dt-bindings: i2c: rcar: Rename bindings documentation file
  drm/bridge: dw-hdmi: set channel count in the infoframes
  drm/bridge: dw-hdmi: move audio channel setup out of ahb
  drm/bridge: dw-hdmi-i2s: support more i2s format
  ARM: imx_v6_v7_defconfig: Enable the PSCI CPUidle driver
  arm64: defconfig: Enable the PSCI CPUidle driver
  i2c: replace i2c_new_secondary_device with an ERR_PTR variant
  arm64: memory: Cosmetic cleanups
  arm64: memory: Add comments to end of non-trivial #ifdef blocks
  arm64: memory: Implement __tag_set() as common function
  arm64: memory: Simplify _VA_START and _PAGE_OFFSET definitions
  arm64: memory: Simplify virt_to_page() implementation
  arm64: memory: Rewrite default page_to_virt()/virt_to_page()
  arm64: memory: Ensure address tag is masked in conversion macros
  arm64: memory: Fix virt_addr_valid() using __is_lm_address()
  staging: rtl8723bs: remove redundant assignment to ret
  Staging: rtl8712: rtl8712_recv: fixed 80 character length warning
  staging: rtl8712: r8712_dump_aggr_xframe(): Change type to void
  staging: rtl8712: r8712_xmitframe_aggr_1st(): Change return type to void
  staging: rtl8712: r8712_append_mpdu_unit(): Change return type
  staging: rtl8712: xmitframe_addmic(): Change return values and type
  staging: rtl8723bs: Remove debugging information exposed via procfs
  staging: erofs: xattr.c: avoid BUG_ON
  staging: erofs: remove incomplete cleancache
  PCI: layerscape: Add CONFIG_PCI_LAYERSCAPE_EP to build EP/RC separately
  MAINTAINERS: Update with Amlogic DRM bindings converted as YAML
  dt-bindings: display: amlogic, meson-vpu: convert to yaml
  dt-bindings: display: amlogic, meson-dw-hdmi: convert to yaml
  PCI: layerscape: Add the bar_fixed_64bit property to the endpoint driver
  staging: erofs: inline erofs_inode_is_data_compressed()
  drm/i915: Serialise read/write of the barrier's engine
  drm/i915: Print CCID for all renderCS
  iommu/exynos: Remove __init annotation from exynos_sysmmu_probe()
  drm/i915: Disregard drm_mode_config.fb_base
  drm/i915: Include engine->mmio_base in the debug dump
  media: rc: imon: Allow iMON RC protocol for ffdc 7e device
  media: tm6000: double free if usb disconnect while streaming
  mfd: asic3: Include the right header
  media: rc: imon-rsc keymap has incorrect mappings
  MAINTAINERS: altera-sysmgr: Fix typo in a filepath
  media: em28xx: modules workqueue not inited for 2nd device
  media: selftests: ir: fix ir_loopback test failure
  media: imon_raw: prevent "nonsensical timing event of duration 0"
  media: imon_raw: simplify and explain bit operations
  media: ir-kbd-i2c: convert to i2c_new_dummy_device()
  drm/i915/guc: Remove client->submissions
  media: rc: add include guard to rc-map.h
  media: stv0900_core: remove redundant assignment to variables mclk, div and ad_div
  media: dvb_frontend.h: Fix shifting signed 32-bit value problem
  media: media/dvb: Use kmemdup rather than duplicating its implementation
  media: media/tuners: Use kmemdup rather than duplicating its implementation
  media: media/usb: Use kmemdup rather than duplicating its implementation
  dt-bindings: gpio: aspeed: Add SGPIO support
  lib: Remove redundant ftrace flag removal
  ARM: zynq: Use memcpy_toio instead of memcpy on smp bring-up
  ARM: zynq: Support smp in thumb mode
  iio:light:noa1305: Fix missing break statement.
  drm/i915: Update DRIVER_DATE to 20190813
  drm/vmwgfx: Use VMW_DEBUG_KMS for vmwgfx mode-setting user errors
  drm/vmwgfx: Add debug message for layout change ioctl
  libnvdimm/of_pmem: Provide a unique name for bus provider
  ARM: dts: aspeed: Add Mihawk BMC platform
  ARM: dts: aspeed: fp5280g2: Fix power supply address
  r8152: change rx_copybreak and rx_pending through ethtool
  r8152: support skb_add_rx_frag
  r8152: use alloc_pages for rx buffer
  r8152: replace array with linking list for rx information
  r8152: separate the rx buffer size
  net: phy: let phy_speed_down/up support speeds >1Gbps
  net: phy: add phy_speed_down_core and phy_resolve_min_speed
  net: phy: add __set_linkmode_max_speed
  net: devlink: remove redundant rtnl lock assert
  net: hns3: Make hclge_func_reset_sync_vf static
  drm/i915: Add _TRANS2()
  drm/i915/bdw+: Move misc display IRQ handling to it own function
  devicetree: Expose dtbs_check and dt_binding_check some more
  dt-bindings: watchdog: meson-gxbb-wdt: convert to yaml
  dt-bindings: serial: meson-uart: convert to yaml
  dt-bindings: phy: meson-g12a-usb3-pcie-phy: convert to yaml
  dt-bindings: phy: meson-g12a-usb2-phy: convert to yaml
  dt-bindings: arm: amlogic: amlogic,meson-gx-ao-secure: convert to yaml
  dt-bindings: reset: amlogic,meson-reset: convert to yaml
  dt-bindings: spi: meson: convert to yaml
  dt-bindings: rng: amlogic,meson-rng: convert to yaml
  dt-bindings: mailbox: meson-mhu: convert to yaml
  docs: writing-schema.md: convert from markdown to ReST
  dt-bindings: crypto: Convert Allwinner A10 Security Engine to a schema
  dt-bindings: bus: Convert Allwinner DE2 bus to a schema
  dt-bindings: input: Convert Allwinner LRADC to a schema
  devlink: send notifications for deleted snapshots on region destroy
  rcu: Allow rcu_do_batch() to dynamically adjust batch sizes
  rcu/nocb: Don't wake no-CBs GP kthread if timer posted under overload
  rcu/nocb: Reduce __call_rcu_nocb_wake() leaf rcu_node ->lock contention
  rcu/nocb: Reduce nocb_cb_wait() leaf rcu_node ->lock contention
  rcu/nocb: Advance CBs after merge in rcutree_migrate_callbacks()
  rcu/nocb: Avoid synchronous wakeup in __call_rcu_nocb_wake()
  rcu/nocb: Print no-CBs diagnostics when rcutorture writer unduly delayed
  rcu/nocb: EXP Check use and usefulness of ->nocb_lock_contended
  rcu/nocb: Add bypass callback queueing
  rcu/nocb: Atomic ->len field in rcu_segcblist structure
  rcu/nocb: Unconditionally advance and wake for excessive CBs
  rcu/nocb: Reduce ->nocb_lock contention with separate ->nocb_gp_lock
  rcu/nocb: Reduce contention at no-CBs invocation-done time
  rcu/nocb: Reduce contention at no-CBs registry-time CB advancement
  rcu/nocb: Round down for number of no-CBs grace-period kthreads
  rcu/nocb: Avoid ->nocb_lock capture by corresponding CPU
  rcu/nocb: Avoid needless wakeups of no-CBs grace-period kthread
  rcu/nocb: Make __call_rcu_nocb_wake() safe for many callbacks
  rcu/nocb: Never downgrade ->nocb_defer_wakeup in wake_nocb_gp_defer()
  rcu/nocb: Enable re-awakening under high callback load
  rcu/nohz: Turn off tick for offloaded CPUs
  rcu/nocb: Suppress uninitialized false-positive in nocb_gp_wait()
  rcu/nocb: Use build-time no-CBs check in rcu_pending()
  rcu/nocb: Use build-time no-CBs check in rcu_core()
  rcu/nocb: Use build-time no-CBs check in rcu_do_batch()
  rcu/nocb: Remove obsolete nocb_gp_head and nocb_gp_tail fields
  rcu/nocb: Remove obsolete nocb_cb_tail and nocb_cb_head fields
  rcu/nocb: Remove obsolete nocb_q_count and nocb_q_count_lazy fields
  rcu/nocb: Remove obsolete nocb_head and nocb_tail fields
  rcu/nocb: Use rcu_segcblist for no-CBs CPUs
  rcu/nocb: Leave ->cblist enabled for no-CBs CPUs
  rcu/nocb: Allow lockless use of rcu_segcblist_empty()
  rcu/nocb: Allow lockless use of rcu_segcblist_restempty()
  rcu/nocb: Remove deferred wakeup checks for extended quiescent states
  rcu/nocb: Check for deferred nocb wakeups before nohz_full early exit
  rcu/nocb: Make rcutree_migrate_callbacks() start at leaf rcu_node structure
  rcu/nocb: Add checks for offloaded callback processing
  rcu/nocb: Use separate flag to indicate offloaded ->cblist
  rcu/nocb: Use separate flag to indicate disabled ->cblist
  rcu/nocb: Print gp/cb kthread hierarchy if dump_tree
  rcu/nocb: Rename rcu_nocb_leader_stride kernel boot parameter
  rcu/nocb: Rename and document no-CB CB kthread sleep trace event
  rcu/nocb: Rename rcu_organize_nocb_kthreads() local variable
  rcu/nocb: Rename wake_nocb_leader_defer() to wake_nocb_gp_defer()
  rcu/nocb: Rename __wake_nocb_leader() to __wake_nocb_gp()
  rcu/nocb: Rename wake_nocb_leader() to wake_nocb_gp()
  rcu/nocb: Rename nocb_follower_wait() to nocb_cb_wait()
  rcu/nocb: Provide separate no-CBs grace-period kthreads
  rcu/nocb: Update comments to prepare for forward-progress work
  rcu/nocb: Rename rcu_data fields to prepare for forward-progress work
  acpi: Use built-in RCU list checking for acpi_ioremaps list
  x86/pci: Pass lockdep condition to pcm_mmcfg_list iterator
  driver/core: Convert to use built-in RCU list checking
  libbpf: attempt to load kernel BTF from sysfs first
  btf: rename /sys/kernel/btf/kernel into /sys/kernel/btf/vmlinux
  interconnect: qcom: Add QCS404 interconnect provider driver
  drm/i915/gt: Save/restore interrupts around breadcrumb disable
  drm/i915: Push the wakeref->count deferral to the backend
  interconnect: qcom: Add interconnect RPM over SMD driver
  dt-bindings: interconnect: Add Qualcomm QCS404 DT bindings
  interconnect: qcom: Add tagging and wake/sleep support for sdm845
  interconnect: Add pre_aggregate() callback
  interconnect: Add support for path tags
  arm64: constify sys64_hook instances
  arm64: constify aarch64_insn_encoding_class[]
  arm64: constify icache_policy_str[]
  arm64: prefer __section from compiler_attributes.h
  drm/i915/tgl: Fix missing parentheses on TGL_TRANS_DDI_FUNC_CTL_VAL_TO_PORT
  RDMA/hns: Remove unuseful member
  RDMA/hns: bugfix for slab-out-of-bounds when loading hip08 driver
  RDMA/hns: Bugfix for slab-out-of-bounds when unloading hip08 driver
  RDMA/hns: Modify pi vlaue when cq overflows
  RDMA/hns: Bugfix for creating qp attached to srq
  RDMA/hns: Logic optimization of wc_flags
  RDMA/mlx5: Annotate lock dependency in bind/unbind slave port
  IB/mlx5: Expose XRQ legacy commands over the DEVX interface
  IB/mlx5: Add legacy events to DEVX list
  kbuild: add [M] marker for build log of *.mod.o
  Kbuild: Handle PREEMPT_RT for version string and magic
  kbuild: move flex and bison rules to Makefile.host
  kbuild: make bison create C file and header in a single pattern rule
  kbuild: use $(basename ...) for cmd_asn1_compiler
  kbuild: Fail if gold linker is detected
  modpost: check for static EXPORT_SYMBOL* functions
  ALSA: hda/sigmatel - remove unused variable 'stac9200_core_init'
  can: netlink: fix documentation typos
  can: vcan: introduce pr_fmt and make use of it
  can: vcan: remove unnecessary blank lines
  can: vcan: convert block comments to network style comments
  can: gw: add support for CAN FD frames
  can: gw: use struct canfd_frame as internal data structure
  can: gw: cgw_parse_attr(): remove unnecessary braces for single statement block
  can: gw: cgw_dump_jobs(): avoid long lines
  can: gw: can_can_gw_rcv(): remove return at end of void function
  can: gw: add missing spaces around operators
  can: gw: remove unnecessary blank lines, add suggested blank lines
  can: gw: convert block comments to network style comments
  can: bcm: switch timer to HRTIMER_MODE_SOFT and remove hrtimer_tasklet
  can: bcm: bcm_sock_no_ioctlcmd(): mark function as static
  can: raw: raw_sock_no_ioctlcmd(): mark function as static
  can: raw: raw_module_init(): use pr_err() instead of printk(KERN_ERR, ...)
  can: raw: balance braces around else statements
  can: raw: remove unnecessary blank lines, add suggested blank lines
  can: raw: convert block comments to network style comments
  can: af_can: add missing identifiers to struct receiver::func
  can: af_can: can_pernet_init(): Use preferred style kzalloc(sizeof()) usage
  can: af_can: avoid splitting quoted string across lines
  can: af_can: fix alignment
  can: af_can: balance braces around else statements
  can: af_can: convert block comments to network style comments
  can: xilinx_can: xcan_set_bittiming(): fix the data phase btr1 calculation
  can: xilinx_can: xcan_rx_fifo_get_next_frame(): fix FSR register FL and RI mask values for canfd 2.0
  can: xilinx_can: fix the data update logic for CANFD FD frames
  phy: tegra: Add PCIe PIPE2UPHY support
  dt-bindings: PHY: P2U: Add Tegra194 P2U block
  dt-bindings: PCI: tegra: Add device tree support for Tegra194
  dt-bindings: Add PCIe supports-clkreq property
  PCI: dwc: Add support to enable CDM register check
  media: MAINTAINERS: Remove zoran driver
  media: MAINTAINERS: hantro: Fix typo in a filepath
  media: exynos4-is: Remove call to memset after dma_alloc_coherent
  media: ngene: Remove call to memset after pci_alloc_consistent
  media: i2c: Convert to new i2c device probe()
  dt-bindings: PCI: designware: Add binding for CDM register check
  media: i2c: et8ek8: Convert to new i2c device probe()
  PCI: dwc: Export dw_pcie_wait_for_link() API
  media: i2c: s5c73m3: Convert to new i2c device probe()
  media: i2c: smiapp: Convert to new i2c device probe()
  media: radio: si470x: Convert to new i2c device probe()
  PCI: dwc: Add extended configuration space capability search API
  media: radio: si4713: Convert to new i2c device probe()
  media: i2c: adv748x: Convert to new i2c device probe()
  media: i2c: tvp5150: Add of_node_put() before goto
  media: platform: mtk-mdp: mtk_mdp_core: Add of_node_put() before goto
  PCI: dwc: Move config space capability search API
  media: fdp1: Reduce FCP not found message level to debug
  media: pvrusb2: use kzalloc instead of kmalloc and memset
  media: zd1301_demod: don't check retval after our own assignemt
  media: mn88473: don't check retval after our own assignemt
  media: mn88472: don't check retval after our own assignemt
  media: cxd2820r: don't check retval after our own assignemt
  media: i2c: adv7842: convert to i2c_new_dummy_device
  media: i2c: tda1997x: prevent potential NULL pointer access
  media: usb: go7007: s2250-board: convert to i2c_new_dummy_device
  media: i2c: adv7511-v4l2: convert to i2c_new_dummy_device
  media: i2c: adv7180: convert to i2c_new_dummy_device
  media: i2c: ad9389b: convert to i2c_new_dummy_device
  can: xilinx_can: xcanfd_rx(): fix FSR register handling in the RX path
  media: dvb-frontends: mn88473: convert to i2c_new_dummy_device
  media: dvb-frontends: mn88472: convert to i2c_new_dummy_device
  media: dvb-frontends: mn88443x: convert to i2c_new_dummy_device
  media: dvb-frontends: cxd2820r_core: convert to i2c_new_dummy_device
  can: xilinx_can: xcan_probe(): skip error message on deferred probe
  media: mtk-mdp: fix reference count on old device tree
  PCI: dwc: Group DBI registers writes requiring unlocking
  media: cedrus: Don't set chroma size for scale & rotation
  can: xilinx_can: xcan_chip_start(): fix failure with invalid bus
  media: cedrus: Remove dst_bufs from context
  PCI: Disable MSI for Tegra root ports
  PCI: Add #defines for some of PCIe spec r4.0 features
  media: Revert "media: vimc: propagate pixel format in the stream"
  can: ti_hecc: ti_hecc_mailbox_read(): remove set but not used variable 'mbx_mask'
  media: Revert "media: vimc: Remove or modify stream checks"
  media: rcar-vin: Report correct image stride
  can: ti_hecc: ti_hecc_mailbox_read(): add blank lines to improve readability
  can: ti_hecc: ti_hecc_start(): avoid multiple assignments
  can: ti_hecc: fix print formating strings
  can: ti_hecc: avoid long lines
  can: ti_hecc: fix indention
  can: ti_hecc: convert block comments to network style comments
  can: sja1000: f81601: remove unused including <linux/version.h>
  can: kvaser_pciefd: Remove unused including <linux/version.h>
  can: kvaser_pciefd: kvaser_pciefd_pwm_stop(): remove unnecessary code when setting pwm duty cycle to zero
  media: omap_vout: convert to vb2
  media: omap_vout: fix various v4l2-compliance failures
  selftests/bpf: fix race in flow dissector tests
  tools: bpftool: add feature check for zlib
  btf: expose BTF info through sysfs
  ARM: mach-nspire: Kill off CLCD auxdata
  ARM: dts: Update the NSPIRE DTS files for DRM
  ARM: dts: nomadik: Set up the CS GPIO right
  usb-storage: remove single-use define for debugging
  ARM: dts: am335x-boneblue: Use of am335x-osd335x-common.dtsi
  ARM: dts: gta04: define chosen/stdout-path
  ARM: dts: omap3-n950-n9: Remove regulator-boot-off property
  ARM: dts: am335x-cm-t335: Remove regulator-boot-off property
  ASoC: SOF: fix HDA direct MMIO access
  ASoC: Intel: hsw: remove i386 build warning w/ size_t argument
  ASoC: ti: Fix typos in ti/Kconfig
  bus: ti-sysc: remove set but not used variable 'quirks'
  ASoC: rockchip: rockchip_max98090: Set period size to 240
  bus: ti-sysc: allow reset sharing across devices
  bus: ti-sysc: rework the reset handling
  bus: ti-sysc: re-order the clkdm control around reset handling
  bus: ti-sysc: Add missing kerneldoc comments
  bus: ti-sysc: Switch to SPDX license identifier
  dt-bindings: ti-sysc: Add SPDX license identifier
  MAINTAINERS: Add ti-sysc files under the OMAP2+ entry
  netfilter: connlabels: prefer static lock initialiser
  netfilter: nf_nat_proto: make tables static
  netfilter: nf_tables: add missing prototypes.
  kbuild: remove all netfilter headers from header-test blacklist.
  netfilter: remove "#ifdef __KERNEL__" guards from some headers.
  netfilter: add missing IS_ENABLED(CONFIG_NETFILTER) checks to some header-files.
  netfilter: add missing IS_ENABLED(CONFIG_NF_CONNTRACK) checks to some header-files.
  netfilter: add missing IS_ENABLED(CONFIG_NF_TABLES) check to header-file.
  netfilter: add missing IS_ENABLED(CONFIG_BRIDGE_NETFILTER) checks to header-file.
  netfilter: add missing includes to a number of header-files.
  netfilter: inline four headers files into another one.
  netfilter: nf_tables: store data in offload context registers
  netfilter: nft_bitwise: add offload support
  netfilter: remove unnecessary spaces
  net/mlx5: Add XRQ legacy commands opcodes
  net/mlx5: Use debug message instead of warn
  drm/i915/gvt: Double check batch buffer size after copy
  drm/i915/gvt: Add valid length check for MI variable commands
  drm/i915/gvt: Add MI command valid length check
  drm/i915/gvt: Utility for valid command length check
  drm/i915/gvt: factor out tlb and mocs register offset table
  drm/i915/gvt: no need to check return value of debugfs_create functions
  drm/i915/gvt: Fix typo of VBLANK_TIMER_PERIOD
  drm/i915/uc: Log fw status changes only under debug config
  rtc: Remove dev_err() usage after platform_get_irq()
  dma-buf: rename reservation_object to dma_resv
  dma-buf: nuke reservation_object seq number
  dma-buf/sw_sync: Synchronize signal vs syncpt free
  drm/i915/guc: Use a local cancel_port_requests
  drm/i915: drop engine_pin/unpin_breadcrumbs_irq
  drm/i915/guc: keep breadcrumb irq always enabled
  dmaengine: fsldma: Mark expected switch fall-through
  dmaengine: ti: unexport filter functions
  f2fs: add fs-verity support
  ext4: update on-disk format documentation for fs-verity
  ext4: add fs-verity read support
  ext4: add basic fs-verity support
  fs-verity: support builtin file signatures
  fs-verity: add SHA-512 support
  fs-verity: implement FS_IOC_MEASURE_VERITY ioctl
  fs-verity: implement FS_IOC_ENABLE_VERITY ioctl
  scsi: use __u{8,16,32,64} instead of uint{8,16,32,64}_t in uapi headers
  fscrypt: document the new ioctls and policy version
  ubifs: wire up new fscrypt ioctls
  f2fs: wire up new fscrypt ioctls
  ext4: wire up new fscrypt ioctls
  fscrypt: require that key be added when setting a v2 encryption policy
  fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY_ALL_USERS ioctl
  fscrypt: allow unprivileged users to add/remove keys for v2 policies
  fscrypt: v2 encryption policy support
  fscrypt: add an HKDF-SHA512 implementation
  fscrypt: add FS_IOC_GET_ENCRYPTION_KEY_STATUS ioctl
  fscrypt: add FS_IOC_REMOVE_ENCRYPTION_KEY ioctl
  fscrypt: add FS_IOC_ADD_ENCRYPTION_KEY ioctl
  fscrypt: rename keyinfo.c to keysetup.c
  fscrypt: move v1 policy key setup to keysetup_v1.c
  fscrypt: refactor key setup code in preparation for v2 policies
  fscrypt: rename fscrypt_master_key to fscrypt_direct_key
  fscrypt: add ->ci_inode to fscrypt_info
  fscrypt: use FSCRYPT_* definitions, not FS_*
  fscrypt: use FSCRYPT_ prefix for uapi constants
  fs, fscrypt: move uapi definitions to new header <linux/fscrypt.h>
  fscrypt: use ENOPKG when crypto API support missing
  fscrypt: improve warnings for missing crypto API support
  fscrypt: improve warning messages for unsupported encryption contexts
  fscrypt: make fscrypt_msg() take inode instead of super_block
  fscrypt: clean up base64 encoding/decoding
  fscrypt: remove loadable module related code
  scsi: esas2r: Prefer pcie_capability_read_word()
  scsi: csiostor: Prefer pcie_capability_read_word()
  scsi: sym53c8xx_2: remove redundant assignment to retv
  scsi: pmcraid: Fix a typo - pcmraid --> pmcraid
  scsi: fas216: Mark expected switch fall-throughs
  scsi: megaraid_sas: Introduce module parameter for default queue depth
  scsi: qla2xxx: Fix a NULL pointer dereference
  scsi: qla2xxx: Simplify qla24xx_async_abort_cmd()
  scsi: qla2xxx: Remove two superfluous if-tests
  scsi: qla2xxx: Introduce qla2x00_els_dcmd2_free()
  scsi: qla2xxx: Inline the qla2x00_fcport_event_handler() function
  scsi: qla2xxx: Report invalid mailbox status codes
  scsi: qla2xxx: Remove superfluous sts_entry_* casts
  scsi: qla2xxx: Let the compiler check the type of the SCSI command context pointer
  scsi: qla2xxx: Complain if sp->done() is not called from the completion path
  scsi: qla2xxx: Make sure that aborted commands are freed
  scsi: qla2xxx: Introduce qla2xxx_get_next_handle()
  scsi: qla2xxx: Modify NVMe include directives
  scsi: qla2xxx: Make qlt_handle_abts_completion() more robust
  scsi: qla2xxx: Fix a race condition between aborting and completing a SCSI command
  scsi: qla2xxx: Introduce the function qla2xxx_init_sp()
  scsi: qla2xxx: Enable type checking for the SRB free and done callback functions
  scsi: qla2xxx: Rework key encoding in qlt_find_host_by_d_id()
  scsi: qla2xxx: Set the responder mode if appropriate for ELS pass-through IOCBs
  scsi: qla2xxx: Make it explicit that ELS pass-through IOCBs use little endian
  scsi: qla2xxx: Check secondary image if reading the primary image fails
  scsi: qla2xxx: Change the return type of qla24xx_read_flash_data()
  scsi: qla2xxx: Introduce the be_id_t and le_id_t data types for FC src/dst IDs
  scsi: qla2xxx: Complain if a soft reset fails
  scsi: qla2xxx: Use memcpy() and strlcpy() instead of strcpy() and strncpy()
  scsi: qla2xxx: Check the PCI info string output buffer size
  scsi: qla2xxx: Complain if waiting for pending commands times out
  scsi: qla2xxx: Declare fourth qla2x00_set_model_info() argument const
  scsi: qla2xxx: Always check the qla2x00_wait_for_hba_online() return value
  scsi: qla2xxx: Suppress multiple Coverity complaint about out-of-bounds accesses
  scsi: qla2xxx: Suppress a Coveritiy complaint about integer overflow
  scsi: qla2xxx: Remove unreachable code from qla83xx_idc_lock()
  scsi: qla2xxx: Fix qla24xx_process_bidir_cmd()
  scsi: qla2xxx: Simplify a debug statement
  scsi: qla2xxx: Remove dead code
  scsi: qla2xxx: Complain if parsing the version string fails
  scsi: qla2xxx: Complain if a mailbox command times out
  scsi: qla2xxx: Use strlcpy() instead of strncpy()
  scsi: qla2xxx: Do not corrupt vha->plogi_ack_list
  scsi: qla2xxx: Report the firmware status code if a mailbox command fails
  scsi: qla2xxx: Fix session lookup in qlt_abort_work()
  scsi: qla2xxx: Simplify qla24xx_abort_sp_done()
  scsi: qla2xxx: Remove two superfluous tests
  scsi: qla2xxx: Remove a superfluous pointer check
  scsi: qla2xxx: Simplify qlt_lport_dump()
  scsi: qla2xxx: Reduce the number of casts in GID list code
  scsi: qla2xxx: Verify locking assumptions at runtime
  scsi: qla2xxx: Change data_dsd into an array
  scsi: qla2xxx: Declare qla_tgt_cmd.cdb const
  scsi: qla2xxx: Reduce the scope of three local variables in qla2xxx_queuecommand()
  scsi: qla2xxx: Change the return type of qla2x00_update_ms_fdmi_iocb() into void
  scsi: qla2xxx: Declare the fourth ql_dump_buffer() argument const
  scsi: qla2xxx: Remove a superfluous forward declaration
  scsi: qla2xxx: Remove an include directive from qla_mr.c
  scsi: qla2xxx: Include the <asm/unaligned.h> header file from qla_dsd.h
  scsi: qla2xxx: Use tabs instead of spaces for indentation
  scsi: qla2xxx: Improve Linux kernel coding style conformance
  scsi: qla2xxx: Really fix qla2xxx_eh_abort()
  scsi: qla2xxx: Make qla2x00_abort_srb() again decrease the sp reference count
  lkdtm: Add Control Flow Integrity test
  fanotify, inotify, dnotify, security: add security hook for fs notifications
  Documentation/arm/samsung-s3c24xx: Remove stray U+FEFF character to fix title
  Documentation/arm/sa1100/assabet: Fix 'make assabet_defconfig' command
  Documentation/arm/sa1100: Remove some obsolete documentation
  docs/zh_CN: update Chinese howto.rst for latexdocs making
  Documentation: virt: Fix broken reference to virt tree's index
  docs: Fix typo on pull requests guide
  rtc: mxc: use spin_lock_irqsave instead of spin_lock_irq in IRQ context
  rtc: bd70528: fix driver dependencies
  kernel-doc: Allow anonymous enum
  rtc: remove w90x900/nuc900 driver
  Documentation: sphinx: Don't parse socket() as identifier reference
  Documentation: sphinx: Add missing comma to list of strings
  dt-bindings: add vendor prefix "acme" for "Acme Systems srl"
  ARM: dts: bcm283x: Define memory at board level
  ARM: dts: bcm283x: Define MMC interfaces at board level
  ARM: dts: meson8b: odroidc1: use the MAC address stored in the eFuse
  arm64: dts: meson-g12b-odroid-n2: enable DVFS
  drm/panfrost: Bump driver version to 1.1
  drm/panfrost: Add support for GPU heap allocations
  drm/panfrost: Convert MMU IRQ handler to threaded handler
  arm64: dts: meson-g12b-khadas-vim3: add initial device-tree
  drm/panfrost: Consolidate reset handling
  drm/panfrost: Add a no execute flag for BO allocations
  drm/panfrost: Split panfrost_mmu_map SG list mapping to its own function
  drm/panfrost: Restructure the GEM object creation
  drm/shmem: Put pages independent of a SG table being set
  drm/gem: Allow sparsely populated page arrays in drm_gem_put_pages
  tools build: Add capability-related feature detection
  drm: gm12u320: Add -ENODEV to list of errors to ignore
  drm: gm12u320: Do not take a mutex from a wait_event condition
  drm: gm12u320: Use DRM_DEV_ERROR everywhere
  drm: gm12u320: Some minor cleanups
  perf top: Collapse and resort all evsels in a group
  perf hist: Remove dummy entries when finding real ones.
  perf trace: Fix segmentation fault when access syscall info on arm64
  perf hists: Do not link a pair if already linked
  perf top: Set display thread COMM to help with debugging
  perf vendor events intel: Add Icelake V1.00 event file
  perf tools: Fix paths in include statements
  perf test vfs_getname: Disable ~/.perfconfig to get default output
  perf config: Document the PERF_CONFIG environment variable
  perf config: Honour $PERF_CONFIG env var to specify alternate .perfconfig
  perf session: Avoid infinite loop when seeing invalid header.size
  ext4: set error return correctly when ext4_htree_store_dirent fails
  drm/i915/overlay: Switch to using i915_active tracking
  drm/i915: Forgo last_fence active request tracking
  MAINTAINERS: Update e-mail address for Andrea Parri
  rcu: Fix spelling mistake "greate"->"great"
  arm: Use common outgoing-CPU-notification code
  rcu: Remove redundant "if" condition from rcu_gp_is_expedited()
  idle: Prevent late-arriving interrupts from disrupting offline
  clk: ingenic: Use CLK_OF_DECLARE_DRIVER macro
  drm/amdgpu: flag renoir as experimental for now
  drm/amdgpu: skip mec2 jump table loading for renoir
  drm/amdgpu: use direct loading on renoir vcn for the moment
  drm/amdgpu: set fw default loading by psp for renoir
  drm/amdgpu: update lbpw for renoir
  drm/amdgpu: enable power gating for renoir
  drm/amdgpu: enable clock gating for renoir
  drm/amdgpu: add VCN2.0 to Renoir IP blocks
  drm/amdgpu: enable Doorbell support for Renoir (v2)
  drm/amdgpu: enable Renoir VCN firmware loading
  drm/amdgpu: add sdma golden settings for renoir
  drm/amdgpu: add gfx golden settings for renoir (v2)
  drm/amdgpu: add psp_v12_0 for renoir (v2)
  drm/amdgpu: set rlc funcs for renoir
  drm/amdgpu: add asic funcs for renoir
  drm/amdgpu: enable dce virtual ip module for Renoir
  drm/amdgpu: fix no interrupt issue for renoir emu
  drm/amdgpu: add renoir pci id
  drm/amdgpu: set ip blocks for renoir
  drm/amdgpu: add sdma support for renoir
  drm/amdgpu: add gfx support for renoir
  drm/amdgpu: set fw load type for renoir
  drm/amdgpu: add gmc v9 supports for renoir
  drm/amdgpu: add soc15 common ip block support for renoir
  drm/amdgpu: add renoir support for gpu_info and ip block setting
  drm/amdgpu: add renoir asic_type enum
  drm/amdgpu: add renoir header files (v2)
  drm/amd/powerplay: remove redundant duplicated return check
  drm/amd/display: Fix a typo - dce_aduio_mask --> dce_audio_mask
  drm/amd/display: use kvmalloc for dc_state (v2)
  drm/amdgpu: fix gfx9 soft recovery
  drm/amdgpu/powerplay: update Arcturus smu version in new place
  drm/amdgpu: enable mmhub clock gating for Arcturus
  drm/amdgpu: add mmhub clock gating for Arcturus
  drm/amdgpu: increase CGCG gfx idle threshold for Arcturus
  drm/amdgpu: add GFX_CP_LS flag to Arcturus
  drm/amdgpu: remove ras block's feature status info in sysfs
  drm/amd/powerplay: change smu_read_sensor sequence in smu
  drm/amdgpu: split athub clock gating from mmhub
  drm/amdgpu: enable sdma clock gating for Arcturus
  drm/amdgpu: add sdma clock gating for Arcturus
  drm/amdgpu: support sdma clock gating for more instances
  drm/amdgpu: enable hdp clock gating for Arcturus
  drm/amdgpu: add hdp clock gating for Arcturus
  drm/amdgpu: enable gfx clock gating for Arcturus
  drm/amdgpu: add gfx clock gating for Arcturus
  drm/amdgpu: create mmhub ras framework
  drm/amdgpu: support mmhub ras in amdgpu ras
  drm/amdgpu: add amdgpu_mmhub_funcs definition
  drm/amdgpu: add sub block parameter in ras inject command
  drm/amdgpu: add check to avoid array bound issue
  drm/amd/powerplay: update smu11_driver_if_navi10.h
  drm/amd/powerplay: re-define smu interface version for smu v11
  drm/amdgpu: add navi14 PCI ID
  drm/amdgpu: Update pitch on page flips without DC as well
  drm/amd/display: Remove drm_dsc_dc.c
  drm/amdgpu: enable vcn clock gating for navi12
  drm/amdgpu: enable athub clock gating for navi12
  drm/amdgpu/athub2: set clock gating for navi12
  drm/amdgpu: enable ih clock gating for navi12
  drm/amdgpu: enable mmhub clock gating for navi12
  drm/amdgpu/mmhub2: set clock gating for navi12
  drm/amdgpu: enable sdma clock gating for navi12
  drm/amdgpu/sdma5: set sdma clock gating for navi12
  drm/amdgpu: enable hdp clock gating for navi12
  drm/amdgpu: enable gfx clock gatings for navi12
  Revert "drm/amdgpu: fix transform feedback GDS hang on gfx10 (v2)"
  ext4: drop legacy pre-1970 encoding workaround
  ASoC: SOF: Intel: hda: fixup HDaudio topology name with DMIC number
  gpio: merrifield: Pass irqchip when adding gpiochip
  gpio: lynxpoint: Pass irqchip when adding gpiochip
  gpio: intel-mid: Pass irqchip when adding gpiochip
  parisc: speed up flush_tlb_all_local with qemu
  parisc: Add ALTERNATIVE_CODE() and ALT_COND_RUN_ON_QEMU
  ARM: dts: exynos: Add CAM power domain to Exynos5422/5800
  ARM: dts: exynos: Add G3D power domain to Exynos542x
  ARM: dts: exynos: Move MSC power domain to the right (sorted) place
  arm64: topology: Use PPTT to determine if PE is a thread
  kernel: only define task_struct_whitelist conditionally
  ia64/kprobes: remove the unused ia64_get_bsp_cfm function
  ia64: annotate switch fallthroughs in ia64_handle_unaligned
  ia64: annotate a switch fallthrough in ia64_do_signal
  media: mach-omap2/devices.c: set dma mask
  ALSA: hda: Set fifo_size for both playback and capture streams
  drm/syncobj: Add better overview documentation for syncobj (v2)
  RDMA/hns: Use the new APIs for printing log
  RDMA/hns: Disable alw_lcl_lpbk of SSU
  RDMA/hns: Remove redundant print in hns_roce_v2_ceq_int()
  RDMA/hns: Refactor hns_roce_v2_set_hem for hip08
  RDMA/hns: Remove unnecessary kzalloc
  RDMA/hns: Refactor irq request code
  RDMA/hns: Split bool statement and assign statement
  RDMA/hns: Handling the error return value of hem function
  RDMA/hns: Update some comments style
  RDMA/hns: Clean up unnecessary initial assignment
  RDMA/hns: Remove unnessary init for cmq reg
  RDMA/hns: Update the prompt message for creating and destroy qp
  RDMA/hns: Optimize hns_roce_modify_qp function
  RDMA/hns: Encapsulate some lines for setting sq size in user mode
  staging: rtl8192u: fix spacing errors
  staging: rtl8712: r8712_construct_txaggr_cmd_hdr(): Change return type
  staging: rtl8712: r8712_construct_txaggr_cmd_desc(): Change return type
  staging: rtl8712: r8712_xmit_direct(): Change return type
  staging: rtl8712: r8712_free_xmitbuf(): Change return type
  staging: rtl8712: make_wlanhdr(): Change return values and type
  staging: rtl8712: r8712_update_attrib(): Change return values and type
  staging: rtl8712: _r8712_init_xmit_priv(): Change return values and type
  drm/i915: Extract general GT interrupt handlers
  drm/i915: Extract GT powermanagement interrupt handling
  staging: wilc1000: return kernel error codes from wilc_wlan_stop
  staging: wilc1000: Don't reset WILC CPU disgracefully
  RDMA/hns: remove obsolete Kconfig comment
  RDMA/{cxgb3, cxgb4, i40iw}: Remove common code
  RDMA/core: Add common iWARP query port
  RDMA/cxgb3: Use ib_device_set_netdev()
  RDMA: Introduce ib_port_phys_state enum
  drm: Fix kerneldoc warns in connector-related docs
  clk: imx8mq: Unregister clks when of_clk_add_provider failed
  blk-mq: Fix memory leak in blk_mq_init_allocated_queue error handling
  clk: imx8mm: Unregister clks when of_clk_add_provider failed
  pinctrl: sh-pfc: Remove incomplete flag "cfg->type"
  pinctrl: sh-pfc: Add new flags into struct sh_pfc_pin_config
  ARM: dts: imx25: mbimxsd25: native-mode is part of display-timings
  ARM: dts: apf27dev: native-mode is part of display-timings
  ARM: dts: edb7211: native-mode is part of display-timings
  ARM: dts: imx27-phytec-phycore-rdk: native-mode is part of display-timings
  ARM: dts: mbimxsd25: native-mode is part of display-timings
  ARM: dts: eukrea-mbimxsd27: native-mode is part of display-timings
  ARM: dts: imx25: mbimxsd25: native-mode is part of display-timings
  ARM: dts: imx27 phyCARD-S: native-mode is part of display-timings
  firmware: imx: Add DSP IPC protocol interface
  PCI: hv: Avoid use of hv_pci_dev->pci_slot after freeing it
  ASoC: pcm3168a: Allow reconfiguration of tdm_slots and slot_width
  ASoC: pcm3168a: Retain the independence of DAC and ADC side of the codec
  spi: dw-pci: Add support for Intel Elkhart Lake PSE SPI
  regmap-irq: Correct error paths in regmap_irq_thread for pm_runtime
  ASoC: Intel: skl-hda-dsp-generic: add dmic dapm widget and route
  ASoC: Intel: skl-hda-dsp-generic: add dependency to dmic driver
  ASoC: Intel: boards: Match Product Family instead of product
  ASoC: dapm: Invalidate only paths reachable for a given stream
  ASoC: SOF: topology: use set_get_data in process load
  ASoC: fsl_esai: Add new compatible string for imx6ull
  ASoC: fsl_esai: Add compatible string for imx6ull
  ASoC: rt5677: Revert remove superfluous set
  ASoC: remove w90x900/nuc900 platform drivers
  ASoC: Intel: sof-rt5682: add dmic dapm widget to support dmic PCM
  x86/kconfig: Remove X86_DIRECT_GBPAGES dependency on !DEBUG_PAGEALLOC
  sched/fair: Use rq_lock/unlock in online_fair_sched_group
  soc: imx-scu: Add SoC UID(unique identifier) support
  dt-bindings: arm: imx: Add the soc binding for i.MX8MN
  drm/i915/gt: Use the local engine wakeref when checking RING registers
  drm/i915/selftests: Prevent the timeslice expiring during suppression tests
  drm/i915/execlists: Avoid sync calls during park
  drm/i915/uc: Update copyright and license
  ACPI/PPTT: Add support for ACPI 6.3 thread flag
  mfd: mt6397: Extract IRQ related code from core driver
  drm/komeda: Fix potential integer overflow in komeda_crtc_update_clock_ratio
  mfd: mt6397: Rename macros to something more readable
  reset: Add support for resets provided by SCMI
  firmware: arm_scmi: Add RESET protocol in SCMI v2.0
  dt-bindings: arm: Extend SCMI to support new reset protocol
  firmware: arm_scmi: Make use SCMI v2.0 fastchannel for performance protocol
  firmware: arm_scmi: Add discovery of SCMI v2.0 performance fastchannels
  firmware: arm_scmi: Use {get,put}_unaligned_le{32,64} accessors
  firmware: arm_scmi: Use asynchronous CLOCK_RATE_SET when possible
  firmware: arm_scmi: Drop config flag in clk_ops->rate_set
  firmware: arm_scmi: Add asynchronous sensor read if it supports
  firmware: arm_scmi: Drop async flag in sensor_ops->reading_get
  firmware: arm_scmi: Add support for asynchronous commands and delayed response
  firmware: arm_scmi: Add mechanism to unpack message headers
  firmware: arm_scmi: Separate out tx buffer handling and prepare to add rx
  firmware: arm_scmi: Add receive channel support for notifications
  firmware: arm_scmi: Segregate tx channel handling and prepare to add rx
  firmware: arm_scmi: Reorder some functions to avoid forward declarations
  firmware: arm_scmi: Check if platform has released shmem before using
  firmware: arm_scmi: Use the term 'message' instead of 'command'
  firmware: arm_scmi: Fix few trivial typos in comments
  firmware: arm_scmi: Remove extra check for invalid length message responses
  firmware: arm_scmi: Align few names in sensors protocol with SCMI specification
  firmware: arm_scmi: Use the correct style for SPDX License Identifier
  watchdog: jz4740: Fix unused variable warning in jz4740_wdt_probe
  watchdog: Remove dev_err() usage after platform_get_irq()
  watchdog: riowd: Mark expected switch fall-through
  watchdog: wdt977: Mark expected switch fall-through
  watchdog: scx200_wdt: Mark expected switch fall-through
  watchdog: Mark expected switch fall-throughs
  mtd: spi-nor: fix description for int (*flash_is_locked)()
  PCI: tegra: Fix OF node reference leak
  mfd: Remove dev_err() usage after platform_get_irq()
  mfd: db8500-prcmu: Mark expected switch fall-throughs
  mfd: intel-lpss: Add Intel Tiger Lake PCI IDs
  mfd: Drop obsolete JZ4740 driver
  mfd: omap-usb-host: Mark expected switch fall-throughs
  mfd: intel-lpss: Remove D3cold delay
  dma-fence: Report the composite sync_file status
  tools: bpftool: fix reading from /proc/config.gz
  efi: cper: print AER info of PCIe fatal error
  drm/i915/tgl: Fixing up list of PG3 power domains.
  drm/i915/icl: Remove DDI IO power domain from PG3 power domains
  HMAT: Skip publishing target info for nodes with no online memory
  HMAT: Register attributes for memory hot add
  HMAT: Register memory-side cache after parsing
  drm/i915/uc: Use -EIO code for GuC initialization failures
  drm/i915/uc: Update messages from fw upload step
  drm/i915/uc: Include HuC firmware version in summary
  drm/i915/uc: Fail early if there is no GuC fw available
  i3c: master: fix a memory leak bug
  backlight: lms283gf05: Fix a typo in the description passed to 'devm_gpio_request_one()'
  backlight: lm3630a: Switch to use fwnode_property_count_uXX()
  backlight: rave-sp: Leave initial state and register with correct device
  drm: sun4i: Add support for enabling DDC I2C bus to sun8i_dw_hdmi glue
  dt-bindings: display: hdmi-connector: Support DDC bus enable
  clk: sunxi-ng: v3s: add Allwinner V3 support
  clk: sunxi-ng: v3s: add missing clock slices for MMC2 module clocks
  mtd: spi-nor: Rework hwcaps selection for the spi-mem case
  mtd: spi-nor: Move m25p80 code in spi-nor.c
  mfd: twl-core: Convert to i2c_new_dummy_device
  mfd: palmas: Convert to i2c_new_dummy_device
  mfd: max8998: Convert to i2c_new_dummy_device
  mfd: max8997: Convert to i2c_new_dummy_device
  mfd: max8925-i2c: Convert to i2c_new_dummy_device
  mfd: max8907: Convert to i2c_new_dummy_device
  mfd: max77843: Convert to i2c_new_dummy_device
  mfd: max77693: Convert to i2c_new_dummy_device
  mfd: max14577: Convert to i2c_new_dummy_device
  mtd: spi-nor: always use bounce buffer for register read/writes
  mfd: da9150-core: Convert to i2c_new_dummy_device
  mfd: bcm590xx: Convert to i2c_new_dummy_device
  mfd: ab3100-core: Convert to i2c_new_dummy_device
  mfd: 88pm860x-core: Convert to i2c_new_dummy_device
  mfd: 88pm800: Convert to i2c_new_dummy_device
  mfd: timberdale: Use dev_get_drvdata
  mfd: da9063: Remove now unused platform_data
  mfd: tps80031: Convert to devm_i2c_new_dummy_device
  mfd: cros_ec: Update cros_ec_commands.h
  dma-fence: Propagate errors to dma-fence-array container
  Input: applespi - no need to check return value of debugfs_create functions
  Input: edt-ft5x06 - no need to check return value of debugfs_create functions
  gpio: lpc32xx: allow building on non-lpc32xx targets
  Input: matrix-keymap - switch to use device_property_count_u32()
  Input: atmel_mxt_ts - switch to use device_property_count_u32()
  Input: hideep - switch to use device_property_count_u32()
  Input: mpr121 - switch to use device_property_count_u32()
  Input: axp20x-pek - convert driver to use dev_groups
  Input: gpio_keys - convert driver to use dev_groups
  arm64: defconfig: Enable Sun4i SPDIF module
  dt-bindings: mfd: rn5t618: Document optional property system-power-controller
  mfd: aat2870: No need to check return value of debugfs_create functions
  mfd: ab8500: No need to check return value of debugfs_create functions
  mfd: ab3100: No need to check return value of debugfs_create functions
  usb: gadget: aspeed: Implement dummy hub TT requests
  usb: Add definitions for the USB2.0 hub TT requests
  usb: gadget: aspeed: Improve debugging when nuking
  usb: gadget: aspeed: Remove unused "suspended" flag
  usb: gadget: aspeed: Rework the reset logic
  usb: gadget: aspeed: Check suspend/resume callback existence
  usb: gadget: aspeed: Don't reject requests on suspended devices
  usb: gadget: aspeed: Fix EP0 stall handling
  usb: gadget: aspeed: Cleanup EP0 state on port reset
  usb: gadget: aspeed: Don't set port enable change bit on reset
  MIPS: tlbex: Explicitly cast _PAGE_NO_EXEC to a boolean
  MIPS/ptrace: Update mips_get_syscall_arg's return type
  MIPS: Don't use bc_false uninitialized in __mm_isBranchInstr
  caif: no need to check return value of debugfs_create functions
  xen-netback: no need to check return value of debugfs_create functions
  net: dsa: mv88e6xxx: add delay in direct SMI wait
  net: dsa: mv88e6xxx: fix SMI bit checking
  net: dsa: mv88e6xxx: remove wait and update routines
  net: dsa: mv88e6xxx: wait for AVB Busy bit
  net: dsa: mv88e6xxx: introduce wait bit routine
  net: dsa: mv88e6xxx: introduce wait mask routine
  net: dsa: mv88e6xxx: wait for 88E6185 PPU disabled
  r8169: inline rtl8169_free_rx_databuff
  net: phy: realtek: add support for the 2.5Gbps PHY in RTL8125
  net: phy: add phy_modify_paged_changed
  net: phy: prepare phylib to deal with PHY's extending Clause 22
  net: phy: simplify genphy_config_advert by using the linkmode_adv_to_xxx_t functions
  netdevsim: register couple of devlink params
  ext4: add new ioctl EXT4_IOC_GET_ES_CACHE
  ext4: add a new ioctl EXT4_IOC_GETSTATE
  ext4: add a new ioctl EXT4_IOC_CLEAR_ES_CACHE
  jbd2: flush_descriptor(): Do not decrease buffer head's ref count
  ext4: remove unnecessary error check
  ext4: fix warning when turn on dioread_nolock and inline_data
  drop_monitor: Expose tail drop counter
  drop_monitor: Make drop queue length configurable
  drop_monitor: Add a command to query current configuration
  drop_monitor: Allow truncation of dropped packets
  drop_monitor: Add packet alert mode
  drop_monitor: Add alert mode operations
  drop_monitor: Require CAP_NET_ADMIN for drop monitor configuration
  drop_monitor: Reset per-CPU data before starting to trace
  drop_monitor: Initialize timer and work item upon tracing enable
  drop_monitor: Split tracing enable / disable to different functions
  drm/i915: Remove unused debugfs/i915_emon_status
  iio: hi8435: Drop hi8435_remove() by using devres for remaining elements
  i3c: add addr and lvr to i2c_dev_desc structure
  iio: hi8435: Use gpiod_set_value_cansleep()
  i3c: master: cdns: Use for_each_set_bit()
  i3c: master: Add of_node_put() before return
  iio:st_sensors: remove buffer allocation at each buffer enable
  ieee802154: no need to check return value of debugfs_create functions
  ixgbe: no need to check return value of debugfs_create functions
  i40e: no need to check return value of debugfs_create functions
  fm10k: no need to check return value of debugfs_create functions
  mvpp2: no need to check return value of debugfs_create functions
  skge: no need to check return value of debugfs_create functions
  qca: no need to check return value of debugfs_create functions
  dpaa2: no need to check return value of debugfs_create functions
  stmmac: no need to check return value of debugfs_create functions
  nfp: no need to check return value of debugfs_create functions
  hns3: no need to check return value of debugfs_create functions
  cxgb4: no need to check return value of debugfs_create functions
  bnxt: no need to check return value of debugfs_create functions
  xgbe: no need to check return value of debugfs_create functions
  mlx5: no need to check return value of debugfs_create functions
  bonding: no need to print a message if debugfs_create_dir() fails
  wimax: no need to check return value of debugfs_create functions
  drm/i915: buddy allocator
  drm/i915/blt: support copying objects
  drm/panel: drop return code from drm_panel_detach()
  drm/panel: use inline comments in drm_panel.h
  drm/panel: move drm_panel functions to .c file
  drm/panel: ili9322: move bus_flags to get_modes()
  drm/mxsfb: fix opencoded use of drm_panel_*
  drm/fsl-dcu: fix opencoded use of drm_panel_*
  drm/imx: fix opencoded use of drm_panel_*
  drm/bridge: tc358767: fix opencoded use of drm_panel_*
  cpuidle: teo: Get rid of redundant check in teo_update()
  drm/i915/gtt: disable 2M pages for pre-gen11
  drm/i915/gtt: enable GTT cache by default
  drm/i915/selftests: move gpu-write-dw into utils
  thermal: cpu_cooling: Switch to QoS requests for freq limits
  cpufreq: Add policy create/remove notifiers back
  PM: suspend: Fix platform_suspend_prepare_noirq()
  dt-bindings: usb: renesas_gen3: Rename bindings documentation file to reflect IP block
  dma-buf: further relax reservation_object_add_shared_fence
  drm/i915: use new reservation_object_fences helper
  dma-buf: add reservation_object_fences helper
  dma-buf: make dma_fence structure a bit smaller v2
  drm/i915/blt: bump the size restriction
  drm/i915/blt: don't assume pinned intel_context
  gpio: remove ks8695 driver
  pinctrl: freescale: imx: Add of_node_put() before return
  pinctrl: sprd: Add of_node_put() before return to prevent memory leak
  pinctrl: stm32: stm32: Add of_node_put() before return
  pinctrl: aspeed: g6: Remove const specifier from aspeed_g6_sig_expr_set's ctx parameter
  usb: remove ehci-w90x900 driver
  tc-testing: added tdc tests for matchall filter
  selftests: Fix detection of nettest command in fcnal-test
  Input: remove w90x900 touchscreen driver
  Input: remove w90x900 keyboard driver
  net/mlx5e: Use refcount_t for refcount
  net/mlx5e: Use vhca_id in generating representor port_index
  net/mlx5e: Simplify querying port representor parent id
  net/mlx5: E-switch, Removed unused hwid
  net/mlx5e: Allow concurrent creation of encap entries
  net/mlx5e: Protect encap hash table with mutex
  net/mlx5e: Extend encap entry with reference counter
  net/mlx5e: Allow concurrent creation of mod_hdr entries
  net/mlx5e: Protect mod_hdr hash table with mutex
  net/mlx5e: Protect mod header entry flows list with spinlock
  net/mlx5e: Extend mod header entry with reference counter
  net/mlx5e: Allow concurrent creation of hairpin entries
  net/mlx5e: Protect hairpin hash table with mutex
  net/mlx5e: Protect hairpin entry flows list with spinlock
  net/mlx5e: Extend hairpin entry with reference counter
  dt-bindings: arm: amlogic: fix x96-max/sei510 section in amlogic.yaml
  net: hns3: refine some macro definitions
  net: hns3: add handshake with VF for PF reset
  net: hns3: refine MAC pause statistics querying function
  net: hns3: add function display NCL_CONFIG info
  net: hns3: add check for max TX BD num for tso and non-tso case
  net: hns3: add some statitics info to tx process
  net: hns3: add DFX registers information for ethtool -d
  net: hns3: modify how pause options is displayed
  net: hns3: add input length check for debugfs write function
  net: hns3: clean up for vlan handling in hns3_fill_desc_vtags
  net: hns3: fix interrupt clearing error for VF
  net: hns3: fix GFP flag error in hclge_mac_update_stats()
  taprio: remove unused variable 'entry_list_policy'
  r8169: fix performance issue on RTL8168evl
  tcp: Update TCP_BASE_MSS comment
  tcp: add new tcp_mtu_probe_floor sysctl
  drm/i915: split out uncore_mmio_debug
  drm/i915: Stop reconfiguring our shmemfs mountpoint
  drm/i915: Lift timeline into intel_context
  drm/i915: Push the ring creation flags to the backend
  drm/i915/gt: Make deferred context allocation explicit
  drm/i915: Remove i915_gem_context_create_gvt()
  devlink: remove pointless data_len arg from region snapshot create
  arm64: dts: amlogic: g12 CPU timers stop in suspend
  arm64: dts: meson-g12b: support a311d and s922x cpu operating points
  dt-bindings: arm: amlogic: add support for the Khadas VIM3
  dt-bindings: arm: amlogic: add bindings for the Amlogic G12B based A311D SoC
  dt-bindings: arm: amlogic: add bindings for G12B based S922X SoC
  arm64: dts: meson: add video decoder entries
  arm64: dts: meson-gx: add video decoder entry
  dt-bindings: media: amlogic,vdec: add default compatible
  arm64: dts: meson: add ethernet fifo sizes
  arm64: dts: meson-g12b: add cpus OPP tables
  arm64: dts: meson-g12a: enable DVFS on G12A boards
  arm64: dts: meson-g12a: add cpus OPP table
  arm64: dts: meson-g12-common: add pwm_a on GPIOE_2 pinmux
  arm64: dts: move common G12A & G12B modes to meson-g12-common.dtsi
  tcp: batch calls to sk_flush_backlog()
  ipv4: Add lockdep condition to fix for_each_entry()
  rcu/sync: Remove custom check for RCU readers
  rcu: Add support for consolidated-RCU reader checking
  iommu/omap: Fix compilation warnings
  tools/memory-model: Update the informal documentation
  tools/memory-model: Use cumul-fence instead of fence in ->prop example
  EDAC, pnd2: Fix ioremap() size in dnv_rd_reg()
  ASoC: soc-core: add for_each_xxx macro for aux_dev
  ASoC: mediatek: mt8183-mt6358-ts3a227-max98357: use snd_soc_dai_link_component for aux_dev
  ASoC: max9850: remove unused variable 'max9850_reg'
  ASoC: max98926: remove two unused variables
  ASoC: soc-core: remove legacy style of aux_dev
  ASoC: ti: rx51: use snd_soc_dai_link_component for aux_dev
  ASoC: sunxi: sun4i-codec: use snd_soc_dai_link_component for aux_dev
  ASoC: samsung: tm2_wm5110: use snd_soc_dai_link_component for aux_dev
  ASoC: samsung: speyside: use snd_soc_dai_link_component for aux_dev
  ASoC: samsung: neo1973_wm8753: use snd_soc_dai_link_component for aux_dev
  ASoC: rockchip: rockchip_max98090: use snd_soc_dai_link_component for aux_dev
  ASoC: meson: axg-card: use snd_soc_dai_link_component for aux_dev
  ASoC: mediatek: mt8183-da7219-max98357: use snd_soc_dai_link_component for aux_dev
  ASoC: intel: cht_bsw_max98090_ti: use snd_soc_dai_link_component for aux_dev
  ASoC: simple-card: use snd_soc_dai_link_component for aux_dev
  ASoC: soc-core: support snd_soc_dai_link_component for aux_dev
  regulator: twl6030: workaround the VMMC reset behavior
  regulator: twl6030: use variable for device node
  dt-bindings: regulator: twl6030: Add retain-on-reset property
  ASoC: hdac_hdmi: Offload dapm update at jack detection
  PSCI: cpuidle: Refactor CPU suspend power_state parameter handling
  ARM: psci: cpuidle: Enable PSCI CPUidle driver
  ARM: psci: cpuidle: Introduce PSCI CPUidle driver
  drivers: firmware: psci: Decouple checker from generic ARM CPUidle
  ARM: cpuidle: Remove overzealous error logging
  ARM: cpuidle: Remove useless header include
  Input: synaptics - fix a typo
  drm/amdgpu: remove RREG64/WREG64
  drm/amdgpu: implement UMC 64 bits REG operations
  drm/amdgpu: replace readq/writeq with atomic64 operations
  samples/bpf: xdp_fwd explain bpf_fib_lookup return codes
  samples/bpf: make xdp_fwd more practically usable via devmap lookup
  samples/bpf: xdp_fwd rename devmap name to be xdp_tx_ports
  xdp: xdp_umem: fix umem pages mapping for 32bits systems
  gfs2: Minor gfs2_alloc_inode cleanup
  gfs2: implement gfs2_block_zero_range using iomap_zero_range
  gfs2: Add support for IOMAP_ZERO
  gfs2: gfs2_iomap_begin cleanup
  iommu/omap: remove pm_runtime_irq_safe flag for OMAP IOMMUs
  iommu/omap: add support for late attachment of iommu devices
  iommu/omap: introduce new API for runtime suspend/resume control
  iommu/omap: Add system suspend/resume support
  iommu/omap: add logic to save/restore locked TLBs
  iommu/omap: streamline enable/disable through runtime pm callbacks
  iommu/omap: add pdata ops for omap_device_enable/idle
  iommu/omap: fix boot issue on remoteprocs with AMMU/Unicache
  iommu: Remove dev_err() usage after platform_get_irq()
  iommu/amd: Re-factor guest virtual APIC (de-)activation code
  ALSA: hda - Add a quirk model for fixing Huawei Matebook X right speaker
  ALSA: hda - Inform too slow responses
  Input: ads7846 - add support for general touchscreen bindings
  dt-bindings: input: ads7846: fix property description
  arm64: mm: Really fix sparse warning in untagged_addr()
  arm64: mm: Simplify definition of virt_addr_valid()
  drm/i915: Drop the fudge warning on ring restart for ctg/elk
  floppy: fix usercopy direction
  drm/i915: Generalise BSD default selection
  drm/i915: Replace global bsd_dispatch_index with random seed
  drm/i915: Check for a second VCS engine more carefully
  device.h: Fix warnings for mismatched parameter names in comments
  staging: wusbcore: Fix build error without CONFIG_USB
  ASoC: SOF: Intel: Add missing include file hdac_hda.h
  s390/mm: Remove sev_active() function
  fs/core/vmcore: Move sev_active() reference to x86 arch code
  x86, s390/mm: Move sme_active() and sme_me_mask to x86-specific header
  dma-mapping: Remove dma_check_mask()
  swiotlb: Remove call to sme_active()
  x86, s390: Move ARCH_HAS_MEM_ENCRYPT definition to arch/Kconfig
  drm/i915/execlists: Backtrack along timeline
  drm/i915: Free the imported shmemfs file for phys objects
  regulator: qcom-rpmh: Update PMIC modes for PMIC5
  regulator: qcom-rpmh: Fix pmic5_bob voltage count
  regulator: qcom-rpmh: Sort the compatibles
  regulator: dt-bindings: Sort the compatibles and nodes
  ASoC: SOF: Intel: byt: Refactor fw ready / mem windows creation
  ASoC: SOF: Introduce snd_sof_dsp_get_window_offset
  ASoC: SOF: Introduce snd_sof_dsp_get_mailbox_offset
  ASoC: SOF: Intel: hda: Use generic function for fw ready / mem windows creation
  ASoC: SOF: Intel: bdw: Use generic function for fw ready / mem windows creation
  ASoC: SOF: Remove call to snd_sof_dsp_mailbox_init
  ASoC: ml26124: remove unused variable 'ngth'
  ASoC: mt6351: remove unused variable 'mt_lineout_control'
  ASoC: SOF: Intel: Add missing include file hdac_hda.h
  etnaviv: perfmon: fix total and idle HI cyleces readout
  etnaviv: fix whitespace errors
  usb: dwc3: Use clk_bulk_prepare_enable()
  usb: dwc3: Use devres to get clocks
  usb: dwc3: remove generic PHYs forwarding for XHCI device
  docs: arm64: Add layout and 52-bit info to memory document
  arm64: mm: Remove vabits_user
  arm64: mm: Introduce 52-bit Kernel VAs
  arm64: mm: Modify calculation of VMEMMAP_SIZE
  arm64: mm: Separate out vmemmap
  arm64: mm: Logic to make offset_ttbr1 conditional
  arm64: mm: Introduce vabits_actual
  arm64: mm: Introduce VA_BITS_MIN
  arm64: dump: De-constify VA_START and KASAN_SHADOW_START
  arm64: kasan: Switch to using KASAN_SHADOW_OFFSET
  arm64: mm: Flip kernel VA space
  arm64: mm: Remove bit-masking optimisations for PAGE_OFFSET and VMEMMAP_START
  clk: meson: g12a: expose CPUB clock ID for G12B
  clk: meson: g12a: add notifiers to handle cpu clock change
  clk: meson: add g12a cpu dynamic divider driver
  clk: core: introduce clk_hw_set_parent()
  drm: meson: venc: set the correct macrovision max amplitude value
  drm: meson: add macro used to enable HDMI PLL
  drm: meson: global clean-up
  drm: meson: venc: use proper macros instead of magic constants
  drm: meson: viu: use proper macros instead of magic constants
  drm: meson: vpp: use proper macros instead of magic constants
  drm: meson: drv: use macro when initializing vpu
  drm: meson: crtc: use proper macros instead of magic constants
  drm: meson: mask value when writing bits relaxed
  ALSA: ac97: remove unused variable 'snd_ac97_controls_master_mono'
  drm/etnaviv: remove unused function etnaviv_gem_mapping_reference
  drm/etnaviv: fix etnaviv_cmdbuf_suballoc_new return value
  drm/i915: extract i915_gem_shrinker.h from i915_drv.h
  drm/i915: extract gem/i915_gem_stolen.h from i915_drv.h
  drm/i915: extract i915_memcpy.h from i915_drv.h
  drm/i915: extract i915_suspend.h from i915_drv.h
  drm/i915: extract i915_sysfs.h from i915_drv.h
  drm/i915: extract i915_perf.h from i915_drv.h
  drm/i915: move printing and load error inject to i915_utils.[ch]
  ACPI / processor: don't print errors for processorIDs == 0xff
  drm/i915: move I915_STATE_WARN() and _ON() to intel_display.h
  drm/i915: move add_taint_for_CI() to i915_utils.h
  drm/i915: remove unused dev_priv->no_aux_handshake
  intel-hid: Disable button array during suspend-to-idle
  drm/i915/kvmgt: Use struct_size() helper
  intel-hid: intel-vbtn: Avoid leaking wakeup_mode set
  pinctrl: rza1: Use devm_platform_ioremap_resource() helper
  drm/panel: simple: Support TI nspire panels
  drm/panel: simple: Add TI nspire panel bindings
  drm/pl111: Support grayscale
  usbfs: Add ioctls for runtime power management
  USB: usbsevseg: convert to use dev_groups
  USB: trancevibrator: convert to use dev_groups
  USB: usbip: convert to use dev_groups
  USB: atm: cxacru: convert to use dev_groups
  USB: ueagle-atm: convert to use dev_groups
  USB: usblp: convert to use dev_groups
  USB: usbtmc: convert to use dev_groups
  USB: cytherm: convert to use dev_groups
  USB: cypress_cy7c63: convert to use dev_groups
  USB: lvstest: convert to use dev_groups
  USB: chipidea: convert platform driver to use dev_groups
  USB: phy: mv-usb: convert platform driver to use dev_groups
  USB: phy: tahvo: convert platform driver to use dev_groups
  USB: phy: twl6030: convert platform driver to use dev_groups
  USB: gadget: udc: s3c2410_udc: Mark expected switch fall-throughs
  usb: gadget: atmel_usba_udc: Mark expected switch fall-through
  ALSA: hda: readl/writel need linux/io.h
  liquidio: Use pcie_flr() instead of reimplementing it
  r8169: allocate rx buffers using alloc_pages_node
  fq_codel: remove set but not used variables 'prev_ecn_mark' and 'prev_drop_count'
  usb: dwc3: Update soft-reset wait polling rate
  usb: dwc3: omap: squash include/linux/platform_data/dwc3-omap.h
  usb: dwc3: Switch to use device_property_count_u32()
  usb: gadget: pch_udc: Use dev_get_drvdata
  usb: dwc2: Switch to use device_property_count_u32()
  usb: dwc3: keystone: use devm_platform_ioremap_resource() to simplify code
  usb: dwc3: omap: use devm_platform_ioremap_resource() to simplify code
  usb: dwc3: meson-g12a: use devm_platform_ioremap_resource() to simplify code
  usb: dwc2: gadget: Fix kill_all_requests race
  usb: gadget: atmel_usba_udc: Mark expected switch fall-through
  USB: gadget: udc: s3c2410_udc: Mark expected switch fall-throughs
  mlxsw: spectrum: Extend to support Spectrum-3 ASIC
  net: stmmac: selftests: Add a selftest for Flexible RX Parser
  net: stmmac: Add Flexible RX Parser support in XGMAC
  net: stmmac: Implement Safety Features in XGMAC core
  net: stmmac: selftests: Add test for VLAN and Double VLAN Filtering
  net: stmmac: Implement VLAN Hash Filtering in XGMAC
  net: stmmac: selftests: Add RSS test
  net: stmmac: Implement RSS and enable it in XGMAC core
  net: stmmac: xgmac: Implement tx_queue_prio()
  net: stmmac: xgmac: Implement set_mtl_tx_queue_weight()
  net: stmmac: xgmac: Implement MMC counters
  padata: initialize pd->cpu with effective cpumask
  crypto: ccp - Remove unnecessary linux/pci.h include
  crypto: ccp - Include DMA declarations explicitly
  crypto: qcom-rng - use devm_platform_ioremap_resource() to simplify code
  crypto: qce - use devm_platform_ioremap_resource() to simplify code
  crypto: stm32 - use devm_platform_ioremap_resource() to simplify code
  crypto: rockchip - use devm_platform_ioremap_resource() to simplify code
  crypto: sunxi-ss - use devm_platform_ioremap_resource() to simplify code
  crypto: picoxcell - use devm_platform_ioremap_resource() to simplify code
  crypto: mediatek - use devm_platform_ioremap_resource() to simplify code
  crypto: inside-secure - use devm_platform_ioremap_resource() to simplify code
  crypto: img-hash - use devm_platform_ioremap_resource() to simplify code
  crypto: exynos - use devm_platform_ioremap_resource() to simplify code
  crypto: ccp - use devm_platform_ioremap_resource() to simplify code
  crypto: artpec6 - use devm_platform_ioremap_resource() to simplify code
  crypto: gcm - restrict assoclen for rfc4543
  MAINTAINERS: add maintainer for HiSilicon QM and ZIP controller driver
  crypto: hisilicon - add debugfs for ZIP and QM
  Documentation: Add debugfs doc for hisi_zip
  crypto: hisilicon - add SRIOV support for ZIP
  crypto: hisilicon - add HiSilicon ZIP accelerator support
  crypto: hisilicon - add hardware SGL support
  crypto: hisilicon - add queue management driver for HiSilicon QM module
  crypto: engine - Reduce default RT priority
  crypto: caam - change return value in case CAAM has no MDHA
  crypto: caam - unregister algorithm only if the registration succeeded
  crypto: caam - execute module exit point only if necessary
  crypto: caam - free resources in case caam_rng registration failed
  crypto: caam - fix MDHA key derivation for certain user key lengths
  crypto: caam - keep both virtual and dma key addresses
  crypto: caam - update rfc4106 sh desc to support zero length input
  crypto: caam - check zero-length input
  crypto: caam - check assoclen
  crypto: caam - check authsize
  crypto: caam - check key length
  crypto: caam - update IV only when crypto operation succeeds
  crypto: caam - fix return code in completion callbacks
  crypto: caam/qi - fix error handling in ERN handler
  crypto: aes - helper function to validate key length for AES algorithms
  crypto: gcm - helper functions for assoclen/authsize check
  tipc: add loopback device tracking
  crypto: inside-secure - Remove redundant DES ECB & CBC keysize check
  crypto: ccp - Clean up and exit correctly on allocation failure
  crypto: drivers - Remove dev_err() usage after platform_get_irq()
  crypto: inside-secure - Use defines instead of some constants (cosmetic)
  crypto: caam - fix concurrency issue in givencrypt descriptor
  crypto: ux500/crypt - Mark expected switch fall-throughs
  crypto: ccp - Log an error message when ccp-crypto fails to load
  crypto: ccree - use std api sg_zero_buffer
  crypto: ccree - use the full crypt length value
  lightnvm: remove unused 'geo' variable
  loop: Add LOOP_SET_DIRECT_IO to compat ioctl
  PCI/MSI: Enable PCI_MSI_IRQ_DOMAIN support for RISC-V
  netfilter: nf_tables_offload: support indr block call
  flow_offload: support get multi-subsystem block
  flow_offload: move tc indirect block to flow offload
  cls_api: add flow_indr_block_call function
  cls_api: remove the tcf_block cache
  cls_api: modify the tc_indr_block_ing_cmd parameters.
  net: use listified RX for handling GRO_NORMAL skbs
  sfc: falcon: don't score irq moderation points for GRO
  sfc: don't score irq moderation points for GRO
  qed: Add new ethtool supported port types based on media.
  cxgb4: smt: Use normal int for refcount
  cxgb4: smt: Add lock for atomic_dec_and_test
  selftests: Add l2tp tests
  net: delete "register" keyword
  mkiss: Use refcount_t for refcount
  dpaa_eth: Use refcount_t for refcount
  MIPS: jz4740: Drop obsolete code
  MIPS: GCW0: Reduce system timer and clocksource to 750 kHz
  MIPS: CI20: Reduce system timer and clocksource to 3 MHz
  MIPS: qi_lb60: Reduce system timer and clocksource to 750 kHz
  MIPS: jz4740: Add DTS nodes for the TCU drivers
  clk: jz4740: Add TCU clock
  clocksource: Add a new timer-ingenic driver
  irqchip: Add irq-ingenic-tcu driver
  clk: ingenic: Add driver for the TCU clocks
  mfd/syscon: Add device_node_to_regmap()
  dt-bindings: Add doc for the Ingenic TCU drivers
  doc: Add doc for the Ingenic TCU hardware
  dt-bindings: ingenic: Add DT bindings for TCU clocks
  ASoC: sof: Fix warning when IPC flood test is not enabled
  drm/panfrost: Add madvise and shrinker support
  drm/shmem: Add madvise state and purge helpers
  drm/panfrost: Remove completed features still in TODO
  drm/i915: Make debugfs/per_file_stats scale better
  drm/i915: Only include active engines in the capture state
  drm/i915: Defer final intel_wakeref_put to process context
  ASoC: Intel: Skylake: large_config_get overhaul
  ASoC: Intel: Skylake: Limit large_config_get to single frame
  PCI: Mark expected switch fall-through
  PCI: Correct pci=resource_alignment parameter example
  PCI: Restore Resizable BAR size bits correctly for 1MB BARs
  PCI: Use PCI_SRIOV_NUM_BARS in loops instead of PCI_IOV_RESOURCE_END
  PCI: Convert pci_resource_to_user() to a weak function
  ASoC: intel: skl_hda_dsp_common: create HDMI jack kctl
  ASoC: tscs454: remove unused variable 'PLL_48K_RATE'
  ASoC: soc-core: fix module_put() warning in soc_cleanup_component
  ASoC: soc-core: dai_link check under soc_dpcm_debugfs_add()
  ASoC: soc-core: define soc_dpcm_debugfs_add() for non CONFIG_DEBUG_FS
  ASoC: soc-core: tidyup for card->deferred_resume_work
  ASoC: soc-core: remove unneeded list_empty() check for snd_soc_try_rebind_card()
  ASoC: soc-core: call snd_soc_dapm_debugfs_init() at soc_init_card_debugfs()
  ASoC: soc-core: tidyup for snd_soc_add_card_controls()
  ASoC: soc-core: tidyup for snd_soc_dapm_add_routes()
  ASoC: soc-core: tidyup for snd_soc_add_component_controls()
  drm/i915/selftests: Fixup a missing legacy_idx
  spi: Rename of_spi_register_master() function
  regulator: act8865: Fix build error without CONFIG_POWER_SUPPLY
  regulator: qcom-rpmh: Add support for SM8150
  regulator: dt-bindings: Add PM8150x compatibles
  ASoC: hdac_hda: fix page fault issue by removing race
  drm/i915/tgl: Fix the read of the DDI that transcoder is attached to
  drm/i915: Get transcoder power domain before reading its register
  leds: pca953x: Include the right header
  staging: rtl8712: r8712_xmit_classifier(): Change return values and type
  staging: rtl8712: Remove while loop and check_cmd_fifo()
  staging: rtl8712: r8712_free_drv_sw(): Change return type
  staging: rtl8712: init_drv_sw(): Change return values
  staging: rtl8712: init_default_value(): Change return type
  staging: rtl8712: recvbuf2recvframe(): Change return type
  staging: rtl8712: r8712_recv_entry(): Change return type
  staging: rtl8712: r8712_wlanhdr_to_ethhdr(): Change return values
  staging: rtl8712: recv_indicatepkt_reorder(): Change return values
  staging: rtl8712: amsdu_to_msdu(): Change return type
  staging: rtl8723bs: fix brace position in enum declaration
  staging: isdn: hysdn_procconf_init() remove parantheses from return value
  Staging: rtl8188eu: core: rtw_security: tidy up crc32_init()
  staging: wilc1000: use helper API to pack data for firmware
  clk: mvebu: ap806: Fix clock name for the cluster
  clk: mvebu: add CPU clock driver for Armada 7K/8K
  clk: mvebu: add helper file for Armada AP and CP clocks
  dt-bindings: ap806: add the cluster clock node in the syscon file
  EDAC, mellanox: Add ECC support for BlueField DDR4
  RAS: Build debugfs.o only when enabled in Kconfig
  RAS: Fix prototype warnings
  clk: qcom: define probe by index API as common API
  clk: reset: Modify reset-controller driver
  clk: qcom: Add WCSS gcc clock control for QCS404
  clk: Use seq_puts() in possible_parent_show()
  clk: Assert prepare_lock in clk_core_get_boundaries
  clk: Add clk_min/max_rate entries in debugfs
  drm/i915: Fix up the inverse mapping for default ctx->engines[]
  drm/i915: Allocate kernel_contexts directly
  ASoC: SOF: Intel: Initialize hdaudio bus properly
  ALSA: hda: Direct MMIO accesses
  ALSA: hda: Remove page allocation redirection
  lib: scatterlist: Fix to support no mapped sg
  lightnvm: remove set but not used variables 'data_len' and 'rq_len'
  dmaengine: fsl-edma: implement .device_synchronize callback
  dmaengine: pl330: use the same attributes when freeing pl330->mcode_cpu
  drm/i915/selftests: Pass intel_context to mock_request
  drm/i915/tgl/dsi: Enable blanking packets during BLLP for video mode
  drm/i915/tgl: Add mipi dsi support for TGL
  drm/i915/tgl/dsi: Gate the ddi clocks after pll mapping
  drm/i915/tgl/dsi: Do not override TA_SURE
  drm/i915/tgl/dsi: Set latency PCS_DW1 for tgl
  drm/i915/tgl/dsi: Program TRANS_VBLANK register
  iommu/arm-smmu-v3: Defer TLB invalidation until ->iotlb_sync()
  iommu/arm-smmu-v3: Reduce contention during command-queue insertion
  dmaengine: qcom: hidma_mgmt: Add of_node_put() before goto
  dmaengine: fsl-edma: add i.mx7ulp edma2 version support
  dmaengine: qcom_hidma: Remove call to memset after dmam_alloc_coherent
  dmaengine: imx-sdma: Remove call to memset after dma_alloc_coherent
  pinctrl: denverton: Update pin names according to v1.08
  MAINTAINERS: mark wusbcore and UWB as obsolete
  ACPI: PM: Print debug messages on device power state changes
  ACPI: PM: s2idle: Execute LPS0 _DSM functions with suspended devices
  ACPI: EC: PM: Make acpi_ec_dispatch_gpe() print debug message
  ACPI: EC: PM: Consolidate some code depending on PM_SLEEP
  ACPI: PM: s2idle: Eliminate acpi_sleep_no_ec_events()
  ACPI: PM: s2idle: Switch EC over to polling during "noirq" suspend
  ACPI: PM: s2idle: Add acpi.sleep_no_lps0 module parameter
  ACPI: PM: s2idle: Rearrange lps0_device_attach()
  dt-bindings: rcar-{csi2,vin}: Rename bindings documentation files
  dt-bindings: rcar-imr: Rename bindings documentation file
  dt-bindings: Rename file of DT bindings for Renesas memory controllers
  drm/i915: split out intel_pch.[ch] from i915_drv.[ch]
  clk: renesas: rcar-usb2-clock-sel: Use devm_platform_ioremap_resource() helper
  pinctrl: sh-pfc: Use dev_notice_once() instead of open-coding
  efi: Export Runtime Configuration Interface table to sysfs
  efi: ia64: move SAL systab handling out of generic EFI code
  efi/x86: move UV_SYSTAB handling into arch/x86
  efi: x86: move efi_is_table_address() into arch/x86
  cpufreq: schedutil: fix equation in comment
  sched: Rework pick_next_task() slow-path
  sched: Allow put_prev_task() to drop rq->lock
  sched/fair: Expose newidle_balance()
  sched: Add task_struct pointer to sched_class::set_curr_task
  sched: Rework CPU hotplug task selection
  sched/{rt,deadline}: Fix set_next_task vs pick_next_task
  sched: Fix kerneldoc comment for ia64_set_curr_task
  stop_machine: Fix stop_cpus_in_progress ordering
  sched/fair: Fix low cpu usage with high throttling by removing expiration of cpu-local slices
  sched: Clean up active_mm reference counting
  rcu/tree: Fix SCHED_FIFO params
  mutex: Fix up mutex_waiter usage
  USB: typec: ucsi_ccg: convert i2c driver to use dev_groups
  USB: musb: convert platform driver to use dev_groups
  USB: Move wusbcore and UWB to staging as it is obsolete
  clk: Constify struct clk_bulk_data * where possible
  clk: qcom: msm8916: Don't build by default
  scsi: mpt3sas: Update driver version to 31.100.00.00
  scsi: mpt3sas: Run SAS DEVICE STATUS CHANGE EVENT from ISR
  scsi: mpt3sas: Reduce the performance drop
  scsi: mpt3sas: Handle fault during HBA initialization
  scsi: mpt3sas: Add sysfs to know supported features
  scsi: mpt3sas: Support MEMORY MOVE Tool box command
  scsi: mpt3sas: Allow ioctls to blocked access status NVMe
  scsi: mpt3sas: Enumerate SES of a managed PCIe switch
  scsi: mpt3sas: Update MPI headers to 2.6.8 spec
  scsi: mpt3sas: Gracefully handle online firmware update
  scsi: mpt3sas: memset request frame before reusing
  scsi: mpt3sas: Add support for PCIe Lane margin
  scsi: pm80xx: remove redundant assignments to variable rc
  scsi: hisi_sas: Consolidate internal abort calls in LU reset operation
  scsi: hisi_sas: replace "%p" with "%pK"
  scsi: hisi_sas: Remove some unnecessary code
  scsi: hisi_sas: Modify return type of debugfs functions
  scsi: hisi_sas: Drop free_irq() when devm_request_irq() failed
  scsi: hisi_sas: Drop SMP resp frame DMA mapping
  scsi: hisi_sas: Drop kmap_atomic() in SMP command completion
  scsi: hisi_sas: Make slot buf minimum allocation of PAGE_SIZE
  scsi: hisi_sas: Don't bother clearing status buffer IU in task prep
  scsi: hisi_sas: Fix out of bound at debug_I_T_nexus_reset()
  scsi: hisi_sas: Snapshot AXI and RAS register at debugfs
  scsi: hisi_sas: Snapshot HW cache of IOST and ITCT at debugfs
  scsi: hisi_sas: Fix pointer usage error in show debugfs IOST/ITCT
  scsi: hisi_sas: Drop hisi_sas_hw.get_free_slot
  scsi: hisi_sas: Make max IPTT count equal for all hw revisions
  hwrng: n2-drv - fix typo
  scsi: ncr53c8xx: Mark expected switch fall-through
  scsi: target: tcmu: clean the nl_cmd of the udev when nl send fails
  fs/handle.c - fix up kerneldoc
  scsi: ufs: Configure clock in .hce_enable_notify() in Cadence UFS
  scsi: core: Reduce memory required for SCSI logging
  scsi: core: Complain if scsi_target_block() fails
  scsi: core: Make scsi_internal_device_unblock_nowait() reject invalid new_state
  scsi: ufs: revamp string descriptor reading
  scsi: wd33c93: Mark expected switch fall-through
  scsi: sun3_scsi: Mark expected switch fall-throughs
  scsi: qlogicpti: Mark expected switch fall-throughs
  scsi: ibmvfc: Mark expected switch fall-throughs
  scsi: megaraid_sas: Fix a compilation warning
  scsi: megaraid_sas: Make a bunch of functions static
  tools/bpf: fix core_reloc.c compilation error
  clk: ti: dm814x: Add of_node_put() to prevent memory leak
  clk: st: clk-flexgen: Add of_node_put() in st_of_flexgen_setup()
  clk: davinci: pll: Add of_node_put() in of_davinci_pll_init()
  clk: versatile: Add of_node_put() in cm_osc_setup()
  drm/rockchip: fix VOP_WIN_GET macro
  clk: qcom: gcc: Add global clock controller driver for SM8150
  dt-bindings: clock: Document gcc bindings for SM8150
  clk: qcom: clk-alpha-pll: Add support for Trion PLLs
  clk: qcom: clk-alpha-pll: Remove post_div_table checks
  clk: qcom: clk-alpha-pll: Remove unnecessary cast
  scsi: qla2xxx: Update driver version to 10.01.00.18-k
  scsi: qla2xxx: Allow NVMe IO to resume with short cable pull
  scsi: qla2xxx: Fix hang in fcport delete path
  scsi: qla2xxx: Use common update-firmware-options routine for ISP27xx+
  scsi: qla2xxx: Fix NVMe port discovery after a short device port loss
  scsi: qla2xxx: Correct error handling during initialization failures
  scsi: qla2xxx: Retry fabric Scan on IOCB queue full
  scsi: qla2xxx: Fix premature timer expiration
  scsi: qla2xxx: Fix Relogin to prevent modifying scan_state flag
  selftests/bpf: add CO-RE relocs misc tests
  selftests/bpf: add CO-RE relocs ints tests
  selftests/bpf: add CO-RE relocs ptr-as-array tests
  selftests/bpf: add CO-RE relocs modifiers/typedef tests
  selftests/bpf: add CO-RE relocs enum/ptr/func_proto tests
  selftests/bpf: add CO-RE relocs array tests
  selftests/bpf: add CO-RE relocs nesting tests
  selftests/bpf: add CO-RE relocs struct flavors tests
  selftests/bpf: add CO-RE relocs testing setup
  selftests/bpf: add BPF_CORE_READ relocatable read macro
  libbpf: implement BPF CO-RE offset relocation algorithm
  libbpf: add .BTF.ext offset relocation section loading
  libbpf: convert libbpf code to use new btf helpers
  libbpf: add helpers for working with BTF types
  clk: ingenic/jz4740: Fix "pll half" divider not read/written properly
  clk: Si5341/Si5340: remove redundant assignment to n_den
  clk: qoriq: Fix -Wunused-const-variable
  clk: aspeed: Add SDIO gate
  drm/i915/uc: Hardening firmware fetch
  media: Remove dev_err() usage after platform_get_irq()
  media: adv7511/cobalt: rename driver name to adv7511-v4l2
  media: media/platform: fsl-viu.c: fix build for MICROBLAZE
  media: imx7.rst: Fix the references to the CSI multiplexer
  media: mtk-vcodec: Handle H264 error bitstreams
  media: vicodec: add support for 4 new RGB32 pixelformats
  media: staging: tegra-vde: Fix build error
  drm/i915/uc: WOPCM programming errors are not always real
  drm/i915: Make wopcm_to_i915() private
  drm/i915: Don't try to partition WOPCM without GuC firmware
  drm/i915/uc: Don't fetch HuC fw if GuC fw fetch already failed
  drm/i915/uc: HuC firmware can't be supported without GuC
  drm/i915/uc: Prefer dev_info for reporting options
  drm/i915/perf: Refactor oa object to better manage resources
  ARM: davinci: dm355: switch to using the clocksource driver
  ARM: davinci: move timer definitions to davinci.h
  ARM: davinci: da830: switch to using the clocksource driver
  ARM: davinci: da850: switch to using the clocksource driver
  ARM: davinci: WARN_ON() if clk_get() fails
  ARM: davinci: enable the clocksource driver for DT mode
  Use kvmalloc in cgroups-v1
  mlx5: Use refcount_t for refcount
  mm/hmm: make HMM_MIRROR an implicit option
  mm/hmm: allow HMM_MIRROR on all architectures with MMU
  mm/hmm: cleanup the hmm_vma_walk_hugetlb_entry stub
  mm/hmm: cleanup the hmm_vma_handle_pmd stub
  mm/hmm: only define hmm_vma_walk_pud if needed
  mm/hmm: don't abuse pte_index() in hmm_vma_handle_pmd
  mm/hmm: remove the mask variable in hmm_vma_walk_hugetlb_entry
  mm/hmm: remove the page_shift member from struct hmm_range
  mm/hmm: remove superfluous arguments from hmm_range_register
  mm/hmm: remove the unused vma argument to hmm_range_dma_unmap
  nouveau: pass struct nouveau_svmm to nouveau_range_fault
  amdgpu: don't initialize range->list in amdgpu_hmm_init_range
  amdgpu: remove -EAGAIN handling for hmm_range_fault
  ARM: exynos_defconfig: Enable AHCI-platform SATA driver
  ARM: dts: exynos: Add port map to Exynos5250 AHCI node
  raid1: factor out a common routine to handle the completion of sync write
  md: don't call spare_active in md_reap_sync_thread if all member devices can't work
  md: don't set In_sync if array is frozen
  md: allow last device to be forcibly removed from RAID1/RAID10.
  md: Convert to use int_pow()
  md/raid10: end bio when the device faulty
  md/raid1: end bio when the device faulty
  md/raid6: Set R5_ReadError when there is read failure on parity disk
  raid1: use an int as the return value of raise_barrier()
  ARM: dts: exynos: Use space after '=' in exynos4412-itop-scp-core
  mtd: rawnand: remove redundant assignment to variable ret
  mtd: rawnand: r852: Use dev_get_drvdata
  mtd: rawnand: ingenic: fix devm_platform_ioremap_resource.cocci warnings
  Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()"
  Revert "drm/panfrost: Use drm_gem_map_offset()"
  drm/vgem: drop DRM_AUTH usage from the driver
  drm/msm: drop DRM_AUTH usage from the driver
  drm/nouveau: remove open-coded drm_invalid_op()
  drm/i915: Isolate i915_getparam_ioctl()
  of/platform: Fix device_links_supplier_sync_state_resume() warning
  of/platform: Fix fn definitons for of_link_is_valid() and of_link_property()
  arm64/ptrace: Fix typoes in sve_set() comment
  arm64: mm: print hexadecimal EC value in mem_abort_decode()
  arm64/prefetch: fix a -Wtype-limits warning
  init/Kconfig: Fix infinite Kconfig recursion on PPC
  Revert "drm/nouveau: remove open-coded drm_invalid_op()"
  Revert "drm/msm: drop DRM_AUTH usage from the driver"
  Revert "drm/vgem: drop DRM_AUTH usage from the driver"
  Revert "Revert "drm/panfrost: Use drm_gem_map_offset()""
  Revert "Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()""
  pinctrl: cherryview: Remove dev_err() usage after platform_get_irq()
  pinctrl: intel: Remove dev_err() usage after platform_get_irq()
  pinctrl: intel: Use NSEC_PER_USEC for debounce calculus
  pinctrl: baytrail: Re-use data structures from pinctrl-intel.h (part 2)
  pinctrl: intel: Remove default Interrupt Status offset
  pinctrl: lewisburg: Provide Interrupt Status register offset
  pinctrl: denverton: Provide Interrupt Status register offset
  pinctrl: sunrisepoint: Provide Interrupt Status register offset
  pinctrl: icelake: Provide Interrupt Status register offset
  pinctrl: geminilake: Provide Interrupt Status register offset
  pinctrl: cannonlake: Provide Interrupt Status register offset
  pinctrl: broxton: Provide Interrupt Status register offset
  pinctrl: intel: Simplify offset validation in intel_get_padcfg()
  drm/i915: Include the DRIVER_DATE in the error state
  drm/i915: Fix some NULL vs IS_ERR() conditions
  drm/i915: Use intel_engine_lookup_user for probing HAS_BSD etc
  drm/i915: Rename engines to match their user interface
  ASoC: fsl_sai: Add support for imx7ulp/imx8mq
  ASoC: fsl_sai: Add support for SAI new version
  ASoC: fsl_sai: Update Tx/Rx channel enable mask
  ASoC: fsl_sai: Add registers definition for multiple datalines
  ASoC: Intel: Update request-reply IPC model
  ASoC: soc-core: tidyup for snd_soc_dapm_new_controls()
  ASoC: soc-core: reuse rtdcom at snd_soc_rtdcom_add()
  ASoC: soc-core: don't use for_each_card_links_safe() at snd_soc_find_dai_link()
  ASoC: soc-core: check return value of snd_soc_add_dai_link()
  ASoC: soc-core: add comment for for_each_xxx
  ASoC: soc-core: set component->debugfs_root NULL
  irqdomain/debugfs: Use PAs to generate fwnode names
  PCI: hv: Allocate a named fwnode instead of an address-based one
  spi: sh-msiof: Use devm_platform_ioremap_resource() helper
  gpio/ixp4xx: Register the base PA instead of its VA in fwnode
  irqchip/ixp4xx: Register the base PA instead of its VA in fwnode
  irqchip/gic-v2m: Register the frame's PA instead of its VA in fwnode
  irqchip/gic: Register the distributor's PA instead of its VA in fwnode
  irqchip/gic-v3-its: Register the ITS' PA instead of its VA in fwnode
  x86/apic: Annotate global config variables as "read-only after init"
  irqchip/gic-v3: Register the distributor's PA instead of its VA in fwnode
  spi: bcm-qspi: Fix BSPI QUAD and DUAL mode support when using flex mode
  ASoC: dt-bindings: Introduce compatible strings for 7ULP and 8MQ
  ASoC: SOF: Intel: hda: fix MSI handling
  ASoC: rt1011: Add a flag for the R0 calibration test
  ASoC: rt1011: Add R0 temperature and TDM1 ADC2DAT Swap control
  ASoC: SOF: Intel: hda: Initialize HDA controller after i915 init
  ASoC: rsnd: don't call clk_get_rate() under atomic context
  arm64: Add support for function error injection
  error-injection: Consolidate override function definition
  pinctrl: qcom: Add SC7180 pinctrl driver
  dt-bindings: pinctrl: qcom: Add SC7180 pinctrl binding
  gpio: mpc8xxx: Add new platforms GPIO DT node description
  USB: add support for dev_groups to struct usb_device_driver
  USB: add support for dev_groups to struct usb_driver
  drm/sti: fix opencoded use of drm_panel_*
  dma-buf: simplify reservation_object_get_fences_rcu a bit
  drm/i915: stop using seqcount for fence pruning
  drm/i915: Drop expectations of VM_IO from our GGTT mmappings
  dma-buf: fix shared fence list handling in reservation_object_copy_fences
  dma-buf: fix busy wait for new shared fences
  PCI: mediatek: Add controller support for MT7629
  dt-bindings: PCI: Add support for MT7629
  drm/i915: abstract display suspend/resume operations
  drm/i915: move property enums to intel_display_types.h
  drm/i915: remove unnecessary includes of intel_display_types.h header
  drm/i915: rename intel_drv.h to display/intel_display_types.h
  drm/i915: avoid including intel_drv.h via i915_drv.h->i915_trace.h
  cpufreq: mediatek-cpufreq: Add compatible for MT8516
  drm/i915/tc: un-inline intel_tc_port_ref_held()
  drm/i915/mst: un-inline intel_dp_mst_encoder_active_links()
  drm/i915/bw: make intel_atomic_get_bw_state() static
  drm/i915/irq: un-inline functions to avoid i915_drv.h include
  drm/i915/sprite: un-inline icl_is_hdr_plane()
  drm/i915: move intel_display.c function declarations
  EDAC/altera: Use the proper type for the IRQ status bits
  soc: qcom: socinfo: Annotate switch cases with fall through
  selftests/bpf: test_progs: drop extra trailing tab
  selftests/bpf: test_progs: test__printf -> printf
  selftests/bpf: test_progs: switch to open_memstream
  openvswitch: Print error when ovs_execute_actions() fails
  mips: fix vdso32 build, again
  MIPS: octeon: Remove ARCH_HAS_IRQ_PER_CPU
  MIPS: octeon: Remove cpu_has_saa
  nfp: flower: encode mac indexes with pre-tunnel rule check
  nfp: flower: remove offloaded MACs when reprs are applied to OvS bridges
  nfp: flower: offload pre-tunnel rules
  nfp: flower: verify pre-tunnel rules
  nfp: flower: detect potential pre-tunnel rules
  nfp: flower: push vlan after tunnel in merge
  net: sched: add ingress mirred action to hardware IR
  net: tc_act: add helpers to detect ingress mirred actions
  net: sched: add skbedit of ptype action to hardware IR
  net: tc_act: add skbedit_ptype helper functions
  r8169: sync PCIe PHY init with vendor driver 8.047.01
  r8169: add helper r8168_mac_ocp_modify
  r8169: remove access to legacy register MultiIntr
  fq_codel: Kill useless per-flow dropped statistic
  Increase fq_codel count in the bulk dropper
  net: mdio-octeon: Fix Kconfig warnings and build errors
  net: dsa: dump CPU port regs through master
  net/mlx5: remove self-assignment on esw->dev
  i2c: sprd: Validate the return value of clock initialization
  i2c: sprd: Change to use devm_platform_ioremap_resource()
  i2c: sprd: Make I2C driver can be built as a module
  i2c: Drop unneeded check for of_node
  i2c: designware: Fix unused variable warning
  Revert "dt-bindings: i2c: riic: Rename bindings documentation file"
  Revert "dt-bindings: i2c: rcar: Rename bindings documentation file"
  drop_monitor: Use pre_doit / post_doit hooks
  drop_monitor: Add extack support
  drop_monitor: Avoid multiple blank lines
  drop_monitor: Document scope of spinlock
  drop_monitor: Rename and document scope of mutex
  drop_monitor: Use correct error code
  net: dsa: ksz: Drop NET_DSA_TAG_KSZ9477
  net: dsa: ksz: Merge ksz_priv.h into ksz_common.h
  net: dsa: ksz: Remove dead code and fix warnings
  gpu: drm: amd: powerplay: Remove logically dead code
  drm/amd/powerplay: Zero initialize some variables
  MAINTAINERS: update amdkfd maintainer (v3)
  drm/amdgpu: Fix GPU reset crash regression.
  drm/amd/powerplay: check before issuing messages for max sustainable clocks
  drm/amdgpu/discovery: move common discovery code out of navi1*_reg_base_init()
  drm/amdgpu/soc15: fix external_rev_id for navi14
  drm/amdgpu: update ras sysfs feature info
  drm/amd/powerplay: skip pcie params override on Arcturus V2
  drm/amdgpu: Fix panic during gpu reset
  drm/amdgpu: pin the csb buffer on hw init for gfx v8
  drm/amd/display: Block immediate flips for non-fast updates
  drm/amd/display: Validate dc_plane_info and dc_plane_size in atomic check
  tests: add pidfd poll tests
  MODSIGN: make new include file self contained
  tests: move common definitions and functions into pidfd.h
  pidfd: add pidfd_wait tests
  mailmap: add entry for Jaegeuk Kim
  mailmap: Add an entry for my email address
  mailmap: add entry for Gao Xiang
  drm/crc-debugfs: Add notes about CRC<->commit interactions
  Input: docs: fix spelling mistake "potocol" -> "protocol"
  kernel-doc: ignore __printf attribute
  ia64:unwind: fix double free for mod->arch.init_unw_table
  selftests, arm64: add a selftest for passing tagged pointers to kernel
  arm64: Introduce prctl() options to control the tagged user addresses ABI
  arm64: untag user pointers in access_ok and __uaccess_mask_ptr
  drm/i915/dmc: Load DMC on TGL
  selftests/bpf: add loop test 5
  selftests/bpf: add loop test 4
  block: stop exporting bio_map_kern
  lightnvm: pblk: use kvmalloc for metadata
  lightnvm: move metadata mapping to lower level driver
  lightnvm: remove nvm_submit_io_sync_fn
  pinctrl: spear: spear: Add of_node_put() before return
  drm/i915/gt: Move the [class][inst] lookup for engines onto the GT
  drm/i915/gem: Make caps.scheduler static
  reset: Add DesignWare IP support to simple reset
  dt-bindings: Document the DesignWare IP reset bindings
  pinctrl: freescale: mxs: Add of_node_put() before return
  pinctrl: nomadik: abx500: Add of_node_put() before return
  pinctrl: nomadik: nomadik: Add of_node_put() before return
  pinctrl: falcon: Add of_node_put() before return
  b43legacy: Remove pointless cond_resched() wrapper
  Revert "mwifiex: fix system hang problem after resume"
  rtlwifi: rtl8192ce: Convert inline routines to little-endian words
  rtlwifi: rtl8192ce: Convert macros that set descriptor
  rtlwifi: rtl8192ce: Replace local bit manipulation macros
  rtlwifi: rtl8192ce: Remove unused GET_XXX and SET_XXX
  rtw88: add BT co-existence support
  rtw88: enclose c2h cmd handle with mutex
  rtw88: allow c2h operation in irq context
  rtlwifi: rtl8188ee: Remove local configuration variable
  rtlwifi: rtl8188ee: Convert inline routines to little-endian words
  rtlwifi: rtl8188ee: Convert macros that set descriptor
  rtlwifi: rtl88188ee: Replace local bit manipulation macros
  rtlwifi: rtl8188ee: Remove unused GET_XXX and SET_XXX descriptor macros
  rt2800usb: Add new rt2800usb device PLANEX GW-USMicroN
  rtw88: pci: remove set but not used variable 'ip_sel'
  brcmsmac: remove three set but not used variables
  ipw2x00: remove redundant assignment to err
  rsi: fix for sdio reset card issue
  libertas: Fix a double free in if_spi_c2h_data()
  thunderbolt: Show key using %*pE not %*pEp
  mt7601u: null check the allocation
  brcmfmac: remove set but not used variable 'dtim_period'
  rtlwifi: remove unneeded function _rtl_dump_channel_map()
  rtlwifi: rtl_pci: Use dev_get_drvdata
  qtnfmac_pcie: Use dev_get_drvdata
  mwifiex: pcie: Use dev_get_drvdata
  iwlegacy: Use dev_get_drvdata where possible
  rsi: fix for sdio interface setup in 9116
  mwifiex: make error values consistent in mwifiex_update_bss_desc_with_ie()
  bcma: Use dev_get_drvdata
  rtw88: use txpwr_lmt_cfg_pair struct, not arrays
  thunderbolt: Switch to use device_property_count_uXX()
  ALSA: usb-audio: Add Pioneer DDJ-SX3 PCM quirck
  ALSA: usb-audio: Skip bSynchAddress endpoint check if it is invalid
  locking/mutex: Use mutex flags macro instead of hard code
  locking/mutex: Make __mutex_owner static to mutex.c
  locking/qspinlock,x86: Clarify virt_spin_lock_key
  locking/rwsem: Check for operations on an uninitialized rwsem
  locking/rwsem: Make handoff writer optimistically spin on owner
  ALSA: usb-audio: fix PCM device order
  ALSA: usb-audio: Unify audioformat release code
  drm/i915: Use drm_i915_private directly from drv_get_drvdata()
  drm/hdcp: reference for srm file format
  drm/i915: update the hdcp state with uevent
  drm/hdcp: update content protection property with uevent
  drm: uevent for connector status change
  drm/i915: Attach content type property
  drm: Add Content protection type property
  USB: usbip: convert platform driver to use dev_groups
  drm/bochs: Use dev_get_drvdata
  drm/qxl: Use dev_get_drvdata where possible
  csky: Optimize arch_sync_dma_for_cpu/device with dma_inv_range
  csky/dma: Fixup cache_op failed when cross memory ZONEs
  drm/ttm: drop ttm_buffer_object->resv
  drm/virtio: switch driver from bo->resv to bo->base.resv
  drm/qxl: switch driver from bo->resv to bo->base.resv
  drm/nouveau: switch driver from bo->resv to bo->base.resv
  drm/amdgpu: switch driver from bo->resv to bo->base.resv
  drm/vmwgfx: switch driver from bo->resv to bo->base.resv
  drm/radeon: switch driver from bo->resv to bo->base.resv
  drm/ttm: switch ttm core from bo->resv to bo->base.resv
  drm/ttm: set both resv and base.resv pointers
  drm/ttm: use gem vma_node
  drm/ttm: use gem reservation object
  drm/nouveau: use embedded gem object
  drm/amdgpu: use embedded gem object
  drm/radeon: use embedded gem object
  drm/qxl: use embedded gem object
  drm/vram: use embedded gem object
  drm/ttm: add gem base object
  bus: sunxi-rsb: Remove dev_err() usage after platform_get_irq()
  MIPS: Ingenic: Disable broken BTB lookup optimization.
  MIPS: Ingenic: Fix bugs when detecting X1000's L2 cache.
  soc: qcom: Extend AOSS QMP driver to support resources that are used to wake up the SoC.
  ima: fix freeing ongoing ahash_request
  ima: always return negative code for error
  ima: Store the measurement again when appraising a modsig
  ima: Define ima-modsig template
  ima: Collect modsig
  ima: Implement support for module-style appended signatures
  ima: Factor xattr_verify() out of ima_appraise_measurement()
  ima: Add modsig appraise_type option for module-style appended signatures
  integrity: Select CONFIG_KEYS instead of depending on it
  PKCS#7: Introduce pkcs7_get_digest()
  PKCS#7: Refactor verify_pkcs7_signature()
  MODSIGN: Export module signature definitions
  arm64: dts: qcom: Add device tree for Longcheer L8150
  arm64: dts: qcom: Add device tree for Samsung Galaxy A3U/A5U
  dt-bindings: qcom: Document bindings for new MSM8916 devices
  dt-bindings: vendor-prefixes: Add Longcheer Technology Co., Ltd.
  arm64: dts: qcom: msm8996: Add Venus video codec DT node
  arm64: dts: qcom: Extend AOSS QMP node
  arm64: dts: qcom: msm8996: Add Coresight support
  arm64: dts: qcom: msm8998: Add Coresight support
  arm64: dts: qcom: sdm845: Add Coresight support
  arm64: dts: qcom: msm8998: Node ordering, address cleanups
  soc: qcom: socinfo: Expose image information
  soc: qcom: socinfo: Expose custom attributes
  soc: qcom: Add socinfo driver
  base: soc: Export soc_device_register/unregister APIs
  base: soc: Add serial_number attribute to soc
  arm64: dts: qcom: sdm845-cheza: Spelling s/conenctors/connectors/
  arm64: dts: qcom: qcs404: Add wifi rails in QCS404 dt node for proxy votes
  arm64: dts: qcom: qcs404: remove unit name for thermal trip points
  arm64: dts: qcom: pms405: remove reduandant properties
  arm64: dts: qcom: pms405: add unit name adc nodes
  arm64: dts: sdm845: Add device node for Last level cache controller
  soc: amlogic: meson-gx-socinfo: add A311D id
  arm64: dts: qcom: msm8996: Rename smmu nodes
  ARM: dts: meson8b: mxq: add the VDDEE regulator
  ARM: dts: meson8b: odroidc1: add the VDDEE regulator
  ARM: dts: meson8b: ec100: add the VDDEE regulator
  ARM: dts: meson8b: add the PWM_D output pin
  ARM: dts: meson8b: add ethernet fifo sizes
  ipmi_si: Only schedule continuously in the thread in maintenance mode
  selinux: always return a secid from the network caches if we find one
  soc: amlogic: meson-clk-measure: add G12B second cluster cpu clk
  soc: amlogic: meson-clk-measure: protect measure with a mutex
  cnic: Explicitly initialize all reference counts to 0.
  selinux: policydb - rename type_val_to_struct_array
  selinux: policydb - fix some checkpatch.pl warnings
  ipv6: have a single rcu unlock point in __ip6_rt_update_pmtu
  selinux: shuffle around policydb.c to get rid of forward declarations
  backlight: drop EARLY_EVENT_BLANK support
  i40e: Remove unicast log when VF is leaving multicast mode.
  i40e: verify string count matches even on early return
  i40e: Log info when PF is entering and leaving Allmulti mode.
  i40e: Update visual effect for advertised FEC mode.
  i40e: fix code comments
  i40e: don't report link up for a VF who hasn't enabled queues
  i40e: Log disable-fw-lldp flag change by ethtool
  i40e: fix incorrect ethtool statistics veb and veb.tc_
  ALSA: firewire-lib: localize kernel APIs to start/stop each AMDTP stream
  ALSA: fireface: support AMDTP domain
  ALSA: firewire-motu: support AMDTP domain
  ALSA: firewire-tascam: support AMDTP domain
  ALSA: firewire-digi00x: support AMDTP domain
  ALSA: dice: support AMDTP domain
  ALSA: oxfw: support AMDTP domain
  ALSA: fireworks: support AMDTP domain
  ALSA: bebob: support AMDTP domain
  ALSA: fireface: code refactoring for initialization/destruction of AMDTP stream
  ALSA: firewire-motu: code refactoring for initialization/destruction of AMDTP stream
  ALSA: firewire-tascam: code refactoring for initialization/destruction of AMDTP stream
  ALSA: firewire-digi00x: code refactoring for initialization/destruction of AMDTP stream
  ALSA: fireworks: code refactoring for bus reset handler
  ALSA: fireworks: code refactoring for initialization/destruction of AMDTP streams
  ALSA: firewire-lib: add a kernel API to start AMDTP streams in AMDTP domain
  ALSA: firewire-lib: add a kernel API to add AMDTP stream into AMDTP domain
  ALSA: firewire-lib: add a kernel API to stop a couple of AMDTP streams in AMDTP domain
  ALSA: firewire-lib: add AMDTP domain structure to handle several isoc contexts
  ][next] selftests: nettest: fix spelling mistake: "potocol" -> "protocol"
  drm/i915/gt: Remove stale kerneldoc for internal MOCS functions
  drm/i915/uc: Don't fail on HuC early init errors
  drm/i915/uc: Remove redundant GuC support checks
  drm/i915/huc: Prefer intel_huc_is_supported
  drm/i915/guc: Prefer intel_guc_is_submission_supported
  drm/bridge/parade: Drop legacy GPIO header
  drm/bridge/nxp-ptn3460: Drop legacy GPIO headers
  drm/bridge/megachips: Drop GPIO header
  drm/pl111: Fix unused variable warning
  iio: imu: inv_mpu6050: be more explicit on supported chips
  iio: light: noa1305: Add support for NOA1305
  RDMA/efa: Rate limit admin queue error prints
  RDMA/core: Introduce ratelimited ibdev printk functions
  RDMA/hns: Remove not used UAR assignment
  misc: Remove spear13xx pcie gadget driver
  fpga: dfl: fme: add capability sysfs interfaces
  fpga: dfl: make uinit callback optional
  fpga: dfl: add id_table for dfl private feature driver
  fpga: dfl: afu: add AFU state related sysfs interfaces
  fpga: dfl: pci: enable SRIOV support.
  fpga: dfl: fme: add DFL_FPGA_FME_PORT_RELEASE/ASSIGN ioctl support.
  w1: omap-hdq: use devm_platform_ioremap_resource() to simplify code
  w1: mxc_w1: use devm_platform_ioremap_resource() to simplify code
  parport: parport_serial: Use dev_get_drvdata
  parport: Add missing newline at end of file
  dt-bindings: Add binding document for NOA1305
  rdma: Enable ib_alloc_cq to spread work over a device's comp_vectors
  iio: remove get_irq_data_ready() function pointer and use IRQ number directly
  arm64: dts: renesas: r8a774c0: cat874: Add definition for 12V regulator
  arm64: dts: renesas: r8a774c0: Point LVDS0 to its companion LVDS1
  arm64: dts: renesas: r8a77995: Sort nodes
  arm64: dts: renesas: r8a77995: draak: Sort nodes
  arm64: dts: renesas: r8a77990: Sort nodes
  arm64: dts: renesas: r8a77990: ebisu: Sort nodes
  arm64: dts: renesas: r8a77980: v3hsk: Sort nodes
  arm64: dts: renesas: r8a77980: condor: Sort nodes
  arm64: dts: renesas: r8a77970: v3msk: Sort nodes
  arm64: dts: renesas: r8a77970: eagle: Sort nodes
  iio: imu: st_lsm6dsx: make IIO_CHAN_INFO_SCALE shared by type
  iio: tsl2772: Use regulator_bulk_() APIs
  dma-buf: fix stack corruption in dma_fence_chain_release
  iio: tsl2772: Use devm_iio_device_register
  iio: tsl2772: Use devm_add_action_or_reset for tsl2772_chip_off
  regulator: core: Add of_node_put() before return
  ASoC: soc-component: add snd_soc_pcm_component_pcm_free()
  ASoC: soc-component: add snd_soc_pcm_component_pcm_new()
  ASoC: soc-component: add snd_soc_pcm_component_mmap()
  ASoC: soc-component: add snd_soc_pcm_component_page()
  ASoC: soc-component: add snd_soc_pcm_component_copy_user()
  ASoC: soc-component: add snd_soc_pcm_component_ioctrl()
  ASoC: soc-component: add snd_soc_pcm_component_pointer()
  ASoC: soc-component: move snd_soc_component_set_bias_level()
  ASoC: soc-component: move snd_soc_component_stream_event()
  iio: tsl2772: Use devm_add_action_or_reset
  ASoC: soc-component: move snd_soc_component_seq_notifier()
  ASoC: soc-component: add snd_soc_component_of_xlate_dai_name()
  ASoC: soc-component: add snd_soc_component_of_xlate_dai_id()
  ASoC: soc-component: add snd_soc_component_remove()
  ASoC: soc-component: add snd_soc_component_probe()
  ASoC: soc-component: add snd_soc_component_is_suspended()
  ASoC: soc-component: add snd_soc_component_resume()
  ASoC: soc-component: add snd_soc_component_suspend()
  ASoC: soc-component: add snd_soc_component_trigger()
  USB: Disable USB2 LPM at shutdown
  usb: dwc3: meson-g12a: use devm_platform_ioremap_resource() to simplify code
  ASoC: soc-component: add snd_soc_component_hw_free()
  ASoC: soc-component: add snd_soc_component_hw_params()
  ASoC: soc-component: add snd_soc_component_prepare()
  ASoC: soc-component: add snd_soc_component_close()
  ASoC: soc-component: add snd_soc_component_open()
  ASoC: soc-component: add snd_soc_component_get/put()
  ASoC: add soc-component.c
  ASoC: soc-pcm: remove soc_fill_silence()
  ASoC: soc-pcm: remove soc_rtdcom_copy_kernel()
  ASoC: soc-pcm: remove soc_rtdcom_ack()
  staging: rtl8192e: Make use kmemdup
  staging: rtl8723bs: core: add spaces around '-', '+', '&','|' and '?'
  staging: rtl8723bs: core: Remove Unnecessary parentheses
  staging: rtl8723bs: core: correct spelling mistake in rtw_ap.c
  staging: rtl8188eu: core: add spaces around '-', '+', '>>','<<' and '*' in rtw_efuse.c
  iio: Remove dev_err() usage after platform_get_irq()
  iio: light: si1145: Use device-managed APIs
  iio:pressure: preenable/postenable/predisable fixup for ST press buffer
  iio:magn: preenable/postenable/predisable fixup for ST magn buffer
  iio:gyro: preenable/postenable/predisable fixup for ST gyro buffer
  iio:accel: preenable/postenable/predisable fixup for ST accel buffer
  dt-bindings: iio: imu: st_lsm6dsx: add ism330dhcx device bindings
  iio: imu: st_lsm6dsx: add support to ISM330DHCX
  iio: imu: st_lsm6dsx: move iio chan definitions in st_lsm6dsx_sensor_settings
  iio: imu: st_lsm6dsx: inline output acc/gyro output regs
  iio: imu: st_lsm6dsx: move fs_table in st_lsm6dsx_sensor_settings
  iio: imu: st_lsm6dsx: move odr_table in st_lsm6dsx_sensor_settings
  media: venus: dec: populate properly timestamps and flags for capture buffers
  media: venus: helpers: handle correctly vbuf field
  media: venus: make decoder compliant with stateful codec API
  media: venus: vdec: allow bigger sizeimage set by clients
  iio: light: cm3323: Use device-managed APIs
  media: venus: vdec_ctrls: get real minimum buffers for capture
  media: venus: helpers: add three more helper functions
  media: venus: hfi: return an error if session_init is already called
  media: venus: hfi: export few HFI functions
  media: venus: hfi: add type argument to hfi flush function
  media: venus: helpers: export few helper functions
  media: venus: venc: amend buffer size for bitstream plane
  dt-bindings: iio: potentiometer: add max5432.yaml binding
  iio: potentiometer: add a driver for Maxim 5432-5435
  HID: logitech-dj: extend consumer usages range
  hiddev: Return EPOLLOUT from hiddev_poll
  hidraw: Return EPOLLOUT from hidraw_poll
  arm64: Add support for relocating the kernel with RELR relocations
  arm64: Move TIF_* documentation to individual definitions
  arm64: mm: free the initrd reserved memblock in a aligned manner
  arm64: io: Relax implicit barriers in default I/O accessors
  pinctrl: xway: Use devm_kasprintf() instead of fixed buffer formatting
  pinctrl: lantiq: Use kasprintf() instead of fixed buffer formatting
  pinctrl: devicetree: Use strlen() instead of hardcoded number
  gpio: Remove dev_err() usage after platform_get_irq()
  pinctrl: Remove dev_err() usage after platform_get_irq()
  pinctrl: uniphier: Fix Pro5 SD pin-mux setting
  pinctrl: uniphier: Add Pro5 PCIe pin-mux settings
  pinctrl: uniphier: Add 5th LD20 MPEG2-TS input pin-mux setting
  pinctrl: uniphier: Add another audio I/O pin-mux settings for LD20
  pinctrl: uniphier: Separate modem group from UART ctsrts group
  pinctrl: meson-g12a: add pwm_a on GPIOE_2 pinmux
  dt-bindings: aspeed: Remove mention of deprecated compatibles
  pinctrl: aspeed: Document existence of deprecated compatibles
  arm64: dts: fast models: Remove clcd's max-memory-bandwidth
  pinctrl: aspeed: Add AST2600 pinmux support
  pinctrl: aspeed: Add SIG_DESC_CLEAR() helper
  pinctrl: aspeed: Add multiple pin group support for functions
  pinctrl: aspeed: Add PIN_DECL_3() helper
  pinctrl: aspeed: Rename pin declaration macros
  dt-bindings: pinctrl: aspeed: Document AST2600 pinmux
  pinctrl: sunxi: v3s: introduce support for V3
  pinctrl: qcom: spmi-gpio: Mark expected switch fall-through
  pinctrl: rockchip: Mark expected switch fall-through
  pinctrl: oxnas: remove set but not used variable 'arg'
  pinctrl: stmfx: update pinconf settings
  pinctrl: sprd: Combine the condition of MISC_PIN and COMMON_PIN
  pinctrl: sprd: Change to use devm_platform_ioremap_resource()
  arm64: Remove unused cpucap_multi_entry_cap_cpu_enable()
  arm64: sysreg: Remove unused and rotting SCTLR_ELx field definitions
  arm64: esr: Add ESR exception class encoding for trapped ERET
  arm64: Replace strncmp with str_has_prefix
  ACPI/IORT: Rename arm_smmu_v3_set_proximity() 'node' local variable
  arm64: remove unneeded uapi/asm/stat.h
  arm64/kexec: Use consistent convention of initializing 'kxec_buf.mem' with KEXEC_BUF_MEM_UNKNOWN
  arm64: remove pointless __KERNEL__ guards
  arm64: Remove unused assembly macro
  PM/sleep: Expose suspend stats in sysfs
  pinctrl: qdf2xxx: Switch to use device_property_count_uXX()
  pinctrl: msm: Switch to use device_property_count_uXX()
  ACPI / APEI: Get rid of NULL_UUID_LE constant
  pinctrl: madera: Add configuration for Cirrus Logic CS47L92
  pinctrl: madera: Add configuration for Cirrus Logic CS47L15
  pinctrl: madera: Use local copy of pdata
  gpio: madera: Add support for Cirrus Logic CS47L92
  gpio: madera: Add support for Cirrus Logic CS47L15
  gpio: madera: Use local copy of pdata
  gpio: arizona: Use local copy of pdata
  pinctrl: bcm2835: Add support for BCM2711 pull-up functionality
  pinctrl: bcm2835: Add brcm,bcm2711 compatible
  gpio: viperboard: Replace 'unsigned' with 'unsigned int'
  pinctrl: tegra210: Add Tegra210 pinctrl pm ops
  pinctrl: tegra: Add suspend and resume support
  pinctrl: pinctrl-single: add header include guard
  cpuidle: teo: Allow tick to be stopped if PM QoS is used
  cpuidle: menu: Allow tick to be stopped if PM QoS is used
  PM / Domains: Align in-parameter names for some genpd functions
  powerpc/pseries/hotplug-memory.c: Replace nested ifs by switch-case
  powerpc/xive: Update comment referencing magic loads from an ESB
  powerpc/32: activate ARCH_HAS_PMEM_API and ARCH_HAS_UACCESS_FLUSHCACHE
  powerpc/powernv: Restrict OPAL symbol map to only be readable by root
  powerpc/configs: Disable SCOM_DEBUGFS in powernv_defconfig
  powerpc/powernv: Fix checkpatch warnings in opal-xscom.c
  powerpc/powernv: Get rid of old scom_controller abstraction
  powerpc/powernv: Remove dead SCOM access code
  powerpc/powernv: Move SCOM access code into powernv platform
  PCI: rpaphp: Avoid a sometimes-uninitialized warning
  powerpc/rtas: Unexport rtas_online_cpus_mask, rtas_offline_cpus_mask
  drm/i915: Fix wrong escape clock divisor init for GLK
  x86/mce: Don't check for the overflow bit on action optional machine checks
  dma-buf: add more reservation object locking wrappers
  pinctrl: rzn1: Add of_node_put() before return
  blk-mq: balance mapping between present CPUs and queues
  scsi: implement .cleanup_rq callback
  blk-mq: add callback of .cleanup_rq
  null_blk: implement REQ_OP_ZONE_RESET_ALL
  scsi: implement REQ_OP_ZONE_RESET_ALL
  blk-zoned: implement REQ_OP_ZONE_RESET_ALL
  block: add req op to reset all zones and flag
  block: Fix a comment in blk_cleanup_queue()
  block: Fix spelling in the header above blkg_lookup()
  block: Improve physical block alignment of split bios
  block: Simplify blk_bio_segment_split()
  block: Simplify bvec_split_segs()
  block: Document the bio splitting functions
  block: Declare several function pointer arguments 'const'
  blk-mq: remove blk_mq_complete_request_sync
  nvme: wait until all completed request's complete fn is called
  nvme: don't abort completed request in nvme_cancel_request
  blk-mq: introduce blk_mq_tagset_wait_completed_request()
  blk-mq: introduce blk_mq_request_completed()
  batman-adv: BATMAN_V: aggregate OGMv2 packets
  batman-adv: BATMAN_V: introduce per hard-iface OGMv2 queues
  drm/i915: Replace struct_mutex for batch pool serialisation
  drm/i915: Teach execbuffer to take the engine wakeref not GT
  fm10k: fix fm10k_get_fault_pf to read correct address
  fm10k: convert NON_Q_VECTORS(hw) into NON_Q_VECTORS
  fm10k: mark unused parameters with __always_unused
  fm10k: cast page_addr to u8 * when incrementing it
  fm10k: explicitly return 0 on success path in function
  fm10k: remove needless initialization of size local variable
  fm10k: remove needless assignment of err local variable
  fm10k: remove unnecessary variable initializer
  media: dt-bindings: media: sunxi-ir: Add H6 compatible
  media: dt-bindings: media: sunxi-ir: Add A64 compatible
  media: rc: sunxi: Add RXSTA bits definition
  media: rc: sunxi: Add A31 compatible
  media: rc: Introduce sunxi_ir_quirks
  media: dt-bindings: media: sunxi-ir: Add A31 compatible
  media: ir-kbd-i2c: remove outdated comments
  media: iguanair: add sanity checks
  media: rc: describe rc protocols and their scancodes
  media: lirc: document BPF IR decoding
  media: don't drop front-end reference count for ->detach
  IB/mlx5: Support MLX5_CMD_OP_QUERY_LAG as a DEVX general command
  net/mlx5: Fix mlx5_ifc_query_lag_out_bits
  selftests: Add use case section to fcnal-test
  selftests: Add ipv6 netfilter tests to fcnal-test
  selftests: Add ipv4 netfilter tests to fcnal-test
  selftests: Add ipv6 runtime tests to fcnal-test
  selftests: Add ipv4 runtime tests to fcnal-test
  selftests: Add ipv6 address bind tests to fcnal-test
  selftests: Add ipv4 address bind tests to fcnal-test
  selftests: Add ipv6 udp tests to fcnal-test
  selftests: Add ipv4 udp tests to fcnal-test
  selftests: Add ipv6 tcp tests to fcnal-test
  selftests: Add ipv4 tcp tests to fcnal-test
  selftests: Add ipv6 ping tests to fcnal-test
  selftests: Add ipv4 ping tests to fcnal-test
  selftests: Setup for functional tests for fib and socket lookups
  selftests: Add nettest
  ipvs: Improve robustness to the ipvs sysctl
  netfilter: conntrack: use shared sysctl constants
  netfilter: synproxy: rename mss synproxy_options field
  ARM: dts: imx53: Update LCD panel node on M53Menlo
  arm64: defconfig: CONFIG_DRM_ETNAVIV=m
  ARM: dts: imx25-pdk: native-mode is part of display-timings
  clk: imx8mq: Mark AHB clock as critical
  arm64: dts: imx8mq-evk: Unbypass audio_pll1
  ARM: dts: imx: Cleanup style around assignment operator
  drm/vblank: drop use of DRM_WAIT_ON()
  ARM: dts: imx6qdl-nit6xlite: Remove invalid properties
  arm64: dts: bitmain: Modify pin controller memory map
  arm64: dts: bitmain: Add reset controller support for BM1880 SoC
  arm64: dts: imx8mm: Add opp-suspend property to OPP table
  arm64: dts: imx8mq: Add opp-suspend property to OPP table
  arm64: dts: ls1088a: Revise gpio registers to little-endian
  arm64: dts: add the console node for DPAA2 platforms
  arm64: dts: fsl: pico-pi: Add a device tree for the PICO-PI-IMX8M
  arm64: dts: imx8qxp: add serial alias
  arm64: dts: imx8qxp: add lpuart baud clock
  arm64: dts: ls1028a: Add optional property node for Mali DP500
  arm64: dts: freescale: Add support for i.MX8QXP AI_ML board
  arm64: dts: imx8mm-evk: Remove invalid properties
  arm64: dts: nxp: add ls1046a-frwy board support
  arm64: dts: rdu3: add UCS1002 charge controller node
  arm64: dts: imx8mq: correct usb controller clocks
  arm64: dts: imx8mq: Add clock for TMU node
  arm64: dts: imx8mq: Correct OPP table according to latest datasheet
  arm64: dts: imx8mm: Correct OPP table according to latest datasheet
  arm64: dts: imx8mm: Add "fsl,imx8mq-src" as src's fallback compatible
  arm64: dts: imx8m: Add ddr-pmu nodes
  arm64: dts: imx8mm-evk: enable usb1 and typec support
  arm64: dts: imx8mm: Remove setting for IMX8MM_CLK_USB_CORE_REF
  arm64: dts: imx8mm: Add gpio-ranges property
  arm64: dts: imx8mq: Add gpio-ranges property
  arm64: dts: imx8mm: Init rates and parents configs for clocks
  EDAC/mc: Fix grain_bits calculation
  drm/pl111: Drop special pads config check
  drm/pl111: Deprecate the pads from the DT binding
  clk: imx8mn: Keep uart clocks on for early console
  clk: imx: Remove unused function statement
  clk: imx7ulp: Make sure earlycon's clock is enabled
  ARM: imx_v6_v7_defconfig: Select the OV5645 camera driver
  ARM: dts: imx6qdl-wandboard: Add OV5645 camera support
  bus: imx-weim: optionally enable burst clock mode
  dt-bindings: bus: imx-weim: document optional burst clock mode
  clk: imx8mm: Switch to platform driver
  clk: imx: imx8mm: fix audio pll setting
  clk: imx8mm: GPT1 clock mux option #5 should be sys_pll1_80m
  clk: imx8mm: Fix typo of pwm3 clock's mux option #4
  clk: imx: Remove unused clk based API
  clk: imx8mq: set correct parent for usb ctrl clocks
  clk: imx8: Add DSP related clocks
  clk: imx8mq: Remove CLK_IS_CRITICAL flag for IMX8MQ_CLK_TMU_ROOT
  clk: imx: Add support for i.MX8MN clock driver
  clk: imx8mm: rename 'share_count_dcss' to 'share_count_disp'
  clk: imx8mm: correct the usb1_ctrl parent to be usb_bus
  clk: imx: Add API for clk unregister when driver probe fail
  clk: imx8mm: Make 1416X/1443X PLL macro definitions common for usage
  dt-bindings: imx: Add clock binding doc for i.MX8MN
  staging: rtl8712: Add spaces around <<
  staging: isdn: remove unnecessary parentheses
  staging: rtl8188eu: core: rtw_recv.c: Remove Unnecessary parentheses
  parisc: Add assembly implementations for memset, strlen, strcpy, strncpy and strcat
  parisc: trigger die notifier chain in parisc_terminate()
  parisc: Update feature list
  parisc/ftrace: Add KPROBES_ON_FTRACE
  parisc/ftrace: Add ARCH_SUPPORTS_FTRACE_OPS support
  arm64: dts: fsl: ls1028a: Enable eth port1 on the ls1028a QDS board
  dt-bindings: net: fsl: enetc: Add bindings for the central MDIO PCIe endpoint
  enetc: Add mdio bus driver for the PCIe MDIO endpoint
  enetc: Clean up makefile
  enetc: Clean up local mdio bus allocation
  net: dsa: mv88e6xxx: add PTP support for MV88E6250 family
  net: dsa: mv88e6xxx: order ptp structs numerically ascending
  net: dsa: mv88e6xxx: setup message port is not supported in the 6250 familiy
  net: dsa: mv88e6xxx: introduce invalid_port_mask in mv88e6xxx_info
  dt-bindings: net: dsa: marvell: add 6220 model to the 6250 family
  net: dsa: mv88e6xxx: add support for MV88E6220
  net: ftgmac100: Select ASPEED MDIO driver for the AST2600
  net: ftgmac100: Add support for DT phy-handle property
  net: phy: Add mdio-aspeed
  dt-bindings: net: Add aspeed, ast2600-mdio binding
  drm/i915: Flush the freed object list on file close
  drm/i915: Hide unshrinkable context objects from the shrinker
  ARM: dts: rockchip: Add pin names for rk3288-veyron fievel
  ARM: dts: rockchip: A few fixes for veyron-{fievel,tiger}
  pinctrl: sprd: Fix platform_no_drv_owner.cocci warnings
  gpio: refactor gpiochip_allocate_mask() with bitmap_alloc()
  gpio: mpc8xxx: Add ls1028a device specify function.
  drm/i915/wopcm: Don't fail on WOPCM partitioning failure
  drm/i915/uc: Inject probe errors into intel_uc_init_hw
  drm/i915/uc: Move GuC error log to uc and release it on fini
  drm/i915/uc: Reorder firmware status codes
  drm/i915/uc: Do full sanitize instead of pure reset
  drm/i915: Add i915 to i915_inject_probe_failure
  mlx5: Fix formats with line continuation whitespace
  drm/etnaviv: clean up includes
  drm/etnaviv: Use devm_platform_ioremap_resource()
  drm/etnaviv: drop use of drmP.h
  soundwire: bus: split handling of Device0 events
  drm/komeda: Enable dual-link support
  drm/komeda: Use drm_display_mode "crtc_" prefixed hardware timings
  drm/drm_debugfs_crc.c: Document that .verify_crc_source vfunc is required for enabling CRC support.
  drm: mali-dp: Mark expected switch fall-through
  drm/amdgpu: enable Navi12 kfd support for amdgpu
  drm/amd/display: Add missing NV12 asic IDs
  drm/amdgpu: Add nv12 DC ip block
  drm/amd/display: Add ASICREV_IS_NAVI macros
  drm/amdgpu: enable DPG mode for Navi12
  drm/amdgpu: add VCN ip block for Navi12
  drm/amdgpu: add Navi12 VCN firmware support
  drm/amdgpu: add psp ip block for navi12
  drm/amdgpu: add smu ip block for navi12
  drm/amdgpu: start autoload till RLCG fw for navi12
  drm/amdgpu/psp11: add psp support for navi12
  drm/amdgpu/smu11: add smu support for navi12
  drm/amdgpu: correct smu rlc handshake enablement bit
  drm/amdgpu: add CGTT_GS_NGG_CLK_CTRL register to gc header
  drm/amdgpu/sdma5: add golden settings for navi12 (v2)
  drm/amdgpu/gfx10: add golden settings for navi12 (v2)
  drm/amdgpu: enable virtual display for navi12
  drm/amdgpu/gfx10: set tcp harvest for navi12
  drm/amdgpu: add ip blocks for navi12
  drm/amdgpu/gmc10: set gart size and vm size for navi12
  drm/amdgpu/sdma5: add placeholder for navi12 golden settings
  drm/amdgpu/sdma5: declare sdma firmwares for navi12
  drm/amdgpu/gfx10: set rlc funcs for navi12
  drm/amdgpu/gfx10: set number of me(c)/pipe/queue for navi12
  drm/amdgpu/gfx10: add placeholder for navi12 golden settings
  drm/amdgpu/gfx10: declare cp/rlc firmwares for navi12
  drm/amdgpu/gfx10: add gfx config for navi12
  drm/amdgpu/gfx10: set gfx cg for navi12
  drm/amdgpu: set nbio/hdp cg for navi12
  drm/amdgpu: initialize cg/pg flags and external rev id for navi12
  drm/amdgpu: use front door firmware loading for navi12
  drm/amdgpu: set asic family and ip blocks for navi12
  drm/amdgpu: add gpu_info firmware for navi12
  drm/amdgpu: add navi12 asic type
  drm/amdgpu: initialize reg base for navi12
  drm/amdgpu: add ip offset header for navi12 (v2)
  drm/amdgpu: update SDMA V4 microcode init
  drm/amdgpu: extend PSP FW loading support to 8 SDMA instances
  drm/amdgpu: disable MEC2 JT context init for Arcturus
  drm/amdgpu: update PSP CMD fail response status print
  drm/amdgpu: add PSP KDB loading support for Arcturus
  drm/amdgpu: add PSP SW init support for Arcturus
  drm/amdgpu: removed duplicate line
  drm/amd/powerplay: correct navi10 vcn powergate
  drm/amd/powerplay: enable SW SMU power profile switch support in KFD
  drm/amd/powerplay: support power profile retrieval and setting on arcturus
  drm/amd/powerplay: guard consistency between CPU copy and local VRAM
  drm/amdgpu: replace AMDGPU_RAS_UE with AMDGPU_RAS_SUCCESS
  drm/amdgpu: only uncorrectable error needs gpu reset
  drm/amdgpu: update the calc algorithm of umc ecc error count
  drm/amdgpu: implement umc ras init function
  drm/amdgpu: support ce interrupt in ras module
  drm/amdgpu: add error address query for umc ras
  drm/amdgpu: apply umc_for_each_channel macro to umc_6_1
  drm/amdgpu: add macro of umc for each channel
  drm/amdgpu: initialize new parameters and functions for amdgpu_umc structure
  drm/amdgpu: add more parameters and functions to amdgpu_umc structure
  drm/amdgpu: remove the clear of MCA_ADDR
  drm/amd/powerplay: honor hw limit on fetching metrics data for navi10
  drm/amd/display: Don't replace the dc_state for fast updates
  drm/amd/display: Skip determining update type for async updates
  drm/amd/display: Allow cursor async updates for framebuffer swaps
  drm/amdgpu: fix unsigned variable instance compared to less than zero
  drm/amd/powerplay: Allow changing of fan_control in smu_v11_0
  drm/amd/powerplay: fix a few spelling mistakes
  gpu: drm: radeon: Fix a possible null-pointer dereference in radeon_connector_set_property()
  drm/amd/powerplay: fix off-by-one upper bounds limit checks
  drm/radeon: Fix EEH during kexec
  drm/amdkfd: Extend CU mask to 8 SEs (v3)
  drm/amdgpu: support get_cu_info for Arcturus
  drm/amdgpu: Fix pcie_bw on Vega20
  drm/amdgpu: Update NBIO headers to add TXCLK3/4
  drm/amdgpu: Add amdgpu_asic_funcs.reset_method for Vega20
  drm/amdgpu: Mark KFD VRAM allocations for wipe on release
  drm/amdgpu: Implement VRAM wipe on release
  drm/amdgpu: Add flag to wipe VRAM on release
  drm/ttm: Add release_notify callback to ttm_bo_driver
  drm/amd/display: Use switch table for dc_to_smu_clock_type
  drm/amd/display: Use proper enum conversion functions
  drm/amdgpu: fix double ucode load by PSP(v3)
  drm/amdgpu: fix incorrect judge on sos fw version
  drm/amdgpu: cleanup vega10 SRIOV code path
  drm/amd/powerplay: sort feature status index by asic feature id for smu
  drm/i915: Report resv_obj allocation failure
  ARM: multi_v7_defconfig: Enable SPI_STM32_QSPI support
  ARM: multi_v7_defconfig: enable STM32 booster regulator
  ARM: multi_v7_defconfig: add FMC2 NAND controller support
  ARM: dts: stm32: remove useless pinctrl entries in stm32mp157-pinctrl
  ARM: dts: stm32: add phy-dsi-supply property on stm32mp157c-ev1
  ARM: dts: stm32: add audio codec support on stm32mp157a-dk1 board
  ARM: dts: stm32: add syscfg to ADC on stm32mp157c
  ARM: dts: stm32: add pwm cells to stm32f746
  ARM: dts: stm32: add pwm cells to stm32f429
  ARM: dts: stm32: add pwm cells to stm32mp157c
  ARM: dts: stm32: fix -Wall W=1 compilation in stm32mp157 pinctrl for mcan
  ARM: dts: stm32: add booster for ADC analog switches on stm32mp157c
  ARM: dts: stm32: enable m4 coprocessor support on STM32MP157a-dk1
  ARM: dts: stm32: declare copro reserved memories on STM32MP157a-dk1
  ARM: dts: stm32: enable m4 coprocessor support on STM32MP157c-ed1
  ARM: dts: stm32: declare copro reserved memories on STM32MP157c-ed1
  ARM: dts: stm32: add m4 remoteproc support on STM32MP157c
  ARM: dts: stm32: add missing vdda-supply to adc on stm32h743i-eval
  ARM: dts: stm32: add missing vdda-supply to adc on stm32429i-eval
  ARM: dts: stm32: remove fixed regulator unit address on stm32429i-eval
  KVM: selftests: Enable dirty_log_test on s390x
  KVM: selftests: Implement ucall() for s390x
  KVM: selftests: Split ucall.c into architecture specific files
  drm/i915: Fix documentation for __intel_wait_for_register_fw*
  drm/tilcdc: Remove obsolete crtc_mode_valid() hack
  ipmi_si: Remove ipmi_ from the device attr names
  ipmi_si: Convert device attr permissions to octal
  ipmi_si: Rework some include files
  drm/i915/oa: update the generated files
  soundwire: cadence_master: simplify bus clash interrupt clear
  drm/imx: Drop unused imx-ipuv3-crtc.o build
  staging: rtl8712: r8712_aes_decrypt(): Change return type
  staging: rtl8712: aes_decipher(): Change return type
  staging: rtl8712: aes_cipher(): Change return type
  staging: rtl8712: r8712_tkip_decrypt(): Change return type
  staging: rtl8712: r8712_os_recvbuf_resource_free(): Change return type
  staging: rtl8712: r8712_os_recvbuf_resource_alloc(): Change return values
  staging: rtl8712: r8712_init_recv_priv(): Change return type
  staging: rtl8712: _r8712_init_recv_priv(): Change return type
  staging: rtl8712: r8712_os_recv_resource_alloc(): Change return type
  staging: rtl8723bs: Replace hal_btcoex_Initialize()
  staging: rtl8723bs: Change return type of hal_btcoex_IsLpsOn()
  staging: rtl8723bs: Change return type of hal_btcoex_IsBtControlLps()
  staging: rtl8723bs: Change return type of hal_btcoex_IsBtExist()
  soundwire: intel: remove BIOS work-arounds
  staging: wilc1000: remove unused function
  staging: wilc1000: merge drv_handle and operation_mode wids
  staging: wlan-ng: Remove function prism2mib_excludeunencrypted()
  staging: bcm2835-camera: Spelling s/conencted/connected/
  staging: fsl-dpaa2/ethsw: Remove useless set memory to zero use memset()
  staging: erofs: update Kconfig
  staging: erofs: update super.c
  staging: erofs: tidy up utils.c
  staging: erofs: turn cache strategies into mount options
  staging: erofs: remove clusterbits in sbi
  staging: erofs: tidy up decompression frontend
  staging: erofs: remove redundant braces in inode.c
  staging: erofs: tidy up zpvec.h
  staging: erofs: kill CONFIG_EROFS_FS_USE_VM_MAP_RAM
  staging: erofs: refine erofs_allocpage()
  staging: erofs: drop __GFP_NOFAIL for managed inode
  staging: erofs: kill all failure handling in fill_super()
  staging: erofs: kill sbi->dev_name
  staging: erofs: clean up shrinker stuffs
  staging: erofs: kill CONFIG_EROFS_FS_IO_MAX_RETRIES
  staging: erofs: remove redundant #include "internal.h"
  staging: erofs: clean up internal.h
  staging: erofs: sunset erofs_workstn_{lock,unlock}
  staging: erofs: keep up erofs_fs.h with erofs-outofstaging patchset
  staging: erofs: fix dummy functions erofs_{get, list}xattr
  staging: erofs: rename source files for better understanding
  staging: erofs: update source file headers
  soundwire: mipi_disco: Switch to use fwnode_property_count_uXX()
  olpc: x01: convert platform driver to use dev_groups
  platform: x86: hp-wmi: convert platform driver to use dev_groups
  video: fbdev: sm501fb: convert platform driver to use dev_groups
  video: fbdev: w100fb: convert platform driver to use dev_groups
  video: fbdev: wm8505fb: convert platform driver to use dev_groups
  firmware: arm_scpi: convert platform driver to use dev_groups
  spi: atmel: add tracing to custom .transfer_one_message callback
  spi: Remove dev_err() usage after platform_get_irq()
  spi: Reduce kthread priority
  regulator: Remove dev_err() usage after platform_get_irq()
  ASoC: Remove dev_err() usage after platform_get_irq()
  uio: uio_fsl_elbc_gpcm: convert platform driver to use dev_groups
  drm/i915: Allow sharing the idle-barrier from other kernel requests
  driver core: add dev_groups to all drivers
  gpio: pca953x: Drop %s for constant string literals
  gpio: pca953x: Remove explicit comparison with 0
  gpio: pca953x: Use GENMASK() consistently
  gpio: pca953x: Switch to use device_get_match_data()
  drm/i915: Flush extra hard after writing relocations through the GTT
  drm/i915/pmu: Atomically acquire the gt_pm wakeref
  gpio: mxc: Use devm_clk_get_optional instead of devm_clk_get
  ARM: dts: aspeed: tiogapass: Add Riser card
  ARM: dts: aspeed: tiogapass: Move battery sensor
  ALSA: hda: Add support of Zhaoxin controller
  ALSA: isa/wavefront: remove redundant assignment to pointer bptr
  asm-generic: Remove redundant arch-specific rules for simd.h
  crypto: caam - defer probing until QMan is available
  hwrng: timeriomem - add include guard to timeriomem-rng.h
  crypto: api - Remove redundant #ifdef in crypto_yield()
  hwrng: drivers - Use device-managed registration API
  crypto: jitterentropy - build without sanitizer
  crypto: nx - Add of_node_put() before return in 842
  crypto: user - fix potential warnings in cryptouser.h
  crypto: add header include guards
  crypto: caam/qi2 - Add printing dpseci fq stats using debugfs
  crypto: qat - Silence smp_processor_id() warning
  crypto: atmel-sha204a - Use device-managed registration API
  ARM: dts: aspeed: Add Facebook Wedge100 BMC
  ARM: dts: aspeed: Add Facebook Wedge40 BMC
  Revert "crypto: aegis128 - add support for SIMD acceleration"
  drm/i915/pmu: Make get_rc6 take intel_gt
  drm/i915/pmu: Convert sampling to gt
  drm/i915/pmu: Convert engine sampling to uncore mmio
  drm/i915/pmu: Make more struct i915_pmu centric
  tipc: reduce risk of wakeup queue starvation
  fm10k: reduce scope of the ring variable
  fm10k: reduce the scope of the result local variable
  fm10k: reduce the scope of the local msg variable
  fm10k: reduce the scope of the local i variable
  fm10k: reduce the scope of the err variable
  fm10k: reduce the scope of the tx_buffer variable
  drm/i915/tgl: allow the reg_read ioctl to read the RCS TIMESTAMP register
  drm/i915/tgl: Add and use new DC5 and DC6 residency counter registers
  rcutorture: Aggressive forward-progress tests shouldn't block shutdown
  rcuperf: Make rcuperf kernel test more robust for !expedited mode
  torture: Remove exporting of internal functions
  rcutorture: Emulate userspace sojourn during call_rcu() floods
  rcutorture: Test TREE03 with the threadirqs kernel boot parameter
  torture: Expand last_ts variable in kvm-test-1-run.sh
  rcuperf: Fix perf_type module-parameter description
  rcu: Remove redundant debug_locks check in rcu_read_lock_sched_held()
  treewide: Rename rcu_dereference_raw_notrace() to _check()
  fm10k: reduce the scope of the q_idx local variable
  fm10k: reduce the scope of local err variable
  fm10k: reduce the scope of qv local variable
  doc: Add rcutree.kthread_prio pointer to stallwarn.txt
  rcu: Change return type of rcu_spawn_one_boost_kthread()
  srcu: Avoid srcutorture security-based pointer obfuscation
  rcu: Add destroy_work_on_stack() to match INIT_WORK_ONSTACK()
  rcu: Add kernel parameter to dump trace after RCU CPU stall warning
  rcu: Restore barrier() to rcu_read_lock() and rcu_read_unlock()
  time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint
  lockdep: Make print_lock() address visible
  rcu: Simplify rcu_note_context_switch exit from critical section
  rcu: Make rcu_read_unlock_special() checks match raise_softirq_irqoff()
  rcu: Simplify rcu_read_unlock_special() deferred wakeups
  fm10k: reduce scope of *p local variable
  fm10k: reduce scope of the err variable
  selftests/bpf: extend sockopt_sk selftest with TCP_CONGESTION use case
  bpf: always allocate at least 16 bytes for setsockopt hook
  net: dsa: mv88e6xxx: call vtu_getnext directly in vlan_add
  net: dsa: mv88e6xxx: call vtu_getnext directly in vlan_del
  net: dsa: mv88e6xxx: call vtu_getnext directly in db load/purge
  net: dsa: mv88e6xxx: explicit entry passed to vtu_getnext
  net: dsa: mv88e6xxx: lock mutex in vlan_prepare
  drm/i915/uc: Stop sanitizing enable_guc modparam
  drm/i915/guc: Use dedicated flag to track submission mode
  drm/i915/uc: Consider enable_guc modparam during fw selection
  drm/i915/uc: Rename intel_uc_is_using* into intel_uc_supports*
  pidfd: add P_PIDFD to waitid()
  net/mlx5e: Allow dropping specific tunnel packets
  net/mlx5e: TX reporter cleanup
  net/mlx5e: Set tx reporter only on successful creation
  net/mlx5e: Fix mlx5e_tx_reporter_create return value
  net/mlx5e: Rx, checksum handling refactoring
  net/mlx5e: Tx, Soften inline mode VLAN dependencies
  net/mlx5e: XDP, Slight enhancement for WQE fetch function
  net/mlx5e: XDP, Close TX MPWQE session when no room for inline packet left
  net/mlx5e: Tx, Strict the room needed for SQ edge NOPs
  net/mlx5: Add flow counter pool
  net/mlx5: Add flow counter bulk infrastructure
  net/mlx5: E-Switch, add ingress rate support
  posix-timers: Move rcu_head out of it union
  posix-timers: Rework cancel retry loops
  posix-timers: Cleanup the flag/flags confusion
  itimers: Prepare for PREEMPT_RT
  timerfd: Prepare for PREEMPT_RT
  alarmtimer: Prepare for PREEMPT_RT
  sched/deadline: Ensure inactive_timer runs in hardirq context
  timers: Prepare support for PREEMPT_RT
  hrtimer: Prepare support for PREEMPT_RT
  hrtimer: Determine hard/soft expiry mode for hrtimer sleepers on RT
  hrtimer: Move unmarked hrtimers to soft interrupt expiry on RT
  tick: Mark tick related hrtimers to expiry in hard interrupt context
  KVM: LAPIC: Mark hrtimer to expire in hard interrupt context
  watchdog: Mark watchdog_hrtimer to expire in hard interrupt context
  perf/core: Mark hrtimers to expire in hard interrupt context
  sched: Mark hrtimers to expire in hard interrupt context
  hrtimer: Make enqueue mode check work on RT
  net/mlx5: E-switch, Tide up eswitch config sequence
  net/mlx5: E-Switch, Remove redundant mc_promisc NULL check
  net/mlx5: E-Switch, remove redundant error handling
  net/mlx5: E-switch, Introduce helper function to enable/disable vports
  net/mlx5: E-switch, Initialize TSAR Qos hardware block before its user vports
  net/mlx5: E-switch, Combine metadata enable/disable functionality
  net/mlx5: E-Switch, Verify support QoS element type
  net/mlx5: Make load_one() and unload_one() symmetric
  net/mlx5: Fix offset of tisc bits reserved field
  net/mlx5: Add flow counter bulk allocation hardware bits and command
  net/mlx5: Refactor and optimize flow counter bulk query
  net: hns3: activate reset timer when calling reset_event
  net: hns3: clear reset interrupt status in hclge_irq_handle()
  net: hns3: fix some reset handshake issue
  net: hns3: rename a member in struct hclge_mac_ethertype_idx_rd_cmd
  net: hns3: simplify hclge_cmd_query_error()
  net: hns3: minior error handling change for hclge_tm_schd_info_init
  net: hns3: minor cleanup in hns3_clean_rx_ring
  net: hns3: remove unnecessary variable in hclge_get_mac_vlan_cmd_status()
  net: hns3: refine for set ring parameters
  net: hns3: do not query unsupported commands in debugfs
  net: hns3: add handler for NCSI error mailbox
  net: hns3: add link change event report
  net: phy: xgene: use devm_platform_ioremap_resource() to simplify code
  bcm63xx_enet: use devm_platform_ioremap_resource() to simplify code
  net: qcom/emac: use devm_platform_ioremap_resource() to simplify code
  net: mediatek: use devm_platform_ioremap_resource() to simplify code
  net: dsa: bcm_sf2: use devm_platform_ioremap_resource() to simplify code
  net: dsa: b53: use devm_platform_ioremap_resource() to simplify code
  net: dsa: lantiq: use devm_platform_ioremap_resource() to simplify code
  mvpp2: use devm_platform_ioremap_resource() to simplify code
  drm/i915/gt: Introduce intel_gt_runtime_suspend/resume
  drm/i915/uc: Move uC early functions inside the GT ones
  drm/i915/gt: Move gt_cleanup_early out of gem_cleanup_early
  staging: rtl8723bs: remove set but not used variable 'FirstConnect'
  staging: rtl8723bs: remove set but not used variables 'prspbuf' and 'auth'
  staging: rtl8192u: null check the kzalloc
  drm/i915: Remove lrc default desc from GEM context
  staging: rtl8723bs: remove set but not used variable 'bEEPROMCheck'
  usb: host: xhci-plat: Prevent an abnormally restrictive PHY init skipping
  usb: wusbcore: Spelling s/disconenct/disconnect/
  usb: musb: remove redundant assignment to variable ret
  RDMA/hns: remove set but not used variable 'irq_num'
  hrtimer: Introduce HARD expiry mode
  hrtimer/treewide: Use hrtimer_sleeper_start_expires()
  hrtimer: Provide hrtimer_sleeper_start_expires()
  hrtimer: Consolidate hrtimer_init() + hrtimer_init_sleeper() calls
  tools/memory-model: Make scripts be executable
  platform/x86: intel_int0002_vgpio: Remove dev_err() usage after platform_get_irq()
  platform/x86: intel_bxtwc_tmu: Remove dev_err() usage after platform_get_irq()
  platform/mellanox: mlxreg-hotplug: Remove dev_err() usage after platform_get_irq()
  platform/x86: intel_pmc_ipc: Remove dev_err() usage after platform_get_irq()
  drm/i915/ehl: Don't forget to handle port C's hotplug interrupts
  of/platform: Don't create device links for default busses
  of/platform: Create device links for all child-supplier depencencies
  of/platform: Pause/resume sync state during init and of_platform_populate()
  driver core: Add sync_state driver/bus callback
  of/platform: Add functional dependency link from DT bindings
  driver core: Add edit_links() callback for drivers
  driver core: Add support for linking devices during device addition
  drivers: Fix htmldocs warnings with bus_find_next_device()
  drivers: Fix typo in parameter description for driver_find_device_by_acpi_dev
  i2c: Revert incorrect conversion to use generic helper
  spi: core: Use DEVICE_ATTR_RW() for SPI slave control sysfs attribute
  regmap: no need to check return value of debugfs_create functions
  i2c: designware: make use of devm_gpiod_get_optional
  dt-bindings: i2c: riic: Rename bindings documentation file
  dt-bindings: i2c: riic: Rename bindings documentation file
  dt-bindings: i2c: rcar: Rename bindings documentation file
  dt-bindings: i2c: sh_mobile: Rename bindings documentation file
  ASoC: zx-tdm: remove redundant assignment to ts_width on error return path
  ASoC: SOF: no need to check return value of debugfs_create functions
  ASoC: core: no need to check return value of debugfs_create functions
  i2c: busses: Use dev_get_drvdata where possible
  ASoC: Intel: SoC: skylake: no need to check return value of debugfs_create functions
  ASoC: codec2codec: fill some of the runtime stream parameters
  ASoC: codec2codec: remove ephemeral variables
  ASoC: create pcm for codec2codec links as well
  i2c: imx-lpi2c: use devm_platform_ioremap_resource() to simplify code
  i2c: mxs: use devm_platform_ioremap_resource() to simplify code
  i2c: ismt: Remove call to memset after dmam_alloc_coherent
  i2c: tegra: Compile PM functions unconditionally
  ima: initialize the "template" field with the default template
  drm/i915/oa: add content to Makefile
  Revert "drm/radeon: Provide ddc symlink in connector sysfs directory"
  drm/i915: fix possible memory leak in intel_hdcp_auth_downstream()
  dt-bindings: reset: amlogic,meson8b-reset: update with SPDX Licence identifier
  dt-bindings: reset: amlogic,meson-gxbb-reset: update with SPDX Licence identifier
  reset: reset-meson: update with SPDX Licence identifier
  dt-bindings: reset: Fix typo in imx8mq resets
  dt-bindings: reset: imx7: Add support for i.MX8MM
  drm/i915/execlists: Always clear pending&inflight requests on reset
  gpio: of: Fix hard-assigned valid_mask for OF case
  mfd: aat2870: no need to check return value of debugfs_create functions
  mfd: ab8500: no need to check return value of debugfs_create functions
  mfd: ab3100: no need to check return value of debugfs_create functions
  ipmi_si: Convert timespec64 to timespec
  net: bridge: mcast: add delete due to fast-leave mdb flag
  tc-testing: Clarify the use of tdc's -d option
  ice: Bump version number
  ice: Remove flag to track VF interrupt status
  ice: Remove unnecessary flag ICE_FLAG_MSIX_ENA
  ice: Don't return error for disabling LAN Tx queue that does exist
  ice: Remove duplicate code in ice_alloc_rx_bufs
  ice: Add stats for Rx drops at the port level
  ice: Update number of VF queue before setting VSI resources
  ice: Set up Tx scheduling tree based on alloc VSI Tx queues
  ice: Only bump Rx tail and release buffers once per napi_poll
  docs: fs: porting.rst: fix a broken reference to another doc
  docs: w1: convert to ReST and add to the kAPI group of docs
  docs: fs: cifs: convert to ReST and add to admin-guide book
  randstruct: Check member structs in is_pure_ops_struct()
  spi: docs: convert to ReST and add it to the kABI bookset
  docs: writing-schema.md: convert from markdown to ReST
  docs: fix a couple of new broken references
  drm/amdkfd: enable KFD support for navi14
  drm/amdgpu: disable inject for failed subblocks of gfx
  drm/amdgpu: support gfx ras error injection and err_cnt query
  drm/amdgpu: add RAS callback for gfx
  drm/amdgpu: add define for gfx ras subblock
  drm/amd/include: add define of TCP_EDC_CNT_NEW
  drm/amd/include: add bitfield define for EDC registers
  drm/amdgpu: remove ras_reserve_vram in ras injection
  drm/amdgpu: add check for ras error type
  drm/amdgpu: update interrupt callback for all ras clients
  drm/amdgpu: allow ras interrupt callback to return error data
  drm/amdgpu: query umc ras error address
  drm/amdgpu: add structures for umc error address translation
  drm/amdgpu: add support for recording ras error address
  drm/amdgpu: update algorithm of umc uncorrectable error counting
  drm/amdgpu: switch to amdgpu_umc structure
  drm/amdgpu: use 64bit operation macros for umc
  drm/amdgpu: add RREG64/WREG64(_PCIE) operations
  drm/amdgpu: add ras error count after each query (v2)
  drm/amdgpu: querry umc error count
  drm/amdgpu: init umc v6_1 functions for vega20
  drm/amdgpu: add umc v6_1 query error count support
  drm/amdgpu: add umc v6_1_1 IP headers
  drm/amdgpu: add rsmu v_0_0_2 ip headers
  drm/amdgpu: add amdgpu_umc_functions structure
  drm/amdgpu: init RSMU and UMC ip base address for vega20
  drm/amdgpu: move some ras data structure to amdgpu_ras.h
  tpm: Document UEFI event log quirks
  drm/amdgpu: drop drmP.h from vcn_v2_5.c
  drm/amdgpu: drop drmP.h from vcn_v2_0.c
  drm/amdgpu: drop drmP.h from sdma_v5_0.c
  drm/amdgpu: drop drmP.h from nv.c
  drm/amdgpu: drop drmP.h from navi10_ih.c
  drm/amdgpu: drop drmP.h in gfx_v10_0.c
  drm/amdgpu: drop drmP.h from amdgpu_amdkfd_gfx_v10.c
  drm/amdgpu: drop drmP.h in amdgpu_amdkfd_arcturus.c
  docs: net: convert two README files to ReST format
  docs: nios2: add it to the main Documentation body
  docs: hwmon: pxe1610: convert to ReST format and add to the index
  docs: mips: add to the documentation body as ReST
  docs: wimax: convert to ReST and add to admin-guide
  docs: index.rst: don't use genindex for pdf output
  docs: fs: convert porting to ReST
  docs: fs: convert docs without extension to ReST
  docs: isdn: convert to ReST and add to kAPI bookset
  docs: openrisc: convert to ReST and add to documentation body
  docs: parisc: convert to ReST and add to documentation body
  docs: README.buddha: convert to ReST and add to m68k book
  docs: admin-guide: add auxdisplay files to it after conversion to ReST
  docs: packing: move it to core-api book and adjust markups
  docs: ipmb: place it at driver-api and convert to ReST
  docs: i2c: convert to ReST and add to driver-api bookset
  docs: ubifs-authentication.md: convert to ReST
  docs: thermal: add it to the driver API
  Documentation: coresight: convert txt to rst
  Documentation: filesystems: Convert ufs.txt to reStructuredText format
  Documentation: filesystems: Convert jfs.txt to
  doc: email-clients miscellaneous fixes
  RDMA/mlx5: Remove DEBUG ODP code
  docs: riscv: convert boot-image-header.txt to ReST
  docs: zh_CN: howto.rst: fix a broken reference
  docs: cgroup-v1/blkio-controller.rst: remove a CFQ left over
  MAINTAINERS: fix a renamed DT reference
  MAINTAINERS: fix reference to net phy ABI file
  MAINTAINERS: fix broken ref for ABI sysfs-bus-counter-ftm-quaddec
  doc:it_IT: align translation to mainline
  mailmap: add entry to connect my email addresses
  docs: arm: Remove orphan sh-mobile directory
  drm/i915/ehl: Ungate DDIC and DDID
  ice: Disable VFs until reset is completed
  ice: Do not configure port with no media
  ice: separate out control queue lock creation
  ice: Always set prefena when configuring an Rx queue
  ice: Move vector base setup to PF VSI
  ice: track hardware stat registers past rollover
  ice: add lp_advertising flow control support
  x86/kvm: Use CONFIG_PREEMPTION
  x86/dumpstack: Indicate PREEMPT_RT in dumps
  x86: Use CONFIG_PREEMPTION
  kprobes: Use CONFIG_PREEMPTION
  tracing: Use CONFIG_PREEMPTION
  locking/spinlocks: Use CONFIG_PREEMPTION
  rcu: Use CONFIG_PREEMPTION
  sched/preempt: Use CONFIG_PREEMPTION where appropriate
  udf: prevent allocation beyond UDF partition
  perf: Remove dev_err() usage after platform_get_irq()
  perf/imx_ddr: Add MODULE_DEVICE_TABLE
  staging/octeon: Fix build error without CONFIG_NETDEVICES
  RDMA/core: fix spelling mistake "Nelink" -> "Netlink"
  infiniband: Remove dev_err() usage after platform_get_irq()
  selftests: mlxsw: Add a test for leftover DSCP rule
  selftests: mlxsw: Fix local variable declarations in DSCP tests
  myri10ge: remove unneeded variable
  net: ag71xx: Slighly simplify code in 'ag71xx_rings_init()'
  ARM: vexpress: Cleanup cppcheck shifting warning
  ARM: dts: vexpress: Add missing newline at end of file
  ARM: dts: vexpress: add missing SPDX GPL-2.0 license identifier
  dmaengine: Remove dev_err() usage after platform_get_irq()
  dmaengine: imx-dma: Mark expected switch fall-through
  dmaengine: tegra210-adma: Don't program FIFO threshold
  drm/i915: Move MOCS setup to intel_mocs.c
  drm/i915/tgl: Tigerlake only has global MOCS registers
  drm/i915/tgl: Define MOCS entries for Tigerlake
  drm/i915/tgl: stop using ERROR_GEN6 and DONE_REG
  drm/i915/tgl: Move fault registers to their new offset
  drm/i915: remove dangling forward declaration
  drm/radeon: Provide ddc symlink in connector sysfs directory
  drm/amdgpu: Provide ddc symlink in connector sysfs directory
  drm/bridge: ti-tfp410: Provide ddc symlink in connector sysfs directory
  drm/bridge: dw-hdmi: Provide ddc symlink in connector sysfs directory
  drm/bridge: dumb-vga-dac: Provide ddc symlink in connector sysfs directory
  drm/ast: Provide ddc symlink in connector sysfs directory
  drm/mgag200: Provide ddc symlink in connector sysfs directory
  drm: sti: Provide ddc symlink in hdmi connector sysfs directory
  drm/imx: imx-tve: Provide ddc symlink in connector's sysfs
  drm/imx: imx-ldb: Provide ddc symlink in connector's sysfs
  drm/sun4i: hdmi: Provide ddc symlink in sun4i hdmi connector sysfs directory
  drm: Add drm_connector_init() variant with ddc
  drm: Add ddc link in sysfs created by drm_connector
  ALSA: hda/intel: stop probe if DMICS are detected on Skylake+ platforms
  ASoC: Intel: Skylake: use common NHLT module
  ALSA: hda: intel-nhlt: handle NHLT VENDOR_DEFINED DMIC geometry
  ALSA: hda: move parts of NHLT code to new module
  ASoC: Intel: Skylake: move NHLT header to common directory
  drm/gm12u320: Move driver to drm/tiny
  drm/tinydrm: Rename folder to tiny
  drm/tinydrm/Kconfig: Remove menuconfig DRM_TINYDRM
  staging: rtl8188eu: remove redundant assignment to variable rtstatus
  staging: rtl8723bs: indicate disconnection when disconnecting
  asm-generic: make simd.h a mandatory include/asm header
  ASoC: codecs: Add uda1334 codec driver
  mac80211: HE STA disassoc due to QOS NULL not sent
  dt-bindings: sound: Add bindings for UDA1334 codec
  ASoC: meson: axg-tdm-formatter: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: g12a-tohdmitx: use devm_platform_ioremap_resource() to simplify code
  ASoC: au1x: psc-i2s: use devm_platform_ioremap_resource() to simplify code
  ASoC: psc-ac97: use devm_platform_ioremap_resource() to simplify code
  ASoC: uniphier: aio-dma: use devm_platform_ioremap_resource() to simplify code
  ASoC: uniphier: evea: use devm_platform_ioremap_resource() to simplify code
  ASoC: inno_rk3036: use devm_platform_ioremap_resource() to simplify code
  ASoC: jz4740: use devm_platform_ioremap_resource() to simplify code
  ASoC: mmp-sspa: use devm_platform_ioremap_resource() to simplify code
  ASoC: codecs: jz4725b: use devm_platform_ioremap_resource() to simplify code
  ASoC: codecs: msm8916-wcd: use devm_platform_ioremap_resource() to simplify code
  ASoC: stm32: sai: use devm_platform_ioremap_resource() to simplify code
  ASoC: sun8i-codec: use devm_platform_ioremap_resource() to simplify code
  ASoC: sunxi: sun50i-codec-analog: use devm_platform_ioremap_resource() to simplify code
  ASoC: sun8i-codec-analog: use devm_platform_ioremap_resource() to simplify code
  ASoC: xlnx: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: axg-fifo: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: axg-spdifout: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: axg-spdifin: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: axg-pdm: use devm_platform_ioremap_resource() to simplify code
  ASoC: cs4271: Fix a typo in the CS4171_NR_RATIOS
  ASoC: ti: Mark expected switch fall-throughs
  ASoC: xtfpga-i2s: use devm_platform_ioremap_resource() to simplify code
  ASoC: kirkwood-i2s: use devm_platform_ioremap_resource() to simplify code
  ASoC: spear: use devm_platform_ioremap_resource() to simplify code
  ASoC: mxs-saif: use devm_platform_ioremap_resource() to simplify code
  ASoC: sirf: use devm_platform_ioremap_resource() to simplify code
  ASoC: bcm2835-i2s: use devm_platform_ioremap_resource() to simplify code
  ASoC: fsl_audmix: use devm_platform_ioremap_resource() to simplify code
  ASoC: imx-audmux: use devm_platform_ioremap_resource() to simplify code
  ASoC: mt6797: use devm_platform_ioremap_resource() to simplify code
  ASoC: mt8173: use devm_platform_ioremap_resource() to simplify code
  ASoC: ep93xx-i2s: use devm_platform_ioremap_resource() to simplify code
  ASoC: rockchip: use devm_platform_ioremap_resource() to simplify code
  ASoC: tegra: use devm_platform_ioremap_resource() to simplify code
  ASoC: tegra20_das: use devm_platform_ioremap_resource() to simplify code
  ASoC: meson: g12a-tohdmitx: override codec2codec params
  crypto: s390/aes - fix name clash after AES library refactor
  cpuidle: header file stubs must be "static inline"
  gpio: ixp4xx: remove redundant dev_err message
  quota: fix condition for resetting time limit in do_set_dqblk()
  ext2: code cleanup for ext2_free_blocks()
  ext2: fix block range in ext2_data_block_valid()
  udf: support 2048-byte spacing of VRS descriptors on 4K media
  udf: refactor VRS descriptor identification
  drm/i915/uc: Move uC WOPCM setup in uc_init_hw
  drm/i915/uc: Don't enable communication twice on resume
  mac80211: allow setting spatial reuse parameters from bss_conf
  nl80211: add strict start type
  cfg80211: add support for parsing OBBS_PD attributes
  mac80211: reject zero MAC address in add station
  cfg80211: use parallel_ops for genl
  mac80211_hwsim: fill boottime_ns in netlink RX path
  mac80211: add missing null return check from call to ieee80211_get_sband
  drm/i915/selftests: Pass intel_context to igt_spinner
  drm/prime: Ditch gem_prime_res_obj hook
  drm/amdgpu: Fill out gem_object->resv
  drm/nouveau: Fill out gem_object->resv
  drm/radeon: Fill out gem_object->resv
  drm/i915: Avoid ce->gem_context->i915
  Revert "staging: kpc2000: Convert put_page() to put_user_page*()"
  drm/amd/powerplay: determine the features to enable by pptable only
  drm/amdgpu: correct irq type used for sdma ecc
  drm/amd/powerplay: make power limit retrieval as asic specific
  drm/amd/powerplay: correct arcturus current clock level calculation
  drm/amd/powerplay: support UMD PSTATE settings on arcturus
  drm/amd/powerplay: fix arcturus real-time clock frequency retrieval
  drm/amd/powerplay: remove redundancy debug log in smu
  drm/amd/powerplay: correct the bitmask used in arcturus
  drm/amd/powerplay: add missing arcturus feature maps
  drm/amd/powerplay: support fan speed retrieval on arcturus
  drm/amd/powerplay: support real-time clock retrieval on arcturus
  drm/amd/powerplay: support sensor reading on arcturus
  drm/amd/powerplay: init arcturus SMU metrics table on bootup
  drm/amd/powerplay: correct UVD/VCE/VCN power status retrieval
  drm/amd/powerplay: correct Navi10 VCN powergate control (v2)
  drm/amd/powerplay: support VCN powergate status retrieval for SW SMU
  drm/amd/powerplay: support VCN powergate status retrieval on Raven
  drm/amd/powerplay: add new sensor type for VCN powergate status
  drm/amdgpu: update more sdma instances irq support
  drm/amd/include: adjust base offset of SMUIO and THM for Arcturus
  drm/amd/powerplay: hold on the arcturus gfx dpm support in driver
  drm/amdgpu: correct VCN powergate routine for acturus
  drm/amd/powerplay: enable arcturus powerplay
  drm/amd/powerplay: initialize arcturus MP1 and THM base address
  drm/amd/powerplay: enable SW SMU routine support for arcturus
  drm/amd/powerplay: update arcturus_ppt.c/h V3
  drm/amd/powerplay: update arcturus_ppsmc.h
  drm/amd/powerplay: update smu11_driver_if_arcturus.h
  drm/amd/powerplay: add SW SMU interface for dumping pptable out (v2)
  drm/amd/powerplay: add smcdpminfo table v4_6 support
  drm/amdkfd: Save/restore vcc on gfx10
  drm/amdkfd: Save/restore flat_scratch_lo/hi on gfx10
  drm/amdkfd: Fix gfx10 wave64 VGPR context restore
  drm/amd/display: Support uclk switching for DCN2
  drm/amd/display: Embed DCN2 SOC bounding box
  drm/amdgpu: fix a potential information leaking bug
  drm/amdgpu: fix error handling in amdgpu_cs_process_fence_dep
  drm/amdgpu/powerplay: provide the interface to disable uclk switch for DAL
  drm/amd/amdgpu/vcn_v2_0: Move VCN 2.0 specific dec ring test to vcn_v2_0
  drm/amdgpu/gfx10: update golden settings for navi14
  drm/amd/powerplay: implment sysfs feature status function in smu
  drm/amd/powerplay: move smu_feature_update_enable_state to up level
  drm/amd/powerplay: add smu feature name support
  drm/amd/powerplay: add smu message name support
  drm/amd/powerplay: move smu types to smu_types.h
  drm/amdgpu: Default disable GDS for compute+gfx
  drm/amd/amdgpu/vcn_v2_0: Mark RB commands as KMD commands
  drm/amdgpu/display: fix the build without CONFIG_DRM_AMD_DC_DSC_SUPPORT
  drm/amdgpu: Fix amdgpu_display_supported_domains logic.
  drm/amdgpu/powerplay: use proper revision id for navi
  drm/amdgpu: put the SMC into the proper state on reset/unload
  drm/amdgpu/powerplay: add set_mp1_state for vega12
  drm/amdgpu/powerplay: add set_mp1_state for vega10
  drm/amdgpu/powerplay: add set_mp1_state for vega20
  drm/amdgpu/powerplay: return success if set_mp1_state is not set
  drm/amdgpu/powerplay: add a new interface to set the mp1 state
  drm/amdgpu: add reset_method asic callback for navi
  drm/amdgpu: add reset_method asic callback for soc15
  drm/amdgpu: add reset_method asic callback for vi
  drm/amdgpu: add reset_method asic callback for cik
  drm/amdgpu: add reset_method asic callback for si
  drm/amdgpu: add an asic callback to determine the reset method
  drm/amd/powerplay: enable SW SMU reset functionality
  drm/amd/powerplay: fix null pointer dereference around dpm state relates
  drm/amd/powerplay: minor fixes around SW SMU power and fan setting
  drm/amd/display: enable S/G for RAVEN chip
  drm/amdgpu: Add check for USWC support for amdgpu_display_supported_domains
  drm/amdgpu: Create helper to clear AMDGPU_GEM_CREATE_CPU_GTT_USWC
  drm/amdgpu: Fix hard hang for S/G display BOs.
  drm/amdgpu: adding xgmi error monitoring
  drm/amdgpu: add perfmon and fica atomics for df
  drm/amdkfd: Remove dead code from gfx8/gfx9 trap handlers
  drm/amdkfd: Replace gfx10 trap handler with correct branch
  drm/amdkfd: Fix lost single step exceptions in gfx9 trap handler
  drm/amdkfd: Use SQC when TCP would fail in gfx9 context save.
  drm/amdgpu/gmc10: fix pte mytpe field error for navi14
  drm/amdgpu: use VCN firmware offset for cache window
  drm/amd/powerplay: fix temperature granularity error in smu11
  drm/amd/powerplay: some cosmetic fixes
  drm/amd/powerplay: no pptable transfer and dpms enabled with "dpm=0"
  drm/amd/display: fix a missing null check on a failed kzalloc
  drm/radeon: Use dev_get_drvdata where possible
  drm/amd/display: Use dev_get_drvdata
  drm/amdgpu: Use dev_get_drvdata where possible
  drm/amd/display: readd -msse2 to prevent Clang from emitting libcalls to undefined SW FP routines
  drm/amdkfd: Fix byte align on VegaM
  drm/amd/powerplay: add callback function of get_thermal_temperature_range
  tools: bpftool: add support for reporting the effective cgroup progs
  selftests/bpf: fix clearing buffered output between tests/subtests
  selftests/bpf: add test for bpf_tcp_gen_syncookie
  selftests/bpf: bpf_tcp_gen_syncookie->bpf_helpers
  bpf: sync bpf.h to tools/
  bpf: add bpf_tcp_gen_syncookie helper
  tcp: add skb-less helpers to retrieve SYN cookie
  tcp: tcp_syn_flood_action read port from socket
  csky: Fixup dma_alloc_coherent with PAGE_SO attribute
  csky: Fixup mb() synchronization problem
  ARM: dts: aspeed: swift: Fix FSI GPIOs
  extcon: adc-jack: Remove dev_err() usage after platform_get_irq()
  gpiolib-acpi: Move acpi_dev_add_driver_gpios() et al to consumer.h
  gpiolib: acpi: Split ACPI stuff to gpiolib-acpi.h
  gpiolib: of: Reshuffle contents of consumer.h for new library layout
  hv_balloon: Reorganize the probe function
  hv_balloon: Use a static page for the balloon_up send buffer
  net: dsa: ksz: Add Microchip KSZ8795 DSA driver
  net: dsa: ksz: Add KSZ8795 tag code
  dt-bindings: net: dsa: ksz: document Microchip KSZ87xx family switches
  vsock/virtio: change the maximum packet size allowed
  vhost/vsock: split packets to send using multiple buffers
  vsock/virtio: fix locking in virtio_transport_inc_tx_pkt()
  vsock/virtio: reduce credit update messages
  vsock/virtio: limit the memory used per-socket
  hrtimer: Remove task argument from hrtimer_init_sleeper()
  net: Remove dev_err() usage after platform_get_irq()
  linux: Remove bvec page_offset, use bv_offset
  net: Use skb_frag_off accessors
  linux: Add skb_frag_t page_offset accessors
  sctp: factor out sctp_connect_add_peer
  sctp: factor out sctp_connect_new_asoc
  sctp: clean up __sctp_connect
  sctp: check addr_size with sa_family_t size in __sctp_setsockopt_connectx
  sctp: only copy the available addr data in sctp_transport_init
  drm/i915: make i915_selftest.h self-contained
  HSI: Remove dev_err() usage after platform_get_irq()
  coda: Fix typo in the struct CodaCred documentation
  Documentation: filesystem: fix "Removed Sysctls" table
  Documentation/features/locking: update lists
  scsi: qla2xxx: Reject EH_{abort|device_reset|target_request}
  scsi: qla2xxx: Skip FW dump on LOOP initialization error
  scsi: qla2xxx: Use Correct index for Q-Pair array
  scsi: qla2xxx: Fix abort timeout race condition.
  scsi: qla2xxx: Fix different size DMA Alloc/Unmap
  scsi: qla2xxx: Fix DMA unmap leak
  scsi: mpt3sas: support target smid for [abort|query] task
  scsi: ibmvscsi_tgt: Mark expected switch fall-throughs
  scsi: cxlflash: Mark expected switch fall-throughs
  scsi: mpt3sas: clean up a couple sizeof() uses
  drm/i915/tgl: handle DP aux interrupts
  drm/i915/tgl: Update north display hotplug detection to TGL connections
  drm/i915/tgl: Add hpd interrupt handling
  HSI: ssi_protocol: Mark expected switch fall-throughs
  drm/i915: Update DRIVER_DATE to 20190730
  staging: Remove dev_err() usage after platform_get_irq()
  ppdev: add header include guard
  mei: Use dev_get_drvdata where possible
  uio: Remove dev_err() usage after platform_get_irq()
  usb: Remove dev_err() usage after platform_get_irq()
  mips: remove nargs from __SYSCALL
  MIPS: jz4740: Drop dead code
  hwmon: Drop obsolete JZ4740 driver
  power/supply: Drop obsolete JZ4740 driver
  mtd: rawnand: Drop obsolete JZ4740 NAND driver
  dma: Drop JZ4740 driver
  video/fbdev: Drop JZ4740 driver
  ASoC: jz4740: Drop lb60 board code
  MIPS: configs: LB60: update defconfig
  MIPS: qi_lb60: Migrate to devicetree
  rxrpc: Fix -Wframe-larger-than= warnings from on-stack crypto
  MIPS: DTS: jz4740: Add missing nodes
  staging: fsl-dpaa2/ethsw: add .ndo_fdb[add|del] callbacks
  staging: fsl-dpaa2/ethsw: check added_by_user flag
  staging: fsl-dpaa2/ethsw: add .ndo_fdb_dump callback
  staging: fsl-dpaa2/ethsw: notify switchdev of offloaded entry
  staging: fsl-dpaa2/ethsw: remove unused structure
  MIPS: Kconfig: remove HAVE_LATENCYTOP_SUPPORT
  scsi: scsi_debugfs: Use for_each_set_bit to simplify code
  MIPS: X1000: Add X1000 system type.
  drm/rockchip: Make analogix_dp_atomic_check static
  scsi: qla2xxx: Replace vmalloc + memset with vzalloc
  media: via-camera: convert to the vb2 framework
  scsi: fdomain_isa: use CFG1_IRQ_MASK
  media: vivid: add support for new pixelformats
  scsi: fdomain: use BSTAT_{MSG|CMD|IO} in fdomain_work()
  media: v4l2-common: add support for new RGB32 pixelformats
  media: v4l2-tpg: add support for new pixelformats
  scsi: fdomain: use BCTL_RST in fdomain_reset()
  media: v4l2-ctrl: Add a comment on why we zero out compound controls fields
  scsi: aic94xx: Remove unnecessary null check
  media: videodev2.h.rst.exceptions: tymecode -> timecode
  media: v4l2-ioctl.c: OR flags in v4l_fill_fmtdesc(), not don't overwrite
  scsi: qla2xxx: Remove unnecessary null check
  SUNRPC: Track writers of the 'channel' file to improve cache_listeners_exist
  cpuidle-haltpoll: disable host side polling when kvm virtualized
  cpuidle: add haltpoll governor
  governors: unify last_state_idx
  cpuidle: add poll_limit_ns to cpuidle_device structure
  add cpuidle-haltpoll driver
  drm/i915/gt: Provide a local intel_context.vm
  drm/i915: Move aliasing_ppgtt underneath its i915_ggtt
  ARM: dts: socfpga: add missing reset-names for dma
  ARM: dts: socfpga: Adjust GMAC1 clock and TXD lines skew on VINING FPGA
  ARM: dts: socfpga: Fix up button mapping on VINING FPGA
  arm64: dts: stratix10: Add NAND device node
  ARM: dts: socfpga: update to new Denali NAND binding
  arm64: dts: agilex/stratix10: Add reset properties for DMA
  ARM: dts: socfpga: add reset properties for DMA
  ARM: dts: socfpga: add the QSPI OCP reset property on arria10
  PCI: Make pci_set_of_node(), etc private
  PCI: Make pci_enable_ptm() private
  PCI: Make pcie_set_ecrc_checking(), pcie_ecrc_get_policy() private
  PCI: Make pci_ats_init() private
  PCI: Make pcie_update_link_speed() private
  PCI: Make pci_bus_get(), pci_bus_put() private
  PCI: Make pci_hotplug_io_size, mem_size, and bus_size private
  PCI: Make pci_save_vc_state(), pci_restore_vc_state(), etc private
  PCI: Make pci_get_host_bridge_device(), pci_put_host_bridge_device() private
  PCI: Make pci_check_pme_status(), pci_pme_wakeup_bus() private
  PCI: Make PCI_PM_* delay times private
  coccinelle: Add script to check for platform_get_irq() excessive prints
  driver core: platform: Add an error message to platform_get_irq*()
  platform/x86: asus-wmi: fix CPU fan control on recent products
  platform/x86: asus-wmi: add a helper for device presence
  platform/x86: asus-wmi: cleanup AGFN fan handling
  platform/x86: pcengines-apuv2: wire up simswitch gpio as led
  platform/x86: pcengines-apuv2: add mpcie reset gpio export
  platform/x86: i2c-multi-instantiate: Use struct_size() helper
  platform/x86: dell-wmi: Use existing defined KBD_LED_* magic values
  platform/x86: dell-wmi: Ignore keyboard backlight change KBD_LED_AUTO_TOKEN
  platform/x86: dell-wmi: Ignore keyboard backlight change KBD_LED_ON_TOKEN
  platform/x86: acer-wmi: Switch to acpi_dev_get_first_match_dev()
  platform/x86: wmi: Remove acpi_has_method() call
  platform/x86: ISST: Use dev_get_drvdata
  platform: Add platform_find_device_by_driver() helper
  drivers: Add generic helper to match any device
  drivers: Introduce device lookup variants by ACPI_COMPANION device
  drivers: Introduce device lookup variants by device type
  drivers: Introduce device lookup variants by fwnode
  drivers: Introduce device lookup variants by of_node
  drivers: Introduce device lookup variants by name
  usb: phy: ab8500-usb: Mark expected switch fall-throughs
  usb: host: ohci-tmio: Mark expected switch fall-throughs
  ARM: dts: exynos: Use standard arrays of generic PHYs for EHCI/OHCI devices
  usb: exynos: add support for getting PHYs from the standard dt array
  dt-bindings: switch Exynos EHCI/OHCI bindings to use array of generic PHYs
  drm/i915: Inline engine->init_context into its caller
  driver core: Fix creation of device links with PM-runtime flags
  drm/syncobj: fix leaking dma_fence in drm_syncobj_query_ioctl
  ACPI: PM: Set up EC GPE for system wakeup from drivers that need it
  drm: sti: Mark expected switch fall-throughs
  arm64: dts: renesas: ulcb: Sort nodes
  arm64: dts: renesas: ulcb-kf: Sort nodes
  arm64: dts: renesas: salvator-common: Sort nodes
  arm64: dts: renesas: r8a7796: salvator-xs: Sort nodes
  arm64: dts: renesas: r8a7796: salvator-x: Sort nodes
  arm64: dts: renesas: r8a7795: salvator-xs: Sort nodes
  arm64: dts: renesas: r8a7795: salvator-x: Sort nodes
  arm64: dts: renesas: r8a7795-es1: salvator-x: Sort nodes
  arm64: dts: renesas: r8a77965: Sort nodes
  arm64: dts: renesas: r8a7795-es1: Sort nodes
  arm64: dts: renesas: r8a7795: Sort nodes
  drm/i915: use upstream version of header tests
  Documentation: gpio: fix function links in the HTML docs
  staging: rtl8188eu: cleanup comparsion to NULL in usb_halinit.c
  staging: rtl8188eu: add spaces around '-' and '*' in usb_halinit.c
  staging: rtl8188eu: add spaces around '<<' and '>>' in usb_halinit.c
  staging: rtl8188eu: add spaces around '|' in usb_halinit.c
  staging: rtl8188eu: add spaces around '&' in usb_halinit.c
  staging: rtl8188eu: add spaces around '+' in usb_halinit.c
  staging: wilc1000: remove manual sleep mode
  staging: wilc1000: apply power management regardless of open interfaces
  staging: wilc1000: avoid overriding powersave state
  staging: wilc1000: remove unused members
  staging: wilc1000: remove ip timeout timer
  staging: wilc1000: remove inetaddr notifier
  staging: kpc2000: Convert put_page() to put_user_page*()
  staging: rtl8188eu: remove redundant assignment to rtstatus
  Staging: rtl8192e: fixed a function prototype definition issue
  staging: rtl8188eu: replace hal_EfusePgCheckAvailableAddr()
  Staging: fbtft: Fix some typo. pdc8544 --> pcd8544
  staging: most: Use DEFINE_SPINLOCK() instead of struct spinlock
  staging: olpc_dcon: Remove TODO item
  staging: vc04_services: fix unused-but-set-variable warning
  staging: rtl8723bs: os_dep: remove two set but not used variables
  staging: rtl8723bs: remove set but not used variable 'pszBBRegMpFile'
  staging: rtl8723bs: remove set but not used variable 'bWifiBusy'
  gpio: remove less important #ifdef around declarations
  ALSA: sparc: Mark expected switch fall-throughs
  sound: dmasound_atari: Mark expected switch fall-through
  cpufreq: ti-cpufreq: Mark expected switch fall-through
  net/mlx5e: Protect tc flow table with mutex
  net/mlx5e: Rely on rcu instead of rtnl lock when getting upper dev
  net/mlx5e: Eswitch, use state_lock to synchronize vlan change
  net/mlx5e: Eswitch, change offloads num_flows type to atomic64
  net/mlx5e: Protect unready flows with dedicated lock
  net/mlx5e: Protect tc flows hashtable with rcu
  net/mlx5e: Change flow flags type to unsigned long
  net/mlx5e: Extend tc flow struct with reference counter
  net/mlx5e: Simplify get_route_and_out_devs helper function
  net/mlx5e: Fix unnecessary flow_block_cb_is_busy call
  net/mlx5e: Improve ethtool rxnfc callback structure
  net/mlx5e: Avoid warning print when not required
  net/mlx5e: Print a warning when LRO feature is dropped or not allowed
  pinctrl: Ingenic: Add pinctrl driver for X1500.
  dt-bindings: pinctrl: Add X1500 bindings.
  pinctrl: Ingenic: Add pinctrl driver for X1000 and X1000E.
  dt-bindings: pinctrl: Add X1000 and X1000E bindings.
  pinctrl: Ingenic: Add pinctrl driver for JZ4760 and JZ4760B.
  dt-bindings: pinctrl: Add JZ4760 and JZ4760B bindings.
  dt-bindings: pinctrl: aspeed: Strip unnecessary quotes
  perf vendor events power9: Added missing event descriptions
  libperf: Initial documentation
  libperf: Add perf_evsel__enable/disable test
  libperf: Add perf_evlist__enable/disable test
  libperf: Add perf_evsel tests
  libperf: Add perf_evlist test
  libperf: Add perf_thread_map test
  libperf: Add perf_cpu_map test
  libperf: Add tests support
  libperf: Add install targets
  libperf: Add perf_evsel__attr() function
  libperf: Adopt perf_evlist__enable()/disable() functions from perf
  libperf: Adopt simplified perf_evlist__open()/close() functions from tools/perf
  libperf: Add perf_evsel__cpus()/threads() functions
  libperf: Add perf_cpu_map__for_each_cpu() macro
  libperf: Adopt perf_evsel__enable()/disable()/apply_filter() functions
  libperf: Adopt perf_evsel__read() function from tools/perf
  libperf: Adopt simplified perf_evsel__close() function from tools/perf
  libperf: Adopt simplified perf_evsel__open() function from tools/perf
  libperf: Adopt perf_evsel__alloc_fd() function from tools/perf
  libperf: Adopt the readn()/writen() functions from tools/perf
  libperf: Move nr_members from perf's evsel to libperf's perf_evsel
  libperf: Move fd array from perf's evsel to lobperf's perf_evsel class
  libperf: Adopt xyarray class from perf
  libperf: Add perf_evlist__set_maps() function
  libperf: Add threads to struct perf_evlist
  libperf: Add cpus to struct perf_evlist
  libperf: Add has_user_cpus to struct perf_evlist
  libperf: Add threads to struct perf_evsel
  libperf: Add own_cpus to struct perf_evsel
  libperf: Add cpus to struct perf_evsel
  libperf: Add perf_evsel__delete() function
  libperf: Add perf_evlist__delete() function
  libperf: Add perf_evlist__for_each_evsel() iterator
  libperf: Add perf_evsel__new() function
  libperf: Add perf_evlist__new() function
  libperf: Move zalloc.o into libperf
  libperf: Add perf_cpu_map__new()/perf_cpu_map__read() functions
  libperf: Move perf_event_attr field from perf's evsel to libperf's perf_evsel
  libperf: Add nr_entries to struct perf_evlist
  libperf: Add perf_evlist__remove() function
  libperf: Add perf_evlist__add() function
  libperf: Add perf_evlist__init() function
  libperf: Add perf_evsel__init function
  libperf: Include perf_evlist in evlist object
  libperf: Include perf_evsel in evsel object
  libperf: Add perf_evlist and perf_evsel structs
  libperf: Add perf_thread_map__get()/perf_thread_map__put()
  libperf: Add perf_thread_map__new_dummy() function
  libperf: Add perf_thread_map struct
  libperf: Add perf_cpu_map__get()/perf_cpu_map__put()
  libperf: Add perf_cpu_map__dummy_new() function
  libperf: Add perf_cpu_map struct
  libperf: Add debug output support
  libperf: Add perf/core.h header
  libperf: Add libperf to the python.so build
  libperf: Add build version support
  libperf: Make libperf.a part of the perf build
  perf evlist: Rename perf_evlist__disable() to evlist__disable()
  perf evlist: Rename perf_evlist__enable() to evlist__enable()
  perf evlist: Rename perf_evlist__close() to evlist__close()
  perf evlist: Rename perf_evlist__open() to evlist__open()
  perf evsel: Rename perf_evsel__cpus() to evsel__cpus()
  perf evsel: Rename perf_evsel__apply_filter() to evsel__apply_filter()
  perf evsel: Rename perf_evsel__disable() to evsel__disable()
  perf evsel: Rename perf_evsel__enable() to evsel__enable()
  perf evsel: Rename perf_evsel__open() to evsel__open()
  perf evlist: Rename perf_evlist__remove() to evlist__remove()
  perf evlist: Rename perf_evlist__add() to evlist__add()
  perf evsel: Rename perf_evsel__new() to evsel__new()
  perf evsel: Rename perf_evsel__delete() to evsel__delete()
  perf evlist: Rename perf_evlist__delete() to evlist__delete()
  perf evlist: Rename perf_evlist__new() to evlist__new()
  perf evlist: Rename perf_evlist__init() to evlist__init()
  perf evsel: Rename perf_evsel__init() to evsel__init()
  perf evlist: Rename struct perf_evlist to struct evlist
  perf evsel: Rename struct perf_evsel to struct evsel
  perf tools: Rename struct thread_map to struct perf_thread_map
  perf cpu_map: Rename struct cpu_map to struct perf_cpu_map
  perf stat: Move loaded out of struct perf_counts_values
  perf trace: Add "sendfile64" alias to the "sendfile" syscall
  perf trace: Reuse BPF augmenters from syscalls with similar args signature
  perf trace: Preallocate the syscall table
  perf trace: Mark syscall ids that are not allocated to avoid unnecessary error messages
  perf trace: Forward error codes when trying to read syscall info
  perf trace beauty: Add BPF augmenter for the 'rename' syscall
  perf trace beauty: Beautify bind's sockaddr arg
  perf trace beauty: Beautify 'sendto's sockaddr arg
  perf trace beauty: Do not try to use the fd->pathname beautifier for bind/connect fd arg
  perf trace beauty: Disable fd->pathname when close() not enabled
  perf trace beauty: Make connect's addrlen be printed as an int, not hex
  perf augmented_raw_syscalls: Augment sockaddr arg in 'connect'
  perf augmented_raw_syscalls: Rename augmented_args_filename to augmented_args_payload
  perf trace: Look for default name for entries in the syscalls prog array
  perf augmented_raw_syscalls: Support copying two string syscall args
  perf augmented_raw_syscalls: Switch to using BPF_MAP_TYPE_PROG_ARRAY
  perf augmented_raw_syscalls: Add handler for "openat"
  perf trace: Handle raw_syscalls:sys_enter just like the BPF_OUTPUT augmented event
  perf trace: Put the per-syscall entry/exit prog_array BPF map infrastructure in place
  perf trace: Allow specifying the bpf prog to augment specific syscalls
  perf trace: Add BPF handler for unaugmented syscalls
  perf trace: Order -e syscalls table
  perf trace: Look up maps just on the __augmented_syscalls__ BPF object
  perf trace: Add pointer to BPF object containing __augmented_syscalls__
  perf evsel: Store backpointer to attached bpf_object
  perf bpf: Do not attach a BPF prog to a tracepoint if its name starts with !
  perf include bpf: Add bpf_tail_call() prototype
  pinctrl: msm8998: Squash TSIF pins together
  net/mlx5: fix -Wtype-limits compilation warnings
  bnxt_en: Add PCI IDs for 57500 series NPAR devices.
  bnxt_en: Support all variants of the 5750X chip family.
  bnxt_en: Refactor bnxt_init_one() and turn on TPA support on 57500 chips.
  bnxt_en: Support TPA counters on 57500 chips.
  bnxt_en: Allocate the larger per-ring statistics block for 57500 chips.
  bnxt_en: Refactor ethtool ring statistics logic.
  bnxt_en: Add hardware GRO setup function for 57500 chips.
  bnxt_en: Add TPA ID mapping logic for 57500 chips.
  bnxt_en: Add fast path logic for TPA on 57500 chips.
  bnxt_en: Set TPA GRO mode flags on 57500 chips properly.
  bnxt_en: Refactor tunneled hardware GRO logic.
  bnxt_en: Handle standalone RX_AGG completions.
  bnxt_en: Expand bnxt_tpa_info struct to support 57500 chips.
  bnxt_en: Refactor TPA logic.
  bnxt_en: Add TPA structure definitions for BCM57500 chips.
  bnxt_en: Update firmware interface spec. to 1.10.0.89.
  can: fix ioctl function removal
  drm/i915/uc: Don't fail on HuC firmware failure
  tools: Add definitions for devmap_hash map type
  tools/libbpf_probes: Add new devmap_hash type
  tools/include/uapi: Add devmap_hash BPF map type
  xdp: Add devmap_hash map type for looking up devices by hashed index
  xdp: Refactor devmap allocation code for reuse
  include/bpf.h: Remove map_insert_ctx() stubs
  leds: netxbig: Add of_node_put() in netxbig_leds_get_of_pdata()
  leds: netxbig: remove legacy board-file support
  net: dsa: mv88e6xxx: avoid some redundant vtu load/purge operations
  r8169: make use of xmit_more
  RDMA/efa: Expose device statistics
  IB/bnxt_re: Do not notifify GID change event
  staging/octeon: Allow test build on !MIPS
  net: ag71xx: use resource_size for the ioremap size
  iommu/arm-smmu-v3: Operate directly on low-level queue where possible
  iommu/arm-smmu-v3: Move low-level queue fields out of arm_smmu_queue
  iommu/arm-smmu-v3: Drop unused 'q' argument from Q_OVF macro
  iommu/arm-smmu-v3: Separate s/w and h/w views of prod and cons indexes
  iommu/io-pgtable: Pass struct iommu_iotlb_gather to ->tlb_add_page()
  iommu/io-pgtable: Pass struct iommu_iotlb_gather to ->unmap()
  iommu/io-pgtable: Remove unused ->tlb_sync() callback
  iommu/io-pgtable: Replace ->tlb_add_flush() with ->tlb_add_page()
  iommu/io-pgtable-arm: Call ->tlb_flush_walk() and ->tlb_flush_leaf()
  iommu/io-pgtable: Hook up ->tlb_flush_walk() and ->tlb_flush_leaf() in drivers
  iommu/io-pgtable: Introduce tlb_flush_walk() and tlb_flush_leaf()
  iommu: Pass struct iommu_iotlb_gather to ->unmap() and ->iotlb_sync()
  s390/zcrypt: new sysfs attributes serialnr and mkvps
  s390/zcrypt: add base code for cca crypto card info support
  s390/zcrypt: move cca misc functions to new code file
  NFC: nxp-nci: Fix recommendation for NFC_NXP_NCI_I2C Kconfig
  NFC: nxp-nci: Clarify on supported chips
  NFC: nxp-nci: Remove 'default n' for the core
  NFC: nxp-nci: Remove unused macro pr_fmt()
  NFC: nxp-nci: Drop comma in terminator lines
  NFC: nxp-nci: Drop of_match_ptr() use
  NFC: nxp-nci: Constify acpi_device_id
  NFC: nxp-nci: Get rid of useless label
  NFC: nxp-nci: Get rid of code duplication in ->probe()
  NFC: nxp-nci: Add GPIO ACPI mapping table
  NFC: nxp-nci: Convert to use GPIO descriptor
  NFC: nxp-nci: Get rid of platform data
  NFC: nxp-nci: Add NXP1001 to the ACPI ID table
  NFC: fix attrs checks in netlink interface
  IB/mlx5: Support per device q counters in switchdev mode
  IB/mlx5: Refactor code for counters allocation
  platform/x86: thinkpad_acpi: Use kmemdup rather than duplicating its implementation
  platform/x86: asus-wmi: Use kmemdup rather than duplicating its implementation
  platform/x86: hp_accel: Add support for HP ZBook 17 G5
  net: hns3: use dev_info() instead of pr_info()
  net: hns3: Add support for using order 1 pages with a 4K buffer
  net: hns3: add interrupt affinity support for misc interrupt
  net: hns3: make hclge_service use delayed workqueue
  net: hns3: add debug messages to identify eth down cause
  net: hns3: modify firmware version display format
  net: hns3: change GFP flag during lock period
  net: hns3: remove upgrade reset level when reset fail
  net: hns3: add a check for get_reset_level
  net: hns3: add reset checking before set channels
  drm/i915: Flush the i915_vm_release before ggtt shutdown
  mac80211: add support for the ADDBA extension element
  mac80211: propagate HE operation info into bss_conf
  mac80211: fix ieee80211_he_oper_size() comment
  cfg80211: fix dfs channels remain DFS_AVAILABLE after ch_switch
  cfg80211: fix duplicated scan entries after channel switch
  cfg80211: refactor cfg80211_bss_update
  soc: renesas: rcar-sysc: Use [] to denote a flexible array member
  dt-bindings: can: rcar_can: Complete documentation for RZ/G2[EM]
  dt-bindings: can: rcar_canfd: document r8a774a1 support
  arm64: dts: renesas: r8a774a1: Add SSIU support for sound
  arm64: dts: renesas: r8a774a1: Use extended audio dmac registers
  arm64: dts: renesas: hihope-common: Add WLAN support
  arm64: dts: renesas: hihope-common: Add BT support
  arm64: dts: renesas: hihope-common: Add PCA9654 I/O expander
  arm64: dts: renesas: hihope-rzg2-ex: Enable CAN interfaces
  arm64: dts: renesas: r8a774a1: Add CANFD support
  arm64: dts: renesas: r8a774a1: Add missing assigned-clocks for CAN[01]
  arm64: dts: renesas: r8a774c0: Add missing assigned-clocks for CAN[01]
  arm64: dts: renesas: r8a77995: Fix register range of display node
  arm64: dts: renesas: r8a77995: Add cpg reset for DU
  arm64: dts: renesas: r8a77990: Add cpg reset for DU
  clk: meson: remove clk input helper
  clk: meson: remove ee input bypass clocks
  clk: meson: clk-regmap: migrate to new parent description method
  clk: meson: meson8b: migrate to the new parent description method
  clk: meson: axg: migrate to the new parent description method
  clk: meson: gxbb: migrate to the new parent description method
  clk: meson: g12a: migrate to the new parent description method
  clk: meson: remove ao input bypass clocks
  clk: meson: axg-aoclk: migrate to the new parent description method
  clk: meson: gxbb-aoclk: migrate to the new parent description method
  clk: meson: g12a-aoclk: migrate to the new parent description method
  clk: meson: axg-audio: migrate to the new parent description method
  drm/i915/selftests: Careful not to flush hang_fini on error setups
  ALSA: aoa: onyx: always initialize register read value
  dmaengine: stm32-mdma: Switch to use device_property_count_u32()
  dmaengine: stm32-dmamux: Switch to use device_property_count_u32()
  dt-bindings: dmaengine: shdma: Rename bindings documentation file
  dt-bindings: dmaengine: Convert Allwinner A31 and A64 DMA to a schema
  dt-bindings: dmaengine: Convert Allwinner A10 DMA to a schema
  dt-bindings: dmaengine: Add YAML schemas for the generic DMA bindings
  dmaengine: ti: edma: Support for polled (memcpy) completion
  dmaengine: ti: edma: Correct the residue calculation (fix for memcpy)
  dmaengine: ti: edma: Clean up the 2x32bit array register accesses
  dmaengine: ti: omap-dma: Improved memcpy polling support
  dmaengine: ti: omap-dma: Readability cleanup in omap_dma_tx_status()
  extcon: axp288: Use for_each_set_bit() in axp288_extcon_log_rsi()
  extcon: axp288: Add missed error check
  fs-verity: add data verification hooks for ->readpages()
  fs-verity: add the hook for file ->setattr()
  fs-verity: add the hook for file ->open()
  fs-verity: add inode and superblock fields
  fs-verity: add Kconfig and the helper functions for hashing
  fs: uapi: define verity bit for FS_IOC_GETFLAGS
  fs-verity: add UAPI header
  fs-verity: add MAINTAINERS file entry
  fs-verity: add a documentation file
  pinctrl: qcom: Pass irqchip when adding gpiochip
  docs/pinctrl: fix compile errors in example code
  gpio: max77650: add MODULE_ALIAS()
  gpio: of: Break out OF-only code
  ALSA: usb-audio: Scarlett Gen 2 mixer interface
  gpio: bd70528: remove redundant assignment to variable ret
  gpio: bd70528: fix spelling misstake "debouce" -> "debounce"
  Input: soc_button_array - add support for newer surface devices
  platform/x86: surfacepro3_button: Fix device check
  unicore: Drop pointless include
  iio: adc: ad7606: Add debug mode for ad7616
  iio: adc: ad7606: Add support for software mode for ad7616
  iio: adc: ad7606: Allow reconfigration after reset
  iio: adc: ad7606: Move spi dependent features to spi file
  iio: adc: ad7606: Move common channel definition to header
  iio: document bindings for mounting matrices
  selftests/bpf: convert send_signal.c to use subtests
  selftests/bpf: convert bpf_verif_scale.c to sub-tests API
  selftests/bpf: add sub-tests support for test_progs
  selftests/bpf: abstract away test log output
  selftest/bpf: centralize libbpf logging management for test_progs
  libbpf: return previous print callback from libbpf_set_print
  selftests/bpf: add test selectors by number and name to test_progs
  selftests/bpf: revamp test_progs to allow more control
  selftests/bpf: prevent headers to be compiled as C code
  iio: common: cros_ec_sensors: Expose cros_ec_sensors frequency range via iio sysfs
  iio: cros_ec_accel_legacy: Add support for veyron-minnie
  iio: cros_ec_accel_legacy: Use cros_ec_sensors_core
  iio: cros_ec_accel_legacy: Fix incorrect channel setting
  iio: cros_ec: Add sign vector in core for backward compatibility
  iio: common: cros_ec_sensors: determine protocol version
  counter/ftm-quaddec: Use device-managed registration API
  iio: imu: st_lsm6dsx: flip irq return logic
  iio: imu: st_lsm6dsx: add i3c basic support for LSM6DSO and LSM6DSR
  iio: magnetometer: mmc35240: Fix a typo in the name of a constant
  iio: pressure: hp03: convert to i2c_new_dummy_device
  iio: light: veml6070: convert to i2c_new_dummy_device
  iio: light: cm36651: convert to i2c_new_dummy_device
  dt-bindings: iio: imu: add bindings for ADIS16460
  iio: imu: Add support for the ADIS16460 IMU
  iio: imu: adis: Add support for SPI transfer cs_change_delay
  iio: mxc4005: Use device-managed APIs
  iio: humidity: Use device-managed APIs
  staging: iio: ad2s1210: Use device-managed API
  iio: maxim_thermocouple: Use device-managed APIs
  iio: make st_sensors drivers use regmap
  iio: move 3-wire spi initialization to st_sensors_spi
  iio:pressure: device settings are set immediately during probe
  iio:magn: device settings are set immediately during probe
  iio:gyro: device settings are set immediately during probe
  iio:accel: device settings are set immediately during probe
  iio:pressure: introduce st_press_get_settings() function
  iio:magn: introduce st_magn_get_settings() function
  iio:gyro: introduce st_gyro_get_settings() function
  iio:accel: introduce st_accel_get_settings() function
  iio:common:st_sensors: add st_sensors_get_settings_index() helper function
  iio: cros_ec: Remove replacing error code with -EIO
  mlxsw: spectrum_flower: Forbid to offload match on reserved TCP flags bits
  mlxsw: spectrum_acl: Track rules that forbid egress block bind
  mlxsw: spectrum_flower: Forbid to offload mirred redirect on egress
  r8169: enable HW csum and TSO
  r8169: remove r8169_csum_workaround
  r8169: implement callback ndo_features_check
  r8169: set GSO size and segment limits
  ipv6: remove printk
  r8169: align setting PME with vendor driver
  mlx4/en_netdev: allow offloading VXLAN over VLAN
  drivers: net: xgene: Move status variable declaration into CONFIG_ACPI block
  net: stmmac: Do not request stmmaceth clock
  net: stmmac: Make MDIO bus reset optional
  net: neigh: remove redundant assignment to variable bucket
  iio: cros_ec: Add calibscale for 3d MEMS
  iio: light: apds9960: Fix a typo
  iio: sca3000: Fix a typo
  IIO: stm32: Remove quadrature related functions from trigger driver
  staging: iio: ad7192: create of_device_id array
  dt-bindings: iio: imu: st_lsm6dsx: add lsm6ds3tr-c device bindings
  iio: imu: st_lsm6dsx: add support to LSM6DS3TR-C
  Documentation: ABI: iio: Add missing newline at end of file
  iio: adc: stm32-adc: add analog switches supply control
  dt-bindings: iio: adc: stm32: add analog switches supply control
  iio: light: stk3310: Add device tree support
  dt-bindings: iio: light: add stk33xx
  dt-bindings: Add vendor prefix for sensortek
  iio: imu: mpu6050: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()
  iio: adc: sc27xx: Replace devm_add_action() followed by failure action with devm_add_action_or_reset()
  iio: adc: sc27xx: Introduce local variable 'struct device *dev'
  MAINTAINERS: add entry for plantower pms7003 driver
  dt-bindings: iio: chemical: pms7003: convert bindings to yaml
  ARM: dts: rockchip: Cleanup style around assignment operator
  autofs_lookup(): hold ->d_lock over playing with ->d_flags
  get rid of autofs_info->active_count
  drm/i915/uc: Fixup kerneldoc after params were flipped and renamed
  crypto: ghash - add comment and improve help text
  padata: purge get_cpu and reorder_via_wq from padata_do_serial
  crypto: bcm - check assoclen for rfc4543/rfc4106
  crypto: ccree - check assoclen for rfc4543
  padata: Replace delayed timer with immediate workqueue in padata_reorder
  crypto: aegis - fix badly optimized clang output
  crypto: ccp - Replace dma_pool_alloc + memset with dma_pool_zalloc
  crypto: caam/qi2 - Increase napi budget to process more caam responses
  hwrng: mxc-rnga - use devm_platform_ioremap_resource() to simplify code
  hwrng: imx-rngc - use devm_platform_ioremap_resource() to simplify code
  crypto: ccp - Reduce maximum stack usage
  i3c: move i3c_device_match_id to device.c and export it
  mips: vdso: Fix flip/flop vdso building bug
  mips: vdso: Fix source path
  drm/i915/tgl: update ddi/tc clock_off bits
  drm/i915/tgl: select correct bit for port select
  drm/i915/tgl: skip setting PORT_CL_DW12_* on initialization
  sis900: add support for ethtool's EEPROM dump
  staging: octeon: Fix build failure due to typo.
  MAINTAINERS: add entries for some documentation scripts
  drm/i915/uc: Remove redundant RSA offset definition
  drm/i915/uc: Remove redundant ucode offset definition
  drm/i915/uc: Remove redundant header_offset/size definitions
  drm/mst: Fix sphinx warnings in drm_dp_msg_connector register functions
  drm/rockchip: Use drm_atomic_helper_commit_tail_rpm
  drm/rockchip: Don't fully disable vop on self refresh
  drm/rockchip: Use vop_win in vop_win_disable instead of vop_win_data
  drm/rockchip: Use the helpers for PSR
  drm/rockchip: Check for fast link training before enabling psr
  drm/panel: jh057n00900: Use drm_panel_{unprepare, disable} consistently
  drm/panel: jh057n00900: Print error code on all DRM_DEV_ERROR()s
  drm/panel: jh057n00900: Move mipi_dsi_dcs_set_display_off to disable()
  drm/panel: jh057n00900: Move panel DSI init to enable()
  drm/i915/gt: Add to timeline requires the timeline mutex
  drm/i915/uc: Don't sanitize guc_log_level modparam
  drm/i915: Do not rely on for loop caching the mask
  ASoC: Intel: Skylake: Remove static table index when parsing topology
  ASoC: codec2codec: fix missing return of error return code
  mm/hmm: remove hmm_range vma
  mm/hmm: remove hugetlbfs check in hmm_vma_walk_pmd
  video: amba-clcd: Spout an error if of_get_display_timing() gives an error
  drm: panel-lvds: Spout an error if of_get_display_timing() gives an error
  video: of: display_timing: Don't yell if no timing node is present
  video: of: display_timing: Add of_node_put() in of_get_display_timing()
  nl80211: Include wiphy address setup in NEW_WIPHY
  nl80211: document uapi for CMD_FRAME_WAIT_CANCEL
  mac80211: implement HE support for mesh
  mac80211: add IEEE80211_KEY_FLAG_GENERATE_MMIE to ieee80211_key_flags
  mac80211: HE: add Spatial Reuse element parsing support
  mac80211: add struct ieee80211_tx_status support to ieee80211_add_tx_radiotap_header
  drm/i915/perf: Initialise err to 0 before looping over ce->engines
  mm/hmm: merge hmm_range_snapshot into hmm_range_fault
  mm/hmm: replace the block argument to hmm_range_fault with a flags value
  mm/hmm: a few more C style and comment clean ups
  mm/hmm: replace hmm_update with mmu_notifier_range
  ALSA: i2c: ak4xxx-adda: Fix a possible null pointer dereference in build_adc_controls()
  ALSA: hda - Show the fatal CORB/RIRB error more clearly
  drm/panel: simple: Add support for Sharp LD-D5116Z01B panel
  ASoC: sunxi: fix a sound binding broken reference
  ASoC: ti: davinci-mcasp: Support for correct symmetric sample bits
  crypto: ccp - Include the module name in system log messages
  crypto: Remove orphan tools/crypto directory
  crypto: cavium/nitrox - Add support for loading asymmetric crypto firmware
  crypto: ccp - Add a module parameter to control registration for DMA
  crypto: ccp - module parameter to limit the number of enabled CCPs
  crypto: ccp - Add a module parameter to specify a queue count
  crypto: ccp - Make CCP debugfs support optional
  crypto: user - make NETLINK_CRYPTO work inside netns
  crypto: inside-secure -reduce hash byte counters to 64 bits
  crypto: inside-secure - add support for authenc(hmac(sha*),rfc3686(ctr(aes))) suites
  crypto: inside-secure - added support for rfc3686(ctr(aes))
  dt-bindings: panel: Add Sharp LD-D5116Z01B
  drm/panel: check failure cases in the probe func
  ARM: dts: gemini: Mount root from mtdblock3
  ARM: dts: gemini: Switch to redboot partition parsing
  ARM: dts: gemini: Fix up confused pin settings
  mac80211: propagate struct ieee80211_tx_status into ieee80211_tx_monitor()
  mac80211: add xmit rate to struct ieee80211_tx_status
  mac80211: add support for parsing ADDBA_EXT IEs
  cfg80211: give all multi-BSSID BSS entries the same timestamp
  cfg80211: don't parse MBSSID if transmitting BSS isn't created
  cfg80211: clean up cfg80211_inform_single_bss_frame_data()
  cfg80211: no need to check return value of debugfs_create functions
  mac80211: AMPDU handling for rekeys with Extended Key ID
  mac80211: Simplify Extended Key ID API
  spi: sprd: Change the hwlock support to be optional
  mac80211_hwsim: Extended Key ID API update
  spi: sprd: adi: Change hwlock to be optional
  spi: sprd: adi: Add a reset reason for watchdog mode
  spi: sprd: adi: Add a reset reason for factory test mode
  spi: sprd: adi: Add a reset reason for TOS panic
  spi: sprd: adi: Remove redundant address bits setting
  mac80211: add tx dequeue function for process context
  lib80211: use crypto API ccm(aes) transform for CCMP processing
  mac80211: remove unused and unneeded remove_sta_debugfs callback
  iwlwifi: mvm: remove unused .remove_sta_debugfs callback
  iwlwifi: dvm: no need to check return value of debugfs_create functions
  mac80211: pass the vif to cancel_remain_on_channel
  mac80211_hwsim: Fix a typo in the name of function 'mac80211_hswim_he_capab()'
  drm/i915/guc: init submission structures as part of guc_init
  dt-bindings: opp: qcom-nvmem: Make speedbin related properties optional
  dt-bindings: opp: Re-organise kryo cpufreq to use it for other nvmem based qcom socs
  PM / OPP: Correct Documentation about library location
  opp: of: Support multiple suspend OPPs defined in DT
  dt-bindings: opp: Support multiple opp-suspend properties
  opp: core: add regulators enable and disable
  opp: Don't decrement uninitialized list_kref
  opp: Add dev_pm_opp_find_level_exact()
  opp: Return genpd virtual devices from dev_pm_opp_attach_genpd()
  opp: Not all power-domains are scalable
  MIPS: BCM47XX: Add support for Netgear R6200 V1
  crypto: inside-secure - add support for authenc(hmac(sha1),cbc(des3_ede))
  crypto: ux500 - Use spinlock_t instead of struct spinlock
  crypto: drivers - Use kmemdup rather than duplicating its implementation
  crypto: tcrypt - add a speed test for AEGIS128
  crypto: aegis128 - provide a SIMD implementation based on NEON intrinsics
  crypto: aegis128 - add support for SIMD acceleration
  crypto: aegis - avoid prerotated AES tables
  crypto: aegis128 - drop empty TFM init/exit routines
  crypto: aegis128l/aegis256 - remove x86 and generic implementations
  crypto: morus - remove generic and x86 implementations
  crypto: testmgr - add tests for lzo-rle
  crypto: arm/aes-scalar - unexport en/decryption routines
  crypto: arm64/aes-cipher - switch to shared AES inverse Sbox
  crypto: arm/aes-cipher - switch to shared AES inverse Sbox
  crypto: arm64/aes-neon - switch to shared AES Sboxes
  crypto: lib/aes - export sbox and inverse sbox
  crypto: aes-generic - unexport last-round AES tables
  crypto: chelsio - replace AES cipher calls with library calls
  crypto: ccp - move to AES library for CMAC key derivation
  crypto: amcc - switch to AES library for GCM key derivation
  bluetooth: switch to AES library
  crypto: arm/ghash - provide a synchronous version
  crypto: arm/aes-neonbs - provide a synchronous version of ctr(aes)
  crypto: arm/aes-ce - provide a synchronous version of ctr(aes)
  crypto: arm/aes - use native endiannes for key schedule
  crypto: arm64/aes-ce-cipher - use AES library as fallback
  crypto: aes - move sync ctr(aes) to AES library and generic helper
  crypto: ctr - add helper for performing a CTR encryption walk
  crypto: aes-generic - drop key expansion routine in favor of library version
  crypto: arm64/aes-ce - switch to library version of key expansion routine
  crypto: arm64/aes-neonbs - switch to library version of key expansion routine
  crypto: arm64/aes-ccm - switch to AES library
  crypto: arm/aes-neonbs - switch to library version of key expansion routine
  crypto: arm64/ghash - switch to AES library
  crypto: safexcel/aes - switch to library version of key expansion routine
  crypto: cesa/aes - switch to library version of key expansion routine
  crypto: padlock/aes - switch to library version of key expansion routine
  crypto: x86/aes - drop scalar assembler implementations
  crypto: x86/aes-ni - switch to generic for fallback and key routines
  crypto: aes - create AES library based on the fixed time AES code
  crypto: aes/fixed-time - align key schedule with other implementations
  crypto: aes - rename local routines to prevent future clashes
  crypto: arm/aes-ce - cosmetic/whitespace cleanup
  crypto: inside-secure - add support for 0 length HMAC messages
  crypto: inside-secure - add support for arbitrary size hash/HMAC updates
  crypto: inside-secure - let HW deal with initial hash digest
  crypto: inside-secure: back out parts of earlier HMAC update workaround
  crypto: inside-secure - fix EINVAL error (buf overflow) for AEAD decrypt
  crypto: inside-secure - fix scatter/gather list to descriptor conversion
  crypto: inside-secure - fix incorrect skcipher output IV
  crypto: inside-secure - silently return -EINVAL for input error cases
  crypto: inside-secure - keep ivsize for DES ECB modes at 0
  crypto: ccree - notify TEE on FIPS tests errors
  crypto: fips - add FIPS test failure notification chain
  crypto: ccree - account for TEE not ready to report
  crypto: ccree - drop legacy ivgen support
  crypto: ccree - fix spelling mistake "configration" -> "configuration"
  mips: Add clock_gettime64 entry point
  mips: Add clock_getres entry point
  mips: Add support for generic vDSO
  selftests/bpf: support BPF_FLOW_DISSECTOR_F_STOP_AT_ENCAP
  bpf/flow_dissector: support ipv6 flow_label and BPF_FLOW_DISSECTOR_F_STOP_AT_FLOW_LABEL
  selftests/bpf: support BPF_FLOW_DISSECTOR_F_PARSE_1ST_FRAG
  tools/bpf: sync bpf_flow_keys flags
  bpf/flow_dissector: support flags in BPF_PROG_TEST_RUN
  bpf/flow_dissector: document flags
  bpf/flow_dissector: pass input flags to BPF flow dissector program
  selftests/bpf: Add selftests for bpf_perf_event_output
  bpf: Allow bpf_skb_event_output for a few prog types
  net: mvneta: use devm_platform_ioremap_resource() to simplify code
  drm/i915/uc: Reorder params in intel_uc_fw_fetch
  drm/i915: Capture vma contents outside of spinlock
  tipc: fix changeover issues due to large packet
  tipc: optimize link synching mechanism
  drm: Switch to use DEVFREQ_GOV_SIMPLE_ONDEMAND constant
  drm/panfrost: Export all GPU feature registers
  drm/amd/display: Implement MST Aux device registration
  drm/amd/display: Use connector kdev as aux device parent
  drm/nouveau: Use connector kdev as aux device parent
  ARM: dts: rockchip: add veyron-tiger board
  ARM: dts: rockchip: add veyron-fievel board
  dt-bindings: ARM: dts: rockchip: Add bindings for rk3288-veyron-{fievel,tiger}
  drm/dp_mst: Enable registration of AUX devices for MST ports
  ARM: dts: rockchip: consolidate veyron panel and backlight settings
  drm/i915/uc: Move uc firmware layout definitions to dedicated file
  drm/i915/uc: Update drawing for firmware layout
  drm/i915: Fix GuC documentation links
  ARM: dts: rockchip: move rk3288-veryon display settings into a separate file
  ARM: dts: rockchip: Limit WiFi TX power on rk3288-veyron-jerry
  drm/dp: Use non-cyclic idr
  arm64: dts: rockchip: Add PWM fan for RockPro64
  mm/hmm: comment on VM_FAULT_RETRY semantics in handle_mm_fault
  mm/hmm: remove the legacy hmm_pfn_* APIs
  nouveau: return -EBUSY when hmm_range_wait_until_valid fails
  clk: rockchip: Fix -Wunused-const-variable in rv1108 clk driver
  ptp: ptp_dte: remove redundant dev_err message
  mlxsw: spectrum_router: Increase scale of IPv6 nexthop groups
  mlxsw: spectrum: Expose KVD size for Spectrum-2
  edac: altera: Move Stratix10 SDRAM ECC to peripheral
  net: sfc: falcon: convert to i2c_new_dummy_device
  leds: lm3697: Switch to use fwnode_property_count_uXX()
  leds: lm36274: Switch to use fwnode_property_count_uXX()
  leds: lm3532: Switch to use fwnode_property_count_uXX()
  leds: an30259a: Use generic support for composing LED names
  dt-bindings: an30259a: Add function and color properties
  leds: gpio: Use generic support for composing LED names
  dt-bindings: leds-gpio: Add function and color properties
  leds: as3645a: Use generic support for composing LED names
  dt-bindings: as3645a: Add function and color properties
  leds: aat1290: Use generic support for composing LED names
  dt-bindings: aat1290: Add function and color properties
  leds: cr0014114: Use generic support for composing LED names
  dt-bindings: cr0014114: Add function and color properties
  leds: lm3601x: Use generic support for composing LED names
  dt-bindings: lm36010: Add function and color properties
  leds: lm3692x: Use generic support for composing LED names
  dt-bindings: lm3692x: Add function and color properties
  leds: lp8860: Use generic support for composing LED names
  dt-bindings: lp8860: Add function and color properties
  leds: lt3593: Use generic support for composing LED names
  dt-bindings: lt3593: Add function and color properties
  leds: sc27xx-blt: Use generic support for composing LED names
  dt-bindings: sc27xx-blt: Add function and color properties
  leds: core: Add support for composing LED class device names
  dt-bindings: leds: Add properties for LED name construction
  dt-bindings: leds: Add LED_FUNCTION definitions
  dt-bindings: leds: Add LED_COLOR_ID definitions
  leds: class: Improve LED and LED flash class registration API
  qed*: Change dpi_addr to be denoted with __iomem
  ASoC: codec2codec: deal with params when necessary
  ASoC: codec2codec: name link using stream direction
  ASoC: codec2codec: run callbacks in order
  MAINTAINERS: update EDAC entry to reflect current tree and maintainers
  IB/mlx5: Add CREATE_PSV/DESTROY_PSV for devx interface
  RDMA/core: Support netlink commands in non init_net net namespaces
  RDMA/mlx4: Annotate boolean arguments as bool and not int
  RDMA/mlx4: Separate creation of RWQ and QP
  IB/usnic: Use dev_get_drvdata
  RDMA: Make most headers compile stand alone
  RDMA/qedr: Remove Unneeded variable rc
  RDMA/qib: Unneeded variable ret
  regulator: act8865: fix ptr_ret.cocci warnings
  ASoC: cs47l92: Add codec driver for Cirrus Logic CS47L92
  ASoC: cs47l15: Add codec driver for Cirrus Logic CS47L15
  ASoC: wm_adsp: Allow bus error handler to be called directly
  ASoC: SOF: Makefile - fix the top-level kernel module names (add snd- prefix)
  media: v4l2-core: Cleanup Makefile
  media: staging: hantro: avoid future namespace collisions
  media: hantro: Support RK3399 VP8 decoding
  media: hantro: Move VP8 common code
  usbip: tools: fix GCC8 warning for strncpy
  media: hantro: Add helpers to prepare/finish a run
  media: hantro: Add hantro_get_{src, dst}_buf() helpers
  media: hantro: Constify the control array
  media: hantro: Simplify the controls creation logic
  media: hantro: Set DMA max segment size
  media: staging: media: hantro: Remove call to memset after dma_alloc_coherent
  ALSA: echoaudio: Replace kmalloc + memcpy with kmemdup
  media: Don't default-enable "ancillary driver autoselect" if EMBEDDED
  media: rcar-vin: Always setup controls when opening video device
  media: rcar-vin: Add support for RGB formats with alpha component
  media: rcar-vin: Add control for alpha component
  media: rcar-vin: Rename VNDMR_DTMD_ARGB1555 to VNDMR_DTMD_ARGB
  media: v4l2-dev: fix WARN_ON(!vdev->device_caps)
  drm/via: drop use of drmP.h
  drm/via: make via_drv.h self-contained
  drm/via: copy DRM_WAIT_ON as VIA_WAIT_ON and use it
  drm/via: drop use of DRM(READ|WRITE) macros
  RDMA/hns: Refactor eq table init for hip08
  RDMA/hns: Refactor hem table mhop check and calculation
  RDMA/hns: Package for hns_roce_rereg_user_mr function
  RDMA/hns: Optimize hns_roce_mhop_alloc function.
  RDMA/hns: optimize the duplicated code for qpc setting flow
  RDMA/hns: Use a separated function for setting extend sge paramters
  RDMA/hns: Refactor for hns_roce_v2_modify_qp function
  RDMA/hns: Refactor the code of creating srq
  RDMA/hns: Package the flow of creating cq
  IB/mlx5: Avoid unnecessary typecast
  RDMA/core: Annotate destroy of mutex to ensure that it is released as unlocked
  media: ipu3-cio2: Parse information from firmware without using callbacks
  media: ipu3-cio2: Proceed with notifier init even if there are no subdevs
  media: ipu3-cio2: Clean up notifier's subdev list if parsing endpoints fails
  media: v4l2-async: Safely clean up an uninitialised notifier
  media: omap3isp: Rework OF endpoint parsing
  arm64: dts: qcom: sdm845: remove macro from unit name
  arm64: dts: qcom: sdm845-cheza: remove macro from unit name
  arm64: dts: qcom: sdm845: remove unit name for thermal trip points
  arm64: dts: qcom: sdm845: remove unnecessary properties for dsi nodes
  arm64: dts: qcom: sdm845: Add unit name to soc node
  arm64: dts: sdm845: Add video nodes
  x86/apic/x2apic: Implement IPI shorthands support
  x86/apic/flat64: Remove the IPI shorthand decision logic
  x86/apic: Share common IPI helpers
  x86/apic: Remove the shorthand decision logic
  x86/smp: Enhance native_send_call_func_ipi()
  x86/smp: Move smp_function_call implementations into IPI code
  x86/apic: Provide and use helper for send_IPI_allbutself()
  x86/apic: Add static key to Control IPI shorthands
  x86/apic: Move no_ipi_broadcast() out of 32bit
  x86/apic: Add NMI_VECTOR wait to IPI shorthand
  x86/apic: Remove dest argument from __default_send_IPI_shortcut()
  x86/hotplug: Silence APIC and NMI when CPU is dead
  x86/cpu: Move arch_smt_update() to a neutral place
  x86/apic/uv: Make x2apic_extra_bits static
  x86/apic: Consolidate the apic local headers
  x86/apic: Move apic_flat_64 header into apic directory
  x86/apic: Move ipi header into apic directory
  x86/apic: Cleanup the include maze
  x86/apic: Move IPI inlines into ipi.c
  x86/apic: Make apic_pending_intr_clear() more robust
  x86/apic: Soft disable APIC before initializing it
  x86/apic: Invoke perf_events_lapic_init() after enabling APIC
  x86/kgbd: Use NMI_VECTOR not APIC_DM_NMI
  x86/reboot: Always use NMI fallback when shutdown via reboot vector IPI fails
  sched/core: Silence a warning in sched_init()
  sched/core: Fix CPU controller for !RT_GROUP_SCHED
  sched/core: Prevent race condition between cpuset and __sched_setscheduler()
  rcu/tree: Call setschedule() gp ktread to SCHED_FIFO outside of atomic region
  cgroup/cpuset: Change cpuset_rwsem and hotplug lock order
  cgroup/cpuset: Convert cpuset_mutex to percpu_rwsem
  sched/deadline: Fix bandwidth accounting at all levels after offline migration
  cpusets: Rebuild root domain deadline accounting information
  sched/core: Streamle calls to task_rq_unlock()
  sched/topology: Add partition_sched_domains_locked()
  sched/fair: Introduce fits_capacity()
  sched/isolation: Prefer housekeeping CPU in local node
  sched/stats: Fix unlikely() use of sched_info_on()
  sched/core: Convert get_task_struct() to return the task
  sched/fair: Fall back to sched-idle CPU if idle CPU isn't found
  sched/fair: Start tracking SCHED_IDLE tasks count in cfs_rq
  time/tick-broadcast: Fix tick_broadcast_offline() lockdep complaint
  sched/fair: Fix imbalance due to CPU affinity
  sched/fair: Change task_numa_work() storage to static
  sched/fair: Move task_numa_work() init to init_numa_balancing()
  sched/fair: Move init_numa_balancing() below task_numa_work()
  cpu/hotplug: Cache number of online CPUs
  cpumask: Implement cpumask_or_equal()
  smp/hotplug: Track booted once CPUs in a cpumask
  locking/lockdep: Report more stack trace statistics
  locking/lockdep: Reduce space occupied by stack traces
  stacktrace: Constify 'entries' arguments
  locking/lockdep: Make it clear that what lock_class::key points at is not modified
  fs: kernfs: Fix possible null-pointer dereferences in kernfs_path_from_node_locked()
  kernfs: fix potential null pointer dereference
  dmaengine: dma-jz4780: Break descriptor chains on JZ4740
  mfd: davinci_voicecodec: Remove pointless #include
  mfd: max77620: Add of_node_put() before return
  ASoC: ti: davinci-mcasp: Improve serializer handling in multi AXR setups
  ASoC: ti: davinci-mcasp: Add support for RIGHT_J format
  ASoC: pcm3168a: Allow all channels in case of parallel DIN/DOUT setup
  clk: meson: g12a: fix hifi typo in mali parent_names
  misc: fastrpc: fix memory leak when out of memory
  staging: rtl8192*: display ESSIDs using %pE
  docs: ABI: remove extension from sysfs-class-mic.txt
  mic: avoid statically declaring a 'struct device'.
  fpga: dfl: use driver core functions, not sysfs ones.
  mtd: rawnand: ingenic: Add of_node_put() before return
  mtd: rawnand: meson: Add of_node_put() before return
  mtd: rawnand: tango: Add of_node_put() before return
  mtd: rawnand: oxnas: Add of_node_put()
  mtd: rawnand: vf610: Add of_node_put() before goto
  mtd: rawnand: stm32_fmc2: avoid warnings when building with W=1 option
  drm/bridge: sii902x: add audio graph card support
  media: v4l2-async: Add v4l2_async_notifier_add_fwnode_remote_subdev
  media: v4l2-async: Get fwnode reference when putting it to the notifier's list
  media: davinci-vpif: Don't dereference endpoint after putting it, fix refcounting
  locks: Fix procfs output for file leases
  driver core: Remove device link creation limitation
  char: ppdev: Fix a possible null-pointer dereference in pp_release()
  intel_th: msu: Preserve pre-existing buffer configuration
  intel_th: msu: Prevent freeing buffers while locked windows exist
  intel_th: msu: Get rid of the window size limit
  intel_th: msu-sink: An example msu buffer "sink"
  intel_th: msu: Introduce buffer interface
  media: staging/intel-ipu3: Use dev_get_drvdata where possible
  media: v4l2-fwnode: Switch to use fwnode_property_count_uXX()
  media: pci: Use dev_get_drvdata where possible
  media: ov2680: fix a typo in a function name
  media: Add support for Cadence CSI2TX 2.1
  media: Fix Lane mapping in Cadence CSI2TX
  media: Add lane checks for Cadence CSI2TX
  media: dt-bindings: Update bindings for Cadence CSI2TX version 2.1
  media: i2c: ov5640: Fix the order for enabling regulators
  media: i2c: ov5640: Check for devm_gpiod_get_optional() error
  media: ov5645: Use regulator_bulk() functions
  media: ov5645: Remove unneeded regulator_set_voltage()
  media: vivid: fix typo: use -> user
  media: staging: davinci: remove vpfe driver
  media: staging/media/bcm2048: remove driver
  media: vivid: fix device init when no_error_inj=1 and fb disabled
  media: am437x: remove unused struct vpfe_pixel_format
  media: davinci/vpfe_capture.c: drop unused format descriptions
  media: sh_veu: convert to struct v4l2_fh
  media: v4l2-dev/ioctl: require non-zero device_caps, verify sane querycap results
  media: marvell-ccic: mmp: add MODULE_DEVICE_TABLE
  media: v4l: ctrls: Add debug messages
  dmaengine: tegra-apb: Support per-burst residue granularity
  media: hdpvr: Add device num check and handling
  media: staging: media: cedrus: Fix misuse of GENMASK macro
  media: rcar-vin: Centralize black listing of pixel formats
  media: rcar-vin: Clean up correct notifier in error path
  media: dt: bindings: tegra-vde: Document new optional IOMMU property
  ARM: dts: stm32: enable FMC2 NAND controller on stm32mp157c-ev1
  ARM: dts: stm32: add FMC2 NAND controller pins muxing on stm32mp157c-ev1
  ARM: dts: stm32: add FMC2 NAND controller support on stm32mp157c
  drm/bridge: sii902x: make audio mclk optional
  dt-bindings: display: sii902x: Change audio mclk binding
  drm/bridge: sii902x: fix missing reference to mclk clock
  drm/stm: attach gem fence to atomic state
  ARM: dts: stm32: activate dma for qspi on stm32mp157
  dt-bindings: usb: mtu3: fix typo of DMA clock name
  usb: chipidea: udc: remove redundant assignment to variable retval
  usb: host: xhci-hub: fix extra endianness conversion
  usb: host: Remove call to memset after dma_alloc_coherent
  usb: host: oxu210hp-hcd: squash oxu210hp.h into oxu210hp-hcd.c
  usb: host: oxu210hp-hcd: remove include/linux/oxu210hp.h
  usb: typec: mux: Switch to use fwnode_property_count_uXX()
  usb: typec: tcpm: Switch to use fwnode_property_count_uXX()
  usb: dwc3: Switch to use device_property_count_u32()
  usb: dwc2: Switch to use device_property_count_u32()
  USB: core: hcd-pci: Use dev_get_drvdata where possible
  MAINTAINERS: Remove tinydrm entry
  drm/tinydrm: Move mipi-dbi
  drm/tinydrm/mipi-dbi: Select DRM_KMS_HELPER
  drm/tinydrm/Kconfig: drivers: Select BACKLIGHT_CLASS_DEVICE
  drm/tinydrm/mipi-dbi: Remove CMA helper dependency
  drm/tinydrm: Split struct mipi_dbi in two
  drm/tinydrm: Rename remaining variable mipi -> dbidev
  drm/tinydrm: Rename variable mipi -> dbi
  drm/tinydrm/mipi-dbi: Move cmdlock mutex init
  Input: allow drivers specify timestamp for input events
  misc: alcor_pci: Use dev_get_drvdata
  misc: eeprom: max6875: convert to i2c_new_dummy_device
  misc: eeprom: ee1004: convert to i2c_new_dummy_device
  staging: rtl8723bs: hal: Remove unneeded variable pU1Tmp
  staging: rtl8723bs: Remove unused function prototype ODM_SetAntenna()
  staging: rtl8723bs: Replace function ODM_TXPowerTrackingCheck()
  staging: rtl8723bs: Replace function odm_TXPowerTrackingInit()
  staging: rtl8723bs: Replace function beacon_timing_control()
  staging: rtl8723bs: hal: Replace function rtl8723b_set_ap_wowlan_cmd()
  staging: rtl8723bs: hal: Replace function rtl8723b_set_wowlan_cmd()
  staging: rtl8723bs: hal: Replace function PHY_GetTxPowerIndex()
  staging: rtl8723bs: hal: Replace function PHY_SetTxPowerIndex()
  staging: rtl8723bs: rtw_pwrctrl: Change true/false checks
  drivers/staging/rtl8192u: fix indentation issue, remove extra tab
  staging: mt7621-pci: avoid use 'err' local variable
  staging: rtl8192e: remove set but not used variable 'payload '
  staging: rtl8723bs: hal: remove redundant assignment to variable n
  staging: rtl8723bs: remove unused file hal_phy.c
  staging: rtl8723bs: core: Remove Unneeded variable ret
  staging: rtl8723bs: os_dep: change return type of rtw_suspend_ap_wow
  staging: rtl8723bs: remove set but not used variable 'cck_highpwr'
  staging: rtl8712: r8712_free_recvframe(): Change return type
  staging: rtl8712: r8712_init_recvbuf(): Change return type
  staging: rtl8712: r8712_set_802_11_add_wep(): Change return values
  staging: rtl8712: init_mp_priv(): Change return values
  staging: rtl8712: r8712_register_cmd_alive(): Change return values
  staging: rtl8712: r8712_set_key(): Change return values
  staging: rtl8712: r8712_set_auth(): Change return values
  staging: rtl8712: r8712_init_mlme_priv(): Change return values
  staging: rtl8712: Merge memcpy + be16_to_cpus to get_unaligned_be16
  staging: rtl8712: recv_linux.c: Align * on block comment
  staging: wilc1000: Merge memcpy + le32_to_cpus to get_unaligned_le32
  staging: comedi: daqboard2000: Remove function db2k_initialize_dac()
  staging: android: ion: Remove unused rbtree for ion_buffer
  drm/i915/uc: Unify uC firmware upload
  drm/i915/uc: Plumb the gt through fw_upload
  drm/i915/huc: Copy huc rsa only once
  drm/i915/uc: Move xfer rsa logic to common function
  drm/i915/uc: Unify uc_fw status tracking
  drm/i915/uc: Unify uC FW selection
  drm/i915: Fix handling of non-supported uC
  drm/i915/uc: Unify uC platform check
  autofs: simplify get_next_positive_...(), get rid of trylocks
  remoteproc: qcom: Move glink_ssr notification after stop
  mlx4: avoid large stack usage in mlx4_init_hca()
  qed: reduce maximum stack frame size
  r8169: improve rtl_set_rx_mode
  net/ixgbevf: fix a compilation error of skb_frag_t
  selftests: mlxsw: Fix typo in qos_mc_aware.sh
  dt-bindings: fpga: Consolidate bridge properties
  qlge: Fix build error without CONFIG_ETHERNET
  fpga: altera-pr-ip: Make alt_pr_unregister function void
  r8169: fix a typo in a comment
  fpga: altera-cvp: Fix function definition argument
  e1000e: add workaround for possible stalled packet
  igc: Add more SKUs for i225 device
  igc: Update the MAC reset flow
  igc: Remove the unused field from a device specification structure
  igc: Remove the polarity field from a PHY information structure
  ARM: bcm283x: Reduce register ranges for UART, SPI and I2C
  RDMA/hns: Fix comparison of unsigned long variable 'end' with less than zero
  RDMA/mlx4: Untag user pointers in mlx4_get_umem_mr
  PCI: Use devm_add_action_or_reset()
  Build fixes for skb_frag_size conversion
  sfc-falcon: Use dev_get_drvdata where possible
  sfc: Use dev_get_drvdata where possible
  forcedeth: Use dev_get_drvdata where possible
  net: marvell: Use dev_get_drvdata where possible
  ASoC: Intel: Skylake: Cleanup skl_module_cfg declaration
  ASoC: Intel: Skylake: Make MCPS and CPS params obsolete
  ASoC: Intel: Skylake: Do not disable FW notifications
  ASoC: Intel: Skylake: Remove memory available check
  ASoC: Intel: Skylake: Remove MCPS available check
  ASoC: Intel: Skylake: Combine snd_soc_skl_ipc and snd_soc_skl
  ASoC: Intel: Skylake: Merge skl_sst and skl into skl_dev struct
  drivers: net: xgene: Remove acpi_has_method() calls
  watchdog: ath79_wdt: fix a typo in the name of a function
  spi: dw-pci: Use dev_get_drvdata
  ASoC: wm8955: Fix a typo in 'wm8995_pll_factors()' function name
  lib/timerqueue: Rely on rbtree semantics for next timer
  x86/crash: Remove unnecessary comparison
  ALSA: line6: sizeof (byte) is always 1, use that fact.
  x86/mm: Avoid redundant interrupt disable in load_mm_cr4()
  iommu: Introduce iommu_iotlb_gather_add_page()
  iommu: Introduce struct iommu_iotlb_gather for batching TLB flushes
  iommu/io-pgtable: Rename iommu_gather_ops to iommu_flush_ops
  iommu/io-pgtable-arm: Remove redundant call to io_pgtable_tlb_sync()
  iommu: Remove empty iommu_tlb_range_add() callback from iommu_ops
  mwifiex: use eth_broadcast_addr() to assign broadcast address
  rtlwifi: remove assignment to itself
  brcmfmac: don't net_ratelimit() CONSOLE messages on firmware crash
  libertas_tf: Use correct channel range in lbtf_geo_init
  rtw88: debug: dump tx power indexes in use
  rtlwifi: btcoex: fix issue possible condition with no effect (if == else)
  mt7601u: use params->ssn value directly
  brcmfmac: remove unnecessary strlcpy() upon obtaining "ver" iovar
  brcmfmac: simply remove flowring if bus is down
  brcmfmac: avoid firmware commands when bus is down
  brcmfmac: clear events in brcmf_fweh_detach() will always fail
  brcmfmac: avoid firmware command in brcmf_netdev_open() when bus is down
  brcmfmac: change the order of things in brcmf_detach()
  Revert "brcmfmac: fix NULL pointer derefence during USB disconnect"
  brcmfmac: allow 160MHz in custom regulatory rules
  brcmfmac: enable DFS_OFFLOAD extended feature if supported
  brcmfmac: add 160MHz in chandef_to_chanspec()
  rtw88: pci: Use DMA sync instead of remapping in RX ISR
  rtw88: pci: Rearrange the memory usage for skb in RX ISR
  libertas: Add missing sentinel at end of if_usb.c fw_table
  rtw88: Fix misuse of GENMASK macro
  wl3501_cs: remove redundant variable rc
  libertas: remove redundant assignment to variable ret
  rtl8xxxu: Fix wifi low signal strength issue of RTL8723BU
  rt2x00: no need to check return value of debugfs_create functions
  rt2x00usb: remove unnecessary rx flag checks
  rsi: return explicit error values
  extcon: sm5502: Add IRQ_ONESHOT
  extcon: gpio: Request reasonable interrupts
  extcon: arizona: Update binding example to use available defines
  extcon: fsa9480: Support the FSA880 variant
  drm/i915/guc: Set GuC init params only once
  extcon: extcon-max77843: convert to i2c_new_dummy_device
  Input: cyapa - switch to using devm_device_add_group()
  Input: elan_i2c - switch to using devm_add_action_or_reset()
  Input: elan_i2c - switch to using devm_device_add_groups()
  Input: synaptics-rmi4 - remove the exporting of rmi_2d_sensor_set_input_params
  extcon: arizona: Switch to use device_property_count_u32()
  Input: ts4800-ts - use devm_platform_ioremap_resource()
  Input: sun4i-ts - use devm_platform_ioremap_resource()
  Input: mxs-lradc-ts - use devm_platform_ioremap_resource()
  Input: fsl-imx25-tcq - use devm_platform_ioremap_resource()
  can: Add SPDX license identifiers for CAN subsystem
  can: remove obsolete empty ioctl() handler
  can: ti_hecc: use timestamp based rx-offloading
  can: flexcan: add support for DT property 'wakeup-source'
  dt-bindings: can: flexcan: add can wakeup property
  can: flexcan: add support for PE clock source select
  dt-bindings: can: flexcan: add PE clock source property to device tree
  can: flexcan: implement can Runtime PM
  can: Kconfig: correct history of the CAN protocol
  can: xilinx_can: clean up indentation issue
  can: xilinx_can: Add support for CANFD FD frames
  can: xilinx_can: Add cantype parameter in xcan_devtype_data struct
  can: xilinx_can: Fix flags field initialization for axi can and canps
  can: xilinx_can: Fix kernel doc warnings
  can: xilinx_can: Fix style issues
  can: tcan4x5x: Add tcan4x5x driver to the kernel
  dt-bindings: can: tcan4x5x: Add DT bindings for TCAN4x5X driver
  can: m_can: Rename m_can_priv to m_can_classdev
  can: m_can: Create a m_can platform framework
  can: m_can: Fix checkpatch issues on existing code
  can: mark expected switch fall-throughs
  can: kvaser_pciefd: Add driver for Kvaser PCIEcan devices
  can: kvaser_usb: Use struct_size() in alloc_candev()
  can: sja1000: f81601: add Fintek F81601 support
  arm64: dts: allwinner: h6: Enable IR on H6 boards
  arm64: dts: allwinner: h6: Add IR receiver node
  arm64: dts: allwinner: a64: Enable IR on Orange Pi Win
  arm64: dts: allwinner: a64: Add IR node
  ARM: dts: sunxi: Prefer A31 bindings for IR
  ARM: dts: sunxi: Prefer A31 bindings for IR
  arm64: defconfig: Enable IR SUNXI option
  drm/mgag200: Don't unpin the current cursor image's buffer.
  drm/mgag200: Set cursor scanout address to correct BO
  drm/mgag200: Pin displayed cursor BO to video memory
  can: sja1000: Makefile/Kconfig: sort alphabetically
  MAINTAINERS: can: add missing files to CAN NETWORK DRIVERS and CAN NETWORK LAYER
  PCI: Unexport pci_bus_sem
  PCI: Unexport pci_bus_get() and pci_bus_put()
  PCI: Remove pci_block_cfg_access() et al (unused)
  selftests/bpf: remove perf buffer helpers
  samples/bpf: switch trace_output sample to perf_buffer API
  samples/bpf: convert xdp_sample_pkts_user to perf_buffer API
  selftests/bpf: switch test_tcpnotify to perf_buffer API
  selftests/bpf: convert test_get_stack_raw_tp to perf_buffer API
  libbpf: provide more helpful message on uninitialized global var
  cgroup: minor tweak for logic to get cgroup css
  cgroup: Replace a seq_printf() call by seq_puts() in cgroup_print_ss_mask()
  MIPS: Remove unused R8000 CPU support
  MIPS: Remove unused R5432_CP0_INTERRUPT_WAR
  MIPS: Remove unused R5432 CPU support
  MIPS: Remove unused R4300 CPU support
  arm64: defconfig: enable cpufreq support for RPi3
  tc-testing: added tdc tests for [b|p]fifo qdisc
  hv_sock: Use consistent types for UUIDs
  ARM: defconfig: enable cpufreq driver for RPi
  nfp: flower: offload MPLS set action
  nfp: flower: offload MPLS pop action
  nfp: flower: offload MPLS push action
  net: sched: include mpls actions in hardware intermediate representation
  net/mlx5e: xsk: dynamically allocate mlx5e_channel_param
  net: jme: Use dev_get_drvdata
  igb: Use dev_get_drvdata where possible
  i40e: Use dev_get_drvdata
  fm10k: Use dev_get_drvdata
  e1000e: Use dev_get_drvdata where possible
  net: broadcom: Use dev_get_drvdata
  net: atheros: Use dev_get_drvdata
  net: 3com: 3c59x: Use dev_get_drvdata
  atm: Use dev_get_drvdata
  leds: is31fl319x: simplify getting the adapter of a client
  ftgmac100: Fix build.
  percpu: fix typo in pcpu_setup_first_chunk() comment
  rtc: s5m: convert to i2c_new_dummy_device
  rtc: s35390a: convert to i2c_new_dummy_device
  rtc: max77686: convert to i2c_new_dummy_device
  qlge: Move drivers/net/ethernet/qlogic/qlge/ to drivers/staging/qlge/
  ASoC: soc-dai: move snd_soc_dai_stream_valid() to soc-dai.c
  ASoC: soc-core: use existing snd_soc_dai_digital_mute()
  ASoC: soc-dai: add snd_soc_dai_compress_new()
  ASoC: soc-dai: add snd_soc_dai_remove()
  ASoC: soc-dai: add snd_soc_dai_probe()
  ASoC: soc-dai: add snd_soc_dai_resume()
  ASoC: soc-dai: add snd_soc_dai_suspend()
  ASoC: soc-dai: add snd_soc_dai_delay()
  ASoC: soc-dai: add snd_soc_dai_bespoke_trigger()
  ASoC: soc-dai: add snd_soc_dai_trigger()
  ASoC: soc-dai: add snd_soc_dai_prepare()
  ASoC: soc-dai: add snd_soc_dai_shutdown()
  ASoC: soc-dai: add snd_soc_dai_startup()
  ASoC: soc-dai: add snd_soc_dai_hw_free()
  ASoC: soc-dai: mv soc_dai_hw_params() to soc-dai
  ASoC: add soc-dai.c
  ASoC: rsnd: Support hw_free() callback at DAI level
  regulator: act8865: support regulator-pull-down property
  regulator: act8865: rename fixed LDO ops
  drm/i915: Use dev_get_drvdata
  drm/i915/huc: fix status check
  drm/i915: Squelch nop wait-for-idle trace
  arm64: perf: Remove unused macro
  gpio: pch: Use dev_get_drvdata
  media: vimc.rst: add vimc-streamer source documentation
  media: vimc.rst: Add a proper alt attribute to vimc.dot
  media: vimc: stream: format comments as kernel-doc
  media: vimc: stream: fix style of argument description
  media: vimc: stream: remove obsolete function doc
  media: mx2_emmaprp: use struct v4l2_fh
  pinctrl: intel: Drop double check for data in intel_pinctrl_probe_by_uid()
  media: omap_vout: use struct v4l2_fh
  media: m2m-deinterlace: use struct v4l2_fh
  media: media/i2c: don't return ENOTTY if SUBDEV_API is not set
  media: vb2-dc: skip CPU sync in map/unmap dma_buf
  media: saa7134: remove redundant assignment to variable value
  media: staging/media/davinci_vpfe: Add null check post kmalloc
  media: ti-vpe: fix leaked of_node references
  media: exynos4-is: fix leaked of_node references
  media: staging/imx: Fix NULL deref in find_pipeline_entity()
  media: vivid: work around high stack usage with clang
  media: cobalt: Prefer pcie_capability_read_word()
  media: via-camera: fix v4l2-compliance fails
  video: ssd1307fb: Add devicetree configuration of display setup
  dt-bindings: display: ssd1307fb: Add initialization properties
  video: ssd1307fb: Handle width and height that are not multiple of 8
  video: ssd1307fb: Start page range at page_offset
  video: ssd1307fb: Remove unneeded semicolons
  video: ssd1307fb: Use screen_buffer instead of screen_base
  video: fbdev-MMP: Remove call to memset after dma_alloc_coherent
  video: fbdev: nvidia: Remove dead code
  video: fbdev: nvidia: Remove extra return
  au1200fb: don't use DMA_ATTR_NON_CONSISTENT
  fbmem: remove redundant assignment to err
  drm/tinydrm: Move tinydrm_display_pipe_init() to mipi-dbi
  drm/tinydrm/mipi-dbi: Add mipi_dbi_init_with_formats()
  drm/tinydrm/repaper: Don't use tinydrm_display_pipe_init()
  drm/tinydrm: Move tinydrm_machine_little_endian()
  drm/tinydrm: Move tinydrm_spi_transfer()
  drm/tinydrm: Clean up tinydrm_spi_transfer()
  drm/tinydrm: Remove tinydrm_spi_max_transfer_size()
  drm/tinydrm: Remove spi debug buffer dumping
  drm/tinydrm: Use spi_is_bpw_supported()
  drm/tinydrm: Use DRM_MODE_CONNECTOR_SPI
  drm: Add SPI connector type
  pinctrl: merrifield: Use devm_platform_ioremap_resource()
  pinctrl: intel: Use devm_platform_ioremap_resource()
  pinctrl: cherryview: Use devm_platform_ioremap_resource()
  pinctrl: baytrail: Use devm_platform_ioremap_resource()
  media: ov7670: don't return ENOTTY if SUBDEV_API is not set
  media: via-camera: use struct v4l2_fh
  media: via-camera: call viafb_pm_unregister in remove()
  media: go7007: Fix misuse of strscpy
  media: m2m-deinterlace: Fix misuse of strscpy
  media: cobalt: remove redundant assignment to variable data
  media: platform: meson-ao-cec-g12a: add support for SM1
  media: dt-bindings: media: meson-ao-cec: add SM1 compatible
  media: davinci-vpbe: remove obsolete includes
  media: vivid:add sanity check to avoid divide error and set value to 1 if 0.
  media: vivid: fix potential integer overflow on left shift
  media: drivers/media: don't set pix->priv = 0
  media: v4l2-mem2mem: reorder checks in v4l2_m2m_poll()
  media: vb2: reorder checks in vb2_poll()
  media: input/touchscreen/sur40: use COLORSPACE_RAW
  media: v4l2-ioctl: call v4l_pix_format_touch() for TRY_FMT
  media: tegra-cec: use cec_notifier_cec_adap_(un)register
  media: stih-cec: use cec_notifier_cec_adap_(un)register
  media: s5p-cec: use cec_notifier_cec_adap_(un)register
  media: seco-cec: use cec_notifier_cec_adap_(un)register
  media: cros-ec-cec: use cec_notifier_cec_adap_(un)register
  media: meson/ao-cec: use cec_notifier_cec_adap_(un)register
  media: uapi: new file needs types.h
  fbdev: Ditch fb_edid_add_monspecs
  x86/bitops: Use __builtin_constant_p() directly instead of IS_IMMEDIATE()
  x86/build: Remove unneeded uapi asm-generic wrappers
  regulator: stm32-booster: Remove .min_uV and .list_voltage for fixed regulator
  regulator: act8865: Add support for act8600 charger
  ASoC: rt1308: Convert headers to SPDX
  ASoC: rt5665: Fix a typo in the name of a function
  ASoC: SOF: Intel: hda: fix stream id setting
  ASoC: SOF: Intel: hda: fix link DMA config
  ASoC: fsl_esai: recover the channel swap after xrun
  drm/i915/selftests: Let igt_vma_partial et al breathe
  ASoC: SOF: Intel: ssp: BCLK delay parameter
  ASoC: SOF: Intel: hda: reset link DMA state in prepare
  ASoC: SOF: Intel: hda: add a parameter to disable MSI
  ASoC: SOF: Intel: hda: remove duplicated clear WAKESTS
  ASoC: SOF: Intel: hda: use SOF defined init chip in resume
  ASoC: SOF: Intel: hda: set position buffer in init chip
  ASoC: SOF: Intel: hda: Enable jack detection
  ASoC: SOF: Intel: hda: reduce ifdef usage for hda
  ASoC: SOF: Intel: hda: correct ROM state mask
  ASoC: SOF: remove unused state variable in suspend function
  ASoC: SOF: loader: Don't ignore SRAM block types
  ASoC: SOF: loader: Use the BAR provided by FW
  ASoC: SOF: Introduce snd_sof_dsp_get_bar_index ops
  ASoC: SOF: core: increase default IPC timeouts
  ASoC: SOF: ipc: use timeout configured at probe
  ASoC: SOF: use common code to send PCM_FREE IPC
  ASoC: SOF: reset DMA state in prepare
  ASoC: SOF: pci: mark last_busy value at runtime PM init
  ASoC: pcm3168a: Fix a typo in the name of a constant
  drm/i915/uc: Sanitize uC when GT is sanitized
  drm/i915/uc: Gt-fy uc reset
  drm/i915: Add HDCP capability info to i915_display_info.
  ARM: dts: sunxi: Fix the HDMI PHY name
  ARM: dts: sunxi: Remove simple-panel compatible
  MAINTAINERS: add soc/ux500
  ARM: ux500: simplify and move debug UART
  dt-bindings: arm: fsl: Add the pico-pi-imx8m board
  dt-bindings: arm: Document i.MX8QXP AI_ML board binding
  dt-bindings: Add Vendor prefix for Einfochips
  dt-bindings: arm: nxp: Add device tree binding for ls1046a-frwy board
  firmware: imx: scu-pd: Add IRQSTR_DSP PD range
  firmware: imx: scu-pd: Add mu13 b side PD range
  ARM: ux500: add missing of_node_put()
  firmware: imx: scu-pd: Rename mu PD range to mu_a
  ARM: dts: imx6sll: move GIC to right location in DT
  ARM: dts: imx6ul: move GIC to right location in DT
  ARM: dts: imx6sl: move GIC to right location in DT
  ARM: dts: imx6sx: move GIC to right location in DT
  PM: sleep: Drop dpm_noirq_begin() and dpm_noirq_end()
  PM: sleep: Integrate suspend-to-idle with generig suspend flow
  PM: sleep: Simplify suspend-to-idle control flow
  ACPI: PM: Set s2idle_wakeup earlier and clear it later
  PM: sleep: Fix possible overflow in pm_system_cancel_wakeup()
  ACPI: EC: Return bool from acpi_ec_dispatch_gpe()
  ACPICA: Return u32 from acpi_dispatch_gpe()
  PCI: irq: Introduce rearm_wake_irq()
  ARM: dts: vf610-zii-scu4-aib: Drop unused pinctrl_i2c3 pinmux config
  ARM: dts: vf610-zii-scu4-aib: Fix pinctrl_i2c1's identation
  ARM: dts: vf610-zii-spb4: Drop unused pinctrl_i2c1 pinmux config
  ARM: dts: ux500: set pull-up on STUIB STMPE IRQ line
  ARM: dts: ux500: Fix up the thermal nodes
  ARM: dts: ste: Update coresight DT bindings
  ARM: ux500: Stop populating the PRCMU devices early
  drm/komeda: remove set but not used variable 'old'
  ARM: dts: imx6ull: Add support for PHYTEC phyBOARD-Segin with i.MX 6ULL
  ARM: dts: imx6ul: segin: Move machine include to dts files
  ARM: dts: imx6ul: segin: Move ECSPI interface to board include file
  ARM: dts: imx6ul: phycore: Add eMMC at usdhc2
  ARM: dts: imx6ul: segin: Only enable NAND if it is populated
  ARM: dts: imx6ul: segin: Make FEC and ethphy configurable in dts
  ARM: dts: imx6ul: segin: Fix LED naming for phyCORE and PEB-EVAL-01
  ARM: dts: imx6ul: segin: Reduce eth drive strength
  ARM: dts: imx6ul: segin: Add boot media to dts filename
  ARM: dts: imx6ul: phyboard-segin: Rename dts to PHYTEC name scheme
  net: Convert skb_frag_t to bio_vec
  net: Rename skb_frag_t size to bv_len
  net: Rename skb_frag page to bv_page
  net: Reorder the contents of skb_frag_t
  net: Increase the size of skb_frag_t
  net: Use skb accessors in network core
  net: Use skb accessors in network drivers
  net: usb: Merge cpu_to_le32s + memcpy to put_unaligned_le32
  ARM: configs: aspeed: Refresh defconfigs
  ARM: configs: aspeed: Enable commonly used network functionality
  ARM: dts: aspeed: Add SGPM pinmux
  ARM: dts: aspeed: tiogapass: Add VR devices
  ARM: dts: aspeed: Add Lenovo Hr855xg2 BMC
  ARM: dts: aspeed: Add Facebook Minipack BMC
  dt-bindings: serial: lpuart: add the clock requirement for imx8qxp
  r8169: improve rtl_rx
  arm64: dts: qcom: Add Asus NovaGo TP370QL
  arm64: dts: qcom: Add HP Envy x2
  arm64: dts: qcom: Add Lenovo Miix 630
  firmware: qcom_scm: Cleanup code in qcom_scm_assign_mem()
  drm/i915: Rely on spinlock protection for GPU error capture
  drm/i915/gt: Hook up intel_context_fini()
  drm/i915: Remove obsolete engine cleanup
  drm/i915: Fix up broken merge
  MIPS: qi_lb60: Move MMC configuration to devicetree
  scsi: ufs: change msleep to usleep_range
  scsi: lpfc: Remove unnecessary null check before kfree
  scsi: virtio_scsi: implement request batching
  scsi: core: add support for request batching
  scsi: ufs: uapi: Fix SPDX license identifier
  scsi: ufs: Add history of fatal events
  scsi: ufs: Do not reset error history during host reset
  scsi: ufs: Add fatal and auto-hibern8 error history
  scsi: ufs: Change names related to error history
  drm/i915/gtt: Fix rounding for 36b
  rtc: isl12026: convert to i2c_new_dummy_device
  dt-bindings: rtc: Remove the PCF8563 from the trivial RTCs
  rtc: imxdi: use devm_platform_ioremap_resource() to simplify code
  rtc: mxc_v2: use devm_platform_ioremap_resource() to simplify code
  drm/bridge: Improve the help text for DRM_ANALOGIX_ANX78XX
  drm/amdgpu/smu: move fan rpm query into the asic specific code
  leds: apu: add pr_fmt prefix for better log output
  drm/amdgpu: set sdma irq src num according to sdma instances
  leds: apu: fix error message on probing failure
  drm/amd/powerplay: remove redundancy debug log in smu
  leds: apu: drop profile field from priv data
  leds: apu: drop iosize field from priv data
  leds: apu: drop enum_apu_led_platform_types
  drm/amd/powerplay: custom peak clock freq for navi10
  leds: apu: drop superseeded apu2/3 led support
  leds: ktd2692: Fix a typo in the name of a constant
  batman-adv: Replace usage of strlcpy with strscpy
  batman-adv: Start new development cycle
  leds: an30259a: Fix typo
  media: dvbsky: add support for Mygica T230C v2
  media: si2168: add support for Mygica T230C v2
  media: mceusb: USB reset device following USB clear halt error
  media: dib0700: fix link error for dibx000_i2c_set_speed
  media: technisat-usb2: break out of loop at end of buffer
  media: mtk-cir: lower de-glitch counter for rc-mm protocol
  media: rc: remove unused #define RC_PROTO_BIT_ALL
  media: mtk-cir: only allow protocols that have software decoders
  media: hantro: Add support for MPEG-2 decoding on RK3328
  media: dt-bindings: rockchip: Document RK3328 VPU binding
  media: hantro: Add support for VP8 decoding on rk3288
  media: v4l2-ctrl: Validate VP8 stateless decoder controls
  media: uapi: Add VP8 stateless decoder API
  ax88179_178a: Merge memcpy + le32_to_cpus to get_unaligned_le32
  usbnet: smsc75xx: Merge memcpy + le32_to_cpus to get_unaligned_le32
  net: lan78xx: Merge memcpy + lexx_to_cpus to get_unaligned_lexx
  media: v4l2-ctrl: Move compound control validation
  net-ipv6-ndisc: add support for RFC7710 RA Captive Portal Identifier
  IB/hfi1: Remove unused define
  IB/hfi1: Do not update hcrc for a KDETH packet during fault injection
  media: omap3isp: set device_caps in struct video_device
  media: ti-vpe: set device_caps in struct video_device
  media: omap_vout: set device_caps in struct video_device
  media: vsp1: set device_caps in struct video_device
  media: sh_veu/sh_vou: set device_caps in struct video_device
  media: xilinx: set device_caps in struct video_device
  media: via-camera: set device_caps in struct video_device
  media: bdisp: set device_caps in struct video_device
  media: pxa_camera: don't set caps in querycap
  media: marvell-ccic: set device_caps in struct video_device
  media: mx2_emmaprp: set device_caps in struct video_device
  media: m2m-deinterlace: set device_caps in struct video_device
  media: fsl-viu: set device_caps in struct video_device
  media: s3c-camif/s5p-g2d/s5p-jpeg: set device_caps in struct video_device
  media: coda: set device_caps in struct video_device
  media: am437x/davinci: set device_caps in struct video_device
  media: media/platform: don't set description in ENUM_FMT
  media: drivers/staging/media: don't set description for ENUM_FMT
  media: media/pci: don't set description for ENUM_FMT
  leds: leds-lp5562 allow firmware files up to the maximum length
  leds: ns2: Add of_node_put() before return
  leds: max77650: Add of_node_put() before return
  leds: as3645a: Fix misuse of strlcpy
  leds: max77650: add MODULE_ALIAS()
  media: media/usb: don't set description in ENUM_FMT
  media: v4l2-ioctl: add missing pixelformats
  MAINTAINERS: Add an entry for generic architecture topology
  base: arch_topology: update Kconfig help description
  RISC-V: Parse cpu topology during boot.
  arm: Use common cpu_topology structure and functions.
  cpu-topology: Move cpu topology code to common code.
  dt-binding: cpu-topology: Move cpu-map to a common binding.
  ASoC: madera: Read device tree configuration
  firmware: qcom_scm: Fix some typos in docs and printks
  firmware: qcom_scm: Use proper types for dma mappings
  Documentation: DT: arm: add support for sockets defining package boundaries
  dmaengine: bcm2835: Print error in case setting DMA mask fails
  dmaengine: edma: make edma_filter_fn private
  dmaengine: omap-dma: make omap_dma_filter_fn private
  arm64: dts: allwinner: h6: Fix SID node name
  ARM: dts: sunxi: Unify the DE2 bus clocks order
  ALSA: firewire-motu: more code refactoring for MOTU data block processing layer
  ALSA: firewire-lib: process payload of isoc context according to packet descriptors
  ALSA: fireface: code refactoring for FF data block processing layer
  ALSA: firewire-motu: code refactoring for MOTU data block processing layer
  ALSA: firewire-tascam: code refactoring for TASCAM data block processing layer
  ALSA: firewire-digi00x: code refactoring for DOT data block processing layer
  ALSA: firewire-lib: code refactoring for AM824 data block processing layer
  ALSA: firewire-lib: pass packet descriptor to data block processing layer
  ALSA: firewire-lib: code refactoring to process context payloads
  ALSA: firewire-lib: code refactoring to process PCM substream
  ALSA: firewire-lib: use packet descriptor for IR context
  ALSA: firewire-lib: use packet descriptor for IT context
  ALSA: firewire-lib: add list of packet descriptor
  ALSA: firewire-lib: pass no syt information to data block processing layer
  ALSA: firewire-lib: add syt_override member for some protocols
  ALSA: firewire-lib: operate data block counter in top level of processing for IR context
  ALSA: firewire-lib: operate data block counter in top level of processing for IT context
  ALSA: firewire-lib: pass data block counter to data block processing layer
  ALSA: firewire-lib: pass data block count as an argument to tracepoints event
  ALSA: firewire-lib: obsolete ctx_data.tx.first_dbc with CIP_UNALIGHED_DBC flag
  gpio: em: use a helper variable for &pdev->dev
  eeprom: at24: remove unneeded include
  ASoC: sgtl5000: Fix charge pump source assignment
  ASoC: sgtl5000: Fix of unmute outputs on probe
  ASoC: sgtl5000: add ADC mute control
  ASoC: sgtl5000: Fix definition of VAG Ramp Control
  ASoC: sgtl5000: Improve VAG power and mute control
  ASoC: Define a set of DAPM pre/post-up events
  ASoC: rockchip-max98090: Remove MICBIAS as supply of input pin IN34
  ASoC: cs47l35: Use define for DSPCLK enable bit
  ASoC: rt1308: add silence detection and manual PDB control
  ASoC: rt1308: simplify the EFUSE read function
  ASoC: tlv320aic31xx: suppress error message for EPROBE_DEFER
  ASoC: max98383: fix i2c probe failure
  ASoC: fsl_sai: mark regmap as fast_io
  ASoC: fsl_sai: derive TX FIFO watermark from FIFO depth
  ASoC: fsl_sai: add of_match data
  ASoC: mediatek: mt8183: make headset codec optional
  ASoC: wcd9335: add irqflag IRQF_ONESHOT flag
  ASoC: bcm: cygnus-pcm: Unneeded variable: "ret".
  spi: dw-mmio: Clock should be shut when error occurs
  spi: dw-mmio: Use devm_platform_ioremap_resource()
  regulator: rk808: Return REGULATOR_MODE_INVALID for invalid mode
  regulator: lm363x: Fix n_voltages setting for lm36274
  regulator: lm363x: Fix off-by-one n_voltages for lm3632 ldo_vpos/ldo_vneg
  sound: soc: codecs: mt6358: change return type of mt6358_codec_init_reg
  ASoC: fsl_esai: Wrap some operations to be functions
  ASoC: rt5677: remove superfluous set
  ASoC: codecs: ad193x: Use regmap_multi_reg_write() when initializing
  ASoC: wcd9335: Fix misuse of GENMASK macro
  ASoC: SOF: Intel: hda: Make hdac_device device-managed
  locks: revise generic_add_lease tracepoint
  x86: Remove X86_FEATURE_MFENCE_RDTSC
  x86/mpx: Remove MPX APIs
  x86/mpx: Remove selftests themselves
  x86/mpx: Remove selftests Makefile entry
  x86/realmode: Remove trampoline_status
  drivers: hv: vmbus: Replace page definition with Hyper-V specific one
  x86/hyperv: Add functions to allocate/deallocate page for Hyper-V
  x86/hyperv: Create and use Hyper-V page definitions
  x86/cpufeatures: Enable a new AVX512 CPU feature
  cpu/cpuid-deps: Add a tab to cpuid dependent features
  x86/syscalls: Split the x32 syscalls into their own table
  x86/syscalls: Disallow compat entries for all types of 64-bit syscalls
  x86/syscalls: Use the compat versions of rt_sigsuspend() and rt_sigprocmask()
  x86/syscalls: Make __X32_SYSCALL_BIT be unsigned long
  x86/paravirt: Drop {read,write}_cr8() hooks
  x86/apic: Initialize TPR to block interrupts 16-31
  ARM: dts: sunxi: Switch from phy to phy-handle
  ARM: dts: sunxi: Switch to the generic PHY properties
  ALSA: hda: Flush interrupts on disabling
  ALSA: hda/hdmi - Allow audio component for AMD/ATI and Nvidia HDMI
  ALSA: hda/hdmi - Don't report spurious jack state changes
  ARM: dts: opos6uldev: use OF graph to describe the display
  arm64: defconfig: Build imx8 ddr pmu as module
  dt-bindings: clk: sunxi-ccu: add compatible string for V3 CCU
  clk: sunxi-ng: v3s: add the missing PLL_DDR1
  cpufreq: ap806: Add NULL check after kcalloc
  dt-bindings: cpufreq: Document allwinner,sun50i-h6-operating-points
  cpufreq: Add sun50i nvmem based CPU scaling driver
  staging: mt7621-pinctrl: Add of_node_put() before return
  staging: mt7621-pci: Add of_node_put() before return
  staging: erofs: support bmap
  staging: erofs: avoid opened loop codes
  staging: vt6656: change alignment to match parenthesis
  staging: rtl8188eu: Replace function rtl88eu_phy_rf_config()
  staging: rtl8188eu: Replace function rtl88e_phy_rf6052_config()
  staging: rtl8188eu: Replace function rtw_alloc_network()
  staging: rtl8188eu: Remove function rtw_modular64()
  staging: rtl8188eu: Remove function rtw_os_indicate_scan_done()
  staging: rtl8188eu: Replace function beacon_timing_control()
  staging: rtl8188eu: core: Remove function enable_rate_adaptive()
  staging: rtl8188eu: core: Replace function Set_MSR()
  staging: rtl8723bs: core: Change return type of init_mlme_ext_priv
  staging: rtl8723bs: os_dep: Remove code valid only for 5GHz
  staging: rtl8723bs: core: Remove code valid only for 5GHz
  staging: rtl8723bs: hal: Remove code valid only for 5GHz
  staging: kpc2000: kpc_spi: Remove unnecessary null check before kfree
  staging: rtl8188eu: remove unused definitions from hal8188e_phy_reg.h
  staging: fsl-dpaa2/ethsw: Add comments to ETHSW_VLAN flags
  staging: fsl-dpaa2/ethsw: Add ndo_get_phys_port_name
  staging: fsl-dpaa2/ethsw: Remove netdevice on port probing error
  staging: fsl-dpaa2/ethsw: Add network interface statistics
  staging: fsl-dpaa2/ethsw: Fix setting port learning/flooding flags
  staging: wlan-ng: use "%*pE" for serial number
  staging: wilc1000: Replace function wilc_wlan_cfg_get_val()
  staging: wlan-ng: Replace function hfa384x_dowmem()
  staging: wlan-ng: Replace function hfa384x_dormem()
  staging: wlan-ng: Remove function hfa384x_docmd_wait()
  staging: wlan-ng: Remove unused function hfa384x_docmd_async()
  staging: wlan-ng: Remove function hfa384x_dowmem_async()
  staging: wlan-ng: Remove unused function hfa384x_dormem_async()
  staging: wlan-ng: Remove unused function hfa384x_dorrid_async()
  staging: wlan-ng: Remove function hfa384x_dowrid_async()
  staging: wlan-ng: Remove function hfa384x_dowrid_wait()
  staging: wlan-ng: Remove function hfa384x_dorrid_wait()
  staging: most: dim2: Remove function dimcb_io_write()
  staging: most: dim2: Remove function dimcb_io_read()
  staging: most: dim2: Replace function dim_norm_ctrl_async_buffer_size()
  staging: rtl8712: remove redundant assignment to variable res
  staging: erofs: Remove function erofs_kill_sb()
  staging: erofs:converting all 'unsigned' to 'unsigned int'
  staging: greybus: remove redundant assignment to variable is_empty
  staging: greybus: Replace function gb_i2c_device_setup()
  staging: most: Delete an error message for a failed memory allocation
  Input: add support for the FlySky FS-iA6B RC receiver
  arm64: Enable TIMER_IMX_SYS_CTR for ARCH_MXC platforms
  arm64: defconfig: Select CONFIG_CLK_IMX8MN by default
  arm64: dts: imx8mq-librem5: Enable MIPI D-PHY
  arm64: dts: imx8mq: Add MIPI D-PHY
  ARM: dts: imx7ulp: add edma device node
  ARM: dts: imx7-colibri: Remove unneeded snvs_pwrkey node
  ARM: dts: imx7d-zii-rpu2: Remove unneeded snvs_pwrkey node
  ARM: dts: Add ZII support for ZII i.MX7 RMU2 board
  ARM: dts: imx6sll: correct sdma compatible
  ARM: dts: imx6ul: add dma support on ecspi
  soc: imx8: Add i.MX8MM UID(unique identifier) support
  soc: imx8: Add i.MX8MQ UID(unique identifier) support
  arm64: defconfig: Select CONFIG_PINCTRL_IMX8MN by default
  arm64: defconfig: Enable SDMA on i.mx8mq/8mm
  dt-bindings: arm: fsl: Add support for ZII i.MX7 RMU2 board
  arm64: dts: rockchip: Specify override mode for kevin panel
  ARM: dts: rockchip: Specify rk3288-veyron-minnie's display timings
  ARM: dts: rockchip: Specify rk3288-veyron-chromebook's display timings
  audit_inode(): switch to passing AUDIT_INODE_...
  filename_mountpoint(): make LOOKUP_NO_EVAL unconditional there
  filename_lookup(): audit_inode() argument is always 0
  MIPS: pte_special()/pte_mkspecial() support
  MIPS: BMIPS: add clock controller nodes
  MIPS: DTS: jz4740: Add node for the MMC driver
  MIPS: Decode config3 register on Ingenic SoCs
  MIPS: Rename JZRISC to XBURST
  ARM: dts: at91: Avoid colliding 'display' node and property names
  MIPS: Undefine PMD_ORDER for 32-bit builds
  MIPS: ingenic: Add support for huge pages
  MIPS: Decouple CPU_SUPPORTS_HUGEPAGES from 64BIT
  MIPS: Add partial 32-bit huge page support
  MIPS: Disallow CPU_SUPPORTS_HUGEPAGES for XPA,EVA
  drm: Add Grain Media GM12U320 driver v2
  drm/fb: remove unused function: drm_gem_fbdev_fb_create()
  drm/sun4i: sun8i-csc: Add support for color encoding and range
  drm/sun4i: sun8i_csc: Simplify register writes
  drm/sun4i: Introduce color encoding and range properties
  drm/mediatek: direct include of drm.h in mtk_drm_gem.c
  drm: direct include of drm.h in drm_syncobj.c
  drm: direct include of drm.h in drm_prime.c
  drm: direct include of drm.h in drm_gem_shmem_helper.c
  drm: direct include of drm.h in drm_gem.c
  drm/ati_pcigart: drop dependency on drm_os_linux.h
  drm: drop uapi dependency from drm_vblank.h
  drm/panel: make drm_panel.h self-contained
  drm/i915/dsi: remove set but not used variable 'hfront_porch'
  drm/i915/gtt: Don't try to clear failed empty pd allocation
  drm/i915/gtt: Correct unshifted 'from' for gen8_ppgtt_alloc errors
  Revert "drm/i915: Update description of i915.enable_guc modparam"
  Revert "drm/i915/guc: Turn on GuC/HuC auto mode"
  drm/i915/icl: Add Wa_1409178092
  drm/i915/icl: Verify engine workarounds in GEN8_L3SQCREG4
  drm/i915: Skip CS verification of L3 bank registers
  drm/i915: Fix and improve MCR selection logic
  drm/i915: Trust programmed MCR in read_subslice_reg
  drm/i915: Fix GEN8_MCR_SELECTOR programming
  drm/doc: Document kapi doc expectations
  drm/i915: Remove set but not used variable 'src_y'
  drm/i915/execlists: Cancel breadcrumb on preempting the virtual engine
  drm/amd/display: handle active dongle port type is DP++ or DP case
  drm/amd/display: Copy GSL groups when committing a new context
  drm/amd/display: Add debug entry to destroy disconnected edp link
  drm/amd/display: avoid power gate domains that doesn't exist
  drm/amd/display: Add SMU version field to clk_mgr_internal
  drm/amd/display: support "dummy pstate"
  drm/amd/display: fix mpcc assert condition
  drm/amd/display: do not read link setting if edp not connected
  drm/amd/display: Increase size of audios array
  drm/amd/display: 3.2.42
  drm/amd/display: drop ASSERT() if eDP panel is not connected
  drm/amd/display: Set enabled to false at start of audio disable
  drm/amd/display: Clean up dynamic metadata logic
  drm/amd/display: Only enable audio if speaker allocation exists
  drm/amd/display: Fix dc_create failure handling and 666 color depths
  drm/amd/display: populate last calculated bb state with max clocks
  drm/amd/display: add dcc programming for dual plane
  drm/amd/display: Implement DAL3 GPU Integer Scaling
  drm/amd/display: add pipe CRC sources without disabling dithering.
  drm/amd/display: use min disp and dpp clk debug option for dcn2
  drm/amd/display: add a option to force the clock at every mode change.
  drm/amd/display: Change offset_to_id to reflect what id_to_offset returns
  drm/amd/display: add set and get clock for testing purposes
  drm/amd/display: allocate 4 ddc engines for RV2
  drm/amd/display: Hook up calls to do stereo mux and dig programming to stereo control interface
  drm/amd/display: 3.2.41
  drm/amd/display: Fixes for some MPO cases
  drm/amd/display: Cache the use_pitch_c conditional
  drm/amd/display: Add DIG_CLOCK_PATTERN register
  drm/amd/display: Add CM_BYPASS via debug option
  drm/amd/display: Add MPC 3DLUT resource management
  drm/amd/display: Add debug option to disable timing sync
  drm/amd/display: Clear FEC_READY shadow register if DPCD write fails
  drm/amd/display: Optimize gamma calculations
  drm/amd/display: put back front end initialization sequence
  drm/amd/display: Set FEC_READY always before link training
  drm/amd/display: Use helper for determining HDMI signal
  drm/amd/display: Implement generic MUX registers (v2)
  drm/amd/display: Wait for flip to complete
  drm/amd/display: 3.2.40
  drm/amd/display: Change min_h_sync_width from 8 to 4
  drm/amd/display: Remove second initialization of pp_smu
  drm/amd/display: fix not calling ppsmu to trigger PME
  drm/amd/display: use encoder's engine id to find matched free audio device
  drm/amd/display: Remove unnecessary NULL check in set_preferred_link_settings
  drm/amd/display: Do not fill Null packet in the blank period
  drm/amd/display: fix DMCU hang when going into Modern Standby
  drm/amd/display: Disable Audio on reinitialize hardware
  drm/amd/display: Power-gate all DSCs at driver init time
  drm/amd/display: Remove dsc disable_ich flag programming.
  drm/amd/display: Read max down spread
  drm/amd/display: Fix some HUBP programming issues
  drm/amd/display: Check for valid stream_encode
  drm/amd/display: Expose enc2_set_dynamic_metadata
  drm/amd/display: 3.2.39
  drm/amd/display: Wait for backlight programming completion in set backlight level
  drm/amd/display: add functionality to get pipe CRC source.
  drm/amd/display: add functionality to grab DPRX CRC entries.
  drm/amd/display: Poll for GPUVM context ready (v2)
  drm/amd/display: add monitor patch to add T7 delay
  drm/amd/display: add hdmi2.1 dsc pps packet programming
  drm/amd/display: refactor dump_clk_registers
  drm/amd/display: wait for the whole frame after global unlock
  drm/amd/display:Use Pixel clock in 100Hz units for HDMI Audio wall clock DTO
  drm/amd/display: Copy max_clks_by_state after dce_clk_mgr_construct
  drm/amd/display: Clock does not lower in Updateplanes
  drm/amd/display: Incorrect Read Interval Time For CR Sequence
  drm/amd/display: 3.2.38
  drm/amd/display: Split out common HUBP registers and code
  drm/amd/display: skip retrain in dc_link_set_preferred_link_settings() if using passive dongle
  drm/amd/display: swap system aperture high/low
  drm/amd/display: Set one 4:2:0-related PPS field as recommended by DSC spec
  drm/amd/display: Set default block_size, even in unexpected cases
  drm/amd/display: early return when pipe_cnt is 0 in bw validation
  drm/amd/display: Update drm_dsc to reflect native 4.2.0 DSC spec
  drm/amd/display: Add aux tracing log in dce
  drm/amd/display: No audio endpoint for Dell MST display
  drm/amd/display: cap DCFCLK hardmin to 507 for NV10
  drm/amd/display: move bw calc code into helpers
  drm/amd/display: 3.2.37
  drm/amd/display: fix dsc disable
  drm/amd/display: fix up HUBBUB hw programming for VM
  drm/amd/display: 3.2.36
  drm/amd/display: Add ability to set preferred link training parameters.
  drm/amd/display: initialize p_state to proper value
  drm/amdgpu: use VCN firmware offset for cache window
  drm/ttm: use the same attributes when freeing d_page->vaddr
  drm/amd/powerplay: change sysfs pp_dpm_xxx format for navi10
  drm/amdgpu: drop ras self test
  drm/amdgpu: only allow error injection to UMC IP block
  drm/amdgpu: disable GFX RAS by default
  drm/amdgpu: do not create ras debugfs/sysfs node for ASICs that don't have ras ability
  drm/amd/powerplay: report bootup clock as max supported on dpm disabled
  drm/amdgpu: Default disable GDS for compute VMIDs
  drm/amdgpu:  exposing fica registers to df offsets
  drm/amd/powerplay: input check for unsupported message/clock index
  drm/amd/powerplay: correct SW SMU valid mapping check
  drm/amdgpu: flag arcturus as experimental for now
  drm/amdgpu: drop unused function definitions
  drm/amdgpu:add all VCN rings into schedule request queue
  drm/amdkfd: Increase vcrat size for GPU
  drm/amdgpu: enable all 8 sdma instances for Arcturus silicon
  drm/amdkfd: Merge gfx9/arcturus trap handlers, add ACC VGPR save
  drm/amdgpu: Add more detail to the VM fault printing
  drm/amdkfd: Add device id for real asics
  drm/amdgpu: limit sdma instances to 2 for Arcturus in BU phase
  drm/amdgpu: skip gfx 9 common golden settings for arct
  drm/amdkfd: Add arcturus CWSR trap handler
  amd/powerplay: No SW XGMI dpm for Arcturus rev 2
  drm/amdgpu: clean up nonexistent firmware declaration for Arcturus
  drm/amdgpu: init gds config for arct
  drm/amdgpu: keep stolen memory for arct
  drm/amdgpu: init arct external rev id
  drm/amdgpu: add arct gc golden settings
  drm/amdgpu: add arct sdma golden settings
  drm/amdgpu: add pci DID for Arcturus GL-XL.
  drm/amdgpu: assign fb_start/end in mmhub v9.4 interface
  drm/amdgpu: add harvest support for Arcturus
  drm/amdgpu: add multiple instances support for Arcturus
  drm/amdgpu: modify amdgpu_vcn to support multiple instances
  drm/amdgpu: add vcn nbio doorbell range setting for 2nd vcn instance
  drm/amdgpu/: increase AMDGPU_MAX_RINGS to add 2nd vcn instance
  drm/amdgpu/: add doorbell assignment for 2nd vcn instance
  drm/amdgpu/: add ucodeID for 2nd vcn instance
  drm/amdgpu/: add clientID for 2nd vcn instance
  drm/amdkfd: Set number of xgmi optimized SDMA engines for arcturus
  drm/amdgpu: correct ip for mmHDP_READ_CACHE_INVALIDATE register access
  drm/amdgpu: set system aperture to cover whole FB region in mmhub v9.4
  drm/amdgpu: skip get/update xgmi topology info when no psp exists
  drm/amd/powerplay: get smc firmware and pptable
  drm/amdgpu/powerplay: add smu11 driver interface for arcturus. (v2)
  drm/amdgpu/powerplay: add arcturus ppt functions
  drm/amdgpu: enable the Doorbell support for VCN2.5
  drm/amdgpu: add vcn doorbell range function to nbio7.4 (v2)
  drm/amdgpu: enable VCN2.5 on Arcturus
  drm/amdgpu/VCN2.5: set JPEG decode ring functions
  drm/amdgpu: add JPEG2.5 HW start and stop
  drm/amdgpu/VCN2.5: set encode ring functions
  drm/amdgpu/VCN2.5: set decode ring functions
  drm/amdgpu: add Arcturus to the VCN family
  drm/amdgpu: add VCN2.5 VCPU start and stop
  drm/amdgpu: add VCN2.5 basic supports
  drm/amdgpu/VCN2: expose rings functions
  drm/amdgpu/VCN2: put IB internal registers offset to structure
  drm/amdgpu: declare sdma firmware binary files for Arcturus
  drm/amdgpu: Clear build undefined warning
  drm/amdgpu: Enable xgmi support for Arcturus
  drm/amdgpu: Hack xgmi topology info when there is no psp fw
  drm/amdkfd: Support MMHUB1 in kfd interrupt path
  drm/amdgpu: Set VM_L2_CNTL.PDE_FAULT_CLASSIFICATION to 0 for MMHUB 9.4
  drm/amdkfd: Implement kfd2kgd_calls for Arcturus
  drm/amdkfd: Fix sdma_bitmap overflow issue
  drm/amdkfd: Change arcturus sdma engines number
  drm/amdkfd: Support two MMHUBs when setting up page table base in KFD
  drm/amdkfd: Expose function mmhub_v9_4_setup_vm_pt_regs() for kfd to use
  amd/amdkfd: Add ASIC ARCTURUS to kfd
  drm/amdkfd: Support bigger gds size
  drm/amdkfd: Extend PM4 packets to support 8 SDMA
  drm/amdgpu: Initialize asic functions for Arcturus
  drm/amdgpu: add paging queue support for 8 SDMA instances on Arcturus
  drm/amdgpu: correct programming of ih_chicken for Arcturus
  drm/amdgpu: add Arcturus chip_name for init sdma microcode
  drm/amdgpu: enable 8 SDMA instances for Arcturus
  drm/amdgpu: correct Arcturus SDMA address space base index
  drm/amdgpu: support sdma 2~7 doorbell range register offset
  drm/amdgpu: skip all gfx ring settings for Arcturus
  drm/amdgpu: skip load cp gfx firmware for Arcturus
  drm/amdgpu: optimize gfx9 init_microcode function
  drm/amdgpu: add Arcturus gpu info firmware
  drm/amdgpu: skip pasid mapping for second mmhub on Arcturus
  drm/amdgpu: skip to get 3D engine clockgating state for Arcturus
  drm/amdgpu: add to set rlc funcs for Arcturus
  drm/amdgpu: add number of mec for Arcturus
  drm/amdgpu: add gfx config for Arcturus
  drm/amdgpu: add support for Arcturus firmware
  drm/amdgpu/dce_virtual: add Arcturus virtual display support
  drm/amdgpu: set Arcturus fw load type as direct
  drm/amdgpu: add to set Arcturus ip blocks
  drm/amdgpu/soc15: add Arcturus common ip blocks
  drm/amdgpu: support hdp flush for more sdma instances
  drm/amdgpu: specify sdma instance 5~7 with second mmhub type
  drm/amdgpu: reorganize sdma v4 code to support more instances
  drm/amdgpu: update vmc interrupt routine to support 3 vmhubs
  drm/amdgpu: add VMC1 interrupt client id for Arcturus
  drm/amdgpu: dynamically initialize IP offset for Arcturus
  drm/amdgpu: increase max number of ip base instances to 8
  drm/amdgpu: add SDMA 2~7 ip block type
  drm/amdgpu: add SDMA 2~7 interrupt client id for Arcturus
  drm/amdgpu: use new mmhub interfaces for Arcturus
  drm/amdgpu: add mmhub v9.4.1 block for Arcturus (v2)
  drm/amdgpu: add one more mmhub instance for Arcturus (v2)
  drm/amdgpu: add new member in amdgpu_device for vmhub counts per asic chip
  drm/amdgpu: rename AMDGPU_GFXHUB/MMHUB macro with hub number
  drm/amdgpu: add gmc basic support for Arcturus
  drm/amdgpu: add Arcturus asic type
  drm/amdgpu: add Arcturus ip_offset header (v3)
  drm/amdgpu: add VCN2.5 headers
  drm/amdgpu: add sdma 4.2.2 header files for Arcturus
  drm/amdgpu: add mmhub 9.4.1 header files for Acrturus
  drm/amdgpu: consolidate navi14 IP init
  drm/amdgpu: disable concurrent flushes on Navi14
  drm/amdgpu: enable gfxoff code path for navi14
  drm/amdgpu/vcn: enable indirect DPG SRAM mode for navi14
  drm/amd/powerplay: disable gfxoff for navi14
  drm/amdgpu/nv: set vcn pg flag for navi14
  drm/amd/display: disable display writeback for navi14
  drm/amdgpu: enable async gfx ring for navi14
  drm/amdgpu: enable clock gatings for navi14
  drm/amdgpu/athub2: set clock gating for navi14
  drm/amdgpu/mmhub2: set clock gating for navi14
  drm/amdgpu: declare asd firmware for navi14
  drm/amdgpu: Enable VCN on navi14
  drm/amd/display: skip to load dmcu firmware for navi14
  drm/amdgpu: skip to load ta firmware for navi14
  drm/amd/display: add ASICREV defines v2
  drm/amd/display: add dm block
  drm/amd/display: add NAVI14 in resource construct
  drm/amd/display: add nv14 cases to amdgpu_dm
  drm/amdgpu: enable sw smu ip for navi14
  drm/amdgpu/smu11: add support for navi14
  drm/amdgpu/psp: start rlc autoload after psp received rlcg for navi14
  drm/amdgpu: enable psp ip block for navi14
  drm/amdgpu/psp: add psp support for navi14 (v3)
  drm/amdgpu: enable virtual display for navi14
  drm/amdgpu: add ip blocks for navi14
  drm/amdgpu/soc15: add support for navi14
  drm/amdgpu/gfx10: fix programming of SC_HIZ_TILE_FIFO_SIZE field
  drm/amdgpu/gfx10: update gfx golden settings for navi14
  drm/amdgpu/gfx10: update gfx golden settings for navi14
  drm/amdgpu/gfx: update gc_v10_1_1 golden setting
  drm/amdgpu/gfx10: add gfx v10_1_1 golden settings for navi14
  drm/amdgpu/gfx: add definition of mmCGTT_GS_NGG_CLK_CTRL
  drm/amdgpu/gfx10: set tcp harvest for navi14
  drm/amdgpu: set rlc funcs for navi14
  drm/amdgpu: add me/mec configurations for navi14
  drm/amdgpu/gfx10: add clockgating support for navi14
  drm/amdgpu/gfx10: add gfx config for navi14
  drm/amdgpu/gfx10: add placeholder for navi14 golden settings
  drm/amdgpu/gfx10: add support for navi14 firmware
  drm/amdgpu/sdma5: set clock gating for navi14
  drm/amdgpu/sdma5: update sdma5 golden settings for navi14
  drm/amdgpu/sdma5: add sdma5_0 golden settings for navi14
  drm/amdgpu/sdma5: add placeholder for navi14 golden settings
  drm/amdgpu/sdma5: add support for navi14 firmware
  drm/amdgpu/gmc10: add navi14 support
  drm/amdgpu: increase max instance number for hw ip
  drm/amdgpu/discovery: init reg base offset via ip discovery for navi14
  drm/amdgpu/soc15: initialize reg base for navi14 (v2)
  drm/amdgpu: add navi14 ucode loading method
  drm/amdgpu: set asic family and ip blocks for navi14
  drm/amdgpu: add gpu_info firmware for navi14
  drm/amdgpu: add navi14 asic type
  drm/i915/vbt: Fix VBT parsing for the PSR section
  drm/i915: Use maximum write flush for pwrite_gtt
  drm/i915: Drop wmb() inside pread_gtt
  drm/i915: Make sure cdclk is high enough for DP audio on VLV/CHV
  drm/i915/ehl: Use an id of 4 while accessing DPLL4's CR0 and CR1
  drm/i915: Add gen8_de_pipe_fault_mask()
  x86/gpu: add TGL stolen memory support
  drm/i915/gt: Push engine stopping into reset-prepare
  drm/panel: simple: document panel_desc; rename a few functions
  drm: Make the bw/link rate calculations more forgiving
  drm/i915/execlists: Process interrupted context on reset
  drm/i915: Update description of i915.enable_guc modparam
  drm/mediatek: drop use of drmP.h
  drm/rockchip: drop use of drmP.h
  drm/imx: drop use of drmP.h
  drm/i2c/sil164: drop use of drmP.h
  drm/i2c/ch7006: drop use of drmP.h
  drm/tilcdc: drop use of drmP.h
  drm/i810: drop use of drmP.h
  drm/vgem: drop use of drmP.h
  drm/tdfx: drop use of drmP.h
  drm/selftests: drop use of drmP.h
  drm/omapdrm: drop use of drmP.h
  drm/udl: drop use of drmP.h
  drm/r128: drop use of drmP.h
  drm/vc4: drop use of drmP.h
  drm/sun4i: drop use of drmP.h
  drm/zte: drop use of drmP.h
  drm/pl111: drop use of drmP.h
  drm/v3d: drop use of drmP.h
  drm/meson: drop use of drmP.h
  drm/i915/oa: Reconfigure contexts on the fly
  dma-buf: Relax the write-seqlock for reallocating the shared fence list
  drm/i915/gtt: Tidy up ppgtt insertion for gen8
  drm/i915/gtt: Recursive ppgtt alloc for gen8
  drm/i915/execlists: Disable preemption under GVT
  drm/i915: Lock the engine while dumping the active request
  ovl: fix regression caused by overlapping layers detection
  gpu/drm: fix a few kernel-doc "/**" mark warnings
  drm/bridge: ti-sn65dsi86: use dev name for debugfs
  drm/pl111: pl111_vexpress.c: Add of_node_put() before return
  drm/i915: Enable hotplug retry
  drm/i915: Add support for retrying hotplug
  drm/i915/ehl: Map MCC pins based on PHY, not port
  drm/atmel_hlcdc: drop use of drmP.h
  drm/shmobile: drop use of drmP.h
  drm/hisilicon: drop use of drmP.h
  drm/ast: drop use of drmP.h
  drm/bochs: drop use of drmP.h
  drm: add missing include to drm_vram_mm_helper.h
  drm/virtgpu: drop use of drmP.h
  drm/scheduler: drop use of drmP.h
  drm/vkms: drop use of drmP.h
  drm/qxl: drop use of drmP.h
  drm/fsl-dcu: drop use of drmP.h
  drm/mxsfb: drop use of drmP.h
  drm/tve200: drop use of drmP.h
  drm/xen: drop use of drmP.h
  drm/agp: Remove unused function drm_agp_bind_pages
  dma-buf: Expand reservation_list to fill allocation
  drm/i915/selftests: Ignore self-preemption suppression under gvt
  drm/i915/uc: kill <g,h>uc_to_i915
  drm/i915/guc: prefer intel_gt in guc interrupt functions
  drm/i915/uc: prefer intel_gt over i915 in GuC/HuC paths
  drm/i915/uc: Move intel functions to intel_uc
  drm/i915/uc: move GuC/HuC inside intel_gt under a new intel_uc
  drm/i915/uc: move GuC and HuC files under gt/uc/
  drm/i915/guc: unify guc irq handling
  drm/i915/guc: move guc irq functions to intel_guc parameter
  drm/i915/uc: introduce intel_uc_fw_supported
  drm/i915/uc: replace uc init/fini misc
  drm/i915/guc: Use system workqueue for log capture
  drm/i915/gt: Use intel_gt as the primary object for handling resets
  drm/i915/tgl: add modular FIA to device info
  drm/i915: Add modular FIA
  drm/i915/gtt: Recursive ppgtt clear for gen8
  drm/i915/gtt: Recursive cleanup for gen8
  drm/i915/display: Drop kerneldoc for 'intel_atomic_commit'
  drm/vgem: Reclassify buffer creation debug message
  drm/panel: simple: fix AUO g185han01 horizontal blanking
  drm/i915: Skip SINK_COUNT read on CH7511
  drm/atmel-hlcdc: set layer REP bit to enable replication logic
  drm/i915/guc: Turn on GuC/HuC auto mode
  drm/i915/guc: Don't enable GuC/HuC in auto mode on pre-Gen11
  printk: Do not lose last line in kmsg buffer dump
  drm/i915: Propagate "_probe" function name suffix down
  drm/i915: Propagate "_remove" function name suffix down
  drm/i915: Propagate "_release" function name suffix down
  drm/i915: Replace "_load" with "_probe" consequently
  drm/i915: Rename "_load"/"_unload" to match PCI entry points
  drm/i915: Drop extern qualifiers from header function prototypes
  drm/i915/gtt: Use NULL to encode scratch shadow entries
  drm/i915/gtt: Convert vm->scratch into an array
  drm/i915/gtt: Compute the radix for gen8 page table levels
  drm/i915/gtt: Markup i915_ppgtt height
  drm/i915/gtt: Reorder gen8 ppgtt free/clear/alloc
  drm/i915/gtt: Wrap page_table with page_directory
  drm/i915/gtt: Use shallow dma pages for scratch
  drm/i915: Add engine name to workaround debug print
  drm/i915: Implement read-only support in whitelist selftest
  drm/i915: Add test for invalid flag bits in whitelist entries
  drm/panel: simple: Use display_timing for AUO b101ean01
  drm/panel: simple: Use display_timing for Innolux n116bge
  drm/panel: simple: Add ability to override typical timing
  drm/vkms: Rename vkms_crc.c into vkms_composer.c
  drm/vkms: Avoid assigning 0 for possible_crtc
  drm/i915/tgl: Update DPLL clock reference register
  drm/i915/tgl: Add DPLL registers
  drm/i915/tgl: Add vbt value mapping for DDC Bus pin
  drm/i915/tgl: port to ddc pin mapping
  drm/i915/tgl: Add gmbus gpio pin to port mapping
  drm/i915/gen12: MBUS B credit change
  drm/i915/tgl: apply Display WA #1178 to fix type C dongles
  drm/i915/tgl: init ddi port A-C for Tiger Lake
  drm/i915/tgl: Add additional PHYs for Tiger Lake
  drm/i915/tgl: Add additional ports for Tiger Lake
  drm/i915/tgl: Add pll manager
  drm/i915/tgl: Add new pll ids
  drm/i915/tgl: Add power well to support 4th pipe
  drm/i915/tgl: Add power well support
  drm/i915/tgl: rename TRANSCODER_EDP_VDSC to use on transcoder A
  drm/i915/tgl: Check if pipe D is fused
  drm/i915/tgl: Add TGL PCI IDs
  drm/i915/tgl: Add TGL PCH detection in virtualized environment
  drm/i915/tgl: Introduce Tiger Lake PCH
  drm/i915/tgl: add initial Tiger Lake definitions
  drm/i915: Add 4th pipe and transcoder
  drm/i915: Don't overestimate 4:2:0 link symbol clock
  drm/i915: Copy name string into ring buffer for intel_update/disable_plane tracepoints
  drm/i915/guc: Drop redundant ctx param from kerneldoc
  drm/i915: Don't pass stack garbage to pcode in the second data register
  drm/i915: Use intel_ types in intel_atomic_commit()
  drm/i915: Use intel_ types in intel_{lock,modeset}_all_pipes()
  drm/i915: Polish intel_atomic_track_fbs()
  drm/i915: Polish intel_shared_dpll_swap_state()
  drm/i915: Simplify modeset_get_crtc_power_domains() arguments
  drm/i915: Check crtc_state->wm.need_postvbl_update before grabbing wm.mutex
  drm/i915: Use the "display core" power domain in vlv/chv set_cdclk()
  drm/i915/selftests: Hold the vma manager lock while modifying mmap_offset
  drm/i915/sdvo: Fix handling if zero hbuf size
  drm/i915/guc: Simplify guc client
  drm/i915/guc: Remove preemption support for current fw
  drm/i915/selftests: Ensure we don't clamp a random offset to 32b
  drm/i915/gt: Drop the duplicate icl workaround
  drm/i915/ehl: Enable DDI-D
  drm/i915: Transition port type checks to phy checks
  drm/i915/gen11: Convert combo PHY logic to use new 'enum phy' namespace
  drm/i915/gen11: Program ICL_DPCLKA_CFGCR0 according to PHY
  drm/i915/gen11: Start distinguishing 'phy' from 'port'
  drm/i915: move intel_ddi_set_fia_lane_count to intel_tc.c
  drm/i915: fix include order in intel_tc.*
  drm/i915: make new intel_tc.c use uncore accessors
  drm/kms: Catch mode_object lifetime errors
  drm/i915/icl: Fixed Input CSC Co-efficients for BT601/709
  drm/i915/icl: Fix Y pre-offset for Full Range YCbCr
  drm/i915/icl: Handle YCbCr to RGB conversion for BT2020 case
  drm/i915/perf: add missing delay for OA muxes configuration
  drm/i915/execlists: Record preemption for selftests
  drm/i915: Remove unused i915_gem_context_lookup_engine
  drm/i915: add infrastructure to hold off preemption on a request
  drm/i915: enumerate scratch fields
  drm/i915/perf: ensure we keep a reference on the driver
  drm/i915/userptr: Don't mark readonly objects as dirty
  drm/i915/icl: Clear the shared port PLLs from the new crtc state
  drm/i915: Clear the shared PLL from the put_dplls() hook
  drm/i915/sdvo: Add helpers to get the cmd/status string
  drm/i915/sdvo: Shrink sdvo_cmd_names[] strings
  drm/i915/sdvo: Remove duplicate SET_INPUT_TIMINGS_PART1 cmd name string
  drm/i915/sdvo: Use named initializers for the SDVO command names
  drm/i915: Add icl mipi dsi properties
  drm/i915/hdcp: debug logs for sink related failures
  drm/client: remove the exporting of drm_client_close
  drm/mgag200: Replace struct mga_fbdev with generic framebuffer emulation
  drm/bochs: Use shadow buffer for bochs framebuffer console
  drm/ast: Replace struct ast_fbdev with generic framebuffer emulation
  drm/fb-helper: Instanciate shadow FB if configured in device's mode_config
  drm/fb-helper: Map DRM client buffer only when required
  drm/client: Support unmapping of DRM client buffers
  drm/sti: Try to fix up the tvout possible clones
  drm/sti: Remove pointless casts
  drm/i915/gt: Remove presumption of RCS0
  drm/i915/gt: Apply RCS workarounds to the render class
  drm/i915/selftests: Fill in a little more of the dummy fence
  drm/i915/userptr: Acquire the page lock around set_page_dirty()
  drm/i915/selftests: Set igt_spinner.gt for early exit
  tee: optee: add might_sleep for RPC requests
  drm/i915: Update DRIVER_DATE to 20190708
  dt-bindings: display: Convert sgd,gktw70sdae4se panel to DT schema
  dt-bindings: display: Convert mitsubishi,aa121td01 panel to DT schema
  dt-bindings: display: Convert mitsubishi,aa104xd12 panel to DT schema
  dt-bindings: display: Convert innolux,ee101ia-01 panel to DT schema
  dt-bindings: display: Convert panel-lvds to DT schema
  dt-bindings: display: Convert tfc,s9700rtwv43tr-01b panel to DT schema
  dt-bindings: display: Convert raspberrypi,7inch-touchscreen panel to DT schema
  dt-bindings: display: Convert pda,91-00156-a0 panel to DT schema
  dt-bindings: display: Convert dlc,dlc0700yzg-1 panel to DT schema
  dt-bindings: display: Convert bananapi,s070wv20-ct16 panel to DT schema
  dt-bindings: display: Convert armadeus,st0700-adapt panel to DT schema
  dt-bindings: display: Convert ampire,am-480272h3tmqw-t01h panel to DT schema
  dt-bindings: display: Convert common panel bindings to DT schema
  drm/i915/selftests: Reorder error cleanup for whitelist checking
  drm/i915: Explicitly track active fw_domain timers
  drm/i915: Pull assert_forcewake_active() underneath the lock
  drm/i915/gtt: Introduce release_pd_entry
  drm/i915/gtt: Setup phys pages for 3lvl pdps
  drm/i915/gtt: Tear down setup and cleanup macros for page dma
  drm/i915/gtt: pde entry encoding is identical
  drm/i915: Remove set but not used variable 'intel_dig_port'
  drm/i915: Remove set but not used variable 'encoder'
  drm/i915: Order assert forcewake test
  drm/i915/ehl: Add support for DPLL4 (v10)
  drm/i915: Clean up skl vs. icl plane formats
  drm/i915: Cosmetic fix for skl+ plane switch statement
  drm/i915: Deal with cpp==8 for g4x watermarks
  drm/i915: Program plane gamma ramps
  drm/i915: Disable sprite gamma on ivb-bdw
  drm/i915: Add windowing for primary planes on gen2/3 and chv
  drm/i915: Move dev_priv->pm_i{m, e}r into intel_gt
  drm/i915: Remove some legacy mmio accessors from interrupt handling
  drm/i915: Rework some interrupt handling functions to take intel_gt
  drm/i915: Show instdone for each engine in debugfs
  drm/i915/selftests: Be engine agnostic
  drm/i915/overlay: Stash the kernel context on initialisation
  drm/i915/hangcheck: Look at instdone for all engines
  drm/i915/selftests: Drain the freedlists between exec passes
  drm/i915/gtt: Mark the freed page table entries with scratch
  drm/i915/gt: Pull engine w/a initialisation into common
  drm/i915: Dump w/a lists on all engines
  drm/i915/guc: Upgrade to GuC 33.0.0
  percpu: Make pcpu_setup_first_chunk() void function
  drm/i915/gtt: Handle double alloc failures
  drm/i915: Show support for accurate sw PMU busyness tracking
  drm/i915/gem: Defer obj->base.resv fini until RCU callback
  drm/i915/gt: Ignore forcewake acquisition for posting_reads
  drm/i915/gt: Assume we hold forcewake for execlists resume
  drm/i915/gt: Use caller provided forcewake for intel_mocs_init_engine
  drm/i915: Check caller held wakerefs in assert_forcewakes_active
  drm/bridge: ti-sn65dsi86: correct dsi mode_flags
  drm/bridge: ti-sn65dsi86: add debugfs
  drm/bridge: ti-sn65dsi86: add link to datasheet
  drm/i915: Flush the workqueue before draining
  drm/i915: Move the renderstate setup under gt/
  drm/i915/gtt: Defer the free for alloc error paths
  drm/bridge: sii902x: Make sii902x_audio_digital_mute static
  Revert "drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()"
  Revert "drm/panfrost: Use drm_gem_map_offset()"
  drm/i915: Add N & CTS values for 10/12 bit deep color
  drm/i915: Use port clock to set correct N value
  drm/i915: Deal with machines that expose less than three QGV points
  drm/i915: Mark up vma->active as safe for use inside shrinkers
  drm/i915: Markup potential lock for i915_active
  drm/i915/gem: Free pages before rcu-freeing the object
  drm/i915/execlists: Hesitate before slicing
  drm/i915/selftests: Lock the drm_mm while modifying
  drm/i915/selftests: Common live setup/teardown
  drm/i915/display: Handle lost primary_port across suspend
  drm/i915: synchronize_irq() against the actual irq
  drm/vram: Don't export driver callback functions for PRIME
  drm/vbox: Remove empty PRIME functions
  drm/hibmc: Update struct drm_driver for GEM object functions
  drm/bochs: Remove PRIME helpers from driver structure
  drm/vram: Set GEM object functions for PRIME
  drm/i915/gtt: Don't check PPGTT presence on PPGTT-only platforms
  Revert "drm/i915: Introduce private PAT management"
  drm/i915: Fix memleak in runtime wakeref tracking
  drm/i915/icl: whitelist PS_(DEPTH|INVOCATION)_COUNT
  drm/i915: whitelist PS_(DEPTH|INVOCATION)_COUNT
  drm/i915: fix whitelist selftests with readonly registers
  drm/i915: Report if i915_active is still busy upon waiting
  DRM: ingenic: Add support for panels with 8-bit serial bus
  DRM: ingenic: Add support for Sharp panels
  DRM: ingenic: Use devm_platform_ioremap_resource
  drm/i915/execlists: Refactor CSB state machine
  drm/i915/ehl: Don't program PHY_MISC on EHL PHY C
  drm/i915/ehl: Add third combo PHY offset
  drm/i915/icl: Drop port parameter to icl_get_combo_buf_trans()
  drm/i915/guc: Avoid reclaim locks during reset
  drm/i915: WARN about invalid lane reversal in TBT-alt/DP-alt modes
  drm/i915: Remove unneeded disconnect in TypeC legacy port mode
  drm/i915: Add state verification for the TypeC port mode
  drm/i915: Keep the TypeC port mode fixed when the port is active
  drm/i915/icl: Reserve all required PLLs for TypeC ports
  drm/i915/icl: Split getting the DPLLs to port type specific functions
  drm/i915: Sanitize the shared DPLL find/reference interface
  drm/i915: Sanitize the shared DPLL reserve/release interface
  drm/i915: Sanitize the TypeC FIA lane configuration decoding
  drm/i915: Keep the TypeC port mode fixed for detect/AUX transfers
  drm/i915: Fix the TypeC port mode sanitization during loading/resume
  drm/i915: Sanitize the TypeC connect/detect sequences
  drm/i915: Handle the TCCOLD power-down event
  drm/i915: Wait for TypeC PHY complete flag to clear in safe mode
  drm/i915: Factor out common parts from TypeC port handling functions
  drm/i915: Unify the TypeC port notation in debug/error messages
  drm/i915: Use the correct AUX power domain in TypeC TBT-alt mode
  drm/i915: Fix the TBT AUX power well enabling
  drm/i915: Don't enable the DDI-IO power in the TypeC TBT-alt mode
  drm/i915: Sanitize the terminology used for TypeC port modes
  drm/i915: Move the TypeC port handling code to a separate file
  drm/i915: Tune down WARNs about TBT AUX power well enabling
  drm/i915/icl: Add support to read out the TBT PLL HW state
  drm/bridge: dw-hdmi: Use automatic CTS generation mode when using non-AHB audio
  drm/bridge: tc358767: do a software reset if reset pin isn't connected
  drm/bridge: adv7511: Attach to DSI host at probe time
  drm/stm: drop use of drmP.h
  drm/i915: Use intel state as much as possible in wm code
  drm/i915: Pass intel state to plane functions as well
  drm/i915: Use intel_crtc_state in sanitize_watermarks() too
  drm/i915: Convert hw state verifier to take more intel state, v2.
  drm/i915: Convert most of atomic commit to take more intel state
  drm/i915: Pass intel_crtc_state to needs_modeset()
  MAINTAINERS: add Sam Ravnborg for drm/atmel_hlcdc
  drm/mgag200: drop use of drmP.h
  drm/mga: drop use of drmP.h
  drm/mga: make header file self contained
  drm/mga: drop dependency on drm_os_linux.h
  drm/panfrost: Use drm_gem_map_offset()
  drm/gem: Rename drm_gem_dumb_map_offset() to drm_gem_map_offset()
  drm/i915: rework reading pipe disable fuses
  drm/vmwgfx: Don't look at state->allow_modeset
  dma-buf: cleanup reservation_object_init/fini
  drm/ast: Replace struct ast_framebuffer with GEM framebuffer helpers
  drm/vc4: Use drm_gem_fb_prepare_fb
  drm/msm: Use drm_gem_fb_prepare_fb
  drm/fb-helper: use gem_bo.resv, not dma_buf.resv in prepare_fb
  drm/mgag200: Replace struct mga_framebuffer with GEM framebuffer helpers
  drm/i915: Make i945gm_vblank_work_func static
  drm/bridge: tc358767: Add support for address-only I2C transfers
  drm/bridge: tc358767: Replace magic number in tc_main_link_enable()
  drm/bridge: tc358767: Drop unnecessary 8 byte buffer
  drm/bridge: tc358767: Simplify tc_aux_wait_busy()
  drm/bridge: tc358767: Introduce tc_pllupdate()
  drm/bridge: tc358767: Introduce tc_set_syspllparam()
  drm/bridge: tc358767: Use reported AUX transfer size
  drm/bridge: tc358767: Increase AUX transfer length limit
  drm/bridge: tc358767: Simplify AUX data write
  drm/bridge: tc358767: Simplify AUX data read
  drm/bridge: tc358767: Drop custom tc_write()/tc_read() accessors
  drm/bridge: tc358767: Simplify tc_set_video_mode()
  drm/bridge: tc358767: Simplify polling in tc_link_training()
  drm/bridge: tc358767: Simplify polling in tc_main_link_setup()
  drm/bridge: tc358767: Simplify tc_poll_timeout()
  dt-bindings: display: rockchip-lvds: Remove panel references
  drm/mgag200: add in missing { } around if block
  drm/i915: make intel_uc_fw.h self-contained
  drm/i915: make intel_gvt.h self-contained
  drm/i915: make intel_guc_reg.h self-contained
  drm/i915: make intel_guc_fwif.h self-contained
  drm/i915: make intel_guc_ct.h self-contained
  drm/i915: make i915_vgpu.h self-contained
  drm/i915: make i915_pvinfo.h self-contained
  drm/i915: make i915_globals.h self-contained
  drm/i915: make i915_fixed.h self-contained
  drm/i915: add header search path to subdir Makefiles
  drm/i915: prefix header search path with $(srctree)/
  drm/vkms: No need for ->pages_lock in crc work anymore
  drm/vkms: totally reworked crc data tracking
  drm/vkms: No _irqsave within spin_lock_irq needed
  drm/vkms: Dont flush crc worker when we change crc status
  drm/vkms: flush crc workers earlier in commit flow
  drm/vkms: Add our own commit_tail
  drm/vkms: Rename vkms_output.state_lock to crc_lock
  drm/vkms: Use spin_lock_irq in process context
  drm/vkms: Fix crc worker races
  drm/i915: Move OA files to separate folder
  drm: Allow range of 0 for drm_mm_insert_node_in_range()
  drm/i915/ehl: Add voltage level requirement table
  drm/i915/ehl: Remove unsupported cd clocks
  drm/i915/icl: Add new supported CD clocks
  drm/i915: Lift intel_engines_resume() to callers
  drm/i915: Only recover active engines
  drm/i915: Add a wakeref getter for iff the wakeref is already active
  drm/i915: Initialize drm_driver vblank funcs at compile time
  drm/i915: Nuke drm_driver irq vfuncs
  drm/i915: Switch to per-crtc vblank vfuncs
  drm/i915: Fix various tracepoints for gen2
  drm/i915/selftests: Fixup atomic reset checking
  drm/i915/selftests: Drop manual request wakerefs around hangcheck
  drm/i915/selftests: Serialise nop reset with retirement
  drm/i915: Check backlight type while doing eDP backlight initializaiton
  drm/virtio: drop DRM_AUTH usage from the driver
  drm/vgem: drop DRM_AUTH usage from the driver
  drm/omap: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls
  drm/nouveau: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls
  drm/msm: drop DRM_AUTH usage from the driver
  drm/lima: drop DRM_AUTH usage from the driver
  drm/exynos: drop DRM_AUTH from DRM_RENDER_ALLOW ioctls
  drm/etnaviv: drop DRM_AUTH usage from the driver
  drm/vmwgfx: use core drm to extend/check vmw_execbuf_ioctl
  drm/vmgfx: kill off unused init_mutex
  vmwgfx: drop empty lastclose stub
  drm/nouveau: remove open-coded drm_invalid_op()
  drm/i915: remove irrelevant DRM_UNLOCKED flag
  drm/tegra: remove irrelevant DRM_UNLOCKED flag
  dt-bindings: panel: Add Boe Himax8279d is 1200x1920, 4-lane MIPI-DSI LCD panel
  dt-bindings: display: Add ETM0700G0DH6 compatible string
  drm/panel: jh057n00900: Add regulator support
  dt-bindings: display/panel: jh057n00900: Document power supply properties
  drm/panel: jh057n00900: Don't use magic constant
  MAINTAINERS: Add Purism mail alias as reviewer for their devkit's panel
  drm/panel: Add support for Raydium RM67191 panel driver
  dt-bindings: display: panel: Add support for Raydium RM67191 panel
  drm/panel: simple: Add Sharp LS020B1DD01D panel support
  drm: Add bus flag for Sharp-specific signals
  dt-bindings: display: Add Sharp LS020B1DD01D panel documentation
  drm/panel: Add Novatek NT39016 panel support
  dt-bindings: display: Add King Display KD035G6-54NT panel documentation
  drm/i915/icl: Add missing device ID
  MAINTAINERS: Update Maintainers and Reviewers of DRM Bridge Drivers
  drm/i915/gt: Add some debug tracing for context pinning
  drm/panel: simple: Add Ortustech COM37H3M panel support
  drm/panel: simple: Add Sharp LQ070Y3DG3B panel support
  dt-bindings: drm/panel: simple: add sharp, lq070y3dg3b panel
  dt-bindings: drm/panel: simple: add ortustech, com37h3m99dtc panel
  dt-bindings: drm/panel: simple: add ortustech, com37h3m05dtc panel
  drm/i915/gt: Always call kref_init for the timeline
  drm/i915/gt: Drop stale commentary for timeline density
  drm/i915/selftests: Hold ref on request across waits
  drm/panel: simple: Add GiantPlus GPM940B0 panel support
  media: uapi: Add MEDIA_BUS_FMT_RGB888_3X8 media bus format
  dt-bindings: display: Add GiantPlus GPM940B0 panel documentation
  drm/i915: Rename intel_wakeref_[is]_active
  drm/i915/gt: Pass intel_gt to pm routines
  drm/i915/guc: Add debug capture of GuC exception
  drm/i915/execlists: Convert recursive defer_request() into iterative
  drm/i915/ehl: Add missing VECS engine
  drm/msm: Drop robj from msm_gem_new_impl
  drm/etnaviv: Drop resv argument from etnaviv_gem_new_impl
  drm/todo: Add new debugfs todo
  drm/todo: Update mmap todo
  drm/todo: Update backlight todo
  drm/todo: remove gem_prime_import/export todo
  drm/vc4: Don set gem_obj->resv in prime import anymore
  drm/panfrost: don't set gem_obj->resv for prime import anymore
  drm/mediatek: Use drm_atomic_helper_wait_for_fences
  drm/lima: Drop resv argument from lima_bo_create_struct
  drm/i915/ehl: Add one additional PCH ID to MCC
  drm/i915/perf: fix ICL perf register offsets
  drm/i915: Disable SAMPLER_STATE prefetching on all Gen11 steppings.
  dt-bindings: display: Convert tpo,tpg110 panel to DT schema
  drm/mcde: Fix uninitialized variable
  drm/i915/gem: Clear read/write domains for GPU clear
  drm/sun4i: Eliminate pointless on stack copy of drm_display_info
  drm: WARN on illegal aspect ratio when converting a mode to umode
  drm: Do not accept garbage mode aspect ratio flags
  drm: Do not use bitwise OR to set picure_aspect_ratio
  drm/connector: Fix warning in debug message
  drm/bridge/synopsys: dsi: Allow VPG to be enabled via debugfs
  drm/i915/execlists: Always clear ring_pause if we do not submit
  drm/lima: Reduce the amount of logs on deferred probe of clocks and reset controller
  drm/lima: Reduce number of PTR_ERR() calls
  drm/lima: Reduce the amount of logs on deferred probe
  drm/lima: Mark 64-bit number as ULL
  drm/i915/blt: Remove recursive vma->lock
  drm/vgem: Ditch attach trickery in the fence ioctl
  drm/prime: automatically set gem_obj->resv on import
  drm/i915: Local debug BUG_ON for intel_wakeref
  drm/i915: Provide an i915_active.acquire callback
  drm/i915: Throw away the active object retirement complexity
  drm/i915: Track i915_active using debugobjects
  drm/i915: Remove waiting & retiring from shrinker paths
  drm/i915/guc: handle GuC messages received with CTB disabled
  drm/i915/guc: reorder enable/disable communication steps
  drm/vram-helper: Drop drm_gem_prime_export/import
  drm/zte: Drop drm_gem_prime_export/import
  drm/xen: Drop drm_gem_prime_export/import
  drm/virtio: Drop drm_gem_prime_export/import
  drm/vgem: Drop drm_gem_prime_export
  drm/radeon: Drop drm_gem_prime_import
  drm/vc3: Drop drm_gem_prime_import
  drm/vboxvideo: Drop drm_gem_prime_export/import
  drm/tve2000: Drop drm_gem_prime_export/import
  drm/tilcdc: Drop drm_gem_prime_export/import
  drm/stm: Drop drm_gem_prime_export/import
  drm/sti: Drop drm_gem_prime_export/import
  drm/shmob: Drop drm_gem_prime_export/import
  drm/rockchip: Drop drm_gem_prime_export/import
  drm/rcar-du: Drop drm_gem_prime_export/import
  drm/qxl: Drop drm_gem_prime_export/import
  drm/pl111: Drop drm_gem_prime_export/import
  drm/nouveau: Drop drm_gem_prime_export/import
  drm/mxsfb: Drop drm_gem_prime_export/import
  drm/msm: Drop drm_gem_prime_export/import
  drm/meson: Drop drm_gem_prime_export/import
  drm/mtk: Drop drm_gem_prime_export/import
  drm/mcde: Drop drm_gem_prime_export/import
  drm/imx: Drop drm_gem_prime_export/import
  drm/hisilicon: Drop drm_gem_prime_export/import
  drm/fsl-dcu: Drop drm_gem_prime_export/import
  drm/exynos: Drop drm_gem_prime_export
  drm/etnaviv: Drop drm_gem_prime_export/import
  drm/atmel: Drop drm_gem_prime_export/import
  drm/arm: Drop drm_gem_prime_export/import
  drm/arc: Drop drm_gem_prime_export/import
  drm/ioctl: Ditch DRM_UNLOCKED except for the legacy vblank ioctl
  drm/prime: Align gem_prime_export with obj_funcs.export
  drm/omapdrm: drop fb_debug_enter/leave
  drm/arm/komeda: Remove DRIVER_HAVE_IRQ
  drm/prime: Actually remove DRIVER_PRIME everywhere
  drm/i915/gt: Fixup kerneldoc parameters
  drm/i915/gt: Rename i915_gt_timelines
  drm/i915: Prevent dereference of engine before NULL check in error capture
  drm/i915: Eliminate dual personality of i915_scratch_offset
  drm/i915: Rename i915_timeline to intel_timeline and move under gt
  drm/i915: Make timelines gt centric
  drm/i915: Save trip via top-level i915 in a few more places
  drm/i915: Compartmentalize ring buffer creation
  drm/i915: Store ggtt pointer in intel_gt
  drm/i915: Compartmentalize i915_gem_init_ggtt
  drm/i915: Compartmentalize i915_ggtt_cleanup_hw
  drm/i915: Compartmentalize timeline_init/park/fini
  drm/i915: Move i915_gem_chipset_flush to intel_gt
  drm/i915: Convert i915_gem_flush_ggtt_writes to intel_gt
  drm/i915: Compartmentalize i915_gem_suspend/restore_gtt_mappings
  drm/i915: Store intel_gt backpointer in vm
  drm/i915: Make ggtt invalidation work on ggtt
  drm/i915: Compartmentalize i915_ggtt_init_hw
  drm/i915: Compartmentalize i915_ggtt_probe_hw
  drm/i915: Stop using I915_READ/WRITE in intel_wopcm_init_hw
  drm/i915: Move intel_engines_resume into common init
  drm/i915: Convert i915_gem_init_hw to intel_gt
  drm/i915: Consolidate some open coded mmio rmw
  drm/i915: Convert i915_ppgtt_init_hw to intel_gt
  drm/i915: Convert intel_mocs_init_l3cc_table to intel_gt
  drm/i915: Store backpointer to intel_gt in the engine
  drm/i915: Convert gt workarounds to intel_gt
  drm/i915: Convert init_unused_rings to intel_gt
  drm/i915: Use intel_uncore_rmw in intel_gt_init_swizzling
  drm/i915: Convert i915_gem_init_swizzling to intel_gt
  drm/i915: Make i915_check_and_clear_faults take intel_gt
  drm/i915: Move intel_gt_pm_init under intel_gt_init_early
  drm/i915: Store some backpointers in struct intel_gt
  drm/i915: Move intel_gt initialization to a separate file
  drm/i915: Introduce struct intel_gt as replacement for anonymous i915->gt
  drm/i915: Convert intel_vgt_(de)balloon to uncore
  drm/prime: Make DRIVER_PRIME a no-op
  drm/prime: Unconditionally set up the prime file private
  drm/prime: Update docs
  drm/prime: Shuffle functions.
  drm/sti: Remove duplicated include from sti_drv.c
  drm/i915/execlists: Keep virtual context alive until after we kick
  drm/i915/gtt: Defer address space cleanup to an RCU worker
  drm/i915/ehl/dsi: Enable AFE over PPI strap
  drm/i915/ehl/dsi: Set lane latency optimization for DW1
  drm/i915/selftests: Use request managed wakerefs
  drm/i915: Rings are always flushed
  drm/i915/execlists: Minimalistic timeslicing
  drm/i915/execlists: Preempt-to-busy
  drm/i915/gvt: decouple check_vgpu() from uncore_init()
  drm/i915: dynamically allocate forcewake domains
  drm/i915: skip forcewake actions on forcewake-less uncore
  drm/i915: kill uncore_to_i915
  drm/i915: kill uncore_sanitize
  drm/i915: use vfuncs for reg_read/write_fw_domains
  drm/i915: Keep rings pinned while the context is active
  drm/i915/ehl: Allow combo PHY A to drive a third external display
  drm/i915: Flush the execution-callbacks on retiring
  drm/i915: Signal fence completion from i915_request_wait
  KVM: PPC: Book3S PR: Fix software breakpoints
  KVM: PPC: Remove leftover comment from emulate_loadstore.c
  soc: fsl: qe: fold qe_get_num_of_snums into qe_snums_init
  soc: fsl: qe: support fsl,qe-snums property
  dt-bindings: soc: fsl: qe: document new fsl,qe-snums binding
  soc: fsl: qe: introduce qe_get_device_node helper
  soc: fsl: qe: reduce static memory footprint by 1.7K
  soc: fsl: qe: drop useless static qualifier
  soc: fsl: fix spelling mistake "Firmaware" -> "Firmware"

Change-Id: I43ee11d1dc662673236686d81371f6042176bf9e
Signed-off-by: Raghavendra Rao Ananta <rananta@codeaurora.org>
2019-10-10 20:02:38 -07:00

6004 lines
164 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
/*
* kernel/workqueue.c - generic async execution with shared worker pool
*
* Copyright (C) 2002 Ingo Molnar
*
* Derived from the taskqueue/keventd code by:
* David Woodhouse <dwmw2@infradead.org>
* Andrew Morton
* Kai Petzke <wpp@marie.physik.tu-berlin.de>
* Theodore Ts'o <tytso@mit.edu>
*
* Made to use alloc_percpu by Christoph Lameter.
*
* Copyright (C) 2010 SUSE Linux Products GmbH
* Copyright (C) 2010 Tejun Heo <tj@kernel.org>
*
* This is the generic async execution mechanism. Work items as are
* executed in process context. The worker pool is shared and
* automatically managed. There are two worker pools for each CPU (one for
* normal work items and the other for high priority ones) and some extra
* pools for workqueues which are not bound to any specific CPU - the
* number of these backing pools is dynamic.
*
* Please read Documentation/core-api/workqueue.rst for details.
*/
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/signal.h>
#include <linux/completion.h>
#include <linux/workqueue.h>
#include <linux/slab.h>
#include <linux/cpu.h>
#include <linux/notifier.h>
#include <linux/kthread.h>
#include <linux/hardirq.h>
#include <linux/mempolicy.h>
#include <linux/freezer.h>
#include <linux/debug_locks.h>
#include <linux/lockdep.h>
#include <linux/idr.h>
#include <linux/jhash.h>
#include <linux/hashtable.h>
#include <linux/rculist.h>
#include <linux/nodemask.h>
#include <linux/moduleparam.h>
#include <linux/uaccess.h>
#include <linux/sched/isolation.h>
#include <linux/nmi.h>
#include <linux/bug.h>
#include <linux/delay.h>
#include "workqueue_internal.h"
enum {
/*
* worker_pool flags
*
* A bound pool is either associated or disassociated with its CPU.
* While associated (!DISASSOCIATED), all workers are bound to the
* CPU and none has %WORKER_UNBOUND set and concurrency management
* is in effect.
*
* While DISASSOCIATED, the cpu may be offline and all workers have
* %WORKER_UNBOUND set and concurrency management disabled, and may
* be executing on any CPU. The pool behaves as an unbound one.
*
* Note that DISASSOCIATED should be flipped only while holding
* wq_pool_attach_mutex to avoid changing binding state while
* worker_attach_to_pool() is in progress.
*/
POOL_MANAGER_ACTIVE = 1 << 0, /* being managed */
POOL_DISASSOCIATED = 1 << 2, /* cpu can't serve workers */
/* worker flags */
WORKER_DIE = 1 << 1, /* die die die */
WORKER_IDLE = 1 << 2, /* is idle */
WORKER_PREP = 1 << 3, /* preparing to run works */
WORKER_CPU_INTENSIVE = 1 << 6, /* cpu intensive */
WORKER_UNBOUND = 1 << 7, /* worker is unbound */
WORKER_REBOUND = 1 << 8, /* worker was rebound */
WORKER_NOT_RUNNING = WORKER_PREP | WORKER_CPU_INTENSIVE |
WORKER_UNBOUND | WORKER_REBOUND,
NR_STD_WORKER_POOLS = 2, /* # standard pools per cpu */
UNBOUND_POOL_HASH_ORDER = 6, /* hashed by pool->attrs */
BUSY_WORKER_HASH_ORDER = 6, /* 64 pointers */
MAX_IDLE_WORKERS_RATIO = 4, /* 1/4 of busy can be idle */
IDLE_WORKER_TIMEOUT = 300 * HZ, /* keep idle ones for 5 mins */
MAYDAY_INITIAL_TIMEOUT = HZ / 100 >= 2 ? HZ / 100 : 2,
/* call for help after 10ms
(min two ticks) */
MAYDAY_INTERVAL = HZ / 10, /* and then every 100ms */
CREATE_COOLDOWN = HZ, /* time to breath after fail */
/*
* Rescue workers are used only on emergencies and shared by
* all cpus. Give MIN_NICE.
*/
RESCUER_NICE_LEVEL = MIN_NICE,
HIGHPRI_NICE_LEVEL = MIN_NICE,
WQ_NAME_LEN = 24,
};
/*
* Structure fields follow one of the following exclusion rules.
*
* I: Modifiable by initialization/destruction paths and read-only for
* everyone else.
*
* P: Preemption protected. Disabling preemption is enough and should
* only be modified and accessed from the local cpu.
*
* L: pool->lock protected. Access with pool->lock held.
*
* X: During normal operation, modification requires pool->lock and should
* be done only from local cpu. Either disabling preemption on local
* cpu or grabbing pool->lock is enough for read access. If
* POOL_DISASSOCIATED is set, it's identical to L.
*
* A: wq_pool_attach_mutex protected.
*
* PL: wq_pool_mutex protected.
*
* PR: wq_pool_mutex protected for writes. RCU protected for reads.
*
* PW: wq_pool_mutex and wq->mutex protected for writes. Either for reads.
*
* PWR: wq_pool_mutex and wq->mutex protected for writes. Either or
* RCU for reads.
*
* WQ: wq->mutex protected.
*
* WR: wq->mutex protected for writes. RCU protected for reads.
*
* MD: wq_mayday_lock protected.
*/
/* struct worker is defined in workqueue_internal.h */
struct worker_pool {
spinlock_t lock; /* the pool lock */
int cpu; /* I: the associated cpu */
int node; /* I: the associated node ID */
int id; /* I: pool ID */
unsigned int flags; /* X: flags */
unsigned long watchdog_ts; /* L: watchdog timestamp */
struct list_head worklist; /* L: list of pending works */
int nr_workers; /* L: total number of workers */
int nr_idle; /* L: currently idle workers */
struct list_head idle_list; /* X: list of idle workers */
struct timer_list idle_timer; /* L: worker idle timeout */
struct timer_list mayday_timer; /* L: SOS timer for workers */
/* a workers is either on busy_hash or idle_list, or the manager */
DECLARE_HASHTABLE(busy_hash, BUSY_WORKER_HASH_ORDER);
/* L: hash of busy workers */
struct worker *manager; /* L: purely informational */
struct list_head workers; /* A: attached workers */
struct completion *detach_completion; /* all workers detached */
struct ida worker_ida; /* worker IDs for task name */
struct workqueue_attrs *attrs; /* I: worker attributes */
struct hlist_node hash_node; /* PL: unbound_pool_hash node */
int refcnt; /* PL: refcnt for unbound pools */
/*
* The current concurrency level. As it's likely to be accessed
* from other CPUs during try_to_wake_up(), put it in a separate
* cacheline.
*/
atomic_t nr_running ____cacheline_aligned_in_smp;
/*
* Destruction of pool is RCU protected to allow dereferences
* from get_work_pool().
*/
struct rcu_head rcu;
} ____cacheline_aligned_in_smp;
/*
* The per-pool workqueue. While queued, the lower WORK_STRUCT_FLAG_BITS
* of work_struct->data are used for flags and the remaining high bits
* point to the pwq; thus, pwqs need to be aligned at two's power of the
* number of flag bits.
*/
struct pool_workqueue {
struct worker_pool *pool; /* I: the associated pool */
struct workqueue_struct *wq; /* I: the owning workqueue */
int work_color; /* L: current color */
int flush_color; /* L: flushing color */
int refcnt; /* L: reference count */
int nr_in_flight[WORK_NR_COLORS];
/* L: nr of in_flight works */
int nr_active; /* L: nr of active works */
int max_active; /* L: max active works */
struct list_head delayed_works; /* L: delayed works */
struct list_head pwqs_node; /* WR: node on wq->pwqs */
struct list_head mayday_node; /* MD: node on wq->maydays */
/*
* Release of unbound pwq is punted to system_wq. See put_pwq()
* and pwq_unbound_release_workfn() for details. pool_workqueue
* itself is also RCU protected so that the first pwq can be
* determined without grabbing wq->mutex.
*/
struct work_struct unbound_release_work;
struct rcu_head rcu;
} __aligned(1 << WORK_STRUCT_FLAG_BITS);
/*
* Structure used to wait for workqueue flush.
*/
struct wq_flusher {
struct list_head list; /* WQ: list of flushers */
int flush_color; /* WQ: flush color waiting for */
struct completion done; /* flush completion */
};
struct wq_device;
/*
* The externally visible workqueue. It relays the issued work items to
* the appropriate worker_pool through its pool_workqueues.
*/
struct workqueue_struct {
struct list_head pwqs; /* WR: all pwqs of this wq */
struct list_head list; /* PR: list of all workqueues */
struct mutex mutex; /* protects this wq */
int work_color; /* WQ: current work color */
int flush_color; /* WQ: current flush color */
atomic_t nr_pwqs_to_flush; /* flush in progress */
struct wq_flusher *first_flusher; /* WQ: first flusher */
struct list_head flusher_queue; /* WQ: flush waiters */
struct list_head flusher_overflow; /* WQ: flush overflow list */
struct list_head maydays; /* MD: pwqs requesting rescue */
struct worker *rescuer; /* I: rescue worker */
int nr_drainers; /* WQ: drain in progress */
int saved_max_active; /* WQ: saved pwq max_active */
struct workqueue_attrs *unbound_attrs; /* PW: only for unbound wqs */
struct pool_workqueue *dfl_pwq; /* PW: only for unbound wqs */
#ifdef CONFIG_SYSFS
struct wq_device *wq_dev; /* I: for sysfs interface */
#endif
#ifdef CONFIG_LOCKDEP
char *lock_name;
struct lock_class_key key;
struct lockdep_map lockdep_map;
#endif
char name[WQ_NAME_LEN]; /* I: workqueue name */
/*
* Destruction of workqueue_struct is RCU protected to allow walking
* the workqueues list without grabbing wq_pool_mutex.
* This is used to dump all workqueues from sysrq.
*/
struct rcu_head rcu;
/* hot fields used during command issue, aligned to cacheline */
unsigned int flags ____cacheline_aligned; /* WQ: WQ_* flags */
struct pool_workqueue __percpu *cpu_pwqs; /* I: per-cpu pwqs */
struct pool_workqueue __rcu *numa_pwq_tbl[]; /* PWR: unbound pwqs indexed by node */
};
static struct kmem_cache *pwq_cache;
static cpumask_var_t *wq_numa_possible_cpumask;
/* possible CPUs of each node */
static bool wq_disable_numa;
module_param_named(disable_numa, wq_disable_numa, bool, 0444);
/* see the comment above the definition of WQ_POWER_EFFICIENT */
static bool wq_power_efficient = IS_ENABLED(CONFIG_WQ_POWER_EFFICIENT_DEFAULT);
module_param_named(power_efficient, wq_power_efficient, bool, 0444);
static bool wq_online; /* can kworkers be created yet? */
static bool wq_numa_enabled; /* unbound NUMA affinity enabled */
/* buf for wq_update_unbound_numa_attrs(), protected by CPU hotplug exclusion */
static struct workqueue_attrs *wq_update_unbound_numa_attrs_buf;
static DEFINE_MUTEX(wq_pool_mutex); /* protects pools and workqueues list */
static DEFINE_MUTEX(wq_pool_attach_mutex); /* protects worker attach/detach */
static DEFINE_SPINLOCK(wq_mayday_lock); /* protects wq->maydays list */
static DECLARE_WAIT_QUEUE_HEAD(wq_manager_wait); /* wait for manager to go away */
static LIST_HEAD(workqueues); /* PR: list of all workqueues */
static bool workqueue_freezing; /* PL: have wqs started freezing? */
/* PL: allowable cpus for unbound wqs and work items */
static cpumask_var_t wq_unbound_cpumask;
/* CPU where unbound work was last round robin scheduled from this CPU */
static DEFINE_PER_CPU(int, wq_rr_cpu_last);
/*
* Local execution of unbound work items is no longer guaranteed. The
* following always forces round-robin CPU selection on unbound work items
* to uncover usages which depend on it.
*/
#ifdef CONFIG_DEBUG_WQ_FORCE_RR_CPU
static bool wq_debug_force_rr_cpu = true;
#else
static bool wq_debug_force_rr_cpu = false;
#endif
module_param_named(debug_force_rr_cpu, wq_debug_force_rr_cpu, bool, 0644);
/* the per-cpu worker pools */
static DEFINE_PER_CPU_SHARED_ALIGNED(struct worker_pool [NR_STD_WORKER_POOLS], cpu_worker_pools);
static DEFINE_IDR(worker_pool_idr); /* PR: idr of all pools */
/* PL: hash of all unbound pools keyed by pool->attrs */
static DEFINE_HASHTABLE(unbound_pool_hash, UNBOUND_POOL_HASH_ORDER);
/* I: attributes used when instantiating standard unbound pools on demand */
static struct workqueue_attrs *unbound_std_wq_attrs[NR_STD_WORKER_POOLS];
/* I: attributes used when instantiating ordered pools on demand */
static struct workqueue_attrs *ordered_wq_attrs[NR_STD_WORKER_POOLS];
struct workqueue_struct *system_wq __read_mostly;
EXPORT_SYMBOL(system_wq);
struct workqueue_struct *system_highpri_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_highpri_wq);
struct workqueue_struct *system_long_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_long_wq);
struct workqueue_struct *system_unbound_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_unbound_wq);
struct workqueue_struct *system_freezable_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_freezable_wq);
struct workqueue_struct *system_power_efficient_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_power_efficient_wq);
struct workqueue_struct *system_freezable_power_efficient_wq __read_mostly;
EXPORT_SYMBOL_GPL(system_freezable_power_efficient_wq);
static int worker_thread(void *__worker);
static void workqueue_sysfs_unregister(struct workqueue_struct *wq);
#define CREATE_TRACE_POINTS
#include <trace/events/workqueue.h>
#define assert_rcu_or_pool_mutex() \
RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
!lockdep_is_held(&wq_pool_mutex), \
"RCU or wq_pool_mutex should be held")
#define assert_rcu_or_wq_mutex(wq) \
RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
!lockdep_is_held(&wq->mutex), \
"RCU or wq->mutex should be held")
#define assert_rcu_or_wq_mutex_or_pool_mutex(wq) \
RCU_LOCKDEP_WARN(!rcu_read_lock_held() && \
!lockdep_is_held(&wq->mutex) && \
!lockdep_is_held(&wq_pool_mutex), \
"RCU, wq->mutex or wq_pool_mutex should be held")
#define for_each_cpu_worker_pool(pool, cpu) \
for ((pool) = &per_cpu(cpu_worker_pools, cpu)[0]; \
(pool) < &per_cpu(cpu_worker_pools, cpu)[NR_STD_WORKER_POOLS]; \
(pool)++)
/**
* for_each_pool - iterate through all worker_pools in the system
* @pool: iteration cursor
* @pi: integer used for iteration
*
* This must be called either with wq_pool_mutex held or RCU read
* locked. If the pool needs to be used beyond the locking in effect, the
* caller is responsible for guaranteeing that the pool stays online.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pool(pool, pi) \
idr_for_each_entry(&worker_pool_idr, pool, pi) \
if (({ assert_rcu_or_pool_mutex(); false; })) { } \
else
/**
* for_each_pool_worker - iterate through all workers of a worker_pool
* @worker: iteration cursor
* @pool: worker_pool to iterate workers of
*
* This must be called with wq_pool_attach_mutex.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pool_worker(worker, pool) \
list_for_each_entry((worker), &(pool)->workers, node) \
if (({ lockdep_assert_held(&wq_pool_attach_mutex); false; })) { } \
else
/**
* for_each_pwq - iterate through all pool_workqueues of the specified workqueue
* @pwq: iteration cursor
* @wq: the target workqueue
*
* This must be called either with wq->mutex held or RCU read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
* The if/else clause exists only for the lockdep assertion and can be
* ignored.
*/
#define for_each_pwq(pwq, wq) \
list_for_each_entry_rcu((pwq), &(wq)->pwqs, pwqs_node) \
if (({ assert_rcu_or_wq_mutex(wq); false; })) { } \
else
#ifdef CONFIG_DEBUG_OBJECTS_WORK
static struct debug_obj_descr work_debug_descr;
static void *work_debug_hint(void *addr)
{
return ((struct work_struct *) addr)->func;
}
static bool work_is_static_object(void *addr)
{
struct work_struct *work = addr;
return test_bit(WORK_STRUCT_STATIC_BIT, work_data_bits(work));
}
/*
* fixup_init is called when:
* - an active object is initialized
*/
static bool work_fixup_init(void *addr, enum debug_obj_state state)
{
struct work_struct *work = addr;
switch (state) {
case ODEBUG_STATE_ACTIVE:
cancel_work_sync(work);
debug_object_init(work, &work_debug_descr);
return true;
default:
return false;
}
}
/*
* fixup_free is called when:
* - an active object is freed
*/
static bool work_fixup_free(void *addr, enum debug_obj_state state)
{
struct work_struct *work = addr;
switch (state) {
case ODEBUG_STATE_ACTIVE:
cancel_work_sync(work);
debug_object_free(work, &work_debug_descr);
return true;
default:
return false;
}
}
static struct debug_obj_descr work_debug_descr = {
.name = "work_struct",
.debug_hint = work_debug_hint,
.is_static_object = work_is_static_object,
.fixup_init = work_fixup_init,
.fixup_free = work_fixup_free,
};
static inline void debug_work_activate(struct work_struct *work)
{
debug_object_activate(work, &work_debug_descr);
}
static inline void debug_work_deactivate(struct work_struct *work)
{
debug_object_deactivate(work, &work_debug_descr);
}
void __init_work(struct work_struct *work, int onstack)
{
if (onstack)
debug_object_init_on_stack(work, &work_debug_descr);
else
debug_object_init(work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(__init_work);
void destroy_work_on_stack(struct work_struct *work)
{
debug_object_free(work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(destroy_work_on_stack);
void destroy_delayed_work_on_stack(struct delayed_work *work)
{
destroy_timer_on_stack(&work->timer);
debug_object_free(&work->work, &work_debug_descr);
}
EXPORT_SYMBOL_GPL(destroy_delayed_work_on_stack);
#else
static inline void debug_work_activate(struct work_struct *work) { }
static inline void debug_work_deactivate(struct work_struct *work) { }
#endif
/**
* worker_pool_assign_id - allocate ID and assing it to @pool
* @pool: the pool pointer of interest
*
* Returns 0 if ID in [0, WORK_OFFQ_POOL_NONE) is allocated and assigned
* successfully, -errno on failure.
*/
static int worker_pool_assign_id(struct worker_pool *pool)
{
int ret;
lockdep_assert_held(&wq_pool_mutex);
ret = idr_alloc(&worker_pool_idr, pool, 0, WORK_OFFQ_POOL_NONE,
GFP_KERNEL);
if (ret >= 0) {
pool->id = ret;
return 0;
}
return ret;
}
/**
* unbound_pwq_by_node - return the unbound pool_workqueue for the given node
* @wq: the target workqueue
* @node: the node ID
*
* This must be called with any of wq_pool_mutex, wq->mutex or RCU
* read locked.
* If the pwq needs to be used beyond the locking in effect, the caller is
* responsible for guaranteeing that the pwq stays online.
*
* Return: The unbound pool_workqueue for @node.
*/
static struct pool_workqueue *unbound_pwq_by_node(struct workqueue_struct *wq,
int node)
{
assert_rcu_or_wq_mutex_or_pool_mutex(wq);
/*
* XXX: @node can be NUMA_NO_NODE if CPU goes offline while a
* delayed item is pending. The plan is to keep CPU -> NODE
* mapping valid and stable across CPU on/offlines. Once that
* happens, this workaround can be removed.
*/
if (unlikely(node == NUMA_NO_NODE))
return wq->dfl_pwq;
return rcu_dereference_raw(wq->numa_pwq_tbl[node]);
}
static unsigned int work_color_to_flags(int color)
{
return color << WORK_STRUCT_COLOR_SHIFT;
}
static int get_work_color(struct work_struct *work)
{
return (*work_data_bits(work) >> WORK_STRUCT_COLOR_SHIFT) &
((1 << WORK_STRUCT_COLOR_BITS) - 1);
}
static int work_next_color(int color)
{
return (color + 1) % WORK_NR_COLORS;
}
/*
* While queued, %WORK_STRUCT_PWQ is set and non flag bits of a work's data
* contain the pointer to the queued pwq. Once execution starts, the flag
* is cleared and the high bits contain OFFQ flags and pool ID.
*
* set_work_pwq(), set_work_pool_and_clear_pending(), mark_work_canceling()
* and clear_work_data() can be used to set the pwq, pool or clear
* work->data. These functions should only be called while the work is
* owned - ie. while the PENDING bit is set.
*
* get_work_pool() and get_work_pwq() can be used to obtain the pool or pwq
* corresponding to a work. Pool is available once the work has been
* queued anywhere after initialization until it is sync canceled. pwq is
* available only while the work item is queued.
*
* %WORK_OFFQ_CANCELING is used to mark a work item which is being
* canceled. While being canceled, a work item may have its PENDING set
* but stay off timer and worklist for arbitrarily long and nobody should
* try to steal the PENDING bit.
*/
static inline void set_work_data(struct work_struct *work, unsigned long data,
unsigned long flags)
{
WARN_ON_ONCE(!work_pending(work));
atomic_long_set(&work->data, data | flags | work_static(work));
}
static void set_work_pwq(struct work_struct *work, struct pool_workqueue *pwq,
unsigned long extra_flags)
{
set_work_data(work, (unsigned long)pwq,
WORK_STRUCT_PENDING | WORK_STRUCT_PWQ | extra_flags);
}
static void set_work_pool_and_keep_pending(struct work_struct *work,
int pool_id)
{
set_work_data(work, (unsigned long)pool_id << WORK_OFFQ_POOL_SHIFT,
WORK_STRUCT_PENDING);
}
static void set_work_pool_and_clear_pending(struct work_struct *work,
int pool_id)
{
/*
* The following wmb is paired with the implied mb in
* test_and_set_bit(PENDING) and ensures all updates to @work made
* here are visible to and precede any updates by the next PENDING
* owner.
*/
smp_wmb();
set_work_data(work, (unsigned long)pool_id << WORK_OFFQ_POOL_SHIFT, 0);
/*
* The following mb guarantees that previous clear of a PENDING bit
* will not be reordered with any speculative LOADS or STORES from
* work->current_func, which is executed afterwards. This possible
* reordering can lead to a missed execution on attempt to queue
* the same @work. E.g. consider this case:
*
* CPU#0 CPU#1
* ---------------------------- --------------------------------
*
* 1 STORE event_indicated
* 2 queue_work_on() {
* 3 test_and_set_bit(PENDING)
* 4 } set_..._and_clear_pending() {
* 5 set_work_data() # clear bit
* 6 smp_mb()
* 7 work->current_func() {
* 8 LOAD event_indicated
* }
*
* Without an explicit full barrier speculative LOAD on line 8 can
* be executed before CPU#0 does STORE on line 1. If that happens,
* CPU#0 observes the PENDING bit is still set and new execution of
* a @work is not queued in a hope, that CPU#1 will eventually
* finish the queued @work. Meanwhile CPU#1 does not see
* event_indicated is set, because speculative LOAD was executed
* before actual STORE.
*/
smp_mb();
}
static void clear_work_data(struct work_struct *work)
{
smp_wmb(); /* see set_work_pool_and_clear_pending() */
set_work_data(work, WORK_STRUCT_NO_POOL, 0);
}
static struct pool_workqueue *get_work_pwq(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
if (data & WORK_STRUCT_PWQ)
return (void *)(data & WORK_STRUCT_WQ_DATA_MASK);
else
return NULL;
}
/**
* get_work_pool - return the worker_pool a given work was associated with
* @work: the work item of interest
*
* Pools are created and destroyed under wq_pool_mutex, and allows read
* access under RCU read lock. As such, this function should be
* called under wq_pool_mutex or inside of a rcu_read_lock() region.
*
* All fields of the returned pool are accessible as long as the above
* mentioned locking is in effect. If the returned pool needs to be used
* beyond the critical section, the caller is responsible for ensuring the
* returned pool is and stays online.
*
* Return: The worker_pool @work was last associated with. %NULL if none.
*/
static struct worker_pool *get_work_pool(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
int pool_id;
assert_rcu_or_pool_mutex();
if (data & WORK_STRUCT_PWQ)
return ((struct pool_workqueue *)
(data & WORK_STRUCT_WQ_DATA_MASK))->pool;
pool_id = data >> WORK_OFFQ_POOL_SHIFT;
if (pool_id == WORK_OFFQ_POOL_NONE)
return NULL;
return idr_find(&worker_pool_idr, pool_id);
}
/**
* get_work_pool_id - return the worker pool ID a given work is associated with
* @work: the work item of interest
*
* Return: The worker_pool ID @work was last associated with.
* %WORK_OFFQ_POOL_NONE if none.
*/
static int get_work_pool_id(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
if (data & WORK_STRUCT_PWQ)
return ((struct pool_workqueue *)
(data & WORK_STRUCT_WQ_DATA_MASK))->pool->id;
return data >> WORK_OFFQ_POOL_SHIFT;
}
static void mark_work_canceling(struct work_struct *work)
{
unsigned long pool_id = get_work_pool_id(work);
pool_id <<= WORK_OFFQ_POOL_SHIFT;
set_work_data(work, pool_id | WORK_OFFQ_CANCELING, WORK_STRUCT_PENDING);
}
static bool work_is_canceling(struct work_struct *work)
{
unsigned long data = atomic_long_read(&work->data);
return !(data & WORK_STRUCT_PWQ) && (data & WORK_OFFQ_CANCELING);
}
/*
* Policy functions. These define the policies on how the global worker
* pools are managed. Unless noted otherwise, these functions assume that
* they're being called with pool->lock held.
*/
static bool __need_more_worker(struct worker_pool *pool)
{
return !atomic_read(&pool->nr_running);
}
/*
* Need to wake up a worker? Called from anything but currently
* running workers.
*
* Note that, because unbound workers never contribute to nr_running, this
* function will always return %true for unbound pools as long as the
* worklist isn't empty.
*/
static bool need_more_worker(struct worker_pool *pool)
{
return !list_empty(&pool->worklist) && __need_more_worker(pool);
}
/* Can I start working? Called from busy but !running workers. */
static bool may_start_working(struct worker_pool *pool)
{
return pool->nr_idle;
}
/* Do I need to keep working? Called from currently running workers. */
static bool keep_working(struct worker_pool *pool)
{
return !list_empty(&pool->worklist) &&
atomic_read(&pool->nr_running) <= 1;
}
/* Do we need a new worker? Called from manager. */
static bool need_to_create_worker(struct worker_pool *pool)
{
return need_more_worker(pool) && !may_start_working(pool);
}
/* Do we have too many workers and should some go away? */
static bool too_many_workers(struct worker_pool *pool)
{
bool managing = pool->flags & POOL_MANAGER_ACTIVE;
int nr_idle = pool->nr_idle + managing; /* manager is considered idle */
int nr_busy = pool->nr_workers - nr_idle;
return nr_idle > 2 && (nr_idle - 2) * MAX_IDLE_WORKERS_RATIO >= nr_busy;
}
/*
* Wake up functions.
*/
/* Return the first idle worker. Safe with preemption disabled */
static struct worker *first_idle_worker(struct worker_pool *pool)
{
if (unlikely(list_empty(&pool->idle_list)))
return NULL;
return list_first_entry(&pool->idle_list, struct worker, entry);
}
/**
* wake_up_worker - wake up an idle worker
* @pool: worker pool to wake worker from
*
* Wake up the first idle worker of @pool.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void wake_up_worker(struct worker_pool *pool)
{
struct worker *worker = first_idle_worker(pool);
if (likely(worker))
wake_up_process(worker->task);
}
/**
* wq_worker_running - a worker is running again
* @task: task waking up
*
* This function is called when a worker returns from schedule()
*/
void wq_worker_running(struct task_struct *task)
{
struct worker *worker = kthread_data(task);
if (!worker->sleeping)
return;
if (!(worker->flags & WORKER_NOT_RUNNING))
atomic_inc(&worker->pool->nr_running);
worker->sleeping = 0;
}
/**
* wq_worker_sleeping - a worker is going to sleep
* @task: task going to sleep
*
* This function is called from schedule() when a busy worker is
* going to sleep.
*/
void wq_worker_sleeping(struct task_struct *task)
{
struct worker *next, *worker = kthread_data(task);
struct worker_pool *pool;
/*
* Rescuers, which may not have all the fields set up like normal
* workers, also reach here, let's not access anything before
* checking NOT_RUNNING.
*/
if (worker->flags & WORKER_NOT_RUNNING)
return;
pool = worker->pool;
if (WARN_ON_ONCE(worker->sleeping))
return;
worker->sleeping = 1;
spin_lock_irq(&pool->lock);
/*
* The counterpart of the following dec_and_test, implied mb,
* worklist not empty test sequence is in insert_work().
* Please read comment there.
*
* NOT_RUNNING is clear. This means that we're bound to and
* running on the local cpu w/ rq lock held and preemption
* disabled, which in turn means that none else could be
* manipulating idle_list, so dereferencing idle_list without pool
* lock is safe.
*/
if (atomic_dec_and_test(&pool->nr_running) &&
!list_empty(&pool->worklist)) {
next = first_idle_worker(pool);
if (next)
wake_up_process(next->task);
}
spin_unlock_irq(&pool->lock);
}
/**
* wq_worker_last_func - retrieve worker's last work function
* @task: Task to retrieve last work function of.
*
* Determine the last function a worker executed. This is called from
* the scheduler to get a worker's last known identity.
*
* CONTEXT:
* spin_lock_irq(rq->lock)
*
* This function is called during schedule() when a kworker is going
* to sleep. It's used by psi to identify aggregation workers during
* dequeuing, to allow periodic aggregation to shut-off when that
* worker is the last task in the system or cgroup to go to sleep.
*
* As this function doesn't involve any workqueue-related locking, it
* only returns stable values when called from inside the scheduler's
* queuing and dequeuing paths, when @task, which must be a kworker,
* is guaranteed to not be processing any works.
*
* Return:
* The last work function %current executed as a worker, NULL if it
* hasn't executed any work yet.
*/
work_func_t wq_worker_last_func(struct task_struct *task)
{
struct worker *worker = kthread_data(task);
return worker->last_func;
}
/**
* worker_set_flags - set worker flags and adjust nr_running accordingly
* @worker: self
* @flags: flags to set
*
* Set @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
* spin_lock_irq(pool->lock)
*/
static inline void worker_set_flags(struct worker *worker, unsigned int flags)
{
struct worker_pool *pool = worker->pool;
WARN_ON_ONCE(worker->task != current);
/* If transitioning into NOT_RUNNING, adjust nr_running. */
if ((flags & WORKER_NOT_RUNNING) &&
!(worker->flags & WORKER_NOT_RUNNING)) {
atomic_dec(&pool->nr_running);
}
worker->flags |= flags;
}
/**
* worker_clr_flags - clear worker flags and adjust nr_running accordingly
* @worker: self
* @flags: flags to clear
*
* Clear @flags in @worker->flags and adjust nr_running accordingly.
*
* CONTEXT:
* spin_lock_irq(pool->lock)
*/
static inline void worker_clr_flags(struct worker *worker, unsigned int flags)
{
struct worker_pool *pool = worker->pool;
unsigned int oflags = worker->flags;
WARN_ON_ONCE(worker->task != current);
worker->flags &= ~flags;
/*
* If transitioning out of NOT_RUNNING, increment nr_running. Note
* that the nested NOT_RUNNING is not a noop. NOT_RUNNING is mask
* of multiple flags, not a single flag.
*/
if ((flags & WORKER_NOT_RUNNING) && (oflags & WORKER_NOT_RUNNING))
if (!(worker->flags & WORKER_NOT_RUNNING))
atomic_inc(&pool->nr_running);
}
/**
* find_worker_executing_work - find worker which is executing a work
* @pool: pool of interest
* @work: work to find worker for
*
* Find a worker which is executing @work on @pool by searching
* @pool->busy_hash which is keyed by the address of @work. For a worker
* to match, its current execution should match the address of @work and
* its work function. This is to avoid unwanted dependency between
* unrelated work executions through a work item being recycled while still
* being executed.
*
* This is a bit tricky. A work item may be freed once its execution
* starts and nothing prevents the freed area from being recycled for
* another work item. If the same work item address ends up being reused
* before the original execution finishes, workqueue will identify the
* recycled work item as currently executing and make it wait until the
* current execution finishes, introducing an unwanted dependency.
*
* This function checks the work item address and work function to avoid
* false positives. Note that this isn't complete as one may construct a
* work function which can introduce dependency onto itself through a
* recycled work item. Well, if somebody wants to shoot oneself in the
* foot that badly, there's only so much we can do, and if such deadlock
* actually occurs, it should be easy to locate the culprit work function.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*
* Return:
* Pointer to worker which is executing @work if found, %NULL
* otherwise.
*/
static struct worker *find_worker_executing_work(struct worker_pool *pool,
struct work_struct *work)
{
struct worker *worker;
hash_for_each_possible(pool->busy_hash, worker, hentry,
(unsigned long)work)
if (worker->current_work == work &&
worker->current_func == work->func)
return worker;
return NULL;
}
/**
* move_linked_works - move linked works to a list
* @work: start of series of works to be scheduled
* @head: target list to append @work to
* @nextp: out parameter for nested worklist walking
*
* Schedule linked works starting from @work to @head. Work series to
* be scheduled starts at @work and includes any consecutive work with
* WORK_STRUCT_LINKED set in its predecessor.
*
* If @nextp is not NULL, it's updated to point to the next work of
* the last scheduled work. This allows move_linked_works() to be
* nested inside outer list_for_each_entry_safe().
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void move_linked_works(struct work_struct *work, struct list_head *head,
struct work_struct **nextp)
{
struct work_struct *n;
/*
* Linked worklist will always end before the end of the list,
* use NULL for list head.
*/
list_for_each_entry_safe_from(work, n, NULL, entry) {
list_move_tail(&work->entry, head);
if (!(*work_data_bits(work) & WORK_STRUCT_LINKED))
break;
}
/*
* If we're already inside safe list traversal and have moved
* multiple works to the scheduled queue, the next position
* needs to be updated.
*/
if (nextp)
*nextp = n;
}
/**
* get_pwq - get an extra reference on the specified pool_workqueue
* @pwq: pool_workqueue to get
*
* Obtain an extra reference on @pwq. The caller should guarantee that
* @pwq has positive refcnt and be holding the matching pool->lock.
*/
static void get_pwq(struct pool_workqueue *pwq)
{
lockdep_assert_held(&pwq->pool->lock);
WARN_ON_ONCE(pwq->refcnt <= 0);
pwq->refcnt++;
}
/**
* put_pwq - put a pool_workqueue reference
* @pwq: pool_workqueue to put
*
* Drop a reference of @pwq. If its refcnt reaches zero, schedule its
* destruction. The caller should be holding the matching pool->lock.
*/
static void put_pwq(struct pool_workqueue *pwq)
{
lockdep_assert_held(&pwq->pool->lock);
if (likely(--pwq->refcnt))
return;
if (WARN_ON_ONCE(!(pwq->wq->flags & WQ_UNBOUND)))
return;
/*
* @pwq can't be released under pool->lock, bounce to
* pwq_unbound_release_workfn(). This never recurses on the same
* pool->lock as this path is taken only for unbound workqueues and
* the release work item is scheduled on a per-cpu workqueue. To
* avoid lockdep warning, unbound pool->locks are given lockdep
* subclass of 1 in get_unbound_pool().
*/
schedule_work(&pwq->unbound_release_work);
}
/**
* put_pwq_unlocked - put_pwq() with surrounding pool lock/unlock
* @pwq: pool_workqueue to put (can be %NULL)
*
* put_pwq() with locking. This function also allows %NULL @pwq.
*/
static void put_pwq_unlocked(struct pool_workqueue *pwq)
{
if (pwq) {
/*
* As both pwqs and pools are RCU protected, the
* following lock operations are safe.
*/
spin_lock_irq(&pwq->pool->lock);
put_pwq(pwq);
spin_unlock_irq(&pwq->pool->lock);
}
}
static void pwq_activate_delayed_work(struct work_struct *work)
{
struct pool_workqueue *pwq = get_work_pwq(work);
trace_workqueue_activate_work(work);
if (list_empty(&pwq->pool->worklist))
pwq->pool->watchdog_ts = jiffies;
move_linked_works(work, &pwq->pool->worklist, NULL);
__clear_bit(WORK_STRUCT_DELAYED_BIT, work_data_bits(work));
pwq->nr_active++;
}
static void pwq_activate_first_delayed(struct pool_workqueue *pwq)
{
struct work_struct *work = list_first_entry(&pwq->delayed_works,
struct work_struct, entry);
pwq_activate_delayed_work(work);
}
/**
* pwq_dec_nr_in_flight - decrement pwq's nr_in_flight
* @pwq: pwq of interest
* @color: color of work which left the queue
*
* A work either has completed or is removed from pending queue,
* decrement nr_in_flight of its pwq and handle workqueue flushing.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void pwq_dec_nr_in_flight(struct pool_workqueue *pwq, int color)
{
/* uncolored work items don't participate in flushing or nr_active */
if (color == WORK_NO_COLOR)
goto out_put;
pwq->nr_in_flight[color]--;
pwq->nr_active--;
if (!list_empty(&pwq->delayed_works)) {
/* one down, submit a delayed one */
if (pwq->nr_active < pwq->max_active)
pwq_activate_first_delayed(pwq);
}
/* is flush in progress and are we at the flushing tip? */
if (likely(pwq->flush_color != color))
goto out_put;
/* are there still in-flight works? */
if (pwq->nr_in_flight[color])
goto out_put;
/* this pwq is done, clear flush_color */
pwq->flush_color = -1;
/*
* If this was the last pwq, wake up the first flusher. It
* will handle the rest.
*/
if (atomic_dec_and_test(&pwq->wq->nr_pwqs_to_flush))
complete(&pwq->wq->first_flusher->done);
out_put:
put_pwq(pwq);
}
/**
* try_to_grab_pending - steal work item from worklist and disable irq
* @work: work item to steal
* @is_dwork: @work is a delayed_work
* @flags: place to store irq state
*
* Try to grab PENDING bit of @work. This function can handle @work in any
* stable state - idle, on timer or on worklist.
*
* Return:
* 1 if @work was pending and we successfully stole PENDING
* 0 if @work was idle and we claimed PENDING
* -EAGAIN if PENDING couldn't be grabbed at the moment, safe to busy-retry
* -ENOENT if someone else is canceling @work, this state may persist
* for arbitrarily long
*
* Note:
* On >= 0 return, the caller owns @work's PENDING bit. To avoid getting
* interrupted while holding PENDING and @work off queue, irq must be
* disabled on entry. This, combined with delayed_work->timer being
* irqsafe, ensures that we return -EAGAIN for finite short period of time.
*
* On successful return, >= 0, irq is disabled and the caller is
* responsible for releasing it using local_irq_restore(*@flags).
*
* This function is safe to call from any context including IRQ handler.
*/
static int try_to_grab_pending(struct work_struct *work, bool is_dwork,
unsigned long *flags)
{
struct worker_pool *pool;
struct pool_workqueue *pwq;
local_irq_save(*flags);
/* try to steal the timer if it exists */
if (is_dwork) {
struct delayed_work *dwork = to_delayed_work(work);
/*
* dwork->timer is irqsafe. If del_timer() fails, it's
* guaranteed that the timer is not queued anywhere and not
* running on the local CPU.
*/
if (likely(del_timer(&dwork->timer)))
return 1;
}
/* try to claim PENDING the normal way */
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work)))
return 0;
rcu_read_lock();
/*
* The queueing is in progress, or it is already queued. Try to
* steal it from ->worklist without clearing WORK_STRUCT_PENDING.
*/
pool = get_work_pool(work);
if (!pool)
goto fail;
spin_lock(&pool->lock);
/*
* work->data is guaranteed to point to pwq only while the work
* item is queued on pwq->wq, and both updating work->data to point
* to pwq on queueing and to pool on dequeueing are done under
* pwq->pool->lock. This in turn guarantees that, if work->data
* points to pwq which is associated with a locked pool, the work
* item is currently queued on that pool.
*/
pwq = get_work_pwq(work);
if (pwq && pwq->pool == pool) {
debug_work_deactivate(work);
/*
* A delayed work item cannot be grabbed directly because
* it might have linked NO_COLOR work items which, if left
* on the delayed_list, will confuse pwq->nr_active
* management later on and cause stall. Make sure the work
* item is activated before grabbing.
*/
if (*work_data_bits(work) & WORK_STRUCT_DELAYED)
pwq_activate_delayed_work(work);
list_del_init(&work->entry);
pwq_dec_nr_in_flight(pwq, get_work_color(work));
/* work->data points to pwq iff queued, point to pool */
set_work_pool_and_keep_pending(work, pool->id);
spin_unlock(&pool->lock);
rcu_read_unlock();
return 1;
}
spin_unlock(&pool->lock);
fail:
rcu_read_unlock();
local_irq_restore(*flags);
if (work_is_canceling(work))
return -ENOENT;
cpu_relax();
/*
* The queueing is in progress in another context. If we keep
* taking the pool->lock in a busy loop, the other context may
* never get the lock. Give 1 usec delay to avoid this contention.
*/
udelay(1);
return -EAGAIN;
}
/**
* insert_work - insert a work into a pool
* @pwq: pwq @work belongs to
* @work: work to insert
* @head: insertion point
* @extra_flags: extra WORK_STRUCT_* flags to set
*
* Insert @work which belongs to @pwq after @head. @extra_flags is or'd to
* work_struct flags.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void insert_work(struct pool_workqueue *pwq, struct work_struct *work,
struct list_head *head, unsigned int extra_flags)
{
struct worker_pool *pool = pwq->pool;
/* we own @work, set data and link */
set_work_pwq(work, pwq, extra_flags);
list_add_tail(&work->entry, head);
get_pwq(pwq);
/*
* Ensure either wq_worker_sleeping() sees the above
* list_add_tail() or we see zero nr_running to avoid workers lying
* around lazily while there are works to be processed.
*/
smp_mb();
if (__need_more_worker(pool))
wake_up_worker(pool);
}
/*
* Test whether @work is being queued from another work executing on the
* same workqueue.
*/
static bool is_chained_work(struct workqueue_struct *wq)
{
struct worker *worker;
worker = current_wq_worker();
/*
* Return %true iff I'm a worker executing a work item on @wq. If
* I'm @worker, it's safe to dereference it without locking.
*/
return worker && worker->current_pwq->wq == wq;
}
/*
* When queueing an unbound work item to a wq, prefer local CPU if allowed
* by wq_unbound_cpumask. Otherwise, round robin among the allowed ones to
* avoid perturbing sensitive tasks.
*/
static int wq_select_unbound_cpu(int cpu)
{
static bool printed_dbg_warning;
int new_cpu;
if (likely(!wq_debug_force_rr_cpu)) {
if (cpumask_test_cpu(cpu, wq_unbound_cpumask))
return cpu;
} else if (!printed_dbg_warning) {
pr_warn("workqueue: round-robin CPU selection forced, expect performance impact\n");
printed_dbg_warning = true;
}
if (cpumask_empty(wq_unbound_cpumask))
return cpu;
new_cpu = __this_cpu_read(wq_rr_cpu_last);
new_cpu = cpumask_next_and(new_cpu, wq_unbound_cpumask, cpu_online_mask);
if (unlikely(new_cpu >= nr_cpu_ids)) {
new_cpu = cpumask_first_and(wq_unbound_cpumask, cpu_online_mask);
if (unlikely(new_cpu >= nr_cpu_ids))
return cpu;
}
__this_cpu_write(wq_rr_cpu_last, new_cpu);
return new_cpu;
}
static void __queue_work(int cpu, struct workqueue_struct *wq,
struct work_struct *work)
{
struct pool_workqueue *pwq;
struct worker_pool *last_pool;
struct list_head *worklist;
unsigned int work_flags;
unsigned int req_cpu = cpu;
/*
* While a work item is PENDING && off queue, a task trying to
* steal the PENDING will busy-loop waiting for it to either get
* queued or lose PENDING. Grabbing PENDING and queueing should
* happen with IRQ disabled.
*/
lockdep_assert_irqs_disabled();
debug_work_activate(work);
/* if draining, only works from the same workqueue are allowed */
if (unlikely(wq->flags & __WQ_DRAINING) &&
WARN_ON_ONCE(!is_chained_work(wq)))
return;
rcu_read_lock();
retry:
if (req_cpu == WORK_CPU_UNBOUND)
cpu = wq_select_unbound_cpu(raw_smp_processor_id());
/* pwq which will be used unless @work is executing elsewhere */
if (!(wq->flags & WQ_UNBOUND))
pwq = per_cpu_ptr(wq->cpu_pwqs, cpu);
else
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
/*
* If @work was previously on a different pool, it might still be
* running there, in which case the work needs to be queued on that
* pool to guarantee non-reentrancy.
*/
last_pool = get_work_pool(work);
if (last_pool && last_pool != pwq->pool) {
struct worker *worker;
spin_lock(&last_pool->lock);
worker = find_worker_executing_work(last_pool, work);
if (worker && worker->current_pwq->wq == wq) {
pwq = worker->current_pwq;
} else {
/* meh... not running there, queue here */
spin_unlock(&last_pool->lock);
spin_lock(&pwq->pool->lock);
}
} else {
spin_lock(&pwq->pool->lock);
}
/*
* pwq is determined and locked. For unbound pools, we could have
* raced with pwq release and it could already be dead. If its
* refcnt is zero, repeat pwq selection. Note that pwqs never die
* without another pwq replacing it in the numa_pwq_tbl or while
* work items are executing on it, so the retrying is guaranteed to
* make forward-progress.
*/
if (unlikely(!pwq->refcnt)) {
if (wq->flags & WQ_UNBOUND) {
spin_unlock(&pwq->pool->lock);
cpu_relax();
goto retry;
}
/* oops */
WARN_ONCE(true, "workqueue: per-cpu pwq for %s on cpu%d has 0 refcnt",
wq->name, cpu);
}
/* pwq determined, queue */
trace_workqueue_queue_work(req_cpu, pwq, work);
if (WARN_ON(!list_empty(&work->entry)))
goto out;
pwq->nr_in_flight[pwq->work_color]++;
work_flags = work_color_to_flags(pwq->work_color);
if (likely(pwq->nr_active < pwq->max_active)) {
trace_workqueue_activate_work(work);
pwq->nr_active++;
worklist = &pwq->pool->worklist;
if (list_empty(worklist))
pwq->pool->watchdog_ts = jiffies;
} else {
work_flags |= WORK_STRUCT_DELAYED;
worklist = &pwq->delayed_works;
}
insert_work(pwq, work, worklist, work_flags);
out:
spin_unlock(&pwq->pool->lock);
rcu_read_unlock();
}
/**
* queue_work_on - queue work on specific cpu
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @work: work to queue
*
* We queue the work to a specific CPU, the caller must ensure it
* can't go away.
*
* Return: %false if @work was already on a queue, %true otherwise.
*/
bool queue_work_on(int cpu, struct workqueue_struct *wq,
struct work_struct *work)
{
bool ret = false;
unsigned long flags;
local_irq_save(flags);
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
__queue_work(cpu, wq, work);
ret = true;
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL(queue_work_on);
/**
* workqueue_select_cpu_near - Select a CPU based on NUMA node
* @node: NUMA node ID that we want to select a CPU from
*
* This function will attempt to find a "random" cpu available on a given
* node. If there are no CPUs available on the given node it will return
* WORK_CPU_UNBOUND indicating that we should just schedule to any
* available CPU if we need to schedule this work.
*/
static int workqueue_select_cpu_near(int node)
{
int cpu;
/* No point in doing this if NUMA isn't enabled for workqueues */
if (!wq_numa_enabled)
return WORK_CPU_UNBOUND;
/* Delay binding to CPU if node is not valid or online */
if (node < 0 || node >= MAX_NUMNODES || !node_online(node))
return WORK_CPU_UNBOUND;
/* Use local node/cpu if we are already there */
cpu = raw_smp_processor_id();
if (node == cpu_to_node(cpu))
return cpu;
/* Use "random" otherwise know as "first" online CPU of node */
cpu = cpumask_any_and(cpumask_of_node(node), cpu_online_mask);
/* If CPU is valid return that, otherwise just defer */
return cpu < nr_cpu_ids ? cpu : WORK_CPU_UNBOUND;
}
/**
* queue_work_node - queue work on a "random" cpu for a given NUMA node
* @node: NUMA node that we are targeting the work for
* @wq: workqueue to use
* @work: work to queue
*
* We queue the work to a "random" CPU within a given NUMA node. The basic
* idea here is to provide a way to somehow associate work with a given
* NUMA node.
*
* This function will only make a best effort attempt at getting this onto
* the right NUMA node. If no node is requested or the requested node is
* offline then we just fall back to standard queue_work behavior.
*
* Currently the "random" CPU ends up being the first available CPU in the
* intersection of cpu_online_mask and the cpumask of the node, unless we
* are running on the node. In that case we just use the current CPU.
*
* Return: %false if @work was already on a queue, %true otherwise.
*/
bool queue_work_node(int node, struct workqueue_struct *wq,
struct work_struct *work)
{
unsigned long flags;
bool ret = false;
/*
* This current implementation is specific to unbound workqueues.
* Specifically we only return the first available CPU for a given
* node instead of cycling through individual CPUs within the node.
*
* If this is used with a per-cpu workqueue then the logic in
* workqueue_select_cpu_near would need to be updated to allow for
* some round robin type logic.
*/
WARN_ON_ONCE(!(wq->flags & WQ_UNBOUND));
local_irq_save(flags);
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
int cpu = workqueue_select_cpu_near(node);
__queue_work(cpu, wq, work);
ret = true;
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL_GPL(queue_work_node);
void delayed_work_timer_fn(struct timer_list *t)
{
struct delayed_work *dwork = from_timer(dwork, t, timer);
/* should have been called from irqsafe timer with irq already off */
__queue_work(dwork->cpu, dwork->wq, &dwork->work);
}
EXPORT_SYMBOL(delayed_work_timer_fn);
static void __queue_delayed_work(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
struct timer_list *timer = &dwork->timer;
struct work_struct *work = &dwork->work;
WARN_ON_ONCE(!wq);
WARN_ON_ONCE(timer->function != delayed_work_timer_fn);
WARN_ON_ONCE(timer_pending(timer));
WARN_ON_ONCE(!list_empty(&work->entry));
/*
* If @delay is 0, queue @dwork->work immediately. This is for
* both optimization and correctness. The earliest @timer can
* expire is on the closest next tick and delayed_work users depend
* on that there's no such delay when @delay is 0.
*/
if (!delay) {
__queue_work(cpu, wq, &dwork->work);
return;
}
dwork->wq = wq;
dwork->cpu = cpu;
timer->expires = jiffies + delay;
if (unlikely(cpu != WORK_CPU_UNBOUND))
add_timer_on(timer, cpu);
else
add_timer(timer);
}
/**
* queue_delayed_work_on - queue work on specific CPU after delay
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @dwork: work to queue
* @delay: number of jiffies to wait before queueing
*
* Return: %false if @work was already on a queue, %true otherwise. If
* @delay is zero and @dwork is idle, it will be scheduled for immediate
* execution.
*/
bool queue_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
struct work_struct *work = &dwork->work;
bool ret = false;
unsigned long flags;
/* read the comment in __queue_work() */
local_irq_save(flags);
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
__queue_delayed_work(cpu, wq, dwork, delay);
ret = true;
}
local_irq_restore(flags);
return ret;
}
EXPORT_SYMBOL(queue_delayed_work_on);
/**
* mod_delayed_work_on - modify delay of or queue a delayed work on specific CPU
* @cpu: CPU number to execute work on
* @wq: workqueue to use
* @dwork: work to queue
* @delay: number of jiffies to wait before queueing
*
* If @dwork is idle, equivalent to queue_delayed_work_on(); otherwise,
* modify @dwork's timer so that it expires after @delay. If @delay is
* zero, @work is guaranteed to be scheduled immediately regardless of its
* current state.
*
* Return: %false if @dwork was idle and queued, %true if @dwork was
* pending and its timer was modified.
*
* This function is safe to call from any context including IRQ handler.
* See try_to_grab_pending() for details.
*/
bool mod_delayed_work_on(int cpu, struct workqueue_struct *wq,
struct delayed_work *dwork, unsigned long delay)
{
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(&dwork->work, true, &flags);
} while (unlikely(ret == -EAGAIN));
if (likely(ret >= 0)) {
__queue_delayed_work(cpu, wq, dwork, delay);
local_irq_restore(flags);
}
/* -ENOENT from try_to_grab_pending() becomes %true */
return ret;
}
EXPORT_SYMBOL_GPL(mod_delayed_work_on);
static void rcu_work_rcufn(struct rcu_head *rcu)
{
struct rcu_work *rwork = container_of(rcu, struct rcu_work, rcu);
/* read the comment in __queue_work() */
local_irq_disable();
__queue_work(WORK_CPU_UNBOUND, rwork->wq, &rwork->work);
local_irq_enable();
}
/**
* queue_rcu_work - queue work after a RCU grace period
* @wq: workqueue to use
* @rwork: work to queue
*
* Return: %false if @rwork was already pending, %true otherwise. Note
* that a full RCU grace period is guaranteed only after a %true return.
* While @rwork is guaranteed to be executed after a %false return, the
* execution may happen before a full RCU grace period has passed.
*/
bool queue_rcu_work(struct workqueue_struct *wq, struct rcu_work *rwork)
{
struct work_struct *work = &rwork->work;
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
rwork->wq = wq;
call_rcu(&rwork->rcu, rcu_work_rcufn);
return true;
}
return false;
}
EXPORT_SYMBOL(queue_rcu_work);
/**
* worker_enter_idle - enter idle state
* @worker: worker which is entering idle state
*
* @worker is entering idle state. Update stats and idle timer if
* necessary.
*
* LOCKING:
* spin_lock_irq(pool->lock).
*/
static void worker_enter_idle(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
if (WARN_ON_ONCE(worker->flags & WORKER_IDLE) ||
WARN_ON_ONCE(!list_empty(&worker->entry) &&
(worker->hentry.next || worker->hentry.pprev)))
return;
/* can't use worker_set_flags(), also called from create_worker() */
worker->flags |= WORKER_IDLE;
pool->nr_idle++;
worker->last_active = jiffies;
/* idle_list is LIFO */
list_add(&worker->entry, &pool->idle_list);
if (too_many_workers(pool) && !timer_pending(&pool->idle_timer))
mod_timer(&pool->idle_timer, jiffies + IDLE_WORKER_TIMEOUT);
/*
* Sanity check nr_running. Because unbind_workers() releases
* pool->lock between setting %WORKER_UNBOUND and zapping
* nr_running, the warning may trigger spuriously. Check iff
* unbind is not in progress.
*/
WARN_ON_ONCE(!(pool->flags & POOL_DISASSOCIATED) &&
pool->nr_workers == pool->nr_idle &&
atomic_read(&pool->nr_running));
}
/**
* worker_leave_idle - leave idle state
* @worker: worker which is leaving idle state
*
* @worker is leaving idle state. Update stats.
*
* LOCKING:
* spin_lock_irq(pool->lock).
*/
static void worker_leave_idle(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
if (WARN_ON_ONCE(!(worker->flags & WORKER_IDLE)))
return;
worker_clr_flags(worker, WORKER_IDLE);
pool->nr_idle--;
list_del_init(&worker->entry);
}
static struct worker *alloc_worker(int node)
{
struct worker *worker;
worker = kzalloc_node(sizeof(*worker), GFP_KERNEL, node);
if (worker) {
INIT_LIST_HEAD(&worker->entry);
INIT_LIST_HEAD(&worker->scheduled);
INIT_LIST_HEAD(&worker->node);
/* on creation a worker is in !idle && prep state */
worker->flags = WORKER_PREP;
}
return worker;
}
/**
* worker_attach_to_pool() - attach a worker to a pool
* @worker: worker to be attached
* @pool: the target pool
*
* Attach @worker to @pool. Once attached, the %WORKER_UNBOUND flag and
* cpu-binding of @worker are kept coordinated with the pool across
* cpu-[un]hotplugs.
*/
static void worker_attach_to_pool(struct worker *worker,
struct worker_pool *pool)
{
mutex_lock(&wq_pool_attach_mutex);
/*
* set_cpus_allowed_ptr() will fail if the cpumask doesn't have any
* online CPUs. It'll be re-applied when any of the CPUs come up.
*/
set_cpus_allowed_ptr(worker->task, pool->attrs->cpumask);
/*
* The wq_pool_attach_mutex ensures %POOL_DISASSOCIATED remains
* stable across this function. See the comments above the flag
* definition for details.
*/
if (pool->flags & POOL_DISASSOCIATED)
worker->flags |= WORKER_UNBOUND;
list_add_tail(&worker->node, &pool->workers);
worker->pool = pool;
mutex_unlock(&wq_pool_attach_mutex);
}
/**
* worker_detach_from_pool() - detach a worker from its pool
* @worker: worker which is attached to its pool
*
* Undo the attaching which had been done in worker_attach_to_pool(). The
* caller worker shouldn't access to the pool after detached except it has
* other reference to the pool.
*/
static void worker_detach_from_pool(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
struct completion *detach_completion = NULL;
mutex_lock(&wq_pool_attach_mutex);
list_del(&worker->node);
worker->pool = NULL;
if (list_empty(&pool->workers))
detach_completion = pool->detach_completion;
mutex_unlock(&wq_pool_attach_mutex);
/* clear leftover flags without pool->lock after it is detached */
worker->flags &= ~(WORKER_UNBOUND | WORKER_REBOUND);
if (detach_completion)
complete(detach_completion);
}
/**
* create_worker - create a new workqueue worker
* @pool: pool the new worker will belong to
*
* Create and start a new worker which is attached to @pool.
*
* CONTEXT:
* Might sleep. Does GFP_KERNEL allocations.
*
* Return:
* Pointer to the newly created worker.
*/
static struct worker *create_worker(struct worker_pool *pool)
{
struct worker *worker = NULL;
int id = -1;
char id_buf[16];
/* ID is needed to determine kthread name */
id = ida_simple_get(&pool->worker_ida, 0, 0, GFP_KERNEL);
if (id < 0)
goto fail;
worker = alloc_worker(pool->node);
if (!worker)
goto fail;
worker->id = id;
if (pool->cpu >= 0)
snprintf(id_buf, sizeof(id_buf), "%d:%d%s", pool->cpu, id,
pool->attrs->nice < 0 ? "H" : "");
else
snprintf(id_buf, sizeof(id_buf), "u%d:%d", pool->id, id);
worker->task = kthread_create_on_node(worker_thread, worker, pool->node,
"kworker/%s", id_buf);
if (IS_ERR(worker->task))
goto fail;
set_user_nice(worker->task, pool->attrs->nice);
kthread_bind_mask(worker->task, pool->attrs->cpumask);
/* successful, attach the worker to the pool */
worker_attach_to_pool(worker, pool);
/* start the newly created worker */
spin_lock_irq(&pool->lock);
worker->pool->nr_workers++;
worker_enter_idle(worker);
wake_up_process(worker->task);
spin_unlock_irq(&pool->lock);
return worker;
fail:
if (id >= 0)
ida_simple_remove(&pool->worker_ida, id);
kfree(worker);
return NULL;
}
/**
* destroy_worker - destroy a workqueue worker
* @worker: worker to be destroyed
*
* Destroy @worker and adjust @pool stats accordingly. The worker should
* be idle.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void destroy_worker(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
lockdep_assert_held(&pool->lock);
/* sanity check frenzy */
if (WARN_ON(worker->current_work) ||
WARN_ON(!list_empty(&worker->scheduled)) ||
WARN_ON(!(worker->flags & WORKER_IDLE)))
return;
pool->nr_workers--;
pool->nr_idle--;
list_del_init(&worker->entry);
worker->flags |= WORKER_DIE;
wake_up_process(worker->task);
}
static void idle_worker_timeout(struct timer_list *t)
{
struct worker_pool *pool = from_timer(pool, t, idle_timer);
spin_lock_irq(&pool->lock);
while (too_many_workers(pool)) {
struct worker *worker;
unsigned long expires;
/* idle_list is kept in LIFO order, check the last one */
worker = list_entry(pool->idle_list.prev, struct worker, entry);
expires = worker->last_active + IDLE_WORKER_TIMEOUT;
if (time_before(jiffies, expires)) {
mod_timer(&pool->idle_timer, expires);
break;
}
destroy_worker(worker);
}
spin_unlock_irq(&pool->lock);
}
static void send_mayday(struct work_struct *work)
{
struct pool_workqueue *pwq = get_work_pwq(work);
struct workqueue_struct *wq = pwq->wq;
lockdep_assert_held(&wq_mayday_lock);
if (!wq->rescuer)
return;
/* mayday mayday mayday */
if (list_empty(&pwq->mayday_node)) {
/*
* If @pwq is for an unbound wq, its base ref may be put at
* any time due to an attribute change. Pin @pwq until the
* rescuer is done with it.
*/
get_pwq(pwq);
list_add_tail(&pwq->mayday_node, &wq->maydays);
wake_up_process(wq->rescuer->task);
}
}
static void pool_mayday_timeout(struct timer_list *t)
{
struct worker_pool *pool = from_timer(pool, t, mayday_timer);
struct work_struct *work;
spin_lock_irq(&pool->lock);
spin_lock(&wq_mayday_lock); /* for wq->maydays */
if (need_to_create_worker(pool)) {
/*
* We've been trying to create a new worker but
* haven't been successful. We might be hitting an
* allocation deadlock. Send distress signals to
* rescuers.
*/
list_for_each_entry(work, &pool->worklist, entry)
send_mayday(work);
}
spin_unlock(&wq_mayday_lock);
spin_unlock_irq(&pool->lock);
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INTERVAL);
}
/**
* maybe_create_worker - create a new worker if necessary
* @pool: pool to create a new worker for
*
* Create a new worker for @pool if necessary. @pool is guaranteed to
* have at least one idle worker on return from this function. If
* creating a new worker takes longer than MAYDAY_INTERVAL, mayday is
* sent to all rescuers with works scheduled on @pool to resolve
* possible allocation deadlock.
*
* On return, need_to_create_worker() is guaranteed to be %false and
* may_start_working() %true.
*
* LOCKING:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times. Does GFP_KERNEL allocations. Called only from
* manager.
*/
static void maybe_create_worker(struct worker_pool *pool)
__releases(&pool->lock)
__acquires(&pool->lock)
{
restart:
spin_unlock_irq(&pool->lock);
/* if we don't make progress in MAYDAY_INITIAL_TIMEOUT, call for help */
mod_timer(&pool->mayday_timer, jiffies + MAYDAY_INITIAL_TIMEOUT);
while (true) {
if (create_worker(pool) || !need_to_create_worker(pool))
break;
schedule_timeout_interruptible(CREATE_COOLDOWN);
if (!need_to_create_worker(pool))
break;
}
del_timer_sync(&pool->mayday_timer);
spin_lock_irq(&pool->lock);
/*
* This is necessary even after a new worker was just successfully
* created as @pool->lock was dropped and the new worker might have
* already become busy.
*/
if (need_to_create_worker(pool))
goto restart;
}
/**
* manage_workers - manage worker pool
* @worker: self
*
* Assume the manager role and manage the worker pool @worker belongs
* to. At any given time, there can be only zero or one manager per
* pool. The exclusion is handled automatically by this function.
*
* The caller can safely start processing works on false return. On
* true return, it's guaranteed that need_to_create_worker() is false
* and may_start_working() is true.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times. Does GFP_KERNEL allocations.
*
* Return:
* %false if the pool doesn't need management and the caller can safely
* start processing works, %true if management function was performed and
* the conditions that the caller verified before calling the function may
* no longer be true.
*/
static bool manage_workers(struct worker *worker)
{
struct worker_pool *pool = worker->pool;
if (pool->flags & POOL_MANAGER_ACTIVE)
return false;
pool->flags |= POOL_MANAGER_ACTIVE;
pool->manager = worker;
maybe_create_worker(pool);
pool->manager = NULL;
pool->flags &= ~POOL_MANAGER_ACTIVE;
wake_up(&wq_manager_wait);
return true;
}
/**
* process_one_work - process single work
* @worker: self
* @work: work to process
*
* Process @work. This function contains all the logics necessary to
* process a single work including synchronization against and
* interaction with other workers on the same cpu, queueing and
* flushing. As long as context requirement is met, any worker can
* call this function to process a work.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which is released and regrabbed.
*/
static void process_one_work(struct worker *worker, struct work_struct *work)
__releases(&pool->lock)
__acquires(&pool->lock)
{
struct pool_workqueue *pwq = get_work_pwq(work);
struct worker_pool *pool = worker->pool;
bool cpu_intensive = pwq->wq->flags & WQ_CPU_INTENSIVE;
int work_color;
struct worker *collision;
#ifdef CONFIG_LOCKDEP
/*
* It is permissible to free the struct work_struct from
* inside the function that is called from it, this we need to
* take into account for lockdep too. To avoid bogus "held
* lock freed" warnings as well as problems when looking into
* work->lockdep_map, make a copy and use that here.
*/
struct lockdep_map lockdep_map;
lockdep_copy_map(&lockdep_map, &work->lockdep_map);
#endif
/* ensure we're on the correct CPU */
WARN_ON_ONCE(!(pool->flags & POOL_DISASSOCIATED) &&
raw_smp_processor_id() != pool->cpu);
/*
* A single work shouldn't be executed concurrently by
* multiple workers on a single cpu. Check whether anyone is
* already processing the work. If so, defer the work to the
* currently executing one.
*/
collision = find_worker_executing_work(pool, work);
if (unlikely(collision)) {
move_linked_works(work, &collision->scheduled, NULL);
return;
}
/* claim and dequeue */
debug_work_deactivate(work);
hash_add(pool->busy_hash, &worker->hentry, (unsigned long)work);
worker->current_work = work;
worker->current_func = work->func;
worker->current_pwq = pwq;
work_color = get_work_color(work);
/*
* Record wq name for cmdline and debug reporting, may get
* overridden through set_worker_desc().
*/
strscpy(worker->desc, pwq->wq->name, WORKER_DESC_LEN);
list_del_init(&work->entry);
/*
* CPU intensive works don't participate in concurrency management.
* They're the scheduler's responsibility. This takes @worker out
* of concurrency management and the next code block will chain
* execution of the pending work items.
*/
if (unlikely(cpu_intensive))
worker_set_flags(worker, WORKER_CPU_INTENSIVE);
/*
* Wake up another worker if necessary. The condition is always
* false for normal per-cpu workers since nr_running would always
* be >= 1 at this point. This is used to chain execution of the
* pending work items for WORKER_NOT_RUNNING workers such as the
* UNBOUND and CPU_INTENSIVE ones.
*/
if (need_more_worker(pool))
wake_up_worker(pool);
/*
* Record the last pool and clear PENDING which should be the last
* update to @work. Also, do this inside @pool->lock so that
* PENDING and queued state changes happen together while IRQ is
* disabled.
*/
set_work_pool_and_clear_pending(work, pool->id);
spin_unlock_irq(&pool->lock);
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_acquire(&lockdep_map);
/*
* Strictly speaking we should mark the invariant state without holding
* any locks, that is, before these two lock_map_acquire()'s.
*
* However, that would result in:
*
* A(W1)
* WFC(C)
* A(W1)
* C(C)
*
* Which would create W1->C->W1 dependencies, even though there is no
* actual deadlock possible. There are two solutions, using a
* read-recursive acquire on the work(queue) 'locks', but this will then
* hit the lockdep limitation on recursive locks, or simply discard
* these locks.
*
* AFAICT there is no possible deadlock scenario between the
* flush_work() and complete() primitives (except for single-threaded
* workqueues), so hiding them isn't a problem.
*/
lockdep_invariant_state(true);
trace_workqueue_execute_start(work);
worker->current_func(work);
/*
* While we must be careful to not use "work" after this, the trace
* point will only record its address.
*/
trace_workqueue_execute_end(work);
lock_map_release(&lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
if (unlikely(in_atomic() || lockdep_depth(current) > 0)) {
pr_err("BUG: workqueue leaked lock or atomic: %s/0x%08x/%d\n"
" last function: %ps\n",
current->comm, preempt_count(), task_pid_nr(current),
worker->current_func);
debug_show_held_locks(current);
dump_stack();
}
/*
* The following prevents a kworker from hogging CPU on !PREEMPT
* kernels, where a requeueing work item waiting for something to
* happen could deadlock with stop_machine as such work item could
* indefinitely requeue itself while all other CPUs are trapped in
* stop_machine. At the same time, report a quiescent RCU state so
* the same condition doesn't freeze RCU.
*/
cond_resched();
spin_lock_irq(&pool->lock);
/* clear cpu intensive status */
if (unlikely(cpu_intensive))
worker_clr_flags(worker, WORKER_CPU_INTENSIVE);
/* tag the worker for identification in schedule() */
worker->last_func = worker->current_func;
/* we're done with it, release */
hash_del(&worker->hentry);
worker->current_work = NULL;
worker->current_func = NULL;
worker->current_pwq = NULL;
pwq_dec_nr_in_flight(pwq, work_color);
}
/**
* process_scheduled_works - process scheduled works
* @worker: self
*
* Process all scheduled works. Please note that the scheduled list
* may change while processing a work, so this function repeatedly
* fetches a work from the top and executes it.
*
* CONTEXT:
* spin_lock_irq(pool->lock) which may be released and regrabbed
* multiple times.
*/
static void process_scheduled_works(struct worker *worker)
{
while (!list_empty(&worker->scheduled)) {
struct work_struct *work = list_first_entry(&worker->scheduled,
struct work_struct, entry);
process_one_work(worker, work);
}
}
static void set_pf_worker(bool val)
{
mutex_lock(&wq_pool_attach_mutex);
if (val)
current->flags |= PF_WQ_WORKER;
else
current->flags &= ~PF_WQ_WORKER;
mutex_unlock(&wq_pool_attach_mutex);
}
/**
* worker_thread - the worker thread function
* @__worker: self
*
* The worker thread function. All workers belong to a worker_pool -
* either a per-cpu one or dynamic unbound one. These workers process all
* work items regardless of their specific target workqueue. The only
* exception is work items which belong to workqueues with a rescuer which
* will be explained in rescuer_thread().
*
* Return: 0
*/
static int worker_thread(void *__worker)
{
struct worker *worker = __worker;
struct worker_pool *pool = worker->pool;
/* tell the scheduler that this is a workqueue worker */
set_pf_worker(true);
woke_up:
spin_lock_irq(&pool->lock);
/* am I supposed to die? */
if (unlikely(worker->flags & WORKER_DIE)) {
spin_unlock_irq(&pool->lock);
WARN_ON_ONCE(!list_empty(&worker->entry));
set_pf_worker(false);
set_task_comm(worker->task, "kworker/dying");
ida_simple_remove(&pool->worker_ida, worker->id);
worker_detach_from_pool(worker);
kfree(worker);
return 0;
}
worker_leave_idle(worker);
recheck:
/* no more worker necessary? */
if (!need_more_worker(pool))
goto sleep;
/* do we need to manage? */
if (unlikely(!may_start_working(pool)) && manage_workers(worker))
goto recheck;
/*
* ->scheduled list can only be filled while a worker is
* preparing to process a work or actually processing it.
* Make sure nobody diddled with it while I was sleeping.
*/
WARN_ON_ONCE(!list_empty(&worker->scheduled));
/*
* Finish PREP stage. We're guaranteed to have at least one idle
* worker or that someone else has already assumed the manager
* role. This is where @worker starts participating in concurrency
* management if applicable and concurrency management is restored
* after being rebound. See rebind_workers() for details.
*/
worker_clr_flags(worker, WORKER_PREP | WORKER_REBOUND);
do {
struct work_struct *work =
list_first_entry(&pool->worklist,
struct work_struct, entry);
pool->watchdog_ts = jiffies;
if (likely(!(*work_data_bits(work) & WORK_STRUCT_LINKED))) {
/* optimization path, not strictly necessary */
process_one_work(worker, work);
if (unlikely(!list_empty(&worker->scheduled)))
process_scheduled_works(worker);
} else {
move_linked_works(work, &worker->scheduled, NULL);
process_scheduled_works(worker);
}
} while (keep_working(pool));
worker_set_flags(worker, WORKER_PREP);
sleep:
/*
* pool->lock is held and there's no work to process and no need to
* manage, sleep. Workers are woken up only while holding
* pool->lock or from local cpu, so setting the current state
* before releasing pool->lock is enough to prevent losing any
* event.
*/
worker_enter_idle(worker);
__set_current_state(TASK_IDLE);
spin_unlock_irq(&pool->lock);
schedule();
goto woke_up;
}
/**
* rescuer_thread - the rescuer thread function
* @__rescuer: self
*
* Workqueue rescuer thread function. There's one rescuer for each
* workqueue which has WQ_MEM_RECLAIM set.
*
* Regular work processing on a pool may block trying to create a new
* worker which uses GFP_KERNEL allocation which has slight chance of
* developing into deadlock if some works currently on the same queue
* need to be processed to satisfy the GFP_KERNEL allocation. This is
* the problem rescuer solves.
*
* When such condition is possible, the pool summons rescuers of all
* workqueues which have works queued on the pool and let them process
* those works so that forward progress can be guaranteed.
*
* This should happen rarely.
*
* Return: 0
*/
static int rescuer_thread(void *__rescuer)
{
struct worker *rescuer = __rescuer;
struct workqueue_struct *wq = rescuer->rescue_wq;
struct list_head *scheduled = &rescuer->scheduled;
bool should_stop;
set_user_nice(current, RESCUER_NICE_LEVEL);
/*
* Mark rescuer as worker too. As WORKER_PREP is never cleared, it
* doesn't participate in concurrency management.
*/
set_pf_worker(true);
repeat:
set_current_state(TASK_IDLE);
/*
* By the time the rescuer is requested to stop, the workqueue
* shouldn't have any work pending, but @wq->maydays may still have
* pwq(s) queued. This can happen by non-rescuer workers consuming
* all the work items before the rescuer got to them. Go through
* @wq->maydays processing before acting on should_stop so that the
* list is always empty on exit.
*/
should_stop = kthread_should_stop();
/* see whether any pwq is asking for help */
spin_lock_irq(&wq_mayday_lock);
while (!list_empty(&wq->maydays)) {
struct pool_workqueue *pwq = list_first_entry(&wq->maydays,
struct pool_workqueue, mayday_node);
struct worker_pool *pool = pwq->pool;
struct work_struct *work, *n;
bool first = true;
__set_current_state(TASK_RUNNING);
list_del_init(&pwq->mayday_node);
spin_unlock_irq(&wq_mayday_lock);
worker_attach_to_pool(rescuer, pool);
spin_lock_irq(&pool->lock);
/*
* Slurp in all works issued via this workqueue and
* process'em.
*/
WARN_ON_ONCE(!list_empty(scheduled));
list_for_each_entry_safe(work, n, &pool->worklist, entry) {
if (get_work_pwq(work) == pwq) {
if (first)
pool->watchdog_ts = jiffies;
move_linked_works(work, scheduled, &n);
}
first = false;
}
if (!list_empty(scheduled)) {
process_scheduled_works(rescuer);
/*
* The above execution of rescued work items could
* have created more to rescue through
* pwq_activate_first_delayed() or chained
* queueing. Let's put @pwq back on mayday list so
* that such back-to-back work items, which may be
* being used to relieve memory pressure, don't
* incur MAYDAY_INTERVAL delay inbetween.
*/
if (need_to_create_worker(pool)) {
spin_lock(&wq_mayday_lock);
get_pwq(pwq);
list_move_tail(&pwq->mayday_node, &wq->maydays);
spin_unlock(&wq_mayday_lock);
}
}
/*
* Put the reference grabbed by send_mayday(). @pool won't
* go away while we're still attached to it.
*/
put_pwq(pwq);
/*
* Leave this pool. If need_more_worker() is %true, notify a
* regular worker; otherwise, we end up with 0 concurrency
* and stalling the execution.
*/
if (need_more_worker(pool))
wake_up_worker(pool);
spin_unlock_irq(&pool->lock);
worker_detach_from_pool(rescuer);
spin_lock_irq(&wq_mayday_lock);
}
spin_unlock_irq(&wq_mayday_lock);
if (should_stop) {
__set_current_state(TASK_RUNNING);
set_pf_worker(false);
return 0;
}
/* rescuers should never participate in concurrency management */
WARN_ON_ONCE(!(rescuer->flags & WORKER_NOT_RUNNING));
schedule();
goto repeat;
}
/**
* check_flush_dependency - check for flush dependency sanity
* @target_wq: workqueue being flushed
* @target_work: work item being flushed (NULL for workqueue flushes)
*
* %current is trying to flush the whole @target_wq or @target_work on it.
* If @target_wq doesn't have %WQ_MEM_RECLAIM, verify that %current is not
* reclaiming memory or running on a workqueue which doesn't have
* %WQ_MEM_RECLAIM as that can break forward-progress guarantee leading to
* a deadlock.
*/
static void check_flush_dependency(struct workqueue_struct *target_wq,
struct work_struct *target_work)
{
work_func_t target_func = target_work ? target_work->func : NULL;
struct worker *worker;
if (target_wq->flags & WQ_MEM_RECLAIM)
return;
worker = current_wq_worker();
WARN_ONCE(current->flags & PF_MEMALLOC,
"workqueue: PF_MEMALLOC task %d(%s) is flushing !WQ_MEM_RECLAIM %s:%ps",
current->pid, current->comm, target_wq->name, target_func);
WARN_ONCE(worker && ((worker->current_pwq->wq->flags &
(WQ_MEM_RECLAIM | __WQ_LEGACY)) == WQ_MEM_RECLAIM),
"workqueue: WQ_MEM_RECLAIM %s:%ps is flushing !WQ_MEM_RECLAIM %s:%ps",
worker->current_pwq->wq->name, worker->current_func,
target_wq->name, target_func);
}
struct wq_barrier {
struct work_struct work;
struct completion done;
struct task_struct *task; /* purely informational */
};
static void wq_barrier_func(struct work_struct *work)
{
struct wq_barrier *barr = container_of(work, struct wq_barrier, work);
complete(&barr->done);
}
/**
* insert_wq_barrier - insert a barrier work
* @pwq: pwq to insert barrier into
* @barr: wq_barrier to insert
* @target: target work to attach @barr to
* @worker: worker currently executing @target, NULL if @target is not executing
*
* @barr is linked to @target such that @barr is completed only after
* @target finishes execution. Please note that the ordering
* guarantee is observed only with respect to @target and on the local
* cpu.
*
* Currently, a queued barrier can't be canceled. This is because
* try_to_grab_pending() can't determine whether the work to be
* grabbed is at the head of the queue and thus can't clear LINKED
* flag of the previous work while there must be a valid next work
* after a work with LINKED flag set.
*
* Note that when @worker is non-NULL, @target may be modified
* underneath us, so we can't reliably determine pwq from @target.
*
* CONTEXT:
* spin_lock_irq(pool->lock).
*/
static void insert_wq_barrier(struct pool_workqueue *pwq,
struct wq_barrier *barr,
struct work_struct *target, struct worker *worker)
{
struct list_head *head;
unsigned int linked = 0;
/*
* debugobject calls are safe here even with pool->lock locked
* as we know for sure that this will not trigger any of the
* checks and call back into the fixup functions where we
* might deadlock.
*/
INIT_WORK_ONSTACK(&barr->work, wq_barrier_func);
__set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&barr->work));
init_completion_map(&barr->done, &target->lockdep_map);
barr->task = current;
/*
* If @target is currently being executed, schedule the
* barrier to the worker; otherwise, put it after @target.
*/
if (worker)
head = worker->scheduled.next;
else {
unsigned long *bits = work_data_bits(target);
head = target->entry.next;
/* there can already be other linked works, inherit and set */
linked = *bits & WORK_STRUCT_LINKED;
__set_bit(WORK_STRUCT_LINKED_BIT, bits);
}
debug_work_activate(&barr->work);
insert_work(pwq, &barr->work, head,
work_color_to_flags(WORK_NO_COLOR) | linked);
}
/**
* flush_workqueue_prep_pwqs - prepare pwqs for workqueue flushing
* @wq: workqueue being flushed
* @flush_color: new flush color, < 0 for no-op
* @work_color: new work color, < 0 for no-op
*
* Prepare pwqs for workqueue flushing.
*
* If @flush_color is non-negative, flush_color on all pwqs should be
* -1. If no pwq has in-flight commands at the specified color, all
* pwq->flush_color's stay at -1 and %false is returned. If any pwq
* has in flight commands, its pwq->flush_color is set to
* @flush_color, @wq->nr_pwqs_to_flush is updated accordingly, pwq
* wakeup logic is armed and %true is returned.
*
* The caller should have initialized @wq->first_flusher prior to
* calling this function with non-negative @flush_color. If
* @flush_color is negative, no flush color update is done and %false
* is returned.
*
* If @work_color is non-negative, all pwqs should have the same
* work_color which is previous to @work_color and all will be
* advanced to @work_color.
*
* CONTEXT:
* mutex_lock(wq->mutex).
*
* Return:
* %true if @flush_color >= 0 and there's something to flush. %false
* otherwise.
*/
static bool flush_workqueue_prep_pwqs(struct workqueue_struct *wq,
int flush_color, int work_color)
{
bool wait = false;
struct pool_workqueue *pwq;
if (flush_color >= 0) {
WARN_ON_ONCE(atomic_read(&wq->nr_pwqs_to_flush));
atomic_set(&wq->nr_pwqs_to_flush, 1);
}
for_each_pwq(pwq, wq) {
struct worker_pool *pool = pwq->pool;
spin_lock_irq(&pool->lock);
if (flush_color >= 0) {
WARN_ON_ONCE(pwq->flush_color != -1);
if (pwq->nr_in_flight[flush_color]) {
pwq->flush_color = flush_color;
atomic_inc(&wq->nr_pwqs_to_flush);
wait = true;
}
}
if (work_color >= 0) {
WARN_ON_ONCE(work_color != work_next_color(pwq->work_color));
pwq->work_color = work_color;
}
spin_unlock_irq(&pool->lock);
}
if (flush_color >= 0 && atomic_dec_and_test(&wq->nr_pwqs_to_flush))
complete(&wq->first_flusher->done);
return wait;
}
/**
* flush_workqueue - ensure that any scheduled work has run to completion.
* @wq: workqueue to flush
*
* This function sleeps until all work items which were queued on entry
* have finished execution, but it is not livelocked by new incoming ones.
*/
void flush_workqueue(struct workqueue_struct *wq)
{
struct wq_flusher this_flusher = {
.list = LIST_HEAD_INIT(this_flusher.list),
.flush_color = -1,
.done = COMPLETION_INITIALIZER_ONSTACK_MAP(this_flusher.done, wq->lockdep_map),
};
int next_color;
if (WARN_ON(!wq_online))
return;
lock_map_acquire(&wq->lockdep_map);
lock_map_release(&wq->lockdep_map);
mutex_lock(&wq->mutex);
/*
* Start-to-wait phase
*/
next_color = work_next_color(wq->work_color);
if (next_color != wq->flush_color) {
/*
* Color space is not full. The current work_color
* becomes our flush_color and work_color is advanced
* by one.
*/
WARN_ON_ONCE(!list_empty(&wq->flusher_overflow));
this_flusher.flush_color = wq->work_color;
wq->work_color = next_color;
if (!wq->first_flusher) {
/* no flush in progress, become the first flusher */
WARN_ON_ONCE(wq->flush_color != this_flusher.flush_color);
wq->first_flusher = &this_flusher;
if (!flush_workqueue_prep_pwqs(wq, wq->flush_color,
wq->work_color)) {
/* nothing to flush, done */
wq->flush_color = next_color;
wq->first_flusher = NULL;
goto out_unlock;
}
} else {
/* wait in queue */
WARN_ON_ONCE(wq->flush_color == this_flusher.flush_color);
list_add_tail(&this_flusher.list, &wq->flusher_queue);
flush_workqueue_prep_pwqs(wq, -1, wq->work_color);
}
} else {
/*
* Oops, color space is full, wait on overflow queue.
* The next flush completion will assign us
* flush_color and transfer to flusher_queue.
*/
list_add_tail(&this_flusher.list, &wq->flusher_overflow);
}
check_flush_dependency(wq, NULL);
mutex_unlock(&wq->mutex);
wait_for_completion(&this_flusher.done);
/*
* Wake-up-and-cascade phase
*
* First flushers are responsible for cascading flushes and
* handling overflow. Non-first flushers can simply return.
*/
if (wq->first_flusher != &this_flusher)
return;
mutex_lock(&wq->mutex);
/* we might have raced, check again with mutex held */
if (wq->first_flusher != &this_flusher)
goto out_unlock;
wq->first_flusher = NULL;
WARN_ON_ONCE(!list_empty(&this_flusher.list));
WARN_ON_ONCE(wq->flush_color != this_flusher.flush_color);
while (true) {
struct wq_flusher *next, *tmp;
/* complete all the flushers sharing the current flush color */
list_for_each_entry_safe(next, tmp, &wq->flusher_queue, list) {
if (next->flush_color != wq->flush_color)
break;
list_del_init(&next->list);
complete(&next->done);
}
WARN_ON_ONCE(!list_empty(&wq->flusher_overflow) &&
wq->flush_color != work_next_color(wq->work_color));
/* this flush_color is finished, advance by one */
wq->flush_color = work_next_color(wq->flush_color);
/* one color has been freed, handle overflow queue */
if (!list_empty(&wq->flusher_overflow)) {
/*
* Assign the same color to all overflowed
* flushers, advance work_color and append to
* flusher_queue. This is the start-to-wait
* phase for these overflowed flushers.
*/
list_for_each_entry(tmp, &wq->flusher_overflow, list)
tmp->flush_color = wq->work_color;
wq->work_color = work_next_color(wq->work_color);
list_splice_tail_init(&wq->flusher_overflow,
&wq->flusher_queue);
flush_workqueue_prep_pwqs(wq, -1, wq->work_color);
}
if (list_empty(&wq->flusher_queue)) {
WARN_ON_ONCE(wq->flush_color != wq->work_color);
break;
}
/*
* Need to flush more colors. Make the next flusher
* the new first flusher and arm pwqs.
*/
WARN_ON_ONCE(wq->flush_color == wq->work_color);
WARN_ON_ONCE(wq->flush_color != next->flush_color);
list_del_init(&next->list);
wq->first_flusher = next;
if (flush_workqueue_prep_pwqs(wq, wq->flush_color, -1))
break;
/*
* Meh... this color is already done, clear first
* flusher and repeat cascading.
*/
wq->first_flusher = NULL;
}
out_unlock:
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL(flush_workqueue);
/**
* drain_workqueue - drain a workqueue
* @wq: workqueue to drain
*
* Wait until the workqueue becomes empty. While draining is in progress,
* only chain queueing is allowed. IOW, only currently pending or running
* work items on @wq can queue further work items on it. @wq is flushed
* repeatedly until it becomes empty. The number of flushing is determined
* by the depth of chaining and should be relatively short. Whine if it
* takes too long.
*/
void drain_workqueue(struct workqueue_struct *wq)
{
unsigned int flush_cnt = 0;
struct pool_workqueue *pwq;
/*
* __queue_work() needs to test whether there are drainers, is much
* hotter than drain_workqueue() and already looks at @wq->flags.
* Use __WQ_DRAINING so that queue doesn't have to check nr_drainers.
*/
mutex_lock(&wq->mutex);
if (!wq->nr_drainers++)
wq->flags |= __WQ_DRAINING;
mutex_unlock(&wq->mutex);
reflush:
flush_workqueue(wq);
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq) {
bool drained;
spin_lock_irq(&pwq->pool->lock);
drained = !pwq->nr_active && list_empty(&pwq->delayed_works);
spin_unlock_irq(&pwq->pool->lock);
if (drained)
continue;
if (++flush_cnt == 10 ||
(flush_cnt % 100 == 0 && flush_cnt <= 1000))
pr_warn("workqueue %s: drain_workqueue() isn't complete after %u tries\n",
wq->name, flush_cnt);
mutex_unlock(&wq->mutex);
goto reflush;
}
if (!--wq->nr_drainers)
wq->flags &= ~__WQ_DRAINING;
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL_GPL(drain_workqueue);
static bool start_flush_work(struct work_struct *work, struct wq_barrier *barr,
bool from_cancel)
{
struct worker *worker = NULL;
struct worker_pool *pool;
struct pool_workqueue *pwq;
might_sleep();
rcu_read_lock();
pool = get_work_pool(work);
if (!pool) {
rcu_read_unlock();
return false;
}
spin_lock_irq(&pool->lock);
/* see the comment in try_to_grab_pending() with the same code */
pwq = get_work_pwq(work);
if (pwq) {
if (unlikely(pwq->pool != pool))
goto already_gone;
} else {
worker = find_worker_executing_work(pool, work);
if (!worker)
goto already_gone;
pwq = worker->current_pwq;
}
check_flush_dependency(pwq->wq, work);
insert_wq_barrier(pwq, barr, work, worker);
spin_unlock_irq(&pool->lock);
/*
* Force a lock recursion deadlock when using flush_work() inside a
* single-threaded or rescuer equipped workqueue.
*
* For single threaded workqueues the deadlock happens when the work
* is after the work issuing the flush_work(). For rescuer equipped
* workqueues the deadlock happens when the rescuer stalls, blocking
* forward progress.
*/
if (!from_cancel &&
(pwq->wq->saved_max_active == 1 || pwq->wq->rescuer)) {
lock_map_acquire(&pwq->wq->lockdep_map);
lock_map_release(&pwq->wq->lockdep_map);
}
rcu_read_unlock();
return true;
already_gone:
spin_unlock_irq(&pool->lock);
rcu_read_unlock();
return false;
}
static bool __flush_work(struct work_struct *work, bool from_cancel)
{
struct wq_barrier barr;
if (WARN_ON(!wq_online))
return false;
if (WARN_ON(!work->func))
return false;
if (!from_cancel) {
lock_map_acquire(&work->lockdep_map);
lock_map_release(&work->lockdep_map);
}
if (start_flush_work(work, &barr, from_cancel)) {
wait_for_completion(&barr.done);
destroy_work_on_stack(&barr.work);
return true;
} else {
return false;
}
}
/**
* flush_work - wait for a work to finish executing the last queueing instance
* @work: the work to flush
*
* Wait until @work has finished execution. @work is guaranteed to be idle
* on return if it hasn't been requeued since flush started.
*
* Return:
* %true if flush_work() waited for the work to finish execution,
* %false if it was already idle.
*/
bool flush_work(struct work_struct *work)
{
return __flush_work(work, false);
}
EXPORT_SYMBOL_GPL(flush_work);
struct cwt_wait {
wait_queue_entry_t wait;
struct work_struct *work;
};
static int cwt_wakefn(wait_queue_entry_t *wait, unsigned mode, int sync, void *key)
{
struct cwt_wait *cwait = container_of(wait, struct cwt_wait, wait);
if (cwait->work != key)
return 0;
return autoremove_wake_function(wait, mode, sync, key);
}
static bool __cancel_work_timer(struct work_struct *work, bool is_dwork)
{
static DECLARE_WAIT_QUEUE_HEAD(cancel_waitq);
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(work, is_dwork, &flags);
/*
* If someone else is already canceling, wait for it to
* finish. flush_work() doesn't work for PREEMPT_NONE
* because we may get scheduled between @work's completion
* and the other canceling task resuming and clearing
* CANCELING - flush_work() will return false immediately
* as @work is no longer busy, try_to_grab_pending() will
* return -ENOENT as @work is still being canceled and the
* other canceling task won't be able to clear CANCELING as
* we're hogging the CPU.
*
* Let's wait for completion using a waitqueue. As this
* may lead to the thundering herd problem, use a custom
* wake function which matches @work along with exclusive
* wait and wakeup.
*/
if (unlikely(ret == -ENOENT)) {
struct cwt_wait cwait;
init_wait(&cwait.wait);
cwait.wait.func = cwt_wakefn;
cwait.work = work;
prepare_to_wait_exclusive(&cancel_waitq, &cwait.wait,
TASK_UNINTERRUPTIBLE);
if (work_is_canceling(work))
schedule();
finish_wait(&cancel_waitq, &cwait.wait);
}
} while (unlikely(ret < 0));
/* tell other tasks trying to grab @work to back off */
mark_work_canceling(work);
local_irq_restore(flags);
/*
* This allows canceling during early boot. We know that @work
* isn't executing.
*/
if (wq_online)
__flush_work(work, true);
clear_work_data(work);
/*
* Paired with prepare_to_wait() above so that either
* waitqueue_active() is visible here or !work_is_canceling() is
* visible there.
*/
smp_mb();
if (waitqueue_active(&cancel_waitq))
__wake_up(&cancel_waitq, TASK_NORMAL, 1, work);
return ret;
}
/**
* cancel_work_sync - cancel a work and wait for it to finish
* @work: the work to cancel
*
* Cancel @work and wait for its execution to finish. This function
* can be used even if the work re-queues itself or migrates to
* another workqueue. On return from this function, @work is
* guaranteed to be not pending or executing on any CPU.
*
* cancel_work_sync(&delayed_work->work) must not be used for
* delayed_work's. Use cancel_delayed_work_sync() instead.
*
* The caller must ensure that the workqueue on which @work was last
* queued can't be destroyed before this function returns.
*
* Return:
* %true if @work was pending, %false otherwise.
*/
bool cancel_work_sync(struct work_struct *work)
{
return __cancel_work_timer(work, false);
}
EXPORT_SYMBOL_GPL(cancel_work_sync);
/**
* flush_delayed_work - wait for a dwork to finish executing the last queueing
* @dwork: the delayed work to flush
*
* Delayed timer is cancelled and the pending work is queued for
* immediate execution. Like flush_work(), this function only
* considers the last queueing instance of @dwork.
*
* Return:
* %true if flush_work() waited for the work to finish execution,
* %false if it was already idle.
*/
bool flush_delayed_work(struct delayed_work *dwork)
{
local_irq_disable();
if (del_timer_sync(&dwork->timer))
__queue_work(dwork->cpu, dwork->wq, &dwork->work);
local_irq_enable();
return flush_work(&dwork->work);
}
EXPORT_SYMBOL(flush_delayed_work);
/**
* flush_rcu_work - wait for a rwork to finish executing the last queueing
* @rwork: the rcu work to flush
*
* Return:
* %true if flush_rcu_work() waited for the work to finish execution,
* %false if it was already idle.
*/
bool flush_rcu_work(struct rcu_work *rwork)
{
if (test_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(&rwork->work))) {
rcu_barrier();
flush_work(&rwork->work);
return true;
} else {
return flush_work(&rwork->work);
}
}
EXPORT_SYMBOL(flush_rcu_work);
static bool __cancel_work(struct work_struct *work, bool is_dwork)
{
unsigned long flags;
int ret;
do {
ret = try_to_grab_pending(work, is_dwork, &flags);
} while (unlikely(ret == -EAGAIN));
if (unlikely(ret < 0))
return false;
set_work_pool_and_clear_pending(work, get_work_pool_id(work));
local_irq_restore(flags);
return ret;
}
/**
* cancel_delayed_work - cancel a delayed work
* @dwork: delayed_work to cancel
*
* Kill off a pending delayed_work.
*
* Return: %true if @dwork was pending and canceled; %false if it wasn't
* pending.
*
* Note:
* The work callback function may still be running on return, unless
* it returns %true and the work doesn't re-arm itself. Explicitly flush or
* use cancel_delayed_work_sync() to wait on it.
*
* This function is safe to call from any context including IRQ handler.
*/
bool cancel_delayed_work(struct delayed_work *dwork)
{
return __cancel_work(&dwork->work, true);
}
EXPORT_SYMBOL(cancel_delayed_work);
/**
* cancel_delayed_work_sync - cancel a delayed work and wait for it to finish
* @dwork: the delayed work cancel
*
* This is cancel_work_sync() for delayed works.
*
* Return:
* %true if @dwork was pending, %false otherwise.
*/
bool cancel_delayed_work_sync(struct delayed_work *dwork)
{
return __cancel_work_timer(&dwork->work, true);
}
EXPORT_SYMBOL(cancel_delayed_work_sync);
/**
* schedule_on_each_cpu - execute a function synchronously on each online CPU
* @func: the function to call
*
* schedule_on_each_cpu() executes @func on each online CPU using the
* system workqueue and blocks until all CPUs have completed.
* schedule_on_each_cpu() is very slow.
*
* Return:
* 0 on success, -errno on failure.
*/
int schedule_on_each_cpu(work_func_t func)
{
int cpu;
struct work_struct __percpu *works;
works = alloc_percpu(struct work_struct);
if (!works)
return -ENOMEM;
get_online_cpus();
for_each_online_cpu(cpu) {
struct work_struct *work = per_cpu_ptr(works, cpu);
INIT_WORK(work, func);
schedule_work_on(cpu, work);
}
for_each_online_cpu(cpu)
flush_work(per_cpu_ptr(works, cpu));
put_online_cpus();
free_percpu(works);
return 0;
}
/**
* execute_in_process_context - reliably execute the routine with user context
* @fn: the function to execute
* @ew: guaranteed storage for the execute work structure (must
* be available when the work executes)
*
* Executes the function immediately if process context is available,
* otherwise schedules the function for delayed execution.
*
* Return: 0 - function was executed
* 1 - function was scheduled for execution
*/
int execute_in_process_context(work_func_t fn, struct execute_work *ew)
{
if (!in_interrupt()) {
fn(&ew->work);
return 0;
}
INIT_WORK(&ew->work, fn);
schedule_work(&ew->work);
return 1;
}
EXPORT_SYMBOL_GPL(execute_in_process_context);
/**
* free_workqueue_attrs - free a workqueue_attrs
* @attrs: workqueue_attrs to free
*
* Undo alloc_workqueue_attrs().
*/
void free_workqueue_attrs(struct workqueue_attrs *attrs)
{
if (attrs) {
free_cpumask_var(attrs->cpumask);
kfree(attrs);
}
}
/**
* alloc_workqueue_attrs - allocate a workqueue_attrs
*
* Allocate a new workqueue_attrs, initialize with default settings and
* return it.
*
* Return: The allocated new workqueue_attr on success. %NULL on failure.
*/
struct workqueue_attrs *alloc_workqueue_attrs(void)
{
struct workqueue_attrs *attrs;
attrs = kzalloc(sizeof(*attrs), GFP_KERNEL);
if (!attrs)
goto fail;
if (!alloc_cpumask_var(&attrs->cpumask, GFP_KERNEL))
goto fail;
cpumask_copy(attrs->cpumask, cpu_possible_mask);
return attrs;
fail:
free_workqueue_attrs(attrs);
return NULL;
}
static void copy_workqueue_attrs(struct workqueue_attrs *to,
const struct workqueue_attrs *from)
{
to->nice = from->nice;
cpumask_copy(to->cpumask, from->cpumask);
/*
* Unlike hash and equality test, this function doesn't ignore
* ->no_numa as it is used for both pool and wq attrs. Instead,
* get_unbound_pool() explicitly clears ->no_numa after copying.
*/
to->no_numa = from->no_numa;
}
/* hash value of the content of @attr */
static u32 wqattrs_hash(const struct workqueue_attrs *attrs)
{
u32 hash = 0;
hash = jhash_1word(attrs->nice, hash);
hash = jhash(cpumask_bits(attrs->cpumask),
BITS_TO_LONGS(nr_cpumask_bits) * sizeof(long), hash);
return hash;
}
/* content equality test */
static bool wqattrs_equal(const struct workqueue_attrs *a,
const struct workqueue_attrs *b)
{
if (a->nice != b->nice)
return false;
if (!cpumask_equal(a->cpumask, b->cpumask))
return false;
return true;
}
/**
* init_worker_pool - initialize a newly zalloc'd worker_pool
* @pool: worker_pool to initialize
*
* Initialize a newly zalloc'd @pool. It also allocates @pool->attrs.
*
* Return: 0 on success, -errno on failure. Even on failure, all fields
* inside @pool proper are initialized and put_unbound_pool() can be called
* on @pool safely to release it.
*/
static int init_worker_pool(struct worker_pool *pool)
{
spin_lock_init(&pool->lock);
pool->id = -1;
pool->cpu = -1;
pool->node = NUMA_NO_NODE;
pool->flags |= POOL_DISASSOCIATED;
pool->watchdog_ts = jiffies;
INIT_LIST_HEAD(&pool->worklist);
INIT_LIST_HEAD(&pool->idle_list);
hash_init(pool->busy_hash);
timer_setup(&pool->idle_timer, idle_worker_timeout, TIMER_DEFERRABLE);
timer_setup(&pool->mayday_timer, pool_mayday_timeout, 0);
INIT_LIST_HEAD(&pool->workers);
ida_init(&pool->worker_ida);
INIT_HLIST_NODE(&pool->hash_node);
pool->refcnt = 1;
/* shouldn't fail above this point */
pool->attrs = alloc_workqueue_attrs();
if (!pool->attrs)
return -ENOMEM;
return 0;
}
#ifdef CONFIG_LOCKDEP
static void wq_init_lockdep(struct workqueue_struct *wq)
{
char *lock_name;
lockdep_register_key(&wq->key);
lock_name = kasprintf(GFP_KERNEL, "%s%s", "(wq_completion)", wq->name);
if (!lock_name)
lock_name = wq->name;
wq->lock_name = lock_name;
lockdep_init_map(&wq->lockdep_map, lock_name, &wq->key, 0);
}
static void wq_unregister_lockdep(struct workqueue_struct *wq)
{
lockdep_unregister_key(&wq->key);
}
static void wq_free_lockdep(struct workqueue_struct *wq)
{
if (wq->lock_name != wq->name)
kfree(wq->lock_name);
}
#else
static void wq_init_lockdep(struct workqueue_struct *wq)
{
}
static void wq_unregister_lockdep(struct workqueue_struct *wq)
{
}
static void wq_free_lockdep(struct workqueue_struct *wq)
{
}
#endif
static void rcu_free_wq(struct rcu_head *rcu)
{
struct workqueue_struct *wq =
container_of(rcu, struct workqueue_struct, rcu);
wq_free_lockdep(wq);
if (!(wq->flags & WQ_UNBOUND))
free_percpu(wq->cpu_pwqs);
else
free_workqueue_attrs(wq->unbound_attrs);
kfree(wq->rescuer);
kfree(wq);
}
static void rcu_free_pool(struct rcu_head *rcu)
{
struct worker_pool *pool = container_of(rcu, struct worker_pool, rcu);
ida_destroy(&pool->worker_ida);
free_workqueue_attrs(pool->attrs);
kfree(pool);
}
/**
* put_unbound_pool - put a worker_pool
* @pool: worker_pool to put
*
* Put @pool. If its refcnt reaches zero, it gets destroyed in RCU
* safe manner. get_unbound_pool() calls this function on its failure path
* and this function should be able to release pools which went through,
* successfully or not, init_worker_pool().
*
* Should be called with wq_pool_mutex held.
*/
static void put_unbound_pool(struct worker_pool *pool)
{
DECLARE_COMPLETION_ONSTACK(detach_completion);
struct worker *worker;
lockdep_assert_held(&wq_pool_mutex);
if (--pool->refcnt)
return;
/* sanity checks */
if (WARN_ON(!(pool->cpu < 0)) ||
WARN_ON(!list_empty(&pool->worklist)))
return;
/* release id and unhash */
if (pool->id >= 0)
idr_remove(&worker_pool_idr, pool->id);
hash_del(&pool->hash_node);
/*
* Become the manager and destroy all workers. This prevents
* @pool's workers from blocking on attach_mutex. We're the last
* manager and @pool gets freed with the flag set.
*/
spin_lock_irq(&pool->lock);
wait_event_lock_irq(wq_manager_wait,
!(pool->flags & POOL_MANAGER_ACTIVE), pool->lock);
pool->flags |= POOL_MANAGER_ACTIVE;
while ((worker = first_idle_worker(pool)))
destroy_worker(worker);
WARN_ON(pool->nr_workers || pool->nr_idle);
spin_unlock_irq(&pool->lock);
mutex_lock(&wq_pool_attach_mutex);
if (!list_empty(&pool->workers))
pool->detach_completion = &detach_completion;
mutex_unlock(&wq_pool_attach_mutex);
if (pool->detach_completion)
wait_for_completion(pool->detach_completion);
/* shut down the timers */
del_timer_sync(&pool->idle_timer);
del_timer_sync(&pool->mayday_timer);
/* RCU protected to allow dereferences from get_work_pool() */
call_rcu(&pool->rcu, rcu_free_pool);
}
/**
* get_unbound_pool - get a worker_pool with the specified attributes
* @attrs: the attributes of the worker_pool to get
*
* Obtain a worker_pool which has the same attributes as @attrs, bump the
* reference count and return it. If there already is a matching
* worker_pool, it will be used; otherwise, this function attempts to
* create a new one.
*
* Should be called with wq_pool_mutex held.
*
* Return: On success, a worker_pool with the same attributes as @attrs.
* On failure, %NULL.
*/
static struct worker_pool *get_unbound_pool(const struct workqueue_attrs *attrs)
{
u32 hash = wqattrs_hash(attrs);
struct worker_pool *pool;
int node;
int target_node = NUMA_NO_NODE;
lockdep_assert_held(&wq_pool_mutex);
/* do we already have a matching pool? */
hash_for_each_possible(unbound_pool_hash, pool, hash_node, hash) {
if (wqattrs_equal(pool->attrs, attrs)) {
pool->refcnt++;
return pool;
}
}
/* if cpumask is contained inside a NUMA node, we belong to that node */
if (wq_numa_enabled) {
for_each_node(node) {
if (cpumask_subset(attrs->cpumask,
wq_numa_possible_cpumask[node])) {
target_node = node;
break;
}
}
}
/* nope, create a new one */
pool = kzalloc_node(sizeof(*pool), GFP_KERNEL, target_node);
if (!pool || init_worker_pool(pool) < 0)
goto fail;
lockdep_set_subclass(&pool->lock, 1); /* see put_pwq() */
copy_workqueue_attrs(pool->attrs, attrs);
pool->node = target_node;
/*
* no_numa isn't a worker_pool attribute, always clear it. See
* 'struct workqueue_attrs' comments for detail.
*/
pool->attrs->no_numa = false;
if (worker_pool_assign_id(pool) < 0)
goto fail;
/* create and start the initial worker */
if (wq_online && !create_worker(pool))
goto fail;
/* install */
hash_add(unbound_pool_hash, &pool->hash_node, hash);
return pool;
fail:
if (pool)
put_unbound_pool(pool);
return NULL;
}
static void rcu_free_pwq(struct rcu_head *rcu)
{
kmem_cache_free(pwq_cache,
container_of(rcu, struct pool_workqueue, rcu));
}
/*
* Scheduled on system_wq by put_pwq() when an unbound pwq hits zero refcnt
* and needs to be destroyed.
*/
static void pwq_unbound_release_workfn(struct work_struct *work)
{
struct pool_workqueue *pwq = container_of(work, struct pool_workqueue,
unbound_release_work);
struct workqueue_struct *wq = pwq->wq;
struct worker_pool *pool = pwq->pool;
bool is_last;
if (WARN_ON_ONCE(!(wq->flags & WQ_UNBOUND)))
return;
mutex_lock(&wq->mutex);
list_del_rcu(&pwq->pwqs_node);
is_last = list_empty(&wq->pwqs);
mutex_unlock(&wq->mutex);
mutex_lock(&wq_pool_mutex);
put_unbound_pool(pool);
mutex_unlock(&wq_pool_mutex);
call_rcu(&pwq->rcu, rcu_free_pwq);
/*
* If we're the last pwq going away, @wq is already dead and no one
* is gonna access it anymore. Schedule RCU free.
*/
if (is_last) {
wq_unregister_lockdep(wq);
call_rcu(&wq->rcu, rcu_free_wq);
}
}
/**
* pwq_adjust_max_active - update a pwq's max_active to the current setting
* @pwq: target pool_workqueue
*
* If @pwq isn't freezing, set @pwq->max_active to the associated
* workqueue's saved_max_active and activate delayed work items
* accordingly. If @pwq is freezing, clear @pwq->max_active to zero.
*/
static void pwq_adjust_max_active(struct pool_workqueue *pwq)
{
struct workqueue_struct *wq = pwq->wq;
bool freezable = wq->flags & WQ_FREEZABLE;
unsigned long flags;
/* for @wq->saved_max_active */
lockdep_assert_held(&wq->mutex);
/* fast exit for non-freezable wqs */
if (!freezable && pwq->max_active == wq->saved_max_active)
return;
/* this function can be called during early boot w/ irq disabled */
spin_lock_irqsave(&pwq->pool->lock, flags);
/*
* During [un]freezing, the caller is responsible for ensuring that
* this function is called at least once after @workqueue_freezing
* is updated and visible.
*/
if (!freezable || !workqueue_freezing) {
pwq->max_active = wq->saved_max_active;
while (!list_empty(&pwq->delayed_works) &&
pwq->nr_active < pwq->max_active)
pwq_activate_first_delayed(pwq);
/*
* Need to kick a worker after thawed or an unbound wq's
* max_active is bumped. It's a slow path. Do it always.
*/
wake_up_worker(pwq->pool);
} else {
pwq->max_active = 0;
}
spin_unlock_irqrestore(&pwq->pool->lock, flags);
}
/* initialize newly alloced @pwq which is associated with @wq and @pool */
static void init_pwq(struct pool_workqueue *pwq, struct workqueue_struct *wq,
struct worker_pool *pool)
{
BUG_ON((unsigned long)pwq & WORK_STRUCT_FLAG_MASK);
memset(pwq, 0, sizeof(*pwq));
pwq->pool = pool;
pwq->wq = wq;
pwq->flush_color = -1;
pwq->refcnt = 1;
INIT_LIST_HEAD(&pwq->delayed_works);
INIT_LIST_HEAD(&pwq->pwqs_node);
INIT_LIST_HEAD(&pwq->mayday_node);
INIT_WORK(&pwq->unbound_release_work, pwq_unbound_release_workfn);
}
/* sync @pwq with the current state of its associated wq and link it */
static void link_pwq(struct pool_workqueue *pwq)
{
struct workqueue_struct *wq = pwq->wq;
lockdep_assert_held(&wq->mutex);
/* may be called multiple times, ignore if already linked */
if (!list_empty(&pwq->pwqs_node))
return;
/* set the matching work_color */
pwq->work_color = wq->work_color;
/* sync max_active to the current setting */
pwq_adjust_max_active(pwq);
/* link in @pwq */
list_add_rcu(&pwq->pwqs_node, &wq->pwqs);
}
/* obtain a pool matching @attr and create a pwq associating the pool and @wq */
static struct pool_workqueue *alloc_unbound_pwq(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct worker_pool *pool;
struct pool_workqueue *pwq;
lockdep_assert_held(&wq_pool_mutex);
pool = get_unbound_pool(attrs);
if (!pool)
return NULL;
pwq = kmem_cache_alloc_node(pwq_cache, GFP_KERNEL, pool->node);
if (!pwq) {
put_unbound_pool(pool);
return NULL;
}
init_pwq(pwq, wq, pool);
return pwq;
}
/**
* wq_calc_node_cpumask - calculate a wq_attrs' cpumask for the specified node
* @attrs: the wq_attrs of the default pwq of the target workqueue
* @node: the target NUMA node
* @cpu_going_down: if >= 0, the CPU to consider as offline
* @cpumask: outarg, the resulting cpumask
*
* Calculate the cpumask a workqueue with @attrs should use on @node. If
* @cpu_going_down is >= 0, that cpu is considered offline during
* calculation. The result is stored in @cpumask.
*
* If NUMA affinity is not enabled, @attrs->cpumask is always used. If
* enabled and @node has online CPUs requested by @attrs, the returned
* cpumask is the intersection of the possible CPUs of @node and
* @attrs->cpumask.
*
* The caller is responsible for ensuring that the cpumask of @node stays
* stable.
*
* Return: %true if the resulting @cpumask is different from @attrs->cpumask,
* %false if equal.
*/
static bool wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node,
int cpu_going_down, cpumask_t *cpumask)
{
if (!wq_numa_enabled || attrs->no_numa)
goto use_dfl;
/* does @node have any online CPUs @attrs wants? */
cpumask_and(cpumask, cpumask_of_node(node), attrs->cpumask);
if (cpu_going_down >= 0)
cpumask_clear_cpu(cpu_going_down, cpumask);
if (cpumask_empty(cpumask))
goto use_dfl;
/* yeap, return possible CPUs in @node that @attrs wants */
cpumask_and(cpumask, attrs->cpumask, wq_numa_possible_cpumask[node]);
if (cpumask_empty(cpumask)) {
pr_warn_once("WARNING: workqueue cpumask: online intersect > "
"possible intersect\n");
return false;
}
return !cpumask_equal(cpumask, attrs->cpumask);
use_dfl:
cpumask_copy(cpumask, attrs->cpumask);
return false;
}
/* install @pwq into @wq's numa_pwq_tbl[] for @node and return the old pwq */
static struct pool_workqueue *numa_pwq_tbl_install(struct workqueue_struct *wq,
int node,
struct pool_workqueue *pwq)
{
struct pool_workqueue *old_pwq;
lockdep_assert_held(&wq_pool_mutex);
lockdep_assert_held(&wq->mutex);
/* link_pwq() can handle duplicate calls */
link_pwq(pwq);
old_pwq = rcu_access_pointer(wq->numa_pwq_tbl[node]);
rcu_assign_pointer(wq->numa_pwq_tbl[node], pwq);
return old_pwq;
}
/* context to store the prepared attrs & pwqs before applying */
struct apply_wqattrs_ctx {
struct workqueue_struct *wq; /* target workqueue */
struct workqueue_attrs *attrs; /* attrs to apply */
struct list_head list; /* queued for batching commit */
struct pool_workqueue *dfl_pwq;
struct pool_workqueue *pwq_tbl[];
};
/* free the resources after success or abort */
static void apply_wqattrs_cleanup(struct apply_wqattrs_ctx *ctx)
{
if (ctx) {
int node;
for_each_node(node)
put_pwq_unlocked(ctx->pwq_tbl[node]);
put_pwq_unlocked(ctx->dfl_pwq);
free_workqueue_attrs(ctx->attrs);
kfree(ctx);
}
}
/* allocate the attrs and pwqs for later installation */
static struct apply_wqattrs_ctx *
apply_wqattrs_prepare(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct apply_wqattrs_ctx *ctx;
struct workqueue_attrs *new_attrs, *tmp_attrs;
int node;
lockdep_assert_held(&wq_pool_mutex);
ctx = kzalloc(struct_size(ctx, pwq_tbl, nr_node_ids), GFP_KERNEL);
new_attrs = alloc_workqueue_attrs();
tmp_attrs = alloc_workqueue_attrs();
if (!ctx || !new_attrs || !tmp_attrs)
goto out_free;
/*
* Calculate the attrs of the default pwq.
* If the user configured cpumask doesn't overlap with the
* wq_unbound_cpumask, we fallback to the wq_unbound_cpumask.
*/
copy_workqueue_attrs(new_attrs, attrs);
cpumask_and(new_attrs->cpumask, new_attrs->cpumask, wq_unbound_cpumask);
if (unlikely(cpumask_empty(new_attrs->cpumask)))
cpumask_copy(new_attrs->cpumask, wq_unbound_cpumask);
/*
* We may create multiple pwqs with differing cpumasks. Make a
* copy of @new_attrs which will be modified and used to obtain
* pools.
*/
copy_workqueue_attrs(tmp_attrs, new_attrs);
/*
* If something goes wrong during CPU up/down, we'll fall back to
* the default pwq covering whole @attrs->cpumask. Always create
* it even if we don't use it immediately.
*/
ctx->dfl_pwq = alloc_unbound_pwq(wq, new_attrs);
if (!ctx->dfl_pwq)
goto out_free;
for_each_node(node) {
if (wq_calc_node_cpumask(new_attrs, node, -1, tmp_attrs->cpumask)) {
ctx->pwq_tbl[node] = alloc_unbound_pwq(wq, tmp_attrs);
if (!ctx->pwq_tbl[node])
goto out_free;
} else {
ctx->dfl_pwq->refcnt++;
ctx->pwq_tbl[node] = ctx->dfl_pwq;
}
}
/* save the user configured attrs and sanitize it. */
copy_workqueue_attrs(new_attrs, attrs);
cpumask_and(new_attrs->cpumask, new_attrs->cpumask, cpu_possible_mask);
ctx->attrs = new_attrs;
ctx->wq = wq;
free_workqueue_attrs(tmp_attrs);
return ctx;
out_free:
free_workqueue_attrs(tmp_attrs);
free_workqueue_attrs(new_attrs);
apply_wqattrs_cleanup(ctx);
return NULL;
}
/* set attrs and install prepared pwqs, @ctx points to old pwqs on return */
static void apply_wqattrs_commit(struct apply_wqattrs_ctx *ctx)
{
int node;
/* all pwqs have been created successfully, let's install'em */
mutex_lock(&ctx->wq->mutex);
copy_workqueue_attrs(ctx->wq->unbound_attrs, ctx->attrs);
/* save the previous pwq and install the new one */
for_each_node(node)
ctx->pwq_tbl[node] = numa_pwq_tbl_install(ctx->wq, node,
ctx->pwq_tbl[node]);
/* @dfl_pwq might not have been used, ensure it's linked */
link_pwq(ctx->dfl_pwq);
swap(ctx->wq->dfl_pwq, ctx->dfl_pwq);
mutex_unlock(&ctx->wq->mutex);
}
static void apply_wqattrs_lock(void)
{
/* CPUs should stay stable across pwq creations and installations */
get_online_cpus();
mutex_lock(&wq_pool_mutex);
}
static void apply_wqattrs_unlock(void)
{
mutex_unlock(&wq_pool_mutex);
put_online_cpus();
}
static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
struct apply_wqattrs_ctx *ctx;
/* only unbound workqueues can change attributes */
if (WARN_ON(!(wq->flags & WQ_UNBOUND)))
return -EINVAL;
/* creating multiple pwqs breaks ordering guarantee */
if (!list_empty(&wq->pwqs)) {
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return -EINVAL;
wq->flags &= ~__WQ_ORDERED;
}
ctx = apply_wqattrs_prepare(wq, attrs);
if (!ctx)
return -ENOMEM;
/* the ctx has been prepared successfully, let's commit it */
apply_wqattrs_commit(ctx);
apply_wqattrs_cleanup(ctx);
return 0;
}
/**
* apply_workqueue_attrs - apply new workqueue_attrs to an unbound workqueue
* @wq: the target workqueue
* @attrs: the workqueue_attrs to apply, allocated with alloc_workqueue_attrs()
*
* Apply @attrs to an unbound workqueue @wq. Unless disabled, on NUMA
* machines, this function maps a separate pwq to each NUMA node with
* possibles CPUs in @attrs->cpumask so that work items are affine to the
* NUMA node it was issued on. Older pwqs are released as in-flight work
* items finish. Note that a work item which repeatedly requeues itself
* back-to-back will stay on its current pwq.
*
* Performs GFP_KERNEL allocations.
*
* Assumes caller has CPU hotplug read exclusion, i.e. get_online_cpus().
*
* Return: 0 on success and -errno on failure.
*/
int apply_workqueue_attrs(struct workqueue_struct *wq,
const struct workqueue_attrs *attrs)
{
int ret;
lockdep_assert_cpus_held();
mutex_lock(&wq_pool_mutex);
ret = apply_workqueue_attrs_locked(wq, attrs);
mutex_unlock(&wq_pool_mutex);
return ret;
}
/**
* wq_update_unbound_numa - update NUMA affinity of a wq for CPU hot[un]plug
* @wq: the target workqueue
* @cpu: the CPU coming up or going down
* @online: whether @cpu is coming up or going down
*
* This function is to be called from %CPU_DOWN_PREPARE, %CPU_ONLINE and
* %CPU_DOWN_FAILED. @cpu is being hot[un]plugged, update NUMA affinity of
* @wq accordingly.
*
* If NUMA affinity can't be adjusted due to memory allocation failure, it
* falls back to @wq->dfl_pwq which may not be optimal but is always
* correct.
*
* Note that when the last allowed CPU of a NUMA node goes offline for a
* workqueue with a cpumask spanning multiple nodes, the workers which were
* already executing the work items for the workqueue will lose their CPU
* affinity and may execute on any CPU. This is similar to how per-cpu
* workqueues behave on CPU_DOWN. If a workqueue user wants strict
* affinity, it's the user's responsibility to flush the work item from
* CPU_DOWN_PREPARE.
*/
static void wq_update_unbound_numa(struct workqueue_struct *wq, int cpu,
bool online)
{
int node = cpu_to_node(cpu);
int cpu_off = online ? -1 : cpu;
struct pool_workqueue *old_pwq = NULL, *pwq;
struct workqueue_attrs *target_attrs;
cpumask_t *cpumask;
lockdep_assert_held(&wq_pool_mutex);
if (!wq_numa_enabled || !(wq->flags & WQ_UNBOUND) ||
wq->unbound_attrs->no_numa)
return;
/*
* We don't wanna alloc/free wq_attrs for each wq for each CPU.
* Let's use a preallocated one. The following buf is protected by
* CPU hotplug exclusion.
*/
target_attrs = wq_update_unbound_numa_attrs_buf;
cpumask = target_attrs->cpumask;
copy_workqueue_attrs(target_attrs, wq->unbound_attrs);
pwq = unbound_pwq_by_node(wq, node);
/*
* Let's determine what needs to be done. If the target cpumask is
* different from the default pwq's, we need to compare it to @pwq's
* and create a new one if they don't match. If the target cpumask
* equals the default pwq's, the default pwq should be used.
*/
if (wq_calc_node_cpumask(wq->dfl_pwq->pool->attrs, node, cpu_off, cpumask)) {
if (cpumask_equal(cpumask, pwq->pool->attrs->cpumask))
return;
} else {
goto use_dfl_pwq;
}
/* create a new pwq */
pwq = alloc_unbound_pwq(wq, target_attrs);
if (!pwq) {
pr_warn("workqueue: allocation failed while updating NUMA affinity of \"%s\"\n",
wq->name);
goto use_dfl_pwq;
}
/* Install the new pwq. */
mutex_lock(&wq->mutex);
old_pwq = numa_pwq_tbl_install(wq, node, pwq);
goto out_unlock;
use_dfl_pwq:
mutex_lock(&wq->mutex);
spin_lock_irq(&wq->dfl_pwq->pool->lock);
get_pwq(wq->dfl_pwq);
spin_unlock_irq(&wq->dfl_pwq->pool->lock);
old_pwq = numa_pwq_tbl_install(wq, node, wq->dfl_pwq);
out_unlock:
mutex_unlock(&wq->mutex);
put_pwq_unlocked(old_pwq);
}
static int alloc_and_link_pwqs(struct workqueue_struct *wq)
{
bool highpri = wq->flags & WQ_HIGHPRI;
int cpu, ret;
if (!(wq->flags & WQ_UNBOUND)) {
wq->cpu_pwqs = alloc_percpu(struct pool_workqueue);
if (!wq->cpu_pwqs)
return -ENOMEM;
for_each_possible_cpu(cpu) {
struct pool_workqueue *pwq =
per_cpu_ptr(wq->cpu_pwqs, cpu);
struct worker_pool *cpu_pools =
per_cpu(cpu_worker_pools, cpu);
init_pwq(pwq, wq, &cpu_pools[highpri]);
mutex_lock(&wq->mutex);
link_pwq(pwq);
mutex_unlock(&wq->mutex);
}
return 0;
}
get_online_cpus();
if (wq->flags & __WQ_ORDERED) {
ret = apply_workqueue_attrs(wq, ordered_wq_attrs[highpri]);
/* there should only be single pwq for ordering guarantee */
WARN(!ret && (wq->pwqs.next != &wq->dfl_pwq->pwqs_node ||
wq->pwqs.prev != &wq->dfl_pwq->pwqs_node),
"ordering guarantee broken for workqueue %s\n", wq->name);
} else {
ret = apply_workqueue_attrs(wq, unbound_std_wq_attrs[highpri]);
}
put_online_cpus();
return ret;
}
static int wq_clamp_max_active(int max_active, unsigned int flags,
const char *name)
{
int lim = flags & WQ_UNBOUND ? WQ_UNBOUND_MAX_ACTIVE : WQ_MAX_ACTIVE;
if (max_active < 1 || max_active > lim)
pr_warn("workqueue: max_active %d requested for %s is out of range, clamping between %d and %d\n",
max_active, name, 1, lim);
return clamp_val(max_active, 1, lim);
}
/*
* Workqueues which may be used during memory reclaim should have a rescuer
* to guarantee forward progress.
*/
static int init_rescuer(struct workqueue_struct *wq)
{
struct worker *rescuer;
int ret;
if (!(wq->flags & WQ_MEM_RECLAIM))
return 0;
rescuer = alloc_worker(NUMA_NO_NODE);
if (!rescuer)
return -ENOMEM;
rescuer->rescue_wq = wq;
rescuer->task = kthread_create(rescuer_thread, rescuer, "%s", wq->name);
ret = PTR_ERR_OR_ZERO(rescuer->task);
if (ret) {
kfree(rescuer);
return ret;
}
wq->rescuer = rescuer;
kthread_bind_mask(rescuer->task, cpu_possible_mask);
wake_up_process(rescuer->task);
return 0;
}
__printf(1, 4)
struct workqueue_struct *alloc_workqueue(const char *fmt,
unsigned int flags,
int max_active, ...)
{
size_t tbl_size = 0;
va_list args;
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
/*
* Unbound && max_active == 1 used to imply ordered, which is no
* longer the case on NUMA machines due to per-node pools. While
* alloc_ordered_workqueue() is the right way to create an ordered
* workqueue, keep the previous behavior to avoid subtle breakages
* on NUMA.
*/
if ((flags & WQ_UNBOUND) && max_active == 1)
flags |= __WQ_ORDERED;
/* see the comment above the definition of WQ_POWER_EFFICIENT */
if ((flags & WQ_POWER_EFFICIENT) && wq_power_efficient)
flags |= WQ_UNBOUND;
/* allocate wq and format name */
if (flags & WQ_UNBOUND)
tbl_size = nr_node_ids * sizeof(wq->numa_pwq_tbl[0]);
wq = kzalloc(sizeof(*wq) + tbl_size, GFP_KERNEL);
if (!wq)
return NULL;
if (flags & WQ_UNBOUND) {
wq->unbound_attrs = alloc_workqueue_attrs();
if (!wq->unbound_attrs)
goto err_free_wq;
}
va_start(args, max_active);
vsnprintf(wq->name, sizeof(wq->name), fmt, args);
va_end(args);
max_active = max_active ?: WQ_DFL_ACTIVE;
max_active = wq_clamp_max_active(max_active, flags, wq->name);
/* init wq */
wq->flags = flags;
wq->saved_max_active = max_active;
mutex_init(&wq->mutex);
atomic_set(&wq->nr_pwqs_to_flush, 0);
INIT_LIST_HEAD(&wq->pwqs);
INIT_LIST_HEAD(&wq->flusher_queue);
INIT_LIST_HEAD(&wq->flusher_overflow);
INIT_LIST_HEAD(&wq->maydays);
wq_init_lockdep(wq);
INIT_LIST_HEAD(&wq->list);
if (alloc_and_link_pwqs(wq) < 0)
goto err_unreg_lockdep;
if (wq_online && init_rescuer(wq) < 0)
goto err_destroy;
if ((wq->flags & WQ_SYSFS) && workqueue_sysfs_register(wq))
goto err_destroy;
/*
* wq_pool_mutex protects global freeze state and workqueues list.
* Grab it, adjust max_active and add the new @wq to workqueues
* list.
*/
mutex_lock(&wq_pool_mutex);
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
list_add_tail_rcu(&wq->list, &workqueues);
mutex_unlock(&wq_pool_mutex);
return wq;
err_unreg_lockdep:
wq_unregister_lockdep(wq);
wq_free_lockdep(wq);
err_free_wq:
free_workqueue_attrs(wq->unbound_attrs);
kfree(wq);
return NULL;
err_destroy:
destroy_workqueue(wq);
return NULL;
}
EXPORT_SYMBOL_GPL(alloc_workqueue);
/**
* destroy_workqueue - safely terminate a workqueue
* @wq: target workqueue
*
* Safely destroy a workqueue. All work currently pending will be done first.
*/
void destroy_workqueue(struct workqueue_struct *wq)
{
struct pool_workqueue *pwq;
int node;
/* drain it before proceeding with destruction */
drain_workqueue(wq);
/* sanity checks */
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq) {
int i;
for (i = 0; i < WORK_NR_COLORS; i++) {
if (WARN_ON(pwq->nr_in_flight[i])) {
mutex_unlock(&wq->mutex);
show_workqueue_state();
return;
}
}
if (WARN_ON((pwq != wq->dfl_pwq) && (pwq->refcnt > 1)) ||
WARN_ON(pwq->nr_active) ||
WARN_ON(!list_empty(&pwq->delayed_works))) {
mutex_unlock(&wq->mutex);
show_workqueue_state();
return;
}
}
mutex_unlock(&wq->mutex);
/*
* wq list is used to freeze wq, remove from list after
* flushing is complete in case freeze races us.
*/
mutex_lock(&wq_pool_mutex);
list_del_rcu(&wq->list);
mutex_unlock(&wq_pool_mutex);
workqueue_sysfs_unregister(wq);
if (wq->rescuer)
kthread_stop(wq->rescuer->task);
if (!(wq->flags & WQ_UNBOUND)) {
wq_unregister_lockdep(wq);
/*
* The base ref is never dropped on per-cpu pwqs. Directly
* schedule RCU free.
*/
call_rcu(&wq->rcu, rcu_free_wq);
} else {
/*
* We're the sole accessor of @wq at this point. Directly
* access numa_pwq_tbl[] and dfl_pwq to put the base refs.
* @wq will be freed when the last pwq is released.
*/
for_each_node(node) {
pwq = rcu_access_pointer(wq->numa_pwq_tbl[node]);
RCU_INIT_POINTER(wq->numa_pwq_tbl[node], NULL);
put_pwq_unlocked(pwq);
}
/*
* Put dfl_pwq. @wq may be freed any time after dfl_pwq is
* put. Don't access it afterwards.
*/
pwq = wq->dfl_pwq;
wq->dfl_pwq = NULL;
put_pwq_unlocked(pwq);
}
}
EXPORT_SYMBOL_GPL(destroy_workqueue);
/**
* workqueue_set_max_active - adjust max_active of a workqueue
* @wq: target workqueue
* @max_active: new max_active value.
*
* Set max_active of @wq to @max_active.
*
* CONTEXT:
* Don't call from IRQ context.
*/
void workqueue_set_max_active(struct workqueue_struct *wq, int max_active)
{
struct pool_workqueue *pwq;
/* disallow meddling with max_active for ordered workqueues */
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return;
max_active = wq_clamp_max_active(max_active, wq->flags, wq->name);
mutex_lock(&wq->mutex);
wq->flags &= ~__WQ_ORDERED;
wq->saved_max_active = max_active;
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
EXPORT_SYMBOL_GPL(workqueue_set_max_active);
/**
* current_work - retrieve %current task's work struct
*
* Determine if %current task is a workqueue worker and what it's working on.
* Useful to find out the context that the %current task is running in.
*
* Return: work struct if %current task is a workqueue worker, %NULL otherwise.
*/
struct work_struct *current_work(void)
{
struct worker *worker = current_wq_worker();
return worker ? worker->current_work : NULL;
}
EXPORT_SYMBOL(current_work);
/**
* current_is_workqueue_rescuer - is %current workqueue rescuer?
*
* Determine whether %current is a workqueue rescuer. Can be used from
* work functions to determine whether it's being run off the rescuer task.
*
* Return: %true if %current is a workqueue rescuer. %false otherwise.
*/
bool current_is_workqueue_rescuer(void)
{
struct worker *worker = current_wq_worker();
return worker && worker->rescue_wq;
}
/**
* workqueue_congested - test whether a workqueue is congested
* @cpu: CPU in question
* @wq: target workqueue
*
* Test whether @wq's cpu workqueue for @cpu is congested. There is
* no synchronization around this function and the test result is
* unreliable and only useful as advisory hints or for debugging.
*
* If @cpu is WORK_CPU_UNBOUND, the test is performed on the local CPU.
* Note that both per-cpu and unbound workqueues may be associated with
* multiple pool_workqueues which have separate congested states. A
* workqueue being congested on one CPU doesn't mean the workqueue is also
* contested on other CPUs / NUMA nodes.
*
* Return:
* %true if congested, %false otherwise.
*/
bool workqueue_congested(int cpu, struct workqueue_struct *wq)
{
struct pool_workqueue *pwq;
bool ret;
rcu_read_lock();
preempt_disable();
if (cpu == WORK_CPU_UNBOUND)
cpu = smp_processor_id();
if (!(wq->flags & WQ_UNBOUND))
pwq = per_cpu_ptr(wq->cpu_pwqs, cpu);
else
pwq = unbound_pwq_by_node(wq, cpu_to_node(cpu));
ret = !list_empty(&pwq->delayed_works);
preempt_enable();
rcu_read_unlock();
return ret;
}
EXPORT_SYMBOL_GPL(workqueue_congested);
/**
* work_busy - test whether a work is currently pending or running
* @work: the work to be tested
*
* Test whether @work is currently pending or running. There is no
* synchronization around this function and the test result is
* unreliable and only useful as advisory hints or for debugging.
*
* Return:
* OR'd bitmask of WORK_BUSY_* bits.
*/
unsigned int work_busy(struct work_struct *work)
{
struct worker_pool *pool;
unsigned long flags;
unsigned int ret = 0;
if (work_pending(work))
ret |= WORK_BUSY_PENDING;
rcu_read_lock();
pool = get_work_pool(work);
if (pool) {
spin_lock_irqsave(&pool->lock, flags);
if (find_worker_executing_work(pool, work))
ret |= WORK_BUSY_RUNNING;
spin_unlock_irqrestore(&pool->lock, flags);
}
rcu_read_unlock();
return ret;
}
EXPORT_SYMBOL_GPL(work_busy);
/**
* set_worker_desc - set description for the current work item
* @fmt: printf-style format string
* @...: arguments for the format string
*
* This function can be called by a running work function to describe what
* the work item is about. If the worker task gets dumped, this
* information will be printed out together to help debugging. The
* description can be at most WORKER_DESC_LEN including the trailing '\0'.
*/
void set_worker_desc(const char *fmt, ...)
{
struct worker *worker = current_wq_worker();
va_list args;
if (worker) {
va_start(args, fmt);
vsnprintf(worker->desc, sizeof(worker->desc), fmt, args);
va_end(args);
}
}
EXPORT_SYMBOL_GPL(set_worker_desc);
/**
* print_worker_info - print out worker information and description
* @log_lvl: the log level to use when printing
* @task: target task
*
* If @task is a worker and currently executing a work item, print out the
* name of the workqueue being serviced and worker description set with
* set_worker_desc() by the currently executing work item.
*
* This function can be safely called on any task as long as the
* task_struct itself is accessible. While safe, this function isn't
* synchronized and may print out mixups or garbages of limited length.
*/
void print_worker_info(const char *log_lvl, struct task_struct *task)
{
work_func_t *fn = NULL;
char name[WQ_NAME_LEN] = { };
char desc[WORKER_DESC_LEN] = { };
struct pool_workqueue *pwq = NULL;
struct workqueue_struct *wq = NULL;
struct worker *worker;
if (!(task->flags & PF_WQ_WORKER))
return;
/*
* This function is called without any synchronization and @task
* could be in any state. Be careful with dereferences.
*/
worker = kthread_probe_data(task);
/*
* Carefully copy the associated workqueue's workfn, name and desc.
* Keep the original last '\0' in case the original is garbage.
*/
probe_kernel_read(&fn, &worker->current_func, sizeof(fn));
probe_kernel_read(&pwq, &worker->current_pwq, sizeof(pwq));
probe_kernel_read(&wq, &pwq->wq, sizeof(wq));
probe_kernel_read(name, wq->name, sizeof(name) - 1);
probe_kernel_read(desc, worker->desc, sizeof(desc) - 1);
if (fn || name[0] || desc[0]) {
printk("%sWorkqueue: %s %ps", log_lvl, name, fn);
if (strcmp(name, desc))
pr_cont(" (%s)", desc);
pr_cont("\n");
}
}
static void pr_cont_pool_info(struct worker_pool *pool)
{
pr_cont(" cpus=%*pbl", nr_cpumask_bits, pool->attrs->cpumask);
if (pool->node != NUMA_NO_NODE)
pr_cont(" node=%d", pool->node);
pr_cont(" flags=0x%x nice=%d", pool->flags, pool->attrs->nice);
}
static void pr_cont_work(bool comma, struct work_struct *work)
{
if (work->func == wq_barrier_func) {
struct wq_barrier *barr;
barr = container_of(work, struct wq_barrier, work);
pr_cont("%s BAR(%d)", comma ? "," : "",
task_pid_nr(barr->task));
} else {
pr_cont("%s %ps", comma ? "," : "", work->func);
}
}
static void show_pwq(struct pool_workqueue *pwq)
{
struct worker_pool *pool = pwq->pool;
struct work_struct *work;
struct worker *worker;
bool has_in_flight = false, has_pending = false;
int bkt;
pr_info(" pwq %d:", pool->id);
pr_cont_pool_info(pool);
pr_cont(" active=%d/%d%s\n", pwq->nr_active, pwq->max_active,
!list_empty(&pwq->mayday_node) ? " MAYDAY" : "");
hash_for_each(pool->busy_hash, bkt, worker, hentry) {
if (worker->current_pwq == pwq) {
has_in_flight = true;
break;
}
}
if (has_in_flight) {
bool comma = false;
pr_info(" in-flight:");
hash_for_each(pool->busy_hash, bkt, worker, hentry) {
if (worker->current_pwq != pwq)
continue;
pr_cont("%s %d%s:%ps", comma ? "," : "",
task_pid_nr(worker->task),
worker == pwq->wq->rescuer ? "(RESCUER)" : "",
worker->current_func);
list_for_each_entry(work, &worker->scheduled, entry)
pr_cont_work(false, work);
comma = true;
}
pr_cont("\n");
}
list_for_each_entry(work, &pool->worklist, entry) {
if (get_work_pwq(work) == pwq) {
has_pending = true;
break;
}
}
if (has_pending) {
bool comma = false;
pr_info(" pending:");
list_for_each_entry(work, &pool->worklist, entry) {
if (get_work_pwq(work) != pwq)
continue;
pr_cont_work(comma, work);
comma = !(*work_data_bits(work) & WORK_STRUCT_LINKED);
}
pr_cont("\n");
}
if (!list_empty(&pwq->delayed_works)) {
bool comma = false;
pr_info(" delayed:");
list_for_each_entry(work, &pwq->delayed_works, entry) {
pr_cont_work(comma, work);
comma = !(*work_data_bits(work) & WORK_STRUCT_LINKED);
}
pr_cont("\n");
}
}
/**
* show_workqueue_state - dump workqueue state
*
* Called from a sysrq handler or try_to_freeze_tasks() and prints out
* all busy workqueues and pools.
*/
void show_workqueue_state(void)
{
struct workqueue_struct *wq;
struct worker_pool *pool;
unsigned long flags;
int pi;
rcu_read_lock();
pr_info("Showing busy workqueues and worker pools:\n");
list_for_each_entry_rcu(wq, &workqueues, list) {
struct pool_workqueue *pwq;
bool idle = true;
for_each_pwq(pwq, wq) {
if (pwq->nr_active || !list_empty(&pwq->delayed_works)) {
idle = false;
break;
}
}
if (idle)
continue;
pr_info("workqueue %s: flags=0x%x\n", wq->name, wq->flags);
for_each_pwq(pwq, wq) {
spin_lock_irqsave(&pwq->pool->lock, flags);
if (pwq->nr_active || !list_empty(&pwq->delayed_works))
show_pwq(pwq);
spin_unlock_irqrestore(&pwq->pool->lock, flags);
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
* hard lockup.
*/
touch_nmi_watchdog();
}
}
for_each_pool(pool, pi) {
struct worker *worker;
bool first = true;
spin_lock_irqsave(&pool->lock, flags);
if (pool->nr_workers == pool->nr_idle)
goto next_pool;
pr_info("pool %d:", pool->id);
pr_cont_pool_info(pool);
pr_cont(" hung=%us workers=%d",
jiffies_to_msecs(jiffies - pool->watchdog_ts) / 1000,
pool->nr_workers);
if (pool->manager)
pr_cont(" manager: %d",
task_pid_nr(pool->manager->task));
list_for_each_entry(worker, &pool->idle_list, entry) {
pr_cont(" %s%d", first ? "idle: " : "",
task_pid_nr(worker->task));
first = false;
}
pr_cont("\n");
next_pool:
spin_unlock_irqrestore(&pool->lock, flags);
/*
* We could be printing a lot from atomic context, e.g.
* sysrq-t -> show_workqueue_state(). Avoid triggering
* hard lockup.
*/
touch_nmi_watchdog();
}
rcu_read_unlock();
}
/* used to show worker information through /proc/PID/{comm,stat,status} */
void wq_worker_comm(char *buf, size_t size, struct task_struct *task)
{
int off;
/* always show the actual comm */
off = strscpy(buf, task->comm, size);
if (off < 0)
return;
/* stabilize PF_WQ_WORKER and worker pool association */
mutex_lock(&wq_pool_attach_mutex);
if (task->flags & PF_WQ_WORKER) {
struct worker *worker = kthread_data(task);
struct worker_pool *pool = worker->pool;
if (pool) {
spin_lock_irq(&pool->lock);
/*
* ->desc tracks information (wq name or
* set_worker_desc()) for the latest execution. If
* current, prepend '+', otherwise '-'.
*/
if (worker->desc[0] != '\0') {
if (worker->current_work)
scnprintf(buf + off, size - off, "+%s",
worker->desc);
else
scnprintf(buf + off, size - off, "-%s",
worker->desc);
}
spin_unlock_irq(&pool->lock);
}
}
mutex_unlock(&wq_pool_attach_mutex);
}
#ifdef CONFIG_SMP
/*
* CPU hotplug.
*
* There are two challenges in supporting CPU hotplug. Firstly, there
* are a lot of assumptions on strong associations among work, pwq and
* pool which make migrating pending and scheduled works very
* difficult to implement without impacting hot paths. Secondly,
* worker pools serve mix of short, long and very long running works making
* blocked draining impractical.
*
* This is solved by allowing the pools to be disassociated from the CPU
* running as an unbound one and allowing it to be reattached later if the
* cpu comes back online.
*/
static void unbind_workers(int cpu)
{
struct worker_pool *pool;
struct worker *worker;
for_each_cpu_worker_pool(pool, cpu) {
mutex_lock(&wq_pool_attach_mutex);
spin_lock_irq(&pool->lock);
/*
* We've blocked all attach/detach operations. Make all workers
* unbound and set DISASSOCIATED. Before this, all workers
* except for the ones which are still executing works from
* before the last CPU down must be on the cpu. After
* this, they may become diasporas.
*/
for_each_pool_worker(worker, pool)
worker->flags |= WORKER_UNBOUND;
pool->flags |= POOL_DISASSOCIATED;
spin_unlock_irq(&pool->lock);
mutex_unlock(&wq_pool_attach_mutex);
/*
* Call schedule() so that we cross rq->lock and thus can
* guarantee sched callbacks see the %WORKER_UNBOUND flag.
* This is necessary as scheduler callbacks may be invoked
* from other cpus.
*/
schedule();
/*
* Sched callbacks are disabled now. Zap nr_running.
* After this, nr_running stays zero and need_more_worker()
* and keep_working() are always true as long as the
* worklist is not empty. This pool now behaves as an
* unbound (in terms of concurrency management) pool which
* are served by workers tied to the pool.
*/
atomic_set(&pool->nr_running, 0);
/*
* With concurrency management just turned off, a busy
* worker blocking could lead to lengthy stalls. Kick off
* unbound chain execution of currently pending work items.
*/
spin_lock_irq(&pool->lock);
wake_up_worker(pool);
spin_unlock_irq(&pool->lock);
}
}
/**
* rebind_workers - rebind all workers of a pool to the associated CPU
* @pool: pool of interest
*
* @pool->cpu is coming online. Rebind all workers to the CPU.
*/
static void rebind_workers(struct worker_pool *pool)
{
struct worker *worker;
lockdep_assert_held(&wq_pool_attach_mutex);
/*
* Restore CPU affinity of all workers. As all idle workers should
* be on the run-queue of the associated CPU before any local
* wake-ups for concurrency management happen, restore CPU affinity
* of all workers first and then clear UNBOUND. As we're called
* from CPU_ONLINE, the following shouldn't fail.
*/
for_each_pool_worker(worker, pool)
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task,
pool->attrs->cpumask) < 0);
spin_lock_irq(&pool->lock);
pool->flags &= ~POOL_DISASSOCIATED;
for_each_pool_worker(worker, pool) {
unsigned int worker_flags = worker->flags;
/*
* A bound idle worker should actually be on the runqueue
* of the associated CPU for local wake-ups targeting it to
* work. Kick all idle workers so that they migrate to the
* associated CPU. Doing this in the same loop as
* replacing UNBOUND with REBOUND is safe as no worker will
* be bound before @pool->lock is released.
*/
if (worker_flags & WORKER_IDLE)
wake_up_process(worker->task);
/*
* We want to clear UNBOUND but can't directly call
* worker_clr_flags() or adjust nr_running. Atomically
* replace UNBOUND with another NOT_RUNNING flag REBOUND.
* @worker will clear REBOUND using worker_clr_flags() when
* it initiates the next execution cycle thus restoring
* concurrency management. Note that when or whether
* @worker clears REBOUND doesn't affect correctness.
*
* WRITE_ONCE() is necessary because @worker->flags may be
* tested without holding any lock in
* wq_worker_running(). Without it, NOT_RUNNING test may
* fail incorrectly leading to premature concurrency
* management operations.
*/
WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
worker_flags |= WORKER_REBOUND;
worker_flags &= ~WORKER_UNBOUND;
WRITE_ONCE(worker->flags, worker_flags);
}
spin_unlock_irq(&pool->lock);
}
/**
* restore_unbound_workers_cpumask - restore cpumask of unbound workers
* @pool: unbound pool of interest
* @cpu: the CPU which is coming up
*
* An unbound pool may end up with a cpumask which doesn't have any online
* CPUs. When a worker of such pool get scheduled, the scheduler resets
* its cpus_allowed. If @cpu is in @pool's cpumask which didn't have any
* online CPU before, cpus_allowed of all its workers should be restored.
*/
static void restore_unbound_workers_cpumask(struct worker_pool *pool, int cpu)
{
static cpumask_t cpumask;
struct worker *worker;
lockdep_assert_held(&wq_pool_attach_mutex);
/* is @cpu allowed for @pool? */
if (!cpumask_test_cpu(cpu, pool->attrs->cpumask))
return;
cpumask_and(&cpumask, pool->attrs->cpumask, cpu_online_mask);
/* as we're called from CPU_ONLINE, the following shouldn't fail */
for_each_pool_worker(worker, pool)
WARN_ON_ONCE(set_cpus_allowed_ptr(worker->task, &cpumask) < 0);
}
int workqueue_prepare_cpu(unsigned int cpu)
{
struct worker_pool *pool;
for_each_cpu_worker_pool(pool, cpu) {
if (pool->nr_workers)
continue;
if (!create_worker(pool))
return -ENOMEM;
}
return 0;
}
int workqueue_online_cpu(unsigned int cpu)
{
struct worker_pool *pool;
struct workqueue_struct *wq;
int pi;
mutex_lock(&wq_pool_mutex);
for_each_pool(pool, pi) {
mutex_lock(&wq_pool_attach_mutex);
if (pool->cpu == cpu)
rebind_workers(pool);
else if (pool->cpu < 0)
restore_unbound_workers_cpumask(pool, cpu);
mutex_unlock(&wq_pool_attach_mutex);
}
/* update NUMA affinity of unbound workqueues */
list_for_each_entry(wq, &workqueues, list)
wq_update_unbound_numa(wq, cpu, true);
mutex_unlock(&wq_pool_mutex);
return 0;
}
int workqueue_offline_cpu(unsigned int cpu)
{
struct workqueue_struct *wq;
/* unbinding per-cpu workers should happen on the local CPU */
if (WARN_ON(cpu != smp_processor_id()))
return -1;
unbind_workers(cpu);
/* update NUMA affinity of unbound workqueues */
mutex_lock(&wq_pool_mutex);
list_for_each_entry(wq, &workqueues, list)
wq_update_unbound_numa(wq, cpu, false);
mutex_unlock(&wq_pool_mutex);
return 0;
}
struct work_for_cpu {
struct work_struct work;
long (*fn)(void *);
void *arg;
long ret;
};
static void work_for_cpu_fn(struct work_struct *work)
{
struct work_for_cpu *wfc = container_of(work, struct work_for_cpu, work);
wfc->ret = wfc->fn(wfc->arg);
}
/**
* work_on_cpu - run a function in thread context on a particular cpu
* @cpu: the cpu to run on
* @fn: the function to run
* @arg: the function arg
*
* It is up to the caller to ensure that the cpu doesn't go offline.
* The caller must not hold any locks which would prevent @fn from completing.
*
* Return: The value @fn returns.
*/
long work_on_cpu(int cpu, long (*fn)(void *), void *arg)
{
struct work_for_cpu wfc = { .fn = fn, .arg = arg };
INIT_WORK_ONSTACK(&wfc.work, work_for_cpu_fn);
schedule_work_on(cpu, &wfc.work);
flush_work(&wfc.work);
destroy_work_on_stack(&wfc.work);
return wfc.ret;
}
EXPORT_SYMBOL_GPL(work_on_cpu);
/**
* work_on_cpu_safe - run a function in thread context on a particular cpu
* @cpu: the cpu to run on
* @fn: the function to run
* @arg: the function argument
*
* Disables CPU hotplug and calls work_on_cpu(). The caller must not hold
* any locks which would prevent @fn from completing.
*
* Return: The value @fn returns.
*/
long work_on_cpu_safe(int cpu, long (*fn)(void *), void *arg)
{
long ret = -ENODEV;
get_online_cpus();
if (cpu_online(cpu))
ret = work_on_cpu(cpu, fn, arg);
put_online_cpus();
return ret;
}
EXPORT_SYMBOL_GPL(work_on_cpu_safe);
#endif /* CONFIG_SMP */
#ifdef CONFIG_FREEZER
/**
* freeze_workqueues_begin - begin freezing workqueues
*
* Start freezing workqueues. After this function returns, all freezable
* workqueues will queue new works to their delayed_works list instead of
* pool->worklist.
*
* CONTEXT:
* Grabs and releases wq_pool_mutex, wq->mutex and pool->lock's.
*/
void freeze_workqueues_begin(void)
{
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
WARN_ON_ONCE(workqueue_freezing);
workqueue_freezing = true;
list_for_each_entry(wq, &workqueues, list) {
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
mutex_unlock(&wq_pool_mutex);
}
/**
* freeze_workqueues_busy - are freezable workqueues still busy?
*
* Check whether freezing is complete. This function must be called
* between freeze_workqueues_begin() and thaw_workqueues().
*
* CONTEXT:
* Grabs and releases wq_pool_mutex.
*
* Return:
* %true if some freezable workqueues are still busy. %false if freezing
* is complete.
*/
bool freeze_workqueues_busy(void)
{
bool busy = false;
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
WARN_ON_ONCE(!workqueue_freezing);
list_for_each_entry(wq, &workqueues, list) {
if (!(wq->flags & WQ_FREEZABLE))
continue;
/*
* nr_active is monotonically decreasing. It's safe
* to peek without lock.
*/
rcu_read_lock();
for_each_pwq(pwq, wq) {
WARN_ON_ONCE(pwq->nr_active < 0);
if (pwq->nr_active) {
busy = true;
rcu_read_unlock();
goto out_unlock;
}
}
rcu_read_unlock();
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
return busy;
}
/**
* thaw_workqueues - thaw workqueues
*
* Thaw workqueues. Normal queueing is restored and all collected
* frozen works are transferred to their respective pool worklists.
*
* CONTEXT:
* Grabs and releases wq_pool_mutex, wq->mutex and pool->lock's.
*/
void thaw_workqueues(void)
{
struct workqueue_struct *wq;
struct pool_workqueue *pwq;
mutex_lock(&wq_pool_mutex);
if (!workqueue_freezing)
goto out_unlock;
workqueue_freezing = false;
/* restore max_active and repopulate worklist */
list_for_each_entry(wq, &workqueues, list) {
mutex_lock(&wq->mutex);
for_each_pwq(pwq, wq)
pwq_adjust_max_active(pwq);
mutex_unlock(&wq->mutex);
}
out_unlock:
mutex_unlock(&wq_pool_mutex);
}
#endif /* CONFIG_FREEZER */
static int workqueue_apply_unbound_cpumask(void)
{
LIST_HEAD(ctxs);
int ret = 0;
struct workqueue_struct *wq;
struct apply_wqattrs_ctx *ctx, *n;
lockdep_assert_held(&wq_pool_mutex);
list_for_each_entry(wq, &workqueues, list) {
if (!(wq->flags & WQ_UNBOUND))
continue;
/* creating multiple pwqs breaks ordering guarantee */
if (wq->flags & __WQ_ORDERED)
continue;
ctx = apply_wqattrs_prepare(wq, wq->unbound_attrs);
if (!ctx) {
ret = -ENOMEM;
break;
}
list_add_tail(&ctx->list, &ctxs);
}
list_for_each_entry_safe(ctx, n, &ctxs, list) {
if (!ret)
apply_wqattrs_commit(ctx);
apply_wqattrs_cleanup(ctx);
}
return ret;
}
/**
* workqueue_set_unbound_cpumask - Set the low-level unbound cpumask
* @cpumask: the cpumask to set
*
* The low-level workqueues cpumask is a global cpumask that limits
* the affinity of all unbound workqueues. This function check the @cpumask
* and apply it to all unbound workqueues and updates all pwqs of them.
*
* Retun: 0 - Success
* -EINVAL - Invalid @cpumask
* -ENOMEM - Failed to allocate memory for attrs or pwqs.
*/
int workqueue_set_unbound_cpumask(cpumask_var_t cpumask)
{
int ret = -EINVAL;
cpumask_var_t saved_cpumask;
if (!zalloc_cpumask_var(&saved_cpumask, GFP_KERNEL))
return -ENOMEM;
/*
* Not excluding isolated cpus on purpose.
* If the user wishes to include them, we allow that.
*/
cpumask_and(cpumask, cpumask, cpu_possible_mask);
if (!cpumask_empty(cpumask)) {
apply_wqattrs_lock();
/* save the old wq_unbound_cpumask. */
cpumask_copy(saved_cpumask, wq_unbound_cpumask);
/* update wq_unbound_cpumask at first and apply it to wqs. */
cpumask_copy(wq_unbound_cpumask, cpumask);
ret = workqueue_apply_unbound_cpumask();
/* restore the wq_unbound_cpumask when failed. */
if (ret < 0)
cpumask_copy(wq_unbound_cpumask, saved_cpumask);
apply_wqattrs_unlock();
}
free_cpumask_var(saved_cpumask);
return ret;
}
#ifdef CONFIG_SYSFS
/*
* Workqueues with WQ_SYSFS flag set is visible to userland via
* /sys/bus/workqueue/devices/WQ_NAME. All visible workqueues have the
* following attributes.
*
* per_cpu RO bool : whether the workqueue is per-cpu or unbound
* max_active RW int : maximum number of in-flight work items
*
* Unbound workqueues have the following extra attributes.
*
* pool_ids RO int : the associated pool IDs for each node
* nice RW int : nice value of the workers
* cpumask RW mask : bitmask of allowed CPUs for the workers
* numa RW bool : whether enable NUMA affinity
*/
struct wq_device {
struct workqueue_struct *wq;
struct device dev;
};
static struct workqueue_struct *dev_to_wq(struct device *dev)
{
struct wq_device *wq_dev = container_of(dev, struct wq_device, dev);
return wq_dev->wq;
}
static ssize_t per_cpu_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
return scnprintf(buf, PAGE_SIZE, "%d\n", (bool)!(wq->flags & WQ_UNBOUND));
}
static DEVICE_ATTR_RO(per_cpu);
static ssize_t max_active_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
return scnprintf(buf, PAGE_SIZE, "%d\n", wq->saved_max_active);
}
static ssize_t max_active_store(struct device *dev,
struct device_attribute *attr, const char *buf,
size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int val;
if (sscanf(buf, "%d", &val) != 1 || val <= 0)
return -EINVAL;
workqueue_set_max_active(wq, val);
return count;
}
static DEVICE_ATTR_RW(max_active);
static struct attribute *wq_sysfs_attrs[] = {
&dev_attr_per_cpu.attr,
&dev_attr_max_active.attr,
NULL,
};
ATTRIBUTE_GROUPS(wq_sysfs);
static ssize_t wq_pool_ids_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
const char *delim = "";
int node, written = 0;
get_online_cpus();
rcu_read_lock();
for_each_node(node) {
written += scnprintf(buf + written, PAGE_SIZE - written,
"%s%d:%d", delim, node,
unbound_pwq_by_node(wq, node)->pool->id);
delim = " ";
}
written += scnprintf(buf + written, PAGE_SIZE - written, "\n");
rcu_read_unlock();
put_online_cpus();
return written;
}
static ssize_t wq_nice_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%d\n", wq->unbound_attrs->nice);
mutex_unlock(&wq->mutex);
return written;
}
/* prepare workqueue_attrs for sysfs store operations */
static struct workqueue_attrs *wq_sysfs_prep_attrs(struct workqueue_struct *wq)
{
struct workqueue_attrs *attrs;
lockdep_assert_held(&wq_pool_mutex);
attrs = alloc_workqueue_attrs();
if (!attrs)
return NULL;
copy_workqueue_attrs(attrs, wq->unbound_attrs);
return attrs;
}
static ssize_t wq_nice_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
if (sscanf(buf, "%d", &attrs->nice) == 1 &&
attrs->nice >= MIN_NICE && attrs->nice <= MAX_NICE)
ret = apply_workqueue_attrs_locked(wq, attrs);
else
ret = -EINVAL;
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static ssize_t wq_cpumask_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%*pb\n",
cpumask_pr_args(wq->unbound_attrs->cpumask));
mutex_unlock(&wq->mutex);
return written;
}
static ssize_t wq_cpumask_store(struct device *dev,
struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
ret = cpumask_parse(buf, attrs->cpumask);
if (!ret)
ret = apply_workqueue_attrs_locked(wq, attrs);
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static ssize_t wq_numa_show(struct device *dev, struct device_attribute *attr,
char *buf)
{
struct workqueue_struct *wq = dev_to_wq(dev);
int written;
mutex_lock(&wq->mutex);
written = scnprintf(buf, PAGE_SIZE, "%d\n",
!wq->unbound_attrs->no_numa);
mutex_unlock(&wq->mutex);
return written;
}
static ssize_t wq_numa_store(struct device *dev, struct device_attribute *attr,
const char *buf, size_t count)
{
struct workqueue_struct *wq = dev_to_wq(dev);
struct workqueue_attrs *attrs;
int v, ret = -ENOMEM;
apply_wqattrs_lock();
attrs = wq_sysfs_prep_attrs(wq);
if (!attrs)
goto out_unlock;
ret = -EINVAL;
if (sscanf(buf, "%d", &v) == 1) {
attrs->no_numa = !v;
ret = apply_workqueue_attrs_locked(wq, attrs);
}
out_unlock:
apply_wqattrs_unlock();
free_workqueue_attrs(attrs);
return ret ?: count;
}
static struct device_attribute wq_sysfs_unbound_attrs[] = {
__ATTR(pool_ids, 0444, wq_pool_ids_show, NULL),
__ATTR(nice, 0644, wq_nice_show, wq_nice_store),
__ATTR(cpumask, 0644, wq_cpumask_show, wq_cpumask_store),
__ATTR(numa, 0644, wq_numa_show, wq_numa_store),
__ATTR_NULL,
};
static struct bus_type wq_subsys = {
.name = "workqueue",
.dev_groups = wq_sysfs_groups,
};
static ssize_t wq_unbound_cpumask_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
int written;
mutex_lock(&wq_pool_mutex);
written = scnprintf(buf, PAGE_SIZE, "%*pb\n",
cpumask_pr_args(wq_unbound_cpumask));
mutex_unlock(&wq_pool_mutex);
return written;
}
static ssize_t wq_unbound_cpumask_store(struct device *dev,
struct device_attribute *attr, const char *buf, size_t count)
{
cpumask_var_t cpumask;
int ret;
if (!zalloc_cpumask_var(&cpumask, GFP_KERNEL))
return -ENOMEM;
ret = cpumask_parse(buf, cpumask);
if (!ret)
ret = workqueue_set_unbound_cpumask(cpumask);
free_cpumask_var(cpumask);
return ret ? ret : count;
}
static struct device_attribute wq_sysfs_cpumask_attr =
__ATTR(cpumask, 0644, wq_unbound_cpumask_show,
wq_unbound_cpumask_store);
static int __init wq_sysfs_init(void)
{
int err;
err = subsys_virtual_register(&wq_subsys, NULL);
if (err)
return err;
return device_create_file(wq_subsys.dev_root, &wq_sysfs_cpumask_attr);
}
core_initcall(wq_sysfs_init);
static void wq_device_release(struct device *dev)
{
struct wq_device *wq_dev = container_of(dev, struct wq_device, dev);
kfree(wq_dev);
}
/**
* workqueue_sysfs_register - make a workqueue visible in sysfs
* @wq: the workqueue to register
*
* Expose @wq in sysfs under /sys/bus/workqueue/devices.
* alloc_workqueue*() automatically calls this function if WQ_SYSFS is set
* which is the preferred method.
*
* Workqueue user should use this function directly iff it wants to apply
* workqueue_attrs before making the workqueue visible in sysfs; otherwise,
* apply_workqueue_attrs() may race against userland updating the
* attributes.
*
* Return: 0 on success, -errno on failure.
*/
int workqueue_sysfs_register(struct workqueue_struct *wq)
{
struct wq_device *wq_dev;
int ret;
/*
* Adjusting max_active or creating new pwqs by applying
* attributes breaks ordering guarantee. Disallow exposing ordered
* workqueues.
*/
if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
return -EINVAL;
wq->wq_dev = wq_dev = kzalloc(sizeof(*wq_dev), GFP_KERNEL);
if (!wq_dev)
return -ENOMEM;
wq_dev->wq = wq;
wq_dev->dev.bus = &wq_subsys;
wq_dev->dev.release = wq_device_release;
dev_set_name(&wq_dev->dev, "%s", wq->name);
/*
* unbound_attrs are created separately. Suppress uevent until
* everything is ready.
*/
dev_set_uevent_suppress(&wq_dev->dev, true);
ret = device_register(&wq_dev->dev);
if (ret) {
put_device(&wq_dev->dev);
wq->wq_dev = NULL;
return ret;
}
if (wq->flags & WQ_UNBOUND) {
struct device_attribute *attr;
for (attr = wq_sysfs_unbound_attrs; attr->attr.name; attr++) {
ret = device_create_file(&wq_dev->dev, attr);
if (ret) {
device_unregister(&wq_dev->dev);
wq->wq_dev = NULL;
return ret;
}
}
}
dev_set_uevent_suppress(&wq_dev->dev, false);
kobject_uevent(&wq_dev->dev.kobj, KOBJ_ADD);
return 0;
}
/**
* workqueue_sysfs_unregister - undo workqueue_sysfs_register()
* @wq: the workqueue to unregister
*
* If @wq is registered to sysfs by workqueue_sysfs_register(), unregister.
*/
static void workqueue_sysfs_unregister(struct workqueue_struct *wq)
{
struct wq_device *wq_dev = wq->wq_dev;
if (!wq->wq_dev)
return;
wq->wq_dev = NULL;
device_unregister(&wq_dev->dev);
}
#else /* CONFIG_SYSFS */
static void workqueue_sysfs_unregister(struct workqueue_struct *wq) { }
#endif /* CONFIG_SYSFS */
/*
* Workqueue watchdog.
*
* Stall may be caused by various bugs - missing WQ_MEM_RECLAIM, illegal
* flush dependency, a concurrency managed work item which stays RUNNING
* indefinitely. Workqueue stalls can be very difficult to debug as the
* usual warning mechanisms don't trigger and internal workqueue state is
* largely opaque.
*
* Workqueue watchdog monitors all worker pools periodically and dumps
* state if some pools failed to make forward progress for a while where
* forward progress is defined as the first item on ->worklist changing.
*
* This mechanism is controlled through the kernel parameter
* "workqueue.watchdog_thresh" which can be updated at runtime through the
* corresponding sysfs parameter file.
*/
#ifdef CONFIG_WQ_WATCHDOG
static unsigned long wq_watchdog_thresh = 30;
static struct timer_list wq_watchdog_timer;
static unsigned long wq_watchdog_touched = INITIAL_JIFFIES;
static DEFINE_PER_CPU(unsigned long, wq_watchdog_touched_cpu) = INITIAL_JIFFIES;
static void wq_watchdog_reset_touched(void)
{
int cpu;
wq_watchdog_touched = jiffies;
for_each_possible_cpu(cpu)
per_cpu(wq_watchdog_touched_cpu, cpu) = jiffies;
}
static void wq_watchdog_timer_fn(struct timer_list *unused)
{
unsigned long thresh = READ_ONCE(wq_watchdog_thresh) * HZ;
bool lockup_detected = false;
struct worker_pool *pool;
int pi;
if (!thresh)
return;
rcu_read_lock();
for_each_pool(pool, pi) {
unsigned long pool_ts, touched, ts;
if (list_empty(&pool->worklist))
continue;
/* get the latest of pool and touched timestamps */
pool_ts = READ_ONCE(pool->watchdog_ts);
touched = READ_ONCE(wq_watchdog_touched);
if (time_after(pool_ts, touched))
ts = pool_ts;
else
ts = touched;
if (pool->cpu >= 0) {
unsigned long cpu_touched =
READ_ONCE(per_cpu(wq_watchdog_touched_cpu,
pool->cpu));
if (time_after(cpu_touched, ts))
ts = cpu_touched;
}
/* did we stall? */
if (time_after(jiffies, ts + thresh)) {
lockup_detected = true;
pr_emerg("BUG: workqueue lockup - pool");
pr_cont_pool_info(pool);
pr_cont(" stuck for %us!\n",
jiffies_to_msecs(jiffies - pool_ts) / 1000);
}
}
rcu_read_unlock();
if (lockup_detected)
show_workqueue_state();
wq_watchdog_reset_touched();
mod_timer(&wq_watchdog_timer, jiffies + thresh);
}
notrace void wq_watchdog_touch(int cpu)
{
if (cpu >= 0)
per_cpu(wq_watchdog_touched_cpu, cpu) = jiffies;
else
wq_watchdog_touched = jiffies;
}
static void wq_watchdog_set_thresh(unsigned long thresh)
{
wq_watchdog_thresh = 0;
del_timer_sync(&wq_watchdog_timer);
if (thresh) {
wq_watchdog_thresh = thresh;
wq_watchdog_reset_touched();
mod_timer(&wq_watchdog_timer, jiffies + thresh * HZ);
}
}
static int wq_watchdog_param_set_thresh(const char *val,
const struct kernel_param *kp)
{
unsigned long thresh;
int ret;
ret = kstrtoul(val, 0, &thresh);
if (ret)
return ret;
if (system_wq)
wq_watchdog_set_thresh(thresh);
else
wq_watchdog_thresh = thresh;
return 0;
}
static const struct kernel_param_ops wq_watchdog_thresh_ops = {
.set = wq_watchdog_param_set_thresh,
.get = param_get_ulong,
};
module_param_cb(watchdog_thresh, &wq_watchdog_thresh_ops, &wq_watchdog_thresh,
0644);
static void wq_watchdog_init(void)
{
timer_setup(&wq_watchdog_timer, wq_watchdog_timer_fn, TIMER_DEFERRABLE);
wq_watchdog_set_thresh(wq_watchdog_thresh);
}
#else /* CONFIG_WQ_WATCHDOG */
static inline void wq_watchdog_init(void) { }
#endif /* CONFIG_WQ_WATCHDOG */
static void __init wq_numa_init(void)
{
cpumask_var_t *tbl;
int node, cpu;
if (num_possible_nodes() <= 1)
return;
if (wq_disable_numa) {
pr_info("workqueue: NUMA affinity support disabled\n");
return;
}
wq_update_unbound_numa_attrs_buf = alloc_workqueue_attrs();
BUG_ON(!wq_update_unbound_numa_attrs_buf);
/*
* We want masks of possible CPUs of each node which isn't readily
* available. Build one from cpu_to_node() which should have been
* fully initialized by now.
*/
tbl = kcalloc(nr_node_ids, sizeof(tbl[0]), GFP_KERNEL);
BUG_ON(!tbl);
for_each_node(node)
BUG_ON(!zalloc_cpumask_var_node(&tbl[node], GFP_KERNEL,
node_online(node) ? node : NUMA_NO_NODE));
for_each_possible_cpu(cpu) {
node = cpu_to_node(cpu);
if (WARN_ON(node == NUMA_NO_NODE)) {
pr_warn("workqueue: NUMA node mapping not available for cpu%d, disabling NUMA support\n", cpu);
/* happens iff arch is bonkers, let's just proceed */
return;
}
cpumask_set_cpu(cpu, tbl[node]);
}
wq_numa_possible_cpumask = tbl;
wq_numa_enabled = true;
}
/**
* workqueue_init_early - early init for workqueue subsystem
*
* This is the first half of two-staged workqueue subsystem initialization
* and invoked as soon as the bare basics - memory allocation, cpumasks and
* idr are up. It sets up all the data structures and system workqueues
* and allows early boot code to create workqueues and queue/cancel work
* items. Actual work item execution starts only after kthreads can be
* created and scheduled right before early initcalls.
*/
int __init workqueue_init_early(void)
{
int std_nice[NR_STD_WORKER_POOLS] = { 0, HIGHPRI_NICE_LEVEL };
int hk_flags = HK_FLAG_DOMAIN | HK_FLAG_WQ;
int i, cpu;
WARN_ON(__alignof__(struct pool_workqueue) < __alignof__(long long));
BUG_ON(!alloc_cpumask_var(&wq_unbound_cpumask, GFP_KERNEL));
cpumask_copy(wq_unbound_cpumask, housekeeping_cpumask(hk_flags));
pwq_cache = KMEM_CACHE(pool_workqueue, SLAB_PANIC);
/* initialize CPU pools */
for_each_possible_cpu(cpu) {
struct worker_pool *pool;
i = 0;
for_each_cpu_worker_pool(pool, cpu) {
BUG_ON(init_worker_pool(pool));
pool->cpu = cpu;
cpumask_copy(pool->attrs->cpumask, cpumask_of(cpu));
pool->attrs->nice = std_nice[i++];
pool->node = cpu_to_node(cpu);
/* alloc pool ID */
mutex_lock(&wq_pool_mutex);
BUG_ON(worker_pool_assign_id(pool));
mutex_unlock(&wq_pool_mutex);
}
}
/* create default unbound and ordered wq attrs */
for (i = 0; i < NR_STD_WORKER_POOLS; i++) {
struct workqueue_attrs *attrs;
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
unbound_std_wq_attrs[i] = attrs;
/*
* An ordered wq should have only one pwq as ordering is
* guaranteed by max_active which is enforced by pwqs.
* Turn off NUMA so that dfl_pwq is used for all nodes.
*/
BUG_ON(!(attrs = alloc_workqueue_attrs()));
attrs->nice = std_nice[i];
attrs->no_numa = true;
ordered_wq_attrs[i] = attrs;
}
system_wq = alloc_workqueue("events", 0, 0);
system_highpri_wq = alloc_workqueue("events_highpri", WQ_HIGHPRI, 0);
system_long_wq = alloc_workqueue("events_long", 0, 0);
system_unbound_wq = alloc_workqueue("events_unbound", WQ_UNBOUND,
WQ_UNBOUND_MAX_ACTIVE);
system_freezable_wq = alloc_workqueue("events_freezable",
WQ_FREEZABLE, 0);
system_power_efficient_wq = alloc_workqueue("events_power_efficient",
WQ_POWER_EFFICIENT, 0);
system_freezable_power_efficient_wq = alloc_workqueue("events_freezable_power_efficient",
WQ_FREEZABLE | WQ_POWER_EFFICIENT,
0);
BUG_ON(!system_wq || !system_highpri_wq || !system_long_wq ||
!system_unbound_wq || !system_freezable_wq ||
!system_power_efficient_wq ||
!system_freezable_power_efficient_wq);
return 0;
}
/**
* workqueue_init - bring workqueue subsystem fully online
*
* This is the latter half of two-staged workqueue subsystem initialization
* and invoked as soon as kthreads can be created and scheduled.
* Workqueues have been created and work items queued on them, but there
* are no kworkers executing the work items yet. Populate the worker pools
* with the initial workers and enable future kworker creations.
*/
int __init workqueue_init(void)
{
struct workqueue_struct *wq;
struct worker_pool *pool;
int cpu, bkt;
/*
* It'd be simpler to initialize NUMA in workqueue_init_early() but
* CPU to node mapping may not be available that early on some
* archs such as power and arm64. As per-cpu pools created
* previously could be missing node hint and unbound pools NUMA
* affinity, fix them up.
*
* Also, while iterating workqueues, create rescuers if requested.
*/
wq_numa_init();
mutex_lock(&wq_pool_mutex);
for_each_possible_cpu(cpu) {
for_each_cpu_worker_pool(pool, cpu) {
pool->node = cpu_to_node(cpu);
}
}
list_for_each_entry(wq, &workqueues, list) {
wq_update_unbound_numa(wq, smp_processor_id(), true);
WARN(init_rescuer(wq),
"workqueue: failed to create early rescuer for %s",
wq->name);
}
mutex_unlock(&wq_pool_mutex);
/* create the initial workers */
for_each_online_cpu(cpu) {
for_each_cpu_worker_pool(pool, cpu) {
pool->flags &= ~POOL_DISASSOCIATED;
BUG_ON(!create_worker(pool));
}
}
hash_for_each(unbound_pool_hash, bkt, pool, hash_node)
BUG_ON(!create_worker(pool));
wq_online = true;
wq_watchdog_init();
return 0;
}