131b12d50f
This is the merge of the upstream LTS release of 5.4.110 into the android12-5.10 branch. It contains the following commits:e08dd85cc9
ANDROID: fix up abi issue with struct snd_pcm_runtime, again8f4bd2a63f
Revert "coredump: Snapshot the vmas in do_coredump"b7dbb1ee1f
Revert "coredump: Remove the WARN_ON in dump_vma_snapshot"5f24894332
Revert "coredump: Use the vma snapshot in fill_files_note"c4eb663fca
Revert "pstore: Don't use semaphores in always-atomic-context code"562c3bd65c
Revert "PCI: Reduce warnings on possible RW1C corruption"0038e1f40c
ANDROID: GKI: fix crc issue with commitce1927b8cf
("block: don't merge across cgroup boundaries if blkcg is enabled")62fa3399b4
ANDROID: remove CONFIG_HW_RANDOM_CAVIUM from arm64 gki_defconfig95f4203fc9
Merge 5.10.110 into android12-5.10-lts3238bffaf9
Linux 5.10.110cf342cbfb3
PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup"a25864c5bc
arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones558564db44
coredump: Use the vma snapshot in fill_files_noteb7933f145a
coredump/elf: Pass coredump_params into fill_note_infob043ae637a
coredump: Remove the WARN_ON in dump_vma_snapshot936c8be4d1
coredump: Snapshot the vmas in do_coredump5318cdf4fd
can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path869016a293
can: m_can: m_can_tx_handler(): fix use after free of skbe90518d10c
KVM: x86/mmu: do compare-and-exchange of gPTE via the user addresse36c45263a
openvswitch: Fixed nd target mask field in the flow dump.415edc68b6
docs: sysctl/kernel: add missing bit to panic_print272c74323d
um: Fix uml_mconsole stop/goc0a6a54738
ARM: dts: spear13xx: Update SPI dma propertiesea3912af8b
ARM: dts: spear1340: Update serial node properties74f7971985
ASoC: topology: Allow TLV control to be either read or write3ca47556d9
ubi: fastmap: Return error code if memory allocation fails in add_aeb()7704f243cb
dt-bindings: spi: mxic: The interrupt property is not mandatory648ab1dcc1
dt-bindings: mtd: nand-controller: Fix a comment in the examples71917e45e1
dt-bindings: mtd: nand-controller: Fix the reg property description73f2f37417
bpf: Fix comment for helper bpf_current_task_under_cgroup()90805175a2
bpf: Adjust BPF stack helper functions to accommodate skip > 086489492e8
mm/usercopy: return 1 from hardened_usercopy __setup() handler81a04b9a32
mm/memcontrol: return 1 from cgroup.memory __setup() handlerf321621f5c
ARM: 9187/1: JIVE: fix return value of __setup handlerd57feed3b1
mm/mmap: return 1 from stack_guard_gap __setup() handler73f7cbb151
batman-adv: Check ptr for NULL before reducing its refcntf6da750bfa
ASoC: soc-compress: Change the check for codec_daid3f786b7cf
staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet12e380bb6f
proc: bootconfig: Add null pointer check90ec1b1538
can: isotp: restore accidentally removed MSG_PEEK feature16960ac92b
platform/chrome: cros_ec_typec: Check for EC devicee5b681822c
ACPI: CPPC: Avoid out of bounds access when parsing _CPC data785a53373c
riscv module: remove (NOLOAD)b27de7011c
io_uring: fix memory leak of uid in files registration20499ed3c0
ARM: iop32x: offset IRQ numbers by 1432b057f8e
ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctlf28a857a61
ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLsecfc3f8a63
pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE()503868a7c0
pinctrl: nuvoton: npcm7xx: Rename DS() macro to DSTR()d9afc5146b
watchdog: rti-wdt: Add missing pm_runtime_disable() in probe function402b53dc7c
pinctrl: pinconf-generic: Print arguments for bias-pull-*7169f60110
watch_queue: Free the page array when watch_queue is dismantlede64dc94990
crypto: arm/aes-neonbs-cbc - Select generic cbc and aesa16f5ae8ad
mailbox: imx: fix wakeup failure from freeze mode051360e513
rxrpc: Fix call timer start racing with call destructiona94d98e06e
net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardwarec73af4bc8a
gfs2: Make sure FITRIM minlen is rounded up to fs block size33c204266c
rtc: check if __rtc_read_time was successful381636f33f
XArray: Update the LRU list in xas_split()3b9fabe8f6
can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error valueef0acc5141
can: mcba_usb: properly check endpoint type0801a51d79
can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path1ac49c8fd4
XArray: Fix xas_create_range() when multi-order entry present49f77ab50a
wireguard: socket: ignore v6 endpoints when ipv6 is disabled096f9d35ca
wireguard: socket: free skb in send6 when ipv6 is disabledcd032f218c
wireguard: queueing: use CFI-safe ptr_ring cleanup function8a0c70c238
ubifs: rename_whiteout: correct old_dir size computingc34ae24a25
ubifs: Fix to add refcount once page is set private07a209fade
ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()d07a242169
ubifs: setflags: Make dirtied_ino_d 8 bytes aligned13b2a8151e
ubifs: Add missing iput if do_tmpfile() failed in rename whiteout83e42a7842
ubifs: Fix deadlock in concurrent rename whiteout and inode writebacka90e2dbe66
ubifs: rename_whiteout: Fix double free for whiteout_ui->data0c307349fe
ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM0fb470eb48
KVM: SVM: fix panic on out-of-bounds guest IRQcd8c2d7c7c
KVM: x86: fix sending PV IPIeccfee4494
KVM: Prevent module exit until all VMs are freed09c771c45c
KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activatedaea4ffdcf3
platform: chrome: Split trace include filed3a913ba1f
scsi: qla2xxx: Use correct feature type field during RFF_ID processing633450063c
scsi: qla2xxx: Reduce false trigger to logindd48727cab
scsi: qla2xxx: Fix N2N inconsistent PLOGI0910a791a6
scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requestsf296e888e9
scsi: qla2xxx: Fix hang due to session stuckedea037716
scsi: qla2xxx: Fix incorrect reporting of task management failure9dc104edd7
scsi: qla2xxx: Fix disk failure to rediscoverf97316dd39
scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()0e4a89efc2
scsi: qla2xxx: Check for firmware dump already collectedef10a7530c
scsi: qla2xxx: Add devids and conditionals for 28xxbad77c9a47
scsi: qla2xxx: Fix device reconnect in loop topology8b52e20c22
scsi: qla2xxx: Fix warning for missing error code7c9745421d
scsi: qla2xxx: Fix wrong FDMI data for 64G adapter7fef50214d
scsi: qla2xxx: Fix scheduling while atomicc45147018d
scsi: qla2xxx: Fix stuck session in gpdb031547f4c6
powerpc: Fix build errors with newer binutils68fa67e939
powerpc/lib/sstep: Fix build errors with newer binutilsad806b4022
powerpc/lib/sstep: Fix 'sthcx' instructionf39a330939
powerpc/kasan: Fix early region not updated correctly89e5a42687
KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMUa3ad453008
ALSA: hda/realtek: Add alc256-samsung-headphone fixupaa2ad067cd
media: atomisp: fix bad usage at error handling logic2412a5d294
mmc: host: Return an error when ->enable_sdio_irq() ops is missing808990afd8
media: hdpvr: initialize dev->worker at hdpvr_register_videodev32582f82df
media: Revert "media: em28xx: add missing em28xx_close_extension"b1c2857752
video: fbdev: sm712fb: Fix crash in smtcfb_write()e7bb29df2a
ARM: mmp: Fix failure to remove sram deviceadd823a9a5
ARM: tegra: tamonten: Fix I2C3 pad setting08ec8450f3
lib/test_lockup: fix kernel pointer check for separate address spaces40a5c93a74
uaccess: fix type mismatch warnings from access_ok()a49b687a75
media: cx88-mpeg: clear interrupt status register before streaming video4606350268
ASoC: soc-core: skip zero num_dai component in searching dai namea840fc067e
ARM: dts: bcm2711: Add the missing L1/L2 cache information681a317034
video: fbdev: udlfb: replace snprintf in show functions with sysfs_emita7c624abf6
video: fbdev: omapfb: panel-tpo-td043mtea1: Use sysfs_emit() instead of snprintf()543dae0a46
video: fbdev: omapfb: panel-dsi-cm: Use sysfs_emit() instead of snprintf()910715c4b4
arm64: defconfig: build imx-sdma as a module14df2556a1
ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clkc241cfd0a5
ARM: ftrace: avoid redundant loads or clobbering IP41082d6432
media: atomisp: fix dummy_ptr check to avoid duplicate active_bob554196e6d
media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards370b50492e
ASoC: madera: Add dependencies on MFD0020667edc
ARM: dts: bcm2837: Add the missing L1/L2 cache informationf040c08102
ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960da210b1b55
video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit8c7e2141fb
video: fbdev: cirrusfb: check pixclock to avoid divide by zero1e33f19746
video: fbdev: w100fb: Reset global state08dff48201
video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow99e3f83539
media: ir_toy: free before error exitingd658178b5a
media: staging: media: zoran: fix various V4L2 compliance errorsbafec1a6ba
media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_combd01629315
media: staging: media: zoran: move videodev allocb230f2d944
ntfs: add sanity check on allocation sizef7e8aff062
f2fs: compress: fix to print raw data size in error path of lz4 decompressiond91d1e681c
NFSD: Fix nfsd_breaker_owns_lease() return values498b7088db
f2fs: fix to do sanity check on curseg->alloc_type330d0e44fc
ext4: don't BUG if someone dirty pages without asking ext4 firstcd6d719534
ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit69d2421b55
ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bbecd384c436
locking/lockdep: Iterate lock_classes directly when reading lockdep files3ad817f1bd
spi: tegra20: Use of_device_get_match_data()1c200c8bce
nvme-tcp: lockdep: annotate in-kernel sockets7e4967e913
parisc: Fix handling off probe non-access faultsede1ef1a7d
PM: core: keep irq flags in device_pm_check_callbacks()227718c8bb
ACPI/APEI: Limit printable size of BERT table datacc051f497e
Revert "Revert "block, bfq: honor already-setup queue merges""1b69302bfa
lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.31b87ce6a77
ACPICA: Avoid walking the ACPI Namespace if it is not theredf6e00b1a5
bfq: fix use-after-free in bfq_dispatch_requestdd85ed4af8
fs/binfmt_elf: Fix AT_PHDR for unusual ELF files9fc899ce5a
irqchip/nvic: Release nvic_base upon failure4bbd910de1
irqchip/qcom-pdc: Fix broken lockingf038185b6a
Fix incorrect type in assignment of ipv6 port for audit012c572007
loop: use sysfs_emit() in the sysfs xxx show()448857f580
selinux: allow FIOCLEX and FIONCLEX with policy capability4b9b60b5bf
selinux: use correct type for context length7507ead1e9
block, bfq: don't move oom_bfqq79b16d00de
pinctrl: npcm: Fix broken references to chip->parent_device9d1d8e5e42
gcc-plugins/stackleak: Exactly match strings instead of prefixesb0f2f89d74
regulator: rpi-panel: Handle I2C errors/timing to the Atmel2784604c8c
LSM: general protection fault in legacy_parse_parame600b5973e
fs: fix fd table size alignment properly327f07e370
lib/test: use after free in register_test_dev_kmod()00d2b9fe5e
fs: fd tables have to be multiples of BITS_PER_LONG1752fcd404
net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iteratoredb91a475d
NFSv4/pNFS: Fix another issue with a list iterator pointing to the head5c94b6205e
net/x25: Fix null-ptr-deref caused by x25_disconnect4896c308a5
qlcnic: dcb: default to returning -EOPNOTSUPP2165d0ebfb
selftests: test_vxlan_under_vrf: Fix broken test casef98dc124a4
net: phy: broadcom: Fix brcm_fet_config_init()3e7a483af3
net: hns3: fix bug when PF set the duplicate MAC address for VFs3eb92660e6
net: enetc: report software timestamping via SO_TIMESTAMPINGe9445a7a59
xen: fix is_xen_pmu()af0c3ced24
clk: Initialize orphan req_rate845e734f97
clk: qcom: gcc-msm8994: Fix gpll4 widthe2a2625392
kdb: Fix the putarea helper functiona9fa7d48a1
NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error8cd30d28da
netfilter: nf_conntrack_tcp: preserve liberal flag in tcp optionsfbd56a61ce
jfs: fix divide error in dbNextAGacb96e62e6
driver core: dd: fix return value of __setup handler89748be18f
firmware: google: Properly state IOMEM dependency3d934d7b90
kgdbts: fix return value of __setup handlerf65ba8b988
serial: 8250: fix XOFF/XON sending when DMA is used45e95a7bf8
kgdboc: fix return value of __setup handler96038b1cf4
tty: hvc: fix return value of __setup handler566e30289d
pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe669b05ff43
pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe9d095fe2fb
pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual GPIOs861946289d
pinctrl: mediatek: paris: Fix pingroup pin config state readback7675fb2aaf
pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()901e192ac9
pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback72ea0fefea
pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_initfddbfe43bf
staging: mt7621-dts: fix GB-PC2 devicetree00e0739ca1
staging: mt7621-dts: fix pinctrl properties for ethernet47c31fe8ca
staging: mt7621-dts: fix formatting59ec187d7c
staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree942f68bf29
NFS: remove unneeded check in decode_devicenotify_args()e025c66387
clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver54c8128297
clk: clps711x: Terminate clk_div_table with sentinel element9ff533033d
clk: loongson1: Terminate clk_div_table with sentinel elementbb680cabf2
clk: actions: Terminate clk_div_table with sentinel element431f8a9cec
nvdimm/region: Fix default alignment for small regionsf7210ca29a
remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region7a494580a8
remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region5c1d484d96
remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_regionf95fd61dd8
dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dmad047d68ff0
clk: qcom: clk-rcg2: Update the frac table for pixel clock334720f418
clk: qcom: clk-rcg2: Update logic to calculate D value for RCG639744b242
clk: at91: sama7g5: fix parents of PDMCs' GCLK0553ecbce9
clk: imx7d: Remove audio_mclk_root_clk867258d3f3
dma-debug: fix return value of __setup handlers2f3885514e
NFS: Return valid errors from nfs2/3_decode_dirent()7b59afe84a
habanalabs: Add check for pci_enable_deviceafcbc63752
iio: adc: Add check for devm_request_threaded_irqdf2dc4cf71
serial: 8250: Fix race condition in RTS-after-send handling469ce5119f
NFS: Use of mapping_set_error() results in spurious errors659fe4d653
serial: 8250_lpss: Balance reference count for PCI DMA device0aebb3944a
serial: 8250_mid: Balance reference count for PCI DMA devicec92bd51313
phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})80805f555e
clk: qcom: ipq8074: Use floor ops for SDCC1 clockfd2601e366
pinctrl: renesas: checker: Fix miscalculation of number of statesc5cf977515
pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channelb5db33a81e
staging:iio:adc:ad7280a: Fix handing of device address bit reversing.f5b01abf5f
iio: mma8452: Fix probe failing when an i2c_device_id is used8b89c9e68a
clk: qcom: ipq8074: fix PCI-E clock oopsa70d5dbe2e
soundwire: intel: fix wrong register name in intel_shim_wake091704a9a7
cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fusef90ad94322
misc: alcor_pci: Fix an error handling path553541c453
fsi: Aspeed: Fix a potential double freecb212c3f0d
fsi: aspeed: convert to devm_platform_ioremap_resourcec0b3c06414
pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()2cd05c38a2
mxser: fix xmit_buf leak in activate when LSR == 0xff8513c93ead
mfd: asic3: Add missing iounmap() on error asic3_mfd_probe084be6309f
tipc: fix the timer expires after interval 100ms5d8162371c
openvswitch: always update flow key after nat4593c76a65
tcp: ensure PMTU updates are processed during fastopenb26091a020
net: bcmgenet: Use stronger register read/writes to assure ordering9088614323
PCI: Avoid broken MSI on SB600 USB devices75a4a97b74
selftests/bpf/test_lirc_mode2.sh: Exit with proper code0d3ad6142a
i2c: mux: demux-pinctrl: do not deactivate a master that is not activec483f8002d
i2c: meson: Fix wrong speed use from probeb089836218
af_netlink: Fix shift out of bounds in group mask calculation40f3b8dada
ipv4: Fix route lookups when handling ICMP redirects and PMTU updates70a6cf749d
Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interruptb441fcdff2
Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed876cfe1380
selftests/bpf: Fix error reporting from sock_fields programsac1ec6f319
bareudp: use ipv6_mod_enabled to check if IPv6 enabledc037e13539
can: isotp: support MSG_TRUNC flag when reading from socketf402c49865
can: isotp: return -EADDRNOTAVAIL when reading from unbound socket8a9d996d4e
USB: storage: ums-realtek: fix error code in rts51x_read_mem()f9a6661009
samples/bpf, xdpsock: Fix race when running for fix duration of timecd84ea3920
bpf, sockmap: Fix double uncharge the mem of sk_msg7b812a369e
bpf, sockmap: Fix more uncharged while msg has more_databec34a91eb
bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is fullc98d903ff9
RDMA/mlx5: Fix memory leak in error flow for subscribe event routinea3587259ae
mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_initfa3d444245
MIPS: pgalloc: fix memory leak caused by pgd_free()8c4808ff9e
MIPS: RB532: fix return value of __setup handleref1728e3cb
mips: cdmm: Fix refcount leak in mips_cdmm_phys_base315772133a
ath10k: Fix error handling in ath10k_setup_msa_resources71f311b123
vxcan: enable local echo for sent CAN frames3c2a397849
powerpc: 8xx: fix a return value error in mpc8xx_pic_init956fab99ad
platform/x86: huawei-wmi: check the return value of device_create_file()1ba28cb692
selftests/bpf: Make test_lwt_ip_encap more stable and faster08ab406781
libbpf: Unmap rings when umem deleted6fa8edfc90
mfd: mc13xxx: Add check for mc13xxx_irq_requestbcf93175ed
powerpc/sysdev: fix incorrect use to determine if list is emptyab0a335b54
mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=nbbd91cdb62
net: axienet: fix RX ring refill allocation failure handling9ec698984d
PCI: Reduce warnings on possible RW1C corruptiona84cb039d2
IB/hfi1: Allow larger MTU without AIP48d23ef901
power: supply: wm8350-power: Add missing free in free_charger_irq9d3dab40af
power: supply: wm8350-power: Handle error for wm8350_register_irq5cf1371628
i2c: xiic: Make bus names uniquef01e08083c
hv_balloon: rate-limit "Unhandled message" warningba2c6e353b
KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()fa9089949d
KVM: x86: Fix emulation in writing cr83e7e73ae2b
powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit05abd49972
powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties()3e04a837db
libbpf: Skip forward declaration when counting duplicated type names6bb107332d
gpu: host1x: Fix a memory leak in 'host1x_remove()'d1c7759304
bpf, arm64: Feed byte-offset into bpf line info694398af5f
bpf, arm64: Call build_prologue() first in first JIT pass06a0001366
drm/bridge: cdns-dsi: Make sure to to create proper aliases for dta3d53f0005
scsi: hisi_sas: Change permission of parameter prot_mask705c70399e
power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return1e06710c43
drm/tegra: Fix reference leak in tegra_dsi_ganged_probe9ffa07c699
ext2: correct max file size computing60605acf5b
TOMOYO: fix __setup handlers return valuesadb7c8d1de
drm/amd/display: Remove vupdate_int_entry definitione462b0f518
RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR279f318bd7
scsi: pm8001: Fix abort all task initialization780c668a2d
scsi: pm8001: Fix NCQ NON DATA command completion handlingf7a3f9e4e8
scsi: pm8001: Fix NCQ NON DATA command task initializationf76bbee39e
scsi: pm8001: Fix le32 values handling in pm80xx_chip_sata_req()6bc86bca35
scsi: pm8001: Fix le32 values handling in pm80xx_chip_ssp_io_req()27ccdcaa01
scsi: pm8001: Fix payload initialization in pm80xx_encrypt_update()6c0e850c22
scsi: pm8001: Fix le32 values handling in pm80xx_set_sas_protocol_timer_config()edde1ede76
scsi: pm8001: Fix payload initialization in pm80xx_set_thermal_config()257a55622c
scsi: pm8001: Fix command initialization in pm8001_chip_ssp_tm_req()f55a7bc38f
scsi: pm8001: Fix command initialization in pm80XX_send_read_log()5349cde1df
dm crypt: fix get_key_size compiler warning if !CONFIG_KEYSd4862bea08
drm/msm/dpu: fix dp audio condition7b52fb813c
drm/msm/dpu: add DSPP blocks teardown413c62697b
drm/msm/dp: populate connector of struct dp_panel441a83ff27
iwlwifi: mvm: Fix an error code in iwl_mvm_up()c12692c3e9
iwlwifi: Fix -EIO error code that is never returnedec376f5c11
dax: make sure inodes are flushed before destroy cache5e6b030ac3
IB/cma: Allow XRC INI QPs to set their local ACK timeout9c384e1afa
drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug80b96ac9d2
drm/amd/pm: enable pm sysfs write for one VF mode06e778d184
iommu/ipmmu-vmsa: Check for error num after setting maskab63b24ae6
HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports879356a6a0
power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_initf03ef518c1
drm/bridge: dw-hdmi: use safe format when first in bridge chaine0e25e131d
PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridgeb1af8b9ec0
livepatch: Fix build failure on 32 bits processors6f095441f8
scripts/dtc: Call pkg-config POSIXly correct080822563b
net: dsa: mv88e6xxx: Enable port policy support on 60972ac4f049db
mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update2430af1241
mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update232c1cc986
mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv253cc4aafc
mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta modeb5d363ff17
powerpc/perf: Don't use perf_hw_context for trace IMC PMUc18b538617
KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init8b64c158a0
powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switchbe703360ed
ray_cs: Check ioremap return value43f2fe2a69
power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probeda71a1483b
i40e: respect metadata on XSK Rx to skbb2e48cd141
i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skbe8fe653fa7
KVM: PPC: Fix vmx/vsx mixup in mmio emulation11cb9eba06
RDMA/core: Set MR type in ib_reg_user_mr11f11ac281
ath9k_htc: fix uninit value bugs6e669baa33
drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function19a7eba284
drm/amd/display: Fix a NULL pointer dereference in amdgpu_dm_connector_add_common_modes()9abee51534
drm/nouveau/acr: Fix undefined behavior in nvkm_acr_hsfw_load_bl()47402eaf88
ionic: fix type complaint in ionic_dev_cmd_clean()1ba10e5c39
drm/edid: Don't clear formats if using deep colord99e7feaed
mtd: rawnand: gpmi: fix controller timings setting364b2eee62
mtd: onenand: Check for error irq96ea88eb9b
Bluetooth: hci_serdev: call init_rwsem() before p->open()b267a8118c
udmabuf: validate ubuf->pagecount56722aa77b
libbpf: Fix possible NULL pointer dereference when destroying skeleton4a9c268a40
drm/panfrost: Check for error num after setting mask5d1114ede5
ath10k: fix memory overwrite of the WoWLAN wakeup packet patternfb2be762a4
drm: bridge: adv7511: Fix ADV7535 HPD enablementd9d61beb21
drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe064e7f7532
drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probed8db734df6
drm/bridge: Fix free wrong object in sii8620_init_rcp_input_devec3924eab5
drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_opsa1c665f5b7
ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS1f24716e38
ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_dataabefbf602c
ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe90ac679aa6
ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probeec26e3ce3c
ASoC: atmel: sam9x5_wm8731: use devm_snd_soc_register_card()541251b903
mmc: davinci_mmc: Handle error for clk_enable19eb5c7957
ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe42042c7a3d
ASoC: imx-es8328: Fix error return code in imx_es8328_probe()fe4db4ea21
ASoC: fsl_spdif: Disable TX clock when stop86b6cf9894
ASoC: mxs: Fix error handling in mxs_sgtl5000_probec8c981cfc0
ASoC: dmaengine: do not use a NULL prepare_slave_config() callbackf452cff025
ASoC: SOF: Add missing of_node_put() in imx8m_probe0d82401d46
ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe7e8b0fd0eb
ASoC: rockchip: i2s: Use devm_platform_get_and_ioremap_resource()b5664a584e
ivtv: fix incorrect device_caps for ivtvfbebd4f1501e
media: saa7134: fix incorrect use to determine if list is emptydd67315994
media: saa7134: convert list_for_each to entry variant066d9b48f9
video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of20da8404e4
ASoC: fsi: Add check for clk_enabledb1c00a025
ASoC: wm8350: Handle error for wm8350_register_irq662ee5ac6b
ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe663e7a7287
media: vidtv: Check for null return of vzalloc4d68603cc4
media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUEDb02752d753
m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined9ca3635a0a
arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly7e6f578662
ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction64eee4127c
memory: emif: check the pointer temp in get_device_details()330a9b0d38
memory: emif: Add check for setup_interrupts4639c1d97f
ASoC: soc-compress: prevent the potentially use of null pointera6ee60d4a9
ASoC: dwc-i2s: Handle errors for clk_enable39bee81e30
ASoC: atmel_ssc_dai: Handle errors for clk_enabledc947d175c
ASoC: mxs-saif: Handle errors for clk_enablea754ea0de3
printk: fix return value of printk.devkmsg __setup handler87a265e292
arm64: dts: broadcom: Fix sata nodenamef63122803d
arm64: dts: ns2: Fix spi-cpol and spi-cpha property5d6a0dc6ba
ALSA: spi: Add check for clk_enable()039fae34f8
ASoC: ti: davinci-i2s: Add check for clk_enable()94cb9fe5d8
ASoC: rt5663: check the return value of devm_kzalloc() in rt5663_parse_dp()7ce3e6e103
uaccess: fix nios2 and microblaze get_user_8()19894751f6
ASoC: codecs: wcd934x: fix return value of wcd934x_rx_hph_mode_putf126dcbe70
media: cedrus: h264: Fix neighbour info buffer sizec011ae1665
media: cedrus: H265: Fix neighbour info buffer size44973633b0
media: usb: go7007: s2250-board: fix leak in probe()ec8a37b2d9
media: em28xx: initialize refcount before kref_get1b46f57d51
media: video/hdmi: handle short reads of hdmi info frame.170ad3942b
ARM: dts: imx: Add missing LVDS decoder on M53Menlo2a0eb50d9a
ARM: dts: sun8i: v3s: Move the csi1 block to follow address order77406ac6ef
soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe18b2ec361a
firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not defined8395a17ef6
arm64: dts: qcom: sm8150: Correct TCS configuration for apps rscd19248e23f
arm64: dts: qcom: sdm845: fix microphone bias properties and values2042c6fbfb
soc: qcom: aoss: remove spurious IRQF_ONESHOT flags5a990a65d4
soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmemb5d6eba719
soc: qcom: rpmpd: Check for null return of devm_kcalloc0c11cb8db4
ARM: dts: qcom: ipq4019: fix sleep clock22474dfd0c
firmware: qcom: scm: Remove reassignment to desc following initializerbf4bad1114
video: fbdev: fbcvt.c: fix printing in fb_cvt_print_name()6de6a64f23
video: fbdev: atmel_lcdfb: fix an error code in atmel_lcdfb_probe()64ec3e678d
video: fbdev: smscufx: Fix null-ptr-deref in ufx_usb_probe()0dff86aeb1
video: fbdev: controlfb: Fix COMPILE_TEST buildec1c20b02a
video: fbdev: controlfb: Fix set but not used warningsf8bf19f7f3
video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid black screen3187a1d4d5
media: aspeed: Correct value for h-total-pixels245561612b
media: hantro: Fix overfill bottom register field name032b141a91
media: meson: vdec: potential dereference of null pointerd3e5106c67
media: coda: Fix missing put_device() call in coda_get_vdoa_datac9f4586d99
ASoC: generic: simple-card-utils: remove useless assignment2c357e0277
ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting712dd2ac26
media: bttv: fix WARNING regression on tunerless devicesbc2573abc6
media: mtk-vcodec: potential dereference of null pointer8a83731a09
media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctlsc76188715d
media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_sizef622bd0758
kunit: make kunit_test_timeout compatible with comment9e63bcb71d
selftests, x86: fix how check_cc.sh is being invokedd2c53e77b0
f2fs: fix compressed file start atomic write may cause data corruption1c4d94e4f0
f2fs: compress: remove unneeded read when rewrite whole cluster2c4741d1b0
btrfs: fix unexpected error path when reflinking an inline extent3ef3bc75cd
f2fs: fix to avoid potential deadlock85cc399b65
nfsd: more robust allocation failure handling in nfsd_file_cache_init1a11a87374
f2fs: fix missing free nid in f2fs_handle_failed_inodec0cffc1fb3
perf/x86/intel/pt: Fix address filter config for 32-bit kernel13c8e37e1f
perf/core: Fix address filter parser for multiple filtersa9faa5beda
rseq: Remove broken uapi field layout on 32-bit little endianf0250e05e5
rseq: Optimise rseq_get_rseq_cs() and clear_rseq_cs()ecc17de4b9
sched/core: Export pelt_thermal_tp40732cab51
sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa2b5d41bcf2
f2fs: fix to enable ATGC correctly via gc_idle sysfs interface9d92be1a09
watch_queue: Actually free the watch5ae75b4ed3
watch_queue: Fix NULL dereference in error cleanup509565faed
io_uring: terminate manual loop iterator loop correctly for non-vecs44a77e52bd
clocksource: acpi_pm: fix return value of __setup handlerd678f002f0
hwmon: (pmbus) Add Vin unit off handling7ca525b4cc
hwrng: nomadik - Change clk_disable to clk_disable_unpreparee4c777fd8c
amba: Make the remove callback return void1c6ac39763
vfio: platform: simplify device removalc93017c8d5
crypto: ccree - Fix use after free in cc_cipher_exit()78622926fe
crypto: ccp - ccp_dmaengine_unregister release dma channels9eeee6f684
ACPI: APEI: fix return value of __setup handlers0b45bf1659
clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()b33c753cff
clocksource/drivers/timer-microchip-pit64b: Use notracedb9d00461b
clocksource/drivers/exynos_mct: Handle DTS with higher number of interruptsd4e13c4a6f
clocksource/drivers/exynos_mct: Refactor resources allocation42d331a279
clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fixaedff03da4
crypto: vmx - add missing dependencies51939008ca
crypto: amlogic - call finalize with bh disabled24857d87cc
crypto: sun8i-ce - call finalize with bh disabledbf4814d58b
crypto: sun8i-ss - call finalize with bh disableda4067ccb97
hwrng: atmel - disable trng on failure pathb7940bef6f
spi: spi-zynqmp-gqspi: Handle error for dma_set_mask3928a04bc6
PM: suspend: fix return value of __setup handler052a218db0
PM: hibernate: fix __setup handler error handling0b5924a14d
block: don't delete queue kobject before its children40b288a861
nvme: cleanup __nvme_check_ids32c4db2a52
hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNINGec8536f701
hwmon: (pmbus) Add mutex to regulator ops18a18594ae
spi: pxa2xx-pci: Balance reference count for PCI DMA device55259cb374
crypto: ccree - don't attempt 0 len DMA mappingsd788ad472f
EVM: fix the evm= __setup handler return valuea137f93ae5
audit: log AUDIT_TIME_* records only from rules5e9501e60b
crypto: rockchip - ECB does not need IV8265bea7d8
selftests/x86: Add validity check and allow field splittingf7d9249af3
arm64/mm: avoid fixmap race condition when create pud mapping99a8dfce7c
spi: tegra114: Add missing IRQ check in tegra_spi_probe71dba67138
thermal: int340x: Check for NULL after calling kmemdup()8e57117142
crypto: mxs-dcp - Fix scatterlist processingec1d372974
crypto: authenc - Fix sleep in atomic context in decrypt_tailfdfaafeb4b
crypto: sun8i-ss - really disable hash on A8019693838c8
hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDERbc20294cc8
hwrng: cavium - Check health status while reading random data962d1f59d5
selinux: check return value of sel_make_avc_files1ae9b020dd
regulator: qcom_smd: fix for_each_child.cocci warningsc20975954e
PCI: xgene: Revert "PCI: xgene: Fix IB window setup"0f56f24015
PCI: pciehp: Clear cmd_busy bit in polling mode89ddcc8191
drm/i915/gem: add missing boundary check in vm_accessb84857c06e
drm/i915/opregion: check port number bounds for SWSCI display power state88975951d4
brcmfmac: pcie: Fix crashes due to early IRQs1cbcf93a93
brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toiof3820ddaf4
brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error pathdaa07f2902
brcmfmac: firmware: Allocate space for default boardrev in nvram1dd031eb99
xtensa: fix xtensa_wsr always writing 0dac518bbce
xtensa: fix stop_machine_cpuslocked call in patch_text20f974dce5
media: davinci: vpif: fix unbalanced runtime PM enable7c9b915b94
media: davinci: vpif: fix unbalanced runtime PM getcde90e8291
media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC785ffce44a
DEC: Limit PMAX memory probing to R3k systems8dde2296ec
bcache: fixup multiple threads crash37d2b4fa5c
crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()b89fb8b882
crypto: rsa-pkcs1pad - restore signature length checkf38c318068
crypto: rsa-pkcs1pad - correctly get hash from source scatterlistc1db3f44f2
crypto: rsa-pkcs1pad - only allow with rsa27a6f495b6
exec: Force single empty string when argv is emptyb02d33171d
lib/raid6/test: fix multiple definition linking errorbf057eac9a
thermal: int340x: Increase bitmap size86a926c3f0
pstore: Don't use semaphores in always-atomic-context codeb26f400e4f
carl9170: fix missing bit-wise or operator for tx_params3aef4df6e1
mgag200 fix memmapsl configuration in GCTL6 registeref1df91685
ARM: dts: exynos: add missing HDMI supplies on SMDK54203cde68a1eb
ARM: dts: exynos: add missing HDMI supplies on SMDK52505ac205c414
ARM: dts: exynos: fix UART3 pins configuration in Exynos52507187c9beb7
ARM: dts: at91: sama5d2: Fix PMERRLOC resource size2ca2a5552a
video: fbdev: atari: Atari 2 bpp (STe) palette bugfix72af881092
video: fbdev: sm712fb: Fix crash in smtcfb_read()ba09b04173
drm/edid: check basic audio support on CEA extension blockce1927b8cf
block: don't merge across cgroup boundaries if blkcg is enabled6e0d24598c
block: limit request dispatch loop duration958e9b56de
mailbox: tegra-hsp: Flush whole channelf67a140078
drivers: hamradio: 6pack: fix UAF bug caused by mod_timer()b35eb48471
ext4: fix fs corruption when tring to remove a non-empty directory with IO errora1e6884b2d
ext4: fix ext4_fc_stats trace pointc119fb65f6
coredump: Also dump first pages of non-executable ELF libraries7ad5ccc3da
ACPI: properties: Consistently return -ENOENT if there are no more referencesef3a87e0c4
arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs18864e8b83
arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regse85fa9f4e9
arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs7ce550a01b
arm64: signal: nofpsimd: Do not allocate fp/simd context when not available210e7b43d4
udp: call udp_encap_enable for v6 sockets when enabling encape1a58498ef
powerpc/kvm: Fix kvm_use_magic_paged72866a7f5
can: isotp: sanitize CAN ID checks in isotp_bind()fde8c5cad0
drbd: fix potential silent data corruptionb101e74f9a
dm integrity: set journal entry unused when shrinking deviced5d5804acc
mm/kmemleak: reset tag when compare object pointerbc2f58b8e4
mm,hwpoison: unmap poisoned page before invalidation608c501d70
Revert "mm: madvise: skip unmapped vma holes passed to process_madvise"8b354e3032
mm: madvise: return correct bytes advised with process_madvise928c06c114
mm: madvise: skip unmapped vma holes passed to process_madvise51f7557c3c
ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 20209017201e8d
ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock7b7a03d8b5
ALSA: hda: Avoid unsol event during RPM suspendinga55e2d7423
ALSA: cs4236: fix an incorrect NULL check on list iteratoredefc4b2a8
cifs: fix NULL ptr dereference in smb2_ioctl_query_info()9963ccea60
cifs: prevent bad output lengths in smb2_ioctl_query_info()b75198edda
Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads"34bc1f69bf
riscv: Increase stack size under KASAN24b9b8e95c
riscv: Fix fill_callchain return value0f8c0bd0a4
qed: validate and restrict untrusted VFs vlan promisc modea3af3d4319
qed: display VF trust configaa28075f06
scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands4bcefc78c8
mempolicy: mbind_range() set_policy() after vma_merge()fa37c17143
mm: invalidate hwpoison page cache page in fault path7188e7c96f
mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node51dbb5e36d
jffs2: fix memory leak in jffs2_scan_medium607d3aab73
jffs2: fix memory leak in jffs2_do_mount_fs7bb7428dd7
jffs2: fix use-after-free in jffs2_clear_xattr_subsystemb417f9c505
can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path3a21ee89bc
mtd: rawnand: protect access to rawnand devices while in suspend145a63201d
spi: mxic: Fix the transmit pathbe22ebe79e
pinctrl: samsung: drop pin banks references on error pathsb97b305656
remoteproc: Fix count check in rproc_coredump_write()784630df17
f2fs: fix to do sanity check on .cp_pack_total_block_counte58ee6bd93
f2fs: quota: fix loop condition at f2fs_quota_sync()ec67040703
f2fs: fix to unlock page correctly in error path of is_alive()7af164fa2f
NFSD: prevent integer overflow on 32 bit systems65e21cc042
NFSD: prevent underflow in nfssvc_decode_writeargs()b7b430104a
SUNRPC: avoid race between mod_timer() and del_timer_sync()f51ab2f60a
HID: intel-ish-hid: Use dma_alloc_coherent for firmware updatea1df8e60f2
firmware: stratix10-svc: add missing callback parameter on RSUe94f5fbe7a
Documentation: update stable tree linkf4bab992ee
Documentation: add link to stable release candidate tree10ee5662d5
KEYS: fix length validation in keyctl_pkey_params_get_2()5a41a3033a
ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE2775d8e364
clk: uniphier: Fix fixed-rate initialization25cd5872d9
greybus: svc: fix an error handling bug in gb_svc_hello()9f0cd81174
iio: inkern: make a best effort on offset calculation19e533452f
iio: inkern: apply consumer scale when no channel scale is availablee10dbe7f6a
iio: inkern: apply consumer scale on IIO_VAL_INT cases9f4fffc2ab
iio: afe: rescale: use s64 for temporary scale calculations9cd1b02655
coresight: Fix TRCCONFIGR.QE sysfs interface7b478cb67b
mei: avoid iterator usage outside of list_for_each_entryec8975417d
mei: me: add Alder Lake N device id.0a0c61dd07
xhci: fix uninitialized string returned by xhci_decode_ctrl_ctx()811f403519
xhci: make xhci_handshake timeout for xhci_reset() adjustable3a820d1ca1
xhci: fix runtime PM imbalance in USB2 resumec41387f96a
xhci: fix garbage USBSTS being logged in some cases1e0f089f70
USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c39a70732eb
virtio-blk: Use blk_validate_block_size() to validate block size290e05f346
tpm: fix reference counting for struct tpm_chipfcd3c31dd1
iommu/iova: Improve 32-bit free space estimate68c80088f5
locking/lockdep: Avoid potential access of invalid memory in lock_classf19d8dfad6
net: dsa: microchip: add spi_device_id tables8d3f4ad430
af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_registeref1a6ab36d
Input: zinitix - do not report shadow fingers21680aabc4
spi: Fix erroneous sgs value with min_t()8fb7af1b5a
Revert "gpio: Revert regression in sysfs-gpio (gpiolib.c)"18a4417a19
net:mcf8390: Use platform_get_irq() to get the interrupt102d7f6c2e
spi: Fix invalid sgs valuea4f4ce3dee
gpio: Revert regression in sysfs-gpio (gpiolib.c)fc9a35627c
ethernet: sun: Free the coherent when failing in probing3c84471925
tools/virtio: fix virtio_test execution6d98dc2369
vdpa/mlx5: should verify CTRL_VQ feature exists for MQc97ffb4184
virtio_console: break out of buf poll on remove0c00d38337
ARM: mstar: Select HAVE_ARM_ARCH_TIMERa7e75e5ed4
xfrm: fix tunnel model fragmentation behaviore05ae08ea8
HID: logitech-dj: add new lightspeed receiver idff919a7ad9
netdevice: add the case if dev is NULLc4dc584a2d
hv: utils: add PTP_1588_CLOCK to Kconfig to fix buildd136a2574a
USB: serial: simple: add Nokia phone driver38e3d48ffe
USB: serial: pl2303: add IBM device IDsd4d975e792
swiotlb: fix info leak with DMA_FROM_DEVICE414e6c8e94
ANDROID: fix up abi issue with struct snd_pcm_runtime51790ed529
Merge 5.10.109 into android12-5.10-ltsd9c5818a0b
Linux 5.10.109163960a7de
llc: only change llc->dev when bind() succeeds2b5a6d7714
nds32: fix access_ok() checks in get/put_userc064268eb8
wcn36xx: Differentiate wcn3660 from wcn362095193d12f1
tpm: use try_get_ops() in tpm-space.c5d3ff9542a
mac80211: fix potential double free on mesh joinfcc9797d0d
rcu: Don't deboost before reporting expedited quiescent state87f7ed7c36
Revert "ath: add support for special 0x0 regulatory domain"c971e6a1c8
crypto: qat - disable registration of algorithms9f4e64611e
ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU0b2ffba2de
ACPI: battery: Add device HID and quirk for Microsoft Surface Go 32724b72b22
ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board2c74374c2e
netfilter: nf_tables: initialize registers in nft_do_chain()eb1ba8d1c3
drivers: net: xgene: Fix regression in CRC strippinga2368d10b7
ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec6936d2ecf8
ALSA: cmipci: Restore aux vol on suspend/resumecbd27127af
ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB0ae81ef3ea
ALSA: pcm: Add stream lock during PCM reset ioctl operationsb560d670c8
ALSA: pcm: Fix races among concurrent prealloc proc writesa38440f006
ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls8527c8f052
ALSA: pcm: Fix races among concurrent read/write and buffer changes0f6947f5f5
ALSA: pcm: Fix races among concurrent hw_params and hw_free calls014c81dfb3
ALSA: hda/realtek: Add quirk for ASUS GA40205256f3fd6
ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671ca8247b4df
ALSA: hda/realtek: Add quirk for Clevo NP50PNJ26fe8f3103
ALSA: hda/realtek: Add quirk for Clevo NP70PNJ80eab86a86
ALSA: usb-audio: add mapping for new Corsair Virtuoso SE5ce74ff705
ALSA: oss: Fix PCM OSS buffer allocation overflowdb03abd0da
ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call571df3393f
llc: fix netdevice reference leaks in llc_ui_bind()56dc187b35
staging: fbtft: fb_st7789v: reset display before initialization351493858e
tpm: Fix error handling in async workea21245cdc
cgroup-v1: Correct privileges check in release_agent writes824a950c3f
cgroup: Use open-time cgroup namespace for process migration perm checksf28364fe38
cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv9eeaa2d7d5
exfat: avoid incorrectly releasing for root inodeae8ec5eabb
net: ipv6: fix skb_over_panic in __ip6_append_data25c23fe40e
nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTIONab2d1d40a1
Revert "vsock: each transport cycles only on its own sockets"644c989f41
Merge 5.10.108 into android12-5.10-lts9940314ebf
Linux 5.10.10837119edab8
Revert "selftests/bpf: Add test for bpf_timer overwriting crash"9248694dac
esp: Fix possible buffer overflow in ESP transformation96340cdd55
smsc95xx: Ignore -ENODEV errors when device is unpluggede27b51af54
net: usb: Correct reset handling of smsc95xxb54daeafc1
net: usb: Correct PHY handling of smsc95xx204d38dc6a
perf symbols: Fix symbol size calculation conditionf0d43d22d2
Input: aiptek - properly check endpoint type98e7a654a5
scsi: mpt3sas: Page fault in reply q processing10a805334a
usb: usbtmc: Fix bug in pipe direction for control transfers00bdd9bf1a
usb: gadget: Fix use-after-free bug by not setting udc->dev.driver28bc026739
usb: gadget: rndis: prevent integer overflow in rndis_set_response()2c010c61e6
arm64: fix clang warning about TRAMP_VALIAS277b7f6394
net: mscc: ocelot: fix backwards compatibility with single-chain tc-flower offload2550afba2a
net: bcmgenet: skip invalid partial checksumsbf5b7aae86
bnx2x: fix built-in kernel driver load failurec07fdba12f
net: phy: mscc: Add MODULE_FIRMWARE macrosba50073cf4
net: dsa: Add missing of_node_put() in dsa_port_parse_ofa630ad5e8b
net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()336b6be6ad
drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings9d45aec02f
drm/imx: parallel-display: Remove bus flags check in imx_pd_bridge_atomic_check()9b763ceda6
hv_netvsc: Add check for kvmalloc_array09a7264fb0
atm: eni: Add check for dma_map_single70b7b3c055
net/packet: fix slab-out-of-bounds access in packet_recvmsg()169add82d2
net: phy: marvell: Fix invalid comparison in the resume and suspend functions01fac1ca8a
esp6: fix check on ipv6_skip_exthdr's return valued9fe590970
vsock: each transport cycles only on its own socketsac7dd60946
efi: fix return value of __setup handlersfa3aa103e7
mm: swap: get rid of livelock in swapin readaheaddf3301dc60
ocfs2: fix crash when initialize filecheck kobj fails0f9b7b8df1
crypto: qcom-rng - ensure buffer for generate is completely filled9a559b8868
Merge branch 'android12-5.10' into `android12-5.10-lts`8646e92696
Merge 5.10.107 into android12-5.10-lts4c8814277b
Linux 5.10.1077a0d13ef67
arm64: kvm: Fix copy-and-paste error in bhb templates for v5.10 stabledc1163203a
io_uring: return back safer resurrect8fdaab341b
kselftest/vm: fix tests build with old libc2490695ffd
sfc: extend the locking on mcdi->seqno2fad5b6948
tcp: make tcp_read_sock() more robust3f9a8f8a95
nl80211: Update bss channel on channel switch for P2P_CLIENT0ba557d330
drm/vrr: Set VRR capable prop only if it is attached to connector9a8e4a5c5b
iwlwifi: don't advertise TWT supportc5ea0221c8
atm: firestream: check the return value of ioremap() in fs_init()efdd92c18e
can: rcar_canfd: rcar_canfd_channel_probe(): register the CAN device when fully readyebe106eac6
ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSEe8ad9ecc40
MIPS: smp: fill in sibling and core maps earlier8c70b9b470
mac80211: refuse aggregations sessions before authorizedd687d7559e
ARM: dts: rockchip: fix a typo on rk3288 crypto-controller6f0a94931c
ARM: dts: rockchip: reorder rk322x hmdi clocks6493c6aa8b
arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"c5c8c649fe
arm64: dts: rockchip: reorder rk3399 hdmi clocksf7f062919f
arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrityca142038a5
xfrm: Fix xfrm migrate issues when address family changesd8889a445b
xfrm: Check if_id in xfrm_migrate6056abc99b
sctp: fix the processing for INIT chunkbdf0316982
Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"5287773dba
Merge 5.10.106 into android12-5.10-lts9e8aa4cec7
Merge 5.10.105 into android12-5.10-lts55d57b8929
Mergeb65b87e718
("arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting") into android12-5.10-lts9fddd6c893
UPSTREAM: arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting531b5ce9dd
UPSTREAM: arm64: Use the clearbhb instruction in mitigationsd05b159f71
UPSTREAM: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated11bed3edbd
UPSTREAM: arm64: Mitigate spectre style branch history side channels9bc6a2543d
UPSTREAM: arm64: Do not include __READ_ONCE() block in assembly files2434153e7e
UPSTREAM: KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3Acfa82070a7
UPSTREAM: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v25195a80d07
UPSTREAM: arm64: Add percpu vectors for EL19e96a3d6ae
Merge56cf5326bd
("arm64: entry: Add macro for reading symbol addresses from the trampoline") into android12-5.10-lts327f1e7d81
Linux 5.10.106648895da69
watch_queue: Fix filter limit check8bb5b72dbd
ARM: fix Thumb2 regression with Spectre BHB6b1249db9e
ext4: add check to prevent attempting to resize an fs with sparse_super2b297cf764d
x86/traps: Mark do_int3() NOKPROBE_SYMBOL29f6f35001
x86/boot: Add setup_indirect support in early_memremap_is_setup_data()b3444e5b64
x86/boot: Fix memremap of setup_indirect structures24d268130e
watch_queue: Make comment about setting ->defunct more accurateec03510e0a
watch_queue: Fix lack of barrier/sync/lock between post and read06ab844439
watch_queue: Free the alloc bitmap when the watch_queue is torn down880acbb718
watch_queue: Fix the alloc bitmap size to reflect notes allocatede2b52ca498
watch_queue: Fix to always request a pow-of-2 pipe ring size2039900aad
watch_queue: Fix to release page in ->release()d729d4e99f
watch_queue, pipe: Free watchqueue state after clearing pipe ring573a3228ca
virtio: acknowledge all features before accessbf52b627cf
virtio: unexport virtio_finalize_features8bfb959ea2
arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x01ef5fe3dba
riscv: Fix auipc+jalr relocation range checksa69aa422b4
mmc: meson: Fix usage of meson_mmc_post_req()0c6eeaf8c1
net: macb: Fix lost RX packet wakeup race in NAPI receive6d9700b445
staging: gdm724x: fix use after free in gdm_lte_rx()8c1bc04c8c
staging: rtl8723bs: Fix access-point mode deadlockab5595b45f
fuse: fix pipe buffer lifetime for direct_iof2c52a4baf
ARM: Spectre-BHB: provide empty stub for non-configf1f5d089fc
selftests/memfd: clean up mapping in mfd_fail_write71013d071b
selftest/vm: fix map_fixed_noreplace test failure8d276f10e8
tracing: Ensure trace buffer is at least 4096 bytes largeae7597b47d
ipv6: prevent a possible race condition with lifetimes8c0c50e9fc
Revert "xen-netback: Check for hotplug-status existence before watching"625c04b523
Revert "xen-netback: remove 'hotplug-status' once it has served its purpose"a0e2768fb9
gpio: Return EPROBE_DEFER if gc->to_irq is NULL65d4e9d130
hwmon: (pmbus) Clear pmbus fault/warning bits after readd15c9f6e33
net-sysfs: add check for netdevice being present to speed_show8c023c3039
spi: rockchip: terminate dma transmission when slave abort889254f98e
spi: rockchip: Fix error in getting num-cs property4fb9be675b
selftests/bpf: Add test for bpf_timer overwriting crashdc1c2b47b5
net: bcmgenet: Don't claim WOL when its not availableb7e4d9ba2d
sctp: fix kernel-infoleak for SCTP sockets3cf533f120
net: phy: DP83822: clear MISR2 register to disable interrupts21044e679e
gianfar: ethtool: Fix refcount leak in gfar_get_ts_info3a4cd1c51e
gpio: ts4900: Do not set DAT and OE together7702e7e9e3
selftests: pmtu.sh: Kill tcpdump processes launched by subshell.2b1c85f565
NFC: port100: fix use-after-free in port100_send_complete1fdabf2cf4
net/mlx5e: Lag, Only handle events from highest priority multipath entryf3331bc174
net/mlx5: Fix a race on command flush flow5f1340963b
net/mlx5: Fix size field in bufferx_reg structe2201ef32f
ax25: Fix NULL pointer dereference in ax25_kill_by_devicecc7679079c
net: ethernet: lpc_eth: Handle error for clk_enableb3e4fcb539
net: ethernet: ti: cpts: Handle error for clk_enable5e42f90d72
tipc: fix incorrect order of state message data sanity check979b418b96
ethernet: Fix error handling in xemaclite_of_probe506d61bc1b
ice: Fix curr_link_speed advertised speed852a9e97d3
ice: Rename a couple of variablesb21ffd5469
ice: Remove unnecessary checker loop875967aff5
ice: Align macro names to the specification8c613f7cd3
ice: stop disabling VFs due to PF error responsesd9ee2cbff2
i40e: stop disabling VFs due to PF error responses965070a2b7
ARM: dts: aspeed: Fix AST2600 quad spi group96b01b8541
net: dsa: mt7530: fix incorrect test in mt753x_phylink_validate()ed5bb00d86
drm/sun4i: mixer: Fix P010 and P210 format numbers93223495bc
qed: return status of qed_iov_get_link5bee2ed050
esp: Fix BEET mode inter address family tunneling on GSO16386479ef
net: qlogic: check the return value of dma_alloc_coherent() in qed_vf_hw_prepare()33c74f8085
isdn: hfcpci: check the return value of dma_set_mask() in setup_hw()cca9d5035b
virtio-blk: Don't use MAX_DISCARD_SEGMENTS if max_discard_seg is zeroa3d5fcc6cf
mISDN: Fix memory leak in dsp_pipeline_build()f97ad179d1
mISDN: Remove obsolete PIPELINE_DEBUG debugging information2de76d37d4
tipc: fix kernel panic when enabling bearerea3a5e6df5
arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias2c6a75ea32
HID: vivaldi: fix sysfs attributes leak2a18a38cbc
clk: qcom: gdsc: Add support to update GDSC transition delay0d6882dd15
ARM: boot: dts: bcm2711: Fix HVS register range5c5685cc64
Merge7ae8127e41
("arm64: Add HWCAP for self-synchronising virtual counter") into android12-5.10-lts19787ca417
Mergeb19eaa004f
("arm64: Add Cortex-A510 CPU part definition") into android12-5.10-lts199789221d
Mergefc8070a9c5
("arm64: Add Neoverse-N2, Cortex-A710 CPU part definition") into android-mainlinef14cf58208
UPSTREAM: ARM: fix Thumb2 regression with Spectre BHB74562af594
UPSTREAM: ARM: Spectre-BHB: provide empty stub for non-configb0ff4e14b1
UPSTREAM: ARM: fix build warning in proc-v7-bugs.cf3ec5e6124
UPSTREAM: ARM: Do not use NOCROSSREFS directive with ld.lld5c1f913cd2
UPSTREAM: ARM: fix co-processor register typo4c5218ead0
UPSTREAM: ARM: fix build error when BPF_SYSCALL is disabled7ab81873bd
Merge302754d023
("ARM: include unprivileged BPF status in Spectre V2 reporting") into android12-5.10-ltsd221da1d6f
Merged04937ae94
("x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT") into android12-5.10-lts0773736e48
Merge 5.10.104 into android12-5.10-lts56d625a4ce
ANDROID: fix up rndis ABI breakage67c781d938
Linux 5.10.105561e91e5fe
Revert "ACPI: PM: s2idle: Cancel wakeup before dispatching EC GPE"206c8e271b
xen/netfront: react properly to failing gnttab_end_foreign_access_ref()39c00d0928
xen/gnttab: fix gnttab_end_foreign_access() without page specifiedc4b16486d6
xen/pvcalls: use alloc/free_pages_exact()8357d75bfd
xen/9p: use alloc/free_pages_exact()17f01b7206
xen: remove gnttab_query_foreign_access()5f36ae75b8
xen/gntalloc: don't use gnttab_query_foreign_access()3047255182
xen/scsifront: don't use gnttab_query_foreign_access() for mapped statusf6690dd944
xen/netfront: don't use gnttab_query_foreign_access() for mapped status96219af4e5
xen/blkfront: don't use gnttab_query_foreign_access() for mapped status3d81e85f30
xen/grant-table: add gnttab_try_end_foreign_access()5c600371b8
xen/xenbus: don't let xenbus_grant_ring() remove grants in error caseb65b87e718
arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting90f59cc2f2
ARM: fix build warning in proc-v7-bugs.c551717cf3b
arm64: Use the clearbhb instruction in mitigations8c4192d126
ARM: Do not use NOCROSSREFS directive with ld.lld38c26bdb3c
KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated1749b553d7
ARM: fix co-processor register typoe192c8baa6
arm64: Mitigate spectre style branch history side channelsa330601c63
ARM: fix build error when BPF_SYSCALL is disabled192023e6ba
KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A13a807a0a0
arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v256cf5326bd
arm64: entry: Add macro for reading symbol addresses from the trampoline1f63326a52
arm64: Add percpu vectors for EL13f21b7e355
arm64: entry: Add vectors that have the bhb mitigation sequences4937955296
arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations26211252c1
arm64: entry: Allow the trampoline text to occupy multiple pages73ee716a1f
arm64: entry: Make the kpti trampoline's kpti sequence optional8c691e5308
arm64: entry: Move trampoline macros out of ifdef'd sectione550250632
arm64: entry: Don't assume tramp_vectors is the start of the vectors5275fb5ea5
arm64: entry: Allow tramp_alias to access symbols after the 4K boundarybda8960281
arm64: entry: Move the trampoline data page before the text paged93b25a665
arm64: entry: Free up another register on kpti's tramp_exit path7ae8127e41
arm64: Add HWCAP for self-synchronising virtual counterb19eaa004f
arm64: Add Cortex-A510 CPU part definitionfc8070a9c5
arm64: Add Neoverse-N2, Cortex-A710 CPU part definition5242d6971e
arm64: entry: Make the trampoline cleanup optional8617156931
arm64: Add Cortex-X2 CPU part definition7048a21086
arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduitdc5b630c0d
arm64: entry.S: Add ventry overflow sanity checks97d8bdf331
arm64: cpufeature: add HWCAP for FEAT_RPRES162aa002ec
arm64: cpufeature: add HWCAP for FEAT_AFPdbcfa98539
arm64: add ID_AA64ISAR2_EL1 sys register302754d023
ARM: include unprivileged BPF status in Spectre V2 reportingd04937ae94
x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMTf3c12fc53e
arm64: cputype: Add CPU implementor & types for the Apple M1 cores3f9c958e35
ARM: Spectre-BHB workaroundcc9e3e55bd
x86/speculation: Warn about Spectre v2 LFENCE mitigation29d9b56df1
ARM: use LOADADDR() to get load address of sectionse335384560
x86/speculation: Update link to AMD speculation whitepaper46deb22468
ARM: early traps initialisation2fdf67a1d2
x86/speculation: Use generic retpoline by default on AMDb7f1e73c4d
ARM: report Spectre v2 status through sysfsafc2d635b5
x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting071e8b69d7
Documentation/hw-vuln: Update spectre doca6a119d647
x86/speculation: Add eIBRS + Retpoline optionsf38774bb6e
x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE206cfe2dac
x86,bugs: Unconditionally allow spectre_v2=retpoline,amd97581b56b5
Linux 5.10.104dbbe09d953
hamradio: fix macro redefine warningdcd03efd7e
Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"292e1c88b8
btrfs: add missing run of delayed items after unlink during log replay41712c5fa5
btrfs: qgroup: fix deadlock between rescan worker and remove qgroup6e0319e770
btrfs: fix lost prealloc extents beyond eof after full fsync827172ffa9
tracing: Fix return value of __setup handlers78059b1cfc
tracing/histogram: Fix sorting on old "cpu" value0e188fde82
HID: add mapping for KEY_ALL_APPLICATIONSf276ea5035
HID: add mapping for KEY_DICTATE3b8f2a7aed
Input: samsung-keypad - properly state IOMEM dependencya621ae6394
Input: elan_i2c - fix regulator enable count imbalance after suspend/resume1397bbcd81
Input: elan_i2c - move regulator_[en|dis]able() out of elan_[en|dis]able_power()988f4f29cc
net: dcb: disable softirqs in dcbnl_flush_dev()6828da5dea
drm/amdgpu: fix suspend/resume hang regressionf5e496ef73
nl80211: Handle nla_memdup failures in handle_nan_filter64e4305a03
iavf: Refactor iavf state machine trackinge6bc597fbc
net: chelsio: cxgb3: check the return value of pci_find_capability()320980b249
ibmvnic: complete init_done on transport events86027004bb
ARM: tegra: Move panels to AUX busfbb810825a
soc: fsl: qe: Check of ioremap return value2824f6939e
soc: fsl: guts: Add a missing memory allocation failure check3afe488d5c
soc: fsl: guts: Revert commit3c0d64e867
4470913079
ARM: dts: Use 32KiHz oscillator on devkit8000298f6fae54
ARM: dts: switch timer config to common devkit8000 devicetree8b20c1999d
s390/extable: fix exception table sorting49aa9c9c7f
memfd: fix F_SEAL_WRITE after shmem huge page allocated6acbc88752
ibmvnic: free reset-work-item when flushing9d8a11d74d
igc: igc_write_phy_reg_gpy: drop premature return223744f521
pinctrl: sunxi: Use unique lockdep classes for IRQs2851b76e5f
selftests: mlxsw: tc_police_scale: Make test more robust85bf489c5c
ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions6b63410490
ARM: Fix kgdb breakpoint for Thumb2fefe4cb4a6
igc: igc_read_phy_reg_gpy: drop premature return0632854fb1
arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output43eaf1b178
can: gs_usb: change active_channels's type from atomic_t to u8daaed6ced8
ASoC: cs4265: Fix the duplicated control name8b8ac465bf
firmware: arm_scmi: Remove space in MODULE_ALIAS name667df6fe3e
efivars: Respect "block" flag in efivar_entry_set_safe()283c37e542
ixgbe: xsk: change !netif_carrier_ok() handling in ixgbe_xmit_zc()5f394102ee
net: arcnet: com20020: Fix null-ptr-deref in com20020pci_probe()92b791771a
ibmvnic: register netdev after init of adapter6e0f986032
net: sxgbe: fix return value of __setup handlere1a82db1eb
iavf: Fix missing check for running netdevc9a066fe45
mac80211: treat some SAE auth steps as finale6d7f57f91
net: stmmac: fix return value of __setup handlerfa65989a48
mac80211: fix forwarded mesh frames AC & queue selectiondcc3423c1d
ia64: ensure proper NUMA distance and possible map initialization1312ef5ad0
sched/topology: Fix sched_domain_topology_level alloc in sched_init_numa()d753aecb3d
sched/topology: Make sched_init_numa() use a set for the deduplicating sort05ae1f0fe9
ice: fix concurrent reset and removal of VFs41edeeaae5
ice: Fix race conditions between virtchnl handling and VF ndo ops0c145262ac
rcu/nocb: Fix missed nocb_timer requeue9bb7237cc7
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by serverd7eb662625
net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client2e8d465b83
net/smc: fix connection leak6a8a4dc2a2
net: dcb: flush lingering app table entries for unregistered devicesf4c63b24de
net: ipv6: ensure we call ipv6_mc_down() at most oncea9c4a74ad5
batman-adv: Don't expect inter-netns unique iflink indices3dae11d21f
batman-adv: Request iflink once in batadv_get_real_netdevicedcf10d78ff
batman-adv: Request iflink once in batadv-on-batadv check81f817f3e5
netfilter: nf_queue: handle socket prefetch4d05239203
netfilter: nf_queue: fix possible use-after-free3b9ba964f7
netfilter: nf_queue: don't assume sk is full socket4e178ed14b
net: fix up skbs delta_truesize in UDP GRO frag_listeb5e444fe3
e1000e: Correct NVM checksum verification flowb53d4bfd1a
xfrm: enforce validity of offload input flags2f0e6d80e8
xfrm: fix the if_id check in changelink24efaae03b
bpf, sockmap: Do not ignore orig_len parameter8b0142c414
netfilter: fix use-after-free in __nf_register_net_hook()4952faa77d
xfrm: fix MTU regressione93f2be33d
mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls912186db09
ntb: intel: fix port config status offset for SPR1c0b51e62a
thermal: core: Fix TZ_GET_TRIP NULL pointer dereferencea1753d5c29
xen/netfront: destroy queues before real_num_tx_queues is zeroedce41d80391
drm/i915: s/JSP2/ICP2/ PCH61a895da48
iommu/amd: Recover from event log overflow6951a58881
ASoC: ops: Shift tested values in snd_soc_put_volsw() by +mindd9dd24fd7
riscv: Fix config KASAN && DEBUG_VIRTUAL7211aab288
riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP00fb385f0a
riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value336872601c
ALSA: intel_hdmi: Fix reference to PCM buffer addresse57dfaf66f
tracing: Add ustring operation to filtering string pointers4a9d2390f3
drm/amdgpu: check vm ready by amdgpu_vm->evicting flag67e25eb1b4
ata: pata_hpt37x: fix PCI clock detection335f11ff74
serial: stm32: prevent TDR register overwrite when sending x_charc999c5927e
tracing: Add test for user space strings when filtering on string pointersdb36a94ed6
exfat: fix i_blocks for files truncated over 4 GiB1b810d5cb6
exfat: reuse exfat_inode_info variable instead of calling EXFAT_I()fdd64084e4
usb: gadget: clear related members when goto failc13159a588
usb: gadget: don't release an existing dev->buf00d5ac05af
net: usb: cdc_mbim: avoid altsetting toggling for Telit FN99016f903afba
i2c: qup: allow COMPILE_TEST57c333ad8c
i2c: cadence: allow COMPILE_TEST9d6285e632
dmaengine: shdma: Fix runtime PM imbalance on error37b06d5ebf
selftests/seccomp: Fix seccomp failure by adding missing headersdf9db1a2af
cifs: fix double free race when mount fails in cifs_get_root()e3850e211d
tipc: fix a bit overflow in tipc_crypto_key_rcv()6d4985b8a0
KVM: arm64: vgic: Read HW interrupt pending state from the HW5d4b00e053
Input: clear BTN_RIGHT/MIDDLE on buttonpads6e7015d982
regulator: core: fix false positive in regulator_late_cleanup()467d664e5f
ASoC: rt5682: do not block workqueue if card is unbound0b050b7a0d
ASoC: rt5668: do not block workqueue if card is unbound11956c6eeb
i2c: bcm2835: Avoid clock stretching timeouts13f0ea8d11
mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work46f6d66219
mac80211_hwsim: report NOACK frames in tx_statusd172937367
Merge 5.10.103 into android12-5.10-lts915a747ac7
Linux 5.10.10378706b051a
memblock: use kfree() to release kmalloced memblock regions4185b788d3
gpio: tegra186: Fix chip_data type confusionbb2e0a7723
tty: n_gsm: fix deadlock in gsmtty_open()e4c8cb95d0
tty: n_gsm: fix wrong tty control line for flow control1f0641dd0b
tty: n_gsm: fix NULL pointer access due to DLCI release1e35cb9e12
tty: n_gsm: fix proper link termination after failed open90b47e617f
tty: n_gsm: fix encoding of control signal octet bit DV9e2dbc31e3
riscv: fix oops caused by irqsoff latency tracere098933866
thermal: int340x: fix memory leak in int3400_notify()5b1cef5798
RDMA/cma: Do not change route.addr.src_addr outside state checks8fe4da5524
driver core: Free DMA range map when device is released2148247643
xhci: Prevent futile URB re-submissions due to incorrect return value.0b0a229da1
xhci: re-initialize the HC during resume if HCE was set328faee6d4
usb: dwc3: gadget: Let the interrupt handler disable bottom halves.e57bdee866
usb: dwc3: pci: Fix Bay Trail phy GPIO mappings99b2425d91
usb: dwc2: drd: fix soft connect when gadget is unconfiguredc786688037
USB: serial: option: add Telit LE910R1 compositions220ba174f1
USB: serial: option: add support for DW5829e3a1dd56e56
tracefs: Set the group ownership in apply_options() not parse_options()bfa8ffbaaa
USB: gadget: validate endpoint index for xilinx udc4ce247af3f
usb: gadget: rndis: add spinlock for rndis response listddc254fc88
Revert "USB: serial: ch341: add new Product ID for CH341A"d3fce1b6bd
ata: pata_hpt37x: disable primary channel on HPT37118701d8afa
sc16is7xx: Fix for incorrect data being transmittedd5ddd7343a
iio: Fix error handling for PMeabcc609cb
iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshotb8d411a962
iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits1aa12ecfdc
iio: adc: men_z188_adc: Fix a resource leak in an error handling pathafbeee13be
tracing: Have traceon and traceoff trigger honor the instance99eb8d6941
RDMA/ib_srp: Fix a deadlocka7ab53d3c2
configfs: fix a race in configfs_{,un}register_subsystem()0ecd3e35d7
RDMA/rtrs-clt: Move free_permit from free_clt to rtrs_clt_closeb0ecf9e594
RDMA/rtrs-clt: Kill wait_for_inflight_permits8260f1800f
RDMA/rtrs-clt: Fix possible double free in error casedc64aa4c7d
regmap-irq: Update interrupt clear register for proper reset2efece1368
spi: spi-zynq-qspi: Fix a NULL pointer dereference in zynq_qspi_exec_mem_op()67819b983e
net/mlx5e: kTLS, Use CHECKSUM_UNNECESSARY for device-offloaded packetsbe55d3e76c
net/mlx5: Fix wrong limitation of metadata match on ecpf8d617110d7
net/mlx5: Fix possible deadlock on rule deletion1c59128955
udp_tunnel: Fix end of loop test in udp_tunnel_nic_unregister()a184f4dd9b
surface: surface3_power: Fix battery readings on batteries without a serial number91f56a8527
net/smc: Use a mutex for locking "struct smc_pnettable"7e9880e81d
netfilter: nf_tables: fix memory leak during stateful obj updateaf4bc921d3
nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()58a6d5f24f
net: Force inlining of checksum functions in net/checksum.h550d98ab30
net: ll_temac: check the return value of devm_kmalloc()0fc1847359
net/sched: act_ct: Fix flow table lookup after ct clear or switching zonesbc8f768af3
net/mlx5e: Fix wrong return value on ioctl EEPROM query failurefd020eaaa2
drm/edid: Always set RGB4441df9d552fe
openvswitch: Fix setting ipv6 fields causing hw csum failuredac2490d9e
gso: do not skip outer ip header in case of ipip and net_failoverb692d5dc6f
tipc: Fix end of loop tests for list_for_each_entry()c5722243d0
net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends4a93c65946
io_uring: add a schedule point in io_add_buffers()7ef94bfb08
bpf: Add schedule points in batch ops4f5d47e6b4
selftests: bpf: Check bpf_msg_push_data return valued0caa7218d
bpf: Do not try bpf_msg_push_data with len 0962b2a3188
hwmon: Handle failure to register sensor with thermal zone correctlyd8b78314c5
bnxt_en: Fix active FEC reporting to ethtool7e1eae5d1a
bnx2x: fix driver load from initrd51e96061c6
perf data: Fix double free in perf_session__delete()5419b5be88
ping: remove pr_err from ping_lookup5da17865c7
optee: use driver internal tee_context for some rpceb35461384
tee: export teedev_open() and teedev_close_context()bae7fc6f0d
x86/fpu: Correct pkru/xstate inconsistency68f19845f5
netfilter: nf_tables_offload: incorrect flow offload action array size69560efa00
CDC-NCM: avoid overflow in sanity checking2aeba1ea7c
USB: zaurus: support another broken Zaurus4f5f5411f0
sr9700: sanity check for packet length55eec5c630
drm/i915: Correctly populate use_sagv_wm for all pipesff9134882d
drm/amdgpu: disable MMHUB PG for Picasso72fdfc75d4
KVM: x86/mmu: make apf token non-zero to fix bug646b532f32
parisc/unaligned: Fix ldw() and stw() unalignment handlers397b5433f7
parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel698dc7d13c
vhost/vsock: don't check owner in vhost_vsock_stop() while releasing84e303b4d5
clk: jz4725b: fix mmc0 clock gating72a5b01875
btrfs: tree-checker: check item_size for dev_item5c967dd073
btrfs: tree-checker: check item_size for inode_itemfcec42dd28
cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotpluge1b86e7f5c
Merge branch 'android12-5.10' into `android12-5.10-lts`cbfab5c59c
Revert "ipv6: per-netns exclusive flowlabel checks"79553fad5c
Merge 5.10.102 into android12-5.10-lts47667effb7
Linux 5.10.1026062d1267f
lockdep: Correct lock_classes index mappingf333c1916f
i2c: brcmstb: fix support for DSL and CM variants9fee985f9a
copy_process(): Move fd_install() out of sighand->siglock critical sectione3fdbc40b7
i2c: qcom-cci: don't put a device tree node before i2c_add_adapter()b5b2a92117
i2c: qcom-cci: don't delete an unregistered adapter3b6d25d1b6
dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size2c35c95d36
dmaengine: stm32-dmamux: Fix PM disable depth imbalance in stm32_dmamux_probe4f907b6eb7
dmaengine: sh: rcar-dmac: Check for error num after setting mask797b380f07
net: sched: limit TC_ACT_REPEAT loops595c259f75
EDAC: Fix calculation of returned address and next offset in edac_align_ptr()f6ce4e3289
scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop3680b2b810
kconfig: fix failing to generate auto.confb6787e284d
net: macb: Align the dma and coherent dma masks439171a291
net: usb: qmi_wwan: Add support for Dell DW5829e15616ba17d
tracing: Fix tp_printk option related with tp_printk_stop_on_boot5a253a23d9
drm/rockchip: dw_hdmi: Do not leave clock enabled in error case1e7433fb95
xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_createa21f472fb5
soc: aspeed: lpc-ctrl: Block error printing on probe defer casesfecb05b1ce
ata: libata-core: Disable TRIM on M88V29b19ec7afa9
lib/iov_iter: initialize "flags" in new pipe_buffer3045532278
kconfig: let 'shell' return enough output for deep path namese05dde47f5
selftests: fixup build warnings in pidfd / clone3 tests531a56c2e0
pidfd: fix test failure due to stack overflow on some arches429ef36c4f
arm64: dts: meson-g12: drop BL32 region from SEI510/SEI6101415f22ee5
arm64: dts: meson-g12: add ATF BL32 reserved-memory region605080f19e
arm64: dts: meson-gx: add ATF BL32 reserved-memory regioneefb68794f
netfilter: conntrack: don't refresh sctp entries in closed state1ab4824857
irqchip/sifive-plic: Add missing thead,c900-plic match string98bc06c46d
phy: usb: Leave some clocks running during suspend717f2fa858
ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of6932353af7
ARM: OMAP2+: hwmod: Add of_node_put() before break521dcc107e
NFS: Don't set NFS_INO_INVALID_XATTR if there is no xattr cachefb00319afb
KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW0ee4bb8ce8
KVM: x86/pmu: Don't truncate the PerfEvtSeln MSR when creating a perf event99cd2a0437
KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()91d8866ca5
Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobja176d559e8
mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status1a49b1b0b0
mtd: rawnand: qcom: Fix clock sequencing in qcom_nandc_probe()8c848744c1
tty: n_tty: do not look ahead for EOL character past the end of the buffer8daa0436ce
NFS: Do not report writeback errors in nfs_getattr()f9b7385c0f
NFS: LOOKUP_DIRECTORY is also ok with symlinks598dbaf74b
block/wbt: fix negative inflight counter when remove scsi devicedc6faa0ede
ASoC: tas2770: Insert post reset delay9dcedbe943
KVM: SVM: Never reject emulation due to SMAP errata for !SEV guestsa4eeeaca50
mtd: rawnand: gpmi: don't leak PM reference in error pathfb26219b40
powerpc/lib/sstep: fix 'ptesync' build error54f76366cd
ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw_range()0df1badfdf
ASoC: ops: Fix stereo change notifications in snd_soc_put_volsw()1ef76832fe
ALSA: hda: Fix missing codec probe on Shenker Dock 15c72c3b597a
ALSA: hda: Fix regression on forced probe mask option63b1602c2f
ALSA: hda/realtek: Fix deadlock by COEF mutexb6a5e8f45f
ALSA: hda/realtek: Add quirk for Legion Y9000X 201967de71b943
selftests/exec: Add non-regular to TEST_GEN_PROGSd3018a1962
perf bpf: Defer freeing string after possible strlen() on it016e3ca9c5
dpaa2-eth: Initialize mutex used in one step timestamping path50f3b00d4c
libsubcmd: Fix use-after-free for realloc(..., 0)ffa8df4f0e
bonding: fix data-races around agg_select_timerd9bd9d4c60
net_sched: add __rcu annotation to netdev->qdisc877a05672f
drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hita0e004e620
bonding: force carrier update when releasing slave8dec3c4e73
ping: fix the dif and sdif check in ping_lookup6793a9b028
net: ieee802154: ca8210: Fix lifs/sifs periodsf48bd34137
net: dsa: lantiq_gswip: fix use after free in gswip_remove()d9b2203e5a
net: dsa: lan9303: fix reset on probe4f523f15e5
ipv6: per-netns exclusive flowlabel checks100344200a
netfilter: nft_synproxy: unregister hooks on init error path26931971db
selftests: netfilter: fix exit value for nft_concat_rangeb26ea3f6b7
iwlwifi: pcie: gen2: fix locking when "HW not ready"8867f99379
iwlwifi: pcie: fix locking when "HW not ready"f3c1910257
drm/i915/gvt: Make DRM_I915_GVT depend on X8687cd1bbd66
vsock: remove vsock from connected table when connect is interrupted by a signaleb7bf11e8e
drm/i915/opregion: check port number bounds for SWSCI display power state5564d83ebc
drm/radeon: Fix backlight control on iMac 12,1008508c16a
iwlwifi: fix use-after-free44b81136e8
kbuild: lto: Merge module sections if and only if CONFIG_LTO_CLANG is enabled8b53e5f737
kbuild: lto: merge module sections45102b538a
random: wake up /dev/random writers after zap143aaf79ba
gcc-plugins/stackleak: Use noinstr in favor of notracede55891e16
Revert "module, async: async_synchronize_full() on module init iff async is used"3c958dbcba
x86/Xen: streamline (and fix) PV CPU enumeratione76d0a9692
drm/amdgpu: fix logic inversion in check324f5bdc52
nvme-rdma: fix possible use-after-free in transport error_recovery worke192184cf8
nvme-tcp: fix possible use-after-free in transport error_recovery work0ead57ceb2
nvme: fix a possible use-after-free in controller reset during loadfe9ac3eaa2
scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_taskd872e7b5fe
scsi: pm8001: Fix use-after-free for aborted TMF sas_task1e73f5cfc1
quota: make dquot_quota_sync return errors from ->sync_fsc405640aad
vfs: make freeze_super abort when sync_filesystem returns errorb9a229fd48
ax25: improve the incomplete fix to avoid UAF and NPD bugs139fce2992
selftests: skip mincore.check_file_mmap when fs lacks needed support204a2390da
selftests: openat2: Skip testcases that fail with EOPNOTSUPP2be48bfac7
selftests: openat2: Add missing dependency in Makefile74a30666b4
selftests: openat2: Print also errno in failure messagesbfc84cfd90
selftests/zram: Adapt the situation that /dev/zram0 is being usedf0eba714c1
selftests/zram01.sh: Fix compression ratio calculation7bb704b69f
selftests/zram: Skip max_comp_streams interface on newer kernel0fd484644c
net: ieee802154: at86rf230: Stop leaking skb's0c18a75193
kselftest: signal all child processes1136141f19
selftests: rtc: Increase test timeout so that all tests run79175b6ee6
platform/x86: ISST: Fix possible circular locking dependency detected066c905ed0
platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-10b17d4b51c
btrfs: send: in case of IO error log it78a68bbebd
parisc: Add ioread64_lo_hi() and iowrite64_lo_hi()ade1077c7f
PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology254090925e
mm: don't try to NUMA-migrate COW pages that have other usesab2b4e65a1
mmc: block: fix read single on recovery logic7756716872
parisc: Fix sglist access in ccio-dma.cf8f519d7df
parisc: Fix data TLB miss in sba_unmap_sg4d569b959e
parisc: Drop __init from map_pages declaration8e3f9a098e
serial: parisc: GSC: fix build when IOSAPIC is not setfe383750d4
Revert "svm: Add warning message for AVIC IPI invalid target"126382b556
HID:Add support for UGTABLET WP5540f100e758ce
scsi: lpfc: Fix mailbox command failure during driver initialization4578b979ef
can: isotp: add SF_BROADCAST support for functional addressing5d42865fc3
can: isotp: prevent race between isotp_bind() and isotp_setsockopt()db3f3636e4
fs/proc: task_mmu.c: don't read mapcount for migration entry0849f83e47
fget: clarify and improve __fget_files() implementation657991fb06
rcu: Do not report strict GPs for outgoing CPUs8c8385972e
mm: memcg: synchronize objcg lists with a dedicated spinlockd0f4aa2d97
drm/nouveau/pmu/gm200-: use alternate falcon reset sequenceadd227a8d8
Merge branch 'android12-5.10' into `android12-5.10-lts` The .xml abi file was also updated due to changes required from the -lts branch that were merged there: Leaf changes summary: 1 artifact changed Changed leaf types summary: 1 leaf type changed Removed/Changed/Added functions summary: 0 Removed, 0 Changed, 0 Added function Removed/Changed/Added variables summary: 0 Removed, 0 Changed, 0 Added variable 'struct snd_pcm_runtime at pcm.h:344:1' changed: type size changed from 6144 to 6592 (in bits) 2 data member insertions: 'mutex buffer_mutex', at offset 6144 (in bits) at pcm.h:432:1 'atomic_t buffer_accessing', at offset 6528 (in bits) at pcm.h:433:1 114 impacted interfaces Change-Id: Ie9262400472eda3e30d1ef26738df1d5dd4c319d Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
2062 lines
67 KiB
Makefile
2062 lines
67 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0
|
|
VERSION = 5
|
|
PATCHLEVEL = 10
|
|
SUBLEVEL = 117
|
|
EXTRAVERSION =
|
|
NAME = Dare mighty things
|
|
|
|
# *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
|
|
|
|
ifneq ($(findstring s,$(filter-out --%,$(MAKEFLAGS))),)
|
|
quiet=silent_
|
|
endif
|
|
|
|
export quiet Q KBUILD_VERBOSE
|
|
|
|
# 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
|
|
|
|
abs_srctree := $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
|
|
|
|
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
|
|
#
|
|
# This does not become effective immediately because MAKEFLAGS is re-parsed
|
|
# once after the Makefile is read. We need to invoke sub-make.
|
|
MAKEFLAGS += --include-dir=$(abs_srctree)
|
|
need-sub-make := 1
|
|
endif
|
|
|
|
this-makefile := $(lastword $(MAKEFILE_LIST))
|
|
|
|
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
|
|
|
|
# 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
|
|
|
|
# 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))
|
|
|
|
export KBUILD_CHECKSRC KBUILD_EXTMOD
|
|
|
|
extmod-prefix = $(if $(KBUILD_EXTMOD),$(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
|
|
|
|
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
|
|
old_version_h := include/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
|
|
no-sync-config-targets := $(no-dot-config-targets) %install kernelrelease \
|
|
image_name
|
|
single-targets := %.a %.i %.ko %.lds %.ll %.lst %.mod %.o %.s %.symtypes %/
|
|
|
|
config-build :=
|
|
mixed-build :=
|
|
need-config := 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-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 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 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 sh
|
|
ifeq ($(ARCH),sh64)
|
|
SRCARCH := sh
|
|
endif
|
|
|
|
KCONFIG_CONFIG ?= .config
|
|
export KCONFIG_CONFIG
|
|
|
|
# Default file for 'make defconfig'. This may be overridden by arch-Makefile.
|
|
export KBUILD_DEFCONFIG := defconfig
|
|
|
|
# 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),)
|
|
HOSTCC = clang
|
|
HOSTCXX = clang++
|
|
else
|
|
HOSTCC = gcc
|
|
HOSTCXX = g++
|
|
endif
|
|
|
|
KBUILD_USERHOSTCFLAGS := -Wall -Wmissing-prototypes -Wstrict-prototypes \
|
|
-O2 -fomit-frame-pointer -std=gnu89
|
|
KBUILD_USERCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(USERCFLAGS)
|
|
KBUILD_USERLDFLAGS := $(USERLDFLAGS)
|
|
|
|
KBUILD_HOSTCFLAGS := $(KBUILD_USERHOSTCFLAGS) $(HOST_LFS_CFLAGS) $(HOSTCFLAGS)
|
|
KBUILD_HOSTCXXFLAGS := -Wall -O2 $(HOST_LFS_CFLAGS) $(HOSTCXXFLAGS)
|
|
KBUILD_HOSTLDFLAGS := $(HOST_LFS_LDFLAGS) $(HOSTLDFLAGS)
|
|
KBUILD_HOSTLDLIBS := $(HOST_LFS_LIBS) $(HOSTLDLIBS)
|
|
|
|
# Make variables (CC, etc...)
|
|
CPP = $(CC) -E
|
|
ifneq ($(LLVM),)
|
|
CC = clang
|
|
LD = ld.lld
|
|
AR = llvm-ar
|
|
NM = llvm-nm
|
|
OBJCOPY = llvm-objcopy
|
|
OBJDUMP = llvm-objdump
|
|
READELF = llvm-readelf
|
|
STRIP = llvm-strip
|
|
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
|
|
PAHOLE = pahole
|
|
RESOLVE_BTFIDS = $(objtree)/tools/bpf/resolve_btfids/resolve_btfids
|
|
LEX = flex
|
|
YACC = bison
|
|
AWK = awk
|
|
INSTALLKERNEL := installkernel
|
|
DEPMOD = depmod
|
|
PERL = perl
|
|
PYTHON = python
|
|
PYTHON3 = python3
|
|
CHECK = sparse
|
|
BASH = bash
|
|
KGZIP = gzip
|
|
KBZIP2 = bzip2
|
|
KLZOP = lzop
|
|
LZMA = lzma
|
|
LZ4 = lz4
|
|
XZ = xz
|
|
ZSTD = zstd
|
|
|
|
CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \
|
|
-Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF)
|
|
NOSTDINC_FLAGS :=
|
|
CFLAGS_MODULE =
|
|
AFLAGS_MODULE =
|
|
LDFLAGS_MODULE =
|
|
CFLAGS_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/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=gnu89
|
|
KBUILD_CPPFLAGS := -D__KERNEL__
|
|
KBUILD_AFLAGS_KERNEL :=
|
|
KBUILD_CFLAGS_KERNEL :=
|
|
KBUILD_AFLAGS_MODULE := -DMODULE
|
|
KBUILD_CFLAGS_MODULE := -DMODULE
|
|
KBUILD_LDFLAGS_MODULE :=
|
|
KBUILD_LDFLAGS :=
|
|
CLANG_FLAGS :=
|
|
|
|
export ARCH SRCARCH CONFIG_SHELL BASH HOSTCC KBUILD_HOSTCFLAGS CROSS_COMPILE LD CC
|
|
export CPP AR NM STRIP OBJCOPY OBJDUMP READELF PAHOLE RESOLVE_BTFIDS LEX YACC AWK INSTALLKERNEL
|
|
export PERL PYTHON 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_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE
|
|
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
|
|
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
|
|
|
|
# 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
|
|
$(Q)rm -f .tmp_quiet_recordmcount
|
|
|
|
PHONY += outputmakefile
|
|
# 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
|
|
outputmakefile:
|
|
ifdef building_out_of_srctree
|
|
$(Q)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
|
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkmakefile $(srctree)
|
|
$(Q)test -e .gitignore || \
|
|
{ echo "# this is build directory, ignore it"; echo "*"; } > .gitignore
|
|
endif
|
|
|
|
ifneq ($(shell $(CC) --version 2>&1 | head -n 1 | grep clang),)
|
|
ifneq ($(CROSS_COMPILE),)
|
|
CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
|
|
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
|
|
CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
|
|
GCC_TOOLCHAIN := $(realpath $(GCC_TOOLCHAIN_DIR)/..)
|
|
endif
|
|
ifneq ($(GCC_TOOLCHAIN),)
|
|
CLANG_FLAGS += --gcc-toolchain=$(GCC_TOOLCHAIN)
|
|
endif
|
|
ifneq ($(LLVM_IAS),1)
|
|
CLANG_FLAGS += -no-integrated-as
|
|
endif
|
|
CLANG_FLAGS += -Werror=unknown-warning-option
|
|
KBUILD_CFLAGS += $(CLANG_FLAGS)
|
|
KBUILD_AFLAGS += $(CLANG_FLAGS)
|
|
export CLANG_FLAGS
|
|
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 = $(shell $(CC) --version 2>/dev/null | head -n 1)
|
|
|
|
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 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
|
|
|
|
# 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 := init/ usr/
|
|
drivers-y := drivers/ sound/
|
|
drivers-$(CONFIG_SAMPLES) += samples/
|
|
drivers-y += net/ virt/
|
|
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 \
|
|
$(call cc-option,-fno-tree-loop-im) \
|
|
$(call cc-disable-warning,maybe-uninitialized,)
|
|
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
|
|
|
|
RETPOLINE_CFLAGS_GCC := -mindirect-branch=thunk-extern -mindirect-branch-register
|
|
RETPOLINE_VDSO_CFLAGS_GCC := -mindirect-branch=thunk-inline -mindirect-branch-register
|
|
RETPOLINE_CFLAGS_CLANG := -mretpoline-external-thunk
|
|
RETPOLINE_VDSO_CFLAGS_CLANG := -mretpoline
|
|
RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG)))
|
|
RETPOLINE_VDSO_CFLAGS := $(call cc-option,$(RETPOLINE_VDSO_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_VDSO_CFLAGS_CLANG)))
|
|
export RETPOLINE_CFLAGS
|
|
export RETPOLINE_VDSO_CFLAGS
|
|
|
|
include 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: $(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:
|
|
$(Q)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 += $(call cc-option,-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
|
|
else ifdef CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3
|
|
KBUILD_CFLAGS += -O3
|
|
else ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
|
|
KBUILD_CFLAGS += -Os
|
|
endif
|
|
|
|
# Tell gcc to never replace conditional load with a non-conditional one
|
|
KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
|
|
KBUILD_CFLAGS += $(call cc-option,-fno-allow-store-data-races)
|
|
|
|
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 += $(call cc-option,-fno-reorder-blocks,) \
|
|
$(call cc-option,-fno-ipa-cp-clone,) \
|
|
$(call cc-option,-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)
|
|
|
|
ifdef CONFIG_CC_IS_CLANG
|
|
KBUILD_CPPFLAGS += -Qunused-arguments
|
|
KBUILD_CFLAGS += -Wno-format-invalid-specifier
|
|
KBUILD_CFLAGS += -Wno-gnu
|
|
# CLANG uses a _MergedGlobals as optimization, but this breaks modpost, as the
|
|
# source of a reference will be _MergedGlobals and not on of the whitelisted names.
|
|
# See modpost pattern 2
|
|
KBUILD_CFLAGS += -mno-global-merge
|
|
else
|
|
|
|
# Warn about unmarked fall-throughs in switch statement.
|
|
# Disabled for clang while comment to attribute conversion happens and
|
|
# https://github.com/ClangBuiltLinux/linux/issues/636 is discussed.
|
|
KBUILD_CFLAGS += $(call cc-option,-Wimplicit-fallthrough,)
|
|
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)
|
|
ifdef CONFIG_FRAME_POINTER
|
|
KBUILD_CFLAGS += -fno-omit-frame-pointer -fno-optimize-sibling-calls
|
|
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.
|
|
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
|
|
# Future support for zero initialization is still being debated, see
|
|
# https://bugs.llvm.org/show_bug.cgi?id=45497. These flags are subject to being
|
|
# renamed or dropped.
|
|
KBUILD_CFLAGS += -ftrivial-auto-var-init=zero
|
|
KBUILD_CFLAGS += -enable-trivial-auto-var-init-zero-knowing-it-will-be-removed-from-clang
|
|
endif
|
|
|
|
DEBUG_CFLAGS :=
|
|
|
|
# Workaround for GCC versions < 5.0
|
|
# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61801
|
|
ifdef CONFIG_CC_IS_GCC
|
|
DEBUG_CFLAGS += $(call cc-ifversion, -lt, 0500, $(call cc-option, -fno-var-tracking-assignments))
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO
|
|
|
|
ifdef CONFIG_DEBUG_INFO_SPLIT
|
|
DEBUG_CFLAGS += -gsplit-dwarf
|
|
else
|
|
DEBUG_CFLAGS += -g
|
|
endif
|
|
|
|
ifneq ($(LLVM_IAS),1)
|
|
KBUILD_AFLAGS += -Wa,-gdwarf-2
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO_DWARF4
|
|
DEBUG_CFLAGS += -gdwarf-4
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO_REDUCED
|
|
DEBUG_CFLAGS += $(call cc-option, -femit-struct-debug-baseonly) \
|
|
$(call cc-option,-fno-var-tracking)
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_INFO_COMPRESSED
|
|
DEBUG_CFLAGS += -gz=zlib
|
|
KBUILD_AFLAGS += -gz=zlib
|
|
KBUILD_LDFLAGS += --compress-debug-sections=zlib
|
|
endif
|
|
|
|
endif # CONFIG_DEBUG_INFO
|
|
|
|
KBUILD_CFLAGS += $(DEBUG_CFLAGS)
|
|
export DEBUG_CFLAGS
|
|
|
|
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
|
|
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 += $(call cc-option, -fno-inline-functions-called-once)
|
|
endif
|
|
|
|
ifdef CONFIG_LD_DEAD_CODE_DATA_ELIMINATION
|
|
KBUILD_CFLAGS_KERNEL += -ffunction-sections -fdata-sections
|
|
LDFLAGS_vmlinux += --gc-sections
|
|
endif
|
|
|
|
ifdef CONFIG_SHADOW_CALL_STACK
|
|
CC_FLAGS_SCS := -fsanitize=shadow-call-stack
|
|
KBUILD_CFLAGS += $(CC_FLAGS_SCS)
|
|
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)
|
|
# TODO(b/182572011): Revert 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
|
|
endif
|
|
|
|
ifdef CONFIG_LTO
|
|
KBUILD_CFLAGS += $(CC_FLAGS_LTO)
|
|
export CC_FLAGS_LTO
|
|
endif
|
|
|
|
ifdef CONFIG_CFI_CLANG
|
|
CC_FLAGS_CFI := -fsanitize=cfi \
|
|
-fsanitize-cfi-cross-dso \
|
|
-fno-sanitize-cfi-canonical-jump-tables \
|
|
-fno-sanitize-blacklist
|
|
|
|
ifdef CONFIG_CFI_PERMISSIVE
|
|
CC_FLAGS_CFI += -fsanitize-recover=cfi \
|
|
-fno-sanitize-trap=cfi
|
|
else
|
|
ifndef CONFIG_UBSAN_TRAP
|
|
CC_FLAGS_CFI += -ftrap-function=__ubsan_handle_cfi_check_fail_abort
|
|
endif
|
|
endif
|
|
|
|
# If LTO flags are filtered out, we must also filter out CFI.
|
|
CC_FLAGS_LTO += $(CC_FLAGS_CFI)
|
|
KBUILD_CFLAGS += $(CC_FLAGS_CFI)
|
|
export CC_FLAGS_CFI
|
|
endif
|
|
|
|
ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B
|
|
KBUILD_CFLAGS += -falign-functions=32
|
|
endif
|
|
|
|
# arch Makefile may override CC so keep this after arch Makefile is included
|
|
NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
|
|
|
|
# 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
|
|
|
|
# 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, zero-length-bounds)
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, array-bounds)
|
|
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
|
|
KBUILD_CFLAGS += $(call cc-disable-warning, maybe-uninitialized)
|
|
|
|
# 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
|
|
KBUILD_CFLAGS += $(call cc-option,-fconserve-stack)
|
|
|
|
# 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_KASAN) += scripts/Makefile.kasan
|
|
include-$(CONFIG_KCSAN) += scripts/Makefile.kcsan
|
|
include-$(CONFIG_UBSAN) += scripts/Makefile.ubsan
|
|
include-$(CONFIG_KCOV) += scripts/Makefile.kcov
|
|
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 and CFLAGS as the last assignments
|
|
KBUILD_CPPFLAGS += $(KCPPFLAGS)
|
|
KBUILD_AFLAGS += $(KAFLAGS)
|
|
KBUILD_CFLAGS += $(KCFLAGS)
|
|
|
|
KBUILD_LDFLAGS_MODULE += --build-id=sha1
|
|
LDFLAGS_vmlinux += --build-id=sha1
|
|
|
|
ifeq ($(CONFIG_STRIP_ASM_SYMS),y)
|
|
LDFLAGS_vmlinux += $(call ld-option, -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
|
|
|
|
#
|
|
# INSTALL_MOD_STRIP, if defined, will cause modules to be
|
|
# stripped after they are installed. If INSTALL_MOD_STRIP is '1', then
|
|
# the default option --strip-debug will be used. Otherwise,
|
|
# INSTALL_MOD_STRIP value will be used as the options to the strip command.
|
|
|
|
ifdef INSTALL_MOD_STRIP
|
|
ifeq ($(INSTALL_MOD_STRIP),1)
|
|
mod_strip_cmd = $(STRIP) --strip-debug
|
|
else
|
|
mod_strip_cmd = $(STRIP) $(INSTALL_MOD_STRIP)
|
|
endif # INSTALL_MOD_STRIP=1
|
|
else
|
|
mod_strip_cmd = true
|
|
endif # INSTALL_MOD_STRIP
|
|
export mod_strip_cmd
|
|
|
|
# CONFIG_MODULE_COMPRESS, if defined, will cause module to be compressed
|
|
# after they are installed in agreement with CONFIG_MODULE_COMPRESS_GZIP
|
|
# or CONFIG_MODULE_COMPRESS_XZ.
|
|
|
|
mod_compress_cmd = true
|
|
ifdef CONFIG_MODULE_COMPRESS
|
|
ifdef CONFIG_MODULE_COMPRESS_GZIP
|
|
mod_compress_cmd = $(KGZIP) -n -f
|
|
endif # CONFIG_MODULE_COMPRESS_GZIP
|
|
ifdef CONFIG_MODULE_COMPRESS_XZ
|
|
mod_compress_cmd = $(XZ) -f
|
|
endif # CONFIG_MODULE_COMPRESS_XZ
|
|
endif # CONFIG_MODULE_COMPRESS
|
|
export mod_compress_cmd
|
|
|
|
ifdef CONFIG_MODULE_SIG_ALL
|
|
$(eval $(call config_filename,MODULE_SIG_KEY))
|
|
|
|
mod_sign_cmd = scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(MODULE_SIG_KEY_SRCPREFIX)$(CONFIG_MODULE_SIG_KEY) certs/signing_key.x509
|
|
else
|
|
mod_sign_cmd = true
|
|
endif
|
|
export mod_sign_cmd
|
|
|
|
HOST_LIBELF_LIBS = $(shell pkg-config libelf --libs 2>/dev/null || echo -lelf)
|
|
|
|
has_libelf := $(call try-run,\
|
|
echo "int main() {}" | \
|
|
$(HOSTCC) $(KBUILD_HOSTCFLAGS) -xc -o /dev/null $(KBUILD_HOSTLDFLAGS) $(HOST_LIBELF_LIBS) -,1,0)
|
|
|
|
ifdef CONFIG_STACK_VALIDATION
|
|
ifeq ($(has_libelf),1)
|
|
objtool_target := tools/objtool FORCE
|
|
else
|
|
SKIP_STACK_VALIDATION := 1
|
|
export SKIP_STACK_VALIDATION
|
|
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
|
|
|
|
ifdef CONFIG_BPF
|
|
ifdef CONFIG_DEBUG_INFO_BTF
|
|
ifeq ($(has_libelf),1)
|
|
resolve_btfids_target := tools/bpf/resolve_btfids FORCE
|
|
else
|
|
ERROR_RESOLVE_BTFIDS := 1
|
|
endif
|
|
endif # CONFIG_DEBUG_INFO_BTF
|
|
endif # CONFIG_BPF
|
|
|
|
PHONY += prepare0
|
|
|
|
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 $(wildcard $(srctree)/arch/$(SRCARCH)/include/uapi/asm/Kbuild),, \
|
|
$(error Headers not exportable for the $(SRCARCH) architecture))
|
|
endif
|
|
$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)include/uapi
|
|
$(Q)$(MAKE) $(hdr-inst)=$(hdr-prefix)arch/$(SRCARCH)/include/uapi
|
|
|
|
ifeq ($(KBUILD_EXTMOD),)
|
|
core-y += kernel/ certs/ mm/ fs/ ipc/ security/ crypto/ block/
|
|
|
|
vmlinux-dirs := $(patsubst %/,%,$(filter %/, \
|
|
$(core-y) $(core-m) $(drivers-y) $(drivers-m) \
|
|
$(libs-y) $(libs-m)))
|
|
|
|
vmlinux-alldirs := $(sort $(vmlinux-dirs) Documentation \
|
|
$(patsubst %/,%,$(filter %/, $(core-) \
|
|
$(drivers-) $(libs-))))
|
|
|
|
subdir-modorder := $(addsuffix modules.order,$(filter %/, \
|
|
$(core-y) $(core-m) $(libs-y) $(libs-m) \
|
|
$(drivers-y) $(drivers-m)))
|
|
|
|
build-dirs := $(vmlinux-dirs)
|
|
clean-dirs := $(vmlinux-alldirs)
|
|
|
|
# Externally visible symbols (used by link-vmlinux.sh)
|
|
KBUILD_VMLINUX_OBJS := $(head-y) $(patsubst %/,%/built-in.a, $(core-y))
|
|
KBUILD_VMLINUX_OBJS += $(addsuffix built-in.a, $(filter %/, $(libs-y)))
|
|
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
|
|
KBUILD_VMLINUX_OBJS += $(patsubst %/,%/built-in.a, $(drivers-y))
|
|
|
|
export KBUILD_VMLINUX_OBJS KBUILD_VMLINUX_LIBS
|
|
export KBUILD_LDS := arch/$(SRCARCH)/kernel/vmlinux.lds
|
|
# used by scripts/Makefile.package
|
|
export KBUILD_ALLDIRS := $(sort $(filter-out arch/%,$(vmlinux-alldirs)) LICENSES arch include scripts tools)
|
|
|
|
vmlinux-deps := $(KBUILD_LDS) $(KBUILD_VMLINUX_OBJS) $(KBUILD_VMLINUX_LIBS)
|
|
|
|
# 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: descend modules.order
|
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/adjust_autoksyms.sh \
|
|
"$(MAKE) -f $(srctree)/Makefile vmlinux"
|
|
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)
|
|
|
|
ARCH_POSTLINK := $(wildcard $(srctree)/arch/$(SRCARCH)/Makefile.postlink)
|
|
|
|
# Final link of vmlinux with optional arch pass after final link
|
|
cmd_link-vmlinux = \
|
|
$(CONFIG_SHELL) $< "$(LD)" "$(KBUILD_LDFLAGS)" "$(LDFLAGS_vmlinux)"; \
|
|
$(if $(ARCH_POSTLINK), $(MAKE) -f $(ARCH_POSTLINK) $@, true)
|
|
|
|
ifndef KBUILD_MIXED_TREE
|
|
vmlinux: scripts/link-vmlinux.sh autoksyms_recursive $(vmlinux-deps) FORCE
|
|
+$(call if_changed,link-vmlinux)
|
|
endif
|
|
|
|
targets := vmlinux
|
|
|
|
# The actual objects are generated when descending,
|
|
# make sure no implicit rule kicks in
|
|
$(sort $(vmlinux-deps) $(subdir-modorder)): descend ;
|
|
|
|
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/autoconf.h
|
|
|
|
prepare0: archprepare
|
|
$(Q)$(MAKE) $(build)=scripts/mod
|
|
$(Q)$(MAKE) $(build)=.
|
|
|
|
# All the preparing..
|
|
prepare: prepare0 prepare-objtool prepare-resolve_btfids
|
|
|
|
# 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
|
|
|
|
PHONY += prepare-objtool prepare-resolve_btfids
|
|
prepare-objtool: $(objtool_target)
|
|
ifeq ($(SKIP_STACK_VALIDATION),1)
|
|
ifdef CONFIG_FTRACE_MCOUNT_USE_OBJTOOL
|
|
@echo "error: Cannot generate __mcount_loc for CONFIG_DYNAMIC_FTRACE=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
@false
|
|
endif
|
|
ifdef CONFIG_UNWINDER_ORC
|
|
@echo "error: Cannot generate ORC metadata for CONFIG_UNWINDER_ORC=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
@false
|
|
else
|
|
@echo "warning: Cannot use CONFIG_STACK_VALIDATION=y, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
endif
|
|
endif
|
|
|
|
prepare-resolve_btfids: $(resolve_btfids_target)
|
|
ifeq ($(ERROR_RESOLVE_BTFIDS),1)
|
|
@echo "error: Cannot resolve BTF IDs for CONFIG_DEBUG_INFO_BTF, please install libelf-dev, libelf-devel or elfutils-libelf-devel" >&2
|
|
@false
|
|
endif
|
|
# 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
|
|
ifneq (,$(BUILD_NUMBER))
|
|
UTS_RELEASE=$(KERNELRELEASE)-ab$(BUILD_NUMBER)
|
|
else
|
|
UTS_RELEASE=$(KERNELRELEASE)
|
|
endif
|
|
define filechk_utsrelease.h
|
|
if [ `echo -n "$(UTS_RELEASE)" | wc -c ` -gt $(uts_len) ]; then \
|
|
echo '"$(UTS_RELEASE)" exceeds $(uts_len) characters' >&2; \
|
|
exit 1; \
|
|
fi; \
|
|
echo \#define UTS_RELEASE \"$(UTS_RELEASE)\"
|
|
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)))'
|
|
endef
|
|
|
|
$(version_h): PATCHLEVEL := $(if $(PATCHLEVEL), $(PATCHLEVEL), 0)
|
|
$(version_h): SUBLEVEL := $(if $(SUBLEVEL), $(SUBLEVEL), 0)
|
|
$(version_h): FORCE
|
|
$(call filechk,version.h)
|
|
$(Q)rm -f $(old_version_h)
|
|
|
|
include/generated/utsrelease.h: include/config/kernel.release FORCE
|
|
$(call filechk,utsrelease.h)
|
|
|
|
PHONY += headerdep
|
|
headerdep:
|
|
$(Q)find $(srctree)/include/ -name '*.h' | xargs --max-args 1 \
|
|
$(srctree)/scripts/headerdep.pl -I$(srctree)/include
|
|
|
|
# Deprecated. It is no-op now.
|
|
PHONY += headers_check
|
|
headers_check:
|
|
@:
|
|
|
|
ifdef CONFIG_HEADERS_INSTALL
|
|
prepare: headers
|
|
endif
|
|
|
|
PHONY += scripts_unifdef
|
|
scripts_unifdef: scripts_basic
|
|
$(Q)$(MAKE) $(build)=scripts scripts/unifdef
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# Kernel selftest
|
|
|
|
PHONY += kselftest
|
|
kselftest:
|
|
$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
|
|
|
|
kselftest-%: 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/),)
|
|
dtstree := arch/$(SRCARCH)/boot/dts
|
|
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
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 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
|
|
#
|
|
# A module can be listed more than once in obj-m resulting in
|
|
# duplicate lines in modules.order files. Those are removed
|
|
# using awk while concatenating to the final file.
|
|
|
|
PHONY += modules
|
|
# if KBUILD_BUILTIN && !KBUILD_MIXED_TREE, depend on vmlinux
|
|
modules: $(if $(KBUILD_BUILTIN), $(if $(KBUILD_MIXED_TREE),,vmlinux))
|
|
modules: modules_check modules_prepare
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
|
|
|
PHONY += modules_check
|
|
modules_check: modules.order
|
|
$(Q)$(CONFIG_SHELL) $(srctree)/scripts/modules-check.sh $<
|
|
|
|
cmd_modules_order = $(AWK) '!x[$$0]++' $(real-prereqs) > $@
|
|
|
|
modules.order: $(subdir-modorder) FORCE
|
|
$(call if_changed,modules_order)
|
|
|
|
targets += modules.order
|
|
|
|
# Target to prepare building external modules
|
|
PHONY += modules_prepare
|
|
modules_prepare: prepare
|
|
$(Q)$(MAKE) $(build)=scripts scripts/module.lds
|
|
|
|
# Target to install modules
|
|
PHONY += modules_install
|
|
modules_install: _modinst_ _modinst_post
|
|
|
|
PHONY += _modinst_
|
|
_modinst_:
|
|
@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)/
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
|
|
|
|
# This depmod is only for convenience to give the initial
|
|
# boot a modules.dep even before / is mounted read-write. However the
|
|
# boot script depmod is the master version.
|
|
PHONY += _modinst_post
|
|
_modinst_post: _modinst_
|
|
$(call cmd,depmod)
|
|
|
|
ifeq ($(CONFIG_MODULE_SIG), y)
|
|
PHONY += modules_sign
|
|
modules_sign:
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modsign
|
|
endif
|
|
|
|
else # CONFIG_MODULES
|
|
|
|
# Modules not configured
|
|
# ---------------------------------------------------------------------------
|
|
|
|
PHONY += modules modules_install
|
|
modules modules_install:
|
|
@echo >&2
|
|
@echo >&2 "The present kernel configuration has modules disabled."
|
|
@echo >&2 "Type 'make config' and enable loadable module support."
|
|
@echo >&2 "Then build a kernel with module support enabled."
|
|
@echo >&2
|
|
@exit 1
|
|
|
|
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
|
|
|
|
# Directories & files removed with 'make mrproper'
|
|
MRPROPER_FILES += include/config include/generated \
|
|
arch/$(SRCARCH)/include/generated .tmp_objdiff \
|
|
debian snap tar-install \
|
|
.config .config.old .version \
|
|
Module.symvers \
|
|
signing_key.pem signing_key.priv signing_key.x509 \
|
|
x509.genkey extra_certificates signing_key.x509.keyid \
|
|
signing_key.x509.signer vmlinux-gdb.py \
|
|
*.spec
|
|
|
|
# Directories & files removed with 'make distclean'
|
|
DISTCLEAN_FILES += tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS
|
|
|
|
# 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)
|
|
|
|
# distclean
|
|
#
|
|
distclean: rm-files := $(wildcard $(DISTCLEAN_FILES))
|
|
|
|
PHONY += distclean
|
|
|
|
distclean: mrproper
|
|
$(call cmd,rmfiles)
|
|
@find $(srctree) $(RCS_FIND_IGNORE) \
|
|
\( -name '*.orig' -o -name '*.rej' -o -name '*~' \
|
|
-o -name '*.bak' -o -name '#*#' -o -name '*%' \
|
|
-o -name 'core' \) \
|
|
-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 ''
|
|
@$(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)):'
|
|
@$(if $(archhelp),$(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 ' 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 $@
|
|
|
|
# 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.
|
|
#
|
|
# The following are the only valid targets when building external
|
|
# modules.
|
|
# make M=dir clean Delete all automatically generated files
|
|
# make M=dir modules Make all modules in specified dir
|
|
# make M=dir Same as 'make M=dir modules'
|
|
# make M=dir modules_install
|
|
# Install the modules built in the module directory
|
|
# Assumes install directory is already created
|
|
|
|
# We are always building only modules.
|
|
KBUILD_BUILTIN :=
|
|
KBUILD_MODULES := 1
|
|
|
|
build-dirs := $(KBUILD_EXTMOD)
|
|
PHONY += modules
|
|
modules: $(MODORDER)
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
|
|
|
$(MODORDER): descend
|
|
@:
|
|
|
|
PHONY += modules_install
|
|
modules_install: _emodinst_ _emodinst_post
|
|
|
|
install-dir := $(if $(INSTALL_MOD_DIR),$(INSTALL_MOD_DIR),extra)
|
|
PHONY += _emodinst_
|
|
_emodinst_:
|
|
$(Q)mkdir -p $(MODLIB)/$(install-dir)
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modinst
|
|
|
|
PHONY += _emodinst_post
|
|
_emodinst_post: _emodinst_
|
|
$(call cmd,depmod)
|
|
|
|
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 += 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 ''
|
|
|
|
# no-op for external module builds
|
|
PHONY += prepare modules_prepare
|
|
|
|
endif # KBUILD_EXTMOD
|
|
|
|
# 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 := $(sort $(patsubst %.ko,%.mod, $(MAKECMDGOALS)))
|
|
|
|
$(single-ko): single_modpost
|
|
@:
|
|
$(single-no-ko): descend
|
|
@:
|
|
|
|
ifeq ($(KBUILD_EXTMOD),)
|
|
# For the single build of in-tree modules, use a temporary file to avoid
|
|
# the situation of modules_install installing an invalid modules.order.
|
|
MODORDER := .modules.tmp
|
|
endif
|
|
|
|
PHONY += single_modpost
|
|
single_modpost: $(single-no-ko) modules_prepare
|
|
$(Q){ $(foreach m, $(single-ko), echo $(extmod-prefix)$m;) } > $(MODORDER)
|
|
$(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
|
|
|
|
KBUILD_MODULES := 1
|
|
|
|
export KBUILD_SINGLE_TARGETS := $(addprefix $(extmod-prefix), $(single-no-ko))
|
|
|
|
# trim unrelated directories
|
|
build-dirs := $(foreach d, $(build-dirs), \
|
|
$(if $(filter $(d)/%, $(KBUILD_SINGLE_TARGETS)), $(d)))
|
|
|
|
endif
|
|
|
|
ifndef CONFIG_MODULES
|
|
KBUILD_MODULES :=
|
|
endif
|
|
|
|
# Handle descending into subdirectories listed in $(build-dirs)
|
|
# 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 += descend $(build-dirs)
|
|
descend: $(build-dirs)
|
|
$(build-dirs): prepare
|
|
$(Q)$(MAKE) $(build)=$@ \
|
|
single-build=$(if $(filter-out $@/, $(filter $@/%, $(KBUILD_SINGLE_TARGETS))),1) \
|
|
$(if $(KBUILD_MIXED_TREE),,need-builtin=1) need-modorder=1
|
|
|
|
clean-dirs := $(addprefix _clean_, $(clean-dirs))
|
|
PHONY += $(clean-dirs) clean
|
|
$(clean-dirs):
|
|
$(Q)$(MAKE) $(clean)=$(patsubst _clean_%,%,$@)
|
|
|
|
clean: $(clean-dirs)
|
|
$(call cmd,rmfiles)
|
|
@find $(if $(KBUILD_EXTMOD), $(KBUILD_EXTMOD), .) $(RCS_FIND_IGNORE) \
|
|
\( -name '*.[aios]' -o -name '*.ko' -o -name '.*.cmd' \
|
|
-o -name '*.ko.*' \
|
|
-o -name '*.dtb' -o -name '*.dtb.S' -o -name '*.dt.yaml' \
|
|
-o -name '*.dwo' -o -name '*.lst' \
|
|
-o -name '*.su' -o -name '*.mod' \
|
|
-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.*' \
|
|
-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_VMLINUX_OBJS) $(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)
|
|
|
|
# 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/ $*
|
|
|
|
quiet_cmd_rmfiles = $(if $(wildcard $(rm-files)),CLEAN $(wildcard $(rm-files)))
|
|
cmd_rmfiles = rm -rf $(rm-files)
|
|
|
|
# Run depmod only if we have System.map and depmod is executable
|
|
quiet_cmd_depmod = DEPMOD $(KERNELRELEASE)
|
|
cmd_depmod = $(CONFIG_SHELL) $(srctree)/scripts/depmod.sh $(DEPMOD) \
|
|
$(KERNELRELEASE) $(mixed-build-prefix)
|
|
|
|
# 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)
|