7c8fe0d3ae
* 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>
2246 lines
73 KiB
Makefile
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)
|