android_kernel_xiaomi_sm8450/Makefile
Greg Kroah-Hartman 131b12d50f Merge tag 'android12-5.10.110_r01' into android12-5.10
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, again
8f4bd2a63f 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 commit ce1927b8cf ("block: don't merge across cgroup boundaries if blkcg is enabled")
62fa3399b4 ANDROID: remove CONFIG_HW_RANDOM_CAVIUM from arm64 gki_defconfig
95f4203fc9 Merge 5.10.110 into android12-5.10-lts
3238bffaf9 Linux 5.10.110
cf342cbfb3 PCI: xgene: Revert "PCI: xgene: Use inbound resources for setup"
a25864c5bc arm64: Do not defer reserve_crashkernel() for platforms with no DMA memory zones
558564db44 coredump: Use the vma snapshot in fill_files_note
b7933f145a coredump/elf: Pass coredump_params into fill_note_info
b043ae637a coredump: Remove the WARN_ON in dump_vma_snapshot
936c8be4d1 coredump: Snapshot the vmas in do_coredump
5318cdf4fd can: usb_8dev: usb_8dev_start_xmit(): fix double dev_kfree_skb() in error path
869016a293 can: m_can: m_can_tx_handler(): fix use after free of skb
e90518d10c KVM: x86/mmu: do compare-and-exchange of gPTE via the user address
e36c45263a openvswitch: Fixed nd target mask field in the flow dump.
415edc68b6 docs: sysctl/kernel: add missing bit to panic_print
272c74323d um: Fix uml_mconsole stop/go
c0a6a54738 ARM: dts: spear13xx: Update SPI dma properties
ea3912af8b ARM: dts: spear1340: Update serial node properties
74f7971985 ASoC: topology: Allow TLV control to be either read or write
3ca47556d9 ubi: fastmap: Return error code if memory allocation fails in add_aeb()
7704f243cb dt-bindings: spi: mxic: The interrupt property is not mandatory
648ab1dcc1 dt-bindings: mtd: nand-controller: Fix a comment in the examples
71917e45e1 dt-bindings: mtd: nand-controller: Fix the reg property description
73f2f37417 bpf: Fix comment for helper bpf_current_task_under_cgroup()
90805175a2 bpf: Adjust BPF stack helper functions to accommodate skip > 0
86489492e8 mm/usercopy: return 1 from hardened_usercopy __setup() handler
81a04b9a32 mm/memcontrol: return 1 from cgroup.memory __setup() handler
f321621f5c ARM: 9187/1: JIVE: fix return value of __setup handler
d57feed3b1 mm/mmap: return 1 from stack_guard_gap __setup() handler
73f7cbb151 batman-adv: Check ptr for NULL before reducing its refcnt
f6da750bfa ASoC: soc-compress: Change the check for codec_dai
d3f786b7cf staging: mt7621-dts: fix pinctrl-0 items to be size-1 items on ethernet
12e380bb6f proc: bootconfig: Add null pointer check
90ec1b1538 can: isotp: restore accidentally removed MSG_PEEK feature
16960ac92b platform/chrome: cros_ec_typec: Check for EC device
e5b681822c ACPI: CPPC: Avoid out of bounds access when parsing _CPC data
785a53373c riscv module: remove (NOLOAD)
b27de7011c io_uring: fix memory leak of uid in files registration
20499ed3c0 ARM: iop32x: offset IRQ numbers by 1
432b057f8e ubi: Fix race condition between ctrl_cdev_ioctl and ubi_cdev_ioctl
f28a857a61 ASoC: mediatek: mt6358: add missing EXPORT_SYMBOLs
ecfc3f8a63 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 function
402b53dc7c pinctrl: pinconf-generic: Print arguments for bias-pull-*
7169f60110 watch_queue: Free the page array when watch_queue is dismantled
e64dc94990 crypto: arm/aes-neonbs-cbc - Select generic cbc and aes
a16f5ae8ad mailbox: imx: fix wakeup failure from freeze mode
051360e513 rxrpc: Fix call timer start racing with call destruction
a94d98e06e net: hns3: fix software vlan talbe of vlan 0 inconsistent with hardware
c73af4bc8a gfs2: Make sure FITRIM minlen is rounded up to fs block size
33c204266c rtc: check if __rtc_read_time was successful
381636f33f XArray: Update the LRU list in xas_split()
3b9fabe8f6 can: mcp251xfd: mcp251xfd_register_get_dev_id(): fix return of error value
ef0acc5141 can: mcba_usb: properly check endpoint type
0801a51d79 can: mcba_usb: mcba_usb_start_xmit(): fix double dev_kfree_skb in error path
1ac49c8fd4 XArray: Fix xas_create_range() when multi-order entry present
49f77ab50a wireguard: socket: ignore v6 endpoints when ipv6 is disabled
096f9d35ca wireguard: socket: free skb in send6 when ipv6 is disabled
cd032f218c wireguard: queueing: use CFI-safe ptr_ring cleanup function
8a0c70c238 ubifs: rename_whiteout: correct old_dir size computing
c34ae24a25 ubifs: Fix to add refcount once page is set private
07a209fade ubifs: Fix read out-of-bounds in ubifs_wbuf_write_nolock()
d07a242169 ubifs: setflags: Make dirtied_ino_d 8 bytes aligned
13b2a8151e ubifs: Add missing iput if do_tmpfile() failed in rename whiteout
83e42a7842 ubifs: Fix deadlock in concurrent rename whiteout and inode writeback
a90e2dbe66 ubifs: rename_whiteout: Fix double free for whiteout_ui->data
0c307349fe ASoC: SOF: Intel: Fix NULL ptr dereference when ENOMEM
0fb470eb48 KVM: SVM: fix panic on out-of-bounds guest IRQ
cd8c2d7c7c KVM: x86: fix sending PV IPI
eccfee4494 KVM: Prevent module exit until all VMs are freed
09c771c45c KVM: x86: Forbid VMM to set SYNIC/STIMER MSRs when SynIC wasn't activated
aea4ffdcf3 platform: chrome: Split trace include file
d3a913ba1f scsi: qla2xxx: Use correct feature type field during RFF_ID processing
633450063c scsi: qla2xxx: Reduce false trigger to login
dd48727cab scsi: qla2xxx: Fix N2N inconsistent PLOGI
0910a791a6 scsi: qla2xxx: Fix missed DMA unmap for NVMe ls requests
f296e888e9 scsi: qla2xxx: Fix hang due to session stuck
edea037716 scsi: qla2xxx: Fix incorrect reporting of task management failure
9dc104edd7 scsi: qla2xxx: Fix disk failure to rediscover
f97316dd39 scsi: qla2xxx: Suppress a kernel complaint in qla_create_qpair()
0e4a89efc2 scsi: qla2xxx: Check for firmware dump already collected
ef10a7530c scsi: qla2xxx: Add devids and conditionals for 28xx
bad77c9a47 scsi: qla2xxx: Fix device reconnect in loop topology
8b52e20c22 scsi: qla2xxx: Fix warning for missing error code
7c9745421d scsi: qla2xxx: Fix wrong FDMI data for 64G adapter
7fef50214d scsi: qla2xxx: Fix scheduling while atomic
c45147018d scsi: qla2xxx: Fix stuck session in gpdb
031547f4c6 powerpc: Fix build errors with newer binutils
68fa67e939 powerpc/lib/sstep: Fix build errors with newer binutils
ad806b4022 powerpc/lib/sstep: Fix 'sthcx' instruction
f39a330939 powerpc/kasan: Fix early region not updated correctly
89e5a42687 KVM: x86/mmu: Check for present SPTE when clearing dirty bit in TDP MMU
a3ad453008 ALSA: hda/realtek: Add alc256-samsung-headphone fixup
aa2ad067cd media: atomisp: fix bad usage at error handling logic
2412a5d294 mmc: host: Return an error when ->enable_sdio_irq() ops is missing
808990afd8 media: hdpvr: initialize dev->worker at hdpvr_register_videodev
32582f82df 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 device
add823a9a5 ARM: tegra: tamonten: Fix I2C3 pad setting
08ec8450f3 lib/test_lockup: fix kernel pointer check for separate address spaces
40a5c93a74 uaccess: fix type mismatch warnings from access_ok()
a49b687a75 media: cx88-mpeg: clear interrupt status register before streaming video
4606350268 ASoC: soc-core: skip zero num_dai component in searching dai name
a840fc067e ARM: dts: bcm2711: Add the missing L1/L2 cache information
681a317034 video: fbdev: udlfb: replace snprintf in show functions with sysfs_emit
a7c624abf6 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 module
14df2556a1 ARM: dts: imx7: Use audio_mclk_post_div instead audio_mclk_root_clk
c241cfd0a5 ARM: ftrace: avoid redundant loads or clobbering IP
41082d6432 media: atomisp: fix dummy_ptr check to avoid duplicate active_bo
b554196e6d media: atomisp_gmin_platform: Add DMI quirk to not turn AXP ELDO2 regulator off on some boards
370b50492e ASoC: madera: Add dependencies on MFD
0020667edc ARM: dts: bcm2837: Add the missing L1/L2 cache information
f040c08102 ARM: dts: qcom: fix gic_irq_domain_translate warnings for msm8960
da210b1b55 video: fbdev: omapfb: acx565akm: replace snprintf with sysfs_emit
8c7e2141fb video: fbdev: cirrusfb: check pixclock to avoid divide by zero
1e33f19746 video: fbdev: w100fb: Reset global state
08dff48201 video: fbdev: nvidiafb: Use strscpy() to prevent buffer overflow
99e3f83539 media: ir_toy: free before error exiting
d658178b5a media: staging: media: zoran: fix various V4L2 compliance errors
bafec1a6ba media: staging: media: zoran: calculate the right buffer number for zoran_reap_stat_com
bd01629315 media: staging: media: zoran: move videodev alloc
b230f2d944 ntfs: add sanity check on allocation size
f7e8aff062 f2fs: compress: fix to print raw data size in error path of lz4 decompression
d91d1e681c NFSD: Fix nfsd_breaker_owns_lease() return values
498b7088db f2fs: fix to do sanity check on curseg->alloc_type
330d0e44fc ext4: don't BUG if someone dirty pages without asking ext4 first
cd6d719534 ext4: fix ext4_mb_mark_bb() with flex_bg with fast_commit
69d2421b55 ext4: correct cluster len and clusters changed accounting in ext4_mb_mark_bb
ecd384c436 locking/lockdep: Iterate lock_classes directly when reading lockdep files
3ad817f1bd spi: tegra20: Use of_device_get_match_data()
1c200c8bce nvme-tcp: lockdep: annotate in-kernel sockets
7e4967e913 parisc: Fix handling off probe non-access faults
ede1ef1a7d PM: core: keep irq flags in device_pm_check_callbacks()
227718c8bb ACPI/APEI: Limit printable size of BERT table data
cc051f497e Revert "Revert "block, bfq: honor already-setup queue merges""
1b69302bfa lib/raid6/test/Makefile: Use $(pound) instead of \# for Make 4.3
1b87ce6a77 ACPICA: Avoid walking the ACPI Namespace if it is not there
df6e00b1a5 bfq: fix use-after-free in bfq_dispatch_request
dd85ed4af8 fs/binfmt_elf: Fix AT_PHDR for unusual ELF files
9fc899ce5a irqchip/nvic: Release nvic_base upon failure
4bbd910de1 irqchip/qcom-pdc: Fix broken locking
f038185b6a Fix incorrect type in assignment of ipv6 port for audit
012c572007 loop: use sysfs_emit() in the sysfs xxx show()
448857f580 selinux: allow FIOCLEX and FIONCLEX with policy capability
4b9b60b5bf selinux: use correct type for context length
7507ead1e9 block, bfq: don't move oom_bfqq
79b16d00de pinctrl: npcm: Fix broken references to chip->parent_device
9d1d8e5e42 gcc-plugins/stackleak: Exactly match strings instead of prefixes
b0f2f89d74 regulator: rpi-panel: Handle I2C errors/timing to the Atmel
2784604c8c LSM: general protection fault in legacy_parse_param
e600b5973e fs: fix fd table size alignment properly
327f07e370 lib/test: use after free in register_test_dev_kmod()
00d2b9fe5e fs: fd tables have to be multiples of BITS_PER_LONG
1752fcd404 net: dsa: bcm_sf2_cfp: fix an incorrect NULL check on list iterator
edb91a475d NFSv4/pNFS: Fix another issue with a list iterator pointing to the head
5c94b6205e net/x25: Fix null-ptr-deref caused by x25_disconnect
4896c308a5 qlcnic: dcb: default to returning -EOPNOTSUPP
2165d0ebfb selftests: test_vxlan_under_vrf: Fix broken test case
f98dc124a4 net: phy: broadcom: Fix brcm_fet_config_init()
3e7a483af3 net: hns3: fix bug when PF set the duplicate MAC address for VFs
3eb92660e6 net: enetc: report software timestamping via SO_TIMESTAMPING
e9445a7a59 xen: fix is_xen_pmu()
af0c3ced24 clk: Initialize orphan req_rate
845e734f97 clk: qcom: gcc-msm8994: Fix gpll4 width
e2a2625392 kdb: Fix the putarea helper function
a9fa7d48a1 NFSv4.1: don't retry BIND_CONN_TO_SESSION on session error
8cd30d28da netfilter: nf_conntrack_tcp: preserve liberal flag in tcp options
fbd56a61ce jfs: fix divide error in dbNextAG
acb96e62e6 driver core: dd: fix return value of __setup handler
89748be18f firmware: google: Properly state IOMEM dependency
3d934d7b90 kgdbts: fix return value of __setup handler
f65ba8b988 serial: 8250: fix XOFF/XON sending when DMA is used
45e95a7bf8 kgdboc: fix return value of __setup handler
96038b1cf4 tty: hvc: fix return value of __setup handler
566e30289d pinctrl/rockchip: Add missing of_node_put() in rockchip_pinctrl_probe
669b05ff43 pinctrl: nomadik: Add missing of_node_put() in nmk_pinctrl_probe
9d095fe2fb pinctrl: mediatek: paris: Skip custom extra pin config dump for virtual GPIOs
861946289d pinctrl: mediatek: paris: Fix pingroup pin config state readback
7675fb2aaf pinctrl: mediatek: paris: Fix "argument" argument type for mtk_pinconf_get()
901e192ac9 pinctrl: mediatek: paris: Fix PIN_CONFIG_BIAS_* readback
72ea0fefea pinctrl: mediatek: Fix missing of_node_put() in mtk_pctrl_init
fddbfe43bf staging: mt7621-dts: fix GB-PC2 devicetree
00e0739ca1 staging: mt7621-dts: fix pinctrl properties for ethernet
47c31fe8ca staging: mt7621-dts: fix formatting
59ec187d7c staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree
942f68bf29 NFS: remove unneeded check in decode_devicenotify_args()
e025c66387 clk: tegra: tegra124-emc: Fix missing put_device() call in emc_ensure_emc_driver
54c8128297 clk: clps711x: Terminate clk_div_table with sentinel element
9ff533033d clk: loongson1: Terminate clk_div_table with sentinel element
bb680cabf2 clk: actions: Terminate clk_div_table with sentinel element
431f8a9cec nvdimm/region: Fix default alignment for small regions
f7210ca29a remoteproc: qcom_q6v5_mss: Fix some leaks in q6v5_alloc_memory_region
7a494580a8 remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region
5c1d484d96 remoteproc: qcom: Fix missing of_node_put in adsp_alloc_memory_region
f95fd61dd8 dmaengine: hisi_dma: fix MSI allocate fail when reload hisi_dma
d047d68ff0 clk: qcom: clk-rcg2: Update the frac table for pixel clock
334720f418 clk: qcom: clk-rcg2: Update logic to calculate D value for RCG
639744b242 clk: at91: sama7g5: fix parents of PDMCs' GCLK
0553ecbce9 clk: imx7d: Remove audio_mclk_root_clk
867258d3f3 dma-debug: fix return value of __setup handlers
2f3885514e NFS: Return valid errors from nfs2/3_decode_dirent()
7b59afe84a habanalabs: Add check for pci_enable_device
afcbc63752 iio: adc: Add check for devm_request_threaded_irq
df2dc4cf71 serial: 8250: Fix race condition in RTS-after-send handling
469ce5119f NFS: Use of mapping_set_error() results in spurious errors
659fe4d653 serial: 8250_lpss: Balance reference count for PCI DMA device
0aebb3944a serial: 8250_mid: Balance reference count for PCI DMA device
c92bd51313 phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure})
80805f555e clk: qcom: ipq8074: Use floor ops for SDCC1 clock
fd2601e366 pinctrl: renesas: checker: Fix miscalculation of number of states
c5cf977515 pinctrl: renesas: r8a77470: Reduce size for narrow VIN1 channel
b5db33a81e staging:iio:adc:ad7280a: Fix handing of device address bit reversing.
f5b01abf5f iio: mma8452: Fix probe failing when an i2c_device_id is used
8b89c9e68a clk: qcom: ipq8074: fix PCI-E clock oops
a70d5dbe2e soundwire: intel: fix wrong register name in intel_shim_wake
091704a9a7 cpufreq: qcom-cpufreq-nvmem: fix reading of PVS Valid fuse
f90ad94322 misc: alcor_pci: Fix an error handling path
553541c453 fsi: Aspeed: Fix a potential double free
cb212c3f0d fsi: aspeed: convert to devm_platform_ioremap_resource
c0b3c06414 pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add()
2cd05c38a2 mxser: fix xmit_buf leak in activate when LSR == 0xff
8513c93ead mfd: asic3: Add missing iounmap() on error asic3_mfd_probe
084be6309f tipc: fix the timer expires after interval 100ms
5d8162371c openvswitch: always update flow key after nat
4593c76a65 tcp: ensure PMTU updates are processed during fastopen
b26091a020 net: bcmgenet: Use stronger register read/writes to assure ordering
9088614323 PCI: Avoid broken MSI on SB600 USB devices
75a4a97b74 selftests/bpf/test_lirc_mode2.sh: Exit with proper code
0d3ad6142a i2c: mux: demux-pinctrl: do not deactivate a master that is not active
c483f8002d i2c: meson: Fix wrong speed use from probe
b089836218 af_netlink: Fix shift out of bounds in group mask calculation
40f3b8dada ipv4: Fix route lookups when handling ICMP redirects and PMTU updates
70a6cf749d Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt
b441fcdff2 Bluetooth: call hci_le_conn_failed with hdev lock in hci_le_conn_failed
876cfe1380 selftests/bpf: Fix error reporting from sock_fields programs
ac1ec6f319 bareudp: use ipv6_mod_enabled to check if IPv6 enabled
c037e13539 can: isotp: support MSG_TRUNC flag when reading from socket
f402c49865 can: isotp: return -EADDRNOTAVAIL when reading from unbound socket
8a9d996d4e USB: storage: ums-realtek: fix error code in rts51x_read_mem()
f9a6661009 samples/bpf, xdpsock: Fix race when running for fix duration of time
cd84ea3920 bpf, sockmap: Fix double uncharge the mem of sk_msg
7b812a369e bpf, sockmap: Fix more uncharged while msg has more_data
bec34a91eb bpf, sockmap: Fix memleak in tcp_bpf_sendmsg while sk msg is full
c98d903ff9 RDMA/mlx5: Fix memory leak in error flow for subscribe event routine
a3587259ae mtd: rawnand: atmel: fix refcount issue in atmel_nand_controller_init
fa3d444245 MIPS: pgalloc: fix memory leak caused by pgd_free()
8c4808ff9e MIPS: RB532: fix return value of __setup handler
ef1728e3cb mips: cdmm: Fix refcount leak in mips_cdmm_phys_base
315772133a ath10k: Fix error handling in ath10k_setup_msa_resources
71f311b123 vxcan: enable local echo for sent CAN frames
3c2a397849 powerpc: 8xx: fix a return value error in mpc8xx_pic_init
956fab99ad platform/x86: huawei-wmi: check the return value of device_create_file()
1ba28cb692 selftests/bpf: Make test_lwt_ip_encap more stable and faster
08ab406781 libbpf: Unmap rings when umem deleted
6fa8edfc90 mfd: mc13xxx: Add check for mc13xxx_irq_request
bcf93175ed powerpc/sysdev: fix incorrect use to determine if list is empty
ab0a335b54 mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n
bbd91cdb62 net: axienet: fix RX ring refill allocation failure handling
9ec698984d PCI: Reduce warnings on possible RW1C corruption
a84cb039d2 IB/hfi1: Allow larger MTU without AIP
48d23ef901 power: supply: wm8350-power: Add missing free in free_charger_irq
9d3dab40af power: supply: wm8350-power: Handle error for wm8350_register_irq
5cf1371628 i2c: xiic: Make bus names unique
f01e08083c hv_balloon: rate-limit "Unhandled message" warning
ba2c6e353b KVM: x86/emulator: Defer not-present segment check in __load_segment_descriptor()
fa9089949d KVM: x86: Fix emulation in writing cr8
3e7e73ae2b powerpc/Makefile: Don't pass -mcpu=powerpc64 when building 32-bit
05abd49972 powerpc/mm/numa: skip NUMA_NO_NODE onlining in parse_numa_properties()
3e04a837db libbpf: Skip forward declaration when counting duplicated type names
6bb107332d gpu: host1x: Fix a memory leak in 'host1x_remove()'
d1c7759304 bpf, arm64: Feed byte-offset into bpf line info
694398af5f bpf, arm64: Call build_prologue() first in first JIT pass
06a0001366 drm/bridge: cdns-dsi: Make sure to to create proper aliases for dt
a3d53f0005 scsi: hisi_sas: Change permission of parameter prot_mask
705c70399e power: supply: bq24190_charger: Fix bq24190_vbus_is_enabled() wrong false return
1e06710c43 drm/tegra: Fix reference leak in tegra_dsi_ganged_probe
9ffa07c699 ext2: correct max file size computing
60605acf5b TOMOYO: fix __setup handlers return values
adb7c8d1de drm/amd/display: Remove vupdate_int_entry definition
e462b0f518 RDMA/mlx5: Fix the flow of a miss in the allocation of a cache ODP MR
279f318bd7 scsi: pm8001: Fix abort all task initialization
780c668a2d scsi: pm8001: Fix NCQ NON DATA command completion handling
f7a3f9e4e8 scsi: pm8001: Fix NCQ NON DATA command task initialization
f76bbee39e 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_KEYS
d4862bea08 drm/msm/dpu: fix dp audio condition
7b52fb813c drm/msm/dpu: add DSPP blocks teardown
413c62697b drm/msm/dp: populate connector of struct dp_panel
441a83ff27 iwlwifi: mvm: Fix an error code in iwl_mvm_up()
c12692c3e9 iwlwifi: Fix -EIO error code that is never returned
ec376f5c11 dax: make sure inodes are flushed before destroy cache
5e6b030ac3 IB/cma: Allow XRC INI QPs to set their local ACK timeout
9c384e1afa drm/amd/display: Add affected crtcs to atomic state for dsc mst unplug
80b96ac9d2 drm/amd/pm: enable pm sysfs write for one VF mode
06e778d184 iommu/ipmmu-vmsa: Check for error num after setting mask
ab63b24ae6 HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports
879356a6a0 power: supply: ab8500: Fix memory leak in ab8500_fg_sysfs_init
f03ef518c1 drm/bridge: dw-hdmi: use safe format when first in bridge chain
e0e25e131d PCI: aardvark: Fix reading PCI_EXP_RTSTA_PME bit on emulated bridge
b1af8b9ec0 livepatch: Fix build failure on 32 bits processors
6f095441f8 scripts/dtc: Call pkg-config POSIXly correct
080822563b net: dsa: mv88e6xxx: Enable port policy support on 6097
2ac4f049db mt76: mt7615: check sta_rates pointer in mt7615_sta_rate_tbl_update
2430af1241 mt76: mt7603: check sta_rates pointer in mt7603_sta_rate_tbl_update
232c1cc986 mt76: mt7915: use proper aid value in mt7915_mcu_sta_basic_tlv
253cc4aafc mt76: mt7915: use proper aid value in mt7915_mcu_wtbl_generic_tlv in sta mode
b5d363ff17 powerpc/perf: Don't use perf_hw_context for trace IMC PMU
c18b538617 KVM: PPC: Book3S HV: Check return value of kvmppc_radix_init
8b64c158a0 powerpc: dts: t1040rdb: fix ports names for Seville Ethernet switch
be703360ed ray_cs: Check ioremap return value
43f2fe2a69 power: reset: gemini-poweroff: Fix IRQ check in gemini_poweroff_probe
da71a1483b i40e: respect metadata on XSK Rx to skb
b2e48cd141 i40e: don't reserve excessive XDP_PACKET_HEADROOM on XSK Rx to skb
e8fe653fa7 KVM: PPC: Fix vmx/vsx mixup in mmio emulation
11cb9eba06 RDMA/core: Set MR type in ib_reg_user_mr
11f11ac281 ath9k_htc: fix uninit value bugs
6e669baa33 drm/amd/pm: return -ENOTSUPP if there is no get_dpm_ultimate_freq function
19a7eba284 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 color
d99e7feaed mtd: rawnand: gpmi: fix controller timings setting
364b2eee62 mtd: onenand: Check for error irq
96ea88eb9b Bluetooth: hci_serdev: call init_rwsem() before p->open()
b267a8118c udmabuf: validate ubuf->pagecount
56722aa77b libbpf: Fix possible NULL pointer dereference when destroying skeleton
4a9c268a40 drm/panfrost: Check for error num after setting mask
5d1114ede5 ath10k: fix memory overwrite of the WoWLAN wakeup packet pattern
fb2be762a4 drm: bridge: adv7511: Fix ADV7535 HPD enablement
d9d61beb21 drm/bridge: nwl-dsi: Fix PM disable depth imbalance in nwl_dsi_probe
064e7f7532 drm/bridge: Add missing pm_runtime_disable() in __dw_mipi_dsi_probe
d8db734df6 drm/bridge: Fix free wrong object in sii8620_init_rcp_input_dev
ec3924eab5 drm/meson: osd_afbcd: Add an exit callback to struct meson_afbcd_ops
a1c665f5b7 ARM: configs: multi_v5_defconfig: re-enable CONFIG_V4L_PLATFORM_DRIVERS
1f24716e38 ASoC: codecs: wcd934x: Add missing of_node_put() in wcd934x_codec_parse_data
abefbf602c ASoC: msm8916-wcd-analog: Fix error handling in pm8916_wcd_analog_spmi_probe
90ac679aa6 ASoC: atmel: Fix error handling in sam9x5_wm8731_driver_probe
ec26e3ce3c ASoC: atmel: sam9x5_wm8731: use devm_snd_soc_register_card()
541251b903 mmc: davinci_mmc: Handle error for clk_enable
19eb5c7957 ASoC: msm8916-wcd-digital: Fix missing clk_disable_unprepare() in msm8916_wcd_digital_probe
42042c7a3d ASoC: imx-es8328: Fix error return code in imx_es8328_probe()
fe4db4ea21 ASoC: fsl_spdif: Disable TX clock when stop
86b6cf9894 ASoC: mxs: Fix error handling in mxs_sgtl5000_probe
c8c981cfc0 ASoC: dmaengine: do not use a NULL prepare_slave_config() callback
f452cff025 ASoC: SOF: Add missing of_node_put() in imx8m_probe
0d82401d46 ASoC: rockchip: i2s: Fix missing clk_disable_unprepare() in rockchip_i2s_probe
7e8b0fd0eb ASoC: rockchip: i2s: Use devm_platform_get_and_ioremap_resource()
b5664a584e ivtv: fix incorrect device_caps for ivtvfb
ebd4f1501e media: saa7134: fix incorrect use to determine if list is empty
dd67315994 media: saa7134: convert list_for_each to entry variant
066d9b48f9 video: fbdev: omapfb: Add missing of_node_put() in dvic_probe_of
20da8404e4 ASoC: fsi: Add check for clk_enable
db1c00a025 ASoC: wm8350: Handle error for wm8350_register_irq
662ee5ac6b ASoC: atmel: Add missing of_node_put() in at91sam9g20ek_audio_probe
663e7a7287 media: vidtv: Check for null return of vzalloc
4d68603cc4 media: stk1160: If start stream fails, return buffers with VB2_BUF_STATE_QUEUED
b02752d753 m68k: coldfire/device.c: only build for MCF_EDMA when h/w macros are defined
9ca3635a0a arm64: dts: rockchip: Fix SDIO regulator supply properties on rk3399-firefly
7e6f578662 ALSA: firewire-lib: fix uninitialized flag for AV/C deferred transaction
64eee4127c memory: emif: check the pointer temp in get_device_details()
330a9b0d38 memory: emif: Add check for setup_interrupts
4639c1d97f ASoC: soc-compress: prevent the potentially use of null pointer
a6ee60d4a9 ASoC: dwc-i2s: Handle errors for clk_enable
39bee81e30 ASoC: atmel_ssc_dai: Handle errors for clk_enable
dc947d175c ASoC: mxs-saif: Handle errors for clk_enable
a754ea0de3 printk: fix return value of printk.devkmsg __setup handler
87a265e292 arm64: dts: broadcom: Fix sata nodename
f63122803d arm64: dts: ns2: Fix spi-cpol and spi-cpha property
5d6a0dc6ba 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_put
f126dcbe70 media: cedrus: h264: Fix neighbour info buffer size
c011ae1665 media: cedrus: H265: Fix neighbour info buffer size
44973633b0 media: usb: go7007: s2250-board: fix leak in probe()
ec8a37b2d9 media: em28xx: initialize refcount before kref_get
1b46f57d51 media: video/hdmi: handle short reads of hdmi info frame.
170ad3942b ARM: dts: imx: Add missing LVDS decoder on M53Menlo
2a0eb50d9a ARM: dts: sun8i: v3s: Move the csi1 block to follow address order
77406ac6ef soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe
18b2ec361a firmware: ti_sci: Fix compilation failure when CONFIG_TI_SCI_PROTOCOL is not defined
8395a17ef6 arm64: dts: qcom: sm8150: Correct TCS configuration for apps rsc
d19248e23f arm64: dts: qcom: sdm845: fix microphone bias properties and values
2042c6fbfb soc: qcom: aoss: remove spurious IRQF_ONESHOT flags
5a990a65d4 soc: qcom: ocmem: Fix missing put_device() call in of_get_ocmem
b5d6eba719 soc: qcom: rpmpd: Check for null return of devm_kcalloc
0c11cb8db4 ARM: dts: qcom: ipq4019: fix sleep clock
22474dfd0c firmware: qcom: scm: Remove reassignment to desc following initializer
bf4bad1114 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 build
ec1c20b02a video: fbdev: controlfb: Fix set but not used warnings
f8bf19f7f3 video: fbdev: matroxfb: set maxvram of vbG200eW to the same as vbG200 to avoid black screen
3187a1d4d5 media: aspeed: Correct value for h-total-pixels
245561612b media: hantro: Fix overfill bottom register field name
032b141a91 media: meson: vdec: potential dereference of null pointer
d3e5106c67 media: coda: Fix missing put_device() call in coda_get_vdoa_data
c9f4586d99 ASoC: generic: simple-card-utils: remove useless assignment
2c357e0277 ASoC: xilinx: xlnx_formatter_pcm: Handle sysclk setting
712dd2ac26 media: bttv: fix WARNING regression on tunerless devices
bc2573abc6 media: mtk-vcodec: potential dereference of null pointer
8a83731a09 media: v4l2-mem2mem: Apply DST_QUEUE_OFF_BASE on MMAP buffers across ioctls
c76188715d media: staging: media: zoran: fix usage of vb2_dma_contig_set_max_seg_size
f622bd0758 kunit: make kunit_test_timeout compatible with comment
9e63bcb71d selftests, x86: fix how check_cc.sh is being invoked
d2c53e77b0 f2fs: fix compressed file start atomic write may cause data corruption
1c4d94e4f0 f2fs: compress: remove unneeded read when rewrite whole cluster
2c4741d1b0 btrfs: fix unexpected error path when reflinking an inline extent
3ef3bc75cd f2fs: fix to avoid potential deadlock
85cc399b65 nfsd: more robust allocation failure handling in nfsd_file_cache_init
1a11a87374 f2fs: fix missing free nid in f2fs_handle_failed_inode
c0cffc1fb3 perf/x86/intel/pt: Fix address filter config for 32-bit kernel
13c8e37e1f perf/core: Fix address filter parser for multiple filters
a9faa5beda rseq: Remove broken uapi field layout on 32-bit little endian
f0250e05e5 rseq: Optimise rseq_get_rseq_cs() and clear_rseq_cs()
ecc17de4b9 sched/core: Export pelt_thermal_tp
40732cab51 sched/debug: Remove mpol_get/put and task_lock/unlock from sched_show_numa
2b5d41bcf2 f2fs: fix to enable ATGC correctly via gc_idle sysfs interface
9d92be1a09 watch_queue: Actually free the watch
5ae75b4ed3 watch_queue: Fix NULL dereference in error cleanup
509565faed io_uring: terminate manual loop iterator loop correctly for non-vecs
44a77e52bd clocksource: acpi_pm: fix return value of __setup handler
d678f002f0 hwmon: (pmbus) Add Vin unit off handling
7ca525b4cc hwrng: nomadik - Change clk_disable to clk_disable_unprepare
e4c777fd8c amba: Make the remove callback return void
1c6ac39763 vfio: platform: simplify device removal
c93017c8d5 crypto: ccree - Fix use after free in cc_cipher_exit()
78622926fe crypto: ccp - ccp_dmaengine_unregister release dma channels
9eeee6f684 ACPI: APEI: fix return value of __setup handlers
0b45bf1659 clocksource/drivers/timer-of: Check return value of of_iomap in timer_of_base_init()
b33c753cff clocksource/drivers/timer-microchip-pit64b: Use notrace
db9d00461b clocksource/drivers/exynos_mct: Handle DTS with higher number of interrupts
d4e13c4a6f clocksource/drivers/exynos_mct: Refactor resources allocation
42d331a279 clocksource/drivers/timer-ti-dm: Fix regression from errata i940 fix
aedff03da4 crypto: vmx - add missing dependencies
51939008ca crypto: amlogic - call finalize with bh disabled
24857d87cc crypto: sun8i-ce - call finalize with bh disabled
bf4814d58b crypto: sun8i-ss - call finalize with bh disabled
a4067ccb97 hwrng: atmel - disable trng on failure path
b7940bef6f spi: spi-zynqmp-gqspi: Handle error for dma_set_mask
3928a04bc6 PM: suspend: fix return value of __setup handler
052a218db0 PM: hibernate: fix __setup handler error handling
0b5924a14d block: don't delete queue kobject before its children
40b288a861 nvme: cleanup __nvme_check_ids
32c4db2a52 hwmon: (sch56xx-common) Replace WDOG_ACTIVE with WDOG_HW_RUNNING
ec8536f701 hwmon: (pmbus) Add mutex to regulator ops
18a18594ae spi: pxa2xx-pci: Balance reference count for PCI DMA device
55259cb374 crypto: ccree - don't attempt 0 len DMA mappings
d788ad472f EVM: fix the evm= __setup handler return value
a137f93ae5 audit: log AUDIT_TIME_* records only from rules
5e9501e60b crypto: rockchip - ECB does not need IV
8265bea7d8 selftests/x86: Add validity check and allow field splitting
f7d9249af3 arm64/mm: avoid fixmap race condition when create pud mapping
99a8dfce7c spi: tegra114: Add missing IRQ check in tegra_spi_probe
71dba67138 thermal: int340x: Check for NULL after calling kmemdup()
8e57117142 crypto: mxs-dcp - Fix scatterlist processing
ec1d372974 crypto: authenc - Fix sleep in atomic context in decrypt_tail
fdfaafeb4b crypto: sun8i-ss - really disable hash on A80
19693838c8 hwrng: cavium - HW_RANDOM_CAVIUM should depend on ARCH_THUNDER
bc20294cc8 hwrng: cavium - Check health status while reading random data
962d1f59d5 selinux: check return value of sel_make_avc_files
1ae9b020dd regulator: qcom_smd: fix for_each_child.cocci warnings
c20975954e PCI: xgene: Revert "PCI: xgene: Fix IB window setup"
0f56f24015 PCI: pciehp: Clear cmd_busy bit in polling mode
89ddcc8191 drm/i915/gem: add missing boundary check in vm_access
b84857c06e drm/i915/opregion: check port number bounds for SWSCI display power state
88975951d4 brcmfmac: pcie: Fix crashes due to early IRQs
1cbcf93a93 brcmfmac: pcie: Replace brcmf_pcie_copy_mem_todev with memcpy_toio
f3820ddaf4 brcmfmac: pcie: Release firmwares in the brcmf_pcie_setup error path
daa07f2902 brcmfmac: firmware: Allocate space for default boardrev in nvram
1dd031eb99 xtensa: fix xtensa_wsr always writing 0
dac518bbce xtensa: fix stop_machine_cpuslocked call in patch_text
20f974dce5 media: davinci: vpif: fix unbalanced runtime PM enable
7c9b915b94 media: davinci: vpif: fix unbalanced runtime PM get
cde90e8291 media: gpio-ir-tx: fix transmit with long spaces on Orange Pi PC
785ffce44a DEC: Limit PMAX memory probing to R3k systems
8dde2296ec bcache: fixup multiple threads crash
37d2b4fa5c crypto: rsa-pkcs1pad - fix buffer overread in pkcs1pad_verify_complete()
b89fb8b882 crypto: rsa-pkcs1pad - restore signature length check
f38c318068 crypto: rsa-pkcs1pad - correctly get hash from source scatterlist
c1db3f44f2 crypto: rsa-pkcs1pad - only allow with rsa
27a6f495b6 exec: Force single empty string when argv is empty
b02d33171d lib/raid6/test: fix multiple definition linking error
bf057eac9a thermal: int340x: Increase bitmap size
86a926c3f0 pstore: Don't use semaphores in always-atomic-context code
b26f400e4f carl9170: fix missing bit-wise or operator for tx_params
3aef4df6e1 mgag200 fix memmapsl configuration in GCTL6 register
ef1df91685 ARM: dts: exynos: add missing HDMI supplies on SMDK5420
3cde68a1eb ARM: dts: exynos: add missing HDMI supplies on SMDK5250
5ac205c414 ARM: dts: exynos: fix UART3 pins configuration in Exynos5250
7187c9beb7 ARM: dts: at91: sama5d2: Fix PMERRLOC resource size
2ca2a5552a video: fbdev: atari: Atari 2 bpp (STe) palette bugfix
72af881092 video: fbdev: sm712fb: Fix crash in smtcfb_read()
ba09b04173 drm/edid: check basic audio support on CEA extension block
ce1927b8cf block: don't merge across cgroup boundaries if blkcg is enabled
6e0d24598c block: limit request dispatch loop duration
958e9b56de mailbox: tegra-hsp: Flush whole channel
f67a140078 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 error
a1e6884b2d ext4: fix ext4_fc_stats trace point
c119fb65f6 coredump: Also dump first pages of non-executable ELF libraries
7ad5ccc3da ACPI: properties: Consistently return -ENOENT if there are no more references
ef3a87e0c4 arm64: dts: ti: k3-j7200: Fix gic-v3 compatible regs
18864e8b83 arm64: dts: ti: k3-j721e: Fix gic-v3 compatible regs
e85fa9f4e9 arm64: dts: ti: k3-am65: Fix gic-v3 compatible regs
7ce550a01b arm64: signal: nofpsimd: Do not allocate fp/simd context when not available
210e7b43d4 udp: call udp_encap_enable for v6 sockets when enabling encap
e1a58498ef powerpc/kvm: Fix kvm_use_magic_page
d72866a7f5 can: isotp: sanitize CAN ID checks in isotp_bind()
fde8c5cad0 drbd: fix potential silent data corruption
b101e74f9a dm integrity: set journal entry unused when shrinking device
d5d5804acc mm/kmemleak: reset tag when compare object pointer
bc2f58b8e4 mm,hwpoison: unmap poisoned page before invalidation
608c501d70 Revert "mm: madvise: skip unmapped vma holes passed to process_madvise"
8b354e3032 mm: madvise: return correct bytes advised with process_madvise
928c06c114 mm: madvise: skip unmapped vma holes passed to process_madvise
51f7557c3c ALSA: hda/realtek: Fix audio regression on Mi Notebook Pro 2020
9017201e8d ALSA: pcm: Fix potential AB/BA lock with buffer_mutex and mmap_lock
7b7a03d8b5 ALSA: hda: Avoid unsol event during RPM suspending
a55e2d7423 ALSA: cs4236: fix an incorrect NULL check on list iterator
edefc4b2a8 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 KASAN
24b9b8e95c riscv: Fix fill_callchain return value
0f8c0bd0a4 qed: validate and restrict untrusted VFs vlan promisc mode
a3af3d4319 qed: display VF trust config
aa28075f06 scsi: libsas: Fix sas_ata_qc_issue() handling of NCQ NON DATA commands
4bcefc78c8 mempolicy: mbind_range() set_policy() after vma_merge()
fa37c17143 mm: invalidate hwpoison page cache page in fault path
7188e7c96f mm/pages_alloc.c: don't create ZONE_MOVABLE beyond the end of a node
51dbb5e36d jffs2: fix memory leak in jffs2_scan_medium
607d3aab73 jffs2: fix memory leak in jffs2_do_mount_fs
7bb7428dd7 jffs2: fix use-after-free in jffs2_clear_xattr_subsystem
b417f9c505 can: ems_usb: ems_usb_start_xmit(): fix double dev_kfree_skb() in error path
3a21ee89bc mtd: rawnand: protect access to rawnand devices while in suspend
145a63201d spi: mxic: Fix the transmit path
be22ebe79e pinctrl: samsung: drop pin banks references on error paths
b97b305656 remoteproc: Fix count check in rproc_coredump_write()
784630df17 f2fs: fix to do sanity check on .cp_pack_total_block_count
e58ee6bd93 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 systems
65e21cc042 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 update
a1df8e60f2 firmware: stratix10-svc: add missing callback parameter on RSU
e94f5fbe7a Documentation: update stable tree link
f4bab992ee Documentation: add link to stable release candidate tree
10ee5662d5 KEYS: fix length validation in keyctl_pkey_params_get_2()
5a41a3033a ptrace: Check PTRACE_O_SUSPEND_SECCOMP permission on PTRACE_SEIZE
2775d8e364 clk: uniphier: Fix fixed-rate initialization
25cd5872d9 greybus: svc: fix an error handling bug in gb_svc_hello()
9f0cd81174 iio: inkern: make a best effort on offset calculation
19e533452f iio: inkern: apply consumer scale when no channel scale is available
e10dbe7f6a iio: inkern: apply consumer scale on IIO_VAL_INT cases
9f4fffc2ab iio: afe: rescale: use s64 for temporary scale calculations
9cd1b02655 coresight: Fix TRCCONFIGR.QE sysfs interface
7b478cb67b mei: avoid iterator usage outside of list_for_each_entry
ec8975417d 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() adjustable
3a820d1ca1 xhci: fix runtime PM imbalance in USB2 resume
c41387f96a xhci: fix garbage USBSTS being logged in some cases
1e0f089f70 USB: usb-storage: Fix use of bitfields for hardware data in ene_ub6250.c
39a70732eb virtio-blk: Use blk_validate_block_size() to validate block size
290e05f346 tpm: fix reference counting for struct tpm_chip
fcd3c31dd1 iommu/iova: Improve 32-bit free space estimate
68c80088f5 locking/lockdep: Avoid potential access of invalid memory in lock_class
f19d8dfad6 net: dsa: microchip: add spi_device_id tables
8d3f4ad430 af_key: add __GFP_ZERO flag for compose_sadb_supported in function pfkey_register
ef1a6ab36d Input: zinitix - do not report shadow fingers
21680aabc4 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 interrupt
102d7f6c2e spi: Fix invalid sgs value
a4f4ce3dee gpio: Revert regression in sysfs-gpio (gpiolib.c)
fc9a35627c ethernet: sun: Free the coherent when failing in probing
3c84471925 tools/virtio: fix virtio_test execution
6d98dc2369 vdpa/mlx5: should verify CTRL_VQ feature exists for MQ
c97ffb4184 virtio_console: break out of buf poll on remove
0c00d38337 ARM: mstar: Select HAVE_ARM_ARCH_TIMER
a7e75e5ed4 xfrm: fix tunnel model fragmentation behavior
e05ae08ea8 HID: logitech-dj: add new lightspeed receiver id
ff919a7ad9 netdevice: add the case if dev is NULL
c4dc584a2d hv: utils: add PTP_1588_CLOCK to Kconfig to fix build
d136a2574a USB: serial: simple: add Nokia phone driver
38e3d48ffe USB: serial: pl2303: add IBM device IDs
d4d975e792 swiotlb: fix info leak with DMA_FROM_DEVICE
414e6c8e94 ANDROID: fix up abi issue with struct snd_pcm_runtime
51790ed529 Merge 5.10.109 into android12-5.10-lts
d9c5818a0b Linux 5.10.109
163960a7de llc: only change llc->dev when bind() succeeds
2b5a6d7714 nds32: fix access_ok() checks in get/put_user
c064268eb8 wcn36xx: Differentiate wcn3660 from wcn3620
95193d12f1 tpm: use try_get_ops() in tpm-space.c
5d3ff9542a mac80211: fix potential double free on mesh join
fcc9797d0d rcu: Don't deboost before reporting expedited quiescent state
87f7ed7c36 Revert "ath: add support for special 0x0 regulatory domain"
c971e6a1c8 crypto: qat - disable registration of algorithms
9f4e64611e ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU
0b2ffba2de ACPI: battery: Add device HID and quirk for Microsoft Surface Go 3
2724b72b22 ACPI / x86: Work around broken XSDT on Advantech DAC-BJ01 board
2c74374c2e netfilter: nf_tables: initialize registers in nft_do_chain()
eb1ba8d1c3 drivers: net: xgene: Fix regression in CRC stripping
a2368d10b7 ALSA: pci: fix reading of swapped values from pcmreg in AC97 codec
6936d2ecf8 ALSA: cmipci: Restore aux vol on suspend/resume
cbd27127af ALSA: usb-audio: Add mute TLV for playback volumes on RODE NT-USB
0ae81ef3ea ALSA: pcm: Add stream lock during PCM reset ioctl operations
b560d670c8 ALSA: pcm: Fix races among concurrent prealloc proc writes
a38440f006 ALSA: pcm: Fix races among concurrent prepare and hw_params/hw_free calls
8527c8f052 ALSA: pcm: Fix races among concurrent read/write and buffer changes
0f6947f5f5 ALSA: pcm: Fix races among concurrent hw_params and hw_free calls
014c81dfb3 ALSA: hda/realtek: Add quirk for ASUS GA402
05256f3fd6 ALSA: hda/realtek - Fix headset mic problem for a HP machine with alc671
ca8247b4df ALSA: hda/realtek: Add quirk for Clevo NP50PNJ
26fe8f3103 ALSA: hda/realtek: Add quirk for Clevo NP70PNJ
80eab86a86 ALSA: usb-audio: add mapping for new Corsair Virtuoso SE
5ce74ff705 ALSA: oss: Fix PCM OSS buffer allocation overflow
db03abd0da ASoC: sti: Fix deadlock via snd_pcm_stop_xrun() call
571df3393f llc: fix netdevice reference leaks in llc_ui_bind()
56dc187b35 staging: fbtft: fb_st7789v: reset display before initialization
351493858e tpm: Fix error handling in async work
ea21245cdc cgroup-v1: Correct privileges check in release_agent writes
824a950c3f cgroup: Use open-time cgroup namespace for process migration perm checks
f28364fe38 cgroup: Allocate cgroup_file_ctx for kernfs_open_file->priv
9eeaa2d7d5 exfat: avoid incorrectly releasing for root inode
ae8ec5eabb net: ipv6: fix skb_over_panic in __ip6_append_data
25c23fe40e nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION
ab2d1d40a1 Revert "vsock: each transport cycles only on its own sockets"
644c989f41 Merge 5.10.108 into android12-5.10-lts
9940314ebf Linux 5.10.108
37119edab8 Revert "selftests/bpf: Add test for bpf_timer overwriting crash"
9248694dac esp: Fix possible buffer overflow in ESP transformation
96340cdd55 smsc95xx: Ignore -ENODEV errors when device is unplugged
e27b51af54 net: usb: Correct reset handling of smsc95xx
b54daeafc1 net: usb: Correct PHY handling of smsc95xx
204d38dc6a perf symbols: Fix symbol size calculation condition
f0d43d22d2 Input: aiptek - properly check endpoint type
98e7a654a5 scsi: mpt3sas: Page fault in reply q processing
10a805334a usb: usbtmc: Fix bug in pipe direction for control transfers
00bdd9bf1a usb: gadget: Fix use-after-free bug by not setting udc->dev.driver
28bc026739 usb: gadget: rndis: prevent integer overflow in rndis_set_response()
2c010c61e6 arm64: fix clang warning about TRAMP_VALIAS
277b7f6394 net: mscc: ocelot: fix backwards compatibility with single-chain tc-flower offload
2550afba2a net: bcmgenet: skip invalid partial checksums
bf5b7aae86 bnx2x: fix built-in kernel driver load failure
c07fdba12f net: phy: mscc: Add MODULE_FIRMWARE macros
ba50073cf4 net: dsa: Add missing of_node_put() in dsa_port_parse_of
a630ad5e8b net: handle ARPHRD_PIMREG in dev_is_mac_header_xmit()
336b6be6ad drm/panel: simple: Fix Innolux G070Y2-L01 BPP settings
9d45aec02f drm/imx: parallel-display: Remove bus flags check in imx_pd_bridge_atomic_check()
9b763ceda6 hv_netvsc: Add check for kvmalloc_array
09a7264fb0 atm: eni: Add check for dma_map_single
70b7b3c055 net/packet: fix slab-out-of-bounds access in packet_recvmsg()
169add82d2 net: phy: marvell: Fix invalid comparison in the resume and suspend functions
01fac1ca8a esp6: fix check on ipv6_skip_exthdr's return value
d9fe590970 vsock: each transport cycles only on its own sockets
ac7dd60946 efi: fix return value of __setup handlers
fa3aa103e7 mm: swap: get rid of livelock in swapin readahead
df3301dc60 ocfs2: fix crash when initialize filecheck kobj fails
0f9b7b8df1 crypto: qcom-rng - ensure buffer for generate is completely filled
9a559b8868 Merge branch 'android12-5.10' into `android12-5.10-lts`
8646e92696 Merge 5.10.107 into android12-5.10-lts
4c8814277b Linux 5.10.107
7a0d13ef67 arm64: kvm: Fix copy-and-paste error in bhb templates for v5.10 stable
dc1163203a io_uring: return back safer resurrect
8fdaab341b kselftest/vm: fix tests build with old libc
2490695ffd sfc: extend the locking on mcdi->seqno
2fad5b6948 tcp: make tcp_read_sock() more robust
3f9a8f8a95 nl80211: Update bss channel on channel switch for P2P_CLIENT
0ba557d330 drm/vrr: Set VRR capable prop only if it is attached to connector
9a8e4a5c5b iwlwifi: don't advertise TWT support
c5ea0221c8 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 ready
ebe106eac6 ARM: 9178/1: fix unmet dependency on BITREVERSE for HAVE_ARCH_BITREVERSE
e8ad9ecc40 MIPS: smp: fill in sibling and core maps earlier
8c70b9b470 mac80211: refuse aggregations sessions before authorized
d687d7559e ARM: dts: rockchip: fix a typo on rk3288 crypto-controller
6f0a94931c ARM: dts: rockchip: reorder rk322x hmdi clocks
6493c6aa8b arm64: dts: agilex: use the compatible "intel,socfpga-agilex-hsotg"
c5c8c649fe arm64: dts: rockchip: reorder rk3399 hdmi clocks
f7f062919f arm64: dts: rockchip: fix rk3399-puma eMMC HS400 signal integrity
ca142038a5 xfrm: Fix xfrm migrate issues when address family changes
d8889a445b xfrm: Check if_id in xfrm_migrate
6056abc99b sctp: fix the processing for INIT chunk
bdf0316982 Revert "xfrm: state and policy should fail if XFRMA_IF_ID 0"
5287773dba Merge 5.10.106 into android12-5.10-lts
9e8aa4cec7 Merge 5.10.105 into android12-5.10-lts
55d57b8929 Merge b65b87e718 ("arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting") into android12-5.10-lts
9fddd6c893 UPSTREAM: arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting
531b5ce9dd UPSTREAM: arm64: Use the clearbhb instruction in mitigations
d05b159f71 UPSTREAM: KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
11bed3edbd UPSTREAM: arm64: Mitigate spectre style branch history side channels
9bc6a2543d UPSTREAM: arm64: Do not include __READ_ONCE() block in assembly files
2434153e7e UPSTREAM: KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A
cfa82070a7 UPSTREAM: arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
5195a80d07 UPSTREAM: arm64: Add percpu vectors for EL1
9e96a3d6ae Merge 56cf5326bd ("arm64: entry: Add macro for reading symbol addresses from the trampoline") into android12-5.10-lts
327f1e7d81 Linux 5.10.106
648895da69 watch_queue: Fix filter limit check
8bb5b72dbd ARM: fix Thumb2 regression with Spectre BHB
6b1249db9e ext4: add check to prevent attempting to resize an fs with sparse_super2
b297cf764d x86/traps: Mark do_int3() NOKPROBE_SYMBOL
29f6f35001 x86/boot: Add setup_indirect support in early_memremap_is_setup_data()
b3444e5b64 x86/boot: Fix memremap of setup_indirect structures
24d268130e watch_queue: Make comment about setting ->defunct more accurate
ec03510e0a watch_queue: Fix lack of barrier/sync/lock between post and read
06ab844439 watch_queue: Free the alloc bitmap when the watch_queue is torn down
880acbb718 watch_queue: Fix the alloc bitmap size to reflect notes allocated
e2b52ca498 watch_queue: Fix to always request a pow-of-2 pipe ring size
2039900aad watch_queue: Fix to release page in ->release()
d729d4e99f watch_queue, pipe: Free watchqueue state after clearing pipe ring
573a3228ca virtio: acknowledge all features before access
bf52b627cf virtio: unexport virtio_finalize_features
8bfb959ea2 arm64: dts: marvell: armada-37xx: Remap IO space to bus address 0x0
1ef5fe3dba riscv: Fix auipc+jalr relocation range checks
a69aa422b4 mmc: meson: Fix usage of meson_mmc_post_req()
0c6eeaf8c1 net: macb: Fix lost RX packet wakeup race in NAPI receive
6d9700b445 staging: gdm724x: fix use after free in gdm_lte_rx()
8c1bc04c8c staging: rtl8723bs: Fix access-point mode deadlock
ab5595b45f fuse: fix pipe buffer lifetime for direct_io
f2c52a4baf ARM: Spectre-BHB: provide empty stub for non-config
f1f5d089fc selftests/memfd: clean up mapping in mfd_fail_write
71013d071b selftest/vm: fix map_fixed_noreplace test failure
8d276f10e8 tracing: Ensure trace buffer is at least 4096 bytes large
ae7597b47d ipv6: prevent a possible race condition with lifetimes
8c0c50e9fc 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 NULL
65d4e9d130 hwmon: (pmbus) Clear pmbus fault/warning bits after read
d15c9f6e33 net-sysfs: add check for netdevice being present to speed_show
8c023c3039 spi: rockchip: terminate dma transmission when slave abort
889254f98e spi: rockchip: Fix error in getting num-cs property
4fb9be675b selftests/bpf: Add test for bpf_timer overwriting crash
dc1c2b47b5 net: bcmgenet: Don't claim WOL when its not available
b7e4d9ba2d sctp: fix kernel-infoleak for SCTP sockets
3cf533f120 net: phy: DP83822: clear MISR2 register to disable interrupts
21044e679e gianfar: ethtool: Fix refcount leak in gfar_get_ts_info
3a4cd1c51e gpio: ts4900: Do not set DAT and OE together
7702e7e9e3 selftests: pmtu.sh: Kill tcpdump processes launched by subshell.
2b1c85f565 NFC: port100: fix use-after-free in port100_send_complete
1fdabf2cf4 net/mlx5e: Lag, Only handle events from highest priority multipath entry
f3331bc174 net/mlx5: Fix a race on command flush flow
5f1340963b net/mlx5: Fix size field in bufferx_reg struct
e2201ef32f ax25: Fix NULL pointer dereference in ax25_kill_by_device
cc7679079c net: ethernet: lpc_eth: Handle error for clk_enable
b3e4fcb539 net: ethernet: ti: cpts: Handle error for clk_enable
5e42f90d72 tipc: fix incorrect order of state message data sanity check
979b418b96 ethernet: Fix error handling in xemaclite_of_probe
506d61bc1b ice: Fix curr_link_speed advertised speed
852a9e97d3 ice: Rename a couple of variables
b21ffd5469 ice: Remove unnecessary checker loop
875967aff5 ice: Align macro names to the specification
8c613f7cd3 ice: stop disabling VFs due to PF error responses
d9ee2cbff2 i40e: stop disabling VFs due to PF error responses
965070a2b7 ARM: dts: aspeed: Fix AST2600 quad spi group
96b01b8541 net: dsa: mt7530: fix incorrect test in mt753x_phylink_validate()
ed5bb00d86 drm/sun4i: mixer: Fix P010 and P210 format numbers
93223495bc qed: return status of qed_iov_get_link
5bee2ed050 esp: Fix BEET mode inter address family tunneling on GSO
16386479ef 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 zero
a3d5fcc6cf mISDN: Fix memory leak in dsp_pipeline_build()
f97ad179d1 mISDN: Remove obsolete PIPELINE_DEBUG debugging information
2de76d37d4 tipc: fix kernel panic when enabling bearer
ea3a5e6df5 arm64: dts: armada-3720-turris-mox: Add missing ethernet0 alias
2c6a75ea32 HID: vivaldi: fix sysfs attributes leak
2a18a38cbc clk: qcom: gdsc: Add support to update GDSC transition delay
0d6882dd15 ARM: boot: dts: bcm2711: Fix HVS register range
5c5685cc64 Merge 7ae8127e41 ("arm64: Add HWCAP for self-synchronising virtual counter") into android12-5.10-lts
19787ca417 Merge b19eaa004f ("arm64: Add Cortex-A510 CPU part definition") into android12-5.10-lts
199789221d Merge fc8070a9c5 ("arm64: Add Neoverse-N2, Cortex-A710 CPU part definition") into android-mainline
f14cf58208 UPSTREAM: ARM: fix Thumb2 regression with Spectre BHB
74562af594 UPSTREAM: ARM: Spectre-BHB: provide empty stub for non-config
b0ff4e14b1 UPSTREAM: ARM: fix build warning in proc-v7-bugs.c
f3ec5e6124 UPSTREAM: ARM: Do not use NOCROSSREFS directive with ld.lld
5c1f913cd2 UPSTREAM: ARM: fix co-processor register typo
4c5218ead0 UPSTREAM: ARM: fix build error when BPF_SYSCALL is disabled
7ab81873bd Merge 302754d023 ("ARM: include unprivileged BPF status in Spectre V2 reporting") into android12-5.10-lts
d221da1d6f Merge d04937ae94 ("x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT") into android12-5.10-lts
0773736e48 Merge 5.10.104 into android12-5.10-lts
56d625a4ce ANDROID: fix up rndis ABI breakage
67c781d938 Linux 5.10.105
561e91e5fe 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 specified
c4b16486d6 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 status
f6690dd944 xen/netfront: don't use gnttab_query_foreign_access() for mapped status
96219af4e5 xen/blkfront: don't use gnttab_query_foreign_access() for mapped status
3d81e85f30 xen/grant-table: add gnttab_try_end_foreign_access()
5c600371b8 xen/xenbus: don't let xenbus_grant_ring() remove grants in error case
b65b87e718 arm64: proton-pack: Include unprivileged eBPF status in Spectre v2 mitigation reporting
90f59cc2f2 ARM: fix build warning in proc-v7-bugs.c
551717cf3b arm64: Use the clearbhb instruction in mitigations
8c4192d126 ARM: Do not use NOCROSSREFS directive with ld.lld
38c26bdb3c KVM: arm64: Allow SMCCC_ARCH_WORKAROUND_3 to be discovered and migrated
1749b553d7 ARM: fix co-processor register typo
e192c8baa6 arm64: Mitigate spectre style branch history side channels
a330601c63 ARM: fix build error when BPF_SYSCALL is disabled
192023e6ba KVM: arm64: Allow indirect vectors to be used without SPECTRE_V3A
13a807a0a0 arm64: proton-pack: Report Spectre-BHB vulnerabilities as part of Spectre-v2
56cf5326bd arm64: entry: Add macro for reading symbol addresses from the trampoline
1f63326a52 arm64: Add percpu vectors for EL1
3f21b7e355 arm64: entry: Add vectors that have the bhb mitigation sequences
4937955296 arm64: entry: Add non-kpti __bp_harden_el1_vectors for mitigations
26211252c1 arm64: entry: Allow the trampoline text to occupy multiple pages
73ee716a1f arm64: entry: Make the kpti trampoline's kpti sequence optional
8c691e5308 arm64: entry: Move trampoline macros out of ifdef'd section
e550250632 arm64: entry: Don't assume tramp_vectors is the start of the vectors
5275fb5ea5 arm64: entry: Allow tramp_alias to access symbols after the 4K boundary
bda8960281 arm64: entry: Move the trampoline data page before the text page
d93b25a665 arm64: entry: Free up another register on kpti's tramp_exit path
7ae8127e41 arm64: Add HWCAP for self-synchronising virtual counter
b19eaa004f arm64: Add Cortex-A510 CPU part definition
fc8070a9c5 arm64: Add Neoverse-N2, Cortex-A710 CPU part definition
5242d6971e arm64: entry: Make the trampoline cleanup optional
8617156931 arm64: Add Cortex-X2 CPU part definition
7048a21086 arm64: spectre: Rename spectre_v4_patch_fw_mitigation_conduit
dc5b630c0d arm64: entry.S: Add ventry overflow sanity checks
97d8bdf331 arm64: cpufeature: add HWCAP for FEAT_RPRES
162aa002ec arm64: cpufeature: add HWCAP for FEAT_AFP
dbcfa98539 arm64: add ID_AA64ISAR2_EL1 sys register
302754d023 ARM: include unprivileged BPF status in Spectre V2 reporting
d04937ae94 x86/speculation: Warn about eIBRS + LFENCE + Unprivileged eBPF + SMT
f3c12fc53e arm64: cputype: Add CPU implementor & types for the Apple M1 cores
3f9c958e35 ARM: Spectre-BHB workaround
cc9e3e55bd x86/speculation: Warn about Spectre v2 LFENCE mitigation
29d9b56df1 ARM: use LOADADDR() to get load address of sections
e335384560 x86/speculation: Update link to AMD speculation whitepaper
46deb22468 ARM: early traps initialisation
2fdf67a1d2 x86/speculation: Use generic retpoline by default on AMD
b7f1e73c4d ARM: report Spectre v2 status through sysfs
afc2d635b5 x86/speculation: Include unprivileged eBPF status in Spectre v2 mitigation reporting
071e8b69d7 Documentation/hw-vuln: Update spectre doc
a6a119d647 x86/speculation: Add eIBRS + Retpoline options
f38774bb6e x86/speculation: Rename RETPOLINE_AMD to RETPOLINE_LFENCE
206cfe2dac x86,bugs: Unconditionally allow spectre_v2=retpoline,amd
97581b56b5 Linux 5.10.104
dbbe09d953 hamradio: fix macro redefine warning
dcd03efd7e Revert "xfrm: xfrm_state_mtu should return at least 1280 for ipv6"
292e1c88b8 btrfs: add missing run of delayed items after unlink during log replay
41712c5fa5 btrfs: qgroup: fix deadlock between rescan worker and remove qgroup
6e0319e770 btrfs: fix lost prealloc extents beyond eof after full fsync
827172ffa9 tracing: Fix return value of __setup handlers
78059b1cfc tracing/histogram: Fix sorting on old "cpu" value
0e188fde82 HID: add mapping for KEY_ALL_APPLICATIONS
f276ea5035 HID: add mapping for KEY_DICTATE
3b8f2a7aed Input: samsung-keypad - properly state IOMEM dependency
a621ae6394 Input: elan_i2c - fix regulator enable count imbalance after suspend/resume
1397bbcd81 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 regression
f5e496ef73 nl80211: Handle nla_memdup failures in handle_nan_filter
64e4305a03 iavf: Refactor iavf state machine tracking
e6bc597fbc net: chelsio: cxgb3: check the return value of pci_find_capability()
320980b249 ibmvnic: complete init_done on transport events
86027004bb ARM: tegra: Move panels to AUX bus
fbb810825a soc: fsl: qe: Check of ioremap return value
2824f6939e soc: fsl: guts: Add a missing memory allocation failure check
3afe488d5c soc: fsl: guts: Revert commit 3c0d64e867
4470913079 ARM: dts: Use 32KiHz oscillator on devkit8000
298f6fae54 ARM: dts: switch timer config to common devkit8000 devicetree
8b20c1999d s390/extable: fix exception table sorting
49aa9c9c7f memfd: fix F_SEAL_WRITE after shmem huge page allocated
6acbc88752 ibmvnic: free reset-work-item when flushing
9d8a11d74d igc: igc_write_phy_reg_gpy: drop premature return
223744f521 pinctrl: sunxi: Use unique lockdep classes for IRQs
2851b76e5f selftests: mlxsw: tc_police_scale: Make test more robust
85bf489c5c ARM: 9182/1: mmu: fix returns from early_param() and __setup() functions
6b63410490 ARM: Fix kgdb breakpoint for Thumb2
fefe4cb4a6 igc: igc_read_phy_reg_gpy: drop premature return
0632854fb1 arm64: dts: rockchip: Switch RK3399-Gru DP to SPDIF output
43eaf1b178 can: gs_usb: change active_channels's type from atomic_t to u8
daaed6ced8 ASoC: cs4265: Fix the duplicated control name
8b8ac465bf firmware: arm_scmi: Remove space in MODULE_ALIAS name
667df6fe3e 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 adapter
6e0f986032 net: sxgbe: fix return value of __setup handler
e1a82db1eb iavf: Fix missing check for running netdev
c9a066fe45 mac80211: treat some SAE auth steps as final
e6d7f57f91 net: stmmac: fix return value of __setup handler
fa65989a48 mac80211: fix forwarded mesh frames AC & queue selection
dcc3423c1d ia64: ensure proper NUMA distance and possible map initialization
1312ef5ad0 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 sort
05ae1f0fe9 ice: fix concurrent reset and removal of VFs
41edeeaae5 ice: Fix race conditions between virtchnl handling and VF ndo ops
0c145262ac rcu/nocb: Fix missed nocb_timer requeue
9bb7237cc7 net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error cause by server
d7eb662625 net/smc: fix unexpected SMC_CLC_DECL_ERR_REGRMB error generated by client
2e8d465b83 net/smc: fix connection leak
6a8a4dc2a2 net: dcb: flush lingering app table entries for unregistered devices
f4c63b24de net: ipv6: ensure we call ipv6_mc_down() at most once
a9c4a74ad5 batman-adv: Don't expect inter-netns unique iflink indices
3dae11d21f batman-adv: Request iflink once in batadv_get_real_netdevice
dcf10d78ff batman-adv: Request iflink once in batadv-on-batadv check
81f817f3e5 netfilter: nf_queue: handle socket prefetch
4d05239203 netfilter: nf_queue: fix possible use-after-free
3b9ba964f7 netfilter: nf_queue: don't assume sk is full socket
4e178ed14b net: fix up skbs delta_truesize in UDP GRO frag_list
eb5e444fe3 e1000e: Correct NVM checksum verification flow
b53d4bfd1a xfrm: enforce validity of offload input flags
2f0e6d80e8 xfrm: fix the if_id check in changelink
24efaae03b bpf, sockmap: Do not ignore orig_len parameter
8b0142c414 netfilter: fix use-after-free in __nf_register_net_hook()
4952faa77d xfrm: fix MTU regression
e93f2be33d mm: Consider __GFP_NOWARN flag for oversized kvmalloc() calls
912186db09 ntb: intel: fix port config status offset for SPR
1c0b51e62a thermal: core: Fix TZ_GET_TRIP NULL pointer dereference
a1753d5c29 xen/netfront: destroy queues before real_num_tx_queues is zeroed
ce41d80391 drm/i915: s/JSP2/ICP2/ PCH
61a895da48 iommu/amd: Recover from event log overflow
6951a58881 ASoC: ops: Shift tested values in snd_soc_put_volsw() by +min
dd9dd24fd7 riscv: Fix config KASAN && DEBUG_VIRTUAL
7211aab288 riscv: Fix config KASAN && SPARSEMEM && !SPARSE_VMEMMAP
00fb385f0a riscv/efi_stub: Fix get_boot_hartid_from_fdt() return value
336872601c ALSA: intel_hdmi: Fix reference to PCM buffer address
e57dfaf66f tracing: Add ustring operation to filtering string pointers
4a9d2390f3 drm/amdgpu: check vm ready by amdgpu_vm->evicting flag
67e25eb1b4 ata: pata_hpt37x: fix PCI clock detection
335f11ff74 serial: stm32: prevent TDR register overwrite when sending x_char
c999c5927e tracing: Add test for user space strings when filtering on string pointers
db36a94ed6 exfat: fix i_blocks for files truncated over 4 GiB
1b810d5cb6 exfat: reuse exfat_inode_info variable instead of calling EXFAT_I()
fdd64084e4 usb: gadget: clear related members when goto fail
c13159a588 usb: gadget: don't release an existing dev->buf
00d5ac05af net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990
16f903afba i2c: qup: allow COMPILE_TEST
57c333ad8c i2c: cadence: allow COMPILE_TEST
9d6285e632 dmaengine: shdma: Fix runtime PM imbalance on error
37b06d5ebf selftests/seccomp: Fix seccomp failure by adding missing headers
df9db1a2af 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 HW
5d4b00e053 Input: clear BTN_RIGHT/MIDDLE on buttonpads
6e7015d982 regulator: core: fix false positive in regulator_late_cleanup()
467d664e5f ASoC: rt5682: do not block workqueue if card is unbound
0b050b7a0d ASoC: rt5668: do not block workqueue if card is unbound
11956c6eeb i2c: bcm2835: Avoid clock stretching timeouts
13f0ea8d11 mac80211_hwsim: initialize ieee80211_tx_info at hw_scan_work
46f6d66219 mac80211_hwsim: report NOACK frames in tx_status
d172937367 Merge 5.10.103 into android12-5.10-lts
915a747ac7 Linux 5.10.103
78706b051a memblock: use kfree() to release kmalloced memblock regions
4185b788d3 gpio: tegra186: Fix chip_data type confusion
bb2e0a7723 tty: n_gsm: fix deadlock in gsmtty_open()
e4c8cb95d0 tty: n_gsm: fix wrong tty control line for flow control
1f0641dd0b tty: n_gsm: fix NULL pointer access due to DLCI release
1e35cb9e12 tty: n_gsm: fix proper link termination after failed open
90b47e617f tty: n_gsm: fix encoding of control signal octet bit DV
9e2dbc31e3 riscv: fix oops caused by irqsoff latency tracer
e098933866 thermal: int340x: fix memory leak in int3400_notify()
5b1cef5798 RDMA/cma: Do not change route.addr.src_addr outside state checks
8fe4da5524 driver core: Free DMA range map when device is released
2148247643 xhci: Prevent futile URB re-submissions due to incorrect return value.
0b0a229da1 xhci: re-initialize the HC during resume if HCE was set
328faee6d4 usb: dwc3: gadget: Let the interrupt handler disable bottom halves.
e57bdee866 usb: dwc3: pci: Fix Bay Trail phy GPIO mappings
99b2425d91 usb: dwc2: drd: fix soft connect when gadget is unconfigured
c786688037 USB: serial: option: add Telit LE910R1 compositions
220ba174f1 USB: serial: option: add support for DW5829e
3a1dd56e56 tracefs: Set the group ownership in apply_options() not parse_options()
bfa8ffbaaa USB: gadget: validate endpoint index for xilinx udc
4ce247af3f usb: gadget: rndis: add spinlock for rndis response list
ddc254fc88 Revert "USB: serial: ch341: add new Product ID for CH341A"
d3fce1b6bd ata: pata_hpt37x: disable primary channel on HPT371
18701d8afa sc16is7xx: Fix for incorrect data being transmitted
d5ddd7343a iio: Fix error handling for PM
eabcc609cb iio: imu: st_lsm6dsx: wait for settling time in st_lsm6dsx_read_oneshot
b8d411a962 iio: adc: ad7124: fix mask used for setting AIN_BUFP & AIN_BUFM bits
1aa12ecfdc iio: adc: men_z188_adc: Fix a resource leak in an error handling path
afbeee13be tracing: Have traceon and traceoff trigger honor the instance
99eb8d6941 RDMA/ib_srp: Fix a deadlock
a7ab53d3c2 configfs: fix a race in configfs_{,un}register_subsystem()
0ecd3e35d7 RDMA/rtrs-clt: Move free_permit from free_clt to rtrs_clt_close
b0ecf9e594 RDMA/rtrs-clt: Kill wait_for_inflight_permits
8260f1800f RDMA/rtrs-clt: Fix possible double free in error case
dc64aa4c7d regmap-irq: Update interrupt clear register for proper reset
2efece1368 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 packets
be55d3e76c net/mlx5: Fix wrong limitation of metadata match on ecpf
8d617110d7 net/mlx5: Fix possible deadlock on rule deletion
1c59128955 udp_tunnel: Fix end of loop test in udp_tunnel_nic_unregister()
a184f4dd9b surface: surface3_power: Fix battery readings on batteries without a serial number
91f56a8527 net/smc: Use a mutex for locking "struct smc_pnettable"
7e9880e81d netfilter: nf_tables: fix memory leak during stateful obj update
af4bc921d3 nfp: flower: Fix a potential leak in nfp_tunnel_add_shared_mac()
58a6d5f24f net: Force inlining of checksum functions in net/checksum.h
550d98ab30 net: ll_temac: check the return value of devm_kmalloc()
0fc1847359 net/sched: act_ct: Fix flow table lookup after ct clear or switching zones
bc8f768af3 net/mlx5e: Fix wrong return value on ioctl EEPROM query failure
fd020eaaa2 drm/edid: Always set RGB444
1df9d552fe openvswitch: Fix setting ipv6 fields causing hw csum failure
dac2490d9e gso: do not skip outer ip header in case of ipip and net_failover
b692d5dc6f tipc: Fix end of loop tests for list_for_each_entry()
c5722243d0 net: __pskb_pull_tail() & pskb_carve_frag_list() drop_monitor friends
4a93c65946 io_uring: add a schedule point in io_add_buffers()
7ef94bfb08 bpf: Add schedule points in batch ops
4f5d47e6b4 selftests: bpf: Check bpf_msg_push_data return value
d0caa7218d bpf: Do not try bpf_msg_push_data with len 0
962b2a3188 hwmon: Handle failure to register sensor with thermal zone correctly
d8b78314c5 bnxt_en: Fix active FEC reporting to ethtool
7e1eae5d1a bnx2x: fix driver load from initrd
51e96061c6 perf data: Fix double free in perf_session__delete()
5419b5be88 ping: remove pr_err from ping_lookup
5da17865c7 optee: use driver internal tee_context for some rpc
eb35461384 tee: export teedev_open() and teedev_close_context()
bae7fc6f0d x86/fpu: Correct pkru/xstate inconsistency
68f19845f5 netfilter: nf_tables_offload: incorrect flow offload action array size
69560efa00 CDC-NCM: avoid overflow in sanity checking
2aeba1ea7c USB: zaurus: support another broken Zaurus
4f5f5411f0 sr9700: sanity check for packet length
55eec5c630 drm/i915: Correctly populate use_sagv_wm for all pipes
ff9134882d drm/amdgpu: disable MMHUB PG for Picasso
72fdfc75d4 KVM: x86/mmu: make apf token non-zero to fix bug
646b532f32 parisc/unaligned: Fix ldw() and stw() unalignment handlers
397b5433f7 parisc/unaligned: Fix fldd and fstd unaligned handlers on 32-bit kernel
698dc7d13c vhost/vsock: don't check owner in vhost_vsock_stop() while releasing
84e303b4d5 clk: jz4725b: fix mmc0 clock gating
72a5b01875 btrfs: tree-checker: check item_size for dev_item
5c967dd073 btrfs: tree-checker: check item_size for inode_item
fcec42dd28 cgroup/cpuset: Fix a race between cpuset_attach() and cpu hotplug
e1b86e7f5c 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-lts
47667effb7 Linux 5.10.102
6062d1267f lockdep: Correct lock_classes index mapping
f333c1916f i2c: brcmstb: fix support for DSL and CM variants
9fee985f9a copy_process(): Move fd_install() out of sighand->siglock critical section
e3fdbc40b7 i2c: qcom-cci: don't put a device tree node before i2c_add_adapter()
b5b2a92117 i2c: qcom-cci: don't delete an unregistered adapter
3b6d25d1b6 dmaengine: sh: rcar-dmac: Check for error num after dma_set_max_seg_size
2c35c95d36 dmaengine: stm32-dmamux: Fix PM disable depth imbalance in stm32_dmamux_probe
4f907b6eb7 dmaengine: sh: rcar-dmac: Check for error num after setting mask
797b380f07 net: sched: limit TC_ACT_REPEAT loops
595c259f75 EDAC: Fix calculation of returned address and next offset in edac_align_ptr()
f6ce4e3289 scsi: lpfc: Fix pt2pt NVMe PRLI reject LOGO loop
3680b2b810 kconfig: fix failing to generate auto.conf
b6787e284d net: macb: Align the dma and coherent dma masks
439171a291 net: usb: qmi_wwan: Add support for Dell DW5829e
15616ba17d tracing: Fix tp_printk option related with tp_printk_stop_on_boot
5a253a23d9 drm/rockchip: dw_hdmi: Do not leave clock enabled in error case
1e7433fb95 xprtrdma: fix pointer derefs in error cases of rpcrdma_ep_create
a21f472fb5 soc: aspeed: lpc-ctrl: Block error printing on probe defer cases
fecb05b1ce ata: libata-core: Disable TRIM on M88V29
b19ec7afa9 lib/iov_iter: initialize "flags" in new pipe_buffer
3045532278 kconfig: let 'shell' return enough output for deep path names
e05dde47f5 selftests: fixup build warnings in pidfd / clone3 tests
531a56c2e0 pidfd: fix test failure due to stack overflow on some arches
429ef36c4f arm64: dts: meson-g12: drop BL32 region from SEI510/SEI610
1415f22ee5 arm64: dts: meson-g12: add ATF BL32 reserved-memory region
605080f19e arm64: dts: meson-gx: add ATF BL32 reserved-memory region
eefb68794f netfilter: conntrack: don't refresh sctp entries in closed state
1ab4824857 irqchip/sifive-plic: Add missing thead,c900-plic match string
98bc06c46d phy: usb: Leave some clocks running during suspend
717f2fa858 ARM: OMAP2+: adjust the location of put_device() call in omapdss_init_of
6932353af7 ARM: OMAP2+: hwmod: Add of_node_put() before break
521dcc107e NFS: Don't set NFS_INO_INVALID_XATTR if there is no xattr cache
fb00319afb KVM: x86/pmu: Use AMD64_RAW_EVENT_MASK for PERF_TYPE_RAW
0ee4bb8ce8 KVM: x86/pmu: Don't truncate the PerfEvtSeln MSR when creating a perf event
99cd2a0437 KVM: x86/pmu: Refactoring find_arch_event() to pmc_perf_hw_id()
91d8866ca5 Drivers: hv: vmbus: Fix memory leak in vmbus_add_channel_kobj
a176d559e8 mtd: rawnand: brcmnand: Fixed incorrect sub-page ECC status
1a49b1b0b0 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 buffer
8daa0436ce NFS: Do not report writeback errors in nfs_getattr()
f9b7385c0f NFS: LOOKUP_DIRECTORY is also ok with symlinks
598dbaf74b block/wbt: fix negative inflight counter when remove scsi device
dc6faa0ede ASoC: tas2770: Insert post reset delay
9dcedbe943 KVM: SVM: Never reject emulation due to SMAP errata for !SEV guests
a4eeeaca50 mtd: rawnand: gpmi: don't leak PM reference in error path
fb26219b40 powerpc/lib/sstep: fix 'ptesync' build error
54f76366cd 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 15
c72c3b597a ALSA: hda: Fix regression on forced probe mask option
63b1602c2f ALSA: hda/realtek: Fix deadlock by COEF mutex
b6a5e8f45f ALSA: hda/realtek: Add quirk for Legion Y9000X 2019
67de71b943 selftests/exec: Add non-regular to TEST_GEN_PROGS
d3018a1962 perf bpf: Defer freeing string after possible strlen() on it
016e3ca9c5 dpaa2-eth: Initialize mutex used in one step timestamping path
50f3b00d4c libsubcmd: Fix use-after-free for realloc(..., 0)
ffa8df4f0e bonding: fix data-races around agg_select_timer
d9bd9d4c60 net_sched: add __rcu annotation to netdev->qdisc
877a05672f drop_monitor: fix data-race in dropmon_net_event / trace_napi_poll_hit
a0e004e620 bonding: force carrier update when releasing slave
8dec3c4e73 ping: fix the dif and sdif check in ping_lookup
6793a9b028 net: ieee802154: ca8210: Fix lifs/sifs periods
f48bd34137 net: dsa: lantiq_gswip: fix use after free in gswip_remove()
d9b2203e5a net: dsa: lan9303: fix reset on probe
4f523f15e5 ipv6: per-netns exclusive flowlabel checks
100344200a netfilter: nft_synproxy: unregister hooks on init error path
26931971db selftests: netfilter: fix exit value for nft_concat_range
b26ea3f6b7 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 X86
87cd1bbd66 vsock: remove vsock from connected table when connect is interrupted by a signal
eb7bf11e8e drm/i915/opregion: check port number bounds for SWSCI display power state
5564d83ebc drm/radeon: Fix backlight control on iMac 12,1
008508c16a iwlwifi: fix use-after-free
44b81136e8 kbuild: lto: Merge module sections if and only if CONFIG_LTO_CLANG is enabled
8b53e5f737 kbuild: lto: merge module sections
45102b538a random: wake up /dev/random writers after zap
143aaf79ba gcc-plugins/stackleak: Use noinstr in favor of notrace
de55891e16 Revert "module, async: async_synchronize_full() on module init iff async is used"
3c958dbcba x86/Xen: streamline (and fix) PV CPU enumeration
e76d0a9692 drm/amdgpu: fix logic inversion in check
324f5bdc52 nvme-rdma: fix possible use-after-free in transport error_recovery work
e192184cf8 nvme-tcp: fix possible use-after-free in transport error_recovery work
0ead57ceb2 nvme: fix a possible use-after-free in controller reset during load
fe9ac3eaa2 scsi: pm8001: Fix use-after-free for aborted SSP/STP sas_task
d872e7b5fe scsi: pm8001: Fix use-after-free for aborted TMF sas_task
1e73f5cfc1 quota: make dquot_quota_sync return errors from ->sync_fs
c405640aad vfs: make freeze_super abort when sync_filesystem returns error
b9a229fd48 ax25: improve the incomplete fix to avoid UAF and NPD bugs
139fce2992 selftests: skip mincore.check_file_mmap when fs lacks needed support
204a2390da selftests: openat2: Skip testcases that fail with EOPNOTSUPP
2be48bfac7 selftests: openat2: Add missing dependency in Makefile
74a30666b4 selftests: openat2: Print also errno in failure messages
bfc84cfd90 selftests/zram: Adapt the situation that /dev/zram0 is being used
f0eba714c1 selftests/zram01.sh: Fix compression ratio calculation
7bb704b69f selftests/zram: Skip max_comp_streams interface on newer kernel
0fd484644c net: ieee802154: at86rf230: Stop leaking skb's
0c18a75193 kselftest: signal all child processes
1136141f19 selftests: rtc: Increase test timeout so that all tests run
79175b6ee6 platform/x86: ISST: Fix possible circular locking dependency detected
066c905ed0 platform/x86: touchscreen_dmi: Add info for the RWC NANOTE P8 AY07J 2-in-1
0b17d4b51c btrfs: send: in case of IO error log it
78a68bbebd parisc: Add ioread64_lo_hi() and iowrite64_lo_hi()
ade1077c7f PCI: hv: Fix NUMA node assignment when kernel boots with custom NUMA topology
254090925e mm: don't try to NUMA-migrate COW pages that have other uses
ab2b4e65a1 mmc: block: fix read single on recovery logic
7756716872 parisc: Fix sglist access in ccio-dma.c
f8f519d7df parisc: Fix data TLB miss in sba_unmap_sg
4d569b959e parisc: Drop __init from map_pages declaration
8e3f9a098e serial: parisc: GSC: fix build when IOSAPIC is not set
fe383750d4 Revert "svm: Add warning message for AVIC IPI invalid target"
126382b556 HID:Add support for UGTABLET WP5540
f100e758ce scsi: lpfc: Fix mailbox command failure during driver initialization
4578b979ef can: isotp: add SF_BROADCAST support for functional addressing
5d42865fc3 can: isotp: prevent race between isotp_bind() and isotp_setsockopt()
db3f3636e4 fs/proc: task_mmu.c: don't read mapcount for migration entry
0849f83e47 fget: clarify and improve __fget_files() implementation
657991fb06 rcu: Do not report strict GPs for outgoing CPUs
8c8385972e mm: memcg: synchronize objcg lists with a dedicated spinlock
d0f4aa2d97 drm/nouveau/pmu/gm200-: use alternate falcon reset sequence
add227a8d8 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>
2022-05-27 09:24:14 -07:00

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)