android_kernel_samsung_sm8650/Makefile
jianzhou 7c8fe0d3ae Merge keystone/android14-6.1-keystone-qcom-release.6.1.57 (97abf17) into qcom-6.1
* refs/heads/tmp-97abf17:
  ANDROID: GKI: Update symbol list for mtk
  ANDROID: Update the ABI symbol list
  ANDROID: GKI: Update symbol list for mtk
  ANDROID: mm: lru_cache_disable skips lru cache drainnig
  ANDROID: mm: cma: introduce __cma_alloc API
  ANDROID: Update the ABI representation
  BACKPORT: fscrypt: support crypto data unit size less than filesystem block size
  UPSTREAM: netfilter: nf_tables: remove catchall element in GC sync path
  ANDROID: GKI: Update oplus symbol list
  ANDROID: vendor_hooks: export tracepoint symbol trace_mm_vmscan_kswapd_wake
  BACKPORT: HID: input: map battery system charging
  ANDROID: fuse-bpf: Ignore readaheads unless they go to the daemon
  FROMGIT: freezer,sched: clean saved_state when restoring it during thaw
  FROMGIT: freezer,sched: do not restore saved_state of a thawed task
  FROMGIT: f2fs: skip adding a discard command if exists
  UPSTREAM: f2fs: clean up zones when not successfully unmounted
  UPSTREAM: f2fs: use finish zone command when closing a zone
  UPSTREAM: f2fs: check zone write pointer points to the end of zone
  UPSTREAM: f2fs: close unused open zones while mounting
  UPSTREAM: f2fs: maintain six open zones for zoned devices
  ANDROID: update symbol for unisoc whitelist
  ANDROID: vendor_hooks: mm: add hook to count the number pages allocated for each slab
  ANDROID: Update the ABI symbol list
  ANDROID: sched: Add trace_android_rvh_set_user_nice_locked
  UPSTREAM: ASoC: soc-compress: Fix deadlock in soc_compr_open_fe
  BACKPORT: ASoC: add snd_soc_card_mutex_lock/unlock()
  BACKPORT: ASoC: expand snd_soc_dpcm_mutex_lock/unlock()
  BACKPORT: ASoC: expand snd_soc_dapm_mutex_lock/unlock()
  ANDROID: GKI: Update symbol list for mtk
  ANDROID: Update the ABI symbol list
  ANDROID: sched: Add vendor hook for update_load_sum
  FROMGIT: freezer,sched: clean saved_state when restoring it during thaw
  FROMGIT: freezer,sched: do not restore saved_state of a thawed task
  ANDROID: GKI: add allowed list for Exynosauto SoC
  ANDROID: KVM: arm64: pkvm_module_ops documentation
  ANDROID: Update the ABI symbol list
  UPSTREAM: usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
  ANDROID: GKI: Update oplus symbol list
  UPSTREAM: drm/qxl: fix UAF on handle creation
  FROMGIT: usb:gadget:uvc Do not use worker thread to pump isoc usb requests
  FROMGIT: usb: gadget: uvc: Fix use-after-free for inflight usb_requests
  FROMGIT: usb: gadget: uvc: move video disable logic to its own function
  FROMGIT: usb: gadget: uvc: Allocate uvc_requests one at a time
  FROMGIT: usb: gadget: uvc: prevent use of disabled endpoint
  UPSTREAM: drm/fourcc: Add NV20 and NV30 YUV formats
  FROMLIST: virt: geniezone: Add memory relinquish support
  FROMGIT: Input: uinput - allow injecting event times
  UPSTREAM: PM: hibernate: Fix copying the zero bitmap to safe pages
  UPSTREAM: PM: hibernate: don't store zero pages in the image file
  UPSTREAM: PM: hibernate: Complain about memory map mismatches during resume
  FROMLIST: devcoredump: Send uevent once devcd is ready
  FROMLIST: iommu: Avoid more races around device probe
  ANDROID: Update the ABI symbol list
  FROMLIST: ufs: core: clear cmd if abort success in mcq mode
  BACKPORT: wifi: cfg80211: Allow AP/P2PGO to indicate port authorization to peer STA/P2PClient
  BACKPORT: wifi: cfg80211: OWE DH IE handling offload
  ANDROID: KVM: arm64: mount procfs for pKVM module loading
  ANDROID: GKI: Update symbol list for mtk
  ANDROID: fuse-bpf: Add NULL pointer check in fuse_release_in
  UPSTREAM: serial: 8250_port: Check IRQ data before use
  ANDROID: KVM: arm64: Fix error path in pkvm_mem_abort()
  ANDROID: abi_gki_aarch64_qcom: Update symbol list
  ANDROID: GKI: add allowed list for Exynosauto SoC
  ANDROID: Update the ABI symbol list
  ANDROID: sched: Add vendor hook for util_fits_cpu
  ANDROID: update symbol for unisoc vendor_hooks
  ANDROID: vendor_hooks: mm: add hook to count the number pages allocated for each slab
  UPSTREAM: usb: gadget: udc: Handle gadget_connect failure during bind operation
  ANDROID: Update the ABI symbol list
  ANDROID: softirq: Add EXPORT_SYMBOL_GPL for softirq and tasklet
  ANDROID: mm/mempolicy.c fix up conversion to queue_folios_pte_range
  Revert "net: add sysctl accept_ra_min_rtr_lft"
  Revert "net: change accept_ra_min_rtr_lft to affect all RA lifetimes"
  Revert "net: release reference to inet6_dev pointer"
  Revert "ata,scsi: do not issue START STOP UNIT on resume"
  Revert "scsi: sd: Differentiate system and runtime start/stop management"
  Revert "scsi: sd: Do not issue commands to suspended disks on shutdown"
  Revert "wifi: cfg80211: fix cqm_config access race"
  Revert "netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp"
  Revert "arm64: errata: Add Cortex-A520 speculative unprivileged load workaround"
  Revert "video/aperture: Only remove sysfb on the default vga pci device"
  Revert "drm/ast: Use drm_aperture_remove_conflicting_pci_framebuffers"
  Revert "fbdev/radeon: use pci aperture helpers"
  Revert "drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers"
  Revert "drm/aperture: Remove primary argument"
  Revert "video/aperture: Only kick vgacon when the pdev is decoding vga"
  Revert "video/aperture: Move vga handling to pci function"
  Revert "fs/nls: make load_nls() take a const parameter"
  Revert "dm: fix a race condition in retrieve_deps"
  ANDROID: GKI: db845c: add new dma_buf symbols to list
  UPSTREAM: lib/test_meminit: fix off-by-one error in test_pages()
  ANDROID: GKI: add guards for an include file in net/ethtool/ioctl.c
  ANDROID: GKI: update .stg due to internal zswap and tracing changes
  ANDROID: GKI: db845c: add pcie_capability_clear_and_set_word to the symbol list
  ANDROID: GKI: sched: put back the cpu_capacity_inverted variable
  Revert "ipv4: fix data-races around inet->inet_id"
  Revert "usb: typec: bus: verify partner exists in typec_altmode_attention"
  Revert "scsi: core: Use 32-bit hostnum in scsi_host_lookup()"
  Revert "media: cec: core: add adap_nb_transmit_canceled() callback"
  Revert "media: cec: core: add adap_unconfigured() callback"
  Revert "tracing: Introduce pipe_cpumask to avoid race on trace_pipes"
  Revert "tracing: Zero the pipe cpumask on alloc to avoid spurious -EBUSY"
  Revert "PCI: Allow drivers to request exclusive config regions"
  Revert "PCI: Add locking to RMW PCI Express Capability Register accessors"
  Revert "crypto: api - Use work queue in crypto_destroy_instance"
  Revert "media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field"
  Linux 6.1.57
  xen/events: replace evtchn_rwlock with RCU
  ipv6: remove one read_lock()/read_unlock() pair in rt6_check_neigh()
  btrfs: file_remove_privs needs an exclusive lock in direct io write
  netlink: remove the flex array from struct nlmsghdr
  btrfs: fix fscrypt name leak after failure to join log transaction
  btrfs: fix an error handling path in btrfs_rename()
  vrf: Fix lockdep splat in output path
  ipv6: remove nexthop_fib6_nh_bh()
  parisc: Restore __ldcw_align for PA-RISC 2.0 processors
  ksmbd: fix uaf in smb20_oplock_break_ack
  ksmbd: fix race condition between session lookup and expire
  x86/sev: Use the GHCB protocol when available for SNP CPUID requests
  RDMA/mlx5: Fix NULL string error
  RDMA/mlx5: Fix mutex unlocking on error flow for steering anchor creation
  RDMA/siw: Fix connection failure handling
  RDMA/srp: Do not call scsi_done() from srp_abort()
  RDMA/uverbs: Fix typo of sizeof argument
  RDMA/cma: Fix truncation compilation warning in make_cma_ports
  RDMA/cma: Initialize ib_sa_multicast structure to 0 when join
  gpio: pxa: disable pinctrl calls for MMP_GPIO
  gpio: aspeed: fix the GPIO number passed to pinctrl_gpio_set_config()
  IB/mlx4: Fix the size of a buffer in add_port_entries()
  of: dynamic: Fix potential memory leak in of_changeset_action()
  RDMA/core: Require admin capabilities to set system parameters
  dm zoned: free dmz->ddev array in dmz_put_zoned_devices
  parisc: Fix crash with nr_cpus=1 option
  smb: use kernel_connect() and kernel_bind()
  intel_idle: add Emerald Rapids Xeon support
  HID: intel-ish-hid: ipc: Disable and reenable ACPI GPE bit
  HID: sony: remove duplicate NULL check before calling usb_free_urb()
  netlink: annotate data-races around sk->sk_err
  netlink: Fix potential skb memleak in netlink_ack
  netlink: split up copies in the ack construction
  sctp: update hb timer immediately after users change hb_interval
  sctp: update transport state when processing a dupcook packet
  tcp: fix delayed ACKs for MSS boundary condition
  tcp: fix quick-ack counting to count actual ACKs of new data
  tipc: fix a potential deadlock on &tx->lock
  net: stmmac: dwmac-stm32: fix resume on STM32 MCU
  ipv4: Set offload_failed flag in fibmatch results
  netfilter: nf_tables: nft_set_rbtree: fix spurious insertion failure
  netfilter: nf_tables: Deduplicate nft_register_obj audit logs
  selftests: netfilter: Extend nft_audit.sh
  selftests: netfilter: Test nf_tables audit logging
  netfilter: handle the connecting collision properly in nf_conntrack_proto_sctp
  ibmveth: Remove condition to recompute TCP header checksum.
  net: ethernet: ti: am65-cpsw: Fix error code in am65_cpsw_nuss_init_tx_chns()
  net: nfc: llcp: Add lock when modifying device list
  net: usb: smsc75xx: Fix uninit-value access in __smsc75xx_read_reg
  ipv6: tcp: add a missing nf_reset_ct() in 3WHS handling
  net: dsa: mv88e6xxx: Avoid EEPROM timeout when EEPROM is absent
  ptp: ocp: Fix error handling in ptp_ocp_device_init
  ipv4, ipv6: Fix handling of transhdrlen in __ip{,6}_append_data()
  neighbour: fix data-races around n->output
  neighbour: switch to standard rcu, instead of rcu_bh
  neighbour: annotate lockless accesses to n->nud_state
  bpf: Add BPF_FIB_LOOKUP_SKIP_NEIGH for bpf_fib_lookup
  net: fix possible store tearing in neigh_periodic_work()
  modpost: add missing else to the "of" check
  bpf, sockmap: Reject sk_msg egress redirects to non-TCP sockets
  bpf, sockmap: Do not inc copied_seq when PEEK flag set
  bpf: tcp_read_skb needs to pop skb regardless of seq
  NFSv4: Fix a nfs4_state_manager() race
  ima: rework CONFIG_IMA dependency block
  scsi: target: core: Fix deadlock due to recursive locking
  ima: Finish deprecation of IMA_TRUSTED_KEYRING Kconfig
  regulator/core: regulator_register: set device->class earlier
  iommu/mediatek: Fix share pgtable for iova over 4GB
  perf/x86/amd: Do not WARN() on every IRQ
  wifi: mac80211: fix potential key use-after-free
  regmap: rbtree: Fix wrong register marked as in-cache when creating new node
  perf/x86/amd/core: Fix overflow reset on hotplug
  wifi: mt76: mt76x02: fix MT76x0 external LNA gain handling
  drivers/net: process the result of hdlc_open() and add call of hdlc_close() in uhdlc_close()
  Bluetooth: ISO: Fix handling of listen for unicast
  Bluetooth: Delete unused hci_req_prepare_suspend() declaration
  regulator: mt6358: split ops for buck and linear range LDO regulators
  regulator: mt6358: Use linear voltage helpers for single range regulators
  regulator: mt6358: Drop *_SSHUB regulators
  bpf: Fix tr dereferencing
  leds: Drop BUG_ON check for LED_COLOR_ID_MULTI
  wifi: mwifiex: Fix oob check condition in mwifiex_process_rx_packet
  wifi: cfg80211: add missing kernel-doc for cqm_rssi_work
  wifi: cfg80211: fix cqm_config access race
  wifi: cfg80211: add a work abstraction with special semantics
  wifi: cfg80211: move wowlan disable under locks
  wifi: cfg80211: hold wiphy lock in auto-disconnect
  wifi: iwlwifi: mvm: Fix a memory corruption issue
  wifi: iwlwifi: dbg_ini: fix structure packing
  erofs: fix memory leak of LZMA global compressed deduplication
  ubi: Refuse attaching if mtd's erasesize is 0
  HID: sony: Fix a potential memory leak in sony_probe()
  arm64: errata: Add Cortex-A520 speculative unprivileged load workaround
  arm64: Add Cortex-A520 CPU part definition
  drm/amd: Fix logic error in sienna_cichlid_update_pcie_parameters()
  drm/amd: Fix detection of _PR3 on the PCIe root port
  net: prevent rewrite of msg_name in sock_sendmsg()
  net: replace calls to sock->ops->connect() with kernel_connect()
  PCI: qcom: Fix IPQ8074 enumeration
  md/raid5: release batch_last before waiting for another stripe_head
  wifi: mwifiex: Fix tlv_buf_left calculation
  Bluetooth: hci_sync: Fix handling of HCI_QUIRK_STRICT_DUPLICATE_FILTER
  Bluetooth: hci_codec: Fix leaking content of local_codecs
  qed/red_ll2: Fix undefined behavior bug in struct qed_ll2_info
  mptcp: userspace pm allow creating id 0 subflow
  net: ethernet: mediatek: disable irq before schedule napi
  vringh: don't use vringh_kiov_advance() in vringh_iov_xfer()
  iommu/vt-d: Avoid memory allocation in iommu_suspend()
  scsi: zfcp: Fix a double put in zfcp_port_enqueue()
  i40e: fix the wrong PTP frequency calculation
  hwmon: (nzxt-smart2) add another USB ID
  hwmon: (nzxt-smart2) Add device id
  block: fix use-after-free of q->q_usage_counter
  rbd: take header_rwsem in rbd_dev_refresh() only when updating
  rbd: decouple parent info read-in from updating rbd_dev
  rbd: decouple header read-in from updating rbd_dev->header
  rbd: move rbd_dev_refresh() definition
  iommu/arm-smmu-v3: Avoid constructing invalid range commands
  iommu/arm-smmu-v3: Set TTL invalidation hint better
  drm/amd/display: Adjust the MST resume flow
  arm64: cpufeature: Fix CLRBHB and BC detection
  net: release reference to inet6_dev pointer
  net: change accept_ra_min_rtr_lft to affect all RA lifetimes
  net: add sysctl accept_ra_min_rtr_lft
  arm64: Avoid repeated AA64MMFR1_EL1 register read on pagefault path
  Revert "NFSv4: Retry LOCK on OLD_STATEID during delegation return"
  btrfs: use struct fscrypt_str instead of struct qstr
  btrfs: setup qstr from dentrys using fscrypt helper
  btrfs: use struct qstr instead of name and namelen pairs
  ring-buffer: Fix bytes info in per_cpu buffer stats
  ring-buffer: remove obsolete comment for free_buffer_page()
  mm: page_alloc: fix CMA and HIGHATOMIC landing on the wrong buddy list
  mm/page_alloc: leave IRQs enabled for per-cpu page allocations
  mm/page_alloc: always remove pages from temporary list
  mm: mempolicy: keep VMA walk if both MPOL_MF_STRICT and MPOL_MF_MOVE are specified
  mm/mempolicy: convert migrate_page_add() to migrate_folio_add()
  mm/mempolicy: convert queue_pages_pte_range() to queue_folios_pte_range()
  mm/mempolicy: convert queue_pages_pmd() to queue_folios_pmd()
  mm/memory: add vm_normal_folio()
  NFSv4: Fix a state manager thread deadlock regression
  NFS: rename nfs_client_kset to nfs_kset
  NFS: Cleanup unused rpc_clnt variable
  ata: libata-scsi: Fix delayed scsi_rescan_device() execution
  scsi: Do not attempt to rescan suspended devices
  scsi: core: Improve type safety of scsi_rescan_device()
  scsi: sd: Do not issue commands to suspended disks on shutdown
  scsi: sd: Differentiate system and runtime start/stop management
  ata,scsi: do not issue START STOP UNIT on resume
  mptcp: process pending subflow error on close
  mptcp: move __mptcp_error_report in protocol.c
  mptcp: annotate lockless accesses to sk->sk_err
  mptcp: fix dangling connection hang-up
  mptcp: rename timer related helper to less confusing names
  ASoC: tegra: Fix redundant PLLA and PLLA_OUT0 updates
  ASoC: soc-utils: Export snd_soc_dai_is_dummy() symbol
  spi: zynqmp-gqspi: fix clock imbalance on probe failure
  Linux 6.1.56
  ASoC: amd: yc: Fix a non-functional mic on Lenovo 82TL
  mm, memcg: reconsider kmem.limit_in_bytes deprecation
  memcg: drop kmem.limit_in_bytes
  drm/meson: fix memory leak on ->hpd_notify callback
  drm/amdkfd: Use gpu_offset for user queue's wptr
  fs: binfmt_elf_efpic: fix personality for ELF-FDPIC
  power: supply: ab8500: Set typing and props
  power: supply: rk817: Add missing module alias
  drm/i915/gt: Fix reservation address in ggtt_reserve_guc_top
  ata: libata-sata: increase PMP SRST timeout to 10s
  ata: libata-core: Do not register PM operations for SAS ports
  ata: libata-core: Fix port and device removal
  ata: libata-core: Fix ata_port_request_pm() locking
  fs/smb/client: Reset password pointer to NULL
  net: thunderbolt: Fix TCPv6 GSO checksum calculation
  bpf: Fix BTF_ID symbol generation collision in tools/
  bpf: Fix BTF_ID symbol generation collision
  bpf: Add override check to kprobe multi link attach
  media: uvcvideo: Fix OOB read
  btrfs: properly report 0 avail for very full file systems
  ring-buffer: Update "shortest_full" in polling
  mm: memcontrol: fix GFP_NOFS recursion in memory.high enforcement
  mm/slab_common: fix slab_caches list corruption after kmem_cache_destroy()
  mm/damon/vaddr-test: fix memory leak in damon_do_test_apply_three_regions()
  arm64: defconfig: remove CONFIG_COMMON_CLK_NPCM8XX=y
  drm/tests: Fix incorrect argument in drm_test_mm_insert_range
  timers: Tag (hr)timer softirq as hotplug safe
  Revert "SUNRPC dont update timeout value on connection reset"
  netfilter: nf_tables: fix kdoc warnings after gc rework
  sched/rt: Fix live lock between select_fallback_rq() and RT push
  kernel/sched: Modify initial boot task idle setup
  ASoC: amd: yc: Fix non-functional mic on Lenovo 82QF and 82UG
  i2c: i801: unregister tco_pdev in i801_probe() error path
  io_uring/fs: remove sqe->rw_flags checking from LINKAT
  ata: libata-scsi: ignore reserved bits for REPORT SUPPORTED OPERATION CODES
  ata: libata-scsi: link ata port and scsi device
  LoongArch: numa: Fix high_memory calculation
  LoongArch: Define relocation types for ABI v2.10
  ALSA: hda: Disable power save for solving pop issue on Lenovo ThinkCentre M70q
  netfilter: nf_tables: disallow rule removal from chain binding
  nilfs2: fix potential use after free in nilfs_gccache_submit_read_data()
  serial: 8250_port: Check IRQ data before use
  Revert "tty: n_gsm: fix UAF in gsm_cleanup_mux"
  misc: rtsx: Fix some platforms can not boot and move the l1ss judgment to probe
  mptcp: fix bogus receive window shrinkage with multiple subflows
  KVM: x86/mmu: Do not filter address spaces in for_each_tdp_mmu_root_yield_safe()
  KVM: x86/mmu: Open code leaf invalidation from mmu_notifier
  KVM: SVM: Fix TSC_AUX virtualization setup
  KVM: SVM: INTERCEPT_RDTSCP is never intercepted anyway
  x86/srso: Add SRSO mitigation for Hygon processors
  x86/sgx: Resolves SECS reclaim vs. page fault for EAUG race
  iommu/arm-smmu-v3: Fix soft lockup triggered by arm_smmu_mm_invalidate_range
  smack: Retrieve transmuting information in smack_inode_getsecurity()
  smack: Record transmuting in smk_transmuted
  nvme-pci: always return an ERR_PTR from nvme_pci_alloc_dev
  scsi: qla2xxx: Fix NULL pointer dereference in target mode
  wifi: ath11k: Don't drop tx_status when peer cannot be found
  nvme-pci: do not set the NUMA node of device if it has none
  nvme-pci: factor out a nvme_pci_alloc_dev helper
  nvme-pci: factor the iod mempool creation into a helper
  perf build: Define YYNOMEM as YYNOABORT for bison < 3.81
  fbdev/sh7760fb: Depend on FB=y
  LoongArch: Set all reserved memblocks on Node#0 at initialization
  tsnep: Fix NAPI polling with budget 0
  tsnep: Fix NAPI scheduling
  net: hsr: Add __packed to struct hsr_sup_tlv.
  ncsi: Propagate carrier gain/loss events to the NCSI controller
  powerpc/watchpoints: Annotate atomic context in more places
  powerpc/watchpoint: Disable pagefaults when getting user instruction
  powerpc/watchpoints: Disable preemption in thread_change_pc()
  ASoC: SOF: Intel: MTL: Reduce the DSP init timeout
  NFSv4.1: fix zero value filehandle in post open getattr
  media: vb2: frame_vector.c: replace WARN_ONCE with a comment
  ASoC: imx-rpmsg: Set ignore_pmdown_time for dai_link
  memblock tests: fix warning ‘struct seq_file’ declared inside parameter list
  memblock tests: fix warning: "__ALIGN_KERNEL" redefined
  firmware: cirrus: cs_dsp: Only log list of algorithms in debug build
  ASoC: cs42l42: Don't rely on GPIOD_OUT_LOW to set RESET initially low
  ASoC: cs42l42: Ensure a reset pulse meets minimum pulse width.
  ALSA: hda: intel-sdw-acpi: Use u8 type for link index
  bpf: Clarify error expectations from bpf_clone_redirect
  spi: intel-pci: Add support for Granite Rapids SPI serial flash
  ASoC: fsl: imx-pcm-rpmsg: Add SNDRV_PCM_INFO_BATCH flag
  spi: stm32: add a delay before SPI disable
  spi: nxp-fspi: reset the FLSHxCR1 registers
  ata: libata-eh: do not clear ATA_PFLAG_EH_PENDING in ata_eh_reset()
  smb3: correct places where ENOTSUPP is used instead of preferred EOPNOTSUPP
  scsi: pm80xx: Avoid leaking tags when processing OPC_INB_SET_CONTROLLER_CONFIG command
  scsi: pm80xx: Use phy-specific SAS address when sending PHY_START command
  riscv: errata: fix T-Head dcache.cva encoding
  drm/amdgpu: Handle null atom context in VBIOS info ioctl
  drm/amdgpu/nbio4.3: set proper rmmio_remap.reg_offset for SR-IOV
  drm/amdgpu/soc21: don't remap HDP registers for SR-IOV
  drm/amd/display: Don't check registers, if using AUX BL control
  thermal/of: add missing of_node_put()
  platform/x86: asus-wmi: Support 2023 ROG X16 tablet mode
  platform/mellanox: mlxbf-bootctl: add NET dependency into Kconfig
  ata: sata_mv: Fix incorrect string length computation in mv_dump_mem()
  net/smc: bugfix for smcr v2 server connect success statistic
  ring-buffer: Do not attempt to read past "commit"
  selftests: fix dependency checker script
  btrfs: assert delayed node locked when removing delayed item
  ring-buffer: Avoid softlockup in ring_buffer_resize()
  selftests/ftrace: Correctly enable event in instance-event.tc
  scsi: ufs: core: Poll HCS.UCRDY before issuing a UIC command
  scsi: ufs: core: Move __ufshcd_send_uic_cmd() outside host_lock
  scsi: qedf: Add synchronization between I/O completions and abort
  parisc: irq: Make irq_stack_union static to avoid sparse warning
  parisc: drivers: Fix sparse warning
  parisc: iosapic.c: Fix sparse warnings
  parisc: sba: Fix compile warning wrt list of SBA devices
  nvme-fc: Prevent null pointer dereference in nvme_fc_io_getuuid()
  spi: sun6i: fix race between DMA RX transfer completion and RX FIFO drain
  spi: sun6i: reduce DMA RX transfer width to single byte
  bpf: Annotate bpf_long_memcpy with data_race
  dma-debug: don't call __dma_entry_alloc_check_leak() under free_entries_lock
  ceph: drop messages from MDS when unmounting
  x86/reboot: VMCLEAR active VMCSes before emergency reboot
  i2c: npcm7xx: Fix callback completion ordering
  gpio: pmic-eic-sprd: Add can_sleep flag for PMIC EIC chip
  firmware: arm_ffa: Don't set the memory region attributes for MEM_LEND
  arm64: dts: imx: Add imx8mm-prt8mm.dtb to build
  soc: imx8m: Enable OCOTP clock for imx8mm before reading registers
  selftests/powerpc: Fix emit_tests to work with run_kselftest.sh
  selftests/powerpc: Pass make context to children
  selftests/powerpc: Use CLEAN macro to fix make warning
  power: supply: rk817: Fix node refcount leak
  xtensa: boot/lib: fix function prototypes
  xtensa: umulsidi3: fix conditional expression
  xtensa: boot: don't add include-dirs
  xtensa: iss/network: make functions static
  xtensa: add default definition for XCHAL_HAVE_DIV32
  firmware: imx-dsp: Fix an error handling path in imx_dsp_setup_channels()
  power: supply: ucs1002: fix error code in ucs1002_get_property()
  bus: ti-sysc: Fix SYSC_QUIRK_SWSUP_SIDLE_ACT handling for uart wake-up
  ARM: dts: ti: omap: motorola-mapphone: Fix abe_clkctrl warning on boot
  ARM: dts: Unify pinctrl-single pin group nodes for omap4
  ARM: dts: Unify pwm-omap-dmtimer node names
  ARM: dts: ti: omap: Fix bandgap thermal cells addressing for omap3/4
  ARM: dts: omap: correct indentation
  clk: tegra: fix error return case for recalc_rate
  clk: sprd: Fix thm_parents incorrect configuration
  power: supply: mt6370: Fix missing error code in mt6370_chg_toggle_cfo()
  firmware: arm_scmi: Fixup perf power-cost/microwatt support
  firmware: arm_scmi: Harden perf domain info access
  bus: ti-sysc: Fix missing AM35xx SoC matching
  bus: ti-sysc: Use fsleep() instead of usleep_range() in sysc_reset()
  drm/bridge: ti-sn65dsi83: Do not generate HFP/HBP/HSA and EOT packet
  spi: spi-gxp: BUG: Correct spi write return value
  MIPS: Alchemy: only build mmc support helpers if au1xmmc is enabled
  vfio/mdev: Fix a null-ptr-deref bug for mdev_unregister_parent()
  btrfs: reset destination buffer when read_extent_buffer() gets invalid range
  drm/amdkfd: Insert missing TLB flush on GFX10 and later
  drm/amdkfd: Flush TLB after unmapping for GFX v9.4.3
  scsi: qla2xxx: Use raw_smp_processor_id() instead of smp_processor_id()
  scsi: qla2xxx: Select qpair depending on which CPU post_cmd() gets called
  wifi: ath11k: Cleanup mac80211 references on failure during tx_complete
  wifi: ath11k: fix tx status reporting in encap offload mode
  arm64: dts: qcom: sdm845-db845c: Mark cont splash memory region as reserved
  s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_CLR2SECK2 IOCTL
  f2fs: get out of a repeat loop when getting a locked data page
  f2fs: optimize iteration over sparse directories
  ARM: dts: qcom: msm8974pro-castor: correct touchscreen syna,nosleep-mode
  ARM: dts: qcom: msm8974pro-castor: correct touchscreen function names
  ARM: dts: qcom: msm8974pro-castor: correct inverted X of touchscreen
  ARM: dts: samsung: exynos4210-i9100: Fix LCD screen's physical size
  ARM: dts: BCM5301X: Extend RAM to full 256MB for Linksys EA6500 V2
  i2c: xiic: Correct return value check for xiic_reinit()
  i2c: mux: gpio: Add missing fwnode_handle_put()
  i2c: mux: demux-pinctrl: check the return value of devm_kstrdup()
  gpio: tb10x: Fix an error handling path in tb10x_gpio_probe()
  cifs: Fix UAF in cifs_demultiplex_thread()
  proc: nommu: fix empty /proc/<pid>/maps
  proc: nommu: /proc/<pid>/maps: release mmap read lock
  igc: Expose tx-usecs coalesce setting to user
  octeontx2-pf: Do xdp_do_flush() after redirects.
  bnxt_en: Flush XDP for bnxt_poll_nitroa0()'s NAPI
  net: ena: Flush XDP packets on error.
  locking/seqlock: Do the lockdep annotation before locking in do_write_seqcount_begin_nested()
  i915/pmu: Move execlist stats initialization to execlist specific setup
  netfilter: ipset: Fix race between IPSET_CMD_CREATE and IPSET_CMD_SWAP
  netfilter: nf_tables: disable toggling dormant table state more than once
  net: rds: Fix possible NULL-pointer dereference
  team: fix null-ptr-deref when team device type is changed
  net: bridge: use DEV_STATS_INC()
  net: hns3: add 5ms delay before clear firmware reset irq source
  net: hns3: fix fail to delete tc flower rules during reset issue
  net: hns3: only enable unicast promisc when mac table full
  net: hns3: fix GRE checksum offload issue
  net: hns3: add cmdq check for vf periodic service task
  x86/srso: Fix SBPB enablement for spec_rstack_overflow=off
  x86/srso: Fix srso_show_state() side effect
  platform/x86: intel_scu_ipc: Fail IPC send if still busy
  platform/x86: intel_scu_ipc: Don't override scu in intel_scu_ipc_dev_simple_command()
  platform/x86: intel_scu_ipc: Check status upon timeout in ipc_wait_for_interrupt()
  platform/x86: intel_scu_ipc: Check status after timeout in busy_loop()
  net: hsr: Properly parse HSRv1 supervisor frames.
  x86/mm, kexec, ima: Use memblock_free_late() from ima_free_kexec_buffer()
  dccp: fix dccp_v4_err()/dccp_v6_err() again
  powerpc/perf/hv-24x7: Update domain value check
  scsi: iscsi_tcp: restrict to TCP sockets
  ipv4: fix null-deref in ipv4_link_failure
  igc: Fix infinite initialization loop with early XDP redirect
  ionic: fix 16bit math issue when PAGE_SIZE >= 64KB
  netfilter, bpf: Adjust timeouts of non-confirmed CTs in bpf_ct_insert_entry()
  i40e: Fix VF VLAN offloading when port VLAN is configured
  iavf: schedule a request immediately after add/delete vlan
  iavf: add iavf_schedule_aq_request() helper
  ASoC: SOF: core: Only call sof_ops_free() on remove if the probe was successful
  iavf: do not process adminq tasks when __IAVF_IN_REMOVE_TASK is set
  octeon_ep: fix tx dma unmap len values in SG
  ASoC: imx-audmix: Fix return error with devm_clk_get()
  ASoC: hdaudio.c: Add missing check for devm_kstrdup
  net/core: Fix ETH_P_1588 flow dissector
  selftests: tls: swap the TX and RX sockets in some tests
  netfilter: conntrack: fix extension size table
  ALSA: hda/realtek: Splitting the UX3402 into two separate models
  ASoC: rt5640: Fix IRQ not being free-ed for HDA jack detect mode
  ASoC: rt5640: Revert "Fix sleep in atomic context"
  bpf: Avoid deadlock when using queue and stack maps from NMI
  netfilter: nf_tables: disallow element removal on anonymous sets
  ASoC: meson: spdifin: start hw on dai probe
  netfilter: nf_tables: fix memleak when more than 255 elements expired
  netfilter: nft_set_hash: try later when GC hits EAGAIN on iteration
  netfilter: nft_set_pipapo: stop GC iteration if GC transaction allocation fails
  netfilter: nft_set_pipapo: call nft_trans_gc_queue_sync() in catchall GC
  netfilter: nft_set_rbtree: use read spinlock to avoid datapath contention
  netfilter: nft_set_rbtree: skip sync GC for new elements in this transaction
  netfilter: nf_tables: defer gc run if previous batch is still pending
  netfilter: nf_tables: use correct lock to protect gc_list
  netfilter: nf_tables: GC transaction race with abort path
  netfilter: nf_tables: GC transaction race with netns dismantle
  netfilter: nf_tables: fix GC transaction races with netns and netlink event exit path
  netfilter: nf_tables: don't fail inserts if duplicate has expired
  netfilter: nf_tables: remove busy mark and gc batch API
  netfilter: nft_set_hash: mark set element as dead when deleting from packet path
  netfilter: nf_tables: adapt set backend to use GC transaction API
  netfilter: nf_tables: GC transaction API to avoid race with control plane
  netfilter: nf_tables: don't skip expired elements during walk
  ext4: do not let fstrim block system suspend
  ext4: move setting of trimmed bit into ext4_try_to_trim_range()
  ext4: replace the traditional ternary conditional operator with with max()/min()
  btrfs: remove BUG() after failure to insert delayed dir index item
  btrfs: improve error message after failure to add delayed dir index item
  dm: fix a race condition in retrieve_deps
  netfs: Only call folio_start_fscache() one time for each folio
  media: via: Use correct dependency for camera sensor drivers
  media: v4l: Use correct dependency for camera sensor drivers
  NFSv4.1: fix pnfs MDS=DS session trunking
  NFSv4.1: use EXCHGID4_FLAG_USE_PNFS_DS for DS server
  SUNRPC: Mark the cred for revalidation if the server rejects it
  NFS/pNFS: Report EINVAL errors from connect() to the server
  NFS: More fixes for nfs_direct_write_reschedule_io()
  NFS: Use the correct commit info in nfs_join_page_group()
  NFS: More O_DIRECT accounting fixes for error paths
  NFS: Fix O_DIRECT locking issues
  NFS: Fix error handling for O_DIRECT write scheduling
  ANDROID: GKI: Fix firmware: smccc build error
  ANDROID: Move microdroid and crashdump defconfigs to common
  Linux 6.1.55
  interconnect: Teach lockdep about icc_bw_lock order
  net/sched: Retire rsvp classifier
  drm/amdgpu: fix amdgpu_cs_p1_user_fence
  Revert "memcg: drop kmem.limit_in_bytes"
  drm/amd/display: fix the white screen issue when >= 64GB DRAM
  ext4: fix rec_len verify error
  scsi: pm8001: Setup IRQs on resume
  scsi: megaraid_sas: Fix deadlock on firmware crashdump
  ata: libahci: clear pending interrupt status
  ata: libata: disallow dev-initiated LPM transitions to unsupported states
  i2c: aspeed: Reset the i2c controller when timeout occurs
  tracefs: Add missing lockdown check to tracefs_create_dir()
  nfsd: fix change_info in NFSv4 RENAME replies
  selinux: fix handling of empty opts in selinux_fs_context_submount()
  tracing: Have option files inc the trace array ref count
  tracing: Have current_trace inc the trace array ref count
  tracing: Increase trace array ref count on enable and filter files
  tracing: Have event inject files inc the trace array ref count
  tracing: Have tracing_max_latency inc the trace array ref count
  btrfs: check for BTRFS_FS_ERROR in pending ordered assert
  btrfs: release path before inode lookup during the ino lookup ioctl
  btrfs: fix a compilation error if DEBUG is defined in btree_dirty_folio
  btrfs: fix lockdep splat and potential deadlock after failure running delayed items
  dm: don't attempt to queue IO under RCU protection
  Revert "drm/amd: Disable S/G for APUs when 64GB or more host memory"
  md: Put the right device in md_seq_next
  nvme: avoid bogus CRTO values
  io_uring/net: fix iter retargeting for selected buf
  ovl: fix incorrect fdput() on aio completion
  ovl: fix failed copyup of fileattr on a symlink
  attr: block mode changes of symlinks
  Revert "SUNRPC: Fail faster on bad verifier"
  md/raid1: fix error: ISO C90 forbids mixed declarations
  samples/hw_breakpoint: fix building without module unloading
  x86/purgatory: Remove LTO flags
  x86/boot/compressed: Reserve more memory for page tables
  panic: Reenable preemption in WARN slowpath
  scsi: lpfc: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
  scsi: target: core: Fix target_cmd_counter leak
  riscv: kexec: Align the kexeced kernel entry
  x86/ibt: Suppress spurious ENDBR
  selftests: tracing: Fix to unmount tracefs for recovering environment
  scsi: qla2xxx: Fix NULL vs IS_ERR() bug for debugfs_create_dir()
  drm: gm12u320: Fix the timeout usage for usb_bulk_msg()
  nvmet-tcp: pass iov_len instead of sg->length to bvec_set_page()
  nvmet: use bvec_set_page to initialize bvecs
  block: factor out a bvec_set_page helper
  btrfs: compare the correct fsid/metadata_uuid in btrfs_validate_super
  btrfs: add a helper to read the superblock metadata_uuid
  MIPS: Use "grep -E" instead of "egrep"
  misc: fastrpc: Fix incorrect DMA mapping unmap request
  misc: fastrpc: Prepare to dynamic dma-buf locking specification
  dma-buf: Add unlocked variant of attachment-mapping functions
  printk: Consolidate console deferred printing
  printk: Keep non-panic-CPUs out of console lock
  interconnect: Fix locking for runpm vs reclaim
  kobject: Add sanity check for kset->kobj.ktype in kset_register()
  media: pci: ipu3-cio2: Initialise timing struct to avoid a compiler warning
  usb: chipidea: add workaround for chipidea PEC bug
  usb: ehci: add workaround for chipidea PORTSC.PEC bug
  misc: open-dice: make OPEN_DICE depend on HAS_IOMEM
  serial: cpm_uart: Avoid suspicious locking
  scsi: target: iscsi: Fix buffer overflow in lio_target_nacl_info_show()
  tools: iio: iio_generic_buffer: Fix some integer type and calculation
  usb: gadget: fsl_qe_udc: validate endpoint index for ch9 udc
  usb: cdns3: Put the cdns set active part outside the spin lock
  media: pci: cx23885: replace BUG with error return
  media: tuners: qt1010: replace BUG_ON with a regular error
  scsi: lpfc: Abort outstanding ELS cmds when mailbox timeout error is detected
  media: dvb-usb-v2: gl861: Fix null-ptr-deref in gl861_i2c_master_xfer
  media: az6007: Fix null-ptr-deref in az6007_i2c_xfer()
  media: anysee: fix null-ptr-deref in anysee_master_xfer
  media: af9005: Fix null-ptr-deref in af9005_i2c_xfer
  media: dw2102: Fix null-ptr-deref in dw2102_i2c_transfer()
  media: dvb-usb-v2: af9035: Fix null-ptr-deref in af9035_i2c_master_xfer
  media: mdp3: Fix resource leaks in of_find_device_by_node
  PCI: fu740: Set the number of MSI vectors
  PCI: vmd: Disable bridge window for domain reset
  powerpc/pseries: fix possible memory leak in ibmebus_bus_init()
  ARM: 9317/1: kexec: Make smp stop calls asynchronous
  PCI: dwc: Provide deinit callback for i.MX
  jfs: fix invalid free of JFS_IP(ipimap)->i_imap in diUnmount
  fs/jfs: prevent double-free in dbUnmount() after failed jfs_remount()
  ext2: fix datatype of block number in ext2_xattr_set2()
  md: raid1: fix potential OOB in raid1_remove_disk()
  bus: ti-sysc: Configure uart quirks for k3 SoC
  drm/mediatek: dp: Change logging to dev for mtk_dp_aux_transfer()
  drm/exynos: fix a possible null-pointer dereference due to data race in exynos_drm_crtc_atomic_disable()
  drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN314
  drm/amd/display: Blocking invalid 420 modes on HDMI TMDS for DCN31
  drm/amd/display: Use DTBCLK as refclk instead of DPREFCLK
  ALSA: hda: intel-dsp-cfg: add LunarLake support
  ASoC: Intel: sof_sdw: Update BT offload config for soundwire config
  ASoC: SOF: topology: simplify code to prevent static analysis warnings
  drm/amd/display: Fix underflow issue on 175hz timing
  samples/hw_breakpoint: Fix kernel BUG 'invalid opcode: 0000'
  arm64: dts: qcom: sm8250-edo: correct ramoops pmsg-size
  arm64: dts: qcom: sm8150-kumano: correct ramoops pmsg-size
  arm64: dts: qcom: sm6350: correct ramoops pmsg-size
  arm64: dts: qcom: sm6125-pdx201: correct ramoops pmsg-size
  drm/edid: Add quirk for OSVR HDK 2.0
  drm/bridge: tc358762: Instruct DSI host to generate HSE packets
  libbpf: Free btf_vmlinux when closing bpf_object
  wifi: mac80211_hwsim: drop short frames
  wifi: mac80211: check for station first in client probe
  wifi: cfg80211: ocb: don't leave if not joined
  wifi: cfg80211: reject auth/assoc to AP with our address
  netfilter: ebtables: fix fortify warnings in size_entry_mwt()
  wifi: mac80211: check S1G action frame size
  alx: fix OOB-read compiler warning
  mmc: sdhci-esdhc-imx: improve ESDHC_FLAG_ERR010450
  tpm_tis: Resend command to recover from data transfer errors
  netlink: convert nlk->flags to atomic flags
  Bluetooth: Fix hci_suspend_sync crash
  crypto: lib/mpi - avoid null pointer deref in mpi_cmp_ui()
  net/ipv4: return the real errno instead of -EINVAL
  net: Use sockaddr_storage for getsockopt(SO_PEERNAME).
  can: sun4i_can: Add support for the Allwinner D1
  can: sun4i_can: Add acceptance register quirk
  wifi: wil6210: fix fortify warnings
  mt76: mt7921: don't assume adequate headroom for SDIO headers
  wifi: mwifiex: fix fortify warning
  wifi: ath9k: fix printk specifier
  wifi: ath9k: fix fortify warnings
  ice: Don't tx before switchdev is fully configured
  crypto: lrw,xts - Replace strlcpy with strscpy
  devlink: remove reload failed checks in params get/set callbacks
  selftests/nolibc: fix up kernel parameters support
  ACPI: x86: s2idle: Catch multiple ACPI_TYPE_PACKAGE objects
  hw_breakpoint: fix single-stepping when using bpf_overflow_handler
  perf/imx_ddr: speed up overflow frequency of cycle
  perf/smmuv3: Enable HiSilicon Erratum 162001900 quirk for HIP08/09
  ACPI: video: Add backlight=native DMI quirk for Lenovo Ideapad Z470
  scftorture: Forgive memory-allocation failure if KASAN
  rcuscale: Move rcu_scale_writer() schedule_timeout_uninterruptible() to _idle()
  kernel/fork: beware of __put_task_struct() calling context
  ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer
  locks: fix KASAN: use-after-free in trace_event_raw_event_filelock_lock
  btrfs: output extra debug info if we failed to find an inline backref
  autofs: fix memory leak of waitqueues in autofs_catatonic_mode
  Linux 6.1.54
  drm/amd/display: Fix a bug when searching for insert_above_mpcc
  MIPS: Only fiddle with CHECKFLAGS if `need-compiler'
  kcm: Fix error handling for SOCK_DGRAM in kcm_sendmsg().
  ixgbe: fix timestamp configuration code
  tcp: Fix bind() regression for v4-mapped-v6 non-wildcard address.
  tcp: Fix bind() regression for v4-mapped-v6 wildcard address.
  tcp: Factorise sk_family-independent comparison in inet_bind2_bucket_match(_addr_any).
  ipv6: Remove in6addr_any alternatives.
  ipv6: fix ip6_sock_set_addr_preferences() typo
  net: macb: fix sleep inside spinlock
  net: macb: Enable PTP unicast
  net/tls: do not free tls_rec on async operation in bpf_exec_tx_verdict()
  platform/mellanox: NVSW_SN2201 should depend on ACPI
  platform/mellanox: mlxbf-pmc: Fix reading of unprogrammed events
  platform/mellanox: mlxbf-pmc: Fix potential buffer overflows
  platform/mellanox: mlxbf-tmfifo: Drop jumbo frames
  platform/mellanox: mlxbf-tmfifo: Drop the Rx packet if no more descriptors
  kcm: Fix memory leak in error path of kcm_sendmsg()
  r8152: check budget for r8152_poll()
  net: dsa: sja1105: block FDB accesses that are concurrent with a switch reset
  net: dsa: sja1105: serialize sja1105_port_mcast_flood() with other FDB accesses
  net: dsa: sja1105: fix multicast forwarding working only for last added mdb entry
  net: dsa: sja1105: propagate exact error code from sja1105_dynamic_config_poll_valid()
  net: dsa: sja1105: hide all multicast addresses from "bridge fdb show"
  net:ethernet:adi:adin1110: Fix forwarding offload
  net: ethernet: adi: adin1110: use eth_broadcast_addr() to assign broadcast address
  hsr: Fix uninit-value access in fill_frame_info()
  net: ethernet: mtk_eth_soc: fix possible NULL pointer dereference in mtk_hwlro_get_fdir_all()
  net: ethernet: mvpp2_main: fix possible OOB write in mvpp2_ethtool_get_rxnfc()
  net: stmmac: fix handling of zero coalescing tx-usecs
  net/smc: use smc_lgr_list.lock to protect smc_lgr_list.list iterate in smcr_port_add
  selftests: Keep symlinks, when possible
  kselftest/runner.sh: Propagate SIGTERM to runner child
  net: ipv4: fix one memleak in __inet_del_ifa()
  kunit: Fix wild-memory-access bug in kunit_free_suite_set()
  drm/amdgpu: register a dirty framebuffer callback for fbcon
  drm/amd/display: Remove wait while locked
  drm/amd/display: always switch off ODM before committing more streams
  perf hists browser: Fix the number of entries for 'e' key
  perf tools: Handle old data in PERF_RECORD_ATTR
  perf test shell stat_bpf_counters: Fix test on Intel
  perf hists browser: Fix hierarchy mode header
  MIPS: Fix CONFIG_CPU_DADDI_WORKAROUNDS `modules_install' regression
  KVM: SVM: Skip VMSA init in sev_es_init_vmcb() if pointer is NULL
  KVM: SVM: Set target pCPU during IRTE update if target vCPU is running
  KVM: nSVM: Load L1's TSC multiplier based on L1 state, not L2 state
  KVM: nSVM: Check instead of asserting on nested TSC scaling support
  KVM: SVM: Get source vCPUs from source VM for SEV-ES intrahost migration
  KVM: SVM: Don't inject #UD if KVM attempts to skip SEV guest insn
  KVM: SVM: Take and hold ir_list_lock when updating vCPU's Physical ID entry
  drm/amd/display: prevent potential division by zero errors
  drm/amd/display: enable cursor degamma for DCN3+ DRM legacy gamma
  mtd: rawnand: brcmnand: Fix ECC level field setting for v7.2 controller
  mtd: rawnand: brcmnand: Fix potential false time out warning
  mtd: spi-nor: Correct flags for Winbond w25q128
  mtd: rawnand: brcmnand: Fix potential out-of-bounds access in oob write
  mtd: rawnand: brcmnand: Fix crash during the panic_write
  drm/mxsfb: Disable overlay plane in mxsfb_plane_overlay_atomic_disable()
  btrfs: use the correct superblock to compare fsid in btrfs_validate_super
  btrfs: zoned: re-enable metadata over-commit for zoned mode
  btrfs: set page extent mapped after read_folio in relocate_one_page
  btrfs: don't start transaction when joining with TRANS_JOIN_NOSTART
  btrfs: free qgroup rsv on io failure
  btrfs: fix start transaction qgroup rsv double free
  btrfs: zoned: do not zone finish data relocation block group
  fuse: nlookup missing decrement in fuse_direntplus_link
  ata: pata_ftide010: Add missing MODULE_DESCRIPTION
  ata: sata_gemini: Add missing MODULE_DESCRIPTION
  ata: pata_falcon: fix IO base selection for Q40
  ata: ahci: Add Elkhart Lake AHCI controller
  hwspinlock: qcom: add missing regmap config for SFPB MMIO implementation
  lib: test_scanf: Add explicit type cast to result initialization in test_number_prefix()
  f2fs: avoid false alarm of circular locking
  f2fs: flush inode if atomic file is aborted
  ext4: fix memory leaks in ext4_fname_{setup_filename,prepare_lookup}
  ext4: add correct group descriptors and reserved GDT blocks to system zone
  jbd2: correct the end of the journal recovery scan range
  jbd2: check 'jh->b_transaction' before removing it from checkpoint
  jbd2: fix checkpoint cleanup performance regression
  dmaengine: sh: rz-dmac: Fix destination and source data size setting
  clocksource/drivers/arm_arch_timer: Disable timer before programming CVAL
  ARC: atomics: Add compiler barrier to atomic operations...
  net/mlx5: Free IRQ rmap and notifier on kernel shutdown
  Multi-gen LRU: avoid race in inc_min_seq()
  sh: boards: Fix CEU buffer size passed to dma_declare_coherent_memory()
  net: hns3: remove GSO partial feature bit
  net: hns3: fix the port information display when sfp is absent
  net: hns3: fix invalid mutex between tc qdisc and dcb ets command issue
  net: hns3: fix debugfs concurrency issue between kfree buffer and read
  net: hns3: fix byte order conversion issue in hclge_dbg_fd_tcam_read()
  net: hns3: fix tx timeout issue
  netfilter: nfnetlink_osf: avoid OOB read
  netfilter: nftables: exthdr: fix 4-byte stack OOB write
  bpf: Assign bpf_tramp_run_ctx::saved_run_ctx before recursion check.
  bpf: Invoke __bpf_prog_exit_sleepable_recur() on recursion in kern_sys_bpf().
  bpf: Remove prog->active check for bpf_lsm and bpf_iter
  net: dsa: sja1105: complete tc-cbs offload support on SJA1110
  net: dsa: sja1105: fix -ENOSPC when replacing the same tc-cbs too many times
  net: dsa: sja1105: fix bandwidth discrepancy between tc-cbs software and offload
  ip_tunnels: use DEV_STATS_INC()
  idr: fix param name in idr_alloc_cyclic() doc
  s390/zcrypt: don't leak memory if dev_set_name() fails
  igb: Change IGB_MIN to allow set rx/tx value between 64 and 80
  igbvf: Change IGBVF_MIN to allow set rx/tx value between 64 and 80
  igc: Change IGC_MIN to allow set rx/tx value between 64 and 80
  octeontx2-af: Fix truncation of smq in CN10K NIX AQ enqueue mbox handler
  kcm: Destroy mutex in kcm_exit_net()
  net: sched: sch_qfq: Fix UAF in qfq_dequeue()
  af_unix: Fix data race around sk->sk_err.
  af_unix: Fix data-races around sk->sk_shutdown.
  af_unix: Fix data-race around unix_tot_inflight.
  af_unix: Fix data-races around user->unix_inflight.
  bpf, sockmap: Fix skb refcnt race after locking changes
  net: phy: micrel: Correct bit assignments for phy_device flags
  net: ipv6/addrconf: avoid integer underflow in ipv6_create_tempaddr
  veth: Fixing transmit return status for dropped packets
  gve: fix frag_list chaining
  igb: disable virtualization features on 82580
  ipv6: ignore dst hint for multipath routes
  ipv4: ignore dst hint for multipath routes
  mptcp: annotate data-races around msk->rmem_fwd_alloc
  net: annotate data-races around sk->sk_forward_alloc
  net: use sk_forward_alloc_get() in sk_get_meminfo()
  drm/i915/gvt: Drop unused helper intel_vgpu_reset_gtt()
  drm/i915/gvt: Put the page reference obtained by KVM's gfn_to_pfn()
  drm/i915/gvt: Verify pfn is "valid" before dereferencing "struct page"
  xsk: Fix xsk_diag use-after-free error during socket cleanup
  net: fib: avoid warn splat in flow dissector
  net: read sk->sk_family once in sk_mc_loop()
  ipv4: annotate data-races around fi->fib_dead
  sctp: annotate data-races around sk->sk_wmem_queued
  net/sched: fq_pie: avoid stalls in fq_pie_timer()
  smb: propagate error code of extract_sharename()
  cifs: use fs_context for automounts
  blk-throttle: consider 'carryover_ios/bytes' in throtl_trim_slice()
  blk-throttle: use calculate_io/bytes_allowed() for throtl_trim_slice()
  drm/i915: mark requests for GuC virtual engines to avoid use-after-free
  perf test stat_bpf_counters_cgrp: Enhance perf stat cgroup BPF counter test
  perf test stat_bpf_counters_cgrp: Fix shellcheck issue about logical operators
  pwm: lpc32xx: Remove handling of PWM channels
  watchdog: intel-mid_wdt: add MODULE_ALIAS() to allow auto-load
  perf top: Don't pass an ERR_PTR() directly to perf_session__delete()
  perf vendor events: Drop STORES_PER_INST metric event for power10 platform
  perf vendor events: Drop some of the JSON/events for power10 platform
  perf vendor events: Update the JSON/events descriptions for power10 platform
  x86/virt: Drop unnecessary check on extended CPUID level in cpu_has_svm()
  perf annotate bpf: Don't enclose non-debug code with an assert()
  Input: tca6416-keypad - fix interrupt enable disbalance
  Input: tca6416-keypad - always expect proper IRQ number in i2c client
  backlight: gpio_backlight: Drop output GPIO direction check for initial power state
  pwm: atmel-tcb: Fix resource freeing in error path and remove
  pwm: atmel-tcb: Harmonize resource allocation order
  pwm: atmel-tcb: Convert to platform remove callback returning void
  perf trace: Really free the evsel->priv area
  perf trace: Use zfree() to reduce chances of use after free
  Input: iqs7222 - configure power mode before triggering ATI
  kconfig: fix possible buffer overflow
  mailbox: qcom-ipcc: fix incorrect num_chans counting
  gfs2: low-memory forced flush fixes
  gfs2: Switch to wait_event in gfs2_logd
  tpm_crb: Fix an error handling path in crb_acpi_add()
  kbuild: do not run depmod for 'make modules_sign'
  kbuild: rpm-pkg: define _arch conditionally
  net: deal with integer overflows in kmalloc_reserve()
  net: factorize code in kmalloc_reserve()
  net: remove osize variable in __alloc_skb()
  net: add SKB_HEAD_ALIGN() helper
  bus: mhi: host: Skip MHI reset if device is in RDDM
  NFSv4/pnfs: minor fix for cleanup path in nfs4_get_device_info
  NFS: Fix a potential data corruption
  clk: qcom: mss-sc7180: fix missing resume during probe
  clk: qcom: q6sstop-qcs404: fix missing resume during probe
  clk: qcom: lpasscc-sc7280: fix missing resume during probe
  clk: qcom: dispcc-sm8450: fix runtime PM imbalance on probe errors
  soc: qcom: qmi_encdec: Restrict string length in decode
  clk: qcom: gcc-mdm9615: use proper parent for pll0_vote clock
  clk: imx: pll14xx: align pdiv with reference manual
  clk: imx: pll14xx: dynamically configure PLL for 393216000/361267200Hz
  dt-bindings: clock: xlnx,versal-clk: drop select:false
  pinctrl: cherryview: fix address_space_handler() argument
  cifs: update desired access while requesting for directory lease
  parisc: led: Reduce CPU overhead for disk & lan LED computation
  parisc: led: Fix LAN receive and transmit LEDs
  lib/test_meminit: allocate pages up to order MAX_ORDER
  mm: hugetlb_vmemmap: fix a race between vmemmap pmd split
  memcg: drop kmem.limit_in_bytes
  send channel sequence number in SMB3 requests after reconnects
  arm64: dts: renesas: rzg2l: Fix txdv-skew-psec typos
  clk: qcom: turingcc-qcs404: fix missing resume during probe
  ASoC: tegra: Fix SFC conversion for few rates
  drm/ast: Fix DRAM init on AST2200
  clk: qcom: camcc-sc7180: fix async resume during probe
  fbdev/ep93xx-fb: Do not assign to struct fb_info.dev
  null_blk: fix poll request timeout handling
  scsi: qla2xxx: Fix firmware resource tracking
  scsi: qla2xxx: Error code did not return to upper layer
  scsi: qla2xxx: Fix smatch warn for qla_init_iocb_limit()
  scsi: qla2xxx: Flush mailbox commands on chip reset
  scsi: qla2xxx: Remove unsupported ql2xenabledif option
  scsi: qla2xxx: Fix TMF leak through
  scsi: qla2xxx: Fix session hang in gnl
  scsi: qla2xxx: Turn off noisy message log
  scsi: qla2xxx: Fix erroneous link up failure
  scsi: qla2xxx: Fix command flush during TMF
  scsi: qla2xxx: fix inconsistent TMF timeout
  scsi: qla2xxx: Fix deletion race condition
  scsi: qla2xxx: Limit TMF to 8 per function
  scsi: qla2xxx: Adjust IOCB resource on qpair create
  drm/virtio: Conditionally allocate virtio_gpu_fence
  io_uring: Don't set affinity on a dying sqpoll thread
  io_uring/sqpoll: fix io-wq affinity when IORING_SETUP_SQPOLL is used
  io_uring: break out of iowq iopoll on teardown
  io_uring/net: don't overflow multishot accept
  io_uring: revert "io_uring fix multishot accept ordering"
  io_uring: always lock in io_apoll_task_func
  Multi-gen LRU: fix per-zone reclaim
  mm: multi-gen LRU: rename lrugen->lists[] to lrugen->folios[]
  net/ipv6: SKB symmetric hash should incorporate transport ports
  ANDROID: GKI: fix up merge issue in drivers/scsi/storvsc_drv.c
  Linux 6.1.53
  udf: initialize newblock to 0
  clk: Avoid invalid function names in CLK_OF_DECLARE()
  treewide: Fix probing of devices in DT overlays
  clk: Mark a fwnode as initialized when using CLK_OF_DECLARE() macro
  md: fix regression for null-ptr-deference in __md_stop()
  NFSv4.2: Rework scratch handling for READ_PLUS (again)
  NFSv4.2: Fix a potential double free with READ_PLUS
  md: Free resources in __md_stop
  Revert "drm/amd/display: Do not set drr on pipe commit"
  tracing: Zero the pipe cpumask on alloc to avoid spurious -EBUSY
  serial: sc16is7xx: fix regression with GPIO configuration
  serial: sc16is7xx: remove obsolete out_thread label
  perf/x86/uncore: Correct the number of CHAs on EMR
  x86/sgx: Break up long non-preemptible delays in sgx_vepc_release()
  USB: core: Fix oversight in SuperSpeed initialization
  USB: core: Fix race by not overwriting udev->descriptor in hub_port_init()
  USB: core: Change usb_get_device_descriptor() API
  USB: core: Unite old scheme and new scheme descriptor reads
  usb: typec: bus: verify partner exists in typec_altmode_attention
  usb: typec: tcpm: set initial svdm version based on pd revision
  of: property: fw_devlink: Add a devlink for panel followers
  cpufreq: brcmstb-avs-cpufreq: Fix -Warray-bounds bug
  crypto: stm32 - fix loop iterating through scatterlist for DMA
  s390/dasd: fix string length handling
  s390/ipl: add missing secure/has_secure file to ipl type 'unknown'
  s390/dcssblk: fix kernel crash with list_add corruption
  arm64: sdei: abort running SDEI handlers during crash
  pstore/ram: Check start of empty przs during init
  mmc: renesas_sdhi: register irqs before registering controller
  platform/chrome: chromeos_acpi: print hex string for ACPI_TYPE_BUFFER
  x86/MCE: Always save CS register on AMD Zen IF Poison errors
  fsverity: skip PKCS#7 parser when keyring is empty
  net: handle ARPHRD_PPP in dev_is_mac_header_xmit()
  X.509: if signature is unsupported skip validation
  r8169: fix ASPM-related issues on a number of systems with NIC version from RTL8168h
  x86/sev: Make enc_dec_hypercall() accept a size instead of npages
  dccp: Fix out of bounds access in DCCP error handler
  dlm: fix plock lookup when using multiple lockspaces
  bpf: Fix issue in verifying allow_ptr_leaks
  drm/amd/display: Add smu write msg id fail retry process
  parisc: Fix /proc/cpuinfo output for lscpu
  procfs: block chmod on /proc/thread-self/comm
  block: don't add or resize partition on the disk with GENHD_FL_NO_PART
  Revert "PCI: Mark NVIDIA T4 GPUs to avoid bus reset"
  ntb: Fix calculation ntb_transport_tx_free_entry()
  ntb: Clean up tx tail index on link down
  ntb: Drop packets when qp link is down
  PCI/PM: Only read PCI_PM_CTRL register when available
  PCI: hv: Fix a crash in hv_pci_restore_msi_msg() during hibernation
  PCI: Free released resource after coalescing
  scsi: mpt3sas: Perform additional retries if doorbell read returns 0
  Revert "scsi: qla2xxx: Fix buffer overrun"
  media: venus: hfi_venus: Write to VIDC_CTRL_INIT after unmasking interrupts
  media: dvb: symbol fixup for dvb_attach()
  ALSA: hda/cirrus: Fix broken audio on hardware with two CS42L42 codecs.
  arm64: csum: Fix OoB access in IP checksum code for negative lengths
  i3c: master: svc: fix probe failure when no i3c device exist
  LoongArch: mm: Add p?d_leaf() definitions
  xtensa: PMU: fix base address for the newer hardware
  drm/amd/display: register edp_backlight_control() for DCN301
  backlight/lv5207lp: Compare against struct fb_info.device
  backlight/bd6107: Compare against struct fb_info.device
  backlight/gpio_backlight: Compare against struct fb_info.device
  io_uring: break iopolling on signal
  XArray: Do not return sibling entries from xa_load()
  ARM: OMAP2+: Fix -Warray-bounds warning in _pwrdm_state_switch()
  ipmi_si: fix a memleak in try_smi_init()
  PCI: rockchip: Use 64-bit mask on MSI 64-bit PCI address
  media: i2c: Add a camera sensor top level menu
  media: i2c: ccs: Check rules is non-NULL
  cpu/hotplug: Prevent self deadlock on CPU hot-unplug
  mm/vmalloc: add a safer version of find_vm_area() for debug
  scsi: core: Fix the scsi_set_resid() documentation
  printk: ringbuffer: Fix truncating buffer size min_t cast
  rcu: dump vmalloc memory info safely
  ALSA: pcm: Fix missing fixup call in compat hw_refine ioctl
  PM / devfreq: Fix leak in devfreq_dev_release()
  igb: set max size RX buffer when store bad packet is enabled
  skbuff: skb_segment, Call zero copy functions before using skbuff frags
  netfilter: xt_sctp: validate the flag_info count
  netfilter: xt_u32: validate user space input
  netfilter: nft_exthdr: Fix non-linear header modification
  netfilter: ipset: add the missing IP_SET_HASH_WITH_NET0 macro for ip_set_hash_netportnet.c
  igmp: limit igmpv3_newpack() packet size to IP_MAX_MTU
  virtio_ring: fix avail_wrap_counter in virtqueue_add_packed
  cpufreq: Fix the race condition while updating the transition_task of policy
  Drivers: hv: vmbus: Don't dereference ACPI root object handle
  dmaengine: ste_dma40: Add missing IRQ check in d40_probe
  um: Fix hostaudio build errors
  mtd: rawnand: fsmc: handle clk prepare error in fsmc_nand_resume()
  mtd: spi-nor: Check bus width while setting QE bit
  leds: trigger: tty: Do not use LED_ON/OFF constants, use led_blink_set_oneshot instead
  leds: Fix BUG_ON check for LED_COLOR_ID_MULTI that is always false
  leds: multicolor: Use rounded division when calculating color components
  leds: pwm: Fix error code in led_pwm_create_fwnode()
  rpmsg: glink: Add check for kstrdup
  phy/rockchip: inno-hdmi: do not power on rk3328 post pll on reg write
  phy/rockchip: inno-hdmi: round fractal pixclock in rk3328 recalc_rate
  phy/rockchip: inno-hdmi: use correct vco_div_5 macro on rk3328
  dmaengine: idxd: Modify the dependence of attribute pasid_enabled
  mtd: rawnand: brcmnand: Fix mtd oobsize
  tracing: Fix race issue between cpu buffer write and swap
  tracing: Remove extra space at the end of hwlat_detector/mode
  x86/speculation: Mark all Skylake CPUs as vulnerable to GDS
  tick/rcu: Fix false positive "softirq work is pending" messages
  platform/x86/amd/pmf: Fix a missing cleanup path
  HID: multitouch: Correct devm device reference for hidinput input_dev name
  HID: uclogic: Correct devm device reference for hidinput input_dev name
  HID: logitech-dj: Fix error handling in logi_dj_recv_switch_to_dj_mode()
  RDMA/efa: Fix wrong resources deallocation order
  RDMA/siw: Correct wrong debug message
  RDMA/siw: Balance the reference of cep->kref in the error path
  Revert "IB/isert: Fix incorrect release of isert connection"
  amba: bus: fix refcount leak
  serial: tegra: handle clk prepare error in tegra_uart_hw_init()
  interconnect: qcom: bcm-voter: Use enable_maks for keepalive voting
  interconnect: qcom: bcm-voter: Improve enable_mask handling
  interconnect: qcom: sm8450: Enable sync_state
  scsi: fcoe: Fix potential deadlock on &fip->ctlr_lock
  scsi: core: Use 32-bit hostnum in scsi_host_lookup()
  RDMA/irdma: Prevent zero-length STAG registration
  coresight: trbe: Fix TRBE potential sleep in atomic context
  cgroup:namespace: Remove unused cgroup_namespaces_init()
  Revert "f2fs: fix to do sanity check on extent cache correctly"
  f2fs: Only lfs mode is allowed with zoned block device feature
  f2fs: judge whether discard_unit is section only when have CONFIG_BLK_DEV_ZONED
  f2fs: fix to avoid mmap vs set_compress_option case
  media: i2c: rdacm21: Fix uninitialized value
  media: ov2680: Fix regulators being left enabled on ov2680_power_on() errors
  media: ov2680: Fix ov2680_set_fmt() which == V4L2_SUBDEV_FORMAT_TRY not working
  media: ov2680: Add ov2680_fill_format() helper function
  media: ov2680: Don't take the lock for try_fmt calls
  media: ov2680: Remove VIDEO_V4L2_SUBDEV_API ifdef-s
  media: ov2680: Fix vflip / hflip set functions
  media: ov2680: Fix ov2680_bayer_order()
  media: ov2680: Remove auto-gain and auto-exposure controls
  media: i2c: ov2680: Set V4L2_CTRL_FLAG_MODIFY_LAYOUT on flips
  media: ov5640: Fix initial RESETB state and annotate timings
  media: ov5640: Enable MIPI interface in ov5640_set_power_mipi()
  HID: input: Support devices sending Eraser without Invert
  drivers: base: Free devm resources when unregistering a device
  USB: gadget: f_mass_storage: Fix unused variable warning
  USB: gadget: core: Add missing kerneldoc for vbus_work
  docs: ABI: fix spelling/grammar in SBEFIFO timeout interface
  media: venus: hfi_venus: Only consider sys_idle_indicator on V1
  media: go7007: Remove redundant if statement
  media: cec: core: add adap_unconfigured() callback
  media: cec: core: add adap_nb_transmit_canceled() callback
  platform/x86: dell-sysman: Fix reference leak
  iommu/vt-d: Fix to flush cache of PASID directory table
  iommu/qcom: Disable and reset context bank before programming
  fsi: aspeed: Reset master errors after CFAM reset
  IB/uverbs: Fix an potential error pointer dereference
  RDMA/hns: Fix CQ and QP cache affinity
  RDMA/hns: Fix inaccurate error label name in init instance
  RDMA/hns: Fix incorrect post-send with direct wqe of wr-list
  RDMA/hns: Fix port active speed
  iommu/sprd: Add missing force_aperture
  iommu/mediatek: Fix two IOMMU share pagetable issue
  iommu/mediatek: Remove unused "mapping" member from mtk_iommu_data
  extcon: cht_wc: add POWER_SUPPLY dependency
  kernfs: add stub helper for kernfs_generic_poll()
  driver core: Call dma_cleanup() on the test_remove path
  driver core: test_async: fix an error code
  dma-buf/sync_file: Fix docs syntax
  interconnect: qcom: qcm2290: Enable sync state
  coresight: tmc: Explicit type conversions to prevent integer overflow
  RDMA/irdma: Replace one-element array with flexible-array member
  scsi: qedf: Do not touch __user pointer in qedf_dbg_fp_int_cmd_read() directly
  scsi: qedf: Do not touch __user pointer in qedf_dbg_debug_cmd_read() directly
  scsi: qedf: Do not touch __user pointer in qedf_dbg_stop_io_on_error_cmd_read() directly
  RDMA/rxe: Fix incomplete state save in rxe_requester
  RDMA/rxe: Split rxe_run_task() into two subroutines
  x86/APM: drop the duplicate APM_MINOR_DEV macro
  serial: sprd: Fix DMA buffer leak issue
  serial: sprd: Assign sprd_port after initialized to avoid wrong access
  iio: accel: adxl313: Fix adxl313_i2c_id[] table
  scsi: qla4xxx: Add length check when parsing nlattrs
  scsi: be2iscsi: Add length check when parsing nlattrs
  scsi: iscsi: Add strlen() check in iscsi_if_set{_host}_param()
  scsi: iscsi: Add length check for nlattr payload
  scsi: iscsi: Rename iscsi_set_param() to iscsi_if_set_param()
  scsi: RDMA/srp: Fix residual handling
  usb: phy: mxs: fix getting wrong state with mxs_phy_is_otg_host()
  media: mediatek: vcodec: fix resource leaks in vdec_msg_queue_init()
  media: mediatek: vcodec: fix potential double free
  media: mediatek: vcodec: Return NULL if no vdec_fb is found
  media: amphion: ensure the bitops don't cross boundaries
  media: amphion: fix UNUSED_VALUE issue reported by coverity
  media: amphion: fix UNINIT issues reported by coverity
  media: amphion: fix REVERSE_INULL issues reported by coverity
  media: amphion: fix CHECKED_RETURN issues reported by coverity
  media: rkvdec: increase max supported height for H.264
  media: mtk-jpeg: Fix use after free bug due to uncanceled work
  media: amphion: add helper function to get id name
  media: amphion: reinit vpu if reqbufs output 0
  dt-bindings: extcon: maxim,max77843: restrict connector properties
  scsi: hisi_sas: Fix normally completed I/O analysed as failed
  scsi: hisi_sas: Fix warnings detected by sparse
  RDMA/siw: Fabricate a GID on tun and loopback devices
  media: cx24120: Add retval check for cx24120_message_send()
  media: dvb-usb: m920x: Fix a potential memory leak in m920x_i2c_xfer()
  media: dib7000p: Fix potential division by zero
  drivers: usb: smsusb: fix error handling code in smsusb_init_device
  iommu: rockchip: Fix directory table address encoding
  iommu/amd/iommu_v2: Fix pasid_state refcount dec hit 0 warning on pasid unbind
  media: v4l2-core: Fix a potential resource leak in v4l2_fwnode_parse_link()
  media: i2c: tvp5150: check return value of devm_kasprintf()
  media: ad5820: Drop unsupported ad5823 from i2c_ and of_device_id tables
  media: ov5640: fix low resolution image abnormal issue
  RDMA/qedr: Remove a duplicate assignment in irdma_query_ah()
  cgroup/cpuset: Inherit parent's load balance state in v2
  pNFS: Fix assignment of xprtdata.cred
  NFSv4.2: fix handling of COPY ERR_OFFLOAD_NO_REQ
  NFS: Guard against READDIR loop when entry names exceed MAXNAMELEN
  NFSD: da_addr_body field missing in some GETDEVICEINFO replies
  fs: lockd: avoid possible wrong NULL parameter
  jfs: validate max amount of blocks before allocation.
  ext4: fix unttached inode after power cut with orphan file feature enabled
  powerpc/iommu: Fix notifiers being shared by PCI and VIO buses
  powerpc/mpc5xxx: Add missing fwnode_handle_put()
  powerpc/pseries: Fix hcall tracepoints with JUMP_LABEL=n
  nfs/blocklayout: Use the passed in gfp flags
  powerpc/pseries: Rework lppaca_shared_proc() to avoid DEBUG_PREEMPT
  powerpc: Don't include lppaca.h in paca.h
  NFSv4.2: Fix READ_PLUS size calculations
  NFSv4.2: Fix up READ_PLUS alignment
  NFSv4.2: Fix READ_PLUS smatch warnings
  NFSv4.2: Rework scratch handling for READ_PLUS
  wifi: ath10k: Use RMW accessors for changing LNKCTL
  wifi: ath11k: Use RMW accessors for changing LNKCTL
  net/mlx5: Use RMW accessors for changing LNKCTL
  drm/radeon: Use RMW accessors for changing LNKCTL
  drm/amdgpu: Use RMW accessors for changing LNKCTL
  powerpc/perf: Convert fsl_emb notifier to state machine callbacks
  powerpc/fadump: reset dump area size if fadump memory reserve fails
  nvdimm: Fix dereference after free in register_nvdimm_pmu()
  nvdimm: Fix memleak of pmu attr_groups in unregister_nvdimm_pmu()
  vfio/type1: fix cap_migration information leak
  powerpc/radix: Move some functions into #ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
  clk: imx: composite-8m: fix clock pauses when set_rate would be a no-op
  clk: imx8mp: fix sai4 clock
  clk: imx: imx8ulp: update SPLL2 type
  clk: imx: pllv4: Fix SPLL2 MULT range
  clk: qcom: gcc-sm8450: Use floor ops for SDCC RCGs
  PCI/ASPM: Use RMW accessors for changing LNKCTL
  PCI: pciehp: Use RMW accessors for changing LNKCTL
  PCI: Add locking to RMW PCI Express Capability Register accessors
  PCI: Allow drivers to request exclusive config regions
  pinctrl: mcp23s08: check return value of devm_kasprintf()
  PCI: Mark NVIDIA T4 GPUs to avoid bus reset
  PCI: microchip: Correct the DED and SEC interrupt bit offsets
  clk: qcom: gcc-sm6350: Fix gcc_sdcc2_apps_clk_src
  clk: qcom: reset: Use the correct type of sleep/delay based on length
  kvm/vfio: ensure kvg instance stays around in kvm_vfio_group_add()
  kvm/vfio: Prepare for accepting vfio device fd
  clk: qcom: gcc-sm8250: Fix gcc_sdcc2_apps_clk_src
  ext4: avoid potential data overflow in next_linear_group
  ext4: correct grp validation in ext4_mb_good_group
  EDAC/igen6: Fix the issue of no error events
  clk: qcom: gcc-sc7180: Fix up gcc_sdcc2_apps_clk_src
  clk: sunxi-ng: Modify mismatched function name
  PCI/DOE: Fix destroy_work_on_stack() race
  drivers: clk: keystone: Fix parameter judgment in _of_pll_clk_init()
  PCI: qcom-ep: Switch MHI bus master clock off during L1SS
  PCI: apple: Initialize pcie->nvecs before use
  clk: rockchip: rk3568: Fix PLL rate setting for 78.75MHz
  clk: qcom: gcc-sc8280xp: Add missing GDSCs
  dt-bindings: clock: qcom,gcc-sc8280xp: Add missing GDSCs
  clk: qcom: gcc-sc8280xp: Add missing GDSC flags
  clk: qcom: gcc-sc8280xp: Add EMAC GDSCs
  clk: qcom: gpucc-sm6350: Fix clock source names
  clk: qcom: gpucc-sm6350: Introduce index-based clk lookup
  ipmi:ssif: Fix a memory leak when scanning for an adapter
  ipmi:ssif: Add check for kstrdup
  ALSA: ac97: Fix possible error value of *rac97
  of: unittest: Fix overlay type in apply/revert check
  of: overlay: Call of_changeset_init() early
  ASoC: SOF: amd: clear dsp to host interrupt status
  md: raid0: account for split bio in iostat accounting
  md/raid0: Fix performance regression for large sequential writes
  md/raid0: Factor out helper for mapping and submitting a bio
  md: add error_handlers for raid0 and linear
  firmware: cs_dsp: Fix new control name check
  md/raid5-cache: fix null-ptr-deref for r5l_flush_stripe_to_raid()
  md/raid5-cache: fix a deadlock in r5l_exit_log()
  bus: ti-sysc: Fix cast to enum warning
  arm64: dts: qcom: sc8280xp-x13s: Unreserve NC pins
  arm64: dts: qcom: msm8996: Fix dsi1 interrupts
  arm64: dts: qcom: msm8998: Add missing power domain to MMSS SMMU
  arm64: dts: qcom: msm8998: Drop bus clock reference from MMSS SMMU
  arm64: dts: qcom: apq8016-sbc: Fix ov5640 regulator supply names
  drm/mediatek: Fix potential memory leak if vmap() fail
  ARM: dts: qcom: ipq4019: correct SDHCI XO clock
  drm/mediatek: Remove freeing not dynamic allocated memory
  bus: ti-sysc: Fix build warning for 64-bit build
  drm/mediatek: dp: Add missing error checks in mtk_dp_parse_capabilities
  io_uring: fix drain stalls by invalid SQE
  block/mq-deadline: use correct way to throttling write requests
  audit: fix possible soft lockup in __audit_inode_child()
  drm/msm/a2xx: Call adreno_gpu_init() earlier
  drm/amd/pm: fix variable dereferenced issue in amdgpu_device_attr_create()
  smackfs: Prevent underflow in smk_set_cipso()
  drm/msm/dpu: fix the irq index in dpu_encoder_phys_wb_wait_for_commit_done
  firmware: meson_sm: fix to avoid potential NULL pointer dereference
  drm/msm/mdp5: Don't leak some plane state
  soc: qcom: smem: Fix incompatible types in comparison
  drm: xlnx: zynqmp_dpsub: Add missing check for dma_set_mask
  ima: Remove deprecated IMA_TRUSTED_KEYRING Kconfig
  drm/panel: simple: Add missing connector type and pixel format for AUO T215HVN01
  drm/repaper: Reduce temporary buffer size in repaper_fb_dirty()
  drm/armada: Fix off-by-one error in armada_overlay_get_property()
  ARM: dts: BCM53573: Fix Tenda AC9 switch CPU port
  arm64: dts: qcom: sm8150: Fix the I2C7 interrupt
  of: unittest: fix null pointer dereferencing in of_unittest_find_node_by_name()
  drm/tegra: dpaux: Fix incorrect return value of platform_get_irq
  drm/msm: Update dev core dump to not print backwards
  md/md-bitmap: hold 'reconfig_mutex' in backlog_store()
  md/md-bitmap: remove unnecessary local variable in backlog_store()
  md/raid10: use dereference_rdev_and_rrdev() to get devices
  md/raid10: factor out dereference_rdev_and_rrdev()
  md: restore 'noio_flag' for the last mddev_resume()
  md: Change active_io to percpu
  md: Factor out is_md_suspended helper
  drm/amdgpu: Update min() to min_t() in 'amdgpu_info_ioctl'
  arm64: dts: qcom: msm8996-gemini: fix touchscreen VIO supply
  arm64: dts: qcom: sdm845: Fix the min frequency of "ice_core_clk"
  arm64: dts: qcom: sdm845: Add missing RPMh power domain to GCC
  ARM: dts: BCM53573: Fix Ethernet info for Luxul devices
  drm: adv7511: Fix low refresh rate register for ADV7533/5
  ARM: dts: samsung: s5pv210-smdkv210: correct ethernet reg addresses (split)
  ARM: dts: s5pv210: add dummy 5V regulator for backlight on SMDKv210
  ARM: dts: samsung: s3c6410-mini6410: correct ethernet reg addresses (split)
  drm/bridge: anx7625: Use common macros for HDCP capabilities
  drm/bridge: anx7625: Use common macros for DP power sequencing commands
  x86/mm: Fix PAT bit missing from page protection modify mask
  block: don't allow enabling a cache on devices that don't support it
  block: cleanup queue_wc_store
  drm/etnaviv: fix dumping of active MMU context
  arm64: tegra: Fix HSUART for Smaug
  arm64: dts: qcom: pmi8994: Add missing OVP interrupt
  arm64: dts: qcom: pm660l: Add missing short interrupt
  arm64: dts: qcom: pm6150l: Add missing short interrupt
  arm64: dts: qcom: sm8250-sony-xperia: correct GPIO keys wakeup again
  arm64: tegra: Fix HSUART for Jetson AGX Orin
  ARM: dts: BCM53573: Use updated "spi-gpio" binding properties
  ARM: dts: BCM53573: Add cells sizes to PCIe node
  ARM: dts: BCM53573: Drop nonexistent #usb-cells
  drm/amdgpu: avoid integer overflow warning in amdgpu_device_resize_fb_bar()
  firmware: ti_sci: Use system_state to determine polling
  ARM: dts: stm32: Add missing detach mailbox for DHCOM SoM
  ARM: dts: stm32: Update to generic ADC channel binding on DHSOM systems
  ARM: dts: stm32: Add missing detach mailbox for Odyssey SoM
  ARM: dts: stm32: YAML validation fails for Odyssey Boards
  ARM: dts: stm32: Add missing detach mailbox for emtrion emSBC-Argon
  ARM: dts: stm32: adopt generic iio bindings for adc channels on emstamp-argon
  ARM: dts: stm32: YAML validation fails for Argon Boards
  ARM: dts: stm32: Rename mdio0 to mdio
  arm64: dts: qcom: sm8250: Mark PCIe hosts as DMA coherent
  arm64: dts: qcom: pmk8350: fix ADC-TM compatible string
  arm64: dts: qcom: pmr735b: fix thermal zone name
  arm64: dts: qcom: pm8350b: fix thermal zone name
  arm64: dts: qcom: pm8350: fix thermal zone name
  arm64: dts: qcom: sm8350: Use proper CPU compatibles
  arm64: dts: qcom: sm8350: Add missing LMH interrupts to cpufreq
  arm64: dts: qcom: sm8350: Fix CPU idle state residency times
  arm64: dts: qcom: sdm845-tama: Set serial indices and stdout-path
  arm64: dts: qcom: msm8996: Add missing interrupt to the USB2 controller
  arm64: dts: qcom: sc8280xp: Add missing SCM interconnect
  arm64: dts: qcom: sc8280xp-crd: Correct vreg_misc_3p3 GPIO
  arm64: dts: qcom: sm8250-edo: Rectify gpio-keys
  arm64: dts: qcom: sm8250-edo: Add GPIO line names for PMIC GPIOs
  arm64: dts: qcom: sm8250-edo: Add gpio line names for TLMM
  arm64: dts: qcom: msm8916-l8150: correct light sensor VDDIO supply
  arm64: dts: qcom: sm8250: correct dynamic power coefficients
  arm64: dts: qcom: sm6350: Fix ZAP region
  soc: qcom: ocmem: Fix NUM_PORTS & NUM_MACROS macros
  soc: qcom: ocmem: Add OCMEM hardware version print
  ASoC: stac9766: fix build errors with REGMAP_AC97
  drm/hyperv: Fix a compilation issue because of not including screen_info.h
  drm/amd/display: Do not set drr on pipe commit
  quota: fix dqput() to follow the guarantees dquot_srcu should provide
  quota: add new helper dquot_active()
  quota: rename dquot_active() to inode_quota_active()
  quota: factor out dquot_write_dquot()
  ASoC: cs43130: Fix numerator/denominator mixup
  drm/bridge: tc358764: Fix debug print parameter order
  netrom: Deny concurrent connect().
  net/sched: sch_hfsc: Ensure inner classes have fsc curve
  sfc: Check firmware supports Ethernet PTP filter
  cteonxt2-pf: Fix backpressure config for multiple PFC priorities to work simultaneously
  octeontx2-pf: Fix PFC TX scheduler free
  octeontx2-pf: Refactor schedular queue alloc/free calls
  hwmon: (tmp513) Fix the channel number in tmp51x_is_visible()
  mlxsw: core_hwmon: Adjust module label names based on MTCAP sensor counter
  mlxsw: i2c: Limit single transaction buffer size
  mlxsw: i2c: Fix chunk size setting in output mailbox buffer
  net: arcnet: Do not call kfree_skb() under local_irq_disable()
  ice: avoid executing commands on other ports when driving sync
  wifi: ath9k: use IS_ERR() with debugfs_create_dir()
  arm64: mm: use ptep_clear() instead of pte_clear() in clear_flush()
  Bluetooth: btusb: Do not call kfree_skb() under spin_lock_irqsave()
  wifi: mwifiex: avoid possible NULL skb pointer dereference
  mac80211: make ieee80211_tx_info padding explicit
  wifi: nl80211/cfg80211: add forgotten nla_policy for BSS color attribute
  wifi: ath9k: protect WMI command response buffer replacement with a lock
  wifi: ath9k: fix races between ath9k_wmi_cmd and ath9k_wmi_ctrl_rx
  samples/bpf: fix broken map lookup probe
  samples/bpf: fix bio latency check with tracepoint
  ARM: dts: Add .dts files missing from the build
  wifi: mwifiex: Fix missed return in oob checks failed path
  wifi: mwifiex: fix memory leak in mwifiex_histogram_read()
  net: annotate data-races around sk->sk_lingertime
  fs: ocfs2: namei: check return value of ocfs2_add_entry()
  lwt: Check LWTUNNEL_XMIT_CONTINUE strictly
  lwt: Fix return values of BPF xmit ops
  hwrng: iproc-rng200 - Implement suspend and resume calls
  crypto: caam - fix unchecked return value error
  ice: ice_aq_check_events: fix off-by-one check when filling buffer
  net-memcg: Fix scope of sockmem pressure indicators
  selftests/bpf: Clean up fmod_ret in bench_rename test script
  selftests/bpf: Fix repeat option when kfunc_call verification fails
  net: tcp: fix unexcepted socket die when snd_wnd is 0
  Bluetooth: hci_sync: Avoid use-after-free in dbg for hci_add_adv_monitor()
  Bluetooth: hci_sync: Don't double print name in add/remove adv_monitor
  Bluetooth: Fix potential use-after-free when clear keys
  Bluetooth: nokia: fix value check in nokia_bluetooth_serdev_probe()
  crypto: api - Use work queue in crypto_destroy_instance
  crypto: stm32 - Properly handle pm_runtime_get failing
  kbuild: rust_is_available: fix confusion when a version appears in the path
  kbuild: rust_is_available: add check for `bindgen` invocation
  kbuild: rust_is_available: fix version check when CC has multiple arguments
  kbuild: rust_is_available: remove -v option
  selftests/bpf: fix static assert compilation issue for test_cls_*.c
  wifi: mwifiex: fix error recovery in PCIE buffer descriptor management
  wifi: mwifiex: Fix OOB and integer underflow when rx packets
  wifi: mt76: mt7915: fix power-limits while chan_switch
  can: gs_usb: gs_usb_receive_bulk_callback(): count RX overflow errors also in case of OOM
  spi: tegra20-sflash: fix to check return value of platform_get_irq() in tegra_sflash_probe()
  wifi: mt76: testmode: add nla_policy for MT76_TM_ATTR_TX_LENGTH
  bpf: reject unhashed sockets in bpf_sk_assign
  udp: re-score reuseport groups when connected sockets are present
  wifi: mt76: mt7921: fix non-PSC channel scan fail
  wifi: rtw89: debug: Fix error handling in rtw89_debug_priv_btc_manual_set()
  regmap: rbtree: Use alloc_flags for memory allocations
  hwrng: pic32 - use devm_clk_get_enabled
  hwrng: nomadik - keep clock enabled while hwrng is registered
  tcp: tcp_enter_quickack_mode() should be static
  crypto: qat - change value of default idle filter
  bpf: Fix an error in verifying a field in a union
  bpf: Clear the probe_addr for uprobe
  libbpf: Fix realloc API handling in zero-sized edge cases
  bpftool: Use a local bpf_perf_event_value to fix accessing its fields
  bpftool: Use a local copy of BPF_LINK_TYPE_PERF_EVENT in pid_iter.bpf.c
  bpftool: Define a local bpf_perf_link to fix accessing its fields
  bpftool: use a local copy of perf_event to fix accessing :: Bpf_cookie
  selftests/bpf: Fix bpf_nf failure upon test rerun
  cpufreq: powernow-k8: Use related_cpus instead of cpus in driver.exit()
  x86/efistub: Fix PCI ROM preservation in mixed mode
  cpufreq: amd-pstate-ut: Fix kernel panic when loading the driver
  cpufreq: amd-pstate-ut: Remove module parameter access
  thermal/of: Fix potential uninitialized value access
  ACPI: x86: s2idle: Fix a logic error parsing AMD constraints table
  ACPI: x86: s2idle: Post-increment variables when getting constraints
  irqchip/loongson-eiointc: Fix return value checking of eiointc_index
  s390/paes: fix PKEY_TYPE_EP11_AES handling for secure keyblobs
  s390/pkey: fix PKEY_TYPE_EP11_AES handling for sysfs attributes
  s390/pkey: fix PKEY_TYPE_EP11_AES handling in PKEY_GENSECK2 IOCTL
  s390/pkey: fix/harmonize internal keyblob headers
  selftests/futex: Order calls to futex_lock_pi
  perf/imx_ddr: don't enable counter0 if none of 4 counters are used
  sched/rt: Fix sysctl_sched_rr_timeslice intial value
  arm64/fpsimd: Only provide the length to cpufeature for xCR registers
  arm64/sme: Don't use streaming mode to probe the maximum SME VL
  x86/decompressor: Don't rely on upper 32 bits of GPRs being preserved
  sched/psi: Select KERNFS as needed
  arm64/ptrace: Clean up error handling path in sve_set_common()
  selftests/resctrl: Close perf value read fd on errors
  selftests/resctrl: Unmount resctrl FS if child fails to run benchmark
  selftests/resctrl: Don't leak buffer in fill_cache()
  selftests/resctrl: Add resctrl.h into build deps
  OPP: Fix passing 0 to PTR_ERR in _opp_attach_genpd()
  refscale: Fix uninitalized use of wait_queue_head_t
  ARM: ptrace: Restore syscall skipping for tracers
  ARM: ptrace: Restore syscall restart tracing
  vfs, security: Fix automount superblock LSM init problem, preventing NFS sb sharing
  selftests/harness: Actually report SKIP for signal tests
  tmpfs: verify {g,u}id mount options correctly
  iomap: Remove large folio handling in iomap_invalidate_folio()
  fs: Fix error checking for d_hash_and_lookup()
  eventfd: prevent underflow for eventfd semaphores
  reiserfs: Check the return value from __getblk()
  tools/resolve_btfids: Fix setting HOSTCFLAGS
  tools/resolve_btfids: Pass HOSTCFLAGS as EXTRA_CFLAGS to prepare targets
  tools/resolve_btfids: Tidy HOST_OVERRIDES
  tools/resolve_btfids: Compile resolve_btfids as host program
  tools/resolve_btfids: Alter how HOSTCC is forced
  tools/resolve_btfids: Install subcmd headers
  tools/resolve_btfids: Use pkg-config to locate libelf
  tools lib subcmd: Add dependency test to install_headers
  tools lib subcmd: Make install_headers clearer
  tools lib subcmd: Add install target
  Revert "net: macsec: preserve ingress frame ordering"
  Revert "PCI: tegra194: Enable support for 256 Byte payload"
  Input: i8042 - add quirk for TUXEDO Gemini 17 Gen1/Clevo PD70PN
  udf: Handle error when adding extent to a file
  udf: Check consistency of Space Bitmap Descriptor
  drm/amd/display: ensure async flips are only accepted for fast updates
  net: Avoid address overwrite in kernel_connect
  KVM: x86/mmu: Add "never" option to allow sticky disabling of nx_huge_pages
  KVM: x86/mmu: Use kstrtobool() instead of strtobool()
  tpm: Enable hwrng only for Pluton on AMD CPUs
  crypto: rsa-pkcs1pad - Use helper to set reqsize
  cpufreq: intel_pstate: set stale CPU frequency to minimum
  of: property: Simplify of_link_to_phandle()
  platform/mellanox: Fix mlxbf-tmfifo not handling all virtio CONSOLE notifications
  tracing: Introduce pipe_cpumask to avoid race on trace_pipes
  net: sfp: handle 100G/25G active optical cables in sfp_parse_support
  ALSA: seq: oss: Fix racy open/close of MIDI devices
  LoongArch: Fix the write_fcsr() macro
  LoongArch: Let pmd_present() return true when splitting pmd
  scsi: lpfc: Fix incorrect big endian type assignment in bsg loopback path
  scsi: storvsc: Always set no_report_opcodes
  scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity
  sctp: handle invalid error codes without calling BUG()
  cifs: fix max_credits implementation
  cifs: fix sockaddr comparison in iface_cmp
  bnx2x: fix page fault following EEH recovery
  netlabel: fix shift wrapping bug in netlbl_catmap_setlong()
  wifi: mac80211: Use active_links instead of valid_links in Tx
  wifi: cfg80211: remove links only on AP
  drm/amdgpu: Match against exact bootloader status
  net: hns3: restore user pause configure when disable autoneg
  scsi: qedi: Fix potential deadlock on &qedi_percpu->p_work_lock
  scsi: lpfc: Remove reftag check in DIF paths
  platform/x86/amd/pmf: Fix unsigned comparison with less than zero
  idmaengine: make FSL_EDMA and INTEL_IDMA64 depends on HAS_IOMEM
  powerpc/powermac: Use early_* IO variants in via_calibrate_decr()
  wifi: brcmfmac: Fix field-spanning write in brcmf_scan_params_v2_to_v1()
  net: usb: qmi_wwan: add Quectel EM05GV2
  net: annotate data-races around sk->sk_{rcv|snd}timeo
  net: dsa: microchip: KSZ9477 register regmap alignment to 32 bit boundaries
  Revert "wifi: ath6k: silence false positive -Wno-dangling-pointer warning on GCC 12"
  vmbus_testing: fix wrong python syntax for integer value comparison
  clk: fixed-mmio: make COMMON_CLK_FIXED_MMIO depend on HAS_IOMEM
  kprobes: Prohibit probing on CFI preamble symbol
  security: keys: perform capable check only on privileged operations
  staging: fbtft: ili9341: use macro FBTFT_REGISTER_SPI_DRIVER
  ALSA: usb-audio: Update for native DSD support quirks
  ata: pata_arasan_cf: Use dev_err_probe() instead dev_err() in data_xfer()
  ovl: Always reevaluate the file signature for IMA
  drm/amd/display: Exit idle optimizations before attempt to access PHY
  drm/amd/display: Guard DCN31 PHYD32CLK logic against chip family
  drm/amd/smu: use AverageGfxclkFrequency* to replace previous GFX Curr Clock
  platform/x86: huawei-wmi: Silence ambient light sensor
  platform/x86: asus-wmi: Fix setting RGB mode on some TUF laptops
  platform/x86: think-lmi: Use kfree_sensitive instead of kfree
  platform/x86/intel/hid: Add HP Dragonfly G2 to VGBS DMI quirks
  platform/x86: intel: hid: Always call BTNL ACPI method
  ALSA: usb-audio: Add quirk for Microsoft Modern Wireless Headset
  ASoC: atmel: Fix the 8K sample parameter in I2SC master
  ASoC: rt711-sdca: fix for JD event handling in ClockStop Mode0
  ASoC: rt711: fix for JD event handling in ClockStop Mode0
  ASoc: codecs: ES8316: Fix DMIC config
  ASoC: rt5682-sdw: fix for JD event handling in ClockStop Mode0
  fs/nls: make load_nls() take a const parameter
  s390/dasd: fix hanging device after request requeue
  s390/dasd: use correct number of retries for ERP requests
  m68k: Fix invalid .section syntax
  ethernet: atheros: fix return value check in atl1c_tso_csum()
  ASoC: nau8821: Add DMI quirk mechanism for active-high jack-detect
  ASoC: da7219: Check for failure reading AAD IRQ events
  ASoC: da7219: Flush pending AAD IRQ when suspending
  ksmbd: fix out of bounds in init_smb2_rsp_hdr()
  ksmbd: no response from compound read
  ksmbd: validate session id and tree id in compound request
  ksmbd: fix out of bounds in smb3_decrypt_req()
  9p: virtio: make sure 'offs' is initialized in zc_request
  9p: virtio: fix unlikely null pointer deref in handle_rerror
  media: pci: cx23885: fix error handling for cx23885 ATSC boards
  media: pulse8-cec: handle possible ping error
  media: amphion: use dev_err_probe
  phy: qcom-snps-femto-v2: use qcom_snps_hsphy_suspend/resume error code
  Revert "MIPS: unhide PATA_PLATFORM"
  media: uapi: HEVC: Add num_delta_pocs_of_ref_rps_idx field
  powerpc/boot: Disable power10 features after BOOTAFLAGS assignment
  ALSA: hda/realtek: Enable 4 amplifiers instead of 2 on a HP platform
  ARM: dts: imx: Set default tuning step for imx7d usdhc
  Revert "Revert drm/amd/display: Enable Freesync Video Mode by default"
  scsi: ufs: Try harder to change the power mode
  Partially revert "drm/amd/display: Fix possible underflow for displays with large vblank"
  Revert "bridge: Add extack warning when enabling STP in netns."
  Linux 6.1.52
  pinctrl: amd: Don't show `Invalid config param` errors
  usb: typec: tcpci: clear the fault status bit
  nilfs2: fix WARNING in mark_buffer_dirty due to discarded buffer reuse
  nilfs2: fix general protection fault in nilfs_lookup_dirty_data_buffers()
  dt-bindings: sc16is7xx: Add property to change GPIO function
  tcpm: Avoid soft reset when partner does not support get_status
  fsi: master-ast-cf: Add MODULE_FIRMWARE macro
  firmware: stratix10-svc: Fix an NULL vs IS_ERR() bug in probe
  serial: sc16is7xx: fix bug when first setting GPIO direction
  serial: sc16is7xx: fix broken port 0 uart init
  serial: qcom-geni: fix opp vote on shutdown
  wifi: mt76: mt7921: fix skb leak by txs missing in AMSDU
  wifi: mt76: mt7921: do not support one stream on secondary antenna only
  Bluetooth: btsdio: fix use after free bug in btsdio_remove due to race condition
  staging: rtl8712: fix race condition
  HID: wacom: remove the battery when the EKR is off
  usb: chipidea: imx: improve logic if samsung,picophy-* parameter is 0
  usb: dwc3: meson-g12a: do post init to fix broken usb after resumption
  ALSA: usb-audio: Fix init call orders for UAC1
  USB: serial: option: add FOXCONN T99W368/T99W373 product
  USB: serial: option: add Quectel EM05G variant (0x030e)
  modules: only allow symbol_get of EXPORT_SYMBOL_GPL modules
  rtc: ds1685: use EXPORT_SYMBOL_GPL for ds1685_rtc_poweroff
  net: enetc: use EXPORT_SYMBOL_GPL for enetc_phc_index
  mmc: au1xmmc: force non-modular build and remove symbol_get usage
  ARM: pxa: remove use of symbol_get()
  ksmbd: reduce descriptor size if remaining bytes is less than request size
  ksmbd: replace one-element array with flex-array member in struct smb2_ea_info
  ksmbd: fix slub overflow in ksmbd_decode_ntlmssp_auth_blob()
  ksmbd: fix wrong DataOffset validation of create context
  erofs: ensure that the post-EOF tails are all zeroed
  Linux 6.1.51
  thunderbolt: Fix a backport error for display flickering issue
  kallsyms: Fix kallsyms_selftest failure
  io_uring/parisc: Adjust pgoff in io_uring mmap() for parisc
  parisc: sys_parisc: parisc_personality() is called from asm code
  parisc: Cleanup mmap implementation regarding color alignment
  lockdep: fix static memory detection even more
  ARM: module: Use module_init_layout_section() to spot init sections
  arm64: module: Use module_init_layout_section() to spot init sections
  arm64: module-plts: inline linux/moduleloader.h
  module: Expose module_init_layout_section()
  ACPI: thermal: Drop nocrt parameter
  Linux 6.1.50
  ASoC: amd: vangogh: select CONFIG_SND_AMD_ACP_CONFIG
  maple_tree: disable mas_wr_append() when other readers are possible
  ASoC: amd: yc: Fix a non-functional mic on Lenovo 82SJ
  gpio: sim: pass the GPIO device's software node to irq domain
  gpio: sim: dispose of irq mappings before destroying the irq_sim domain
  dma-buf/sw_sync: Avoid recursive lock during fence signal
  pinctrl: renesas: rza2: Add lock around pinctrl_generic{{add,remove}_group,{add,remove}_function}
  pinctrl: renesas: rzv2m: Fix NULL pointer dereference in rzv2m_dt_subnode_to_map()
  pinctrl: renesas: rzg2l: Fix NULL pointer dereference in rzg2l_dt_subnode_to_map()
  clk: Fix undefined reference to `clk_rate_exclusive_{get,put}'
  scsi: core: raid_class: Remove raid_component_add()
  scsi: snic: Fix double free in snic_tgt_create()
  madvise:madvise_free_pte_range(): don't use mapcount() against large folio for sharing check
  can: raw: add missing refcount for memory leak fix
  ublk: remove check IO_URING_F_SQE128 in ublk_ch_uring_cmd
  thunderbolt: Fix Thunderbolt 3 display flickering issue on 2nd hot plug onwards
  cgroup/cpuset: Free DL BW in case can_attach() fails
  sched/deadline: Create DL BW alloc, free & check overflow interface
  cgroup/cpuset: Iterate only if DEADLINE tasks are present
  sched/cpuset: Keep track of SCHED_DEADLINE task in cpusets
  sched/cpuset: Bring back cpuset_mutex
  cgroup/cpuset: Rename functions dealing with DEADLINE accounting
  nfsd: use vfs setgid helper
  nfs: use vfs setgid helper
  selftests/net: mv bpf/nat6to4.c to net folder
  hwmon: (aquacomputer_d5next) Add selective 200ms delay after sending ctrl report
  x86/fpu: Set X86_FEATURE_OSXSAVE feature after enabling OSXSAVE in CR4
  x86/fpu: Invalidate FPU state correctly on exec()
  drm/display/dp: Fix the DP DSC Receiver cap size
  drm/i915/dgfx: Enable d3cold at s2idle
  drm/vmwgfx: Fix shader stage validation
  PCI: acpiphp: Use pci_assign_unassigned_bridge_resources() only for non-root bus
  media: vcodec: Fix potential array out-of-bounds in encoder queue_setup
  pinctrl: amd: Mask wake bits on probe again
  of: dynamic: Refactor action prints to not use "%pOF" inside devtree_lock
  of: unittest: Fix EXPECT for parse_phandle_with_args_map() test
  radix tree: remove unused variable
  riscv: Fix build errors using binutils2.37 toolchains
  riscv: Handle zicsr/zifencei issue between gcc and binutils
  lib/clz_ctz.c: Fix __clzdi2() and __ctzdi2() for 32-bit kernels
  batman-adv: Hold rtnl lock during MTU update via netlink
  batman-adv: Fix batadv_v_ogm_aggr_send memory leak
  batman-adv: Fix TT global entry leak when client roamed back
  batman-adv: Do not get eth header before batadv_check_management_packet
  batman-adv: Don't increase MTU when set by user
  batman-adv: Trigger events for auto adjusted MTU
  selinux: set next pointer before attaching to list
  nfsd: Fix race to FREE_STATEID and cl_revoked
  NFS: Fix a use after free in nfs_direct_join_group()
  mm: memory-failure: fix unexpected return value in soft_offline_page()
  mm: add a call to flush_cache_vmap() in vmap_pfn()
  mm/gup: handle cont-PTE hugetlb pages correctly in gup_must_unshare() via GUP-fast
  ALSA: ymfpci: Fix the missing snd_card_free() call at probe error
  shmem: fix smaps BUG sleeping while atomic
  mm,ima,kexec,of: use memblock_free_late from ima_free_kexec_buffer
  clk: Fix slab-out-of-bounds error in devm_clk_release()
  NFSv4: Fix dropped lock for racing OPEN and delegation return
  platform/x86: ideapad-laptop: Add support for new hotkeys found on ThinkBook 14s Yoga ITL
  wifi: mac80211: limit reorder_buf_filtered to avoid UBSAN warning
  ibmveth: Use dcbf rather than dcbfl
  ASoC: cs35l41: Correct amp_gain_tlv values
  ASoC: amd: yc: Add VivoBook Pro 15 to quirks list for acp6x
  io_uring/msg_ring: fix missing lock on overflow for IOPOLL
  io_uring/msg_ring: move double lock/unlock helpers higher up
  io_uring: extract a io_msg_install_complete helper
  io_uring: get rid of double locking
  KVM: x86/mmu: Fix an sign-extension bug with mmu_seq that hangs vCPUs
  KVM: x86: Preserve TDP MMU roots until they are explicitly invalidated
  bonding: fix macvlan over alb bond support
  rtnetlink: Reject negative ifindexes in RTM_NEWLINK
  netfilter: nf_tables: fix out of memory error handling
  netfilter: nf_tables: flush pending destroy work before netlink notifier
  i40e: fix potential NULL pointer dereferencing of pf->vf i40e_sync_vsi_filters()
  net/sched: fix a qdisc modification with ambiguous command request
  igc: Fix the typo in the PTM Control macro
  igb: Avoid starting unnecessary workqueues
  can: isotp: fix support for transmission of SF without flow control
  selftests: bonding: do not set port down before adding to bond
  ice: Fix NULL pointer deref during VF reset
  Revert "ice: Fix ice VF reset during iavf initialization"
  ice: fix receive buffer size miscalculation
  ipv4: fix data-races around inet->inet_id
  net: validate veth and vxcan peer ifindexes
  net: bcmgenet: Fix return value check for fixed_phy_register()
  net: bgmac: Fix return value check for fixed_phy_register()
  net: dsa: mt7530: fix handling of 802.1X PAE frames
  selftests: mlxsw: Fix test failure on Spectrum-4
  mlxsw: Fix the size of 'VIRT_ROUTER_MSB'
  mlxsw: reg: Fix SSPR register layout
  mlxsw: pci: Set time stamp fields also when its type is MIRROR_UTC
  ipvlan: Fix a reference count leak warning in ipvlan_ns_exit()
  dccp: annotate data-races in dccp_poll()
  sock: annotate data-races around prot->memory_pressure
  net: dsa: felix: fix oversize frame dropping for always closed tc-taprio gates
  devlink: add missing unregister linecard notification
  devlink: move code to a dedicated directory
  octeontx2-af: SDP: fix receive link config
  tracing: Fix memleak due to race between current_tracer and trace
  tracing: Fix cpu buffers unavailable due to 'record_disabled' missed
  drm/i915/gt: Support aux invalidation on all engines
  drm/i915/gt: Poll aux invalidation register bit on invalidation
  drm/i915/gt: Ensure memory quiesced before invalidation
  drm/i915: Add the gen12_needs_ccs_aux_inv helper
  s390/zcrypt: fix reply buffer calculations for CCA replies
  s390/zcrypt: remove unnecessary (void *) conversions
  can: raw: fix lockdep issue in raw_release()
  can: raw: fix receiver memory leak
  jbd2: fix a race when checking checkpoint buffer busy
  jbd2: remove journal_clean_one_cp_list()
  jbd2: remove t_checkpoint_io_list
  MIPS: cpu-features: Use boot_cpu_type for CPU type based features
  MIPS: cpu-features: Enable octeon_cache by cpu_type
  PCI: acpiphp: Reassign resources on bridge if necessary
  video/aperture: Move vga handling to pci function
  video/aperture: Only kick vgacon when the pdev is decoding vga
  drm/aperture: Remove primary argument
  drm/gma500: Use drm_aperture_remove_conflicting_pci_framebuffers
  fbdev/radeon: use pci aperture helpers
  drm/ast: Use drm_aperture_remove_conflicting_pci_framebuffers
  xprtrdma: Remap Receive buffers after a reconnect
  NFSv4: fix out path in __nfs4_get_acl_uncached
  NFSv4.2: fix error handling in nfs42_proc_getxattr
  Linux 6.1.49
  Revert "f2fs: fix to do sanity check on direct node in truncate_dnode()"
  Revert "f2fs: fix to set flush_merge opt and show noflush_merge"
  Revert "f2fs: don't reset unchangable mount option in f2fs_remount()"
  objtool/x86: Fix SRSO mess
  Linux 6.1.48
  x86/srso: Correct the mitigation status when SMT is disabled
  objtool/x86: Fixup frame-pointer vs rethunk
  x86/retpoline,kprobes: Fix position of thunk sections with CONFIG_LTO_CLANG
  x86/srso: Disable the mitigation on unaffected configurations
  x86/CPU/AMD: Fix the DIV(0) initial fix attempt
  x86/retpoline: Don't clobber RFLAGS during srso_safe_ret()
  x86/static_call: Fix __static_call_fixup()
  x86/srso: Explain the untraining sequences a bit more
  x86/cpu: Cleanup the untrain mess
  x86/cpu: Rename srso_(.*)_alias to srso_alias_\1
  x86/cpu: Rename original retbleed methods
  x86/cpu: Clean up SRSO return thunk mess
  x86/alternative: Make custom return thunk unconditional
  x86/cpu: Fix up srso_safe_ret() and __x86_return_thunk()
  x86/cpu: Fix __x86_return_thunk symbol type
  Linux 6.1.47
  mmc: f-sdh30: fix order of function calls in sdhci_f_sdh30_remove
  net: fix the RTO timer retransmitting skb every 1ms if linear option is enabled
  drm/nouveau/disp: fix use-after-free in error handling of nouveau_connector_create
  af_unix: Fix null-ptr-deref in unix_stream_sendpage().
  drm/amdgpu: keep irq count in amdgpu_irq_disable_all
  drm/amd/pm: skip the RLC stop when S0i3 suspend for SMU v13.0.4/11
  arm64/ptrace: Ensure that SME is set up for target when writing SSVE state
  netfilter: set default timeout to 3 secs for sctp shutdown send and recv state
  hugetlb: do not clear hugetlb dtor until allocating vmemmap
  drm/amd/display: Implement workaround for writing to OTG_PIXEL_RATE_DIV register
  sched/fair: Remove capacity inversion detection
  sched/fair: unlink misfit task from cpu overutilized
  zsmalloc: allow only one active pool compaction context
  drm/amd/display: disable RCO for DCN314
  ASoC: amd: vangogh: select CONFIG_SND_AMD_ACP_CONFIG
  drm/amdgpu/pm: fix throttle_status for other than MP1 11.0.7
  drm/amdgpu: skip fence GFX interrupts disable/enable for S0ix
  drm/amd: flush any delayed gfxoff on suspend entry
  drm/i915/sdvo: fix panel_type initialization
  drm/qxl: fix UAF on handle creation
  mmc: block: Fix in_flight[issue_type] value error
  mmc: wbsd: fix double mmc_free_host() in wbsd_init()
  blk-crypto: dynamically allocate fallback profile
  arm64: dts: rockchip: Fix Wifi/Bluetooth on ROCK Pi 4 boards
  virtio-net: Zero max_tx_vq field for VIRTIO_NET_CTRL_MQ_HASH_CONFIG case
  cifs: Release folio lock on fscache read hit.
  ALSA: usb-audio: Add support for Mythware XA001AU capture and playback interfaces.
  serial: 8250: Fix oops for port->pm on uart_change_pm()
  riscv: uaccess: Return the number of bytes effectively not copied
  ALSA: hda/realtek - Remodified 3k pull low procedure
  soc: aspeed: socinfo: Add kfree for kstrdup
  soc: aspeed: uart-routing: Use __sysfs_match_string
  ALSA: hda/realtek: Add quirks for HP G11 Laptops
  ASoC: meson: axg-tdm-formatter: fix channel slot allocation
  ASoC: rt5665: add missed regulator_bulk_disable
  arm64: dts: imx93: Fix anatop node size
  ARM: dts: imx: Set default tuning step for imx6sx usdhc
  arm64: dts: imx8mm: Drop CSI1 PHY reference clock configuration
  ARM: dts: imx6: phytec: fix RTC interrupt level
  ARM: dts: imx: align LED node names with dtschema
  arm64: dts: rockchip: Disable HS400 for eMMC on ROCK 4C+
  arm64: dts: rockchip: Disable HS400 for eMMC on ROCK Pi 4
  arm64: dts: qcom: qrb5165-rb5: fix thermal zone conflict
  bus: ti-sysc: Flush posted write on enable before reset
  ice: Block switchdev mode when ADQ is active and vice versa
  qede: fix firmware halt over suspend and resume
  net: do not allow gso_size to be set to GSO_BY_FRAGS
  sock: Fix misuse of sk_under_memory_pressure()
  sfc: don't unregister flow_indr if it was never registered
  net: dsa: mv88e6xxx: Wait for EEPROM done before HW reset
  i40e: fix misleading debug logs
  iavf: fix FDIR rule fields masks validation
  net: openvswitch: reject negative ifindex
  team: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
  net: phy: broadcom: stub c45 read/write for 54810
  netfilter: nft_dynset: disallow object maps
  ipvs: fix racy memcpy in proc_do_sync_threshold
  netfilter: nf_tables: deactivate catchall elements in next generation
  netfilter: nf_tables: fix false-positive lockdep splat
  octeon_ep: cancel tx_timeout_task later in remove sequence
  net: macb: In ZynqMP resume always configure PS GTR for non-wakeup source
  drm/panel: simple: Fix AUO G121EAN01 panel timings according to the docs
  selftests: mirror_gre_changes: Tighten up the TTL test match
  net: phy: fix IRQ-based wake-on-lan over hibernate / power off
  net: pcs: Add missing put_device call in miic_create
  virtio-net: set queues after driver_ok
  virtio_net: notify MAC address change on device initialization
  xfrm: add forgotten nla_policy for XFRMA_MTIMER_THRESH
  xfrm: add NULL check in xfrm_update_ae_params
  ip_vti: fix potential slab-use-after-free in decode_session6
  ip6_vti: fix slab-use-after-free in decode_session6
  xfrm: fix slab-use-after-free in decode_session6
  net: xfrm: Amend XFRMA_SEC_CTX nla_policy structure
  net: af_key: fix sadb_x_filter validation
  net: xfrm: Fix xfrm_address_filter OOB read
  i2c: designware: Handle invalid SMBus block data response length value
  i2c: designware: Correct length byte validation logic
  btrfs: fix BUG_ON condition in btrfs_cancel_balance
  btrfs: fix incorrect splitting in btrfs_drop_extent_map_range
  tty: serial: fsl_lpuart: Clear the error flags by writing 1 for lpuart32 platforms
  tty: n_gsm: fix the UAF caused by race condition in gsm_cleanup_mux
  vdpa: Enable strict validation for netlinks ops
  vdpa: Add max vqp attr to vdpa_nl_policy for nlattr length check
  vdpa: Add queue index attr to vdpa_nl_policy for nlattr length check
  vdpa: Add features attr to vdpa_nl_policy for nlattr length check
  powerpc/rtas_flash: allow user copy to flash block cache objects
  fbdev: mmp: fix value check in mmphw_probe()
  i2c: tegra: Fix i2c-tegra DMA config option processing
  i2c: hisi: Only handle the interrupt of the driver's transfer
  i2c: bcm-iproc: Fix bcm_iproc_i2c_isr deadlock issue
  cifs: fix potential oops in cifs_oplock_break
  vdpa/mlx5: Delete control vq iotlb in destroy_mr only when necessary
  vdpa/mlx5: Fix mr->initialized semantics
  vduse: Use proper spinlock for IRQ injection
  virtio-mmio: don't break lifecycle of vm_dev
  btrfs: fix use-after-free of new block group that became unused
  btrfs: convert btrfs_block_group::seq_zone to runtime flag
  btrfs: convert btrfs_block_group::needs_free_space to runtime flag
  btrfs: move out now unused BG from the reclaim list
  video/aperture: Only remove sysfb on the default vga pci device
  fbdev/hyperv-fb: Do not set struct fb_info.apertures
  ARM: dts: nxp/imx6sll: fix wrong property name in usbphy node
  KVM: arm64: vgic-v4: Make the doorbell request robust w.r.t preemption
  drm/amd/display: fix access hdcp_workqueue assert
  drm/amd/display: phase3 mst hdcp for multiple displays
  drm/amd/display: save restore hdcp state when display is unplugged from mst hub
  igc: read before write to SRRCTL register
  ring-buffer: Do not swap cpu_buffer during resize process
  Bluetooth: MGMT: Use correct address for memcpy()
  powerpc/kasan: Disable KCOV in KASAN code
  ALSA: hda/realtek: Add quirk for ASUS ROG GZ301V
  ALSA: hda/realtek: Add quirk for ASUS ROG GA402X
  ALSA: hda/realtek: Add quirk for ASUS ROG GX650P
  ALSA: hda: fix a possible null-pointer dereference due to data race in snd_hdac_regmap_sync()
  ALSA: hda/realtek: Add quirks for Unis H3C Desktop B760 & Q760
  fs/ntfs3: Mark ntfs dirty when on-disk struct is corrupted
  fs: ntfs3: Fix possible null-pointer dereferences in mi_read()
  fs/ntfs3: Enhance sanity check while generating attr_list
  drm/amdgpu: Fix potential fence use-after-free v2
  ceph: try to dump the msgs when decoding fails
  Bluetooth: btusb: Add MT7922 bluetooth ID for the Asus Ally
  Bluetooth: L2CAP: Fix use-after-free
  watchdog: sp5100_tco: support Hygon FCH/SCH (Server Controller Hub)
  firewire: net: fix use after free in fwnet_finish_incoming_packet()
  thunderbolt: Limit Intel Barlow Ridge USB3 bandwidth
  thunderbolt: Add Intel Barlow Ridge PCI ID
  pcmcia: rsrc_nonstatic: Fix memory leak in nonstatic_release_resource_db()
  gfs2: Fix possible data races in gfs2_show_options()
  usb: chipidea: imx: add missing USB PHY DPDM wakeup setting
  usb: chipidea: imx: don't request QoS for imx8ulp
  thunderbolt: Read retimer NVM authentication status prior tb_retimer_set_inbound_sbtx()
  media: platform: mediatek: vpu: fix NULL ptr dereference
  usb: gadget: uvc: queue empty isoc requests if no video buffer is available
  usb: gadget: u_serial: Avoid spinlock recursion in __gs_console_push
  media: camss: set VFE bpl_alignment to 16 for sdm845 and sm8250
  media: v4l2-mem2mem: add lock to protect parameter num_rdy
  led: qcom-lpg: Fix resource leaks in for_each_available_child_of_node() loops
  serial: stm32: Ignore return value of uart_remove_one_port() in .remove()
  cifs: fix session state check in reconnect to avoid use-after-free issue
  smb: client: fix warning in cifs_smb3_do_mount()
  ALSA: hda/realtek: Add quirks for ROG ALLY CS35l41 audio
  HID: intel-ish-hid: ipc: Add Arrow Lake PCI device ID
  ASoC: SOF: core: Free the firmware trace before calling snd_sof_shutdown()
  drm/amd/display: Enable dcn314 DPP RCO
  drm/amd/display: Skip DPP DTO update if root clock is gated
  RDMA/mlx5: Return the firmware result upon destroying QP/RQ
  drm/amd/display: Apply 60us prefetch for DCFCLK <= 300Mhz
  drm/amdgpu: install stub fence into potential unused fence pointers
  iommu/amd: Introduce Disable IRTE Caching Support
  HID: logitech-hidpp: Add USB and Bluetooth IDs for the Logitech G915 TKL Keyboard
  accel/habanalabs: add pci health check during heartbeat
  dma-remap: use kvmalloc_array/kvfree for larger dma memory remap
  ASoC: SOF: Intel: fix SoundWire/HDaudio mutual exclusion
  iopoll: Call cpu_relax() in busy loops
  ASoC: Intel: sof_sdw: Add support for Rex soundwire
  ASoC: Intel: sof_sdw_rt_sdca_jack_common: test SOF_JACK_JDSRC in _exit
  ARM: dts: imx6dl: prtrvt, prtvt7, prti6q, prtwd2: fix USB related warnings
  ASoC: amd: vangogh: Add check for acp config flags in vangogh platform
  drm: rcar-du: remove R-Car H3 ES1.* workarounds
  drm/stm: ltdc: fix late dereference check
  ASoC: SOF: amd: Add pci revision id check
  PCI: tegra194: Fix possible array out of bounds access
  ASoC: Intel: sof_sdw: add quirk for LNL RVP
  ASoC: Intel: sof_sdw: add quirk for MTL RVP
  drm/amdgpu: fix memory leak in mes self test
  drm/amdgpu: Fix integer overflow in amdgpu_cs_pass1
  drm/amdgpu: fix calltrace warning in amddrm_buddy_fini
  net: phy: at803x: fix the wol setting functions
  net: phy: at803x: Use devm_regulator_get_enable_optional()
  net/smc: Fix setsockopt and sysctl to specify same buffer size again
  net/smc: replace mutex rmbs_lock and sndbufs_lock with rw_semaphore
  selftests: forwarding: tc_actions: Use ncat instead of nc
  selftests: forwarding: tc_actions: cleanup temporary files when test is aborted
  zsmalloc: fix races between modifications of fullness and isolated
  zsmalloc: consolidate zs_pool's migrate_lock and size_class's locks
  cpuidle: psci: Move enabling OSI mode after power domains creation
  cpuidle: psci: Extend information in log about OSI/PC mode
  mmc: sdhci-f-sdh30: Replace with sdhci_pltfm
  Linux 6.1.46
  drm/amd/pm/smu7: move variables to where they are used
  sch_netem: fix issues in netem_change() vs get_dist_table()
  alpha: remove __init annotation from exported page_is_ram()
  ACPI: scan: Create platform device for CS35L56
  platform/x86: serial-multi-instantiate: Auto detect IRQ resource for CSC3551
  scsi: qedf: Fix firmware halt over suspend and resume
  scsi: qedi: Fix firmware halt over suspend and resume
  scsi: fnic: Replace return codes in fnic_clean_pending_aborts()
  scsi: core: Fix possible memory leak if device_add() fails
  scsi: snic: Fix possible memory leak if device_add() fails
  scsi: 53c700: Check that command slot is not NULL
  scsi: ufs: renesas: Fix private allocation
  scsi: storvsc: Fix handling of virtual Fibre Channel timeouts
  scsi: core: Fix legacy /proc parsing buffer overflow
  netfilter: nf_tables: report use refcount overflow
  nvme-rdma: fix potential unbalanced freeze & unfreeze
  nvme-tcp: fix potential unbalanced freeze & unfreeze
  btrfs: set cache_block_group_error if we find an error
  btrfs: reject invalid reloc tree root keys with stack dump
  btrfs: exit gracefully if reloc roots don't match
  btrfs: properly clear end of the unreserved range in cow_file_range
  btrfs: don't stop integrity writeback too early
  btrfs: wait for actual caching progress during allocation
  gpio: sim: mark the GPIO chip as a one that can sleep
  gpio: ws16c48: Fix off-by-one error in WS16C48 resource region extent
  ibmvnic: Ensure login failure recovery is safe from other resets
  ibmvnic: Do partial reset on login failure
  ibmvnic: Handle DMA unmapping of login buffs in release functions
  ibmvnic: Unmap DMA login rsp buffer on send login fail
  ibmvnic: Enforce stronger sanity checks on login response
  net/mlx5: Reload auxiliary devices in pci error handlers
  net/mlx5: Skip clock update work when device is in error state
  net/mlx5: LAG, Check correct bucket when modifying LAG
  net/mlx5: Allow 0 for total host VFs
  dmaengine: owl-dma: Modify mismatched function name
  dmaengine: mcf-edma: Fix a potential un-allocated memory access
  net: hns3: fix strscpy causing content truncation issue
  nexthop: Fix infinite nexthop bucket dump when using maximum nexthop ID
  nexthop: Make nexthop bucket dump more efficient
  nexthop: Fix infinite nexthop dump when using maximum nexthop ID
  net: hns3: fix deadlock issue when externel_lb and reset are executed together
  net: hns3: add wait until mac link down
  net: hns3: refactor hclge_mac_link_status_wait for interface reuse
  net: dsa: ocelot: call dsa_tag_8021q_unregister() under rtnl_lock() on driver remove
  net: phy: at803x: remove set/get wol callbacks for AR8032
  net: marvell: prestera: fix handling IPv4 routes with nhid
  net: tls: avoid discarding data on record close
  RDMA/umem: Set iova in ODP flow
  wifi: cfg80211: fix sband iftype data lookup for AP_VLAN
  drm/rockchip: Don't spam logs in atomic check
  IB/hfi1: Fix possible panic during hotplug remove
  iavf: fix potential races for FDIR filters
  drivers: vxlan: vnifilter: free percpu vni stats on error path
  drivers: net: prevent tun_build_skb() to exceed the packet size limit
  dccp: fix data-race around dp->dccps_mss_cache
  bonding: Fix incorrect deletion of ETH_P_8021AD protocol vid from slaves
  xsk: fix refcount underflow in error path
  tunnels: fix kasan splat when generating ipv4 pmtu error
  tcp: add missing family to tcp_set_ca_state() tracepoint
  net/smc: Use correct buffer sizes when switching between TCP and SMC
  net/packet: annotate data-races around tp->status
  mptcp: fix the incorrect judgment for msk->cb_flags
  macsec: use DEV_STATS_INC()
  mISDN: Update parameter type of dsp_cmx_send()
  bpf, sockmap: Fix bug that strp_done cannot be called
  bpf, sockmap: Fix map type error in sock_map_del_link
  net: core: remove unnecessary frame_sz check in bpf_xdp_adjust_tail()
  selftests: forwarding: tc_flower: Relax success criterion
  selftests: forwarding: Switch off timeout
  selftests: forwarding: Skip test when no interfaces are specified
  selftests: forwarding: hw_stats_l3_gre: Skip when using veth pairs
  selftests: forwarding: ethtool_extended_state: Skip when using veth pairs
  selftests: forwarding: ethtool: Skip when using veth pairs
  selftests: forwarding: Add a helper to skip test when using veth pairs
  selftests/rseq: Fix build with undefined __weak
  interconnect: qcom: sm8450: add enable_mask for bcm nodes
  interconnect: qcom: Add support for mask-based BCMs
  iio: core: Prevent invalid memory access when there is no parent
  drm/nouveau/disp: Revert a NULL check inside nouveau_connector_get_modes
  x86: Move gds_ucode_mitigated() declaration to header
  x86/speculation: Add cpu_show_gds() prototype
  x86/sev: Do not try to parse for the CC blob on non-AMD hardware
  x86/mm: Fix VDSO and VVAR placement on 5-level paging machines
  x86/cpu/amd: Enable Zenbleed fix for AMD Custom APU 0405
  x86/srso: Fix build breakage with the LLVM linker
  usb: typec: altmodes/displayport: Signal hpd when configuring pin assignment
  usb: typec: tcpm: Fix response to vsafe0V event
  usb: common: usb-conn-gpio: Prevent bailing out if initial role is none
  USB: Gadget: core: Help prevent panic during UVC unconfigure
  usb: dwc3: Properly handle processing of pending events
  usb-storage: alauda: Fix uninit-value in alauda_check_media()
  misc: rtsx: judge ASPM Mode to set PETXCFG Reg
  binder: fix memory leak in binder_init()
  iio: adc: ina2xx: avoid NULL pointer dereference on OF device match
  iio: adc: ad7192: Fix ac excitation feature
  iio: frequency: admv1013: propagate errors from regulator_get_voltage()
  iio: cros_ec: Fix the allocation size for cros_ec_command
  io_uring: correct check for O_TMPFILE
  drm/amd/display: trigger timing sync only if TG is running
  drm/amd/display: fix the build when DRM_AMD_DC_DCN is not set
  drm/amd/display: Retain phantom plane/stream if validation fails
  drm/amd/display: Disable phantom OTG after enable for plane disable
  drm/amd/display: Use update plane and stream routine for DCN32x
  drm/amd/display: Avoid ABM when ODM combine is enabled for eDP
  drm/amd/display: Update OTG instance in the commit stream
  drm/amd/display: Handle seamless boot stream
  drm/amd/display: Add function for validate and update new stream
  drm/amd/display: Handle virtual hardware detect
  drm/amd/pm: avoid unintentional shutdown due to temperature momentary fluctuation
  drm/amd/pm: fulfill powerplay peak profiling mode shader/memory clock settings
  drm/amd/pm: expose swctf threshold setting for legacy powerplay
  drm/amd/pm: fulfill swsmu peak profiling mode shader/memory clock settings
  nilfs2: fix use-after-free of nilfs_root in dirtying inodes via iput
  radix tree test suite: fix incorrect allocation size for pthreads
  hwmon: (pmbus/bel-pfe) Enable PMBUS_SKIP_STATUS_CHECK for pfe1100
  cpuidle: dt_idle_genpd: Add helper function to remove genpd topology
  drm/amd/display: limit DPIA link rate to HBR3
  drm/amd: Disable S/G for APUs when 64GB or more host memory
  drm/amdgpu: add S/G display parameter
  drm/amd/display: check attr flag before set cursor degamma on DCN3+
  drm/amdgpu: fix possible UAF in amdgpu_cs_pass1()
  drm/shmem-helper: Reset vma->vm_ops before calling dma_buf_mmap()
  drm/nouveau/nvkm/dp: Add workaround to fix DP 1.3+ DPCD issues
  drm/nouveau/gr: enable memory loads on helper invocation on all channels
  nvme-pci: add NVME_QUIRK_BOGUS_NID for Samsung PM9B1 256G and 512G
  riscv/kexec: handle R_RISCV_CALL_PLT relocation type
  riscv,mmio: Fix readX()-to-delay() ordering
  riscv/kexec: load initrd high in available memory
  net: mana: Fix MANA VF unload when hardware is unresponsive
  dmaengine: pl330: Return DMA_PAUSED when transaction is paused
  mptcp: fix disconnect vs accept race
  mptcp: avoid bogus reset on fallback close
  selftests: mptcp: join: fix 'implicit EP' test
  selftests: mptcp: join: fix 'delete and re-add' test
  ipv6: adjust ndisc_is_useropt() to also return true for PIO
  mmc: moxart: read scr register without changing byte order
  wireguard: allowedips: expand maximum node depth
  selftests: forwarding: Set default IPv6 traceroute utility
  wifi: rtw89: fix 8852AE disconnection caused by RX full flags
  wifi: nl80211: fix integer overflow in nl80211_parse_mbssid_elems()
  KVM: SEV: only access GHCB fields once
  KVM: SEV: snapshot the GHCB before accessing it
  ksmbd: fix wrong next length validation of ea buffer in smb2_set_ea()
  ksmbd: validate command request size
  tpm: Add a helper for checking hwrng enabled
  tpm: Disable RNG for all AMD fTPMs
  Revert "loongarch/cpu: Switch to arch_cpu_finalize_init()"
  gcc-plugins: Reorganize gimple includes for GCC 13
  Linux 6.1.45
  x86/CPU/AMD: Do not leak quotient data after a division by 0
  Revert "drm/i915: Disable DC states for all commits"
  drm/amdgpu: Use apt name for FW reserved region
  drm/amdgpu: Remove unnecessary domain argument
  drm/amdgpu: add vram reservation based on vram_usagebyfirmware_v2_2
  arm64/ptrace: Don't enable SVE when setting streaming SVE
  exfat: check if filename entries exceeds max filename length
  f2fs: don't reset unchangable mount option in f2fs_remount()
  f2fs: fix to set flush_merge opt and show noflush_merge
  selftests/rseq: Play nice with binaries statically linked against glibc 2.35+
  drm/amd/display: skip CLEAR_PAYLOAD_ID_TABLE if device mst_en is 0
  drm/amd/display: Ensure that planes are in the same order
  drm/imx/ipuv3: Fix front porch adjustment upon hactive aligning
  powerpc/mm/altmap: Fix altmap boundary check
  mtd: rawnand: fsl_upm: Fix an off-by one test in fun_exec_op()
  mtd: rawnand: rockchip: Align hwecc vs. raw page helper layouts
  mtd: rawnand: rockchip: fix oobfree offset and description
  mtd: rawnand: omap_elm: Fix incorrect type in assignment
  io_uring: annotate offset timeout races
  f2fs: fix to do sanity check on direct node in truncate_dnode()
  btrfs: remove BUG_ON()'s in add_new_free_space()
  ext2: Drop fragment support
  fs: Protect reconfiguration of sb read-write from racing writes
  net: usbnet: Fix WARNING in usbnet_start_xmit/usb_submit_urb
  debugobjects: Recheck debug_objects_enabled before reporting
  Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb
  fs/sysv: Null check to prevent null-ptr-deref bug
  fs/ntfs3: Use __GFP_NOWARN allocation at ntfs_load_attr_list()
  mm: kmem: fix a NULL pointer dereference in obj_stock_flush_required()
  file: reinstate f_pos locking optimization for regular files
  bpf, cpumap: Make sure kthread is running before map update returns
  clk: imx93: Propagate correct error in imx93_clocks_probe()
  drm/i915/gt: Cleanup aux invalidation registers
  drm/i915: Fix premature release of request's reusable memory
  drm/ttm: check null pointer before accessing when swapping
  open: make RESOLVE_CACHED correctly test for O_TMPFILE
  arm64/fpsimd: Sync FPSIMD state with SVE for SME only systems
  arm64/fpsimd: Clear SME state in the target task when setting the VL
  arm64/fpsimd: Sync and zero pad FPSIMD state for streaming SVE
  powerpc/ftrace: Create a dummy stackframe to fix stack unwind
  bpf: Disable preemption in bpf_event_output
  rbd: prevent busy loop when requesting exclusive lock
  x86/hyperv: Disable IBT when hypercall page lacks ENDBR instruction
  wifi: mt76: mt7615: do not advertise 5 GHz on first phy of MT7615D (DBDC)
  net: tap_open(): set sk_uid from current_fsuid()
  net: tun_chr_open(): set sk_uid from current_fsuid()
  arm64: dts: stratix10: fix incorrect I2C property for SCL signal
  bpf: Disable preemption in bpf_perf_event_output
  mtd: rawnand: meson: fix OOB available bytes for ECC
  mtd: spinand: toshiba: Fix ecc_get_status
  exfat: release s_lock before calling dir_emit()
  exfat: use kvmalloc_array/kvfree instead of kmalloc_array/kfree
  firmware: arm_scmi: Drop OF node reference in the transport channel setup
  ceph: defer stopping mdsc delayed_work
  USB: zaurus: Add ID for A-300/B-500/C-700
  libceph: fix potential hang in ceph_osdc_notify()
  scsi: storvsc: Limit max_sectors for virtual Fibre Channel devices
  scsi: zfcp: Defer fc_rport blocking until after ADISC response
  rust: allocator: Prevent mis-aligned allocation
  tcp_metrics: fix data-race in tcpm_suck_dst() vs fastopen
  tcp_metrics: annotate data-races around tm->tcpm_net
  tcp_metrics: annotate data-races around tm->tcpm_vals[]
  tcp_metrics: annotate data-races around tm->tcpm_lock
  tcp_metrics: annotate data-races around tm->tcpm_stamp
  tcp_metrics: fix addr_same() helper
  prestera: fix fallback to previous version on same major version
  net/mlx5: fs_core: Skip the FTs in the same FS_TYPE_PRIO_CHAINS fs_prio
  net/mlx5: fs_core: Make find_closest_ft more generic
  vxlan: Fix nexthop hash size
  ip6mr: Fix skb_under_panic in ip6mr_cache_report()
  s390/qeth: Don't call dev_close/dev_open (DOWN/UP)
  net: dcb: choose correct policy to parse DCB_ATTR_BCN
  bnxt_en: Fix max_mtu setting for multi-buf XDP
  bnxt_en: Fix page pool logic for page size >= 64K
  net: netsec: Ignore 'phy-mode' on SynQuacer in DT mode
  net: korina: handle clk prepare error in korina_probe()
  net: ll_temac: fix error checking of irq_of_parse_and_map()
  bpf: sockmap: Remove preempt_disable in sock_map_sk_acquire
  net/sched: cls_route: No longer copy tcf_result on update to avoid use-after-free
  net/sched: cls_fw: No longer copy tcf_result on update to avoid use-after-free
  net/sched: cls_u32: No longer copy tcf_result on update to avoid use-after-free
  bpf, cpumap: Handle skb as well when clean up ptr_ring
  ice: Fix RDMA VSI removal during queue rebuild
  net/sched: taprio: Limit TCA_TAPRIO_ATTR_SCHED_CYCLE_TIME to INT_MAX.
  net: annotate data-races around sk->sk_priority
  net: add missing data-race annotation for sk_ll_usec
  net: add missing data-race annotations around sk->sk_peek_off
  net: annotate data-races around sk->sk_mark
  net: add missing READ_ONCE(sk->sk_rcvbuf) annotation
  net: add missing READ_ONCE(sk->sk_sndbuf) annotation
  net: add missing READ_ONCE(sk->sk_rcvlowat) annotation
  net: annotate data-races around sk->sk_max_pacing_rate
  net: annotate data-race around sk->sk_txrehash
  net: annotate data-races around sk->sk_reserved_mem
  qed: Fix scheduling in a tasklet while getting stats
  mISDN: hfcpci: Fix potential deadlock on &hc->lock
  net: sched: cls_u32: Fix match key mis-addressing
  perf test uprobe_from_different_cu: Skip if there is no gcc
  net: dsa: fix value check in bcm_sf2_sw_probe()
  rtnetlink: let rtnl_bridge_setlink checks IFLA_BRIDGE_MODE length
  bpf: Add length check for SK_DIAG_BPF_STORAGE_REQ_MAP_FD parsing
  net/mlx5e: Move representor neigh cleanup to profile cleanup_tx
  net/mlx5e: Fix crash moving to switchdev mode when ntuple offload is set
  net/mlx5e: fix return value check in mlx5e_ipsec_remove_trailer()
  net/mlx5: fix potential memory leak in mlx5e_init_rep_rx
  net/mlx5: DR, fix memory leak in mlx5dr_cmd_create_reformat_ctx
  net/mlx5e: fix double free in macsec_fs_tx_create_crypto_table_groups
  wifi: cfg80211: Fix return value in scan logic
  erofs: fix wrong primary bvec selection on deduplicated extents
  KVM: s390: fix sthyi error handling
  word-at-a-time: use the same return type for has_zero regardless of endianness
  firmware: arm_scmi: Fix chan_free cleanup on SMC
  lib/bitmap: workaround const_eval test build failure
  firmware: smccc: Fix use of uninitialised results structure
  arm64: dts: freescale: Fix VPU G2 clock
  arm64: dts: imx8mn-var-som: add missing pull-up for onboard PHY reset pinmux
  arm64: dts: phycore-imx8mm: Correction in gpio-line-names
  arm64: dts: phycore-imx8mm: Label typo-fix of VPU
  arm64: dts: imx8mm-venice-gw7904: disable disp_blk_ctrl
  arm64: dts: imx8mm-venice-gw7903: disable disp_blk_ctrl
  iommu/arm-smmu-v3: Document nesting-related errata
  iommu/arm-smmu-v3: Add explicit feature for nesting
  iommu/arm-smmu-v3: Document MMU-700 erratum 2812531
  iommu/arm-smmu-v3: Work around MMU-600 erratum 1076982
  net: ipa: only reset hashed tables when supported
  net/mlx5: Free irqs only on shutdown callback
  perf: Fix function pointer case
  io_uring: gate iowait schedule on having pending requests
  Linux 6.1.44
  x86: fix backwards merge of GDS/SRSO bit
  xen/netback: Fix buffer overrun triggered by unusual packet
  x86/srso: Tie SBPB bit setting to microcode patch detection
  x86/srso: Add a forgotten NOENDBR annotation
  x86/srso: Fix return thunks in generated code
  x86/srso: Add IBPB on VMEXIT
  x86/srso: Add IBPB
  x86/srso: Add SRSO_NO support
  x86/srso: Add IBPB_BRTYPE support
  x86/srso: Add a Speculative RAS Overflow mitigation
  x86/cpu, kvm: Add support for CPUID_80000021_EAX
  x86/bugs: Increase the x86 bugs vector size to two u32s
  Documentation/x86: Fix backwards on/off logic about YMM support
  x86/mm: Initialize text poking earlier
  mm: Move mm_cachep initialization to mm_init()
  x86/mm: Use mm_alloc() in poking_init()
  x86/mm: fix poking_init() for Xen PV guests
  x86/xen: Fix secondary processors' FPU initialization
  x86/mem_encrypt: Unbreak the AMD_MEM_ENCRYPT=n build
  KVM: Add GDS_NO support to KVM
  x86/speculation: Add Kconfig option for GDS
  x86/speculation: Add force option to GDS mitigation
  x86/speculation: Add Gather Data Sampling mitigation
  x86/fpu: Move FPU initialization into arch_cpu_finalize_init()
  x86/fpu: Mark init functions __init
  x86/fpu: Remove cpuinfo argument from init functions
  x86/init: Initialize signal frame size late
  init, x86: Move mem_encrypt_init() into arch_cpu_finalize_init()
  init: Invoke arch_cpu_finalize_init() earlier
  init: Remove check_bugs() leftovers
  um/cpu: Switch to arch_cpu_finalize_init()
  sparc/cpu: Switch to arch_cpu_finalize_init()
  sh/cpu: Switch to arch_cpu_finalize_init()
  mips/cpu: Switch to arch_cpu_finalize_init()
  m68k/cpu: Switch to arch_cpu_finalize_init()
  loongarch/cpu: Switch to arch_cpu_finalize_init()
  ia64/cpu: Switch to arch_cpu_finalize_init()
  ARM: cpu: Switch to arch_cpu_finalize_init()
  x86/cpu: Switch to arch_cpu_finalize_init()
  init: Provide arch_cpu_finalize_init()

 Conflicts:
	Documentation/devicetree/bindings
	Documentation/devicetree/bindings/clock/xlnx,versal-clk.yaml
	Documentation/devicetree/bindings/extcon/maxim,max77843.yaml
	Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt
	android/abi_gki_aarch64_qcom
	drivers/bus/mhi/host/pm.c
	drivers/clk/qcom/gcc-sm8250.c
	drivers/interconnect/qcom/bcm-voter.c
	drivers/interconnect/qcom/icc-rpmh.h
	drivers/mailbox/qcom-ipcc.c

Change-Id: I98acc81783883752e19e8d433e3db6977a0ebf7f
Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@11252216 UKQ2.231224.001
Signed-off-by: jianzhou <quic_jianzhou@quicinc.com>
2024-01-03 21:55:56 -08:00

2246 lines
73 KiB
Makefile

# SPDX-License-Identifier: GPL-2.0
VERSION = 6
PATCHLEVEL = 1
SUBLEVEL = 57
EXTRAVERSION =
NAME = Curry Ramen
# *DOCUMENTATION*
# To see a list of typical targets execute "make help"
# More info can be located in ./README
# Comments in this file are targeted only to the developer, do not
# expect to learn how to build the kernel reading this file.
$(if $(filter __%, $(MAKECMDGOALS)), \
$(error targets prefixed with '__' are only for internal use))
# That's our default target when none is given on the command line
PHONY := __all
__all:
# We are using a recursive build, so we need to do a little thinking
# to get the ordering right.
#
# Most importantly: sub-Makefiles should only ever modify files in
# their own directory. If in some directory we have a dependency on
# a file in another dir (which doesn't happen often, but it's often
# unavoidable when linking the built-in.a targets which finally
# turn into vmlinux), we will call a sub make in that other dir, and
# after that we are sure that everything which is in that other dir
# is now up to date.
#
# The only cases where we need to modify files which have global
# effects are thus separated out and done before the recursive
# descending is started. They are now explicitly listed as the
# prepare rule.
ifneq ($(sub_make_done),1)
# Do not use make's built-in rules and variables
# (this increases performance and avoids hard-to-debug behaviour)
MAKEFLAGS += -rR
# Avoid funny character set dependencies
unexport LC_ALL
LC_COLLATE=C
LC_NUMERIC=C
export LC_COLLATE LC_NUMERIC
# Avoid interference with shell env settings
unexport GREP_OPTIONS
# Beautify output
# ---------------------------------------------------------------------------
#
# Normally, we echo the whole command before executing it. By making
# that echo $($(quiet)$(cmd)), we now have the possibility to set
# $(quiet) to choose other forms of output instead, e.g.
#
# quiet_cmd_cc_o_c = Compiling $(RELDIR)/$@
# cmd_cc_o_c = $(CC) $(c_flags) -c -o $@ $<
#
# If $(quiet) is empty, the whole command will be printed.
# If it is set to "quiet_", only the short version will be printed.
# If it is set to "silent_", nothing will be printed at all, since
# the variable $(silent_cmd_cc_o_c) doesn't exist.
#
# A simple variant is to prefix commands with $(Q) - that's useful
# for commands that shall be hidden in non-verbose mode.
#
# $(Q)ln $@ :<
#
# If KBUILD_VERBOSE equals 0 then the above command will be hidden.
# If KBUILD_VERBOSE equals 1 then the above command is displayed.
# If KBUILD_VERBOSE equals 2 then give the reason why each target is rebuilt.
#
# To put more focus on warnings, be less verbose as default
# Use 'make V=1' to see the full commands
ifeq ("$(origin V)", "command line")
KBUILD_VERBOSE = $(V)
endif
ifndef KBUILD_VERBOSE
KBUILD_VERBOSE = 0
endif
ifeq ($(KBUILD_VERBOSE),1)
quiet =
Q =
else
quiet=quiet_
Q = @
endif
# If the user is running make -s (silent mode), suppress echoing of
# commands
# make-4.0 (and later) keep single letter options in the 1st word of MAKEFLAGS.
ifeq ($(filter 3.%,$(MAKE_VERSION)),)
silence:=$(findstring s,$(firstword -$(MAKEFLAGS)))
else
silence:=$(findstring s,$(filter-out --%,$(MAKEFLAGS)))
endif
ifeq ($(silence),s)
quiet=silent_
KBUILD_VERBOSE = 0
endif
export quiet Q KBUILD_VERBOSE
# Call a source code checker (by default, "sparse") as part of the
# C compilation.
#
# Use 'make C=1' to enable checking of only re-compiled files.
# Use 'make C=2' to enable checking of *all* source files, regardless
# of whether they are re-compiled or not.
#
# See the file "Documentation/dev-tools/sparse.rst" for more details,
# including where to get the "sparse" utility.
ifeq ("$(origin C)", "command line")
KBUILD_CHECKSRC = $(C)
endif
ifndef KBUILD_CHECKSRC
KBUILD_CHECKSRC = 0
endif
export KBUILD_CHECKSRC
# Enable "clippy" (a linter) as part of the Rust compilation.
#
# Use 'make CLIPPY=1' to enable it.
ifeq ("$(origin CLIPPY)", "command line")
KBUILD_CLIPPY := $(CLIPPY)
endif
export KBUILD_CLIPPY
# Use make M=dir or set the environment variable KBUILD_EXTMOD to specify the
# directory of external module to build. Setting M= takes precedence.
ifeq ("$(origin M)", "command line")
KBUILD_EXTMOD := $(M)
endif
$(if $(word 2, $(KBUILD_EXTMOD)), \
$(error building multiple external modules is not supported))
$(foreach x, % :, $(if $(findstring $x, $(KBUILD_EXTMOD)), \
$(error module directory path cannot contain '$x')))
# Remove trailing slashes
ifneq ($(filter %/, $(KBUILD_EXTMOD)),)
KBUILD_EXTMOD := $(shell dirname $(KBUILD_EXTMOD).)
endif
export KBUILD_EXTMOD
# ANDROID: set up mixed-build support. mixed-build allows device kernel modules
# to be compiled against a GKI kernel. This approach still uses the headers and
# Kbuild from device kernel, so care must be taken to ensure that those headers match.
ifdef KBUILD_MIXED_TREE
# Need vmlinux.symvers for modpost and System.map for depmod, check whether they exist in KBUILD_MIXED_TREE
required_mixed_files=vmlinux.symvers System.map
$(if $(filter-out $(words $(required_mixed_files)), \
$(words $(wildcard $(add-prefix $(KBUILD_MIXED_TREE)/,$(required_mixed_files))))),,\
$(error KBUILD_MIXED_TREE=$(KBUILD_MIXED_TREE) doesn't contain $(required_mixed_files)))
endif
mixed-build-prefix = $(if $(KBUILD_MIXED_TREE),$(KBUILD_MIXED_TREE)/)
export KBUILD_MIXED_TREE
# This is a hack for kleaf to set mixed-build-prefix within the execution of a make rule, e.g.
# within __modinst_pre.
# TODO(b/205893923): Revert this hack once it is properly handled.
export mixed-build-prefix
# Kbuild will save output files in the current working directory.
# This does not need to match to the root of the kernel source tree.
#
# For example, you can do this:
#
# cd /dir/to/store/output/files; make -f /dir/to/kernel/source/Makefile
#
# If you want to save output files in a different location, there are
# two syntaxes to specify it.
#
# 1) O=
# Use "make O=dir/to/store/output/files/"
#
# 2) Set KBUILD_OUTPUT
# Set the environment variable KBUILD_OUTPUT to point to the output directory.
# export KBUILD_OUTPUT=dir/to/store/output/files/; make
#
# The O= assignment takes precedence over the KBUILD_OUTPUT environment
# variable.
# Do we want to change the working directory?
ifeq ("$(origin O)", "command line")
KBUILD_OUTPUT := $(O)
endif
ifneq ($(KBUILD_OUTPUT),)
# Make's built-in functions such as $(abspath ...), $(realpath ...) cannot
# expand a shell special character '~'. We use a somewhat tedious way here.
abs_objtree := $(shell mkdir -p $(KBUILD_OUTPUT) && cd $(KBUILD_OUTPUT) && pwd)
$(if $(abs_objtree),, \
$(error failed to create output directory "$(KBUILD_OUTPUT)"))
# $(realpath ...) resolves symlinks
abs_objtree := $(realpath $(abs_objtree))
else
abs_objtree := $(CURDIR)
endif # ifneq ($(KBUILD_OUTPUT),)
ifeq ($(abs_objtree),$(CURDIR))
# Suppress "Entering directory ..." unless we are changing the work directory.
MAKEFLAGS += --no-print-directory
else
need-sub-make := 1
endif
this-makefile := $(lastword $(MAKEFILE_LIST))
abs_srctree := $(realpath $(dir $(this-makefile)))
ifneq ($(words $(subst :, ,$(abs_srctree))), 1)
$(error source directory cannot contain spaces or colons)
endif
ifneq ($(abs_srctree),$(abs_objtree))
# Look for make include files relative to root of kernel src
#
# --included-dir is added for backward compatibility, but you should not rely on
# it. Please add $(srctree)/ prefix to include Makefiles in the source tree.
MAKEFLAGS += --include-dir=$(abs_srctree)
endif
ifneq ($(filter 3.%,$(MAKE_VERSION)),)
# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
# We need to invoke sub-make to avoid implicit rules in the top Makefile.
need-sub-make := 1
# Cancel implicit rules for this Makefile.
$(this-makefile): ;
endif
export abs_srctree abs_objtree
export sub_make_done := 1
ifeq ($(need-sub-make),1)
PHONY += $(MAKECMDGOALS) __sub-make
$(filter-out $(this-makefile), $(MAKECMDGOALS)) __all: __sub-make
@:
# Invoke a second make in the output directory, passing relevant variables
__sub-make:
$(Q)$(MAKE) -C $(abs_objtree) -f $(abs_srctree)/Makefile $(MAKECMDGOALS)
endif # need-sub-make
endif # sub_make_done
# We process the rest of the Makefile if this is the final invocation of make
ifeq ($(need-sub-make),)
# Do not print "Entering directory ...",
# but we want to display it when entering to the output directory
# so that IDEs/editors are able to understand relative filenames.
MAKEFLAGS += --no-print-directory
ifeq ($(abs_srctree),$(abs_objtree))
# building in the source tree
srctree := .
building_out_of_srctree :=
else
ifeq ($(abs_srctree)/,$(dir $(abs_objtree)))
# building in a subdirectory of the source tree
srctree := ..
else
srctree := $(abs_srctree)
endif
building_out_of_srctree := 1
endif
ifneq ($(KBUILD_ABS_SRCTREE),)
srctree := $(abs_srctree)
endif
objtree := .
VPATH := $(srctree)
export building_out_of_srctree srctree objtree VPATH
# To make sure we do not include .config for any of the *config targets
# catch them early, and hand them over to scripts/kconfig/Makefile
# It is allowed to specify more targets when calling make, including
# mixing *config targets and build targets.
# For example 'make oldconfig all'.
# Detect when mixed targets is specified, and make a second invocation
# of make so .config is not included in this case either (for *config).
version_h := include/generated/uapi/linux/version.h
clean-targets := %clean mrproper cleandocs
no-dot-config-targets := $(clean-targets) \
cscope gtags TAGS tags help% %docs check% coccicheck \
$(version_h) headers headers_% archheaders archscripts \
%asm-generic kernelversion %src-pkg dt_binding_check \
outputmakefile rustavailable rustfmt rustfmtcheck
# Installation targets should not require compiler. Unfortunately, vdso_install
# is an exception where build artifacts may be updated. This must be fixed.
no-compiler-targets := $(no-dot-config-targets) install dtbs_install \
headers_install modules_install kernelrelease image_name
no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease \
image_name
single-targets := %.a %.i %.rsi %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
config-build :=
mixed-build :=
need-config := 1
need-compiler := 1
may-sync-config := 1
single-build :=
ifneq ($(filter $(no-dot-config-targets), $(MAKECMDGOALS)),)
ifeq ($(filter-out $(no-dot-config-targets), $(MAKECMDGOALS)),)
need-config :=
endif
endif
ifneq ($(filter $(no-compiler-targets), $(MAKECMDGOALS)),)
ifeq ($(filter-out $(no-compiler-targets), $(MAKECMDGOALS)),)
need-compiler :=
endif
endif
ifneq ($(filter $(no-sync-config-targets), $(MAKECMDGOALS)),)
ifeq ($(filter-out $(no-sync-config-targets), $(MAKECMDGOALS)),)
may-sync-config :=
endif
endif
ifneq ($(KBUILD_EXTMOD),)
may-sync-config :=
endif
ifeq ($(KBUILD_EXTMOD),)
ifneq ($(filter %config,$(MAKECMDGOALS)),)
config-build := 1
ifneq ($(words $(MAKECMDGOALS)),1)
mixed-build := 1
endif
endif
endif
# We cannot build single targets and the others at the same time
ifneq ($(filter $(single-targets), $(MAKECMDGOALS)),)
single-build := 1
ifneq ($(filter-out $(single-targets), $(MAKECMDGOALS)),)
mixed-build := 1
endif
endif
# For "make -j clean all", "make -j mrproper defconfig all", etc.
ifneq ($(filter $(clean-targets),$(MAKECMDGOALS)),)
ifneq ($(filter-out $(clean-targets),$(MAKECMDGOALS)),)
mixed-build := 1
endif
endif
# install and modules_install need also be processed one by one
ifneq ($(filter install,$(MAKECMDGOALS)),)
ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
mixed-build := 1
endif
endif
ifdef mixed-build
# ===========================================================================
# We're called with mixed targets (*config and build targets).
# Handle them one by one.
PHONY += $(MAKECMDGOALS) __build_one_by_one
$(MAKECMDGOALS): __build_one_by_one
@:
__build_one_by_one:
$(Q)set -e; \
for i in $(MAKECMDGOALS); do \
$(MAKE) -f $(srctree)/Makefile $$i; \
done
else # !mixed-build
include $(srctree)/scripts/Kbuild.include
# Read KERNELRELEASE from include/config/kernel.release (if it exists)
KERNELRELEASE = $(shell cat include/config/kernel.release 2> /dev/null)
KERNELVERSION = $(VERSION)$(if $(PATCHLEVEL),.$(PATCHLEVEL)$(if $(SUBLEVEL),.$(SUBLEVEL)))$(EXTRAVERSION)
export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION
include $(srctree)/scripts/subarch.include
# Cross compiling and selecting different set of gcc/bin-utils
# ---------------------------------------------------------------------------
#
# When performing cross compilation for other architectures ARCH shall be set
# to the target architecture. (See arch/* for the possibilities).
# ARCH can be set during invocation of make:
# make ARCH=ia64
# Another way is to have ARCH set in the environment.
# The default ARCH is the host where make is executed.
# CROSS_COMPILE specify the prefix used for all executables used
# during compilation. Only gcc and related bin-utils executables
# are prefixed with $(CROSS_COMPILE).
# CROSS_COMPILE can be set on the command line
# make CROSS_COMPILE=ia64-linux-
# Alternatively CROSS_COMPILE can be set in the environment.
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
ARCH ?= $(SUBARCH)
# Architecture as present in compile.h
UTS_MACHINE := $(ARCH)
SRCARCH := $(ARCH)
# Additional ARCH settings for x86
ifeq ($(ARCH),i386)
SRCARCH := x86
endif
ifeq ($(ARCH),x86_64)
SRCARCH := x86
endif
# Additional ARCH settings for sparc
ifeq ($(ARCH),sparc32)
SRCARCH := sparc
endif
ifeq ($(ARCH),sparc64)
SRCARCH := sparc
endif
# Additional ARCH settings for parisc
ifeq ($(ARCH),parisc64)
SRCARCH := parisc
endif
export cross_compiling :=
ifneq ($(SRCARCH),$(SUBARCH))
cross_compiling := 1
endif
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG
# SHELL used by kbuild
CONFIG_SHELL := sh
HOST_LFS_CFLAGS := $(shell getconf LFS_CFLAGS 2>/dev/null)
HOST_LFS_LDFLAGS := $(shell getconf LFS_LDFLAGS 2>/dev/null)
HOST_LFS_LIBS := $(shell getconf LFS_LIBS 2>/dev/null)
ifneq ($(LLVM),)
ifneq ($(filter %/,$(LLVM)),)
LLVM_PREFIX := $(LLVM)
else ifneq ($(filter -%,$(LLVM)),)
LLVM_SUFFIX := $(LLVM)
endif
HOSTCC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
HOSTCXX = $(LLVM_PREFIX)clang++$(LLVM_SUFFIX)
else
HOSTCC = gcc
HOSTCXX = g++
endif
HOSTRUSTC = rustc
HOSTPKG_CONFIG = pkg-config
KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
-O2 -fomit-frame-pointer -std=gnu11 \
-Wdeclaration-after-statement
KBUILD_USERCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
KBUILD_USERLDFLAGS := $(USERLDFLAGS)
# These flags apply to all Rust code in the tree, including the kernel and
# host programs.
export rust_common_flags := --edition=2021 \
-Zbinary_dep_depinfo=y \
-Dunsafe_op_in_unsafe_fn -Drust_2018_idioms \
-Dunreachable_pub -Dnon_ascii_idents \
-Wmissing_docs \
-Drustdoc::missing_crate_level_docs \
-Dclippy::correctness -Dclippy::style \
-Dclippy::suspicious -Dclippy::complexity \
-Dclippy::perf \
-Dclippy::let_unit_value -Dclippy::mut_mut \
-Dclippy::needless_bitwise_bool \
-Dclippy::needless_continue \
-Wclippy::dbg_macro
KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
KBUILD_HOSTRUSTFLAGS := $(rust_common_flags) -O -Cstrip=debuginfo \
-Zallow-features= $(HOSTRUSTFLAGS)
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
# Make variables (CC, etc...)
CPP = $(CC) -E
ifneq ($(LLVM),)
CC = $(LLVM_PREFIX)clang$(LLVM_SUFFIX)
LD = $(LLVM_PREFIX)ld.lld$(LLVM_SUFFIX)
AR = $(LLVM_PREFIX)llvm-ar$(LLVM_SUFFIX)
NM = $(LLVM_PREFIX)llvm-nm$(LLVM_SUFFIX)
OBJCOPY = $(LLVM_PREFIX)llvm-objcopy$(LLVM_SUFFIX)
OBJDUMP = $(LLVM_PREFIX)llvm-objdump$(LLVM_SUFFIX)
READELF = $(LLVM_PREFIX)llvm-readelf$(LLVM_SUFFIX)
STRIP = $(LLVM_PREFIX)llvm-strip$(LLVM_SUFFIX)
else
CC = $(CROSS_COMPILE)gcc
LD = $(CROSS_COMPILE)ld
AR = $(CROSS_COMPILE)ar
NM = $(CROSS_COMPILE)nm
OBJCOPY = $(CROSS_COMPILE)objcopy
OBJDUMP = $(CROSS_COMPILE)objdump
READELF = $(CROSS_COMPILE)readelf
STRIP = $(CROSS_COMPILE)strip
endif
RUSTC = rustc
RUSTDOC = rustdoc
RUSTFMT = rustfmt
CLIPPY_DRIVER = clippy-driver
BINDGEN = bindgen
CARGO = cargo
PAHOLE = pahole
RESOLVE_BTFIDS = $(objtree)/tools/bpf/resolve_btfids/resolve_btfids
LEX = flex
YACC = bison
AWK = awk
INSTALLKERNEL := installkernel
DEPMOD = depmod
PERL = perl
PYTHON3 = python3
CHECK = sparse
BASH = bash
KGZIP = gzip
KBZIP2 = bzip2
KLZOP = lzop
LZMA = lzma
LZ4 = lz4
XZ = xz
ZSTD = zstd
PAHOLE_FLAGS = $(shell PAHOLE=$(PAHOLE) $(srctree)/scripts/pahole-flags.sh)
CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
-Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
NOSTDINC_FLAGS :=
CFLAGS_MODULE =
RUSTFLAGS_MODULE =
AFLAGS_MODULE =
LDFLAGS_MODULE =
CFLAGS_KERNEL =
RUSTFLAGS_KERNEL =
AFLAGS_KERNEL =
LDFLAGS_vmlinux =
# Use USERINCLUDE when you must reference the UAPI directories only.
USERINCLUDE := \
-I$(srctree)/arch/$(SRCARCH)/include/uapi \
-I$(objtree)/arch/$(SRCARCH)/include/generated/uapi \
-I$(srctree)/include/uapi \
-I$(objtree)/include/generated/uapi \
-include $(srctree)/include/linux/compiler-version.h \
-include $(srctree)/include/linux/kconfig.h
# Use LINUXINCLUDE when you must reference the include/ directory.
# Needed to be compatible with the O= option
LINUXINCLUDE := \
-I$(srctree)/arch/$(SRCARCH)/include \
-I$(objtree)/arch/$(SRCARCH)/include/generated \
$(if $(building_out_of_srctree),-I$(srctree)/include) \
-I$(objtree)/include \
$(USERINCLUDE)
KBUILD_AFLAGS := -D__ASSEMBLY__ -fno-PIE
KBUILD_CFLAGS := -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE \
-Werror=implicit-function-declaration -Werror=implicit-int \
-Werror=return-type -Wno-format-security \
-std=gnu11
KBUILD_CPPFLAGS := -D__KERNEL__
KBUILD_RUSTFLAGS := $(rust_common_flags) \
--target=$(objtree)/rust/target.json \
-Cpanic=abort -Cembed-bitcode=n -Clto=n \
-Cforce-unwind-tables=n -Ccodegen-units=1 \
-Csymbol-mangling-version=v0 \
-Crelocation-model=static \
-Zfunction-sections=n \
-Dclippy::float_arithmetic
KBUILD_AFLAGS_KERNEL :=
KBUILD_CFLAGS_KERNEL :=
KBUILD_RUSTFLAGS_KERNEL :=
KBUILD_AFLAGS_MODULE := -DMODULE
KBUILD_CFLAGS_MODULE := -DMODULE
KBUILD_RUSTFLAGS_MODULE := --cfg MODULE
KBUILD_LDFLAGS_MODULE :=
KBUILD_LDFLAGS :=
CLANG_FLAGS :=
ifeq ($(KBUILD_CLIPPY),1)
RUSTC_OR_CLIPPY_QUIET := CLIPPY
RUSTC_OR_CLIPPY = $(CLIPPY_DRIVER)
else
RUSTC_OR_CLIPPY_QUIET := RUSTC
RUSTC_OR_CLIPPY = $(RUSTC)
endif
ifdef RUST_LIB_SRC
export RUST_LIB_SRC
endif
# Allows the usage of unstable features in stable compilers.
export RUSTC_BOOTSTRAP := 1
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC HOSTPKG_CONFIG
export RUSTC RUSTDOC RUSTFMT RUSTC_OR_CLIPPY_QUIET RUSTC_OR_CLIPPY BINDGEN CARGO
export HOSTRUSTC KBUILD_HOSTRUSTFLAGS
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
export PERL PYTHON3 CHECK CHECKFLAGS MAKE UTS_MACHINE HOSTCXX
export KGZIP KBZIP2 KLZOP LZMA LZ4 XZ ZSTD
export KBUILD_HOSTCXXFLAGS KBUILD_HOSTLDFLAGS KBUILD_HOSTLDLIBS LDFLAGS_MODULE
export KBUILD_USERCFLAGS KBUILD_USERLDFLAGS
export KBUILD_CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS KBUILD_LDFLAGS
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE
export KBUILD_RUSTFLAGS RUSTFLAGS_KERNEL RUSTFLAGS_MODULE
export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_RUSTFLAGS_MODULE KBUILD_LDFLAGS_MODULE
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL KBUILD_RUSTFLAGS_KERNEL
export PAHOLE_FLAGS
# Files to ignore in find ... statements
export RCS_FIND_IGNORE := \( -name SCCS -o -name BitKeeper -o -name .svn -o \
-name CVS -o -name .pc -o -name .hg -o -name .git \) \
-prune -o
export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
--exclude CVS --exclude .pc --exclude .hg --exclude .git
# ===========================================================================
# Rules shared between *config targets and build targets
# Basic helpers built in scripts/basic/
PHONY += scripts_basic
scripts_basic:
$(Q)$(MAKE) $(build)=scripts/basic
PHONY += outputmakefile
ifdef building_out_of_srctree
# Before starting out-of-tree build, make sure the source tree is clean.
# outputmakefile generates a Makefile in the output directory, if using a
# separate output directory. This allows convenient use of make in the
# output directory.
# At the same time when output Makefile generated, generate .gitignore to
# ignore whole output directory
quiet_cmd_makefile = GEN Makefile
cmd_makefile = { \
echo "\# Automatically generated by $(srctree)/Makefile: don't edit"; \
echo "include $(srctree)/Makefile"; \
} > Makefile
outputmakefile:
@if [ -f $(srctree)/.config -o \
-d $(srctree)/include/config -o \
-d $(srctree)/arch/$(SRCARCH)/include/generated ]; then \
echo >&2 "***"; \
echo >&2 "*** The source tree is not clean, please run 'make$(if $(findstring command line, $(origin ARCH)), ARCH=$(ARCH)) mrproper'"; \
echo >&2 "*** in $(abs_srctree)";\
echo >&2 "***"; \
false; \
fi
$(Q)ln -fsn $(srctree) source
$(call cmd,makefile)
$(Q)test -e .gitignore || \
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
endif
# The expansion should be delayed until arch/$(SRCARCH)/Makefile is included.
# Some architectures define CROSS_COMPILE in arch/$(SRCARCH)/Makefile.
# CC_VERSION_TEXT is referenced from Kconfig (so it needs export),
# and from include/config/auto.conf.cmd to detect the compiler upgrade.
CC_VERSION_TEXT = $(subst $(pound),,$(shell LC_ALL=C $(CC) --version 2>/dev/null | head -n 1))
ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
include $(srctree)/scripts/Makefile.clang
endif
# Include this also for config targets because some architectures need
# cc-cross-prefix to determine CROSS_COMPILE.
ifdef need-compiler
include $(srctree)/scripts/Makefile.compiler
endif
ifdef config-build
# ===========================================================================
# *config targets only - make sure prerequisites are updated, and descend
# in scripts/kconfig to make the *config target
# Read arch specific Makefile to set KBUILD_DEFCONFIG as needed.
# KBUILD_DEFCONFIG may point out an alternative default configuration
# used for 'make defconfig'
include $(srctree)/arch/$(SRCARCH)/Makefile
export KBUILD_DEFCONFIG KBUILD_KCONFIG CC_VERSION_TEXT
config: outputmakefile scripts_basic FORCE
$(Q)$(MAKE) $(build)=scripts/kconfig $@
%config: outputmakefile scripts_basic FORCE
$(Q)$(MAKE) $(build)=scripts/kconfig $@
else #!config-build
# ===========================================================================
# Build targets only - this includes vmlinux, arch specific targets, clean
# targets and others. In general all targets except *config targets.
# If building an external module we do not care about the all: rule
# but instead __all depend on modules
PHONY += all
ifeq ($(KBUILD_EXTMOD),)
__all: all
else
__all: modules
endif
targets :=
# Decide whether to build built-in, modular, or both.
# Normally, just do built-in.
KBUILD_MODULES :=
KBUILD_BUILTIN := 1
# If we have only "make modules", don't compile built-in objects.
ifeq ($(MAKECMDGOALS),modules)
KBUILD_BUILTIN :=
endif
# If we have "make <whatever> modules", compile modules
# in addition to whatever we do anyway.
# Just "make" or "make all" shall build modules as well
ifneq ($(filter all modules nsdeps %compile_commands.json clang-%,$(MAKECMDGOALS)),)
KBUILD_MODULES := 1
endif
ifeq ($(MAKECMDGOALS),)
KBUILD_MODULES := 1
endif
export KBUILD_MODULES KBUILD_BUILTIN
ifdef need-config
include include/config/auto.conf
endif
ifeq ($(KBUILD_EXTMOD),)
# Objects we will link into vmlinux / subdirs we need to visit
core-y :=
drivers-y :=
libs-y := lib/
endif # KBUILD_EXTMOD
ifndef KBUILD_MIXED_TREE
# The all: target is the default when no target is given on the
# command line.
# This allow a user to issue only 'make' to build a kernel including modules
# Defaults to vmlinux, but the arch makefile usually adds further targets
all: vmlinux
endif
CFLAGS_GCOV := -fprofile-arcs -ftest-coverage
ifdef CONFIG_CC_IS_GCC
CFLAGS_GCOV += -fno-tree-loop-im
endif
export CFLAGS_GCOV
# The arch Makefiles can override CC_FLAGS_FTRACE. We may also append it later.
ifdef CONFIG_FUNCTION_TRACER
CC_FLAGS_FTRACE := -pg
endif
include $(srctree)/arch/$(SRCARCH)/Makefile
ifdef need-config
ifdef may-sync-config
# Read in dependencies to all Kconfig* files, make sure to run syncconfig if
# changes are detected. This should be included after arch/$(SRCARCH)/Makefile
# because some architectures define CROSS_COMPILE there.
include include/config/auto.conf.cmd
$(KCONFIG_CONFIG):
@echo >&2 '***'
@echo >&2 '*** Configuration file "$@" not found!'
@echo >&2 '***'
@echo >&2 '*** Please run some configurator (e.g. "make oldconfig" or'
@echo >&2 '*** "make menuconfig" or "make xconfig").'
@echo >&2 '***'
@/bin/false
# The actual configuration files used during the build are stored in
# include/generated/ and include/config/. Update them if .config is newer than
# include/config/auto.conf (which mirrors .config).
#
# This exploits the 'multi-target pattern rule' trick.
# The syncconfig should be executed only once to make all the targets.
# (Note: use the grouped target '&:' when we bump to GNU Make 4.3)
#
# Do not use $(call cmd,...) here. That would suppress prompts from syncconfig,
# so you cannot notice that Kconfig is waiting for the user input.
%/config/auto.conf %/config/auto.conf.cmd %/generated/autoconf.h %/generated/rustc_cfg: $(KCONFIG_CONFIG)
$(Q)$(kecho) " SYNC $@"
$(Q)$(MAKE) -f $(srctree)/Makefile syncconfig
else # !may-sync-config
# External modules and some install targets need include/generated/autoconf.h
# and include/config/auto.conf but do not care if they are up-to-date.
# Use auto.conf to trigger the test
PHONY += include/config/auto.conf
include/config/auto.conf:
@test -e include/generated/autoconf.h -a -e $@ || ( \
echo >&2; \
echo >&2 " ERROR: Kernel configuration is invalid."; \
echo >&2 " include/generated/autoconf.h or $@ are missing.";\
echo >&2 " Run 'make oldconfig && make prepare' on kernel src to fix it."; \
echo >&2 ; \
/bin/false)
endif # may-sync-config
endif # need-config
KBUILD_CFLAGS += -fno-delete-null-pointer-checks
KBUILD_CFLAGS += $(call cc-disable-warning,frame-address,)
KBUILD_CFLAGS += $(call cc-disable-warning, format-truncation)
KBUILD_CFLAGS += $(call cc-disable-warning, format-overflow)
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE
KBUILD_CFLAGS += -O2
KBUILD_RUSTFLAGS += -Copt-level=2
else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
KBUILD_RUSTFLAGS += -Copt-level=s
endif
# Always set `debug-assertions` and `overflow-checks` because their default
# depends on `opt-level` and `debug-assertions`, respectively.
KBUILD_RUSTFLAGS += -Cdebug-assertions=$(if $(CONFIG_RUST_DEBUG_ASSERTIONS),y,n)
KBUILD_RUSTFLAGS += -Coverflow-checks=$(if $(CONFIG_RUST_OVERFLOW_CHECKS),y,n)
# Tell gcc to never replace conditional load with a non-conditional one
ifdef CONFIG_CC_IS_GCC
# gcc-10 renamed --param=allow-store-data-races=0 to
# -fno-allow-store-data-races.
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
endif
ifdef CONFIG_READABLE_ASM
# Disable optimizations that make assembler listings hard to read.
# reorder blocks reorders the control in the function
# ipa clone creates specialized cloned functions
# partial inlining inlines only parts of functions
KBUILD_CFLAGS += -fno-reorder-blocks -fno-ipa-cp-clone -fno-partial-inlining
endif
ifneq ($(CONFIG_FRAME_WARN),0)
KBUILD_CFLAGS += -Wframe-larger-than=$(CONFIG_FRAME_WARN)
endif
stackp-flags-y := -fno-stack-protector
stackp-flags-$(CONFIG_STACKPROTECTOR) := -fstack-protector
stackp-flags-$(CONFIG_STACKPROTECTOR_STRONG) := -fstack-protector-strong
KBUILD_CFLAGS += $(stackp-flags-y)
KBUILD_CFLAGS-$(CONFIG_WERROR) += -Werror
KBUILD_CFLAGS-$(CONFIG_CC_NO_ARRAY_BOUNDS) += -Wno-array-bounds
KBUILD_RUSTFLAGS-$(CONFIG_WERROR) += -Dwarnings
KBUILD_RUSTFLAGS += $(KBUILD_RUSTFLAGS-y)
ifdef CONFIG_CC_IS_CLANG
KBUILD_CPPFLAGS += -Qunused-arguments
# The kernel builds with '-std=gnu11' so use of GNU extensions is acceptable.
KBUILD_CFLAGS += -Wno-gnu
else
# gcc inanely warns about local variables called 'main'
KBUILD_CFLAGS += -Wno-main
endif
# These warnings generated too much noise in a regular build.
# Use make W=1 to enable them (see scripts/Makefile.extrawarn)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-but-set-variable)
KBUILD_CFLAGS += $(call cc-disable-warning, unused-const-variable)
# These result in bogus false positives
KBUILD_CFLAGS += $(call cc-disable-warning, dangling-pointer)
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
KBUILD_RUSTFLAGS += -Cforce-frame-pointers=y
else
# Some targets (ARM with Thumb2, for example), can't be built with frame
# pointers. For those, we don't have FUNCTION_TRACER automatically
# select FRAME_POINTER. However, FUNCTION_TRACER adds -pg, and this is
# incompatible with -fomit-frame-pointer with current GCC, so we don't use
# -fomit-frame-pointer with FUNCTION_TRACER.
# In the Rust target specification, "frame-pointer" is set explicitly
# to "may-omit".
ifndef CONFIG_FUNCTION_TRACER
KBUILD_CFLAGS += -fomit-frame-pointer
endif
endif
# Initialize all stack variables with a 0xAA pattern.
ifdef CONFIG_INIT_STACK_ALL_PATTERN
KBUILD_CFLAGS += -ftrivial-auto-var-init=pattern
endif
# Initialize all stack variables with a zero value.
ifdef CONFIG_INIT_STACK_ALL_ZERO
KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
ifdef CONFIG_CC_HAS_AUTO_VAR_INIT_ZERO_ENABLER
# https://github.com/llvm/llvm-project/issues/44842
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
endif
endif
# While VLAs have been removed, GCC produces unreachable stack probes
# for the randomize_kstack_offset feature. Disable it for all compilers.
KBUILD_CFLAGS += $(call cc-option, -fno-stack-clash-protection)
# Clear used registers at func exit (to reduce data lifetime and ROP gadgets).
ifdef CONFIG_ZERO_CALL_USED_REGS
KBUILD_CFLAGS += -fzero-call-used-regs=used-gpr
endif
ifdef CONFIG_FUNCTION_TRACER
ifdef CONFIG_FTRACE_MCOUNT_USE_CC
CC_FLAGS_FTRACE += -mrecord-mcount
ifdef CONFIG_HAVE_NOP_MCOUNT
ifeq ($(call cc-option-yn, -mnop-mcount),y)
CC_FLAGS_FTRACE += -mnop-mcount
CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT
endif
endif
endif
ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL
CC_FLAGS_USING += -DCC_USING_NOP_MCOUNT
endif
ifdef CONFIG_FTRACE_MCOUNT_USE_RECORDMCOUNT
ifdef CONFIG_HAVE_C_RECORDMCOUNT
BUILD_C_RECORDMCOUNT := y
export BUILD_C_RECORDMCOUNT
endif
endif
ifdef CONFIG_HAVE_FENTRY
# s390-linux-gnu-gcc did not support -mfentry until gcc-9.
ifeq ($(call cc-option-yn, -mfentry),y)
CC_FLAGS_FTRACE += -mfentry
CC_FLAGS_USING += -DCC_USING_FENTRY
endif
endif
export CC_FLAGS_FTRACE
KBUILD_CFLAGS += $(CC_FLAGS_FTRACE) $(CC_FLAGS_USING)
KBUILD_AFLAGS += $(CC_FLAGS_USING)
endif
# We trigger additional mismatches with less inlining
ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += -fno-inline-functions-called-once
endif
# `rustc`'s `-Zfunction-sections` applies to data too (as of 1.59.0).
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
KBUILD_CFLAGS_KERNEL += -ffunction-sections -fdata-sections
KBUILD_RUSTFLAGS_KERNEL += -Zfunction-sections=y
LDFLAGS_vmlinux += --gc-sections
endif
ifdef CONFIG_SHADOW_CALL_STACK
ifndef CONFIG_DYNAMIC_SCS
CC_FLAGS_SCS := -fsanitize=shadow-call-stack
KBUILD_CFLAGS += $(CC_FLAGS_SCS)
endif
export CC_FLAGS_SCS
endif
ifdef CONFIG_LTO_CLANG
ifdef CONFIG_LTO_CLANG_THIN
CC_FLAGS_LTO := -flto=thin -fsplit-lto-unit
KBUILD_LDFLAGS += --thinlto-cache-dir=$(extmod_prefix).thinlto-cache
else
CC_FLAGS_LTO := -flto
endif
ifeq ($(SRCARCH),x86)
# Workaround for compiler / linker bug
CC_FLAGS_LTO += -fvisibility=hidden
else
CC_FLAGS_LTO += -fvisibility=default
endif
# Limit inlining across translation units to reduce binary size
KBUILD_LDFLAGS += -mllvm -import-instr-limit=5
# Check for frame size exceeding threshold during prolog/epilog insertion
# when using lld < 13.0.0.
ifneq ($(CONFIG_FRAME_WARN),0)
ifeq ($(shell test $(CONFIG_LLD_VERSION) -lt 130000; echo $$?),0)
KBUILD_LDFLAGS += -plugin-opt=-warn-stack-size=$(CONFIG_FRAME_WARN)
endif
endif
endif
ifdef CONFIG_LTO
KBUILD_CFLAGS += -fno-lto $(CC_FLAGS_LTO)
KBUILD_AFLAGS += -fno-lto
export CC_FLAGS_LTO
endif
ifdef CONFIG_CFI_CLANG
CC_FLAGS_CFI := -fsanitize=kcfi
KBUILD_CFLAGS += $(CC_FLAGS_CFI)
export CC_FLAGS_CFI
endif
ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B
KBUILD_CFLAGS += -falign-functions=64
endif
# arch Makefile may override CC so keep this after arch Makefile is included
NOSTDINC_FLAGS += -nostdinc
# warn about C99 declaration after statement
KBUILD_CFLAGS += -Wdeclaration-after-statement
# Variable Length Arrays (VLAs) should not be used anywhere in the kernel
KBUILD_CFLAGS += -Wvla
# disable pointer signed / unsigned warnings in gcc 4.0
KBUILD_CFLAGS += -Wno-pointer-sign
# In order to make sure new function cast mismatches are not introduced
# in the kernel (to avoid tripping CFI checking), the kernel should be
# globally built with -Wcast-function-type.
KBUILD_CFLAGS += $(call cc-option, -Wcast-function-type)
# disable stringop warnings in gcc 8+
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-truncation)
# We'll want to enable this eventually, but it's not going away for 5.7 at least
KBUILD_CFLAGS += $(call cc-disable-warning, stringop-overflow)
# Another good warning that we'll want to enable eventually
KBUILD_CFLAGS += $(call cc-disable-warning, restrict)
# Enabled with W=2, disabled by default as noisy
ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += -Wno-maybe-uninitialized
endif
# The allocators already balk at large sizes, so silence the compiler
# warnings for bounds checks involving those possible values. While
# -Wno-alloc-size-larger-than would normally be used here, earlier versions
# of gcc (<9.1) weirdly don't handle the option correctly when _other_
# warnings are produced (?!). Using -Walloc-size-larger-than=SIZE_MAX
# doesn't work (as it is documented to), silently resolving to "0" prior to
# version 9.1 (and producing an error more recently). Numeric values larger
# than PTRDIFF_MAX also don't work prior to version 9.1, which are silently
# ignored, continuing to default to PTRDIFF_MAX. So, left with no other
# choice, we must perform a versioned check to disable this warning.
# https://lore.kernel.org/lkml/20210824115859.187f272f@canb.auug.org.au
KBUILD_CFLAGS-$(call gcc-min-version, 90100) += -Wno-alloc-size-larger-than
KBUILD_CFLAGS += $(KBUILD_CFLAGS-y) $(CONFIG_CC_IMPLICIT_FALLTHROUGH)
# disable invalid "can't wrap" optimizations for signed / pointers
KBUILD_CFLAGS += -fno-strict-overflow
# Make sure -fstack-check isn't enabled (like gentoo apparently did)
KBUILD_CFLAGS += -fno-stack-check
# conserve stack if available
ifdef CONFIG_CC_IS_GCC
KBUILD_CFLAGS += -fconserve-stack
endif
# Prohibit date/time macros, which would make the build non-deterministic
KBUILD_CFLAGS += -Werror=date-time
# enforce correct pointer usage
KBUILD_CFLAGS += $(call cc-option,-Werror=incompatible-pointer-types)
# Require designated initializers for all marked structures
KBUILD_CFLAGS += $(call cc-option,-Werror=designated-init)
# change __FILE__ to the relative path from the srctree
KBUILD_CPPFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
# include additional Makefiles when needed
include-y := scripts/Makefile.extrawarn
include-$(CONFIG_DEBUG_INFO) += scripts/Makefile.debug
include-$(CONFIG_KASAN) += scripts/Makefile.kasan
include-$(CONFIG_KCSAN) += scripts/Makefile.kcsan
include-$(CONFIG_KMSAN) += scripts/Makefile.kmsan
include-$(CONFIG_UBSAN) += scripts/Makefile.ubsan
include-$(CONFIG_KCOV) += scripts/Makefile.kcov
include-$(CONFIG_RANDSTRUCT) += scripts/Makefile.randstruct
include-$(CONFIG_GCC_PLUGINS) += scripts/Makefile.gcc-plugins
include $(addprefix $(srctree)/, $(include-y))
# scripts/Makefile.gcc-plugins is intentionally included last.
# Do not add $(call cc-option,...) below this line. When you build the kernel
# from the clean source tree, the GCC plugins do not exist at this point.
# Add user supplied CPPFLAGS, AFLAGS, CFLAGS and RUSTFLAGS as the last assignments
KBUILD_CPPFLAGS += $(KCPPFLAGS)
KBUILD_AFLAGS += $(KAFLAGS)
KBUILD_CFLAGS += $(KCFLAGS)
KBUILD_RUSTFLAGS += $(KRUSTFLAGS)
KBUILD_LDFLAGS_MODULE += --build-id=sha1
LDFLAGS_vmlinux += --build-id=sha1
KBUILD_LDFLAGS += -z noexecstack
ifeq ($(CONFIG_LD_IS_BFD),y)
KBUILD_LDFLAGS += $(call ld-option,--no-warn-rwx-segments)
endif
ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
LDFLAGS_vmlinux += -X
endif
ifeq ($(CONFIG_RELR),y)
LDFLAGS_vmlinux += --pack-dyn-relocs=relr --use-android-relr-tags
endif
# We never want expected sections to be placed heuristically by the
# linker. All sections should be explicitly named in the linker script.
ifdef CONFIG_LD_ORPHAN_WARN
LDFLAGS_vmlinux += --orphan-handling=warn
endif
# Align the bit size of userspace programs with the kernel
KBUILD_USERCFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CFLAGS))
KBUILD_USERLDFLAGS += $(filter -m32 -m64 --target=%, $(KBUILD_CFLAGS))
# make the checker run with the right architecture
CHECKFLAGS += --arch=$(ARCH)
# insure the checker run with the right endianness
CHECKFLAGS += $(if $(CONFIG_CPU_BIG_ENDIAN),-mbig-endian,-mlittle-endian)
# the checker needs the correct machine size
CHECKFLAGS += $(if $(CONFIG_64BIT),-m64,-m32)
# Default kernel image to build when no specific target is given.
# KBUILD_IMAGE may be overruled on the command line or
# set in the environment
# Also any assignments in arch/$(ARCH)/Makefile take precedence over
# this default value
export KBUILD_IMAGE ?= vmlinux
#
# INSTALL_PATH specifies where to place the updated kernel and system map
# images. Default is /boot, but you can set it to other values
export INSTALL_PATH ?= /boot
#
# INSTALL_DTBS_PATH specifies a prefix for relocations required by build roots.
# Like INSTALL_MOD_PATH, it isn't defined in the Makefile, but can be passed as
# an argument if needed. Otherwise it defaults to the kernel install path
#
export INSTALL_DTBS_PATH ?= $(INSTALL_PATH)/dtbs/$(KERNELRELEASE)
#
# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
# relocations required by build roots. This is not defined in the
# makefile but the argument can be passed to make if needed.
#
MODLIB = $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
export MODLIB
PHONY += prepare0
export extmod_prefix = $(if $(KBUILD_EXTMOD),$(KBUILD_EXTMOD)/)
export MODORDER := $(extmod_prefix)modules.order
export MODULES_NSDEPS := $(extmod_prefix)modules.nsdeps
# ---------------------------------------------------------------------------
# Kernel headers
PHONY += headers
#Default location for installed headers
ifeq ($(KBUILD_EXTMOD),)
PHONY += archheaders archscripts
hdr-inst := -f $(srctree)/scripts/Makefile.headersinst obj
headers: $(version_h) scripts_unifdef uapi-asm-generic archheaders archscripts
else
hdr-prefix = $(KBUILD_EXTMOD)/
hdr-inst := -f $(srctree)/scripts/Makefile.headersinst dst=$(KBUILD_EXTMOD)/usr/include objtree=$(objtree)/$(KBUILD_EXTMOD) obj
endif
export INSTALL_HDR_PATH = $(objtree)/$(hdr-prefix)usr
quiet_cmd_headers_install = INSTALL $(INSTALL_HDR_PATH)/include
cmd_headers_install = \
mkdir -p $(INSTALL_HDR_PATH); \
rsync -mrl --include='*/' --include='*\.h' --exclude='*' \
$(hdr-prefix)usr/include $(INSTALL_HDR_PATH);
PHONY += headers_install
headers_install: headers
$(call cmd,headers_install)
headers:
ifeq ($(KBUILD_EXTMOD),)
$(if $(filter um, $(SRCARCH)), $(error Headers not exportable for UML))
endif
$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)include/uapi
$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)arch/$(SRCARCH)/include/uapi
# ---------------------------------------------------------------------------
# Devicetree files
ifeq ($(KBUILD_EXTMOD),)
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),)
dtstree := arch/$(SRCARCH)/boot/dts
endif
else # KBUILD_EXTMOD
# Devicetree source should live in $(KBUILD_EXTMOD)/arch/$(SRCARCH)/boot/dts/
# But it may live inside some other folder relative to KBUILD_EXTMOD, as specified
# by KBUILD_EXTMOD_DTS
KBUILD_EXTMOD_DTS = arch/$(SRCARCH)/boot/dts
ifneq ($(wildcard $(KBUILD_EXTMOD)/$(KBUILD_EXTMOD_DTS)/ $(srctree)/$(KBUILD_EXTMOD)/$(KBUILD_EXTMOD_DTS)/),)
dtstree := $(KBUILD_EXTMOD)/$(KBUILD_EXTMOD_DTS)
endif
endif
ifneq ($(dtstree),)
%.dtb: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
PHONY += dtbs dtbs_install dtbs_check
dtbs: include/config/kernel.release scripts_dtc
$(Q)$(MAKE) $(build)=$(dtstree)
ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
export CHECK_DTBS=y
dtbs: dt_binding_check
endif
dtbs_check: dtbs
dtbs_install:
$(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH)
ifdef CONFIG_OF_EARLY_FLATTREE
all: dtbs
endif
endif
PHONY += scripts_dtc
scripts_dtc: scripts_basic
$(Q)$(MAKE) $(build)=scripts/dtc
ifneq ($(filter dt_binding_check, $(MAKECMDGOALS)),)
export CHECK_DT_BINDING=y
endif
PHONY += dt_binding_check
dt_binding_check: scripts_dtc
$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings
ifeq ($(KBUILD_EXTMOD),)
build-dir := .
clean-dirs := $(sort . Documentation \
$(patsubst %/,%,$(filter %/, $(core-) \
$(drivers-) $(libs-))))
export ARCH_CORE := $(core-y)
export ARCH_LIB := $(filter %/, $(libs-y))
export ARCH_DRIVERS := $(drivers-y) $(drivers-m)
# Externally visible symbols (used by link-vmlinux.sh)
KBUILD_VMLINUX_OBJS := ./built-in.a
ifdef CONFIG_MODULES
KBUILD_VMLINUX_OBJS += $(patsubst %/, %/lib.a, $(filter %/, $(libs-y)))
KBUILD_VMLINUX_LIBS := $(filter-out %/, $(libs-y))
else
KBUILD_VMLINUX_LIBS := $(patsubst %/,%/lib.a, $(libs-y))
endif
export KBUILD_VMLINUX_LIBS
export KBUILD_LDS := arch/$(SRCARCH)/kernel/vmlinux.lds
# Recurse until adjust_autoksyms.sh is satisfied
PHONY += autoksyms_recursive
ifdef CONFIG_TRIM_UNUSED_KSYMS
# For the kernel to actually contain only the needed exported symbols,
# we have to build modules as well to determine what those symbols are.
# (this can be evaluated only once include/config/auto.conf has been included)
KBUILD_MODULES := 1
autoksyms_recursive: $(build-dir) modules.order
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
"$(MAKE) -f $(srctree)/Makefile autoksyms_recursive"
endif
autoksyms_h := $(if $(CONFIG_TRIM_UNUSED_KSYMS), include/generated/autoksyms.h)
quiet_cmd_autoksyms_h = GEN $@
cmd_autoksyms_h = mkdir -p $(dir $@); \
$(CONFIG_SHELL) $(srctree)/scripts/gen_autoksyms.sh $@
$(autoksyms_h):
$(call cmd,autoksyms_h)
# '$(AR) mPi' needs 'T' to workaround the bug of llvm-ar <= 14
quiet_cmd_ar_vmlinux.a = AR $@
cmd_ar_vmlinux.a = \
rm -f $@; \
$(AR) cDPrST $@ $(KBUILD_VMLINUX_OBJS); \
$(AR) mPiT $$($(AR) t $@ | sed -n 1p) $@ $$($(AR) t $@ | grep -F -f $(srctree)/scripts/head-object-list.txt)
targets += vmlinux.a
vmlinux.a: $(KBUILD_VMLINUX_OBJS) scripts/head-object-list.txt autoksyms_recursive FORCE
$(call if_changed,ar_vmlinux.a)
ifndef KBUILD_MIXED_TREE
PHONY += vmlinux_o
vmlinux_o: vmlinux.a $(KBUILD_VMLINUX_LIBS)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.vmlinux_o
vmlinux.o modules.builtin.modinfo modules.builtin: vmlinux_o
@:
PHONY += vmlinux
# LDFLAGS_vmlinux in the top Makefile defines linker flags for the top vmlinux,
# not for decompressors. LDFLAGS_vmlinux in arch/*/boot/compressed/Makefile is
# unrelated; the decompressors just happen to have the same base name,
# arch/*/boot/compressed/vmlinux.
# Export LDFLAGS_vmlinux only to scripts/Makefile.vmlinux.
#
# _LDFLAGS_vmlinux is a workaround for the 'private export' bug:
# https://savannah.gnu.org/bugs/?61463
# For Make > 4.4, the following simple code will work:
# vmlinux: private export LDFLAGS_vmlinux := $(LDFLAGS_vmlinux)
vmlinux: private _LDFLAGS_vmlinux := $(LDFLAGS_vmlinux)
vmlinux: export LDFLAGS_vmlinux = $(_LDFLAGS_vmlinux)
vmlinux: vmlinux.o $(KBUILD_LDS) modpost
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.vmlinux
endif
# The actual objects are generated when descending,
# make sure no implicit rule kicks in
$(sort $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)): . ;
filechk_kernel.release = \
echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
$(srctree) $(BRANCH) $(KMI_GENERATION))"
# Store (new) KERNELRELEASE string in include/config/kernel.release
include/config/kernel.release: FORCE
$(call filechk,kernel.release)
# Additional helpers built in scripts/
# Carefully list dependencies so we do not try to build scripts twice
# in parallel
PHONY += scripts
scripts: scripts_basic scripts_dtc
$(Q)$(MAKE) $(build)=$(@)
# Things we need to do before we recursively start building the kernel
# or the modules are listed in "prepare".
# A multi level approach is used. prepareN is processed before prepareN-1.
# archprepare is used in arch Makefiles and when processed asm symlink,
# version.h and scripts_basic is processed / created.
PHONY += prepare archprepare
archprepare: outputmakefile archheaders archscripts scripts include/config/kernel.release \
asm-generic $(version_h) $(autoksyms_h) include/generated/utsrelease.h \
include/generated/compile.h include/generated/autoconf.h remove-stale-files
prepare0: archprepare
$(Q)$(MAKE) $(build)=scripts/mod
$(Q)$(MAKE) $(build)=. prepare
# All the preparing..
prepare: prepare0
ifdef CONFIG_RUST
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh
$(Q)$(MAKE) $(build)=rust
endif
PHONY += remove-stale-files
remove-stale-files:
$(Q)$(srctree)/scripts/remove-stale-files
# Support for using generic headers in asm-generic
asm-generic := -f $(srctree)/scripts/Makefile.asm-generic obj
PHONY += asm-generic uapi-asm-generic
asm-generic: uapi-asm-generic
$(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/asm \
generic=include/asm-generic
uapi-asm-generic:
$(Q)$(MAKE) $(asm-generic)=arch/$(SRCARCH)/include/generated/uapi/asm \
generic=include/uapi/asm-generic
# Generate some files
# ---------------------------------------------------------------------------
# KERNELRELEASE can change from a few different places, meaning version.h
# needs to be updated, so this check is forced on all builds
uts_len := 64
define filechk_utsrelease.h
if [ `echo -n "$(KERNELRELEASE)" | wc -c ` -gt $(uts_len) ]; then \
echo '"$(KERNELRELEASE)" exceeds $(uts_len) characters' >&2; \
exit 1; \
fi; \
echo \#define UTS_RELEASE \"$(KERNELRELEASE)\"
endef
define filechk_version.h
if [ $(SUBLEVEL) -gt 255 ]; then \
echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + 255); \
else \
echo \#define LINUX_VERSION_CODE $(shell \
expr $(VERSION) \* 65536 + $(PATCHLEVEL) \* 256 + $(SUBLEVEL)); \
fi; \
echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + \
((c) > 255 ? 255 : (c)))'; \
echo \#define LINUX_VERSION_MAJOR $(VERSION); \
echo \#define LINUX_VERSION_PATCHLEVEL $(PATCHLEVEL); \
echo \#define LINUX_VERSION_SUBLEVEL $(SUBLEVEL)
endef
$(version_h): PATCHLEVEL := $(or $(PATCHLEVEL), 0)
$(version_h): SUBLEVEL := $(or $(SUBLEVEL), 0)
$(version_h): FORCE
$(call filechk,version.h)
include/generated/utsrelease.h: include/config/kernel.release FORCE
$(call filechk,utsrelease.h)
filechk_compile.h = $(srctree)/scripts/mkcompile_h \
"$(UTS_MACHINE)" "$(CONFIG_CC_VERSION_TEXT)" "$(LD)"
include/generated/compile.h: FORCE
$(call filechk,compile.h)
PHONY += headerdep
headerdep:
$(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
$(srctree)/scripts/headerdep.pl -I$(srctree)/include
ifdef CONFIG_HEADERS_INSTALL
prepare: headers
endif
PHONY += scripts_unifdef
scripts_unifdef: scripts_basic
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
# ---------------------------------------------------------------------------
# Install
# Many distributions have the custom install script, /sbin/installkernel.
# If DKMS is installed, 'make install' will eventually recurse back
# to this Makefile to build and install external modules.
# Cancel sub_make_done so that options such as M=, V=, etc. are parsed.
quiet_cmd_install = INSTALL $(INSTALL_PATH)
cmd_install = unset sub_make_done; $(srctree)/scripts/install.sh
# ---------------------------------------------------------------------------
# Tools
ifdef CONFIG_OBJTOOL
prepare: tools/objtool
endif
ifdef CONFIG_BPF
ifdef CONFIG_DEBUG_INFO_BTF
prepare: tools/bpf/resolve_btfids
endif
endif
PHONY += resolve_btfids_clean
resolve_btfids_O = $(abspath $(objtree))/tools/bpf/resolve_btfids
# tools/bpf/resolve_btfids directory might not exist
# in output directory, skip its clean in that case
resolve_btfids_clean:
ifneq ($(wildcard $(resolve_btfids_O)),)
$(Q)$(MAKE) -sC $(srctree)/tools/bpf/resolve_btfids O=$(resolve_btfids_O) clean
endif
# Clear a bunch of variables before executing the submake
ifeq ($(quiet),silent_)
tools_silent=s
endif
tools/: FORCE
$(Q)mkdir -p $(objtree)/tools
$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/
tools/%: FORCE
$(Q)mkdir -p $(objtree)/tools
$(Q)$(MAKE) LDFLAGS= MAKEFLAGS="$(tools_silent) $(filter --j% -j,$(MAKEFLAGS))" O=$(abspath $(objtree)) subdir=tools -C $(srctree)/tools/ $*
# ---------------------------------------------------------------------------
# Kernel selftest
PHONY += kselftest
kselftest: headers
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
kselftest-%: headers FORCE
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
PHONY += kselftest-merge
kselftest-merge:
$(if $(wildcard $(objtree)/.config),, $(error No .config exists, config your kernel first!))
$(Q)find $(srctree)/tools/testing/selftests -name config | \
xargs $(srctree)/scripts/kconfig/merge_config.sh -m $(objtree)/.config
$(Q)$(MAKE) -f $(srctree)/Makefile olddefconfig
# ---------------------------------------------------------------------------
# Devicetree files
ifneq ($(wildcard $(srctree)/arch/$(SRCARCH)/boot/dts/),)
# ANDROID: allow this to be overridden by the build environment. This allows
# one to compile a device tree that is located out-of-tree.
dtstree ?= arch/$(SRCARCH)/boot/dts
endif
ifneq ($(dtstree),)
%.dtb: dtbs_prepare
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
%.dtbo: dtbs_prepare
$(Q)$(MAKE) $(build)=$(dtstree) $(dtstree)/$@
PHONY += dtbs dtbs_prepare dtbs_install dtbs_check
dtbs: dtbs_prepare
$(Q)$(MAKE) $(build)=$(dtstree)
# include/config/kernel.release is actually needed when installing DTBs because
# INSTALL_DTBS_PATH contains $(KERNELRELEASE). However, we do not want to make
# dtbs_install depend on it as dtbs_install may run as root.
dtbs_prepare: include/config/kernel.release scripts_dtc
ifneq ($(filter dtbs_check, $(MAKECMDGOALS)),)
export CHECK_DTBS=y
dtbs: dt_binding_check
endif
dtbs_check: dtbs
dtbs_install:
$(Q)$(MAKE) $(dtbinst)=$(dtstree) dst=$(INSTALL_DTBS_PATH)
ifdef CONFIG_OF_EARLY_FLATTREE
all: dtbs
endif
endif
PHONY += scripts_dtc
scripts_dtc: scripts_basic
$(Q)$(MAKE) $(build)=scripts/dtc
ifneq ($(filter dt_binding_check, $(MAKECMDGOALS)),)
export CHECK_DT_BINDING=y
endif
PHONY += dt_binding_check
dt_binding_check: scripts_dtc
$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings
PHONY += dt_compatible_check
dt_compatible_check: dt_binding_check
$(Q)$(MAKE) $(build)=Documentation/devicetree/bindings $@
# ---------------------------------------------------------------------------
# Modules
ifdef CONFIG_MODULES
# By default, build modules as well
all: modules
# When we're building modules with modversions, we need to consider
# the built-in objects during the descend as well, in order to
# make sure the checksums are up to date before we record them.
ifdef CONFIG_MODVERSIONS
KBUILD_BUILTIN := 1
endif
# Build modules
#
# *.ko are usually independent of vmlinux, but CONFIG_DEBUG_INFOBTF_MODULES
# is an exception.
ifdef CONFIG_DEBUG_INFO_BTF_MODULES
KBUILD_BUILTIN := 1
modules: $(mixed-build-prefix)vmlinux
endif
modules: modules_prepare
# Target to prepare building external modules
modules_prepare: prepare
$(Q)$(MAKE) $(build)=scripts scripts/module.lds
export modules_sign_only :=
ifeq ($(CONFIG_MODULE_SIG),y)
PHONY += modules_sign
modules_sign: modules_install
@:
# modules_sign is a subset of modules_install.
# 'make modules_install modules_sign' is equivalent to 'make modules_install'.
ifeq ($(filter modules_install,$(MAKECMDGOALS)),)
modules_sign_only := y
endif
endif
modinst_pre :=
ifneq ($(filter modules_install,$(MAKECMDGOALS)),)
modinst_pre := __modinst_pre
endif
modules_install: $(modinst_pre)
PHONY += __modinst_pre
__modinst_pre:
@rm -rf $(MODLIB)/kernel
@rm -f $(MODLIB)/source
@mkdir -p $(MODLIB)/kernel
@ln -s $(abspath $(srctree)) $(MODLIB)/source
@if [ ! $(objtree) -ef $(MODLIB)/build ]; then \
rm -f $(MODLIB)/build ; \
ln -s $(CURDIR) $(MODLIB)/build ; \
fi
@sed 's:^:kernel/:' modules.order > $(MODLIB)/modules.order
@cp -f $(mixed-build-prefix)modules.builtin $(MODLIB)/
@cp -f $(or $(mixed-build-prefix),$(objtree)/)modules.builtin.modinfo $(MODLIB)/
endif # CONFIG_MODULES
###
# Cleaning is done on three levels.
# make clean Delete most generated files
# Leave enough to build external modules
# make mrproper Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like
# Directories & files removed with 'make clean'
CLEAN_FILES += include/ksym vmlinux.symvers modules-only.symvers \
modules.builtin modules.builtin.modinfo modules.nsdeps \
compile_commands.json .thinlto-cache rust/test rust/doc \
.vmlinux.objs .vmlinux.export.c
# Directories & files removed with 'make mrproper'
MRPROPER_FILES += include/config include/generated \
arch/$(SRCARCH)/include/generated .objdiff \
debian snap tar-install \
.config .config.old .version \
Module.symvers \
certs/signing_key.pem \
certs/x509.genkey \
vmlinux-gdb.py \
*.spec \
rust/target.json rust/libmacros.so
# clean - Delete most, but leave enough to build external modules
#
clean: rm-files := $(CLEAN_FILES)
PHONY += archclean vmlinuxclean
vmlinuxclean:
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/link-vmlinux.sh clean
$(Q)$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) clean)
clean: archclean vmlinuxclean resolve_btfids_clean
# mrproper - Delete all generated files, including .config
#
mrproper: rm-files := $(wildcard $(MRPROPER_FILES))
mrproper-dirs := $(addprefix _mrproper_,scripts)
PHONY += $(mrproper-dirs) mrproper
$(mrproper-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _mrproper_%,%,$@)
mrproper: clean $(mrproper-dirs)
$(call cmd,rmfiles)
@find . $(RCS_FIND_IGNORE) \
\( -name '*.rmeta' \) \
-type f -print | xargs rm -f
# distclean
#
PHONY += distclean
distclean: mrproper
@find . $(RCS_FIND_IGNORE) \
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-o -name '*.bak' -o -name '#*#' -o -name '*%' \
-o -name 'core' -o -name tags -o -name TAGS -o -name 'cscope*' \
-o -name GPATH -o -name GRTAGS -o -name GSYMS -o -name GTAGS \) \
-type f -print | xargs rm -f
# Packaging of the kernel to various formats
# ---------------------------------------------------------------------------
%src-pkg: FORCE
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.package $@
%pkg: include/config/kernel.release FORCE
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.package $@
# Brief documentation of the typical targets used
# ---------------------------------------------------------------------------
boards := $(wildcard $(srctree)/arch/$(SRCARCH)/configs/*_defconfig)
boards := $(sort $(notdir $(boards)))
board-dirs := $(dir $(wildcard $(srctree)/arch/$(SRCARCH)/configs/*/*_defconfig))
board-dirs := $(sort $(notdir $(board-dirs:/=)))
PHONY += help
help:
@echo 'Cleaning targets:'
@echo ' clean - Remove most generated files but keep the config and'
@echo ' enough build support to build external modules'
@echo ' mrproper - Remove all generated files + config + various backup files'
@echo ' distclean - mrproper + remove editor backup and patch files'
@echo ''
@echo 'Configuration targets:'
@$(MAKE) -f $(srctree)/scripts/kconfig/Makefile help
@echo ''
@echo 'Other generic targets:'
@echo ' all - Build all targets marked with [*]'
@echo '* vmlinux - Build the bare kernel'
@echo '* modules - Build all modules'
@echo ' modules_install - Install all modules to INSTALL_MOD_PATH (default: /)'
@echo ' dir/ - Build all files in dir and below'
@echo ' dir/file.[ois] - Build specified target only'
@echo ' dir/file.ll - Build the LLVM assembly file'
@echo ' (requires compiler support for LLVM assembly generation)'
@echo ' dir/file.lst - Build specified mixed source/assembly target only'
@echo ' (requires a recent binutils and recent build (System.map))'
@echo ' dir/file.ko - Build module including final link'
@echo ' modules_prepare - Set up for building external modules'
@echo ' tags/TAGS - Generate tags file for editors'
@echo ' cscope - Generate cscope index'
@echo ' gtags - Generate GNU GLOBAL index'
@echo ' kernelrelease - Output the release version string (use with make -s)'
@echo ' kernelversion - Output the version stored in Makefile (use with make -s)'
@echo ' image_name - Output the image name (use with make -s)'
@echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'; \
echo ' (default: $(INSTALL_HDR_PATH))'; \
echo ''
@echo 'Static analysers:'
@echo ' checkstack - Generate a list of stack hogs'
@echo ' versioncheck - Sanity check on version.h usage'
@echo ' includecheck - Check for duplicate included header files'
@echo ' export_report - List the usages of all exported symbols'
@echo ' headerdep - Detect inclusion cycles in headers'
@echo ' coccicheck - Check with Coccinelle'
@echo ' clang-analyzer - Check with clang static analyzer'
@echo ' clang-tidy - Check with clang-tidy'
@echo ''
@echo 'Tools:'
@echo ' nsdeps - Generate missing symbol namespace dependencies'
@echo ''
@echo 'Kernel selftest:'
@echo ' kselftest - Build and run kernel selftest'
@echo ' Build, install, and boot kernel before'
@echo ' running kselftest on it'
@echo ' Run as root for full coverage'
@echo ' kselftest-all - Build kernel selftest'
@echo ' kselftest-install - Build and install kernel selftest'
@echo ' kselftest-clean - Remove all generated kselftest files'
@echo ' kselftest-merge - Merge all the config dependencies of'
@echo ' kselftest to existing .config.'
@echo ''
@echo 'Rust targets:'
@echo ' rustavailable - Checks whether the Rust toolchain is'
@echo ' available and, if not, explains why.'
@echo ' rustfmt - Reformat all the Rust code in the kernel'
@echo ' rustfmtcheck - Checks if all the Rust code in the kernel'
@echo ' is formatted, printing a diff otherwise.'
@echo ' rustdoc - Generate Rust documentation'
@echo ' (requires kernel .config)'
@echo ' rusttest - Runs the Rust tests'
@echo ' (requires kernel .config; downloads external repos)'
@echo ' rust-analyzer - Generate rust-project.json rust-analyzer support file'
@echo ' (requires kernel .config)'
@echo ' dir/file.[os] - Build specified target only'
@echo ' dir/file.rsi - Build macro expanded source, similar to C preprocessing.'
@echo ' Run with RUSTFMT=n to skip reformatting if needed.'
@echo ' The output is not intended to be compilable.'
@echo ' dir/file.ll - Build the LLVM assembly file'
@echo ''
@$(if $(dtstree), \
echo 'Devicetree:'; \
echo '* dtbs - Build device tree blobs for enabled boards'; \
echo ' dtbs_install - Install dtbs to $(INSTALL_DTBS_PATH)'; \
echo ' dt_binding_check - Validate device tree binding documents'; \
echo ' dtbs_check - Validate device tree source files';\
echo '')
@echo 'Userspace tools targets:'
@echo ' use "make tools/help"'
@echo ' or "cd tools; make help"'
@echo ''
@echo 'Kernel packaging:'
@$(MAKE) -f $(srctree)/scripts/Makefile.package help
@echo ''
@echo 'Documentation targets:'
@$(MAKE) -f $(srctree)/Documentation/Makefile dochelp
@echo ''
@echo 'Architecture specific targets ($(SRCARCH)):'
@$(or $(archhelp),\
echo ' No architecture specific help defined for $(SRCARCH)')
@echo ''
@$(if $(boards), \
$(foreach b, $(boards), \
printf " %-27s - Build for %s\\n" $(b) $(subst _defconfig,,$(b));) \
echo '')
@$(if $(board-dirs), \
$(foreach b, $(board-dirs), \
printf " %-16s - Show %s-specific targets\\n" help-$(b) $(b);) \
printf " %-16s - Show all of the above\\n" help-boards; \
echo '')
@echo ' make V=0|1 [targets] 0 => quiet build (default), 1 => verbose build'
@echo ' make V=2 [targets] 2 => give reason for rebuild of target'
@echo ' make O=dir [targets] Locate all output files in "dir", including .config'
@echo ' make C=1 [targets] Check re-compiled c source with $$CHECK'
@echo ' (sparse by default)'
@echo ' make C=2 [targets] Force check of all c source with $$CHECK'
@echo ' make RECORDMCOUNT_WARN=1 [targets] Warn about ignored mcount sections'
@echo ' make W=n [targets] Enable extra build checks, n=1,2,3 where'
@echo ' 1: warnings which may be relevant and do not occur too often'
@echo ' 2: warnings which occur quite often but may still be relevant'
@echo ' 3: more obscure warnings, can most likely be ignored'
@echo ' e: warnings are being treated as errors'
@echo ' Multiple levels can be combined with W=12 or W=123'
@echo ''
@echo 'Execute "make" or "make all" to build all targets marked with [*] '
@echo 'For further info see the ./README file'
help-board-dirs := $(addprefix help-,$(board-dirs))
help-boards: $(help-board-dirs)
boards-per-dir = $(sort $(notdir $(wildcard $(srctree)/arch/$(SRCARCH)/configs/$*/*_defconfig)))
$(help-board-dirs): help-%:
@echo 'Architecture specific targets ($(SRCARCH) $*):'
@$(if $(boards-per-dir), \
$(foreach b, $(boards-per-dir), \
printf " %-24s - Build for %s\\n" $*/$(b) $(subst _defconfig,,$(b));) \
echo '')
# Documentation targets
# ---------------------------------------------------------------------------
DOC_TARGETS := xmldocs latexdocs pdfdocs htmldocs epubdocs cleandocs \
linkcheckdocs dochelp refcheckdocs
PHONY += $(DOC_TARGETS)
$(DOC_TARGETS):
$(Q)$(MAKE) $(build)=Documentation $@
# Rust targets
# ---------------------------------------------------------------------------
# "Is Rust available?" target
PHONY += rustavailable
rustavailable:
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/rust_is_available.sh && echo "Rust is available!"
# Documentation target
#
# Using the singular to avoid running afoul of `no-dot-config-targets`.
PHONY += rustdoc
rustdoc: prepare
$(Q)$(MAKE) $(build)=rust $@
# Testing target
PHONY += rusttest
rusttest: prepare
$(Q)$(MAKE) $(build)=rust $@
# Formatting targets
PHONY += rustfmt rustfmtcheck
# We skip `rust/alloc` since we want to minimize the diff w.r.t. upstream.
#
# We match using absolute paths since `find` does not resolve them
# when matching, which is a problem when e.g. `srctree` is `..`.
# We `grep` afterwards in order to remove the directory entry itself.
rustfmt:
$(Q)find $(abs_srctree) -type f -name '*.rs' \
-o -path $(abs_srctree)/rust/alloc -prune \
-o -path $(abs_objtree)/rust/test -prune \
| grep -Fv $(abs_srctree)/rust/alloc \
| grep -Fv $(abs_objtree)/rust/test \
| grep -Fv generated \
| xargs $(RUSTFMT) $(rustfmt_flags)
rustfmtcheck: rustfmt_flags = --check
rustfmtcheck: rustfmt
# IDE support targets
PHONY += rust-analyzer
rust-analyzer:
$(Q)$(MAKE) $(build)=rust $@
# Misc
# ---------------------------------------------------------------------------
PHONY += scripts_gdb
scripts_gdb: prepare0
$(Q)$(MAKE) $(build)=scripts/gdb
$(Q)ln -fsn $(abspath $(srctree)/scripts/gdb/vmlinux-gdb.py)
ifdef CONFIG_GDB_SCRIPTS
all: scripts_gdb
endif
else # KBUILD_EXTMOD
###
# External module support.
# When building external modules the kernel used as basis is considered
# read-only, and no consistency checks are made and the make
# system is not used on the basis kernel. If updates are required
# in the basis kernel ordinary make commands (without M=...) must be used.
# We are always building only modules.
KBUILD_BUILTIN :=
KBUILD_MODULES := 1
build-dir := $(KBUILD_EXTMOD)
compile_commands.json: $(extmod_prefix)compile_commands.json
PHONY += compile_commands.json
clean-dirs := $(KBUILD_EXTMOD)
clean: rm-files := $(KBUILD_EXTMOD)/Module.symvers $(KBUILD_EXTMOD)/modules.nsdeps \
$(KBUILD_EXTMOD)/compile_commands.json $(KBUILD_EXTMOD)/.thinlto-cache
PHONY += prepare
# now expand this into a simple variable to reduce the cost of shell evaluations
prepare: CC_VERSION_TEXT := $(CC_VERSION_TEXT)
prepare:
@if [ "$(CC_VERSION_TEXT)" != "$(CONFIG_CC_VERSION_TEXT)" ]; then \
echo >&2 "warning: the compiler differs from the one used to build the kernel"; \
echo >&2 " The kernel was built by: $(CONFIG_CC_VERSION_TEXT)"; \
echo >&2 " You are using: $(CC_VERSION_TEXT)"; \
fi
PHONY += help
help:
@echo ' Building external modules.'
@echo ' Syntax: make -C path/to/kernel/src M=$$PWD target'
@echo ''
@echo ' modules - default target, build the module(s)'
@echo ' modules_install - install the module'
@echo ' headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH'
@echo ' (default: $(abspath $(INSTALL_HDR_PATH)))'
@echo ' clean - remove generated files in module directory only'
@echo ''
endif # KBUILD_EXTMOD
# ---------------------------------------------------------------------------
# Modules
PHONY += modules modules_install modules_prepare
ifdef CONFIG_MODULES
$(MODORDER): $(build-dir)
@:
# KBUILD_MODPOST_NOFINAL can be set to skip the final link of modules.
# This is solely useful to speed up test compiles.
modules: modpost
ifneq ($(KBUILD_MODPOST_NOFINAL),1)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modfinal
endif
PHONY += modules_check
modules_check: $(MODORDER)
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh $<
quiet_cmd_depmod = DEPMOD $(MODLIB)
cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
$(KERNELRELEASE) $(mixed-build-prefix)
modules_install:
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
ifndef modules_sign_only
$(call cmd,depmod)
endif
else # CONFIG_MODULES
# Modules not configured
# ---------------------------------------------------------------------------
modules modules_install:
@echo >&2 '***'
@echo >&2 '*** The present kernel configuration has modules disabled.'
@echo >&2 '*** To use the module feature, please run "make menuconfig" etc.'
@echo >&2 '*** to enable CONFIG_MODULES.'
@echo >&2 '***'
@exit 1
KBUILD_MODULES :=
endif # CONFIG_MODULES
PHONY += modpost
modpost: $(if $(single-build),, $(if $(KBUILD_MIXED_TREE),,$(if $(KBUILD_BUILTIN), vmlinux.o))) \
$(if $(KBUILD_MODULES), modules_check)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
# Single targets
# ---------------------------------------------------------------------------
# To build individual files in subdirectories, you can do like this:
#
# make foo/bar/baz.s
#
# The supported suffixes for single-target are listed in 'single-targets'
#
# To build only under specific subdirectories, you can do like this:
#
# make foo/bar/baz/
ifdef single-build
# .ko is special because modpost is needed
single-ko := $(sort $(filter %.ko, $(MAKECMDGOALS)))
single-no-ko := $(filter-out $(single-ko), $(MAKECMDGOALS)) \
$(foreach x, o mod, $(patsubst %.ko, %.$x, $(single-ko)))
$(single-ko): single_modules
@:
$(single-no-ko): $(build-dir)
@:
# Remove MODORDER when done because it is not the real one.
PHONY += single_modules
single_modules: $(single-no-ko) modules_prepare
$(Q){ $(foreach m, $(single-ko), echo $(extmod_prefix)$m;) } > $(MODORDER)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
ifneq ($(KBUILD_MODPOST_NOFINAL),1)
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modfinal
endif
$(Q)rm -f $(MODORDER)
single-goals := $(addprefix $(build-dir)/, $(single-no-ko))
KBUILD_MODULES := 1
endif
# Preset locale variables to speed up the build process. Limit locale
# tweaks to this spot to avoid wrong language settings when running
# make menuconfig etc.
# Error messages still appears in the original language
PHONY += $(build-dir)
$(build-dir): prepare
$(Q)$(MAKE) $(build)=$@ $(if $(KBUILD_MIXED_TREE),,need-builtin=1) need-modorder=1 $(single-goals)
clean-dirs := $(addprefix _clean_, $(clean-dirs))
PHONY += $(clean-dirs) clean
$(clean-dirs):
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
clean: $(clean-dirs)
$(call cmd,rmfiles)
@find $(or $(KBUILD_EXTMOD), .) \
$(if $(filter-out arch/$(SRCARCH)/boot/dts, $(dtstree)), $(dtstree)) \
$(RCS_FIND_IGNORE) \
\( -name '*.[aios]' -o -name '*.rsi' -o -name '*.ko' -o -name '.*.cmd' \
-o -name '*.ko.*' \
-o -name '*.dtb' -o -name '*.dtbo' -o -name '*.dtb.S' -o -name '*.dt.yaml' \
-o -name '*.dwo' -o -name '*.lst' \
-o -name '*.su' -o -name '*.mod' -o -name '*.usyms' \
-o -name '.*.d' -o -name '.*.tmp' -o -name '*.mod.c' \
-o -name '*.lex.c' -o -name '*.tab.[ch]' \
-o -name '*.asn1.[ch]' \
-o -name '*.symtypes' -o -name 'modules.order' \
-o -name '.tmp_*' \
-o -name '*.c.[012]*.*' \
-o -name '*.ll' \
-o -name '*.gcno' \
-o -name '*.*.symversions' \) -type f -print | xargs rm -f
# Generate tags for editors
# ---------------------------------------------------------------------------
quiet_cmd_tags = GEN $@
cmd_tags = $(BASH) $(srctree)/scripts/tags.sh $@
tags TAGS cscope gtags: FORCE
$(call cmd,tags)
# Script to generate missing namespace dependencies
# ---------------------------------------------------------------------------
PHONY += nsdeps
nsdeps: export KBUILD_NSDEPS=1
nsdeps: modules
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/nsdeps
# Clang Tooling
# ---------------------------------------------------------------------------
quiet_cmd_gen_compile_commands = GEN $@
cmd_gen_compile_commands = $(PYTHON3) $< -a $(AR) -o $@ $(filter-out $<, $(real-prereqs))
$(extmod_prefix)compile_commands.json: scripts/clang-tools/gen_compile_commands.py \
$(if $(KBUILD_EXTMOD)$(KBUILD_MIXED_TREE),, vmlinux.a $(KBUILD_VMLINUX_LIBS)) \
$(if $(CONFIG_MODULES), $(MODORDER)) FORCE
$(call if_changed,gen_compile_commands)
targets += $(extmod_prefix)compile_commands.json
PHONY += clang-tidy clang-analyzer
ifdef CONFIG_CC_IS_CLANG
quiet_cmd_clang_tools = CHECK $<
cmd_clang_tools = $(PYTHON3) $(srctree)/scripts/clang-tools/run-clang-tools.py $@ $<
clang-tidy clang-analyzer: $(extmod_prefix)compile_commands.json
$(call cmd,clang_tools)
else
clang-tidy clang-analyzer:
@echo "$@ requires CC=clang" >&2
@false
endif
# Scripts to check various things for consistency
# ---------------------------------------------------------------------------
PHONY += includecheck versioncheck coccicheck export_report
includecheck:
find $(srctree)/* $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort \
| xargs $(PERL) -w $(srctree)/scripts/checkincludes.pl
versioncheck:
find $(srctree)/* $(RCS_FIND_IGNORE) \
-name '*.[hcS]' -type f -print | sort \
| xargs $(PERL) -w $(srctree)/scripts/checkversion.pl
coccicheck:
$(Q)$(BASH) $(srctree)/scripts/$@
export_report:
$(PERL) $(srctree)/scripts/export_report.pl
PHONY += checkstack kernelrelease kernelversion image_name
# UML needs a little special treatment here. It wants to use the host
# toolchain, so needs $(SUBARCH) passed to checkstack.pl. Everyone
# else wants $(ARCH), including people doing cross-builds, which means
# that $(SUBARCH) doesn't work here.
ifeq ($(ARCH), um)
CHECKSTACK_ARCH := $(SUBARCH)
else
CHECKSTACK_ARCH := $(ARCH)
endif
checkstack:
$(OBJDUMP) -d vmlinux $$(find . -name '*.ko') | \
$(PERL) $(srctree)/scripts/checkstack.pl $(CHECKSTACK_ARCH)
kernelrelease:
@echo "$(KERNELVERSION)$$($(CONFIG_SHELL) $(srctree)/scripts/setlocalversion \
$(srctree) $(BRANCH) $(KMI_GENERATION))"
kernelversion:
@echo $(KERNELVERSION)
image_name:
@echo $(KBUILD_IMAGE)
quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)))
cmd_rmfiles = rm -rf $(rm-files)
# read saved command lines for existing targets
existing-targets := $(wildcard $(sort $(targets)))
-include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
endif # config-build
endif # mixed-build
endif # need-sub-make
PHONY += FORCE
FORCE:
# Declare the contents of the PHONY variable as phony. We keep that
# information in a variable so we can use it in if_changed and friends.
.PHONY: $(PHONY)