* refs/heads/tmp-7cb0122:
FROMLIST: mm/migrate: set swap entry values of THP tail pages properly.
FROMLIST: binder: check offset alignment in binder_get_object()
FROMLIST: iommu: Avoid races around default domain allocations
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hook: rename the the name of hooks
Revert "interconnect: Fix locking for runpm vs reclaim"
ANDROID: abi_gki_aarch64_qcom: Update symbol list
Revert "interconnect: Teach lockdep about icc_bw_lock order"
Revert "usb: dwc3: core: configure TX/RX threshold for DWC3_IP"
Revert "usb: dwc3: core: configure TX/RX threshold for DWC3_IP"
ANDROID: Update symbols list for open-dice.ko
ANDROID: Update symbols list for open-dice.ko
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hook: rename the the name of hooks
ANDROID: EXPORT raise_softirq and update the ABI symbol list
UPSTREAM: netfilter: nf_tables: disallow timeout for anonymous sets
BACKPORT: FROMGIT: mm: add alloc_contig_migrate_range allocation statistics
FROMLIST: iommu: Avoid races around default domain allocations
ANDROID: fips140 - fix integrity check by unapplying dynamic SCS
ANDROID: fips140 - add option for debugging the integrity check
BACKPORT: f2fs: split initial and dynamic conditions for extent_cache
ANDROID: GKI: Update oplus symbol list
ANDROID: Update the ABI symbol list
UPSTREAM: usb: typec: altmodes/displayport: create sysfs nodes as driver's default device attribute group
UPSTREAM: epoll: use refcount to reduce ep_mutex contention
ANDROID: GKI: Update oplus symbol list
ANDROID: uid_sys_stat: fix data-error of cputime and io
ANDROID: Update the ABI symbol list
ANDROID: vendor_hooks: Export cma_alloc trace points
ANDROID: gki_defconfig: Enable CONFIG_ARM_SCMI_TRANSPORT_VIRTIO
Revert "Merge tag 'android14-6.1.75_r00' into android14-6.1"
UPSTREAM: net: tls: fix use-after-free with partial reads and async decrypt
ANDROID: GKI: add GKI symbol list for Exynosauto SoC
UPSTREAM: usb: typec: class: fix typec_altmode_put_partner to put plugs
UPSTREAM: Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
ANDROID: GKI: Update symbol list for mtk
ANDROID: GKI: Update oplus symbol list
FROMGIT: f2fs: introduce FAULT_BLKADDR_CONSISTENCE
FROMGIT: f2fs: fix to remove unnecessary f2fs_bug_on() to avoid panic
FROMGIT: f2fs: compress: fix to avoid inconsistence bewteen i_blocks and dnode
FROMGIT: f2fs: compress: fix to check unreleased compressed cluster
FROMGIT: f2fs: compress: fix to cover normal cluster write with cp_rwsem
FROMGIT: f2fs: compress: fix to guarantee persisting compressed blocks by CP
BACKPORT: gso: fix dodgy bit handling for GSO_UDP_L4
ANDROID: remove LTO check from build.config.gki.aarch64.fips140
ANDROID: add symbol list for fips140 module
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hook for trace_android_vh_copy_process
ANDROID: abi_gki_aarch64_qcom: Update symbol list
ANDROID: GKI: Update symbol list for transsion
ANDROID: Add vendor_hooks to workaround CONFIG_TASK_DELAY_ACCT
Revert "ANDROID: Build null_blk and scsi_debug as kernel modules"
Revert "interconnect: Fix locking for runpm vs reclaim"
ANDROID: GKI: Update symbol list for xiaomi
ANDROID: sched/cpuset: Add vendor hook to change tasks affinity
ANDROID: ABI: Update oplus symbol list
ANDROID: binder: Add vendor hook to fix priority restore
Revert "interconnect: Teach lockdep about icc_bw_lock order"
BACKPORT: gso: fix dodgy bit handling for GSO_UDP_L4
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hook for trace_android_vh_copy_process
ANDROID: GKI: Update symbol list for mtk
FROMGIT: PM: runtime: add tracepoint for runtime_status changes
ANDROID: GKI: add allowed list file for xiaomi
UPSTREAM: netfilter: nft_set_rbtree: skip end interval element from gc
ANDROID: GKI: add symbol list file for moto
UPSTREAM: scsi: ufs: core: Fix racing issue between ufshcd_mcq_abort() and ISR
UPSTREAM: scsi: ufs: core: Remove dev cmd clock scaling busy
ANDROID: ABI: Update symbol list for Nothing
ANDROID: abi_gki_aarch64_qcom: Export trace_android_vh_try_fixup_sea
ANDROID: arm64: Call fixup_exception() within do_sea()
ANDROID: PCI: dwc: Wait for the link only if it has been started
ANDROID: Update the Pixel symbol list and GKI ABI
ANDROID: scsi: ufs: add complete init vendor hook
ANDROID: Update the ABI symbol list
ANDROID: Fix CRC error with iommu_* functions
Revert "bpf: add percpu stats for bpf_map elements insertions/deletions"
Revert "bpf: Add map and need_defer parameters to .map_fd_put_ptr()"
Revert "bpf: Defer the free of inner map when necessary"
ANDROID: Roll back some code to fix system_server registers psi trigger failed.
ANDROID: GKI: Update the ABI symbol list
UPSTREAM: virtio: Add support for no-reset virtio PCI PM
UPSTREAM: netfilter: nf_tables: check if catch-all set element is active in next generation
UPSTREAM: net: tls, update curr on splice as well
ANDROID: Update the ABI symbol list
ANDROID: Add pci_read_config_word to virtual device symbol list
ANDROID: Export kthread_set_per_cpu
ANDROID: GKI: fix ABI breakage in struct ipv6_devconf
Reapply "net: release reference to inet6_dev pointer"
Reapply "net: change accept_ra_min_rtr_lft to affect all RA lifetimes"
Reapply "net: add sysctl accept_ra_min_rtr_lft"
ANDROID: GKI: explicit include of stringify.h
BACKPORT: erofs: fix infinite loop due to a race of filling compressed_bvecs
ANDROID: arm64: virt: Invalidate tlb once the balloon before reporting/inflating
ANDROID: arm64: virt: Make the page_relinquish call generic
UPSTREAM: drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
UPSTREAM: drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
UPSTREAM: drm/msm/dsi: Enable runtime PM
UPSTREAM: arm64: scs: Disable LTO for SCS patching code
ANDROID: GKI: Update symbol list for mtk
ANDROID: GKI: Update symbol list for mtk
BACKPORT: f2fs: Restrict max filesize for 16K f2fs
BACKPORT: f2fs: Support Block Size == Page Size
ANDROID: abi_gki_aarch64_qcom: Update symbol list
UPSTREAM: drm/msm/dsi: Enable runtime PM
UPSTREAM: usb: typec: tcpm: fix the PD disabled case
ANDROID: ABI: Update symbol list for imx
UPSTREAM: netfilter: nf_tables: reject QUEUE/DROP verdict parameters
ANDROID: ABI: Update oplus symbol list
ANDROID: fuse: Fix the issue of fuse_dentry_canonical_path
ANDROID: Update the ABI symbol list
ANDROID: Export cpufreq_driver_test_flags()
ANDROID: Build null_blk and scsi_debug as kernel modules
ANDROID: GKI: Update the pixel symbol list
ANDROID: usb: dwc3: export tracepoint for dwc3 read/write
ANDROID: scsi: ufs: add vendor hook to override key reprogramming
ANDROID: vendor_hooks: Add hook for binder_detect_low_async_space_locked
ANDROID: Update the ABI symbol list
ANDROID: Update the ABI representation
UPSTREAM: usb: typec: tcpm: Support multiple capabilities
UPSTREAM: usb: typec: tcpm: Parse Accessory Mode information
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: add hooks in driver/android/binder.c
UPSTREAM: net/rose: Fix Use-After-Free in rose_ioctl
UPSTREAM: ida: Fix crash in ida_free when the bitmap is empty
ANDROID: GKI: Update symbol list for mtk
ANDROID: GKI: Update symbol list for mtk
Reapply "perf: Disallow mis-matched inherited group reads"
ANDROID: GKI: Add Pasa symbol list
FROMGIT: mm: memcg: don't periodically flush stats when memcg is disabled
ANDROID: Update the ABI symbol list
ANDROID: sched: export update_misfit_status symbol
ANDROID: GKI: Add ASR KMI symbol list
FROMGIT: usb: dwc3: gadget: Fix NULL pointer dereference in dwc3_gadget_suspend
FROMLIST: usb: core: Prevent null pointer dereference in update_port_device_state
ANDROID: gki_defconfig: Enable CONFIG_NVME_MULTIPATH
BACKPORT: irqchip/gic-v3: Work around affinity issues on ASR8601
BACKPORT: irqchip/gic-v3: Improve affinity helper
Linux 6.1.75
Revert "Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d""
arm64: dts: armada-3720-turris-mox: set irq type for RTC
Revert "KEYS: encrypted: Add check for strsep"
riscv: Fix wrong usage of lm_alias() when splitting a huge linear mapping
block: Remove special-casing of compound pages
i2c: s3c24xx: fix transferring more than one message in polling mode
i2c: s3c24xx: fix read transfers in polling mode
ipv6: mcast: fix data-race in ipv6_mc_down / mld_ifc_work
selftests: mlxsw: qos_pfc: Adjust the test to support 8 lanes
mlxsw: spectrum_acl_erp: Fix error flow of pool allocation failure
loop: fix the the direct I/O support check when used on top of block devices
ethtool: netlink: Add missing ethnl_ops_begin/complete
kdb: Fix a potential buffer overflow in kdb_local()
ipvs: avoid stat macros calls from preemptible context
netfilter: nf_tables: reject NFT_SET_CONCAT with not field length description
netfilter: nf_tables: skip dead set elements in netlink dump
netfilter: nf_tables: do not allow mismatch field size and set key length
netfilter: bridge: replace physindev with physinif in nf_bridge_info
netfilter: propagate net to nf_bridge_get_physindev
netfilter: nf_queue: remove excess nf_bridge variable
netfilter: nfnetlink_log: use proper helper for fetching physinif
netfilter: nft_limit: do not ignore unsupported flags
netfilter: nf_tables: reject invalid set policy
mptcp: relax check on MPC passive fallback
LoongArch: BPF: Prevent out-of-bounds memory access
net: dsa: vsc73xx: Add null pointer check to vsc73xx_gpio_probe
bpf: Reject variable offset alu on PTR_TO_FLOW_KEYS
net: stmmac: ethtool: Fixed calltrace caused by unbalanced disable_irq_wake calls
drm/amdkfd: fixes for HMM mem allocation
drm/amdkfd: Use resource_size() helper function
dt-bindings: gpio: xilinx: Fix node address in gpio
net: ravb: Fix dma_addr_t truncation in error case
udp: annotate data-races around up->pending
block: ensure we hold a queue reference when using queue limits
mptcp: refine opt_mp_capable determination
mptcp: use OPTION_MPTCP_MPJ_SYN in subflow_check_req()
mptcp: use OPTION_MPTCP_MPJ_SYNACK in subflow_finish_connect()
mptcp: strict validation before using mp_opt->hmac
mptcp: mptcp_parse_option() fix for MPTCPOPT_MP_JOIN
net: phy: micrel: populate .soft_reset for KSZ9131
amt: do not use overwrapped cb area
net: ethernet: ti: am65-cpsw: Fix max mtu to fit ethernet frames
net: qualcomm: rmnet: fix global oob in rmnet_policy
s390/pci: fix max size calculation in zpci_memcpy_toio()
ASoC: mediatek: sof-common: Add NULL check for normal_link string
PCI: mediatek-gen3: Fix translation window size calculation
PCI: keystone: Fix race condition when initializing PHYs
nvmet-tcp: Fix the H2C expected PDU len calculation
nvme: trace: avoid memcpy overflow warning
nvmet: re-fix tracing strncpy() warning
serial: imx: Correct clock error message in function probe()
usb: xhci-mtk: fix a short packet issue of gen1 isoc-in transfer
apparmor: avoid crash when parsed profile name is empty
cxl/region: fix x9 interleave typo
perf env: Avoid recursively taking env->bpf_progs.lock
nvmet-tcp: fix a crash in nvmet_req_complete()
nvmet-tcp: Fix a kernel panic when host sends an invalid H2C PDU length
vdpa: Fix an error handling path in eni_vdpa_probe()
spmi: mtk-pmif: Serialize PMIF status check and command submission
usb: cdc-acm: return correct error code on unsupported break
tty: use 'if' in send_break() instead of 'goto'
tty: don't check for signal_pending() in send_break()
tty: early return from send_break() on TTY_DRIVER_HARDWARE_BREAK
tty: change tty_write_lock()'s ndelay parameter to bool
perf genelf: Set ELF program header addresses properly
perf hisi-ptt: Fix one memory leakage in hisi_ptt_process_auxtrace_event()
perf header: Fix one memory leakage in perf_event__fprintf_event_update()
iio: adc: ad9467: fix scale setting
iio: adc: ad9467: don't ignore error codes
iio: adc: ad9467: fix reset gpio handling
selftests/sgx: Skip non X86_64 platform
selftests/sgx: Include memory clobber for inline asm in test enclave
selftests/sgx: Fix uninitialized pointer dereferences in encl_get_entry
selftests/sgx: Fix uninitialized pointer dereference in error path
serial: imx: fix tx statemachine deadlock
software node: Let args be NULL in software_node_get_reference_args
acpi: property: Let args be NULL in __acpi_node_get_property_reference
base/node.c: initialize the accessor list before registering
libapi: Add missing linux/types.h header to get the __u64 type on io.h
serial: 8250: omap: Don't skip resource freeing if pm_runtime_resume_and_get() failed
power: supply: bq256xx: fix some problem in bq256xx_hw_init
power: supply: cw2015: correct time_to_empty units in sysfs
MIPS: Alchemy: Fix an out-of-bound access in db1550_dev_setup()
MIPS: Alchemy: Fix an out-of-bound access in db1200_dev_setup()
riscv: Fixed wrong register in XIP_FIXUP_FLASH_OFFSET macro
riscv: Fix set_direct_map_default_noflush() to reset _PAGE_EXEC
riscv: Fix set_memory_XX() and set_direct_map_XX() by splitting huge linear mappings
riscv: Fix module_alloc() that did not reset the linear mapping permissions
riscv: Check if the code to patch lies in the exit section
mips: Fix incorrect max_low_pfn adjustment
mips: dmi: Fix early remap on MIPS32
mfd: intel-lpss: Fix the fractional clock divider flags
leds: aw2013: Select missing dependency REGMAP_I2C
mfd: syscon: Fix null pointer dereference in of_syscon_register()
ARM: 9330/1: davinci: also select PINCTRL
serial: sc16is7xx: set safe default SPI clock frequency
serial: sc16is7xx: add check for unsupported SPI modes during probe
HID: wacom: Correct behavior when processing some confidence == false touches
iio: adc: ad7091r: Pass iio_dev to event handler
KVM: arm64: vgic-its: Avoid potential UAF in LPI translation cache
KVM: arm64: vgic-v4: Restore pending state on host userspace write
x86/kvm: Do not try to disable kvmclock if it was not enabled
PCI: mediatek: Clear interrupt status before dispatching handler
PCI: dwc: endpoint: Fix dw_pcie_ep_raise_msix_irq() alignment support
PCI/P2PDMA: Remove reference to pci_p2pdma_map_sg()
cxl/port: Fix decoder initialization when nr_targets > interleave_ways
Revert "net: rtnetlink: Enslave device before bringing it up"
wifi: mwifiex: configure BSSID consistently when starting AP
wifi: rtlwifi: Convert LNKCTL change to PCIe cap RMW accessors
wifi: rtlwifi: Remove bogus and dangerous ASPM disable/enable code
wifi: mt76: fix broken precal loading from MTD for mt7915
iommu/dma: Trace bounce buffer usage when mapping buffers
iommu/arm-smmu-qcom: Add missing GMU entry to match table
LoongArch: Fix and simplify fcsr initialization on execve()
bpf: Fix re-attachment branch in bpf_tracing_prog_attach
Bluetooth: Fix atomicity violation in {min,max}_key_size_set
rootfs: Fix support for rootfstype= when root= is given
md/raid1: Use blk_opf_t for read and write operations
pwm: Fix out-of-bounds access in of_pwm_single_xlate()
pwm: jz4740: Don't use dev_err_probe() in .request()
netfilter: nf_tables: check if catch-all set element is active in next generation
block: Fix iterating over an empty bio with bio_for_each_folio_all
block: add check that partition length needs to be aligned with block size
drm/amd: Enable PCIe PME from D3
scsi: mpi3mr: Block PEL Enable Command on Controller Reset and Unrecoverable State
scsi: mpi3mr: Refresh sdev queue depth after controller reset
scsi: target: core: add missing file_{start,end}_write()
scsi: ufs: core: Simplify power management during async scan
fbdev: flush deferred IO before closing
fbdev: flush deferred work in fb_deferred_io_fsync()
io_uring/rw: ensure io->bytes_done is always initialized
ksmbd: only v2 leases handle the directory
ksmbd: fix UAF issue in ksmbd_tcp_new_connection()
ksmbd: validate mech token in session setup
ALSA: hda/realtek: Enable headset mic on Lenovo M70 Gen5
ALSA: hda/realtek: Enable mute/micmute LEDs and limit mic boost on HP ZBook
ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq2xxx
ALSA: oxygen: Fix right channel of capture volume mixer
drm/vmwgfx: Keep a gem reference to user bos in surfaces
drm/vmwgfx: Fix possible invalid drm gem put calls
serial: omap: do not override settings for RS485 support
serial: 8250_exar: Set missing rs485_supported flag
serial: imx: Ensure that imx_uart_rs485_config() is called with enabled clock
serial: core, imx: do not set RS485 enabled if it is not supported
serial: 8250_bcm2835aux: Restore clock error handling
serial: core: make sure RS485 cannot be enabled when it is not supported
serial: core: fix sanitizing check for RTS settings
usb: mon: Fix atomicity violation in mon_bin_vma_fault
usb: typec: class: fix typec_altmode_put_partner to put plugs
Revert "usb: typec: class: fix typec_altmode_put_partner to put plugs"
usb: cdns3: Fix uvc fail when DMA cross 4k boundery since sg enabled
usb: cdns3: fix iso transfer error when mult is not zero
usb: cdns3: fix uvc failure work since sg support enabled
usb: chipidea: wait controller resume finished for wakeup irq
Revert "usb: dwc3: don't reset device side if dwc3 was configured as host-only"
Revert "usb: dwc3: Soft reset phy on probe for host"
usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
usb: phy: mxs: remove CONFIG_USB_OTG condition for mxs_phy_is_otg_host()
tick-sched: Fix idle and iowait sleeptime accounting vs CPU hotplug
powerpc/64s: Increase default stack size to 32KB
clocksource/drivers/timer-ti-dm: Fix make W=n kerneldoc warnings
binder: fix race between mmput() and do_exit()
xen-netback: don't produce zero-size SKB frags
Input: atkbd - use ab83 as id when skipping the getid command
mips/smp: Call rcutree_report_cpu_starting() earlier
binder: fix unused alloc->free_async_space
binder: fix async space check for 0-sized buffers
keys, dns: Fix size check of V1 server-list header
selftests/bpf: Add assert for user stacks in test_task_stack
of: unittest: Fix of_count_phandle_with_args() expected value message
fbdev: imxfb: fix left margin setting
of: Fix double free in of_parse_phandle_with_args_map
ksmbd: validate the zero field of packet header
kselftest/alsa - mixer-test: Fix the print format specifier warning
kselftest/alsa - mixer-test: fix the number of parameters to ksft_exit_fail_msg()
drm/amd/pm/smu7: fix a memleak in smu7_hwmgr_backend_init
drm/amdkfd: Confirm list is non-empty before utilizing list_first_entry in kfd_topology.c
IB/iser: Prevent invalidating wrong MR
mmc: sdhci_omap: Fix TI SoC dependencies
mmc: sdhci_am654: Fix TI SoC dependencies
ALSA: scarlett2: Add clamp() in scarlett2_mixer_ctl_put()
ALSA: scarlett2: Add missing error checks to *_ctl_get()
ALSA: scarlett2: Allow passing any output to line_out_remap()
ALSA: scarlett2: Add missing error check to scarlett2_usb_set_config()
ALSA: scarlett2: Add missing error check to scarlett2_config_save()
ASoC: rt5645: Drop double EF20 entry from dmi_platform_data[]
pwm: stm32: Fix enable count for clk in .probe()
pwm: stm32: Use hweight32 in stm32_pwm_detect_channels
pwm: stm32: Use regmap_clear_bits and regmap_set_bits where applicable
clk: fixed-rate: fix clk_hw_register_fixed_rate_with_accuracy_parent_hw
accel/habanalabs: fix information leak in sec_attest_info()
drm/mediatek: dp: Add phy_mtk_dp module as pre-dependency
clk: si5341: fix an error code problem in si5341_output_clk_set_rate
watchdog: rti_wdt: Drop runtime pm reference count when watchdog is unused
watchdog: bcm2835_wdt: Fix WDIOC_SETTIMEOUT handling
watchdog/hpwdt: Only claim UNKNOWN NMI if from iLO
watchdog: set cdev owner before adding
drivers: clk: zynqmp: update divider round rate logic
drivers: clk: zynqmp: calculate closest mux rate
clk: qcom: videocc-sm8150: Add missing PLL config property
clk: qcom: videocc-sm8150: Update the videocc resets
dt-bindings: clock: Update the videocc resets for sm8150
f2fs: fix to check return value of f2fs_recover_xattr_data
drm/amd/pm: fix a double-free in amdgpu_parse_extended_power_table
gpu/drm/radeon: fix two memleaks in radeon_vm_init
drivers/amd/pm: fix a use-after-free in kv_parse_power_table
drm/amd/pm: fix a double-free in si_dpm_init
drm/amdgpu/debugfs: fix error code when smc register accessors are NULL
drm/mediatek: Fix underrun in VDO1 when switches off the layer
drm/mediatek: Return error if MDP RDMA failed to enable the clock
drm/msm/dpu: Drop enable and frame_count parameters from dpu_hw_setup_misr()
drm/msm/dpu: Set input_sel bit for INTF
clk: renesas: rzg2l: Check reset monitor registers
clk: renesas: rzg2l-cpg: Reuse code in rzg2l_cpg_reset()
media: dvb-frontends: m88ds3103: Fix a memory leak in an error handling path of m88ds3103_probe()
media: dvbdev: drop refcount on error path in dvb_device_open()
f2fs: fix to update iostat correctly in f2fs_filemap_fault()
f2fs: fix to check compress file in f2fs_move_file_range()
f2fs: fix to wait on block writeback for post_read case
drm/panel: st7701: Fix AVCL calculation
media: rkisp1: Fix media device memory leak
media: dt-bindings: media: rkisp1: Fix the port description for the parallel interface
media: imx-mipi-csis: Fix clock handling in remove()
clk: qcom: gpucc-sm8150: Update the gpu_cc_pll1 config
RDMA/hns: Fix memory leak in free_mr_init()
media: cx231xx: fix a memleak in cx231xx_init_isoc
drm/bridge: tc358767: Fix return value on error case
drm/bridge: cdns-mhdp8546: Fix use of uninitialized variable
drm/radeon/trinity_dpm: fix a memleak in trinity_parse_power_table
drm/radeon/dpm: fix a memleak in sumo_parse_power_table
drm/radeon: check the alloc_workqueue return value in radeon_crtc_init()
drm/panfrost: Ignore core_mask for poweroff and disable PWRTRANS irq
ASoC: Intel: glk_rt5682_max98357a: fix board id mismatch
drm/drv: propagate errors from drm_modeset_register_all()
drm/msm/dsi: Use pm_runtime_resume_and_get to prevent refcnt leaks
drm/msm/mdp4: flush vblank event on disable
ASoC: cs35l34: Fix GPIO name and drop legacy include
ASoC: cs35l33: Fix GPIO name and drop legacy include
drm/tidss: Fix dss reset
drm/tidss: Check for K2G in in dispc_softreset()
drm/tidss: Return error value from from softreset
drm/tidss: Move reset to the end of dispc_init()
drm/radeon: check return value of radeon_ring_lock()
drm/radeon/r100: Fix integer overflow issues in r100_cs_track_check()
drm/radeon/r600_cs: Fix possible int overflows in r600_cs_check_reg()
f2fs: fix to avoid dirent corruption
drm/bridge: Fix typo in post_disable() description
media: rkvdec: Hook the (TRY_)DECODER_CMD stateless ioctls
media: verisilicon: Hook the (TRY_)DECODER_CMD stateless ioctls
media: mtk-jpeg: Remove cancel worker in mtk_jpeg_remove to avoid the crash of multi-core JPEG devices
media: mtk-jpegdec: export jpeg decoder functions
media: pvrusb2: fix use after free on context disconnection
drm/tilcdc: Fix irq free on unload
drm/bridge: tpd12s015: Drop buggy __exit annotation for remove function
drm/nouveau/fence:: fix warning directly dereferencing a rcu pointer
drm/panel-elida-kd35t133: hold panel in reset for unprepare
RDMA/hns: Fix inappropriate err code for unsupported operations
RDMA/usnic: Silence uninitialized symbol smatch warnings
drm/panfrost: Really power off GPU cores in panfrost_gpu_power_off()
Revert "drm/omapdrm: Annotate dma-fence critical section in commit path"
Revert "drm/tidss: Annotate dma-fence critical section in commit path"
ARM: davinci: always select CONFIG_CPU_ARM926T
ip6_tunnel: fix NEXTHDR_FRAGMENT handling in ip6_tnl_parse_tlv_enc_lim()
mlxbf_gige: Enable the GigE port in mlxbf_gige_open
mlxbf_gige: Fix intermittent no ip issue
net/sched: act_ct: fix skb leak and crash on ooo frags
sctp: fix busy polling
sctp: support MSG_ERRQUEUE flag in recvmsg()
bpf: sockmap, fix proto update hook to avoid dup calls
null_blk: don't cap max_hw_sectors to BLK_DEF_MAX_SECTORS
block: make BLK_DEF_MAX_SECTORS unsigned
Bluetooth: btmtkuart: fix recv_buf() return value
Bluetooth: Fix bogus check for re-auth no supported with non-ssp
netfilter: nf_tables: mark newset as dead on transaction abort
wifi: iwlwifi: mvm: send TX path flush in rfkill
wifi: iwlwifi: mvm: set siso/mimo chains to 1 in FW SMPS request
wifi: rtlwifi: rtl8192se: using calculate_bit_shift()
wifi: rtlwifi: rtl8192ee: using calculate_bit_shift()
wifi: rtlwifi: rtl8192de: using calculate_bit_shift()
wifi: rtlwifi: rtl8192ce: using calculate_bit_shift()
wifi: rtlwifi: rtl8192cu: using calculate_bit_shift()
wifi: rtlwifi: rtl8192c: using calculate_bit_shift()
wifi: rtlwifi: rtl8188ee: phy: using calculate_bit_shift()
wifi: rtlwifi: add calculate_bit_shift()
arm64: dts: qcom: ipq6018: Fix up indentation
arm64: dts: qcom: ipq6018: Pad addresses to 8 hex digits
arm64: dts: qcom: ipq6018: Use lowercase hex
arm64: dts: qcom: ipq6018: improve pcie phy pcs reg table
arm64: dts: qcom: ipq6018: fix clock rates for GCC_USB0_MOCK_UTMI_CLK
arm64: dts: qcom: sc7280: Mark SDHCI hosts as cache-coherent
block: add check of 'minors' and 'first_minor' in device_add_disk()
arm64: dts: qcom: sm8150-hdk: fix SS USB regulators
soc: qcom: llcc: Fix dis_cap_alloc and retain_on_pc configuration
dma-mapping: clear dev->dma_mem to NULL after freeing it
virtio/vsock: fix logic which reduces credit update messages
ipmr: support IP_PKTINFO on cache report IGMP msg
selftests/net: fix grep checking for fib_nexthop_multiprefix
ARM: dts: stm32: don't mix SCMI and non-SCMI board compatibles
scsi: hisi_sas: Correct the number of global debugfs registers
scsi: hisi_sas: Rollback some operations if FLR failed
scsi: hisi_sas: Replace with standard error code return value
arm64: dts: imx8mm: Reduce GPU to nominal speed
arm64: dts: renesas: white-hawk-cpu: Fix missing serial console pin control
block: Set memalloc_noio to false on device_add_disk() error path
selftests/bpf: Relax time_tai test for equal timestamps in tai_forward
wifi: mt76: mt7921: fix country count limitation for CLC
arm64: dts: mediatek: mt8183: correct MDP3 DMA-related nodes
dt-bindings: media: mediatek: mdp3: correct RDMA and WROT node with generic names
arm64: dts: hisilicon: hikey970-pmic: fix regulator cells properties
bpf: Fix verification of indirect var-off stack access
wifi: mt76: mt7921s: fix workqueue problem causes STA association fail
arm64: dts: qcom: sc7280: fix usb_2 wakeup interrupt types
arm64: dts: qcom: sc7280: Mark Adreno SMMU as DMA coherent
arm64: dts: qcom: sc7280: Fix up GPU SIDs
arm64: dts: qcom: sm8350: Fix DMA0 address
arm64: dts: qcom: sdm845-db845c: correct LED panic indicator
arm64: dts: qcom: qrb5165-rb5: correct LED panic indicator
scsi: fnic: Return error if vmalloc() failed
bpf: fix check for attempt to corrupt spilled pointer
selftests/net: specify the interface when do arping
bpf: Defer the free of inner map when necessary
bpf: Add map and need_defer parameters to .map_fd_put_ptr()
bpf: add percpu stats for bpf_map elements insertions/deletions
rcu-tasks: Provide rcu_trace_implies_rcu_gp()
arm64: dts: qcom: sm6350: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sc8280xp: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sm8250: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sm8150: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sdm845: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sc7280: Make watchdog bark interrupt edge triggered
arm64: dts: qcom: sc7280: Mark some nodes as 'reserved'
arm64: dts: qcom: sc7180: Make watchdog bark interrupt edge triggered
ARM: dts: qcom: sdx65: correct SPMI node name
bpf: enforce precision of R0 on callback return
md: synchronize flush io with array reconfiguration
selftests/bpf: Fix erroneous bitmask operation
arm64: dts: ti: k3-am65-main: Fix DSS irq trigger type
arm64: dts: ti: k3-am62a-main: Fix GPIO pin count in DT nodes
wifi: rtlwifi: rtl8821ae: phy: fix an undefined bitwise shift behavior
firmware: meson_sm: populate platform devices from sm device tree data
firmware: ti_sci: Fix an off-by-one in ti_sci_debugfs_create()
net/ncsi: Fix netlink major/minor version numbers
ARM: dts: qcom: apq8064: correct XOADC register address
wifi: libertas: stop selecting wext
wifi: ath11k: Defer on rproc_get failure
bpf: Add crosstask check to __bpf_get_stack
bpf, lpm: Fix check prefixlen before walking trie
wifi: rtw88: fix RX filter in FIF_ALLMULTI flag
wifi: plfxlc: check for allocation failure in plfxlc_usb_wreq_async()
pNFS: Fix the pnfs block driver's calculation of layoutget size
SUNRPC: fix _xprt_switch_find_current_entry logic
NFSv4.1/pnfs: Ensure we handle the error NFS4ERR_RETURNCONFLICT
blocklayoutdriver: Fix reference leak of pnfs_device_node
csky: fix arch_jump_label_transform_static override
crypto: scomp - fix req->dst buffer overflow
crypto: sahara - do not resize req->src when doing hash operations
crypto: sahara - fix processing hash requests with req->nbytes < sg->length
crypto: sahara - improve error handling in sahara_sha_process()
crypto: sahara - fix wait_for_completion_timeout() error handling
crypto: sahara - fix ahash reqsize
crypto: sahara - handle zero-length aes requests
crypto: sahara - avoid skcipher fallback code duplication
crypto: virtio - Wait for tasklet to complete on device remove
gfs2: Fix kernel NULL pointer dereference in gfs2_rgrp_dump
fs: indicate request originates from old mount API
erofs: fix memory leak on short-lived bounced pages
pstore: ram_core: fix possible overflow in persistent_ram_init_ecc()
crypto: hisilicon/zip - save capability registers in probe process
crypto: hisilicon/sec2 - save capability registers in probe process
crypto: hisilicon/hpre - save capability registers in probe process
crypto: hisilicon/qm - add a function to set qm algs
crypto: hisilicon/zip - add zip comp high perf mode configuration
crypto: hisilicon/qm - save capability registers in qm init process
crypto: sahara - fix error handling in sahara_hw_descriptor_create()
crypto: sahara - fix processing requests with cryptlen < sg->length
crypto: sahara - fix ahash selftest failure
crypto: sahara - fix cbc selftest failure
crypto: sahara - remove FLAGS_NEW_KEY logic
crypto: safexcel - Add error handling for dma_map_sg() calls
crypto: af_alg - Disallow multiple in-flight AIO requests
crypto: ccp - fix memleak in ccp_init_dm_workarea
crypto: sa2ul - Return crypto_aead_setkey to transfer the error
crypto: virtio - Handle dataq logic with tasklet
selinux: Fix error priority for bind with AF_UNSPEC on PF_INET6 socket
mtd: Fix gluebi NULL pointer dereference caused by ftl notifier
kunit: debugfs: Fix unchecked dereference in debugfs_print_results()
ACPI: extlog: Clear Extended Error Log status when RAS_CEC handled the error
ACPI: LPSS: Fix the fractional clock divider flags
spi: sh-msiof: Enforce fixed DTDL for R-Car H3
efivarfs: Free s_fs_info on unmount
efivarfs: force RO when remounting if SetVariable is not supported
calipso: fix memory leak in netlbl_calipso_add_pass()
cpufreq: scmi: process the result of devm_of_clk_add_hw_provider()
cpufreq: Use of_property_present() for testing DT property presence
of: Add of_property_present() helper
platform/x86/intel/vsec: Fix xa_alloc memory leak
platform/x86/intel/vsec: Use mutex for ida_alloc() and ida_free()
platform/x86/intel/vsec: Support private data
platform/x86/intel/vsec: Enhance and Export intel_vsec_add_aux()
KEYS: encrypted: Add check for strsep
ACPI: LPIT: Avoid u32 multiplication overflow
ACPI: video: check for error while searching for backlight device parent
mtd: rawnand: Increment IFC_TIMEOUT_MSECS for nand controller response
spi: spi-zynqmp-gqspi: fix driver kconfig dependencies
powerpc/imc-pmu: Add a null pointer check in update_events_in_group()
powerpc/powernv: Add a null pointer check in opal_powercap_init()
powerpc/powernv: Add a null pointer check in opal_event_init()
powerpc/powernv: Add a null pointer check to scom_debug_init_one()
selftests/powerpc: Fix error handling in FPU/VMX preemption tests
powerpc/pseries/memhp: Fix access beyond end of drmem array
powerpc/44x: select I2C for CURRITUCK
powerpc: add crtsavres.o to always-y instead of extra-y
powerpc: remove checks for binutils older than 2.25
EDAC/thunderx: Fix possible out-of-bounds string access
x86/mce/inject: Clear test status value
x86/lib: Fix overflow when counting digits
UPSTREAM: sched/fair: Limit sched slice duration
ANDROID: Update the ABI symbol list
ANDROID: idle_inject: Export function symbols
ANDROID: Update the ABI symbol list
ANDROID: GKI: Remove CONFIG_MEDIA_CEC_RC
BACKPORT: usb: host: xhci: Avoid XHCI resume delay if SSUSB device is not present
ANDROID: Update the ABI symbol list
ANDROID: uid_sys_stats: Drop CONFIG_UID_SYS_STATS_DEBUG logic
ANDROID: Update the ABI symbol list
ANDROID: Update the ABI symbol list
UPSTREAM: usb: gadget: uvc: Remove nested locking
ANDROID: uid_sys_stats: Fully initialize uid_entry_tmp value
ANDROID: Roll back some code to fix system_server registers psi trigger failed.
UPSTREAM: usb: gadget: uvc: Fix use are free during STREAMOFF
ANDROID: GKI: Add symbol list for Nothing
Linux 6.1.74
scripts/decode_stacktrace.sh: optionally use LLVM utilities
coresight: etm4x: Fix width of CCITMIN field
PCI: Add ACS quirk for more Zhaoxin Root Ports
leds: ledtrig-tty: Free allocated ttyname buffer on deactivate
parport: parport_serial: Add Brainboxes device IDs and geometry
parport: parport_serial: Add Brainboxes BAR details
uio: Fix use-after-free in uio_open
binder: fix comment on binder_alloc_new_buf() return value
binder: fix trivial typo of binder_free_buf_locked()
binder: fix use-after-free in shinker's callback
binder: use EPOLLERR from eventpoll.h
Revert "md/raid5: Wait for MD_SB_CHANGE_PENDING in raid5d"
ksmbd: free ppace array on error in parse_dacl
ksmbd: don't allow O_TRUNC open on read-only share
bpf: Add --skip_encoding_btf_inconsistent_proto, --btf_gen_optimized to pahole flags for v1.25
btf, scripts: Exclude Rust CUs with pahole
ASoC: SOF: Intel: hda-codec: Delay the codec device registration
ACPI: resource: Add another DMI match for the TongFang GMxXGxx
ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP Envy X360 13-ay0xxx
drm/crtc: fix uninitialized variable use
ARM: sun9i: smp: fix return code check of of_property_match_string
net: qrtr: ns: Return 0 if server port is not present
virtio_blk: fix snprintf truncation compiler warning
ida: Fix crash in ida_free when the bitmap is empty
pinctrl: cy8c95x0: Fix get_pincfg
pinctrl: cy8c95x0: Fix typo
drm/amd/display: get dprefclk ss info from integration info table
i2c: rk3x: fix potential spinlock recursion on poll
smb: client: fix potential OOB in smb2_dump_detail()
HID: nintendo: Prevent divide-by-zero on code
dm audit: fix Kconfig so DM_AUDIT depends on BLK_DEV_DM
ALSA: hda/realtek: Add quirks for ASUS Zenbook 2022 Models
ASoC: Intel: bytcr_rt5640: Add new swapped-speakers quirk
ASoC: Intel: bytcr_rt5640: Add quirk for the Medion Lifetab S10346
platform/x86: thinkpad_acpi: fix for incorrect fan reporting on some ThinkPad systems
HID: nintendo: fix initializer element is not constant error
kselftest: alsa: fixed a print formatting warning
Input: xpad - add Razer Wolverine V2 support
wifi: iwlwifi: pcie: avoid a NULL pointer dereference
ARC: fix spare error
s390/scm: fix virtual vs physical address confusion
Input: i8042 - add nomux quirk for Acer P459-G2-M
Input: atkbd - skip ATKBD_CMD_GETID in translated mode
reset: hisilicon: hi6220: fix Wvoid-pointer-to-enum-cast warning
Input: psmouse - enable Synaptics InterTouch for ThinkPad L14 G1
ring-buffer: Do not record in NMI if the arch does not support cmpxchg in NMI
tracing: Fix uaf issue when open the hist or hist_debug file
MIPS: dts: loongson: drop incorrect dwmac fallback compatible
stmmac: dwmac-loongson: drop useless check for compatible fallback
tracing: Add size check when printing trace_marker output
tracing: Have large events show up as '[LINE TOO BIG]' instead of nothing
jbd2: fix soft lockup in journal_finish_inode_data_buffers()
platform/x86: intel-vbtn: Fix missing tablet-mode-switch events
neighbour: Don't let neigh_forced_gc() disable preemption for long
drm/crtc: Fix uninit-value bug in drm_mode_setcrtc
jbd2: increase the journal IO's priority
jbd2: correct the printing of write_flags in jbd2_write_superblock()
clk: rockchip: rk3128: Fix HCLK_OTG gate register
clk: rockchip: rk3568: Add PLL rate for 292.5MHz
LoongArch: Preserve syscall nr across execve()
hwmon: (corsair-psu) Fix probe when built-in
drm/exynos: fix a wrong error checking
drm/exynos: fix a potential error pointer dereference
drm/amdgpu: Add NULL checks for function pointers
arm64: dts: rockchip: Fix PCI node addresses on rk3399-gru
nvme: prevent potential spectre v1 gadget
nvme: introduce helper function to get ctrl state
ASoC: ops: add correct range check for limiting volume
ASoC: da7219: Support low DC impedance headset
net/tg3: fix race condition in tg3_reset_task()
ASoC: hdac_hda: Conditionally register dais for HDMI and Analog
ASoC: amd: yc: Add DMI entry to support System76 Pangolin 13
nouveau/tu102: flush all pdbs on vmm flush
ASoC: Intel: skl_hda_dsp_generic: Drop HDMI routes when HDMI is not available
ASoC: rt5650: add mutex to avoid the jack detection failure
ASoC: cs43130: Fix incorrect frame delay configuration
ASoC: cs43130: Fix the position of const qualifier
ASoC: Intel: Skylake: mem leak in skl register function
ASoC: nau8822: Fix incorrect type in assignment and cast to restricted __be16
ASoC: Intel: Skylake: Fix mem leak in few functions
arm64: dts: rockchip: fix rk356x pcie msg interrupt name
ASoC: wm8974: Correct boost mixer inputs
hwtracing: hisi_ptt: Don't try to attach a task
hwtracing: hisi_ptt: Handle the interrupt in hardirq context
nvme-core: check for too small lba shift
blk-mq: don't count completed flush data request as inflight in case of quiesce
smb: client, common: fix fortify warnings
drm/amdgpu: Fix cat debugfs amdgpu_regs_didt causes kernel null pointer
drm/amd/display: update dcn315 lpddr pstate latency
nvme-core: fix a memory leak in nvme_ns_info_from_identify()
ALSA: hda: intel-nhlt: Ignore vbps when looking for DMIC 32 bps format
debugfs: fix automount d_fsdata usage
wifi: mac80211: handle 320 MHz in ieee80211_ht_cap_ie_to_sta_ht_cap
wifi: avoid offset calculation on NULL pointer
wifi: cfg80211: lock wiphy mutex for rfkill poll
mptcp: fix uninit-value in mptcp_incoming_options
ALSA: hda - Fix speaker and headset mic pin config for CHUWI CoreBook XPro
pinctrl: lochnagar: Don't build on MIPS
f2fs: explicitly null-terminate the xattr list
ANDROID: Enable CONFIG_LAZY_RCU in x86 gki_defconfig
ANDROID: fuse-bpf: Fix the issue of abnormal lseek system calls
ANDROID: ABI: Update symbol list for imx
BACKPORT: PM: sleep: Fix possible deadlocks in core system-wide PM code
UPSTREAM: async: Introduce async_schedule_dev_nocall()
UPSTREAM: async: Split async_schedule_node_domain()
FROMGIT: BACKPORT: mm: update mark_victim tracepoints fields
ANDROID: Enable CONFIG_LAZY_RCU in arm64 gki_defconfig
FROMLIST: rcu: Provide a boot time parameter to control lazy RCU
ANDROID: rcu: Add a minimum time for marking boot as completed
UPSTREAM: rcu: Disable laziness if lazy-tracking says so
UPSTREAM: rcu: Track laziness during boot and suspend
UPSTREAM: net: Use call_rcu_hurry() for dst_release()
UPSTREAM: workqueue: Make queue_rcu_work() use call_rcu_hurry()
UPSTREAM: percpu-refcount: Use call_rcu_hurry() for atomic switch
UPSTREAM: io_uring: use call_rcu_hurry if signaling an eventfd
UPSTREAM: rcu: Update synchronize_rcu_mult() comment for call_rcu_hurry()
UPSTREAM: scsi/scsi_error: Use call_rcu_hurry() instead of call_rcu()
UPSTREAM: rcu/rcutorture: Use call_rcu_hurry() where needed
UPSTREAM: rcu/rcuscale: Use call_rcu_hurry() for async reader test
UPSTREAM: rcu/sync: Use call_rcu_hurry() instead of call_rcu
BACKPORT: rcu: Shrinker for lazy rcu
UPSTREAM: rcu: Refactor code a bit in rcu_nocb_do_flush_bypass()
UPSTREAM: rcu: Make call_rcu() lazy to save power
UPSTREAM: rcu: Fix missing nocb gp wake on rcu_barrier()
UPSTREAM: rcu: Fix late wakeup when flush of bypass cblist happens
ANDROID: Update the ABI symbol list
ANDROID: GKI: add GKI symbol list for Exynosauto SoC
UPSTREAM: coresight: tmc: Don't enable TMC when it's not ready.
UPSTREAM: netfilter: nf_tables: bail out on mismatching dynset and set expressions
Revert "ipv6: remove max_size check inline with ipv4"
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: add hooks in driver/android/binder.c
ANDROID: GKI: Update honda symbol list for xt_LOG
ANDROID: GKI: Update honda symbol list for ebt filter
ANDROID: GKI: Update honda symbol list for ebtables
ANDROID: GKI: Update honda symbol list for net scheduler
ANDROID: GKI: Update honda symbol list for led-trigger
ANDROID: GKI: Add initial symbol list for honda
ANDROID: GKI: add symbols to ABI
ANDROID: db845c: Enable device tree overlay support
FROMGIT: usb: dwc: ep0: Update request status in dwc3_ep0_stall_restart
FROMGIT: usb: dwc3: set pm runtime active before resume common
Linux 6.1.73
cifs: fix flushing folio regression for 6.1 backport
ipv6: remove max_size check inline with ipv4
Revert "nfsd: separate nfsd_last_thread() from nfsd_put()"
Revert "nfsd: call nfsd_last_thread() before final nfsd_put()"
ANDROID: Update the pixel symbol list
Revert "splice, net: Add a splice_eof op to file-ops and socket-ops"
Revert "ipv4, ipv6: Use splice_eof() to flush"
Revert "udp: introduce udp->udp_flags"
Revert "udp: move udp->no_check6_tx to udp->udp_flags"
Revert "udp: move udp->no_check6_rx to udp->udp_flags"
Revert "udp: move udp->gro_enabled to udp->udp_flags"
Revert "udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags"
Revert "udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO"
Revert "udp: annotate data-races around udp->encap_type"
Revert "bpf, sockmap: af_unix stream sockets need to hold ref for pair sock"
Revert "bpf: decouple prune and jump points"
Revert "bpf: remove unnecessary prune and jump points"
Revert "bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()"
Revert "bpf: clean up visit_insn()'s instruction processing"
Revert "bpf: Support new 32bit offset jmp instruction"
Revert "bpf: handle ldimm64 properly in check_cfg()"
Revert "bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4"
Revert "device property: Allow const parameter to dev_fwnode()"
BACKPORT: UPSTREAM: phy: qcom-qmp: Introduce Kconfig symbols for discrete drivers
ANDROID: GKI: add symbols of vendor hooks to ABI for swapping in ahead
ANDROID: GKI: add vendor hooks for swapping in ahead
Reapply "kasan: print the original fault addr when access invalid shadow"
ANDROID: GKI: fix crc issue in include/net/addrconf.h
ANDROID: add 16k targets for Microdroid kernel
Revert "cred: switch to using atomic_long_t"
FROMGIT: BACKPORT: mm/cma: fix placement of trace_cma_alloc_start/finish
FROMGIT: wifi: nl80211: Extend del pmksa support for SAE and OWE security
ANDROID: Update the ABI symbol list
ANDROID: mm: export dump_tasks symbol.
FROMLIST: scsi: ufs: Remove the ufshcd_hba_exit() call from ufshcd_async_scan()
FROMLIST: scsi: ufs: Simplify power management during async scan
Linux 6.1.72
Revert "interconnect: qcom: sm8250: Enable sync_state"
smb3: Replace smb2pdu 1-element arrays with flex-arrays
media: qcom: camss: Comment CSID dt_id field
bpf: syzkaller found null ptr deref in unix_bpf proto add
bpf: Fix a verifier bug due to incorrect branch offset comparison with cpu=v4
net/sched: act_ct: Always fill offloading tuple iifidx
net/sched: act_ct: additional checks for outdated flows
f2fs: compress: fix to assign compress_level for lz4 correctly
genirq/affinity: Only build SMP-only helper functions on SMP kernels
mmc: sdhci-sprd: Fix eMMC init failure after hw reset
mmc: core: Cancel delayed work before releasing host
mmc: rpmb: fixes pause retune on all RPMB partitions.
mmc: meson-mx-sdhc: Fix initialization frozen issue
drm/amd/display: add nv12 bounding box
drm/amdgpu: skip gpu_info fw loading on navi12
mm: fix unmap_mapping_range high bits shift bug
i2c: core: Fix atomic xfer check for non-preempt config
x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
ring-buffer: Fix 32-bit rb_time_read() race with rb_time_cmpxchg()
btrfs: mark the len field in struct btrfs_ordered_sum as unsigned
btrfs: fix qgroup_free_reserved_data int overflow
octeontx2-af: Support variable number of lmacs
octeontx2-af: Fix pause frame configuration
net/sched: act_ct: Take per-cb reference to tcf_ct_flow_table
netfilter: flowtable: GC pushes back packets to classic path
net/sched: act_ct: Fix promotion of offloaded unreplied tuple
net/sched: act_ct: offload UDP NEW connections
netfilter: flowtable: cache info of last offload
netfilter: flowtable: allow unidirectional rules
net: sched: call tcf_ct_params_free to free params in tcf_ct_init
mm/memory_hotplug: fix error handling in add_memory_resource()
mm/memory_hotplug: add missing mem_hotplug_lock
lib/group_cpus.c: avoid acquiring cpu hotplug lock in group_cpus_evenly
genirq/affinity: Move group_cpus_evenly() into lib/
genirq/affinity: Rename irq_build_affinity_masks as group_cpus_evenly
genirq/affinity: Don't pass irq_affinity_desc array to irq_build_affinity_masks
genirq/affinity: Pass affinity managed mask array to irq_build_affinity_masks
genirq/affinity: Remove the 'firstvec' parameter from irq_build_affinity_masks
ALSA: hda/realtek: Add quirk for Lenovo Yoga Pro 7
firmware: arm_scmi: Fix frequency truncation by promoting multiplier type
bpf, sockmap: af_unix stream sockets need to hold ref for pair sock
ethtool: don't propagate EOPNOTSUPP from dumps
dpaa2-eth: recycle the RX buffer only after all processing done
net: dpaa2-eth: rearrange variable in dpaa2_eth_get_ethtool_stats
smb: client: fix missing mode bits for SMB symlinks
block: update the stable_writes flag in bdev_add
filemap: add a per-mapping stable writes flag
mm, netfs, fscache: stop read optimisation when folio removed from pagecache
mm: merge folio_has_private()/filemap_release_folio() call pairs
memory-failure: convert truncate_error_page() to use folio
khugepage: replace try_to_release_page() with filemap_release_folio()
ext4: convert move_extent_per_page() to use folios
media: qcom: camss: Fix set CSI2_RX_CFG1_VC_MODE when VC is greater than 3
media: camss: sm8250: Virtual channels for CSID
selftests: mptcp: set FAILING_LINKS in run_tests
selftests: mptcp: fix fastclose with csum failure
f2fs: set the default compress_level on ioctl
f2fs: assign default compression level
f2fs: convert to use bitmap API
f2fs: clean up i_compress_flag and i_compress_level usage
s390/cpumf: support user space events for counting
s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
net/mlx5: Increase size of irq name buffer
blk-mq: make sure active queue usage is held for bio_integrity_prep()
bpf: fix precision backtracking instruction iteration
bpf: handle ldimm64 properly in check_cfg()
bpf: Support new 32bit offset jmp instruction
bpf: clean up visit_insn()'s instruction processing
bpf: Remove unused insn_cnt argument from visit_[func_call_]insn()
bpf: remove unnecessary prune and jump points
bpf: decouple prune and jump points
fbdev: imsttfb: fix double free in probe()
fbdev: imsttfb: Release framebuffer and dealloc cmap on error path
arm64: dts: qcom: sdm845: Fix PSCI power domain names
arm64: dts: qcom: sdm845: align RPMh regulator nodes with bindings
wifi: iwlwifi: yoyo: swap cdb and jacket bits values
udp: annotate data-races around udp->encap_type
udp: lockless UDP_ENCAP_L2TPINUDP / UDP_GRO
udp: move udp->accept_udp_{l4|fraglist} to udp->udp_flags
udp: move udp->gro_enabled to udp->udp_flags
udp: move udp->no_check6_rx to udp->udp_flags
udp: move udp->no_check6_tx to udp->udp_flags
udp: introduce udp->udp_flags
ipv4, ipv6: Use splice_eof() to flush
splice, net: Add a splice_eof op to file-ops and socket-ops
udp: Convert udp_sendpage() to use MSG_SPLICE_PAGES
net: Declare MSG_SPLICE_PAGES internal sendmsg() flag
bpf, x86: save/restore regs with BPF_DW size
bpf, x86: Simplify the parsing logic of structure parameters
bpf, x64: Fix tailcall infinite loop
srcu: Fix callbacks acceleration mishandling
cpu/SMT: Make SMT control more robust against enumeration failures
cpu/SMT: Create topology_smt_thread_allowed()
selftests: secretmem: floor the memory size to the multiple of page_size
net: Implement missing SO_TIMESTAMPING_NEW cmsg support
bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
net: ravb: Wait for operating mode to be applied
asix: Add check for usbnet_get_endpoints
octeontx2-af: Re-enable MAC TX in otx2_stop processing
octeontx2-af: Always configure NIX TX link credits based on max frame size
net/smc: fix invalid link access in dumping SMC-R connections
net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
igc: Fix hicredit calculation
i40e: Restore VF MSI-X state during PCI reset
ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
ASoC: meson: g12a-toacodec: Fix event generation
ASoC: meson: g12a-tohdmitx: Validate written enum values
ASoC: meson: g12a-toacodec: Validate written enum values
i40e: fix use-after-free in i40e_aqc_add_filters()
net: Save and restore msg_namelen in sock_sendmsg
netfilter: nft_immediate: drop chain reference counter on error
net: bcmgenet: Fix FCS generation for fragmented skbuffs
sfc: fix a double-free bug in efx_probe_filters
ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init
selftests: bonding: do not set port down when adding to bond
net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)
net: annotate data-races around sk->sk_bind_phc
net: annotate data-races around sk->sk_tsflags
net-timestamp: extend SOF_TIMESTAMPING_OPT_ID to HW timestamps
can: raw: add support for SO_MARK
r8169: Fix PCI error on system resume
net: sched: em_text: fix possible memory leak in em_text_destroy()
mlxbf_gige: fix receive packet race condition
ASoC: mediatek: mt8186: fix AUD_PAD_TOP register and offset
ASoC: fsl_rpmsg: Fix error handler with pm_runtime_enable
igc: Check VLAN EtherType mask
igc: Check VLAN TCI mask
igc: Report VLAN EtherType matching back to user
i40e: Fix filter input checks to prevent config with invalid values
ice: Shut down VSI with "link-down-on-close" enabled
ice: Fix link_down_on_close message
drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern
octeontx2-af: Fix marking couple of structure as __packed
nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local
netfilter: nf_tables: set transport offset from mac header for netdev/egress
netfilter: use skb_ip_totlen and iph_totlen
drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer
wifi: iwlwifi: pcie: don't synchronize IRQs from IRQ
KVM: x86/pmu: fix masking logic for MSR_CORE_PERF_GLOBAL_CTRL
cifs: do not depend on release_iface for maintaining iface_list
cifs: cifs_chan_is_iface_active should be called with chan_lock held
drm/mgag200: Fix gamma lut not initialized for G200ER, G200EV, G200SE
Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"
mptcp: prevent tcp diag from closing listener subflows
ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6
ALSA: hda/realtek: fix mute/micmute LEDs for a HP ZBook
ALSA: hda/realtek: enable SND_PCI_QUIRK for hp pavilion 14-ec1xxx series
block: Don't invalidate pagecache for invalid falloc modes
keys, dns: Fix missing size check of V1 server-list header
ANDROID: gki_defconfig: Set CONFIG_IDLE_INJECT and CONFIG_CPU_IDLE_THERMAL into y
ANDROID: KMI workaround for CONFIG_NETFILTER_FAMILY_BRIDGE
ANDROID: dma-buf: don't re-purpose kobject as work_struct
BACKPORT: FROMLIST: dma-buf: Move sysfs work out of DMA-BUF export path
UPSTREAM: netfilter: nf_tables: skip set commit for deleted/destroyed sets
ANDROID: KVM: arm64: Avoid BUG-ing from the host abort path
ANDROID: Update the ABI symbol list
UPSTREAM: ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
UPSTREAM: nvmet-tcp: Fix a possible UAF in queue intialization setup
FROMGIT: usb: dwc3: gadget: Handle EP0 request dequeuing properly
ANDROID: ABI: Update symbol list for imx
UPSTREAM: io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid
UPSTREAM: bpf: Fix prog_array_map_poke_run map poke update
BACKPORT: xhci: track port suspend state correctly in unsuccessful resume cases
ANDROID: fix crc error in put_cmsg caused in 6.1.68
ANDROID: Update the ABI symbol list
ANDROID: sched: Export symbols for vendor modules
UPSTREAM: usb: dwc3: core: add support for disabling High-speed park mode
Linux 6.1.71
Revert "platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe"
tracing/kprobes: Fix symbol counting logic by looking at modules as well
kallsyms: Make module_kallsyms_on_each_symbol generally available
device property: Allow const parameter to dev_fwnode()
spi: Constify spi parameters of chip select APIs
NFSD: fix possible oops when nfsd/pool_stats is closed.
ring-buffer: Fix slowpath of interrupted event
netfilter: nf_tables: skip set commit for deleted/destroyed sets
ring-buffer: Remove useless update to write_stamp in rb_try_to_discard()
tracing: Fix blocked reader of snapshot buffer
ring-buffer: Fix wake ups when buffer_percent is set to 100
mm/memory-failure: check the mapcount of the precise page
mm/memory-failure: cast index to loff_t before shifting it
mm: migrate high-order folios in swap cache correctly
mm/filemap: avoid buffered read/write race to read inconsistent data
platform/x86: p2sb: Allow p2sb_bar() calls during PCI device probe
ksmbd: fix slab-out-of-bounds in smb_strndup_from_utf16()
block: renumber QUEUE_FLAG_HW_WC
spi: atmel: Fix clock issue when using devices with different polarities
spi: Add APIs in spi core to set/get spi->chip_select and spi->cs_gpiod
spi: Reintroduce spi_set_cs_timing()
linux/export: Ensure natural alignment of kcrctab array
nfsd: call nfsd_last_thread() before final nfsd_put()
nfsd: separate nfsd_last_thread() from nfsd_put()
iio: imu: adis16475: add spi_device_id table
spi: Introduce spi_get_device_match_data() helper
usb: fotg210-hcd: delete an incorrect bounds test
ARM: dts: Fix occasional boot hang for am3 usb
ksmbd: fix wrong allocation size update in smb2_open()
ksmbd: avoid duplicate opinfo_put() call on error of smb21_lease_break_ack()
ksmbd: lazy v2 lease break on smb2_write()
ksmbd: send v2 lease break notification for directory
ksmbd: downgrade RWH lease caching state to RH for directory
ksmbd: set v2 lease capability
ksmbd: set epoch in create context v2 lease
ksmbd: don't update ->op_state as OPLOCK_STATE_NONE on error
ksmbd: move setting SMB2_FLAGS_ASYNC_COMMAND and AsyncId
ksmbd: release interim response after sending status pending response
ksmbd: move oplock handling after unlock parent dir
ksmbd: separately allocate ci per dentry
ksmbd: fix possible deadlock in smb2_open
ksmbd: prevent memory leak on error return
ksmbd: fix kernel-doc comment of ksmbd_vfs_kern_path_locked()
ksmbd: no need to wait for binded connection termination at logoff
ksmbd: add support for surrogate pair conversion
ksmbd: fix missing RDMA-capable flag for IPoIB device in ksmbd_rdma_capable_netdev()
ksmbd: fix recursive locking in vfs helpers
ksmbd: fix kernel-doc comment of ksmbd_vfs_setxattr()
ksmbd: reorganize ksmbd_iov_pin_rsp()
ksmbd: Remove unused field in ksmbd_user struct
ksmbd: fix potential double free on smb2_read_pipe() error path
ksmbd: fix Null pointer dereferences in ksmbd_update_fstate()
ksmbd: fix wrong error response status by using set_smb2_rsp_status()
ksmbd: fix race condition between tree conn lookup and disconnect
ksmbd: fix race condition from parallel smb2 lock requests
ksmbd: fix race condition from parallel smb2 logoff requests
ksmbd: fix race condition with fp
ksmbd: check iov vector index in ksmbd_conn_write()
ksmbd: return invalid parameter error response if smb2 request is invalid
ksmbd: fix passing freed memory 'aux_payload_buf'
ksmbd: remove unneeded mark_inode_dirty in set_info_sec()
ksmbd: remove experimental warning
ksmbd: add missing calling smb2_set_err_rsp() on error
ksmbd: Fix one kernel-doc comment
ksmbd: fix `force create mode' and `force directory mode'
ksmbd: fix wrong interim response on compound
ksmbd: add support for read compound
ksmbd: switch to use kmemdup_nul() helper
ksmbd: check if a mount point is crossed during path lookup
ksmbd: Fix unsigned expression compared with zero
ksmbd: Replace one-element array with flexible-array member
ksmbd: Use struct_size() helper in ksmbd_negotiate_smb_dialect()
ksmbd: Replace the ternary conditional operator with min()
ksmbd: use kvzalloc instead of kvmalloc
ksmbd: Change the return value of ksmbd_vfs_query_maximal_access to void
ksmbd: return a literal instead of 'err' in ksmbd_vfs_kern_path_locked()
ksmbd: use kzalloc() instead of __GFP_ZERO
ksmbd: remove unused ksmbd_tree_conn_share function
ksmbd: add mnt_want_write to ksmbd vfs functions
ksmbd: fix posix_acls and acls dereferencing possible ERR_PTR()
ksmbd: call putname after using the last component
ksmbd: fix uninitialized pointer read in smb2_create_link()
ksmbd: fix uninitialized pointer read in ksmbd_vfs_rename()
ksmbd: fix racy issue from using ->d_parent and ->d_name
fs: introduce lock_rename_child() helper
ksmbd: remove unused compression negotiate ctx packing
ksmbd: avoid duplicate negotiate ctx offset increments
ksmbd: set NegotiateContextCount once instead of every inc
ksmbd: delete asynchronous work from list
ksmbd: remove unused is_char_allowed function
ksmbd: Fix parameter name and comment mismatch
ksmbd: Fix spelling mistake "excceed" -> "exceeded"
ksmbd: update Kconfig to note Kerberos support and fix indentation
ksmbd: Remove duplicated codes
ksmbd: fix typo, syncronous->synchronous
ksmbd: Implements sess->rpc_handle_list as xarray
ksmbd: Convert to use sysfs_emit()/sysfs_emit_at() APIs
ksmbd: Fix resource leak in smb2_lock()
ksmbd: use F_SETLK when unlocking a file
ksmbd: set SMB2_SESSION_FLAG_ENCRYPT_DATA when enforcing data encryption for this share
ksmbd: replace one-element arrays with flexible-array members
Revert "hrtimers: Push pending hrtimers away from outgoing CPU earlier"
Revert "drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group"
ANDROID: KVM: arm64: Don't prepopulate MMIO regions for host stage-2
BACKPORT: FROMGIT fork: use __mt_dup() to duplicate maple tree in dup_mmap()
FROMGIT: maple_tree: preserve the tree attributes when destroying maple tree
FROMGIT: maple_tree: update check_forking() and bench_forking()
FROMGIT: maple_tree: skip other tests when BENCH is enabled
FROMGIT: maple_tree: update the documentation of maple tree
FROMGIT: maple_tree: add test for mtree_dup()
FROMGIT: radix tree test suite: align kmem_cache_alloc_bulk() with kernel behavior.
FROMGIT: maple_tree: introduce interfaces __mt_dup() and mtree_dup()
FROMGIT: maple_tree: introduce {mtree,mas}_lock_nested()
FROMGIT: maple_tree: add mt_free_one() and mt_attr() helpers
UPSTREAM: maple_tree: introduce __mas_set_range()
ANDROID: GKI: Enable symbols for v4l2 in async and fwnode
Revert "mmc: core: add helpers mmc_regulator_enable/disable_vqmmc"
Revert "mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled"
ANDROID: Update the ABI symbol list
ANDROID: KVM: arm64: Fix hyp event alignment
ANDROID: KVM: arm64: Fix host_smc print typo
FROMGIT: f2fs: do not return EFSCORRUPTED, but try to run online repair
ANDROID: KVM: arm64: Document module_change_host_prot_range
Revert "mmc: core: add helpers mmc_regulator_enable/disable_vqmmc"
Revert "mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled"
FROMGIT: PM / devfreq: Synchronize devfreq_monitor_[start/stop]
FROMGIT: arch/mm/fault: fix major fault accounting when retrying under per-VMA lock
UPSTREAM: mm: handle write faults to RO pages under the VMA lock
UPSTREAM: mm: handle read faults under the VMA lock
UPSTREAM: mm: handle COW faults under the VMA lock
UPSTREAM: mm: handle shared faults under the VMA lock
BACKPORT: mm: call wp_page_copy() under the VMA lock
UPSTREAM: mm: make lock_folio_maybe_drop_mmap() VMA lock aware
UPSTREAM: mm/memory.c: fix mismerge
ANDROID: Export functions to be used with dma_map_ops in modules
BACKPORT: FROMGIT: erofs: enable sub-page compressed block support
FROMGIT: erofs: refine z_erofs_transform_plain() for sub-page block support
FROMGIT: erofs: fix ztailpacking for subpage compressed blocks
BACKPORT: FROMGIT: erofs: fix up compacted indexes for block size < 4096
FROMGIT: erofs: record `pclustersize` in bytes instead of pages
FROMGIT: erofs: support I/O submission for sub-page compressed blocks
FROMGIT: erofs: fix lz4 inplace decompression
FROMGIT: erofs: fix memory leak on short-lived bounced pages
BACKPORT: erofs: tidy up z_erofs_do_read_page()
UPSTREAM: erofs: move preparation logic into z_erofs_pcluster_begin()
BACKPORT: erofs: avoid obsolete {collector,collection} terms
BACKPORT: erofs: simplify z_erofs_read_fragment()
UPSTREAM: erofs: get rid of the remaining kmap_atomic()
UPSTREAM: erofs: simplify z_erofs_transform_plain()
BACKPORT: erofs: adapt managed inode operations into folios
UPSTREAM: erofs: avoid on-stack pagepool directly passed by arguments
UPSTREAM: erofs: allocate extra bvec pages directly instead of retrying
UPSTREAM: erofs: clean up z_erofs_pcluster_readmore()
UPSTREAM: erofs: remove the member readahead from struct z_erofs_decompress_frontend
UPSTREAM: erofs: fold in z_erofs_decompress()
UPSTREAM: erofs: enable large folios for iomap mode
ANDROID: Update the ABI symbol list
UPSTREAM: USB: gadget: core: adjust uevent timing on gadget unbind
Linux 6.1.70
loop: deprecate autoloading callback loop_probe()
wifi: nl80211: fix deadlock in nl80211_set_cqm_rssi (6.6.x)
wifi: cfg80211: fix CQM for non-range use
fuse: share lookup state between submount and its parent
mm/damon/core: make damon_start() waits until kdamond_fn() starts
x86/alternatives: Sync core before enabling interrupts
KVM: arm64: vgic: Force vcpu vgic teardown on vcpu destroy
KVM: arm64: vgic: Add a non-locking primitive for kvm_vgic_vcpu_destroy()
KVM: arm64: vgic: Simplify kvm_vgic_destroy()
thunderbolt: Fix memory leak in margining_port_remove()
lib/vsprintf: Fix %pfwf when current node refcount == 0
gpio: dwapb: mask/unmask IRQ when disable/enale it
bus: ti-sysc: Flush posted write only after srst_udelay
pinctrl: starfive: jh7100: ignore disabled device tree nodes
dm-integrity: don't modify bio's immutable bio_vec in integrity_metadata()
tracing / synthetic: Disable events after testing in synth_event_gen_test_init()
scsi: core: Always send batch on reset or error handling command
Revert "scsi: aacraid: Reply queue mapping to CPUs based on IRQ affinity"
selftests: mptcp: join: fix subflow_send_ack lookup
ublk: move ublk_cancel_dev() out of ub->mutex
ubifs: fix possible dereference after free
btrfs: zoned: no longer count fresh BG region as zone unusable
Revert "drm/amd/display: Do not set DRR on pipe commit"
dm thin metadata: Fix ABBA deadlock by resetting dm_bufio_client
loop: do not enforce max_loop hard limit by (new) default
RISC-V: Fix do_notify_resume / do_work_pending prototype
9p: prevent read overrun in protocol dump tracepoint
drm/i915: Reject async flips with bigjoiner
smb: client: fix OOB in smbCalcSize()
smb: client: fix OOB in SMB2_query_info_init()
smb: client: fix potential OOB in cifs_dump_detail()
smb: client: fix OOB in cifsd when receiving compounded resps
dt-bindings: nvmem: mxs-ocotp: Document fsl,ocotp
net: ks8851: Fix TX stall caused by TX buffer overrun
net: rfkill: gpio: set GPIO direction
net: 9p: avoid freeing uninit memory in p9pdu_vreadf
Input: soc_button_array - add mapping for airplane mode button
net: usb: ax88179_178a: avoid failed operations when device is disconnected
Bluetooth: Add more enc key size check
Bluetooth: MGMT/SMP: Fix address type when using SMP over BREDR/LE
Bluetooth: L2CAP: Send reject on command corrupted request
Bluetooth: af_bluetooth: Fix Use-After-Free in bt_sock_recvmsg
Bluetooth: hci_event: Fix not checking if HCI_OP_INQUIRY has been sent
ALSA: hda/realtek: Add quirk for ASUS ROG GV302XA
USB: serial: option: add Quectel RM500Q R13 firmware support
USB: serial: option: add Foxconn T99W265 with new baseline
USB: serial: option: add Quectel EG912Y module support
USB: serial: ftdi_sio: update Actisense PIDs constant names
wifi: cfg80211: fix certs build to not depend on file order
wifi: cfg80211: Add my certificate
usb-storage: Add quirk for incorrect WP on Kingston DT Ultimate 3.0 G3
ALSA: usb-audio: Increase delay in MOTU M quirk
iio: triggered-buffer: prevent possible freeing of wrong buffer
iio: adc: ti_am335x_adc: Fix return value check of tiadc_request_dma()
iio: common: ms_sensors: ms_sensors_i2c: fix humidity conversion time table
scsi: bnx2fc: Fix skb double free in bnx2fc_rcv()
Input: ipaq-micro-keys - add error handling for devm_kmemdup
interconnect: qcom: sm8250: Enable sync_state
iio: imu: inv_mpu6050: fix an error code problem in inv_mpu6050_read_raw
interconnect: Treat xlate() returning NULL node as an error
drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original
drm/i915/mtl: Add MTL for remapping CCS FBs
drm/i915/dpt: Only do the POT stride remap when using DPT
drm/i915: Fix intel_atomic_setup_scalers() plane_state handling
drm/i915: Relocate intel_atomic_setup_scalers()
drm/i915/mtl: limit second scaler vertical scaling in ver >= 14
nvme-pci: fix sleeping function called from interrupt context
gpiolib: cdev: add gpio_device locking wrapper around gpio_ioctl()
pinctrl: at91-pio4: use dedicated lock class for IRQ
x86/xen: add CPU dependencies for 32-bit build
i2c: aspeed: Handle the coalesced stop conditions with the start conditions.
ASoC: fsl_sai: Fix channel swap issue on i.MX8MP
ASoC: hdmi-codec: fix missing report for jack initial status
afs: Fix use-after-free due to get/remove race in volume tree
afs: Fix overwriting of result of DNS query
keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry
net: check dev->gso_max_size in gso_features_check()
afs: Fix dynamic root lookup DNS check
afs: Fix the dynamic root's d_delete to always delete unused dentries
net: check vlan filter feature in vlan_vids_add_by_dev() and vlan_vids_del_by_dev()
net: mana: select PAGE_POOL
Bluetooth: hci_event: shut up a false-positive warning
Bluetooth: Fix deadlock in vhci_send_frame
net/rose: fix races in rose_kill_by_device()
ethernet: atheros: fix a memleak in atl1e_setup_ring_resources
net: sched: ife: fix potential use-after-free
net: Return error from sk_stream_wait_connect() if sk_wait_event() fails
octeontx2-pf: Fix graceful exit during PFC configuration failure
net: mscc: ocelot: fix eMAC TX RMON stats for bucket 256-511 and above
net/mlx5e: Correct snprintf truncation handling for fw_version buffer used by representors
net/mlx5e: Correct snprintf truncation handling for fw_version buffer
net/mlx5: Fix fw tracer first block check
net/mlx5e: fix a potential double-free in fs_udp_create_groups
net/mlx5e: Fix a race in command alloc flow
net/mlx5: Re-organize mlx5_cmd struct
net/mlx5: Prevent high-rate FW commands from populating all slots
net/mlx5: Introduce and use opcode getter in command interface
net/mlx5e: Fix slab-out-of-bounds in mlx5_query_nic_vport_mac_list()
Revert "net/mlx5e: fix double free of encap_header"
Revert "net/mlx5e: fix double free of encap_header in update funcs"
wifi: mac80211: mesh_plink: fix matches_local logic
wifi: mac80211: mesh: check element parsing succeeded
wifi: mac80211: check if the existing link config remains unchanged
wifi: iwlwifi: pcie: add another missing bh-disable for rxq->lock
s390/vx: fix save/restore of fpu kernel context
reset: Fix crash when freeing non-existent optional resets
ARM: OMAP2+: Fix null pointer dereference and memory leak in omap_soc_device_init
ARM: dts: dra7: Fix DRA7 L3 NoC node register size
drm/amd/display: fix hw rotated modes when PSR-SU is enabled
HID: i2c-hid: Add IDEA5002 to i2c_hid_acpi_blacklist[]
HID: i2c-hid: acpi: Unify ACPI ID tables format
bpf: Fix prog_array_map_poke_run map poke update
kasan: disable kasan_non_canonical_hook() for HW tags
ANDROID: ABI: Update oplus symbol list
ANDROID: vendor_hooks: Add hooks for rt_mutex steal
UPSTREAM: dm verity: don't perform FEC for failed readahead IO
UPSTREAM: netfilter: nft_set_pipapo: skip inactive elements during set walk
FROMLIST: mm: migrate high-order folios in swap cache correctly
ANDROID: fuse-bpf: Follow mounts in lookups
Linux 6.1.69
r8152: fix the autosuspend doesn't work
r8152: remove rtl_vendor_mode function
r8152: avoid to change cfg for all devices
net: tls, update curr on splice as well
ring-buffer: Have rb_time_cmpxchg() set the msb counter too
ring-buffer: Do not try to put back write_stamp
ring-buffer: Fix a race in rb_time_cmpxchg() for 32 bit archs
ring-buffer: Fix writing to the buffer with max_data_size
ring-buffer: Have saved event hold the entire event
ring-buffer: Do not update before stamp when switching sub-buffers
tracing: Update snapshot buffer on resize if it is allocated
ring-buffer: Fix memory leak of free page
smb: client: fix OOB in smb2_query_reparse_point()
smb: client: fix NULL deref in asn1_ber_decoder()
smb: client: fix OOB in receive_encrypted_standard()
drm/i915: Fix remapped stride with CCS on ADL+
drm/amd/display: Disable PSR-SU on Parade 0803 TCON again
drm/amdgpu: fix tear down order in amdgpu_vm_pt_free
btrfs: don't clear qgroup reserved bit in release_folio
btrfs: free qgroup reserve when ORDERED_IOERR is set
mm/shmem: fix race in shmem_undo_range w/THP
mm/mglru: fix underprotected page cache
dmaengine: stm32-dma: avoid bitfield overflow assertion
drm/amdgpu/sdma5.2: add begin/end_use ring callbacks
team: Fix use-after-free when an option instance allocation fails
arm64: mm: Always make sw-dirty PTEs hw-dirty in pte_modify
ext4: prevent the normalized size from exceeding EXT_MAX_BLOCKS
soundwire: stream: fix NULL pointer dereference for multi_link
btrfs: do not allow non subvolume root targets for snapshot
perf: Fix perf_event_validate_size() lockdep splat
HID: hid-asus: add const to read-only outgoing usb buffer
arm64: add dependency between vmlinuz.efi and Image
net: usb: qmi_wwan: claim interface 4 for ZTE MF290
asm-generic: qspinlock: fix queued_spin_value_unlocked() implementation
HID: multitouch: Add quirk for HONOR GLO-GXXX touchpad
HID: hid-asus: reset the backlight brightness level on resume
nbd: pass nbd_sock to nbd_read_reply() instead of index
HID: add ALWAYS_POLL quirk for Apple kb
HID: glorious: fix Glorious Model I HID report
platform/x86: intel_telemetry: Fix kernel doc descriptions
LoongArch: Implement constant timer shutdown interface
LoongArch: Add dependency between vmlinuz.efi and vmlinux.efi
selftests/bpf: fix bpf_loop_bench for new callback verification scheme
nvme: catch errors from nvme_configure_metadata()
nvme-auth: set explanation code for failure2 msgs
nbd: fold nbd config initialization into nbd_alloc_config()
bcache: avoid NULL checking to c->root in run_cache_set()
bcache: add code comments for bch_btree_node_get() and __bch_btree_node_alloc()
bcache: remove redundant assignment to variable cur_idx
bcache: avoid oversize memory allocation by small stripe_size
blk-cgroup: bypass blkcg_deactivate_policy after destroying
blk-throttle: fix lockdep warning of "cgroup_mutex or RCU read lock required!"
stmmac: dwmac-loongson: Add architecture dependency
usb: aqc111: check packet for fixup for true limit
x86/hyperv: Fix the detection of E820_TYPE_PRAM in a Gen2 VM
drm/mediatek: Add spinlock for setting vblank event in atomic_begin
ksmbd: fix wrong name of SMB2_CREATE_ALLOCATION_SIZE
PCI: loongson: Limit MRRS to 256
Revert "PCI: acpiphp: Reassign resources on bridge if necessary"
ALSA: hda/realtek: Apply mute LED quirk for HP15-db
ALSA: hda/hdmi: add force-connect quirks for ASUSTeK Z170 variants
ALSA: hda/hdmi: add force-connect quirk for NUC5CPYB
fuse: dax: set fc->dax to NULL in fuse_dax_conn_free()
cred: switch to using atomic_long_t
net: atlantic: fix double free in ring reinit logic
appletalk: Fix Use-After-Free in atalk_ioctl
net: stmmac: Handle disabled MDIO busses from devicetree
dpaa2-switch: do not ask for MDB, VLAN and FDB replay
dpaa2-switch: fix size of the dma_unmap
vsock/virtio: Fix unsigned integer wrap around in virtio_transport_has_space()
sign-file: Fix incorrect return values check
stmmac: dwmac-loongson: Make sure MDIO is initialized before use
net: ena: Fix XDP redirection error
net: ena: Fix xdp drops handling due to multibuf packets
net: ena: Destroy correct number of xdp queues upon failure
net: Remove acked SYN flag from packet in the transmit queue correctly
qed: Fix a potential use-after-free in qed_cxt_tables_alloc
iavf: Handle ntuple on/off based on new state machines for flow director
iavf: Introduce new state machines for flow director
net/rose: Fix Use-After-Free in rose_ioctl
atm: Fix Use-After-Free in do_vcc_ioctl
octeontx2-af: Update RSS algorithm index
octeontx2-pf: Fix promisc mcam entry action
octeontx2-af: fix a use-after-free in rvu_nix_register_reporters
net: fec: correct queue selection
net: vlan: introduce skb_vlan_eth_hdr()
atm: solos-pci: Fix potential deadlock on &tx_queue_lock
atm: solos-pci: Fix potential deadlock on &cli_queue_lock
bnxt_en: Fix HWTSTAMP_FILTER_ALL packet timestamp logic
bnxt_en: Fix wrong return value check in bnxt_close_nic()
bnxt_en: Save ring error counters across reset
bnxt_en: Clear resource reservation during resume
qca_spi: Fix reset behavior
qca_debug: Fix ethtool -G iface tx behavior
qca_debug: Prevent crash on TX ring changes
net: ipv6: support reporting otherwise unknown prefix flags in RTM_NEWPREFIX
net/mlx5e: Fix possible deadlock on mlx5e_tx_timeout_work
HID: lenovo: Restrict detection of patched firmware only to USB cptkbd
afs: Fix refcount underflow from error handling race
ksmbd: fix memory leak in smb2_lock()
ext4: fix warning in ext4_dio_write_end_io()
powerpc/ftrace: Fix stack teardown in ftrace_no_trace
r8152: add vendor/device ID pair for ASUS USB-C2500
r8152: add vendor/device ID pair for D-Link DUB-E250
r8152: add USB device driver for config selection
perf/x86/uncore: Don't WARN_ON_ONCE() for a broken discovery table
Revert "HID: fix HID device resource race between HID core and debugging support"
ANDROID: GKI: Add symbols for rockchip sata
ANDROID: sched: Add trace_android_rvh_setscheduler
ANDROID: Update the ABI symbol list
ANDROID: GKI: build damon for monitoring virtual address spaces
UPSTREAM: mm/damon/sysfs-schemes: handle tried region directory allocation failure
UPSTREAM: mm/damon/sysfs-schemes: handle tried regions sysfs directory allocation failure
UPSTREAM: mm/damon/sysfs: check error from damon_sysfs_update_target()
UPSTREAM: mm/damon/sysfs: eliminate potential uninitialized variable warning
UPSTREAM: mm/damon/sysfs: update monitoring target regions for online input commit
UPSTREAM: mm/damon/sysfs: remove requested targets when online-commit inputs
UPSTREAM: mm/damon/sysfs: avoid empty scheme tried regions for large apply interval
UPSTREAM: mm/damon/sysfs-schemes: do not update tried regions more than one DAMON snapshot
UPSTREAM: mm/damon/sysfs: check DAMOS regions update progress from before_terminate()
UPSTREAM: mm/damon/sysfs: implement a command for updating only schemes tried total bytes
UPSTREAM: mm/damon/sysfs-schemes: implement DAMOS tried total bytes file
UPSTREAM: mm/damon/ops-common: refactor to use {pte|pmd}p_clear_young_notify()
UPSTREAM: mm/damon/core: skip apply schemes if empty
UPSTREAM: mm/damon: use kstrtobool() instead of strtobool()
UPSTREAM: mm/damon/sysfs-schemes: implement DAMOS-tried regions clear command
UPSTREAM: mm/damon/sysfs: implement DAMOS tried regions update command
UPSTREAM: mm/damon/sysfs-schemes: implement scheme region directory
UPSTREAM: mm/damon/sysfs-schemes: implement schemes/tried_regions directory
UPSTREAM: mm/damon/core: add a callback for scheme target regions check
UPSTREAM: mm/damon/lru_sort: enable and disable synchronously
UPSTREAM: mm/damon/reclaim: enable and disable synchronously
UPSTREAM: mm/damon/{reclaim,lru_sort}: remove unnecessarily included headers
UPSTREAM: mm/damon/modules: deduplicate init steps for DAMON context setup
UPSTREAM: mm/damon/sysfs: split out schemes directory implementation to separate file
UPSTREAM: mm/damon/sysfs: split out kdamond-independent schemes stats update logic into a new function
UPSTREAM: mm/damon/sysfs: move unsigned long range directory to common module
UPSTREAM: mm/damon/sysfs: move sysfs_lock to common module
UPSTREAM: mm/damon/sysfs: remove parameters of damon_sysfs_region_alloc()
UPSTREAM: mm/damon/sysfs: use damon_addr_range for region's start and end values
UPSTREAM: mm/damon/core: split out scheme quota adjustment logic into a new function
UPSTREAM: mm/damon/core: split out scheme stat update logic into a new function
UPSTREAM: mm/damon/core: split damos application logic into a new function
UPSTREAM: mm/damon/core: split out DAMOS-charged region skip logic into a new function
ANDROID: Snapshot Mainline's version of checkpatch.pl
ANDROID: KVM: arm64: Skip prefaulting ptes which will be modified later
ANDROID: KVM: arm64: Introduce module_change_host_prot_range
ANDROID: KVM: arm64: Relax checks in module_change_host_page_prot
ANDROID: KVM: arm64: Optimise module_change_host_page_prot
ANDROID: KVM: arm64: Prefault entries when splitting a block mapping
ANDROID: virt: gunyah: Zero state_data after vcpu_run
ANDROID: Update the ABI symbol list
ANDROID: fs: Add vendor hooks for ep_create_wakeup_source & timerfd_create
ANDROID: ABI: update symbol list for galaxy
Linux 6.1.68
drm/i915: Skip some timing checks on BXT/GLK DSI transcoders
drm/i915/sdvo: stop caching has_hdmi_monitor in struct intel_sdvo
drm/i915/lvds: Use REG_BIT() & co.
drm/i915/display: Drop check for doublescan mode in modevalid
riscv: Kconfig: Add select ARM_AMBA to SOC_STARFIVE
netfilter: nft_set_pipapo: skip inactive elements during set walk
MIPS: Loongson64: Enable DMA noncoherent support
MIPS: Loongson64: Handle more memory types passed from firmware
MIPS: Loongson64: Reserve vgabios memory on boot
KVM: SVM: Update EFER software model on CR0 trap for SEV-ES
KVM: s390/mm: Properly reset no-dat
MIPS: kernel: Clear FPU states when setting up kernel threads
cifs: Fix flushing, invalidation and file size with FICLONE
cifs: Fix flushing, invalidation and file size with copy_file_range()
USB: gadget: core: adjust uevent timing on gadget unbind
x86/CPU/AMD: Check vendor in the AMD microcode callback
devcoredump: Send uevent once devcd is ready
serial: 8250_omap: Add earlycon support for the AM654 UART controller
serial: 8250: 8250_omap: Do not start RX DMA on THRI interrupt
serial: 8250: 8250_omap: Clear UART_HAS_RHR_IT_DIS bit
serial: sc16is7xx: address RX timeout interrupt errata
ARM: PL011: Fix DMA support
usb: typec: class: fix typec_altmode_put_partner to put plugs
smb: client: fix potential NULL deref in parse_dfs_referrals()
Revert "xhci: Loosen RPM as default policy to cover for AMD xHC 1.1"
cifs: Fix non-availability of dedup breaking generic/304
parport: Add support for Brainboxes IX/UC/PX parallel cards
serial: 8250_dw: Add ACPI ID for Granite Rapids-D UART
usb: gadget: f_hid: fix report descriptor allocation
drm/amdgpu: Update EEPROM I2C address for smu v13_0_0
drm/amdgpu: Add I2C EEPROM support on smu v13_0_6
drm/amdgpu: simplify amdgpu_ras_eeprom.c
drm/amdgpu: Return from switch early for EEPROM I2C address
drm/amdgpu: Remove second moot switch to set EEPROM I2C address
drm/amdgpu: Add support for RAS table at 0x40000
drm/amdgpu: Decouple RAS EEPROM addresses from chips
drm/amdgpu: Remove redundant I2C EEPROM address
drm/amdgpu: Add EEPROM I2C address support for ip discovery
drm/amdgpu: Update ras eeprom support for smu v13_0_0 and v13_0_10
drm/amdgpu: correct the amdgpu runtime dereference usage count
drm/amd/amdgpu: Fix warnings in amdgpu/amdgpu_display.c
drm/amdgpu: fix memory overflow in the IB test
gpiolib: sysfs: Fix error handling on failed export
x86/sev: Fix kernel crash due to late update to read-only ghcb_version
perf: Fix perf_event_validate_size()
arm64: dts: mt8183: kukui: Fix underscores in node names
arm64: dts: mediatek: add missing space before {
parisc: Fix asm operand number out of range build error in bug table
parisc: Reduce size of the bug_table on 64-bit kernel by half
tracing: Stop current tracer when resizing buffer
tracing: Set actual size after ring buffer resize
ring-buffer: Force absolute timestamp on discard of event
LoongArch: BPF: Don't sign extend function return value
LoongArch: BPF: Don't sign extend memory load operand
misc: mei: client.c: fix problem of return '-EOVERFLOW' in mei_cl_write
misc: mei: client.c: return negative error code in mei_cl_write
hwtracing: hisi_ptt: Add dummy callback pmu::read()
coresight: etm4x: Remove bogous __exit annotation for some functions
coresight: etm4x: Make etm4_remove_dev() return void
binder: fix memory leaks of spam and pending work
arm64: dts: mediatek: mt8183-evb: Fix unit_address_vs_reg warning on ntc
arm64: dts: mediatek: mt8183: Move thermal-zones to the root node
arm64: dts: mediatek: mt8183: Fix unit address for scp reserved memory
arm64: dts: mediatek: mt8195: Fix PM suspend/resume with venc clocks
arm64: dts: mediatek: mt8173-evb: Fix regulator-fixed node names
arm64: dts: mediatek: cherry: Fix interrupt cells for MT6360 on I2C7
arm64: dts: mediatek: mt8183-kukui-jacuzzi: fix dsi unnecessary cells properties
arm64: dts: mediatek: mt7622: fix memory node warning check
md/raid6: use valid sector values to determine if an I/O should wait on the reshape
powercap: DTPM: Fix missing cpufreq_cpu_put() calls
mm: fix oops when filemap_map_pmd() without prealloc_pte
hugetlb: fix null-ptr-deref in hugetlb_vma_lock_write
platform/surface: aggregator: fix recv_buf() return value
regmap: fix bogus error on regcache_sync success
r8169: fix rtl8125b PAUSE frames blasting when suspended
packet: Move reference count in packet_sock to atomic_long_t
tracing: Fix a possible race when disabling buffered events
tracing: Fix incomplete locking when disabling buffered events
tracing: Disable snapshot buffer when stopping instance tracers
tracing: Always update snapshot buffer size
checkstack: fix printed address
cgroup_freezer: cgroup_freezing: Check if not frozen
nilfs2: prevent WARNING in nilfs_sufile_set_segment_usage()
nilfs2: fix missing error check for sb_set_blocksize call
ring-buffer: Test last update in 32bit version of __rb_time_read()
ALSA: hda/realtek: Add Framework laptop 16 to quirks
ALSA: hda/realtek: add new Framework laptop to quirks
ALSA: hda/realtek: Enable headset on Lenovo M90 Gen5
ALSA: pcm: fix out-of-bounds in snd_pcm_state_names
ALSA: usb-audio: Add Pioneer DJM-450 mixer controls
io_uring: fix mutex_unlock with unreferenced ctx
nvme-pci: Add sleep quirk for Kingston drives
io_uring/af_unix: disable sending io_uring over sockets
ASoC: amd: yc: Fix non-functional mic on ASUS E1504FA
kprobes: consistent rcu api usage for kretprobe holder
rethook: Use __rcu pointer for rethook::handler
iommu: Avoid more races around device probe
md: don't leave 'MD_RECOVERY_FROZEN' in error path of md_set_readonly()
md: introduce md_ro_state
riscv: fix misaligned access handling of C.SWSP and C.SDSP
ARM: dts: imx28-xea: Pass the 'model' property
ARM: dts: imx7: Declare timers compatible with fsl,imx6dl-gpt
ARM: imx: Check return value of devm_kasprintf in imx_mmdc_perf_init
scsi: be2iscsi: Fix a memleak in beiscsi_init_wrb_handle()
tracing: Fix a warning when allocating buffered events fails
ARM: dts: imx6ul-pico: Describe the Ethernet PHY clock
arm64: dts: imx8mp: imx8mq: Add parkmode-disable-ss-quirk on DWC3
arm64: dts: imx8mq: drop usb3-resume-missing-cas from usb
drm/bridge: tc358768: select CONFIG_VIDEOMODE_HELPERS
RDMA/irdma: Avoid free the non-cqp_request scratch
RDMA/core: Fix umem iterator when PAGE_SIZE is greater then HCA pgsz
ASoC: wm_adsp: fix memleak in wm_adsp_buffer_populate
hwmon: (nzxt-kraken2) Fix error handling path in kraken2_probe()
ASoC: codecs: lpass-tx-macro: set active_decimator correct default value
hwmon: (acpi_power_meter) Fix 4.29 MW bug
RDMA/irdma: Fix UAF in irdma_sc_ccq_get_cqe_info()
RDMA/irdma: Refactor error handling in create CQP
RDMA/bnxt_re: Correct module description string
RDMA/rtrs-clt: Remove the warnings for req in_use check
RDMA/rtrs-clt: Fix the max_send_wr setting
RDMA/rtrs-srv: Destroy path files after making sure no IOs in-flight
RDMA/rtrs-srv: Free srv_mr iu only when always_invalidate is true
RDMA/rtrs-srv: Check return values while processing info request
RDMA/rtrs-clt: Start hb after path_up
RDMA/rtrs-srv: Do not unconditionally enable irq
ASoC: fsl_sai: Fix no frame sync clock issue on i.MX8MP
arm64: dts: rockchip: Expand reg size of vdec node for RK3399
arm64: dts: rockchip: Expand reg size of vdec node for RK3328
RDMA/irdma: Add wait for suspend on SQD
RDMA/irdma: Do not modify to SQD on error
RDMA/hns: Fix unnecessary err return when using invalid congest control algorithm
tee: optee: Fix supplicant based device enumeration
mm/damon/sysfs: eliminate potential uninitialized variable warning
drop_monitor: Require 'CAP_SYS_ADMIN' when joining "events" group
psample: Require 'CAP_NET_ADMIN' when joining "packets" group
bpf: sockmap, updating the sg structure should also update curr
tcp: do not accept ACK of bytes we never sent
netfilter: xt_owner: Fix for unsafe access of sk->sk_socket
netfilter: nf_tables: validate family when identifying table via handle
netfilter: nf_tables: bail out on mismatching dynset and set expressions
netfilter: nf_tables: fix 'exist' matching on bigendian arches
netfilter: nft_exthdr: add boolean DCCP option matching
dt-bindings: interrupt-controller: Allow #power-domain-cells
octeontx2-af: Update Tx link register range
octeontx2-af: Add missing mcs flr handler call
octeontx2-af: Fix mcs stats register address
octeontx2-af: Fix mcs sa cam entries size
octeontx2-af: Adjust Tx credits when MCS external bypass is disabled
net: hns: fix fake link up on xge port
net: hns: fix wrong head when modify the tx feature when sending packets
net: atlantic: Fix NULL dereference of skb pointer in
ipv4: ip_gre: Avoid skb_pull() failure in ipgre_xmit()
ionic: Fix dim work handling in split interrupt mode
ionic: fix snprintf format length warning
tcp: fix mid stream window clamp.
net: bnxt: fix a potential use-after-free in bnxt_init_tc
iavf: validate tx_coalesce_usecs even if rx_coalesce_usecs is zero
i40e: Fix unexpected MFS warning message
octeontx2-af: fix a use-after-free in rvu_npa_register_reporters
xsk: Skip polling event check for unbound socket
net: stmmac: fix FPE events losing
octeontx2-pf: consider both Rx and Tx packet stats for adaptive interrupt coalescing
arcnet: restoring support for multiple Sohard Arcnet cards
platform/mellanox: Check devm_hwmon_device_register_with_groups() return value
platform/mellanox: Add null pointer checks for devm_kasprintf()
mlxbf-bootctl: correctly identify secure boot with development keys
r8152: Add RTL8152_INACCESSIBLE to r8153_aldps_en()
r8152: Add RTL8152_INACCESSIBLE to r8153_pre_firmware_1()
r8152: Add RTL8152_INACCESSIBLE to r8156b_wait_loading_flash()
r8152: Add RTL8152_INACCESSIBLE checks to more loops
r8152: Rename RTL8152_UNPLUG to RTL8152_INACCESSIBLE
hv_netvsc: rndis_filter needs to select NLS
octeontx2-af: Check return value of nix_get_nixlf before using nixlf
octeontx2-pf: Add missing mutex lock in otx2_get_pauseparam
ipv6: fix potential NULL deref in fib6_add()
platform/x86: wmi: Skip blocks with zero instances
of: dynamic: Fix of_reconfig_get_state_change() return value documentation
platform/x86: asus-wmi: Move i8042 filter install to shared asus-wmi code
dt: dt-extract-compatibles: Don't follow symlinks when walking tree
dt: dt-extract-compatibles: Handle cfile arguments in generator function
x86/tdx: Allow 32-bit emulation by default
x86/entry: Do not allow external 0x80 interrupts
x86/entry: Convert INT 0x80 emulation to IDTENTRY
x86/coco: Disable 32-bit emulation by default on TDX and SEV
x86: Introduce ia32_enabled()
drm/amdgpu: correct chunk_ptr to a pointer to chunk.
kconfig: fix memory leak from range properties
tg3: Increment tx_dropped in tg3_tso_bug()
tg3: Move the [rt]x_dropped counters to tg3_napi
zstd: Fix array-index-out-of-bounds UBSAN warning
netfilter: ipset: fix race condition between swap/destroy and kernel side add/del/test
i2c: designware: Fix corrupted memory seen in the ISR
hrtimers: Push pending hrtimers away from outgoing CPU earlier
vdpa/mlx5: preserve CVQ vringh index
ANDROID: Fix up merge issues in 6.1.64 in net/netfilter/nf_tables_api.c
Reapply "binder: fix UAF caused by faulty buffer cleanup"
ANDROID: Fix up unneeded crc break in af_vsock.c
Revert "mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A"
Revert "ASoC: soc-card: Add storage for PCI SSID"
Revert "tracing: Have trace_event_file have ref counters"
Revert "workqueue: Provide one lock class key per work_on_cpu() callsite"
UPSTREAM: x86/sev: Check for user-space IOIO pointing to kernel space
UPSTREAM: x86/sev: Check IOBM for IOIO exceptions from user-space
FROMGIT: usb: typec: tcpm: skip checking port->send_discover in PD3.0
ANDROID: arm64: Disable workaround for CPU errata 2441007 and 2441009
Linux 6.1.67
Revert "wifi: cfg80211: fix CQM for non-range use"
ANDROID: Update the ABI symbol list
ANDROID: netlink: add netlink poll and hooks
Linux 6.1.66
iomap: update ki_pos a little later in iomap_dio_complete
x86/apic/msi: Fix misconfigured non-maskable MSI quirk
x86/xen: fix percpu vcpu_info allocation
xen: simplify evtchn_do_upcall() call maze
xen: Allow platform PCI interrupt to be shared
r8169: fix deadlock on RTL8125 in jumbo mtu mode
r8169: disable ASPM in case of tx timeout
drm/amd/display: Fix MPCC 1DLUT programming
drm/amd/display: Fix the delta clamping for shaper LUT
drm/amd/display: clean code-style issues in dcn30_set_mpc_shaper_3dlut
drm/amd/display: Expand kernel doc for DC
mmc: sdhci-sprd: Fix vqmmc not shutting down after the card was pulled
mmc: core: add helpers mmc_regulator_enable/disable_vqmmc
drm/amd/pm: fix a memleak in aldebaran_tables_init
iommu/vt-d: Make context clearing consistent with context mapping
iommu/vt-d: Disable PCI ATS in legacy passthrough mode
iommu/vt-d: Add device_block_translation() helper
iommu/vt-d: Allocate pasid table in device probe path
iommu/vt-d: Omit devTLB invalidation requests when TES=0
cpufreq: imx6q: Don't disable 792 Mhz OPP unnecessarily
cpufreq: imx6q: don't warn for disabling a non-existing frequency
drm/amd/display: Guard against invalid RPTR/WPTR being set
drm/amd/display: Restore rptr/wptr for DMCUB as workaround
spi: Fix null dereference on suspend
fbdev: stifb: Make the STI next font pointer a 32-bit signed offset
PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers
octeontx2-af: Initialize 'cntr_val' to fix uninitialized symbol error
PCI: Lengthen reset delay for VideoPropulsion Torrent QN16e card
KVM: x86: Fix lapic timer interrupt lost after loading a snapshot.
net: ravb: Keep reverse order of operations in ravb_remove()
net: ravb: Stop DMA in case of failures on ravb_open()
net: ravb: Start TX queues after HW initialization succeeded
net: ravb: Make write access to CXR35 first before accessing other EMAC registers
net: ravb: Use pm_runtime_resume_and_get()
net: ravb: Check return value of reset_control_deassert()
ravb: Fix races between ravb_tx_timeout_work() and net related ops
r8169: prevent potential deadlock in rtl8169_close
octeontx2-pf: Restore TC ingress police rules when interface is up
octeontx2-af: Install TC filter rules in hardware based on priority
octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64
net: stmmac: xgmac: Disable FPE MMC interrupts
octeontx2-af: Fix possible buffer overflow
selftests/net: mptcp: fix uninitialized variable warnings
selftests/net: unix: fix unused variable compiler warning
selftests/net: fix a char signedness issue
selftests/net: ipsec: fix constant out of range
uapi: propagate __struct_group() attributes to the container union
dpaa2-eth: increase the needed headroom to account for alignment
ipv4: igmp: fix refcnt uaf issue when receiving igmp query packet
usb: config: fix iteration issue in 'usb_get_bos_descriptor()'
USB: core: Change configuration warnings to notices
USB: xhci-plat: fix legacy PHY double init
wifi: cfg80211: fix CQM for non-range use
serial: sc16is7xx: add missing support for rs485 devicetree properties
serial: sc16is7xx: Put IOControl register into regmap_volatile
auxdisplay: hd44780: move cursor home after clear display command
Input: xpad - add HyperX Clutch Gladiate Support
btrfs: fix 64bit compat send ioctl arguments not initializing version member
btrfs: make error messages more clear when getting a chunk map
btrfs: send: ensure send_fd is writable
btrfs: fix off-by-one when checking chunk map includes logical address
btrfs: ref-verify: fix memory leaks in btrfs_ref_tree_mod()
btrfs: add dmesg output for first mount and last unmount of a filesystem
parisc: Mark altinstructions read-only and 32-bit aligned
parisc: Ensure 32-bit alignment on parisc unwind section
parisc: Mark jump_table naturally aligned
parisc: Drop the HP-UX ENOSYM and EREMOTERELEASE error codes
parisc: Mark lock_aligned variables 16-byte aligned on SMP
parisc: Use natural CPU alignment for bug_table
parisc: Mark ex_table entries 32-bit aligned in uaccess.h
parisc: Mark ex_table entries 32-bit aligned in assembly.h
powerpc: Don't clobber f0/vs0 during fp|altivec register save
KVM: PPC: Book3S HV: Fix KVM_RUN clobbering FP/VEC user registers
iommu/vt-d: Add MTL to quirk list to skip TE disabling
bcache: revert replacing IS_ERR_OR_NULL with IS_ERR
dma-buf: fix check in dma_resv_add_fence
cpufreq/amd-pstate: Fix the return value of amd_pstate_fast_switch()
powercap: DTPM: Fix unneeded conversions to micro-Watts
nvme: check for valid nvme_identify_ns() before using it
dm verity: don't perform FEC for failed readahead IO
dm verity: initialize fec io before freeing it
drm/amd/display: fix ABM disablement
drm/amd/display: Update min Z8 residency time to 2100 for DCN314
drm/amd/display: Use DRAM speed from validation for dummy p-state
drm/amd/display: Remove min_dst_y_next_start check for Z8
drm/amd/display: Include udelay when waiting for INBOX0 ACK
drm/amdgpu: Force order between a read and write to the same address
drm/amd: Enable PCIe PME from D3
scsi: sd: Fix system start for ATA devices
scsi: Change SCSI device boolean fields to single bit flags
dm-verity: align struct dm_verity_fec_io properly
ALSA: hda/realtek: Add supported ALC257 for ChromeOS
ALSA: hda/realtek: Headset Mic VREF to 100%
ALSA: hda: Disable power-save on KONTRON SinglePC
mmc: block: Be sure to wait while busy in CQE error recovery
mmc: block: Do not lose cache flush during CQE error recovery
mmc: block: Retry commands in CQE error recovery
mmc: cqhci: Fix task clearing in CQE error recovery
mmc: cqhci: Warn of halt or task clear failure
mmc: cqhci: Increase recovery halt timeout
mmc: sdhci-pci-gli: Disable LPM during initialization
firewire: core: fix possible memory leak in create_units()
pinctrl: avoid reload of p state in list iteration
smb: client: report correct st_size for SMB and NFS symlinks
cifs: Fix FALLOC_FL_INSERT_RANGE by setting i_size after EOF moved
cifs: Fix FALLOC_FL_ZERO_RANGE by setting i_size if EOF moved
Linux 6.1.65
io_uring: fix off-by one bvec index
USB: dwc3: qcom: fix wakeup after probe deferral
USB: dwc3: qcom: fix software node leak on probe errors
usb: dwc3: set the dma max_seg_size
usb: dwc3: Fix default mode initialization
USB: dwc2: write HCINT with INTMASK applied
usb: typec: tcpm: Skip hard reset when in error recovery
USB: serial: option: don't claim interface 4 for ZTE MF290
USB: serial: option: fix FM101R-GL defines
USB: serial: option: add Fibocom L7xx modules
usb: cdnsp: Fix deadlock issue during using NCM gadget
bcache: fixup lock c->root error
bcache: fixup init dirty data errors
bcache: prevent potential division by zero error
bcache: check return value from btree_node_alloc_replacement()
dm-delay: fix a race between delay_presuspend and delay_bio
hv_netvsc: Mark VF as slave before exposing it to user-mode
hv_netvsc: Fix race of register_netdevice_notifier and VF register
hv_netvsc: fix race of netvsc and VF register_netdevice
USB: serial: option: add Luat Air72*U series products
s390/dasd: protect device queue against concurrent access
io_uring/fs: consider link->flags when getting path for LINKAT
bcache: fixup multi-threaded bch_sectors_dirty_init() wake-up race
md: fix bi_status reporting in md_end_clone_io
bcache: replace a mistaken IS_ERR() by IS_ERR_OR_NULL() in btree_gc_coalesce()
swiotlb-xen: provide the "max_mapping_size" method
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CVA
arm64: dts: imx8mn-var-som: add 20ms delay to ethernet regulator enable
NFSD: Fix checksum mismatches in the duplicate reply cache
NFSD: Fix "start of NFS reply" pointer passed to nfsd_cache_update()
ext4: make sure allocate pending entry not fail
ext4: fix slab-use-after-free in ext4_es_insert_extent()
ext4: using nofail preallocation in ext4_es_insert_extent()
ext4: using nofail preallocation in ext4_es_insert_delayed_block()
ext4: using nofail preallocation in ext4_es_remove_extent()
ext4: use pre-allocated es in __es_remove_extent()
ext4: use pre-allocated es in __es_insert_extent()
ext4: factor out __es_alloc_extent() and __es_free_extent()
ext4: add a new helper to check if es must be kept
media: qcom: camss: Fix genpd cleanup
media: qcom: camss: Fix V4L2 async notifier error path
media: qcom: Initialise V4L2 async notifier later
media: camss: Convert to platform remove callback returning void
media: camss: Split power domain management
MIPS: KVM: Fix a build warning about variable set but not used
cifs: fix leak of iface for primary channel
cifs: account for primary channel in the interface list
cifs: distribute channels across interfaces based on speed
cifs: print last update time for interface list
smb3: allow dumping session and tcon id to improve stats analysis and debugging
cifs: minor cleanup of some headers
lockdep: Fix block chain corruption
USB: dwc3: qcom: fix ACPI platform device leak
USB: dwc3: qcom: fix resource leaks on probe deferral
nvmet: nul-terminate the NQNs passed in the connect command
i40e: Fix adding unsupported cloud filters
i40e: use ERR_PTR error print in i40e messages
arm64: mm: Fix "rodata=on" when CONFIG_RODATA_FULL_DEFAULT_ENABLED=y
mm,kfence: decouple kfence from page granularity mapping judgement
afs: Fix file locking on R/O volumes to operate in local mode
afs: Return ENOENT if no cell DNS record can be found
net: axienet: Fix check for partial TX checksum
amd-xgbe: propagate the correct speed and duplex status
amd-xgbe: handle the corner-case during tx completion
amd-xgbe: handle corner-case during sfp hotplug
octeontx2-pf: Fix ntuple rule creation to direct packet to VF with higher Rx queue than its PF
arm/xen: fix xen_vcpu_info allocation alignment
net/smc: avoid data corruption caused by decline
net: usb: ax88179_178a: fix failed operations during ax88179_reset
ipv4: Correct/silence an endian warning in __ip_do_redirect
HID: fix HID device resource race between HID core and debugging support
drm/rockchip: vop: Fix color for RGB888/BGR888 format on VOP full
drm/i915: do not clean GT table on error path
ata: pata_isapnp: Add missing error check for devm_ioport_map()
octeontx2-pf: Fix memory leak during interface down
wireguard: use DEV_STATS_INC()
drm/panel: simple: Fix Innolux G101ICE-L01 timings
drm/panel: simple: Fix Innolux G101ICE-L01 bus flags
drm/panel: auo,b101uan08.3: Fine tune the panel power sequence
drm/panel: boe-tv101wum-nl6: Fine tune the panel power sequence
afs: Make error on cell lookup failure consistent with OpenAFS
afs: Fix afs_server_list to be cleaned up with RCU
Revert "inet: shrink struct flowi_common"
Revert "mfd: core: Un-constify mfd_cell.of_reg"
Revert "arm64/arm: xen: enlighten: Fix KPTI checks"
Revert "virtio/vsock: replace virtio_vsock_pkt with sk_buff"
Revert "vsock/virtio: remove socket from connected/bound list on shutdown"
Revert "virtio/vsock: don't use skbuff state to account credit"
Revert "virtio/vsock: remove redundant 'skb_pull()' call"
Revert "virtio/vsock: don't drop skbuff on copy failure"
Revert "virtio/vsock: fix leaks due to missing skb owner"
Revert "virtio/vsock: Fix uninit-value in virtio_transport_recv_pkt()"
Revert "virtio/vsock: fix header length on skb merging"
Revert "vsock/loopback: use only sk_buff_head.lock to protect the packet queue"
Linux 6.1.64
RISC-V: drop error print from riscv_hartid_to_cpuid()
cxl/port: Fix NULL pointer access in devm_cxl_add_port()
mmc: sdhci-pci-gli: GL9755: Mask the replay timer timeout of AER
Input: xpad - add VID for Turtle Beach controllers
tracing: Have trace_event_file have ref counters
powerpc/powernv: Fix fortify source warnings in opal-prd.c
drm/amd/display: Change the DMCUB mailbox memory location from FB to inbox
drm/amd/display: Enable fast plane updates on DCN3.2 and above
drm/amd/display: fix a NULL pointer dereference in amdgpu_dm_i2c_xfer()
drm/amdgpu: lower CS errors to debug severity
drm/amdgpu: fix error handling in amdgpu_bo_list_get()
drm/amdgpu: don't use ATRM for external devices
drm/amdgpu: don't use pci_is_thunderbolt_attached()
drm/amdgpu/smu13: drop compute workload workaround
drm/amd/pm: Fix error of MACO flag setting code
drm/i915: Fix potential spectre vulnerability
drm/i915: Bump GLK CDCLK frequency when driving multiple pipes
drm/amd/pm: Handle non-terminated overdrive commands.
ext4: properly sync file size update after O_SYNC direct IO
ext4: add missed brelse in update_backups
ext4: remove gdb backup copy for meta bg in setup_new_flex_group_blocks
ext4: correct the start block of counting reserved clusters
ext4: correct return value of ext4_convert_meta_bg
ext4: mark buffer new if it is unwritten to avoid stale data exposure
ext4: correct offset of gdb backup in non meta_bg group to update_backups
ext4: apply umask if ACL support is disabled
Revert "net: r8169: Disable multicast filter for RTL8168H and RTL8107E"
media: qcom: camss: Fix csid-gen2 for test pattern generator
media: qcom: camss: Fix invalid clock enable bit disjunction
media: qcom: camss: Fix missing vfe_lite clocks check
media: qcom: camss: Fix VFE-480 vfe_disable_output()
media: qcom: camss: Fix VFE-17x vfe_disable_output()
media: qcom: camss: Fix vfe_get() error jump
media: qcom: camss: Fix pm_domain_on sequence in probe
mmc: sdhci-pci-gli: GL9750: Mask the replay timer timeout of AER
r8169: add handling DASH when DASH is disabled
r8169: fix network lost after resume on DASH systems
mptcp: fix setsockopt(IP_TOS) subflow locking
mptcp: add validity check for sending RM_ADDR
mptcp: deal with large GSO size
mm: kmem: drop __GFP_NOFAIL when allocating objcg vectors
mm: fix for negative counter: nr_file_hugepages
mmc: sdhci-pci-gli: A workaround to allow GL9750 to enter ASPM L1.2
riscv: kprobes: allow writing to x0
riscv: correct pt_level name via pgtable_l5/4_enabled
riscv: mm: Update the comment of CONFIG_PAGE_OFFSET
LoongArch: Mark __percpu functions as always inline
nfsd: fix file memleak on client_opens_release
dm-verity: don't use blocking calls from tasklets
drm/mediatek/dp: fix memory leak on ->get_edid callback error path
drm/mediatek/dp: fix memory leak on ->get_edid callback audio detection
media: ccs: Correctly initialise try compose rectangle
media: venus: hfi: add checks to handle capabilities from firmware
media: venus: hfi: fix the check to handle session buffer requirement
media: venus: hfi_parser: Add check to keep the number of codecs within range
media: sharp: fix sharp encoding
media: lirc: drop trailing space from scancode transmit
f2fs: avoid format-overflow warning
f2fs: do not return EFSCORRUPTED, but try to run online repair
i2c: i801: fix potential race in i801_block_transaction_byte_by_byte
net: phylink: initialize carrier state at creation
net: dsa: lan9303: consequently nested-lock physical MDIO
net: ethtool: Fix documentation of ethtool_sprintf()
s390/ap: fix AP bus crash on early config change callback invocation
i2c: designware: Disable TX_EMPTY irq while waiting for block length byte
sbsa_gwdt: Calculate timeout with 64-bit math
lsm: fix default return value for inode_getsecctx
lsm: fix default return value for vm_enough_memory
Revert "i2c: pxa: move to generic GPIO recovery"
Revert ncsi: Propagate carrier gain/loss events to the NCSI controller
cxl/region: Fix x1 root-decoder granularity calculations
tools/testing/cxl: Define a fixed volatile configuration to parse
cxl/mem: Move devm_cxl_add_endpoint() from cxl_core to cxl_mem
cxl: Unify debug messages when calling devm_cxl_add_port()
i3c: master: svc: fix random hot join failure since timeout error
i3c: master: svc: add NACK check after start byte sent
cxl/region: Do not try to cleanup after cxl_region_setup_targets() fails
cxl/region: Move region-position validation to a helper
cxl/region: Cleanup target list on attach error
cxl/region: Validate region mode vs decoder mode
drm/amd/display: enable dsc_clk even if dsc_pg disabled
Bluetooth: btusb: Add 0bda:b85b for Fn-Link RTL8852BE
Bluetooth: btusb: Add RTW8852BE device 13d3:3570 to device tables
bluetooth: Add device 13d3:3571 to device tables
bluetooth: Add device 0bda:887b to device tables
Bluetooth: btusb: Add Realtek RTL8852BE support ID 0x0cb8:0xc559
clk: visconti: Fix undefined behavior bug in struct visconti_pll_provider
clk: visconti: remove unused visconti_pll_provider::regmap
cpufreq: stats: Fix buffer overflow detection in trans_stats()
pmdomain: imx: Make imx pgc power domain also set the fwnode
pmdomain: bcm: bcm2835-power: check if the ASB register is equal to enable
ALSA: hda/realtek: Add quirks for HP Laptops
ALSA: hda/realtek: Enable Mute LED on HP 255 G10
ALSA: hda/realtek - Enable internal speaker of ASUS K6500ZC
ALSA: hda/realtek - Add Dell ALC295 to pin fall back table
ALSA: hda/realtek: Enable Mute LED on HP 255 G8
ALSA: info: Fix potential deadlock at disconnection
btrfs: zoned: wait for data BG to be finished on direct IO allocation
xfs: recovery should not clear di_flushiter unconditionally
cifs: do not reset chan_max if multichannel is not supported at mount
cifs: force interface update before a fresh session setup
cifs: reconnect helper should set reconnect for the right channel
smb: client: fix potential deadlock when releasing mids
smb: client: fix use-after-free bug in cifs_debug_data_proc_show()
smb3: fix caching of ctime on setxattr
smb3: fix touch -h of symlink
smb3: fix creating FIFOs when mounting with "sfu" mount option
fs: add ctime accessors infrastructure
xhci: Enable RPM on controllers that support low-power states
parisc/power: Fix power soft-off when running on qemu
parisc/pgtable: Do not drop upper 5 address bits of physical address
parisc: Prevent booting 64-bit kernels on PA1.x machines
i3c: master: svc: fix SDA keep low when polling IBIWON timeout happen
i3c: master: svc: fix check wrong status register in irq handler
i3c: master: svc: fix ibi may not return mandatory data byte
i3c: master: svc: fix wrong data return when IBI happen during start frame
i3c: master: svc: fix race condition in ibi work thread
i3c: master: cdns: Fix reading status register
mtd: cfi_cmdset_0001: Byte swap OTP info
mm/memory_hotplug: use pfn math in place of direct struct page manipulation
mm/cma: use nth_page() in place of direct struct page manipulation
s390/cmma: fix detection of DAT pages
dmaengine: stm32-mdma: correct desc prep when channel running
mcb: fix error handling for different scenarios when parsing
driver core: Release all resources during unbind before updating device links
tracing: Have the user copy of synthetic event address use correct context
i2c: core: Run atomic i2c xfer when !preemptible
kernel/reboot: emergency_restart: Set correct system_state
quota: explicitly forbid quota files from being encrypted
jbd2: fix potential data lost in recovering journal raced with synchronizing fs bdev
ASoC: codecs: wsa-macro: fix uninitialized stack variables with name prefix
hid: lenovo: Resend all settings on reset_resume for compact keyboards
selftests/resctrl: Reduce failures due to outliers in MBA/MBM tests
selftests/resctrl: Move _GNU_SOURCE define into Makefile
selftests/resctrl: Remove duplicate feature check from CMT test
netfilter: nf_tables: split async and sync catchall in two functions
netfilter: nf_tables: remove catchall element in GC sync path
ima: detect changes to the backing overlay file
ima: annotate iint mutex to avoid lockdep false positive warnings
mfd: qcom-spmi-pmic: Fix revid implementation
mfd: qcom-spmi-pmic: Fix reference leaks in revid helper
arm64: dts: qcom: ipq6018: Fix tcsr_mutex register size
ACPI: FPDT: properly handle invalid FPDT subtables
firmware: qcom_scm: use 64-bit calling convention only when client is 64-bit
arm64: dts: qcom: ipq8074: Fix hwlock index for SMEM
btrfs: don't arbitrarily slow down delalloc if we're committing
rcu: kmemleak: Ignore kmemleak false positives when RCU-freeing objects
PM: hibernate: Clean up sync_read handling in snapshot_write_next()
PM: hibernate: Use __get_safe_page() rather than touching the list
arm64: dts: qcom: ipq6018: Fix hwlock index for SMEM
rcu/tree: Defer setting of jiffies during stall reset
svcrdma: Drop connection after an RDMA Read error
wifi: wilc1000: use vmm_table as array in wilc struct
PCI: exynos: Don't discard .remove() callback
PCI: kirin: Don't discard .remove() callback
PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common()
mmc: Add quirk MMC_QUIRK_BROKEN_CACHE_FLUSH for Micron eMMC Q2J54A
mmc: sdhci_am654: fix start loop index for TAP value parsing
mmc: vub300: fix an error code
ksmbd: fix slab out of bounds write in smb_inherit_dacl()
ksmbd: handle malformed smb1 message
clk: qcom: ipq6018: drop the CLK_SET_RATE_PARENT flag from PLL clocks
clk: qcom: ipq8074: drop the CLK_SET_RATE_PARENT flag from PLL clocks
clk: socfpga: Fix undefined behavior bug in struct stratix10_clock_data
parisc/power: Add power soft-off when running on qemu
parisc/pdc: Add width field to struct pdc_model
arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM IAS 15.x or newer
PCI: keystone: Don't discard .probe() callback
PCI: keystone: Don't discard .remove() callback
KEYS: trusted: Rollback init_trusted() consistently
KEYS: trusted: tee: Refactor register SHM usage
genirq/generic_chip: Make irq_remove_generic_chip() irqdomain aware
mmc: meson-gx: Remove setting of CMD_CFG_ERROR
wifi: ath11k: fix gtk offload status event locking
wifi: ath11k: fix htt pktlog locking
wifi: ath11k: fix dfs radar event locking
wifi: ath11k: fix temperature event locking
regmap: Ensure range selector registers are updated after cache sync
ACPI: resource: Do IRQ override on TongFang GMxXGxx
mm/damon/sysfs: check error from damon_sysfs_update_target()
mm/damon: implement a function for max nr_accesses safe calculation
mm/damon/ops-common: avoid divide-by-zero during region hotness calculation
mm/damon/lru_sort: avoid divide-by-zero in hot threshold calculation
watchdog: move softlockup_panic back to early_param
mm/damon/sysfs: update monitoring target regions for online input commit
mm/damon/sysfs: remove requested targets when online-commit inputs
PCI/sysfs: Protect driver's D3cold preference from user space
hvc/xen: fix event channel handling for secondary consoles
hvc/xen: fix error path in xen_hvc_init() to always register frontend driver
hvc/xen: fix console unplug
tty: serial: meson: fix hard LOCKUP on crtscts mode
tty/sysrq: replace smp_processor_id() with get_cpu()
proc: sysctl: prevent aliased sysctls from getting passed to init
audit: don't WARN_ON_ONCE(!current->mm) in audit_exe_compare()
audit: don't take task_lock() in audit_exe_compare() code path
KVM: x86: Clear bit12 of ICR after APIC-write VM-exit
KVM: x86: Ignore MSR_AMD64_TW_CFG access
KVM: x86: hyper-v: Don't auto-enable stimer on write from user-space
x86/cpu/hygon: Fix the CPU topology evaluation for real
crypto: x86/sha - load modules based on CPU features
scsi: qla2xxx: Fix system crash due to bad pointer access
scsi: megaraid_sas: Increase register read retry rount from 3 to 30 for selected registers
scsi: mpt3sas: Fix loop logic
bpf: Fix precision tracking for BPF_ALU | BPF_TO_BE | BPF_END
bpf: Fix check_stack_write_fixed_off() to correctly spill imm
randstruct: Fix gcc-plugin performance mode to stay in group
powerpc/perf: Fix disabling BHRB and instruction sampling
perf intel-pt: Fix async branch flags
media: venus: hfi: add checks to perform sanity on queue pointers
i915/perf: Fix NULL deref bugs with drm_dbg() calls
cifs: fix check of rc in function generate_smb3signingkey
cifs: spnego: add ';' in HOST_KEY_LEN
tools/power/turbostat: Enable the C-state Pre-wake printing
tools/power/turbostat: Fix a knl bug
macvlan: Don't propagate promisc change to lower dev in passthru
net/mlx5e: Check return value of snprintf writing to fw_version buffer for representors
net/mlx5e: Check return value of snprintf writing to fw_version buffer
net/mlx5e: Reduce the size of icosq_str
net/mlx5e: Fix pedit endianness
net/mlx5e: fix double free of encap_header in update funcs
net/mlx5e: fix double free of encap_header
net: stmmac: avoid rx queue overrun
net: stmmac: fix rx budget limit check
netfilter: nf_tables: fix pointer math issue in nft_byteorder_eval()
netfilter: nf_conntrack_bridge: initialize err to 0
af_unix: fix use-after-free in unix_stream_read_actor()
net: ethernet: cortina: Fix MTU max setting
net: ethernet: cortina: Handle large frames
net: ethernet: cortina: Fix max RX frame define
bonding: stop the device in bond_setup_by_slave()
ptp: annotate data-race around q->head and q->tail
xen/events: fix delayed eoi list handling
ppp: limit MRU to 64K
net: mvneta: fix calls to page_pool_get_stats
tipc: Fix kernel-infoleak due to uninitialized TLV value
net: hns3: fix VF wrong speed and duplex issue
net: hns3: fix VF reset fail issue
net: hns3: fix variable may not initialized problem in hns3_init_mac_addr()
net: hns3: fix out-of-bounds access may occur when coalesce info is read via debugfs
net: hns3: fix incorrect capability bit display for copper port
net: hns3: add barrier in vf mailbox reply process
net: hns3: fix add VLAN fail issue
tty: Fix uninit-value access in ppp_sync_receive()
ipvlan: add ipvlan_route_v6_outbound() helper
net: set SOCK_RCU_FREE before inserting socket into hashtable
vhost-vdpa: fix use after free in vhost_vdpa_probe()
gfs2: Silence "suspicious RCU usage in gfs2_permission" warning
SUNRPC: Fix RPC client cleaned up the freed pipefs dentries
NFSv4.1: fix SP4_MACH_CRED protection for pnfs IO
SUNRPC: Add an IS_ERR() check back to where it was
NFSv4.1: fix handling NFS4ERR_DELAY when testing for session trunking
mtd: rawnand: meson: check return value of devm_kasprintf()
mtd: rawnand: intel: check return value of devm_kasprintf()
SUNRPC: ECONNRESET might require a rebind
sched/core: Optimize in_task() and in_interrupt() a bit
wifi: iwlwifi: Use FW rate for non-data frames
mtd: rawnand: tegra: add missing check for platform_get_irq()
pwm: Fix double shift bug
drm/amdgpu: fix software pci_unplug on some chips
ALSA: hda/realtek: Add quirk for ASUS UX7602ZM
drm/qxl: prevent memory leak
ASoC: ti: omap-mcbsp: Fix runtime PM underflow warnings
i2c: dev: copy userspace array safely
kgdb: Flush console before entering kgdb on panic
drm/amd/display: Avoid NULL dereference of timing generator
media: imon: fix access to invalid resource for the second interface
media: ccs: Fix driver quirk struct documentation
media: cobalt: Use FIELD_GET() to extract Link Width
gfs2: fix an oops in gfs2_permission
gfs2: ignore negated quota changes
media: vivid: avoid integer overflow
media: gspca: cpia1: shift-out-of-bounds in set_flicker
i3c: master: mipi-i3c-hci: Fix a kernel panic for accessing DAT_data.
virtio-blk: fix implicit overflow on virtio_max_dma_size
i2c: sun6i-p2wi: Prevent potential division by zero
i2c: fix memleak in i2c_new_client_device()
i3c: mipi-i3c-hci: Fix out of bounds access in hci_dma_irq_handler
9p: v9fs_listxattr: fix %s null argument warning
9p/trans_fd: Annotate data-racy writes to file::f_flags
usb: gadget: f_ncm: Always set current gadget in ncm_bind()
f2fs: fix error handling of __get_node_page
soundwire: dmi-quirks: update HP Omen match
usb: dwc3: core: configure TX/RX threshold for DWC3_IP
tty: vcc: Add check for kstrdup() in vcc_probe()
thunderbolt: Apply USB 3.x bandwidth quirk only in software connection manager
iio: adc: stm32-adc: harden against NULL pointer deref in stm32_adc_probe()
mfd: intel-lpss: Add Intel Lunar Lake-M PCI IDs
exfat: support handle zero-size directory
HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W
crypto: hisilicon/qm - prevent soft lockup in receive loop
ASoC: Intel: soc-acpi-cht: Add Lenovo Yoga Tab 3 Pro YT3-X90 quirk
PCI: Use FIELD_GET() in Sapphire RX 5600 XT Pulse quirk
misc: pci_endpoint_test: Add Device ID for R-Car S4-8 PCIe controller
PCI: Disable ATS for specific Intel IPU E2000 devices
PCI: Extract ATS disabling to a helper function
PCI: Use FIELD_GET() to extract Link Width
scsi: libfc: Fix potential NULL pointer dereference in fc_lport_ptp_setup()
PCI: Do error check on own line to split long "if" conditions
atm: iphase: Do PCI error checks on own line
PCI: mvebu: Use FIELD_PREP() with Link Width
PCI: tegra194: Use FIELD_GET()/FIELD_PREP() with Link Width fields
ALSA: hda: Fix possible null-ptr-deref when assigning a stream
ARM: 9320/1: fix stack depot IRQ stack filter
HID: lenovo: Detect quirk-free fw on cptkbd and stop applying workaround
jfs: fix array-index-out-of-bounds in diAlloc
jfs: fix array-index-out-of-bounds in dbFindLeaf
fs/jfs: Add validity check for db_maxag and db_agpref
fs/jfs: Add check for negative db_l2nbperpage
scsi: ibmvfc: Remove BUG_ON in the case of an empty event pool
scsi: hisi_sas: Set debugfs_dir pointer to NULL after removing debugfs
RDMA/hfi1: Use FIELD_GET() to extract Link Width
ASoC: SOF: ipc4: handle EXCEPTION_CAUGHT notification from firmware
crypto: pcrypt - Fix hungtask for PADATA_RESET
ASoC: SOF: Pass PCI SSID to machine driver
ASoC: soc-card: Add storage for PCI SSID
selftests/efivarfs: create-read: fix a resource leak
arm64: dts: ls208xa: use a pseudo-bus to constrain usb dma size
drm/amdgpu: Fix a null pointer access when the smc_rreg pointer is NULL
drm/amdkfd: Fix shift out-of-bounds issue
drm/panel: st7703: Pick different reset sequence
drm/amdgpu/vkms: fix a possible null pointer dereference
drm/radeon: fix a possible null pointer dereference
drm/panel/panel-tpo-tpg110: fix a possible null pointer dereference
drm/panel: fix a possible null pointer dereference
drm/amdgpu: Fix potential null pointer derefernce
drm/amd: Fix UBSAN array-index-out-of-bounds for Polaris and Tonga
drm/amd: Fix UBSAN array-index-out-of-bounds for SMU7
drm/msm/dp: skip validity check for DP CTS EDID checksum
drm: vmwgfx_surface.c: copy user-array safely
drm_lease.c: copy user-array safely
kernel: watch_queue: copy user-array safely
kernel: kexec: copy user-array safely
string.h: add array-wrappers for (v)memdup_user()
drm/amd/display: use full update for clip size increase of large plane source
drm/amd: Update `update_pcie_parameters` functions to use uint8_t arguments
drm/amdkfd: Fix a race condition of vram buffer unref in svm code
drm/amdgpu: not to save bo in the case of RAS err_event_athub
drm/komeda: drop all currently held locks if deadlock happens
drm/gma500: Fix call trace when psb_gem_mm_init() fails
platform/x86: thinkpad_acpi: Add battery quirk for Thinkpad X120e
platform/chrome: kunit: initialize lock for fake ec_dev
tsnep: Fix tsnep_request_irq() format-overflow warning
ACPI: EC: Add quirk for HP 250 G7 Notebook PC
Bluetooth: Fix double free in hci_conn_cleanup
Bluetooth: btusb: Add date->evt_skb is NULL check
bpf: Ensure proper register state printing for cond jumps
vsock: read from socket's error queue
wifi: ath10k: Don't touch the CE interrupt registers after power up
net: annotate data-races around sk->sk_dst_pending_confirm
net: annotate data-races around sk->sk_tx_queue_mapping
wifi: ath10k: fix clang-specific fortify warning
wifi: ath9k: fix clang-specific fortify warnings
bpf: Detect IP == ksym.end as part of BPF program
atl1c: Work around the DMA RX overflow issue
wifi: mac80211: don't return unset power in ieee80211_get_tx_power()
wifi: mac80211_hwsim: fix clang-specific fortify warning
wifi: plfxlc: fix clang-specific fortify warning
x86/mm: Drop the 4 MB restriction on minimal NUMA node memory size
workqueue: Provide one lock class key per work_on_cpu() callsite
cpu/hotplug: Don't offline the last non-isolated CPU
smp,csd: Throw an error if a CSD lock is stuck for too long
clocksource/drivers/timer-atmel-tcb: Fix initialization on SAM9 hardware
clocksource/drivers/timer-imx-gpt: Fix potential memory leak
selftests/lkdtm: Disable CONFIG_UBSAN_TRAP in test config
srcu: Fix srcu_struct node grpmask overflow on 64-bit systems
perf/core: Bail out early if the request AUX area is out of bound
lib/generic-radix-tree.c: Don't overflow in peek()
locking/ww_mutex/test: Fix potential workqueue corruption
Linux 6.1.63
virtio/vsock: fix header length on skb merging
virtio/vsock: Fix uninit-value in virtio_transport_recv_pkt()
virtio/vsock: fix leaks due to missing skb owner
vsock/loopback: use only sk_buff_head.lock to protect the packet queue
virtio/vsock: don't drop skbuff on copy failure
virtio/vsock: remove redundant 'skb_pull()' call
virtio/vsock: don't use skbuff state to account credit
wifi: cfg80211: fix kernel-doc for wiphy_delayed_work_flush()
btrfs: use u64 for buffer sizes in the tree search ioctls
Revert "mmc: core: Capture correct oemid-bits for eMMC cards"
x86/amd_nb: Use Family 19h Models 60h-7Fh Function 4 IDs
io_uring/net: ensure socket is marked connected on connect retry
tracing/kprobes: Fix the order of argument descriptions
fbdev: fsl-diu-fb: mark wr_reg_wa() static
fbdev: imsttfb: fix a resource leak in probe
fbdev: imsttfb: Fix error path of imsttfb_probe()
spi: spi-zynq-qspi: add spi-mem to driver kconfig dependencies
ASoC: dapm: fix clock get name
ASoC: hdmi-codec: register hpd callback on component probe
ASoC: mediatek: mt8186_mt6366_rt1019_rt5682s: trivial: fix error messages
drm/syncobj: fix DRM_SYNCOBJ_WAIT_FLAGS_WAIT_AVAILABLE
RISC-V: Don't fail in riscv_of_parent_hartid() for disabled HARTs
netfilter: nat: fix ipv6 nat redirect with mapped and scoped addresses
netfilter: nft_redir: use `struct nf_nat_range2` throughout and deduplicate eval call-backs
netfilter: xt_recent: fix (increase) ipv6 literal buffer length
i2c: iproc: handle invalid slave state
r8169: respect userspace disabling IFF_MULTICAST
vsock/virtio: remove socket from connected/bound list on shutdown
virtio/vsock: replace virtio_vsock_pkt with sk_buff
blk-core: use pr_warn_ratelimited() in bio_check_ro()
nbd: fix uaf in nbd_open
tg3: power down device only on SYSTEM_POWER_OFF
nvme: fix error-handling for io_uring nvme-passthrough
net/smc: put sk reference if close work was canceled
net/smc: allow cdc msg send rather than drop it with NULL sndbuf_desc
net/smc: fix dangling sock under state SMC_APPFINCLOSEWAIT
octeontx2-pf: Free pending and dropped SQEs
octeontx2-pf: qos send queues management
octeontx2-pf: Rename tot_tx_queues to non_qos_queues
selftests: pmtu.sh: fix result checking
net: stmmac: xgmac: Enable support for multiple Flexible PPS outputs
Fix termination state for idr_for_each_entry_ul()
net: r8169: Disable multicast filter for RTL8168H and RTL8107E
dccp/tcp: Call security_inet_conn_request() after setting IPv6 addresses.
dccp: Call security_inet_conn_request() after setting IPv4 addresses.
net: page_pool: add missing free_percpu when page_pool_init fail
octeontx2-pf: Fix holes in error code
octeontx2-pf: Fix error codes
inet: shrink struct flowi_common
bpf: Check map->usercnt after timer->timer is assigned
tipc: Change nla_policy for bearer-related names to NLA_NUL_STRING
hsr: Prevent use after free in prp_create_tagged_frame()
llc: verify mac len before reading mac header
watchdog: ixp4xx: Make sure restart always works
Input: synaptics-rmi4 - fix use after free in rmi_unregister_function()
pwm: brcmstb: Utilize appropriate clock APIs in suspend/resume
pwm: sti: Reduce number of allocations and drop usage of chip_data
regmap: prevent noinc writes from clobbering cache
media: cec: meson: always include meson sub-directory in Makefile
media: dvb-usb-v2: af9035: fix missing unlock
media: cadence: csi2rx: Unregister v4l2 async notifier
media: cedrus: Fix clock/reset sequence
media: vidtv: mux: Add check and kfree for kstrdup
media: vidtv: psi: Add check for kstrdup
media: s3c-camif: Avoid inappropriate kfree()
media: mtk-jpegenc: Fix bug in JPEG encode quality selection
media: amphion: handle firmware debug message
media: bttv: fix use after free error due to btv->timeout timer
media: ov5640: Fix a memory leak when ov5640_probe fails
media: i2c: max9286: Fix some redundant of_node_put() calls
media: ov5640: fix vblank unchange issue when work at dvp mode
media: ov5640: Drop dead code using frame_interval
media: verisilicon: Do not enable G2 postproc downscale if source is narrower than destination
media: hantro: Check whether reset op is defined before use
pcmcia: ds: fix possible name leak in error path in pcmcia_device_add()
pcmcia: ds: fix refcount leak in pcmcia_device_add()
pcmcia: cs: fix possible hung task and memory leak pccardd()
rtc: pcf85363: fix wrong mask/val parameters in regmap_update_bits call
virt: sevguest: Fix passing a stack buffer as a scatterlist target
x86/sev: Change snp_guest_issue_request()'s fw_err argument
crypto: ccp - Name -1 return value as SEV_RET_NO_FW_CALL
cxl/mem: Fix shutdown order
i3c: Fix potential refcount leak in i3c_master_register_new_i3c_devs
9p/net: fix possible memory leak in p9_check_errors()
perf hist: Add missing puts to hist__account_cycles
perf machine: Avoid out of bounds LBR memory read
usb: host: xhci-plat: fix possible kernel oops while resuming
xhci: Loosen RPM as default policy to cover for AMD xHC 1.1
powerpc/pseries: fix potential memory leak in init_cpu_associativity()
powerpc/imc-pmu: Use the correct spinlock initializer.
powerpc/vas: Limit open window failure messages in log bufffer
powerpc/xive: Fix endian conversion size
powerpc/40x: Remove stale PTE_ATOMIC_UPDATES macro
modpost: fix ishtp MODULE_DEVICE_TABLE built on big-endian host
modpost: fix tee MODULE_DEVICE_TABLE built on big-endian host
powerpc: Only define __parse_fpscr() when required
interconnect: qcom: sm8350: Set ACV enable_mask
interconnect: qcom: sm8350: Retire DEFINE_QBCM
interconnect: qcom: sm8150: Set ACV enable_mask
interconnect: qcom: sm8150: Retire DEFINE_QBCM
interconnect: qcom: sm8150: Drop IP0 interconnects
interconnect: move ignore_list out of of_count_icc_providers()
interconnect: qcom: sm6350: Set ACV enable_mask
interconnect: qcom: sm6350: Retire DEFINE_QBCM
interconnect: qcom: sdm845: Set ACV enable_mask
interconnect: qcom: sdm845: Retire DEFINE_QBCM
interconnect: qcom: sc8280xp: Set ACV enable_mask
interconnect: qcom: sc8180x: Set ACV enable_mask
interconnect: qcom: sc7280: Set ACV enable_mask
interconnect: qcom: sc7180: Set ACV enable_mask
interconnect: qcom: sc7180: Retire DEFINE_QBCM
f2fs: fix to initialize map.m_pblk in f2fs_precache_extents()
dmaengine: pxa_dma: Remove an erroneous BUG_ON() in pxad_free_desc()
USB: usbip: fix stub_dev hub disconnect
tools: iio: iio_generic_buffer ensure alignment
misc: st_core: Do not call kfree_skb() under spin_lock_irqsave()
dmaengine: ti: edma: handle irq_of_parse_and_map() errors
usb: chipidea: Simplify Tegra DMA alignment code
usb: chipidea: Fix DMA overwrite for Tegra
usb: dwc2: fix possible NULL pointer dereference caused by driver concurrency
dmaengine: idxd: Register dsa_bus_type before registering idxd sub-drivers
perf record: Fix BTF type checks in the off-cpu profiling
pinctrl: renesas: rzg2l: Make reverse order of enable() for disable()
livepatch: Fix missing newline character in klp_resolve_symbols()
tty: tty_jobctrl: fix pid memleak in disassociate_ctty()
f2fs: compress: fix to avoid redundant compress extension
f2fs: compress: fix to avoid use-after-free on dic
f2fs: compress: fix deadloop in f2fs_write_cache_pages()
f2fs: convert f2fs_write_cache_pages() to use filemap_get_folios_tag()
filemap: add filemap_get_folios_tag()
perf kwork: Set ordered_events to true in 'struct perf_tool'
perf kwork: Add the supported subcommands to the document
perf kwork: Fix incorrect and missing free atom in work_push_atom()
iio: frequency: adf4350: Use device managed functions and fix power down issue.
perf stat: Fix aggr mode initialization
apparmor: fix invalid reference on profile->disconnected
apparmor: test: make static symbols visible during kunit testing
kunit: add macro to allow conditionally exposing static symbols to tests
leds: trigger: ledtrig-cpu:: Fix 'output may be truncated' issue for 'cpu'
leds: pwm: Don't disable the PWM when the LED should be off
leds: turris-omnia: Do not use SMBUS calls
leds: turris-omnia: Drop unnecessary mutex locking
mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs
dt-bindings: mfd: mt6397: Split out compatible for MediaTek MT6366 PMIC
dt-bindings: mfd: mt6397: Add binding for MT6357
mfd: dln2: Fix double put in dln2_probe
mfd: core: Ensure disabled devices are skipped without aborting
mfd: core: Un-constify mfd_cell.of_reg
IB/mlx5: Fix init stage error handling to avoid double free of same QP and UAF
ASoC: ams-delta.c: use component after check
crypto: qat - fix deadlock in backlog processing
padata: Fix refcnt handling in padata_free_shell()
ASoC: Intel: Skylake: Fix mem leak when parsing UUIDs fails
HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event()
HID: logitech-hidpp: Revert "Don't restart communication if not necessary"
HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only
HID: logitech-hidpp: Remove HIDPP_QUIRK_NO_HIDINPUT quirk
Revert "HID: logitech-hidpp: add a module parameter to keep firmware gestures"
sh: bios: Revive earlyprintk support
hid: cp2112: Fix IRQ shutdown stopping polling for all IRQs on chip
HID: cp2112: Make irq_chip immutable
RDMA/hfi1: Workaround truncation compilation error
scsi: ufs: core: Leave space for '\0' in utf8 desc string
ASoC: fsl: Fix PM disable depth imbalance in fsl_easrc_probe
ASoC: SOF: core: Ensure sof_ops_free() is still called when probe never ran.
RDMA/hns: The UD mode can only be configured with DCQCN
RDMA/hns: Add check for SL
RDMA/hns: Fix signed-unsigned mixed comparisons
RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common()
RDMA/hns: Fix printing level of asynchronous events
IB/mlx5: Fix rdma counter binding for RAW QP
ASoC: fsl: mpc5200_dma.c: Fix warning of Function parameter or member not described
ext4: move 'ix' sanity check to corrent position
ARM: 9321/1: memset: cast the constant byte to unsigned char
crypto: hisilicon/qm - fix PF queue parameter issue
crypto: hisilicon/qm - split a debugfs.c from qm
crypto: hisilicon/qm - modify the process of regs dfx
crypto: hisilicon/qm - delete redundant null assignment operations
hid: cp2112: Fix duplicate workqueue initialization
PCI: vmd: Correct PCI Header Type Register's multi-function check
crypto: qat - increase size of buffers
crypto: caam/jr - fix Chacha20 + Poly1305 self test failure
crypto: caam/qi2 - fix Chacha20 + Poly1305 self test failure
nd_btt: Make BTT lanes preemptible
libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value
scsi: ibmvfc: Fix erroneous use of rtas_busy_delay with hcall return code
crypto: qat - fix unregistration of crypto algorithms
crypto: qat - extend buffer list interface
crypto: qat - generalize crypto request buffers
crypto: qat - change bufferlist logic interface
crypto: qat - rename bufferlist functions
crypto: qat - relocate bufferlist logic
crypto: qat - ignore subsequent state up commands
RDMA/core: Use size_{add,sub,mul}() in calls to struct_size()
hwrng: geode - fix accessing registers
hwrng: bcm2835 - Fix hwrng throughput regression
crypto: hisilicon/hpre - Fix a erroneous check after snprintf()
KEYS: Include linux/errno.h in linux/verification.h
ALSA: hda: cs35l41: Undo runtime PM changes at driver exit time
ALSA: hda: cs35l41: Fix unbalanced pm_runtime_get()
ASoC: cs35l41: Undo runtime PM changes at driver exit time
ASoC: cs35l41: Verify PM runtime resume errors in IRQ handler
module/decompress: use vmalloc() for gzip decompression workspace
selftests/resctrl: Ensure the benchmark commands fits to its array
selftests/pidfd: Fix ksft print formats
arm64: tegra: Use correct interrupts for Tegra234 TKE
arm64: dts: imx8mn: Add sound-dai-cells to micfil node
arm64: dts: imx8mm: Add sound-dai-cells to micfil node
arm64: dts: imx8qm-ss-img: Fix jpegenc compatible entry
clk: scmi: Free scmi_clk allocated when the clocks with invalid info are skipped
ARM: dts: am3517-evm: Fix LED3/4 pinmux
firmware: arm_ffa: Allow the FF-A drivers to use 32bit mode of messaging
firmware: arm_ffa: Assign the missing IDR allocation ID to the FFA device
arm64: dts: ti: k3-am62a7-sk: Drop i2c-1 to 100Khz
firmware: ti_sci: Mark driver as non removable
kunit: Fix missed memory release in kunit_free_suite_set()
soc: qcom: llcc: Handle a second device without data corruption
ARM: dts: qcom: mdm9615: populate vsdcc fixed regulator
arm64: dts: qcom: apq8016-sbc: Add missing ADV7533 regulators
ARM64: dts: marvell: cn9310: Use appropriate label for spi1 pins
arm64: dts: qcom: sdm845-mtp: fix WiFi configuration
arm64: dts: qcom: sm8350: fix pinctrl for UART18
arm64: dts: qcom: sm8150: add ref clock to PCIe PHYs
arm64: dts: qcom: sc7280: Add missing LMH interrupts
arm64: dts: qcom: msm8992-libra: drop duplicated reserved memory
arm64: dts: qcom: msm8916: Fix iommu local address range
arm64: dts: qcom: sc7280: link usb3_phy_wrapper_gcc_usb30_pipe_clk
arm64: dts: qcom: sdm845: cheza doesn't support LMh node
ARM: dts: renesas: blanche: Fix typo in GP_11_2 pin name
perf: hisi: Fix use-after-free when register pmu fails
drivers/perf: hisi_pcie: Check the type first in pmu::event_init()
perf/arm-cmn: Fix DTC domain detection
perf/arm-cmn: Revamp model detection
drivers/perf: hisi: use cpuhp_state_remove_instance_nocalls() for hisi_hns3_pmu uninit process
drm: mediatek: mtk_dsi: Fix NO_EOT_PACKET settings/handling
clocksource/drivers/arm_arch_timer: limit XGene-1 workaround
drm/msm/dsi: free TX buffer in unbind
drm/msm/dsi: use msm_gem_kernel_put to free TX buffer
xen-pciback: Consider INTx disabled when MSI/MSI-X is enabled
xenbus: fix error exit in xenbus_init()
drm/rockchip: Fix type promotion bug in rockchip_gem_iommu_map()
arm64/arm: xen: enlighten: Fix KPTI checks
drm/bridge: lt9611uxc: fix the race in the error path
gpu: host1x: Correct allocated size for contexts
drm/rockchip: cdn-dp: Fix some error handling paths in cdn_dp_probe()
drm/mediatek: Fix iommu fault during crtc enabling
drm/mediatek: Fix iommu fault by swapping FBs after updating plane state
io_uring/kbuf: Allow the full buffer id space for provided buffers
io_uring/kbuf: Fix check of BID wrapping in provided buffers
drm/amd/display: Bail from dm_check_crtc_cursor if no relevant change
drm/amd/display: Refactor dm_get_plane_scale helper
drm/amd/display: Check all enabled planes in dm_check_crtc_cursor
drm/amdkfd: fix some race conditions in vram buffer alloc/free of svm code
drm/bridge: tc358768: Fix tc358768_ns_to_cnt()
drm/bridge: tc358768: Clean up clock period code
drm/bridge: tc358768: Rename dsibclk to hsbyteclk
drm/bridge: tc358768: Use dev for dbg prints, not priv->dev
drm/bridge: tc358768: Print logical values, not raw register values
drm/bridge: tc358768: Use struct videomode
drm/bridge: tc358768: remove unused variable
drm/bridge: tc358768: Fix bit updates
drm/bridge: tc358768: Fix use of uninitialized variable
drm/bridge: lt8912b: Add missing drm_bridge_attach call
drm/bridge: lt8912b: Manually disable HPD only if it was enabled
drm/bridge: lt8912b: Fix crash on bridge detach
drm/bridge: lt8912b: Fix bridge_detach
drm/bridge: lt8912b: Add hot plug detection
drm: bridge: it66121: Fix invalid connector dereference
drm/radeon: possible buffer overflow
drm/rockchip: vop2: Add missing call to crtc reset helper
drm/rockchip: vop2: Don't crash for invalid duplicate_state
drm/rockchip: vop: Fix call to crtc reset helper
drm/rockchip: vop: Fix reset of state in duplicate state crtc funcs
hte: tegra: Fix missing error code in tegra_hte_test_probe()
hwmon: (sch5627) Disallow write access if virtual registers are locked
hwmon: (sch5627) Use bit macros when accessing the control register
Revert "hwmon: (sch56xx-common) Add automatic module loading on supported devices"
Revert "hwmon: (sch56xx-common) Add DMI override table"
hwmon: (coretemp) Fix potentially truncated sysfs attribute name
hwmon: (axi-fan-control) Fix possible NULL pointer dereference
platform/x86: wmi: Fix opening of char device
platform/x86: wmi: Fix probe failure when failing to register WMI devices
clk: qcom: config IPQ_APSS_6018 should depend on QCOM_SMEM
clk: mediatek: clk-mt2701: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt7629: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt7629-eth: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt6797: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt6779: Add check for mtk_alloc_clk_data
clk: mediatek: clk-mt6765: Add check for mtk_alloc_clk_data
clk: npcm7xx: Fix incorrect kfree
clk: ti: fix double free in of_ti_divider_clk_setup()
clk: ti: change ti_clk_register[_omap_hw]() API
clk: keystone: pll: fix a couple NULL vs IS_ERR() checks
spi: nxp-fspi: use the correct ioremap function
clk: linux/clk-provider.h: fix kernel-doc warnings and typos
clk: renesas: rzg2l: Fix computation formula
clk: renesas: rzg2l: Use FIELD_GET() for PLL register fields
clk: renesas: rzg2l: Trust value returned by hardware
clk: renesas: rzg2l: Lock around writes to mux register
clk: renesas: rzg2l: Wait for status bit of SD mux before continuing
clk: renesas: rcar-gen3: Extend SDnH divider table
clk: imx: imx8qxp: Fix elcdif_pll clock
clk: imx: imx8mq: correct error handling path
clk: imx: Select MXC_CLK for CLK_IMX8QXP
regulator: mt6358: Fail probe on unknown chip ID
clk: qcom: gcc-sm8150: Fix gcc_sdcc2_apps_clk_src
clk: qcom: mmcc-msm8998: Fix the SMMU GDSC
clk: qcom: mmcc-msm8998: Don't check halt bit on some branch clks
clk: qcom: clk-rcg2: Fix clock rate overflow for high parent frequencies
clk: qcom: gcc-msm8996: Remove RPM bus clocks
spi: tegra: Fix missing IRQ check in tegra_slink_probe()
regmap: debugfs: Fix a erroneous check after snprintf()
ipvlan: properly track tx_errors
net: add DEV_STATS_READ() helper
ipv6: avoid atomic fragment on GSO packets
ACPI: sysfs: Fix create_pnp_modalias() and create_of_modalias()
bpf: Fix unnecessary -EBUSY from htab_lock_bucket
Bluetooth: hci_sync: Fix Opcode prints in bt_dev_dbg/err
wifi: iwlwifi: empty overflow queue during flush
wifi: iwlwifi: pcie: synchronize IRQs before NAPI
wifi: iwlwifi: call napi_synchronize() before freeing rx/tx queues
tcp: fix cookie_init_timestamp() overflows
chtls: fix tp->rcv_tstamp initialization
net: skb_find_text: Ignore patterns extending past 'to'
selftests: netfilter: test for sctp collision processing in nf_conntrack
r8169: fix rare issue with broken rx after link-down on RTL8125
r8169: use tp_to_dev instead of open code
thermal: core: prevent potential string overflow
netfilter: nf_tables: Drop pointless memset when dumping rules
wifi: wfx: fix case where rates are out of order
PM / devfreq: rockchip-dfi: Make pmu regmap mandatory
can: dev: can_put_echo_skb(): don't crash kernel if can_priv::echo_skb is accessed out of bounds
can: dev: can_restart(): fix race condition between controller restart and netif_carrier_on()
can: dev: can_restart(): don't crash kernel if carrier is OK
wifi: ath11k: fix Tx power value during active CAC
ACPI: video: Add acpi_backlight=vendor quirk for Toshiba Portégé R100
ACPI: property: Allow _DSD buffer data only for byte accessors
wifi: rtlwifi: fix EDCA limit set by BT coexistence
tcp_metrics: do not create an entry from tcp_init_metrics()
tcp_metrics: properly set tp->snd_ssthresh in tcp_init_metrics()
tcp_metrics: add missing barriers on delete
wifi: ath: dfs_pattern_detector: Fix a memory initialization issue
wifi: mt76: mt7915: fix beamforming availability check
wifi: mt76: mt7603: improve stuck beacon handling
wifi: mt76: mt7603: improve watchdog reset reliablity
wifi: mt76: mt7603: rework/fix rx pse hang check
wifi: ath11k: fix boot failure with one MSI vector
wifi: rtw88: debug: Fix the NULL vs IS_ERR() bug for debugfs_create_file()
net: ethernet: mtk_wed: fix EXT_INT_STATUS_RX_FBUF definitions for MT7986 SoC
net: spider_net: Use size_add() in call to struct_size()
tipc: Use size_add() in calls to struct_size()
tls: Use size_add() in call to struct_size()
tls: Only use data field in crypto completion function
mlxsw: Use size_mul() in call to struct_size()
gve: Use size_add() in call to struct_size()
tcp: call tcp_try_undo_recovery when an RTOd TFO SYNACK is ACKed
udp: add missing WRITE_ONCE() around up->encap_rcv
selftests/bpf: Correct map_fd to data_fd in tailcalls
iavf: Fix promiscuous mode configuration flow messages
i40e: fix potential memory leaks in i40e_remove()
wifi: iwlwifi: honor the enable_ini value
wifi: mac80211: fix # of MSDU in A-MSDU calculation
wifi: mac80211: move sched-scan stop work to wiphy work
wifi: mac80211: move offchannel works to wiphy work
wifi: mac80211: move scan work to wiphy work
wifi: mac80211: move radar detect work to wiphy work
wifi: cfg80211: add flush functions for wiphy work
genirq/matrix: Exclude managed interrupts in irq_matrix_allocated()
string: Adjust strtomem() logic to allow for smaller sources
pstore/platform: Add check for kstrdup
drivers/clocksource/timer-ti-dm: Don't call clk_get_rate() in stop function
x86/boot: Fix incorrect startup_gdt_descr.size
x86/sev-es: Allow copy_from_kernel_nofault() in earlier boot
ACPI/NUMA: Apply SRAT proximity domain to entire CFMWS window
x86/numa: Introduce numa_fill_memblks()
futex: Don't include process MM in futex key on no-MMU
x86/srso: Fix SBPB enablement for (possible) future fixed HW
writeback, cgroup: switch inodes with dirty timestamps to release dying cgwbs
vfs: fix readahead(2) on block devices
sched: Fix stop_one_cpu_nowait() vs hotplug
objtool: Propagate early errors
sched/uclamp: Ignore (util == 0) optimization in feec() when p_util_max = 0
sched/uclamp: Set max_spare_cap_cpu even if max_spare_cap is 0
iov_iter, x86: Be consistent about the __user tag on copy_mc_to_user()
sched/fair: Fix cfs_rq_is_decayed() on !SMP
hwmon: (nct6775) Fix incorrect variable reuse in fan_div calculation
Linux 6.1.62
ASoC: SOF: sof-pci-dev: Fix community key quirk detection
ALSA: hda: intel-dsp-config: Fix JSL Chromebook quirk detection
misc: pci_endpoint_test: Add deviceID for J721S2 PCIe EP device support
tty: 8250: Add Brainboxes Oxford Semiconductor-based quirks
tty: 8250: Add support for Intashield IX cards
tty: 8250: Add support for additional Brainboxes PX cards
tty: 8250: Fix up PX-803/PX-857
tty: 8250: Fix port count of PX-257
tty: 8250: Add support for Intashield IS-100
tty: 8250: Add support for Brainboxes UP cards
tty: 8250: Add support for additional Brainboxes UC cards
tty: 8250: Remove UC-257 and UC-431
tty: n_gsm: fix race condition in status line change on dead connections
usb: raw-gadget: properly handle interrupted requests
usb: typec: tcpm: Fix NULL pointer dereference in tcpm_pd_svdm()
usb: storage: set 1.50 as the lower bcdDevice for older "Super Top" compatibility
PCI: Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device
ALSA: usb-audio: add quirk flag to enable native DSD for McIntosh devices
mmap: fix error paths with dup_anon_vma()
mm/mempolicy: fix set_mempolicy_home_node() previous VMA pointer
x86: KVM: SVM: always update the x2avic msr interception
perf evlist: Avoid frequency mode for the dummy event
power: supply: core: Use blocking_notifier_call_chain to avoid RCU complaint
ceph_wait_on_conflict_unlink(): grab reference before dropping ->d_lock
io_uring: kiocb_done() should *not* trust ->ki_pos if ->{read,write}_iter() failed
powerpc/mm: Fix boot crash with FLATMEM
r8152: Check for unplug in r8153b_ups_en() / r8153c_ups_en()
r8152: Check for unplug in rtl_phy_patch_request()
net: chelsio: cxgb4: add an error code check in t4_load_phy_fw
drm/amdgpu: Reserve fences for VM update
platform/mellanox: mlxbf-tmfifo: Fix a warning message
netfilter: nf_tables: audit log object reset once per table
LoongArch: Replace kmap_atomic() with kmap_local_page() in copy_user_highpage()
LoongArch: Export symbol invalid_pud_table for modules building
gpu/drm: Eliminate DRM_SCHED_PRIORITY_UNSET
drm/amdgpu: Unset context priority is now invalid
scsi: mpt3sas: Fix in error path
fbdev: uvesafb: Call cn_del_callback() at the end of uvesafb_exit()
fbdev: omapfb: fix some error codes
drm/ttm: Reorder sys manager cleanup step
ASoC: codecs: tas2780: Fix log of failed reset via I2C.
ASoC: rt5650: fix the wrong result of key button
efi: fix memory leak in krealloc failure handling
netfilter: nfnetlink_log: silence bogus compiler warning
spi: npcm-fiu: Fix UMA reads when dummy.nbytes == 0
fs/ntfs3: Avoid possible memory leak
fs/ntfs3: Fix directory element type detection
fs/ntfs3: Fix NULL pointer dereference on error in attr_allocate_frame()
fs/ntfs3: Fix possible NULL-ptr-deref in ni_readpage_cmpr()
fs/ntfs3: Use kvmalloc instead of kmalloc(... __GFP_NOWARN)
fs/ntfs3: Write immediately updated ntfs state
fs/ntfs3: Add ckeck in ni_update_parent()
fbdev: atyfb: only use ioremap_uc() on i386 and ia64
Input: synaptics-rmi4 - handle reset delay when using SMBus trsnsport
powerpc/85xx: Fix math emulation exception
dmaengine: ste_dma40: Fix PM disable depth imbalance in d40_probe
irqchip/stm32-exti: add missing DT IRQ flag translation
irqchip/riscv-intc: Mark all INTC nodes as initialized
net: sched: cls_u32: Fix allocation size in u32_init()
ASoC: tlv320adc3xxx: BUG: Correct micbias setting
coresight: tmc-etr: Disable warnings for allocation failures
ASoC: simple-card: fixup asoc_simple_probe() error handling
Revert "kasan: print the original fault addr when access invalid shadow"
ANDROID: GKI: add system_unbound_wq to some symbol lists.
Revert "audit,io_uring: io_uring openat triggers audit reference count underflow"
Revert "tcp: allow again tcp_disconnect() when threads are waiting"
Revert "tcp_bpf: properly release resources on error paths"
Revert "ipv4/fib: send notify when delete source address routes"
Revert "Bluetooth: hci_core: Fix build warnings"
Revert "xfrm: fix a data-race in xfrm_gen_index()"
Revert "perf: Disallow mis-matched inherited group reads"
ANDROID: fix up 6.1.60 merge of hid.h into android14-6.1-lts
ANDROID: GKI: arm64: drop CONFIG_DEBUG_PREEMPT forced disable
Revert "net: macsec: indicate next pn update when offloading"
Revert "net: phy: mscc: macsec: reject PN update requests"
Revert "net/mlx5e: macsec: use update_pn flag instead of PN comparation"
Revert "tcp: enforce receive buffer memory limits by allowing the tcp window to shrink"
Linux 6.1.61
objtool/x86: add missing embedded_insn check
ext4: avoid overlapping preallocations due to overflow
ext4: fix BUG in ext4_mb_new_inode_pa() due to overflow
ext4: add two helper functions extent_logical_end() and pa_logical_end()
platform/x86: Add s2idle quirk for more Lenovo laptops
clk: Sanitize possible_parent_show to Handle Return Value of of_clk_get_parent_name
sparc32: fix a braino in fault handling in csum_and_copy_..._user()
perf/core: Fix potential NULL deref
x86/cpu: Add model number for Intel Arrow Lake mobile processor
x86/i8259: Skip probing when ACPI/MADT advertises PCAT compatibility
nvmem: imx: correct nregs for i.MX6UL
nvmem: imx: correct nregs for i.MX6SLL
nvmem: imx: correct nregs for i.MX6ULL
misc: fastrpc: Unmap only if buffer is unmapped from DSP
misc: fastrpc: Clean buffers on remote invocation failures
misc: fastrpc: Free DMA handles for RPC calls with no arguments
misc: fastrpc: Reset metadata buffer to avoid incorrect free
tracing/kprobes: Fix the description of variable length arguments
i2c: aspeed: Fix i2c bus hang in slave read
i2c: stm32f7: Fix PEC handling in case of SMBUS transfers
i2c: muxes: i2c-demux-pinctrl: Use of_get_i2c_adapter_by_node()
i2c: muxes: i2c-mux-gpmux: Use of_get_i2c_adapter_by_node()
i2c: muxes: i2c-mux-pinctrl: Use of_get_i2c_adapter_by_node()
iio: adc: xilinx-xadc: Correct temperature offset/scale for UltraScale
iio: adc: xilinx-xadc: Don't clobber preset voltage/temperature thresholds
iio: exynos-adc: request second interupt only when touchscreen mode is used
iio: afe: rescale: Accept only offset channels
io_uring/fdinfo: lock SQ thread while retrieving thread cpu/pid
kasan: print the original fault addr when access invalid shadow
blk-throttle: check for overflow in calculate_bytes_allowed
scsi: sd: Introduce manage_shutdown device flag
iavf: in iavf_down, disable queues when removing the driver
drm/logicvc: Kconfig: select REGMAP and REGMAP_MMIO
i40e: Fix wrong check for I40E_TXR_FLAGS_WB_ON_ITR
gtp: fix fragmentation needed check with gso
gtp: uapi: fix GTPA_MAX
tcp: fix wrong RTO timeout when received SACK reneging
r8152: Release firmware if we have an error in probe
r8152: Cancel hw_phy_work if we have an error in probe
r8152: Run the unload routine if we have errors during probe
r8152: Increase USB control msg timeout to 5000ms as per spec
net: usb: smsc95xx: Fix uninit-value access in smsc95xx_read_reg
net: ieee802154: adf7242: Fix some potential buffer overflow in adf7242_stats_show()
net: ethernet: adi: adin1110: Fix uninitialized variable
igc: Fix ambiguity in the ethtool advertising
neighbour: fix various data-races
igb: Fix potential memory leak in igb_add_ethtool_nfc_entry
treewide: Spelling fix in comment
i40e: Fix I40E_FLAG_VF_VLAN_PRUNING value
iavf: initialize waitqueues before starting watchdog_task
r8169: fix the KCSAN reported data race in rtl_rx while reading desc->opts1
r8169: fix the KCSAN reported data-race in rtl_tx while reading TxDescArray[entry].opts1
r8169: fix the KCSAN reported data-race in rtl_tx() while reading tp->cur_tx
clk: ti: Fix missing omap5 mcbsp functional clock and aliases
clk: ti: Fix missing omap4 mcbsp functional clock and aliases
firmware/imx-dsp: Fix use_after_free in imx_dsp_setup_channels()
ARM: OMAP: timer32K: fix all kernel-doc warnings
drm/dp_mst: Fix NULL deref in get_mst_branch_device_by_guid_helper()
drm/amd: Disable ASPM for VI w/ all Intel systems
drm/i915/pmu: Check if pmu is closed before stopping event
nfsd: lock_rename() needs both directories to live on the same fs
maple_tree: add GFP_KERNEL to allocations in mas_expected_entries()
hugetlbfs: extend hugetlb_vma_lock to private VMAs
mm/migrate: fix do_pages_move for compat pointers
mm/page_alloc: correct start page when guard page debug is enabled
hugetlbfs: clear resv_map pointer if mmap fails
mm: fix vm_brk_flags() to not bail out while holding lock
arm64: dts: rockchip: Fix i2s0 pin conflict on ROCK Pi 4 boards
arm64: dts: rockchip: Add i2s0-2ch-bus-bclk-off pins to RK3399
vhost: Allow null msg.size on VHOST_IOTLB_INVALIDATE
vsock/virtio: initialize the_virtio_vsock before using VQs
virtio_pci: fix the common cfg map size
virtio-crypto: handle config changed by work queue
virtio-mmio: fix memory leak of vm_dev
virtio_balloon: Fix endless deflation and inflation on arm64
mcb-lpc: Reallocate memory region to avoid memory overlapping
mcb: Return actual parsed size when reading chameleon table
pinctrl: qcom: lpass-lpi: fix concurrent register updates
ASoC: codecs: wcd938x: fix runtime PM imbalance on remove
ASoC: codecs: wcd938x: fix regulator leaks on probe errors
ASoC: codecs: wcd938x: Simplify with dev_err_probe
ASoC: codecs: wcd938x: Convert to platform remove callback returning void
mmc: core: Fix error propagation for some ioctl commands
mmc: block: ioctl: do write error check for spi
mmc: core: Align to common busy polling behaviour for mmc ioctls
KVM: x86/pmu: Truncate counter value to allowed width on write
Linux 6.1.60
selftests: mptcp: join: no RST when rm subflow/addr
selftests: mptcp: join: correctly check for no RST
mptcp: avoid sending RST when closing the initial subflow
Bluetooth: hci_sock: Correctly bounds check and pad HCI_MON_NEW_INDEX name
Bluetooth: hci_sock: fix slab oob read in create_monitor_event
net: move altnames together with the netdevice
phy: mapphone-mdm6600: Fix pinctrl_pm handling for sleep pins
phy: mapphone-mdm6600: Fix runtime PM for remove
phy: mapphone-mdm6600: Fix runtime disable on probe
gpio: vf610: mask the gpio irq in system suspend and support wakeup
gpio: vf610: make irq_chip immutable
tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols
kallsyms: Add helper kallsyms_on_each_match_symbol()
kallsyms: Reduce the memory occupied by kallsyms_seqs_of_names[]
serial: 8250: omap: convert to modern PM ops
serial: 8250: omap: Move uart_write() inside PM section
drm/bridge: ti-sn65dsi86: Associate DSI device lifetime with auxiliary device
ASoC: pxa: fix a memory leak in probe()
gpio: vf610: set value before the direction to avoid a glitch
platform/x86: asus-wmi: Map 0x2a code, Ignore 0x2b and 0x2c events
platform/x86: asus-wmi: Only map brightness codes when using asus-wmi backlight control
platform/x86: asus-wmi: Change ASUS_WMI_BRN_DOWN code from 0x20 to 0x2e
platform/x86: intel-uncore-freq: Conditionally create attribute for read frequency
platform/surface: platform_profile: Propagate error if profile registration fails
s390/cio: fix a memleak in css_alloc_subchannel
selftests/ftrace: Add new test case which checks non unique symbol
s390/pci: fix iommu bitmap allocation
perf: Disallow mis-matched inherited group reads
USB: serial: option: add Fibocom to DELL custom modem FM101R-GL
USB: serial: option: add entry for Sierra EM9191 with new firmware
USB: serial: option: add Telit LE910C4-WWX 0x1035 composition
HID: input: map battery system charging
KVM: x86/mmu: Stop zapping invalidated TDP MMU roots asynchronously
nvme-rdma: do not try to stop unallocated queues
nvmet-auth: complete a request only after freeing the dhchap pointers
nvme-pci: add BOGUS_NID for Intel 0a54 device
nvme: sanitize metadata bounce buffer for reads
nfs42: client needs to strip file mode's suid/sgid bit after ALLOCATE op
ACPI: irq: Fix incorrect return value in acpi_register_gsi()
NFSv4.1: fixup use EXCHGID4_FLAG_USE_PNFS_DS for DS server
pNFS/flexfiles: Check the layout validity in ff_layout_mirror_prepare_stats
pNFS: Fix a hang in nfs4_evict_inode()
Revert "pinctrl: avoid unsafe code pattern in find_pinctrl()"
mmc: core: Capture correct oemid-bits for eMMC cards
mmc: core: sdio: hold retuning if sdio in 1-bit mode
mmc: mtk-sd: Use readl_poll_timeout_atomic in msdc_reset_hw
mmc: sdhci-pci-gli: fix LPM negotiation so x86/S0ix SoCs can suspend
dt-bindings: mmc: sdhci-msm: correct minimum number of clocks
mtd: physmap-core: Restore map_rom fallback
mtd: spinand: micron: correct bitmask for ecc status
mtd: rawnand: arasan: Ensure program page operations are successful
mtd: rawnand: marvell: Ensure program page operations are successful
mtd: rawnand: pl353: Ensure program page operations are successful
mtd: rawnand: qcom: Unmap the right resource upon probe failure
net/smc: fix smc clc failed issue when netdevice not in init_net
tcp_bpf: properly release resources on error paths
selftests: openvswitch: Add version check for pyroute2
Bluetooth: hci_event: Fix using memcmp when comparing keys
ice: Remove redundant pci_enable_pcie_error_reporting()
tcp: allow again tcp_disconnect() when threads are waiting
net/tls: split tls_rx_reader_lock
net/mlx5e: Don't offload internal port if filter device is out device
net/mlx5: Handle fw tracer change ownership event based on MTRC
net/mlx5: E-switch, register event handler before arming the event
xfrm6: fix inet6_dev refcount underflow problem
net: xfrm: skip policies marked as dead while reinserting policies
fprobe: Fix to ensure the number of active retprobes is not zero
fprobe: Add nr_maxactive to specify rethook_node pool size
fprobe: Pass entry_data to handlers
cpufreq: schedutil: Update next_freq when cpufreq_limits change
platform/x86: touchscreen_dmi: Add info for the Positivo C4128B
HID: nintendo: reinitialize USB Pro Controller after resuming from suspend
HID: multitouch: Add required quirk for Synaptics 0xcd7e device
drm/amd/pm: add unique_id for gc 11.0.3
btrfs: error out when reallocating block for defrag using a stale transaction
btrfs: error when COWing block from a root that is being deleted
btrfs: error out when COWing block using a stale transaction
btrfs: fix some -Wmaybe-uninitialized warnings in ioctl.c
drm: panel-orientation-quirks: Add quirk for One Mix 2S
ipv4/fib: send notify when delete source address routes
sky2: Make sure there is at least one frag_addr available
regulator/core: Revert "fix kobject release warning and memory leak in regulator_register()"
wifi: cfg80211: avoid leaking stack data into trace
wifi: mac80211: allow transmitting EAPOL frames with tainted key
wifi: mac80211: work around Cisco AP 9115 VHT MPDU length
wifi: cfg80211: Fix 6GHz scan configuration
Bluetooth: hci_core: Fix build warnings
Bluetooth: Avoid redundant authentication
Bluetooth: btusb: add shutdown function for QCA6174
HID: holtek: fix slab-out-of-bounds Write in holtek_kbd_input_event
HID: logitech-hidpp: Add Bluetooth ID for the Logitech M720 Triathlon mouse
wifi: iwlwifi: Ensure ack flag is properly cleared.
wifi: mwifiex: Sanity check tlv_len and tlv_bitmap_len
tracing: relax trace_event_eval_update() execution with cond_resched()
ata: libata-eh: Fix compilation warning in ata_eh_link_report()
ata: libata-core: Fix compilation warning in ata_dev_config_ncq()
gpio: timberdale: Fix potential deadlock on &tgpio->lock
overlayfs: set ctime when setting mtime and atime
i2c: mux: Avoid potential false error message in i2c_mux_add_adapter
btrfs: initialize start_slot in btrfs_log_prealloc_extents
btrfs: return -EUCLEAN for delayed tree ref with a ref count not equals to 1
btrfs: prevent transaction block reserve underflow when starting transaction
fs-writeback: do not requeue a clean inode having skipped pages
ARM: dts: ti: omap: Fix noisy serial with overrun-throttle-ms for mapphone
pwr-mlxbf: extend Kconfig to include gpio-mlxbf3 dependency
iio: adc: ad7192: Correct reference voltage
iio: adc: ad7192: Simplify using devm_regulator_get_enable()
iio: cros_ec: fix an use-after-free in cros_ec_sensors_push_data()
iio: core: introduce iio_device_{claim|release}_buffer_mode() APIs
serial: 8250_omap: Fix errors with no_console_suspend
serial: 8250: omap: Fix imprecise external abort for omap_8250_pm()
serial: Reduce spinlocked portion of uart_rs485_config()
serial: Rename uart_change_speed() to uart_change_line_settings()
serial: Move uart_change_speed() earlier
usb: misc: onboard_hub: add support for Microchip USB2412 USB 2.0 hub
usb: misc: onboard_usb_hub: add Genesys Logic GL3523 hub support
usb: misc: onboard_usb_hub: add Genesys Logic GL852G hub support
usb: misc: onboard_usb_hub: add Genesys Logic GL850G hub support
selftests/mm: fix awk usage in charge_reserved_hugetlb.sh and hugetlb_reparenting_test.sh that may cause error
net: check for altname conflicts when changing netdev's netns
net: fix ifname in netlink ntf during netns move
net: avoid UAF on deleted altname
net: pktgen: Fix interface flags printing
net: phy: bcm7xxx: Add missing 16nm EPHY statistics
netfilter: nf_tables: revert do not remove elements if set backend implements .abort
netfilter: nf_tables: do not remove elements if set backend implements .abort
netlink: Correct offload_xstats size
netfilter: nft_set_rbtree: .deactivate fails if element has expired
selftests: netfilter: Run nft_audit.sh in its own netns
selftests: openvswitch: Catch cases where the tests are killed
neighbor: tracing: Move pin6 inside CONFIG_IPV6=y section
net/sched: sch_hfsc: upgrade 'rt' to 'sc' when it becomes a inner curve
bonding: Return pointer to data after pull on skb
net: dsa: bcm_sf2: Fix possible memory leak in bcm_sf2_mdio_register()
i40e: prevent crash on probe if hw registers have invalid values
octeon_ep: update BQL sent bytes before ringing doorbell
net: usb: smsc95xx: Fix an error code in smsc95xx_reset()
ipv4: fib: annotate races around nh->nh_saddr_genid and nh->nh_saddr
tun: prevent negative ifindex
tcp: Fix listen() warning with v4-mapped-v6 address.
tcp: tsq: relax tcp_small_queue_check() when rtx queue contains a single skb
tcp: fix excessive TLP and RACK timeouts from HZ rounding
net: rfkill: gpio: prevent value glitch during probe
net: ipv6: fix return value check in esp_remove_trailer
net: ipv4: fix return value check in esp_remove_trailer
wifi: cfg80211: use system_unbound_wq for wiphy work
xfrm: interface: use DEV_STATS_INC()
xfrm: fix a data-race in xfrm_gen_index()
xfrm: fix a data-race in xfrm_lookup_with_ifid()
qed: fix LL2 RX buffer allocation
ASoC: codecs: wcd938x: fix resource leaks on bind errors
ASoC: codecs: wcd938x: fix unbind tear down order
ASoC: codecs: wcd938x: drop bogus bind error handling
ASoC: codecs: wcd938x-sdw: fix runtime PM imbalance on probe errors
ASoC: codecs: wcd938x-sdw: fix use after free on driver unbind
ALSA: hda/relatek: Enable Mute LED on HP Laptop 15s-fq5xxx
ALSA: hda/realtek: Add quirk for ASUS ROG GU603ZV
ALSA: hda/realtek - Fixed ASUS platform headset Mic issue
drm/mediatek: Correctly free sg_table in gem prime vmap
drm/i915: Retry gtt fault when out of fence registers
nvmet-tcp: Fix a possible UAF in queue intialization setup
netfilter: nft_payload: fix wrong mac header matching
fs/ntfs3: fix deadlock in mark_as_free_ex
fs/ntfs3: fix panic about slab-out-of-bounds caused by ntfs_list_ea()
fs/ntfs3: Fix possible null-pointer dereference in hdr_find_e()
mptcp: more conservative check for zero probes
tcp: check mptcp-level constraints for backlog coalescing
audit,io_uring: io_uring openat triggers audit reference count underflow
x86: KVM: SVM: refresh AVIC inhibition in svm_leave_nested()
x86: KVM: SVM: add support for Invalid IPI Vector interception
KVM: x86: Constrain guest-supported xfeatures only at KVM_GET_XSAVE{2}
x86/fpu: Allow caller to constrain xfeatures when copying to uabi buffer
x86/sev: Check for user-space IOIO pointing to kernel space
x86/sev: Check IOBM for IOIO exceptions from user-space
x86/sev: Disable MMIO emulation from user mode
KVM: x86: Mask LVTPC when handling a PMI
regmap: fix NULL deref on lookup
nfc: nci: fix possible NULL pointer dereference in send_acknowledge()
btrfs: fix stripe length calculation for non-zoned data chunk allocation
net/smc: return the right falback reason when prefix checks fail
ice: reset first in crash dump kernels
ice: fix over-shifted variable
Bluetooth: avoid memcmp() out of bounds warning
Bluetooth: hci_event: Fix coding style
Bluetooth: vhci: Fix race when opening vhci device
Bluetooth: Fix a refcnt underflow problem for hci_conn
Bluetooth: Reject connection with the device which has same BD_ADDR
Bluetooth: hci_event: Ignore NULL link key
igc: Fix race condition in PTP tx code
igc: Add condition for qbv_config_change_errors counter
igc: Add qbv_config_change_errors counter
igc: Remove reset adapter task for i226 during disable tsn config
igc: enable Qbv configuration for 2nd GCL
igc: remove I226 Qbv BaseTime restriction
lib/Kconfig.debug: do not enable DEBUG_PREEMPT by default
Linux 6.1.59
ALSA: hda/realtek - Fixed two speaker platform
powerpc/64e: Fix wrong test in __ptep_test_and_clear_young()
powerpc/8xx: Fix pte_access_permitted() for PAGE_NONE
dmaengine: mediatek: Fix deadlock caused by synchronize_irq()
dmaengine: idxd: use spin_lock_irqsave before wait_event_lock_irq
x86/alternatives: Disable KASAN in apply_alternatives()
usb: cdnsp: Fixes issue with dequeuing not queued requests
usb: gadget: ncm: Handle decoding of multiple NTB's in unwrap call
usb: gadget: udc-xilinx: replace memcpy with memcpy_toio
usb: typec: ucsi: Clear EVENT_PENDING bit if ucsi_send_command fails
usb: typec: altmodes/displayport: Signal hpd low when exiting mode
counter: microchip-tcb-capture: Fix the use of internal GCLK logic
counter: chrdev: fix getting array extensions
scsi: ufs: core: Correct clear TM error log
pinctrl: avoid unsafe code pattern in find_pinctrl()
dma-buf: add dma_fence_timestamp helper
cgroup: Remove duplicates in cgroup v1 tasks file
usb: typec: ucsi: Use GET_CAPABILITY attributes data to set power supply scope
nfp: flower: avoid rmmod nfp crash issues
mctp: perform route lookups under a RCU read-side lock
tee: amdtee: fix use-after-free vulnerability in amdtee_close_session
Input: goodix - ensure int GPIO is in input for gpio_count == 1 && gpio_int_idx == 0 case
Input: i8042 - add Fujitsu Lifebook E5411 to i8042 quirk table
Input: xpad - add PXN V900 support
Input: psmouse - fix fast_reconnect function for PS/2 mode
Input: powermate - fix use-after-free in powermate_config_complete
ceph: fix type promotion bug on 32bit systems
ceph: fix incorrect revoked caps assert in ceph_fill_file_size()
libceph: use kernel_connect()
powerpc/47x: Fix 47x syscall return crash
thunderbolt: Restart XDomain discovery handshake after failure
thunderbolt: Check that lane 1 is in CL0 before enabling lane bonding
thunderbolt: Workaround an IOMMU fault on certain systems with Intel Maple Ridge
mcb: remove is_added flag from mcb_device struct
x86/cpu: Fix AMD erratum #1485 on Zen4-based CPUs
perf/x86/lbr: Filter vsyscall addresses
ksmbd: not allow to open file if delelete on close bit is set
ACPI: EC: Add quirk for the HP Pavilion Gaming 15-dk1xxx
ACPI: resource: Skip IRQ override on ASUS ExpertBook B1402CBA
drm/amd/display: Don't set dpms_off for seamless boot
drm/amdgpu: add missing NULL check
drm/atomic-helper: relax unregistered connector check
arm64: dts: mediatek: mt8195-demo: update and reorder reserved memory regions
arm64: dts: mediatek: mt8195-demo: fix the memory size to 8GB
iio: addac: Kconfig: update ad74413r selections
iio: pressure: ms5611: ms5611_prom_is_valid false negative bug
iio: pressure: dps310: Adjust Timeout Settings
iio: admv1013: add mixer_vgate corner cases
iio: dac: ad3552r: Correct device IDs
iio: adc: imx8qxp: Fix address for command buffer registers
iio: imu: bno055: Fix missing Kconfig dependencies
iio: pressure: bmp280: Fix NULL pointer exception
usb: musb: Modify the "HWVers" register address
usb: musb: Get the musb_qh poniter after musb_giveback
usb: hub: Guard against accesses to uninitialized BOS descriptors
usb: cdns3: Modify the return value of cdns_set_active () to void when CONFIG_PM_SLEEP is disabled
usb: dwc3: Soft reset phy on probe for host
net: usb: dm9601: fix uninitialized variable use in dm9601_mdio_read
usb: xhci: xhci-ring: Use sysdev for mapping bounce buffer
dmaengine: stm32-mdma: set in_flight_bytes in case CRQA flag is set
dmaengine: stm32-mdma: use Link Address Register to compute residue
dmaengine: stm32-dma: fix residue in case of MDMA chaining
dmaengine: stm32-dma: fix stm32_dma_prep_slave_sg in case of MDMA chaining
dmaengine: stm32-mdma: abort resume if no ongoing transfer
tcp: enforce receive buffer memory limits by allowing the tcp window to shrink
workqueue: Override implicit ordered attribute in workqueue_apply_unbound_cpumask()
nfc: nci: assert requested protocol is valid
pinctrl: renesas: rzn1: Enable missing PINMUX
net/smc: Fix pos miscalculation in statistics
net: nfc: fix races in nfc_llcp_sock_get() and nfc_llcp_sock_get_sn()
net/mlx5e: Again mutually exclude RX-FCS and RX-port-timestamp
ixgbe: fix crash with empty VF macvlan list
net/mlx5e: macsec: use update_pn flag instead of PN comparation
net: phy: mscc: macsec: reject PN update requests
net: macsec: indicate next pn update when offloading
net: refine debug info in skb_checksum_help()
bpf: Fix verifier log for async callback return values
drm/vmwgfx: fix typo of sizeof argument
riscv, bpf: Sign-extend return values
riscv, bpf: Factor out emit_call for kernel and bpf context
xen-netback: use default TX queue size for vifs
mlxsw: fix mlxsw_sp2_nve_vxlan_learning_set() return type
ieee802154: ca8210: Fix a potential UAF in ca8210_probe
ravb: Fix use-after-free issue in ravb_tx_timeout_work()
ravb: Fix up dma_free_coherent() call in ravb_remove()
arm64: dts: mediatek: mt8195: Set DSU PMU status to fail
can: sun4i_can: Only show Kconfig if ARCH_SUNXI is set
can: isotp: isotp_sendmsg(): fix TX state detection and wait behavior
net: dsa: qca8k: fix potential MDIO bus conflict when accessing internal PHYs via management frames
phy: lynx-28g: serialize concurrent phy_set_mode_ext() calls to shared registers
phy: lynx-28g: lock PHY while performing CDR lock workaround
phy: lynx-28g: cancel the CDR check work item on the remove path
drm/msm/dp: Add newlines to debug printks
drm/msm/dpu: change _dpu_plane_calc_bw() to use u64 to avoid overflow
drm/msm/dsi: fix irq_of_parse_and_map() error checking
drm/msm/dsi: skip the wait for video mode done if not applicable
drm/msm/dp: do not reinitialize phy unless retry during link training
pinctrl: nuvoton: wpcm450: fix out of bounds write
ALSA: hda/realtek - ALC287 merge RTK codec with CS CS35L41 AMP
ALSA: hda/realtek - ALC287 I2S speaker platform support
ALSA: hda/realtek: Add quirk for mute LEDs on HP ENVY x360 15-eu0xxx
ALSA: hda/realtek: Add quirk for HP Victus 16-d1xxx to enable mute LED
ASoC: fsl_sai: Don't disable bitclock for i.MX8MP
ASoC: fsl_sai: MCLK bind with TX/RX enable bit
ASoC: Use of_property_read_bool() for boolean properties
ASoC: Intel: soc-acpi: Add entry for sof_es8336 in MTL match table.
ASoC: Intel: sof_sdw: add support for SKU 0B14
ASoC: Intel: soc-acpi: Add entry for HDMI_In capture support in MTL match table
ASoC: simple-card-utils: fixup simple_util_startup() error handling
ASoC: SOF: amd: fix for firmware reload failure after playback
ALSA: hda/realtek: Change model for Intel RVP board
ALSA: usb-audio: Fix microphone sound on Nexigo webcam.
ALSA: usb-audio: Fix microphone sound on Opencomm2 Headset
KEYS: trusted: Remove redundant static calls usage
irqchip: renesas-rzg2l: Fix logic to clear TINT interrupt source
dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Update description for '#interrupt-cells' property
arm64: dts: qcom: sm8150: extend the size of the PDC resource
net: prevent address rewrite in kernel_bind()
ata: libata-scsi: Disable scsi device manage_system_start_stop
ASoC: amd: yc: Fix non-functional mic on Lenovo 82YM
quota: Fix slow quotaoff
HID: logitech-hidpp: Fix kernel crash on receiver USB disconnect
scsi: Do not rescan devices with a suspended queue
platform/x86: hp-wmi:: Mark driver struct with __refdata to prevent section mismatch warning
platform/x86: think-lmi: Fix reference leak
perf/arm-cmn: Fix the unhandled overflow status of counter 4 to 7
RDMA/cxgb4: Check skb value for failure to allocate
drm/i915: Don't set PIPE_CONTROL_FLUSH_L3 for aux inval
mptcp: fix delegated action races
net: mana: Fix TX CQE error handling
Linux 6.1.58
lib/test_meminit: fix off-by-one error in test_pages()
Revert "NFS: Fix error handling for O_DIRECT write scheduling"
Revert "NFS: Fix O_DIRECT locking issues"
Revert "NFS: More O_DIRECT accounting fixes for error paths"
Revert "NFS: Use the correct commit info in nfs_join_page_group()"
Revert "NFS: More fixes for nfs_direct_write_reschedule_io()"
Conflicts:
Documentation/devicetree/bindings
Documentation/devicetree/bindings/interrupt-controller/qcom,mpm.yaml
Documentation/devicetree/bindings/interrupt-controller/renesas,rzg2l-irqc.yaml
Documentation/devicetree/bindings/mfd/mt6397.txt
Documentation/devicetree/bindings/mmc/sdhci-msm.yaml
drivers/clk/qcom/gcc-sm8150.c
drivers/hwtracing/coresight/coresight-tmc-core.c
drivers/hwtracing/coresight/coresight-tmc-etr.c
drivers/interconnect/qcom/sm8150.c
drivers/interconnect/qcom/sm8150.h
drivers/phy/qualcomm/Makefile
Change-Id: I9b0afef38a5cd42781504ccd77dfb8a747a5dea4
Upstream-Build: ks_qcom-android14-6.1-keystone-qcom-release@11750438 UKQ2.240423.001
Signed-off-by: Srinivasarao Pathipati <quic_c_spathi@quicinc.com>
2245 lines
73 KiB
Makefile
2245 lines
73 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
VERSION = 6
|
|
PATCHLEVEL = 1
|
|
SUBLEVEL = 68
|
|
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)
|