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