d6bdf0c924
109 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
8d05ee6f07 |
Merge keystone/android-mainline-keystone-qcom-release.5.18.0 (36fb3cb ) into msm-pineapple
* refs/heads/tmp-36fb3cb: ANDROID: sched: add vendor hook to set_cpus_allowed ANDROID: Incremental fs: Use ERR_CAST in handle_mapped_file() UPSTREAM: ipv4: ping: fix bind address validity check UPSTREAM: arm64/hugetlb: Fix building errors in huge_ptep_clear_flush() ANDROID: fix up gki_defconfig files due to Kconfig movements UPSTREAM: Revert "net: af_key: add check for pfkey_broadcast in function pfkey_process" ANDROID: disable LTO and CFI ANDROID: add smuckle to OWNERS media: lirc: add missing exceptions for lirc uapi header file mm: kfence: use PAGE_ALIGNED helper selftests: vm: add the "settings" file with timeout variable selftests: vm: add "test_hmm.sh" to TEST_FILES selftests: vm: check numa_available() before operating "merge_across_nodes" in ksm_tests selftests: vm: add migration to the .gitignore selftests/vm/pkeys: fix typo in comment ksm: fix typo in comment selftests: vm: add process_mrelease tests Revert "mm/vmscan: never demote for memcg reclaim" mm/kfence: print disabling or re-enabling message include/trace/events/percpu.h: cleanup for "percpu: improve percpu_alloc_percpu event trace" include/trace/events/mmflags.h: cleanup for "tracing: incorrect gfp_t conversion" mm: fix a potential infinite loop in start_isolate_page_range() MAINTAINERS: add Muchun as co-maintainer for HugeTLB zram: fix Kconfig dependency warning mm/shmem: fix shmem folio swapoff hang cgroup: fix an error handling path in alloc_pagecache_max_30M() KVM: x86: Fix the intel_pt PMI handling wrongly considered from guest KVM: selftests: x86: Sync the new name of the test case to .gitignore Documentation: kvm: reorder ARM-specific section about KVM_SYSTEM_EVENT_SUSPEND x86, kvm: use correct GFP flags for preemption disabled KVM: LAPIC: Drop pending LAPIC timer injection when canceling the timer x86/kvm: Alloc dummy async #PF token outside of raw spinlock KVM: x86: avoid calling x86 emulator without a decoded instruction KVM: SVM: Use kzalloc for sev ioctl interfaces to prevent kernel data leak x86/fpu: KVM: Set the base guest FPU uABI size to sizeof(struct kvm_xsave) s390/uv_uapi: depend on CONFIG_S390 KVM: selftests: x86: Fix test failure on arch lbr capable platforms KVM: LAPIC: Trace LAPIC timer expiration on every vmentry gpio: sifive: Make the irqchip immutable gpio: rcar: Make the irqchip immutable gpio: pcf857x: Make the irqchip immutable gpio: pca953x: Make the irqchip immutable gpio: dwapb: Make the irqchip immutable mailbox: qcom-ipcc: Fix -Wunused-function with CONFIG_PM_SLEEP=n genksyms: adjust the output format to modpost kbuild: stop merging *.symversions kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS platform/chrome: Use imperative mood for ChromeOS ACPI sysfs ABI descriptions platform/chrome: Use tables for values lists of ChromeOS ACPI sysfs ABI mailbox: forward the hrtimer if not queued and under a lock modpost: extract symbol versions from *.cmd files modpost: add sym_find_with_module() helper gpio: sim: Use correct order for the parameters of devm_kcalloc() mailbox: qcom-ipcc: Log the pending interrupt during resume mailbox: pcc: Fix an invalid-load caught by the address sanitizer dt-bindings: mailbox: remove the IPCC "wakeup" IRQ mailbox: correct kerneldoc mailbox: omap: using pm_runtime_resume_and_get to simplify the code mailbox:imx: using pm_runtime_resume_and_get mailbox: mediatek: support mt8186 adsp mailbox dt-bindings: mailbox: mtk,adsp-mbox: add mt8186 compatible name mailbox: tegra-hsp: Add 128-bit shared mailbox support dt-bindings: tegra186-hsp: add type for shared mailboxes mailbox: tegra-hsp: Add tegra_hsp_sm_ops dt-bindings: gce: add the GCE header file for MT8186 mailbox: remove an unneeded NULL check on list iterator mailbox: imx: remove redundant initializer dt-bindings: mailbox: qcom-ipcc: simplify the example gpio: ml-ioh: Convert to use managed functions pcim* and devm_* KVM: s390: selftest: Test suppression indication on key prot exception KVM: s390: Don't indicate suppression on dirtying, failing memop selftests: drivers/s390x: Add uvdevice tests drivers/s390/char: Add Ultravisor io device MAINTAINERS: Update KVM RISC-V entry to cover selftests support RISC-V: KVM: Introduce ISA extension register RISC-V: KVM: Cleanup stale TLB entries when host CPU changes RISC-V: KVM: Add remote HFENCE functions based on VCPU requests RISC-V: KVM: Reduce KVM_MAX_VCPUS value RISC-V: KVM: Introduce range based local HFENCE functions RISC-V: KVM: Treat SBI HFENCE calls as NOPs RISC-V: KVM: Add Sv57x4 mode support for G-stage RISC-V: KVM: Use G-stage name for hypervisor page table KVM: selftests: riscv: Remove unneeded semicolon KVM: selftests: riscv: Improve unexpected guest trap handling mm: damon: use HPAGE_PMD_SIZE tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate nodemask.h: fix compilation error with GCC12 mm: fix missing handler for __GFP_NOWARN mm/page_alloc: fix tracepoint mm_page_alloc_zone_locked() mm/page_owner.c: add missing __initdata attribute tmpfs: fix undefined-behaviour in shmem_reconfigure() mm/mempolicy: fix uninit-value in mpol_rebind_policy() mm: don't be stuck to rmap lock on reclaim path zswap: memcg accounting mm: zswap: add basic meminfo and vmstat coverage mm: Kconfig: simplify zswap configuration mm: Kconfig: group swap, slab, hotplug and thp options into submenus mm: Kconfig: move swap and slab config options to the MM section Documentation: filesystems: proc: update meminfo section mm/swap: fix comment about swap extent mm/swap: fix the comment of get_kernel_pages mm/swap: clean up the comment of find_next_to_unuse mm/swap: fix the obsolete comment for SWP_TYPE_SHIFT mm/swap: add helper swap_offset_available() mm/swap: avoid calling swp_swap_info when try to check SWP_STABLE_WRITES mm/swap: make page_swapcount and __lru_add_drain_all static mm/swap: remove unneeded p != NULL check in __swap_duplicate mm/swap: remove buggy cache->nr check in refill_swap_slots_cache mm/swap: print bad swap offset entry in get_swap_device mm/swap: remove unneeded return value of free_swap_slot mm/swap: fold __swap_info_get() into its sole caller mm/swap: use helper macro __ATTR_RW mm/swap: use helper is_swap_pte() in swap_vma_readahead mm: mmap: register suitable readonly file vmas for khugepaged mm: khugepaged: introduce khugepaged_enter_vma() helper mm: khugepaged: make hugepage_vma_check() non-static mm: khugepaged: make khugepaged_enter() void function mm: thp: only regular file could be THP eligible mm: khugepaged: skip DAX vma mm: khugepaged: remove redundant check for VM_NO_KHUGEPAGED sched: coredump.h: clarify the use of MMF_VM_HUGEPAGE arm64/mm: fix page table check compile error for CONFIG_PGTABLE_LEVELS=2 riscv/mm: fix two page table check related issues gpio: ftgpio: Remove unneeded ERROR check before clk_disable_unprepare KVM: arm64: Fix hypercall bitmap writeback when vcpus have already run KVM: arm64: vgic: Undo work in failed ITS restores KVM: arm64: vgic: Do not ignore vgic_its_restore_cte failures KVM: arm64: vgic: Add more checks when restoring ITS tables KVM: arm64: vgic: Check that new ITEs could be saved in guest memory KVM: arm64: pmu: Restore compilation when HW_PERF_EVENTS isn't selected platform/chrome: cros_ec_spi: drop BUG_ON() if `din` isn't large enough platform/chrome: cros_ec_spi: drop unneeded BUG_ON() platform/chrome: cros_ec_i2c: drop BUG_ON() in cros_ec_pkt_xfer_i2c() platform/chrome: cros_ec_proto: drop BUG_ON() in cros_ec_get_host_event() platform/chrome: cros_ec_proto: drop BUG_ON() in cros_ec_prepare_tx() platform/chrome: correct cros_ec_prepare_tx() usage platform/chrome: cros_ec_proto: drop unneeded BUG_ON() in prepare_packet() KVM: arm64: Hide KVM_REG_ARM_*_BMAP_BIT_COUNT from userspace KVM: arm64: Reenable pmu in Protected Mode KVM: arm64: Pass pmu events to hyp via vcpu KVM: arm64: Repack struct kvm_pmu to reduce size KVM: arm64: Wrapper for getting pmu_events KVM: arm64: vgic-v3: List M1 Pro/Max as requiring the SEIS workaround gpio: ws16c48: Utilize iomap interface gpio: gpio-mm: Utilize iomap interface gpio: 104-idio-16: Utilize iomap interface gpio: 104-idi-48: Utilize iomap interface gpio: 104-dio-48e: Utilize iomap interface gpio: zevio: drop of_gpio.h header mm, compaction: fast_find_migrateblock() should return pfn in the target zone mm/damon: add documentation for Enum value mm/memcontrol: export memcg->watermark via sysfs for v2 memcg mm: hugetlb_vmemmap: add hugetlb_optimize_vmemmap sysctl mm: hugetlb_vmemmap: use kstrtobool for hugetlb_vmemmap param parsing mm: memory_hotplug: override memmap_on_memory when hugetlb_free_vmemmap=on mm: hugetlb_vmemmap: disable hugetlb_optimize_vmemmap when struct page crosses page boundaries mm: rmap: fix CONT-PTE/PMD size hugetlb issue when unmapping mm: rmap: fix CONT-PTE/PMD size hugetlb issue when migration mm: change huge_ptep_clear_flush() to return the original pte Documentation/vm: rework "Temporary Virtual Mappings" section Documentation/vm: move "Using kmap-atomic" to highmem.h Documentation/vm: include kdocs from highmem*.h into highmem.rst mm/highmem: fix kernel-doc warnings in highmem*.h mm/memory-failure.c: simplify num_poisoned_pages_inc/dec mm/hwpoison: disable hwpoison filter during removing mm/memory-failure.c: add hwpoison_filter for soft offline mm/memory-failure.c: simplify num_poisoned_pages_dec mm/memory-failure.c: move clear_hwpoisoned_pages mm/page_owner: use strscpy() instead of strlcpy() kasan: clean-up kconfig options descriptions kasan: move boot parameters section in documentation kasan: update documentation kasan: give better names to shadow values kasan: use tabs to align shadow values kasan: clean up comments in internal kasan.h mm/vmalloc: use raw_cpu_ptr() for vmap_block_queue access tracing: incorrect gfp_t conversion zram: remove double compression logic percpu: improve percpu_alloc_percpu event trace docs: vm/page_owner: tweak literal block in STANDARD FORMAT SPECIFIERS mm/damon/reclaim: use resource_size function on resource object mm: functions may simplify the use of return values riscv/mm: enable ARCH_SUPPORTS_PAGE_TABLE_CHECK arm64/mm: enable ARCH_SUPPORTS_PAGE_TABLE_CHECK mm: remove __HAVE_ARCH_PTEP_CLEAR in pgtable.h mm: page_table_check: add hooks to public helpers mm: page_table_check: move pxx_user_accessible_page into x86 mm: page_table_check: using PxD_SIZE instead of PxD_PAGE_SIZE mm/migrate: convert move_to_new_page() into move_to_new_folio() mm: add folio_test_movable() mm: add folio_mapping_flags() mm/shmem: convert shmem_swapin_page() to shmem_swapin_folio() mm/shmem: convert shmem_getpage_gfp to use a folio mm/shmem: convert shmem_alloc_and_acct_page to use a folio mm/shmem: add shmem_alloc_folio() mm/shmem: turn shmem_should_replace_page into shmem_should_replace_folio mm/shmem: convert shmem_add_to_page_cache to take a folio mm/swap: add folio_throttle_swaprate mm/shmem: use a folio in shmem_unused_huge_shrink vmscan: remove remaining uses of page in shrink_page_list mm: allow can_split_folio() to be called when THP are disabled vmscan: convert the activate_locked portion of shrink_page_list to folios vmscan: move initialisation of mapping down vmscan: convert lazy freeing to folios vmscan: convert page buffer handling to use folios vmscan: convert dirty page handling to folios swap: convert add_to_swap() to take a folio swap: turn get_swap_page() into folio_alloc_swap() vmscan: convert the writeback handling in shrink_page_list() to folios vmscan: use folio_mapped() in shrink_page_list() mm: remove alloc_pages_vma() alpha: fix alloc_zeroed_user_highpage_movable() mm/huge_memory: convert do_huge_pmd_anonymous_page() to use vma_alloc_folio() shmem: convert shmem_alloc_hugepage() to use vma_alloc_folio() mm/shmem: remove duplicate include in memory.c mm/vmscan: don't use NUMA_NO_NODE as indicator of page on different node mm/vmscan: filter empty page_list at the beginning mm/vmscan: use helper folio_is_file_lru() mm/vmscan: remove obsolete comment in kswapd_run mm/vmscan: take all base pages of THP into account when race with speculative reference mm/vmscan: introduce helper function reclaim_page_list() mm/vmscan: add a comment about MADV_FREE pages check in folio_check_dirty_writeback mm/vmscan: not necessary to re-init the list for each iteration mm: convert sysfs input to bool using kstrtobool() lib/kstrtox.c: add "false"/"true" support to kstrtobool() mm/vmscan: take min_slab_pages into account when try to call shrink_node drivers: virtio_mem: use pageblock size as the minimum virtio_mem size. mm: cma: use pageblock_order as the single alignment mm: page_isolation: enable arbitrary range page isolation. mm: make alloc_contig_range work at pageblock granularity mm: page_isolation: check specified range for unmovable pages mm: page_isolation: move has_unmovable_pages() to mm/page_isolation.c cgroup: fix racy check in alloc_pagecache_max_30M() helper function cgroup: remove racy check in test_memcg_sock() cgroup: account for memory_localevents in test_memcg_oom_group_leaf_events() cgroup: account for memory_recursiveprot in test_memcg_low() cgroups: refactor children cgroups in memcg tests mm/uffd: move USERFAULTFD configs into mm/ userfaultfd/selftests: use swap() instead of open coding it selftests/uffd: enable uffd-wp for shmem/hugetlbfs mm: enable PTE markers by default mm/uffd: enable write protection for shmem & hugetlbfs mm/pagemap: recognize uffd-wp bit for shmem/hugetlbfs mm/khugepaged: don't recycle vma pgtable if uffd-wp registered mm/hugetlb: handle uffd-wp during fork() mm/hugetlb: only drop uffd-wp special pte if required mm/hugetlb: allow uffd wr-protect none ptes mm/hugetlb: handle pte markers in page faults mm/hugetlb: handle UFFDIO_WRITEPROTECT mm/hugetlb: take care of UFFDIO_COPY_MODE_WP mm/hugetlb: hook page faults for uffd write protection mm/hugetlb: introduce huge pte version of uffd-wp helpers mm/shmem: handle uffd-wp during fork() mm/shmem: allows file-back mem to be uffd wr-protected on thps mm/shmem: allow uffd wr-protect none pte for file-backed mem mm/shmem: persist uffd-wp bit across zapping for file-backed mm/shmem: handle uffd-wp special pte in page fault handler mm/shmem: take care of UFFDIO_COPY_MODE_WP mm/uffd: PTE_MARKER_UFFD_WP mm: check against orig_pte for finish_fault() mm: teach core mm about pte markers mm: introduce PTE_MARKER swap entry mm/page_alloc: cache the result of node_dirty_ok() Docs/admin-guide/mm/damon/reclaim: document 'commit_inputs' parameter mm/damon/reclaim: support online inputs update Docs/{ABI,admin-guide}/damon: Update for 'state' sysfs file input keyword, 'commit' mm/damon/sysfs: support online inputs update mm/damon/sysfs: update schemes stat in the kdamond context mm/damon/sysfs: use enum for 'state' input handling mm/damon/sysfs: reuse damon_set_regions() for regions setting mm/damon/sysfs: move targets setup code to a separated function mm/damon/sysfs: prohibit multiple physical address space monitoring targets mm/damon/vaddr: remove damon_va_apply_three_regions() mm/damon/vaddr: move 'damon_set_regions()' to core mm/damon/vaddr: generalize damon_va_apply_three_regions() mm/damon/core: finish kdamond as soon as any callback returns an error mm/damon/core: add a new callback for watermarks checks selftest/vm: test that mremap fails on non-existent vma mm/rmap: Fix typos in comments mm/swapops: make is_pmd_migration_entry more strict mmap locking API: fix missed mmap_sem references in comments mm: make minimum slab alignment a runtime property printk: stop including cache.h from printk.h mm: rmap: use flush_cache_range() to flush cache for hugetlb pages mm: rmap: move the cache flushing to the correct place for hugetlb PMD sharing mm: hugetlb: considering PMD sharing when flushing cache/TLBs mm/memory_hotplug: use pgprot_val to get value of pgprot Docs/{ABI,admin-guide}/damon: update for fixed virtual address ranges monitoring mm/damon/sysfs: support fixed virtual address ranges monitoring mm/damon/vaddr: register a damon_operations for fixed virtual address ranges monitoring Docs/{ABI,admin-guide}/damon: document 'avail_operations' sysfs file selftets/damon/sysfs: test existence and permission of avail_operations mm/damon/sysfs: add a file for listing available monitoring ops mm/damon/core: add a function for damon_operations registration checks mm/highmem: VM_BUG_ON() if offset + len > PAGE_SIZE kfence: enable check kfence canary on panic via boot param hugetlbfs: fix hugetlbfs_statfs() locking mm: avoid unnecessary flush on change_huge_pmd() mm/mprotect: do not flush when not required architecturally mm/mprotect: use mmu_gather platform/chrome: Add ChromeOS ACPI device driver KVM: x86/mmu: Speed up slot_rmap_walk_next for sparsely populated rmaps KVM: VMX: Include MKTME KeyID bits in shadow_zero_check KVM: x86/mmu: Add shadow_me_value and repurpose shadow_me_mask KVM: x86/mmu: Rename reset_rsvds_bits_mask() KVM: x86: a vCPU with a pending triple fault is runnable KVM: x86/mmu: Expand and clean up page fault stats KVM: x86/mmu: Use IS_ENABLED() to avoid RETPOLINE for TDP page faults KVM: x86/mmu: Make all page fault handlers internal to the MMU KVM: x86/mmu: Add RET_PF_CONTINUE to eliminate bool+int* "returns" KVM: x86/mmu: Drop exec/NX check from "page fault can be fast" KVM: x86/mmu: Don't attempt fast page fault just because EPT is in use KVM: VMX: clean up pi_wakeup_handler KVM: x86: fix typo in __try_cmpxchg_user causing non-atomicness modpost: change the license of EXPORT_SYMBOL to bool type modpost: remove left-over cross_compile declaration kbuild: record symbol versions in *.cmd files kbuild: generate a list of objects in vmlinux modpost: move *.mod.c generation to write_mod_c_files() modpost: merge add_{intree_flag,retpoline,staging_flag} to add_header scripts/prune-kernel: Use kernel-install if available kbuild: factor out the common installation code into scripts/install.sh platform/chrome: cros_ec_typec: Check for EC driver KVM: arm64: pkvm: Don't mask already zeroed FEAT_SVE KVM: arm64: pkvm: Drop unnecessary FP/SIMD trap handler VFS: add FMODE_CAN_ODIRECT file flag MM: handle THP in swap_*page_fs() - count_vm_events() mm: handle THP in swap_*page_fs() mm: submit multipage write for SWP_FS_OPS swap-space mm: submit multipage reads for SWP_FS_OPS swap-space doc: update documentation for swap_activate and swap_rw mm: perform async writes to SWP_FS_OPS swap-space using ->swap_rw nfs: rename nfs_direct_IO and use as ->swap_rw mm: introduce ->swap_rw and use it for reads from SWP_FS_OPS swap-space mm: reclaim mustn't enter FS for SWP_FS_OPS swap-space mm: move responsibility for setting SWP_FS_OPS to ->swap_activate mm: drop swap_dirty_folio mm: create new mm/swap.h header file selftests: clarify common error when running gup_test mm/gup: fix comments to pin_user_pages_*() powerpc/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE for book3s powerpc/pgtable: remove _PAGE_BIT_SWAP_TYPE for book3s s390/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE s390/pgtable: cleanup description of swp pte layout arm64/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE x86/pgtable: support __HAVE_ARCH_PTE_SWP_EXCLUSIVE mm/debug_vm_pgtable: add tests for __HAVE_ARCH_PTE_SWP_EXCLUSIVE mm/swap: remember PG_anon_exclusive via a swp pte bit mm/gup: sanity-check with CONFIG_DEBUG_VM that anonymous pages are exclusive when (un)pinning mm/gup: trigger FAULT_FLAG_UNSHARE when R/O-pinning a possibly shared anonymous page mm: support GUP-triggered unsharing of anonymous pages mm/gup: disallow follow_page(FOLL_PIN) mm/rmap: fail try_to_migrate() early when setting a PMD migration entry fails mm: remember exclusively mapped anonymous pages with PG_anon_exclusive mm/page-flags: reuse PG_mappedtodisk as PG_anon_exclusive for PageAnon() pages mm/huge_memory: remove outdated VM_WARN_ON_ONCE_PAGE from unmap_page() mm/rmap: use page_move_anon_rmap() when reusing a mapped PageAnon() page exclusively mm/rmap: drop "compound" parameter from page_add_new_anon_rmap() mm/rmap: pass rmap flags to hugepage_add_anon_rmap() mm/rmap: remove do_page_add_anon_rmap() mm/rmap: convert RMAP flags to a proper distinct rmap_t type mm/rmap: split page_dup_rmap() into page_dup_file_rmap() and page_try_dup_anon_rmap() mm/memory: slightly simplify copy_present_pte() mm/hugetlb: take src_mm->write_protect_seq in copy_hugetlb_page_range() mm/rmap: fix missing swap_free() in try_to_unmap() after arch_unmap_one() failed sched: Fix build warning without CONFIG_SYSCTL reboot: Fix build warning without CONFIG_SYSCTL modpost: split new_symbol() to symbol allocation and hash table addition modpost: make sym_add_exported() always allocate a new symbol modpost: make multiple export error modpost: dump Module.symvers in the same order of modules.order modpost: traverse the namespace_list in order modpost: use doubly linked list for dump_lists modpost: traverse unresolved symbols in order modpost: add sym_add_unresolved() helper modpost: traverse modules in order modpost: import include/linux/list.h modpost: change mod->gpl_compatible to bool type modpost: use bool type where appropriate ia64: make the install target not depend on any build artifact kbuild: drop $(objtree)/ prefix support for clean-files Makefile: fix 2 typos modpost: move struct namespace_list to modpost.c modpost: retrieve the module dependency and CRCs in check_exports() modpost: add a separate error for exported symbols without definition modpost: remove stale comment about sym_add_exported() modpost: do not write out any file when error occurred modpost: use snprintf() instead of sprintf() for safety checksyscalls: ignore -Wunused-macros scripts: dummy-tools, add pahole kheaders: Have cpio unconditionally replace files kbuild: support W=e to make build abort in case of warning kbuild: read *.mod to get objects passed to $(LD) or $(AR) kbuild: make *.mod not depend on *.o kbuild: get rid of duplication in *.mod files kbuild: split the second line of *.mod into *.usyms kbuild: reuse real-search to simplify cmd_mod kbuild: make multi_depend work with targets in subdirectory kbuild: reuse suffix-search to refactor multi_depend kbuild: refactor cmd_modversions_S kbuild: refactor cmd_modversions_c modpost: remove annoying namespace_from_kstrtabns() modpost: remove redundant initializes for static variables modpost: move export_from_secname() call to more relevant place modpost: remove useless export_from_sec() KVM: arm64: nvhe: Eliminate kernel-doc warnings KVM: arm64: Avoid unnecessary absolute addressing via literals gpio: max77620: Make the irqchip immutable dt-bindings: gpio: pca95xx: add entry for pca6408 gpio: pca953xx: Add support for pca6408 gpio: max732x: Drop unused support for irq and setup code via platform data Documentation: KVM: Fix title level for PSCI_SUSPEND KVM: arm64: Print emulated register table name when it is unsorted KVM: arm64: Don't BUG_ON() if emulated register table is unsorted KVM: arm64: vgic-v3: Advertise GICR_CTLR.{IR, CES} as a new GICD_IIDR revision KVM: arm64: vgic-v3: Implement MMIO-based LPI invalidation KVM: arm64: vgic-v3: Expose GICR_CTLR.RWP when disabling LPIs Documentation: Fix index.rst after psci.rst renaming selftests: KVM: Test SYSTEM_SUSPEND PSCI call selftests: KVM: Refactor psci_test to make it amenable to new tests selftests: KVM: Use KVM_SET_MP_STATE to power off vCPU in psci_test selftests: KVM: Create helper for making SMCCC calls selftests: KVM: Rename psci_cpu_on_test to psci_test KVM: arm64: Implement PSCI SYSTEM_SUSPEND KVM: arm64: Add support for userspace to suspend a vCPU KVM: arm64: Return a value from check_vcpu_requests() KVM: arm64: Rename the KVM_REQ_SLEEP handler KVM: arm64: Track vCPU power state using MP state values KVM: arm64: Dedupe vCPU power off helpers KVM: arm64: Don't depend on fallthrough to hide SYSTEM_RESET2 KVM: arm64: Fix new instances of 32bit ESRs selftests: KVM: aarch64: Add the bitmap firmware registers to get-reg-list selftests: KVM: aarch64: Introduce hypercall ABI test selftests: KVM: Create helper for making SMCCC calls selftests: KVM: Rename psci_cpu_on_test to psci_test tools: Import ARM SMCCC definitions Docs: KVM: Add doc for the bitmap firmware registers Docs: KVM: Rename psci.rst to hypercalls.rst KVM: arm64: Add vendor hypervisor firmware register KVM: arm64: Add standard hypervisor firmware register KVM: arm64: Setup a framework for hypercall bitmap firmware registers KVM: arm64: Factor out firmware register handling from psci.c KVM: arm64: Hide AArch32 PMU registers when not available KVM: arm64: Start trapping ID registers for 32 bit guests KVM: arm64: Plumb cp10 ID traps through the AArch64 sysreg handler KVM: arm64: Wire up CP15 feature registers to their AArch64 equivalents KVM: arm64: Don't write to Rt unless sys_reg emulation succeeds KVM: arm64: Return a bool from emulate_cp() platform/chrome: cros_ec_lpcs: reserve the MEC LPC I/O ports first platform/chrome: cros_ec_lpcs: detect the Framework Laptop KVM: VMX: Use vcpu_to_pi_desc() uniformly in posted_intr.c KVM: Add max_vcpus field in common 'struct kvm' KVM: x86: avoid loading a vCPU after .vm_destroy was called gpio: vf610: drop the SOC_VF610 dependency for GPIO_VF610 gpio: syscon: Remove usage of syscon_regmap_lookup_by_compatible mm/damon/reclaim: fix the timer always stays active mm/damon: remove unnecessary type castings mm/damon/core-test: add a kunit test case for ops registration damon: vaddr-test: tweak code to make the logic clearer selftests: cgroup: add a selftest for memory.reclaim selftests: cgroup: fix alloc_anon_noexit() instantly freeing memory selftests: cgroup: return -errno from cg_read()/cg_write() on failure memcg: introduce per-memcg reclaim interface zram: add a huge_idle writeback mode mm/page_alloc: simplify update of pgdat in wake_all_kswapds kasan: mark KASAN_VMALLOC flags as kasan_vmalloc_flags_t kasan: fix sleeping function called from invalid context on RT kernel mm: hugetlb: add missing cache flushing in hugetlb_unshare_all_pmds() mm/khugepaged: use vma_is_anonymous mm: use for_each_online_node and node_online instead of open coding hugetlb: fix return value of __setup handlers hugetlb: fix hugepages_setup when deal with pernode hugetlb: fix wrong use of nr_online_nodes KVM: X86/MMU: Fix shadowing 5-level NPT for 4-level NPT L1 guest KVM: X86/MMU: Add sp_has_gptes() KVM: SVM: Introduce trace point for the slow-path of avic_kic_target_vcpus KVM: SVM: Use target APIC ID to complete AVIC IRQs when possible KVM: x86/mmu: replace direct_map with root_role.direct KVM: x86/mmu: replace root_level with cpu_role.base.level KVM: x86/mmu: replace shadow_root_level with root_role.level KVM: x86/mmu: pull CPU mode computation to kvm_init_mmu KVM: x86/mmu: simplify and/or inline computation of shadow MMU roles KVM: x86/mmu: remove redundant bits from extended role KVM: x86/mmu: rename kvm_mmu_role union KVM: x86/mmu: remove extended bits from mmu_role, rename field KVM: x86/mmu: store shadow EFER.NX in the MMU role KVM: x86/mmu: cleanup computation of MMU roles for shadow paging KVM: x86/mmu: cleanup computation of MMU roles for two-dimensional paging KVM: x86/mmu: remove kvm_calc_shadow_root_page_role_common KVM: x86/mmu: remove ept_ad field KVM: x86/mmu: do not recompute root level from kvm_mmu_role_regs KVM: x86/mmu: split cpu_role from mmu_role KVM: x86/mmu: remove "bool base_only" arguments KVM: x86: Clean up and document nested #PF workaround KVM: x86/mmu: rephrase unclear comment KVM: x86/mmu: pull computation of kvm_mmu_role_regs to kvm_init_mmu KVM: x86/mmu: constify uses of struct kvm_mmu_role_regs KVM: x86/mmu: nested EPT cannot be used in SMM KVM: x86/mmu: Use enable_mmio_caching to track if MMIO caching is enabled KVM: x86/mmu: Check for host MMIO exclusion from mem encrypt iff necessary KVM: SEV-ES: Use V_TSC_AUX if available instead of RDTSC/MSR_TSC_AUX intercepts x86/cpufeatures: Add virtual TSC_AUX feature bit drivers/base/memory: fix an unlikely reference counting issue in __add_memory_block() mm: compaction: make sure highest is above the min_pfn mm: compaction: simplify the code in __compact_finished mm: compaction: make compaction_zonelist_suitable return false when COMPACT_SUCCESS mm: compaction: avoid possible NULL pointer dereference in kcompactd_cpu_online mm: compaction: clean up comment about async compaction in isolate_migratepages mm: compaction: use helper compound_nr in isolate_migratepages_block mm: compaction: use COMPACT_CLUSTER_MAX in compaction.c mm: compaction: clean up comment about suitable migration target recheck mm: compaction: clean up comment for sched contention mm: compaction: remove unneeded assignment to isolate_start_pfn mm: compaction: remove unneeded pfn update mm: compaction: remove unneeded return value of kcompactd_run mm/vmstat: add events for ksm cow ksm: count ksm merging pages for each process include/linux/swapops.h: remove stub for non_swap_entry() mm/page_alloc: reuse tail struct pages for compound devmaps mm/sparse-vmemmap: improve memory savings for compound devmaps mm/hugetlb_vmemmap: move comment block to Documentation/vm mm/sparse-vmemmap: refactor core of vmemmap_populate_basepages() to helper mm/sparse-vmemmap: add a pgmap argument to section activation mm: hugetlb_vmemmap: cleanup CONFIG_HUGETLB_PAGE_FREE_VMEMMAP* mm: hugetlb_vmemmap: cleanup hugetlb_free_vmemmap_enabled* mm: hugetlb_vmemmap: cleanup hugetlb_vmemmap related functions mm/page_alloc.c: calc the right pfn if page size is not 4K mm/mremap: avoid unneeded do_munmap call mm/mremap: use helper mlock_future_check() mm/mmap: drop arch_vm_get_page_pgprot() mm/mmap: drop arch_filter_pgprot() x86/mm: enable ARCH_HAS_VM_GET_PAGE_PROT sparc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT arm64/mm: enable ARCH_HAS_VM_GET_PAGE_PROT powerpc/mm: enable ARCH_HAS_VM_GET_PAGE_PROT mm/mmap: add new config ARCH_HAS_VM_GET_PAGE_PROT mm/mmap.c: use helper mlock_future_check() mm/mmap: clarify protection_map[] indices mm/debug_vm_pgtable: drop protection_map[] usage mm/mmu_gather: limit free batch count and add schedule point in tlb_batch_pages_flush mm/mmap.c: use mmap_assert_write_locked() instead of open coding it selftests: vm: fix shellcheck warnings in run_vmtests.sh selftests: vm: refactor run_vmtests.sh to reduce boilerplate selftests: vm: add test for Soft-Dirty PTE bit selftests: vm: bring common functions to a new file tools/testing/selftests/vm/gup_test.c: clarify error statement mm: simplify follow_invalidate_pte() dax: fix missing writeprotect the pte entry mm: pvmw: add support for walking devmap pages mm: rmap: introduce pfn_mkclean_range() to cleans PTEs dax: fix cache flush on PMD-mapped pages mm: rmap: fix cache flush on THP pages mm/madvise: fix potential pte_unmap_unlock pte error mm: untangle config dependencies for demote-on-reclaim mm: migrate: simplify the refcount validation when migrating hugetlb mapping mm/migration: fix possible do_pages_stat_array racing with memory offline mm/migration: fix potential invalid node access for reclaim-based migration mm/migration: fix potential page refcounts leak in migrate_pages mm/migration: remove some duplicated codes in migrate_pages mm/migration: avoid unneeded nodemask_t initialization mm/migration: use helper macro min in do_pages_stat mm/migration: use helper function vma_lookup() in add_page_for_migration mm/migration: remove unneeded local variable page_lru mm/migration: remove unneeded local variable mapping_locked mm: add selftests for migration entries mm/mempolicy: clean up the code logic in queue_pages_pte_range drivers/base/node.c: fix compaction sysfs file leak mm: compaction: use helper isolation_suitable() mm/z3fold: remove unneeded PAGE_HEADLESS check in free_handle() mm/z3fold: remove redundant list_del_init of zhdr->buddy in z3fold_free mm/z3fold: move decrement of pool->pages_nr into __release_z3fold_page() mm/z3fold: remove confusing local variable l reassignment mm/z3fold: remove unneeded page_mapcount_reset and ClearPagePrivate mm/z3fold: minor clean up for z3fold_free mm/z3fold: remove obsolete comment in z3fold_alloc mm/z3fold: declare z3fold_mount with __init fs/proc/task_mmu.c: remove redundant page validation of pte_page mm/vmscan: fix comment for isolate_lru_pages mm/vmscan: fix comment for current_may_throttle mm/vmscan: remove obsolete comment in get_scan_count mm/vmscan: sc->reclaim_idx must be a valid zone index mm/vmscan: make sure wakeup_kswapd with managed zone mm/vmscan: reclaim only affects managed_zones arm64: mm: hugetlb: enable HUGETLB_PAGE_FREE_VMEMMAP for arm64 mm: hugetlb_vmemmap: introduce ARCH_WANT_HUGETLB_PAGE_FREE_VMEMMAP hugetlb: remove use of list iterator variable after loop mm, hugetlb, hwpoison: separate branch for free and in-use hugepage mm/memory-failure.c: dissolve truncated hugetlb page mm/memory-failure.c: minor cleanup for HWPoisonHandlable Revert "mm/memory-failure.c: fix race with changing page compound again" mm/hwpoison: put page in already hwpoisoned case with MF_COUNT_INCREASED mm/memory-failure.c: remove unnecessary (void*) conversions mm: wrap __find_buddy_pfn() with a necessary buddy page validation mm: page_alloc: simplify pageblock migratetype check in __free_one_page() mm/page_alloc: adding same penalty is enough to get round-robin order Documentation/sysctl: document page_lock_unfairness vmap(): don't allow invalid pages mm/vmalloc: fix a comment mm/memcontrol.c: remove unused private flag of memory.oom_control mm/memcontrol.c: make cgroup_memory_noswap static MAINTAINERS: add corresponding kselftests to memcg entry MAINTAINERS: add corresponding kselftests to cgroup entry kselftests: memcg: speed up the memory.high test kselftests: memcg: update the oom group leaf events test mm/memcg: non-hierarchical mode is deprecated mm/memcg: move generation assignment and comparison together mm/memcg: set pos explicitly for reclaim and !reclaim mm/memcg: set memcg after css verified and got reference mm/memcg: mz already removed from rb_tree if not NULL mm/memcg: remove unneeded nr_scanned mm: shmem: make shmem_init return void mm: rework calculation of bdi_min_ratio in bdi_set_min_ratio tools/vm/page_owner_sort.c: avoid repeated judgments tools/vm/page_owner_sort.c: provide allocator labelling and update --cull and --sort options tools/vm/page_owner: support debug log to avoid huge log print tools/vm/page_owner_sort.c: support sorting blocks by multiple keys tools/vm/page_owner_sort.c: support for multi-value selection in single argument tools/vm/page_owner_sort.c: use fprintf() to send error messages to stderr KVM: arm64: Symbolize the nVHE HYP addresses KVM: arm64: Detect and handle hypervisor stack overflows KVM: arm64: Add guard pages for pKVM (protected nVHE) hypervisor stack KVM: arm64: Add guard pages for KVM nVHE hypervisor stack KVM: arm64: Introduce pkvm_alloc_private_va_range() KVM: arm64: Introduce hyp_alloc_private_va_range() kernel/kexec_core: move kexec_core sysctls into its own file sysctl: minor cleanup in new_dir() gpio: pcf857x: Make teardown callback return void irq/gpio: ixp4xx: Drop boardfile probe path dt-bindings: gpio: add common consumer GPIO lines gpio: use raw spinlock for gpio chip shadowed data ftrace: fix building with SYSCTL=y but DYNAMIC_FTRACE=n fs/proc: Introduce list_for_each_table_entry for proc sysctl mm: fix unused variable kernel warning when SYSCTL=n latencytop: move sysctl to its own file ftrace: fix building with SYSCTL=n but DYNAMIC_FTRACE=y KVM: arm64: Expose the WFXT feature to guests KVM: arm64: Offer early resume for non-blocking WFxT instructions KVM: arm64: Handle blocking WFIT instruction KVM: arm64: Introduce kvm_counter_compute_delta() helper KVM: arm64: Simplify kvm_cpu_has_pending_timer() arm64: Use WFxT for __delay() when possible arm64: Add wfet()/wfit() helpers arm64: Add HWCAP advertising FEAT_WFXT arm64: Add RV and RN fields for ESR_ELx_WFx_ISS arm64: Expand ESR_ELx_WFx_ISS_TI to match its ARMv8.7 definition platform/chrome: Re-introduce cros_ec_cmd_xfer and use it for ioctls gpio: ixp4xx: Detect special machines by compatible pinctrl: meson: Replace custom code by gpiochip_node_count() call pinctrl: meson: Enable COMPILE_TEST pinctrl: meson: Rename REG_* to MESON_REG_* pinctrl: armada-37xx: Reuse GPIO fwnode in armada_37xx_irqchip_register() pinctrl: armada-37xx: Switch to use fwnode instead of of_node platform/chrome: cros_ec: append newline to all logs platform/chrome: cros_ec: sort header inclusion alphabetically platform/chrome: cros_ec: determine `wake_enabled` in cros_ec_suspend() platform/chrome: cros_ec: remove unused variable `was_wake_device` platform/chrome: cros_ec: fix error handling in cros_ec_register() ftrace: Fix build warning gpiolib: Introduce a helper to get first GPIO controller node pinctrl: samsung: Switch to use for_each_gpiochip_node() helper pinctrl: samsung: Drop redundant node parameter in samsung_banks_of_node_get() KVM: x86: Bail to userspace if emulation of atomic user access faults KVM: x86: Use __try_cmpxchg_user() to emulate atomic accesses KVM: x86: Use __try_cmpxchg_user() to update guest PTE A/D bits x86/uaccess: Implement macros for CMPXCHG on user addresses Kconfig: Add option for asm goto w/ tied outputs to workaround clang-13 bug KVM, SEV: Add KVM_EXIT_SHUTDOWN metadata for SEV-ES KVM: nVMX: Clear IDT vectoring on nested VM-Exit for double/triple fault KVM: nVMX: Leave most VM-Exit info fields unmodified on failed VM-Entry KVM: x86: Drop WARNs that assert a triple fault never "escapes" from L2 KVM: x86: Use static calls to reduce kvm_pmu_ops overhead KVM: x86: Move .pmu_ops to kvm_x86_init_ops and tag as __initdata KVM: x86: Copy kvm_pmu_ops by value to eliminate layer of indirection KVM: x86: Move kvm_ops_static_call_update() to x86.c KVM: x86/mmu: Derive EPT violation RWX bits from EPTE RWX bits KVM: VMX: replace 0x180 with EPT_VIOLATION_* definition x86/kvm: Don't waste kvmclock memory if there is nopv parameter kvm: vmx: remove redundant parentheses kvm: x86: Adjust the location of pkru_mask of kvm_mmu to reduce memory selftests: kvm/x86/xen: Replace a comma in the xen_shinfo_test with semicolon KVM: x86/xen: Remove the redundantly included header file lapic.h gpio: realtek-otto: Add RTL931x support dt-bindings: gpio: realtek-otto: Add rtl9310 compatible gpio: realtek-otto: Add RTL930x support gpio: realtek-otto: Support per-cpu interrupts gpio: realtek-otto: Support reversed port layouts dt-bindings: gpio: realtek-otto: Add rtl9300 compatible gpiolib: Extract gpio_chip_get_value() wrapper gpiolib: Refactor gpiolib_dbg_show() with help of for_each_gpio_desc() gpiolib: Split out for_each_gpio_desc() macro gpiolib: Embed iterator variable into for_each_gpio_desc_with_flag() gpiolib: Move error message out of a spinlock pinctrl: npcm7xx: Switch to use for_each_gpiochip_node() helper pinctrl: renesas: rza1: Switch to use for_each_gpiochip_node() helper pinctrl: renesas: rza1: Replace custom code by gpiochip_node_count() call pinctrl: stm32: Switch to use for_each_gpiochip_node() helper pinctrl: stm32: Replace custom code by gpiochip_node_count() call gpiolib: Introduce gpiochip_node_count() helper gpiolib: Introduce for_each_gpiochip_node() loop helper ftrace: move sysctl_ftrace_enabled to ftrace.c kernel/do_mount_initrd: move real_root_dev sysctls to its own file kernel/delayacct: move delayacct sysctls to its own file kernel/acct: move acct sysctls to its own file kernel/panic: move panic sysctls to its own file kernel/lockdep: move lockdep sysctls to its own file mm: move page-writeback sysctls to their own file mm: move oom_kill sysctls to their own file kernel/reboot: move reboot sysctls to its own file sched: Move energy_aware sysctls to topology.c sched: Move cfs_bandwidth_slice sysctls to fair.c sched: Move uclamp_util sysctls to core.c sched/rt: fix build error when CONFIG_SYSCTL is disable sched: Move rr_timeslice sysctls to rt.c sched: Move deadline_period sysctls to deadline.c sched: Move rt_period/runtime sysctls to rt.c sched: Move schedstats sysctls to core.c sched: Move child_runs_first sysctls to fair.c kbuild: do not remove empty *.symtypes explicitly kbuild: factor out genksyms command from cmd_gensymtypes_{c,S} docs: kbuild: add references on Kconfig semantics gpio: rcar: Add R-Car Gen4 support dt-bindings: gpio: renesas,rcar-gpio: Add r8a779f0 support gpiolib: Get rid of redundant 'else' kbuild: Allow kernel installation packaging to override pkg-config kbuild: uapi: use -fsyntax-only rather than -S dt-bindings: gpio: uniphier: Add hogs parsing KVM: x86/mmu: Don't rebuild page when the page is synced and no tlb flushing is required KVM: x86: optimize PKU branching in kvm_load_{guest|host}_xsave_state KVM: x86: SVM: allow AVIC to co-exist with a nested guest running KVM: x86: allow per cpu apicv inhibit reasons KVM: x86: nSVM: implement nested vGIF KVM: x86: nSVM: support PAUSE filtering when L0 doesn't intercept PAUSE KVM: x86: nSVM: implement nested LBR virtualization KVM: x86: nSVM: correctly virtualize LBR msrs when L2 is running KVM: x86: SVM: remove vgif_enabled() kvm: x86: SVM: use vmcb* instead of svm->vmcb where it makes sense KVM: x86: SVM: use vmcb01 in init_vmcb KVM: x86: Support the vCPU preemption check with nopvspin and realtime hint KVM: x86: Test case for TSC scaling and offset sync KVM: x86: Don't snapshot "max" TSC if host TSC is constant KVM: x86: Accept KVM_[GS]ET_TSC_KHZ as a VM ioctl. KVM: x86/i8259: Remove a dead store of irq in a conditional block KVM: VMX: Prepare VMCS setting for posted interrupt enabling when APICv is available KVM: x86/xen: Update self test for Xen PV timers KVM: x86/xen: Add self tests for KVM_XEN_HVM_CONFIG_EVTCHN_SEND KVM: x86/xen: handle PV spinlocks slowpath KVM: x86/xen: Advertise and document KVM_XEN_HVM_CONFIG_EVTCHN_SEND KVM: x86/xen: Support per-vCPU event channel upcall via local APIC KVM: x86/xen: Kernel acceleration for XENVER_version KVM: x86/xen: handle PV timers oneshot mode KVM: x86/xen: Add KVM_XEN_VCPU_ATTR_TYPE_VCPU_ID KVM: x86/xen: handle PV IPI vcpu yield KVM: x86/xen: intercept EVTCHNOP_send from guests KVM: x86/xen: Support direct injection of event channel events KVM: x86/xen: Make kvm_xen_set_evtchn() reusable from other places KVM: x86/xen: Use gfn_to_pfn_cache for vcpu_time_info KVM: x86/xen: Use gfn_to_pfn_cache for vcpu_info KVM: x86: Use gfn_to_pfn_cache for pv_time KVM: x86/xen: Use gfn_to_pfn_cache for runstate area KVM: x86: mark synthetic SMM vmexit as SVM_EXIT_SW KVM: x86: SVM: allow to force AVIC to be enabled KVM: x86: nSVM: implement nested VMLOAD/VMSAVE selftests: KVM: Test KVM_X86_QUIRK_FIX_HYPERCALL_INSN KVM: x86: Allow userspace to opt out of hypercall patching Conflicts: Documentation/devicetree/bindings Documentation/devicetree/bindings/gpio/gpio-pca95xx.yaml Documentation/devicetree/bindings/gpio/realtek,otto-gpio.yaml Documentation/devicetree/bindings/gpio/renesas,rcar-gpio.yaml Documentation/devicetree/bindings/gpio/socionext,uniphier-gpio.yaml Documentation/devicetree/bindings/mailbox/mtk,adsp-mbox.yaml Documentation/devicetree/bindings/mailbox/nvidia,tegra186-hsp.yaml Documentation/devicetree/bindings/mailbox/qcom-ipcc.yaml Documentation/devicetree/bindings/mailbox/st,stm32-ipcc.yaml Change-Id: I1a7d3bcfcbb7e38183af57932676c73a0d6918f7 Upstream-Build:ks_qcom-android-mainline-keystone-qcom-release@8784555 SKQ4.220629.002 Signed-off-by: jianzhou <quic_jianzhou@quicinc.com> |
||
|
9413e76405 |
kbuild: split the second line of *.mod into *.usyms
The *.mod files have two lines; the first line lists the member objects
of the module, and the second line, if CONFIG_TRIM_UNUSED_KSYMS=y, lists
the undefined symbols.
Currently, we generate *.mod after constructing composite modules,
otherwise, we cannot compute the second line. No prerequisite is
required to print the first line.
They are orthogonal. Splitting them into separate commands will ease
further cleanups.
This commit splits the list of undefined symbols out to *.usyms files.
Previously, the list of undefined symbols ended up with a very long
line, but now it has one symbol per line.
Use sed like we did before commit
|
||
|
8bec221456 |
.gitignore: ignore vendor dt softlink and generated configs
Update .gitignore list to ignore vendor devicetree softlink and also defconfig file generating in the kernel source directory. Change-Id: Ia09e4cb133da460de511bc0c5b9209fcddf05e27 Signed-off-by: Guru Das Srinagesh <quic_gurus@quicinc.com> |
||
|
40cb020305 |
.gitignore: ignore only top-level modules.builtin
modules.builtin used to be created in every directory.
Since commit
|
||
|
819cb9fc80 |
.gitignore: move tags and TAGS close to other tag files
For consistency, move tags and TAGS close to the cscope and GNU Global patterns. I removed the '/' prefix in case somebody wants to manually create tag files in sub-directories. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
|
69bc8d386a |
kbuild: generate Module.symvers only when vmlinux exists
The external module build shows the following warning if Module.symvers is missing in the kernel tree. WARNING: Symbol version dump "Module.symvers" is missing. Modules may not have dependencies or modversions. I think this is an important heads-up because the resulting modules may not work as expected. This happens when you did not build the entire kernel tree, for example, you might have prepared the minimal setups for external modules by 'make defconfig && make modules_preapre'. A problem is that 'make modules' creates Module.symvers even without vmlinux. In this case, that warning is suppressed since Module.symvers already exists in spite of its incomplete content. The incomplete (i.e. invalid) Module.symvers should not be created. This commit changes the second pass of modpost to dump symbols into modules-only.symvers. The final Module.symvers is created by concatenating vmlinux.symvers and modules-only.symvers if both exist. Module.symvers is supposed to collect symbols from both vmlinux and modules. It might be a bit confusing, and I am not quite sure if it is an official interface, but presumably it is difficult to rename it because some tools (e.g. kmod) parse it. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
|
5cc1247204 |
kbuild: add CONFIG_VMLINUX_MAP expert option
It can be quite useful to have ld emit a link map file, in order to debug or verify that special sections end up where they are supposed to, and to see what LD_DEAD_CODE_DATA_ELIMINATION manages to get rid of. The only reason I'm not just adding this unconditionally is that the .map file can be rather large (several MB), and that's a waste of space when one isn't interested in these things. Also make it depend on CONFIG_EXPERT. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
|
79db4d2293 |
clang-lto series for v5.12-rc1
- Clang LTO build infrastructure and arm64-specific enablement (Sami Tolvanen)
- Recursive build CC_FLAGS_LTO fix (Alexander Lobakin)
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEpcP2jyKd1g9yPm4TiXL039xtwCYFAmA0OEYACgkQiXL039xt
wCYGJw/8CcyvQUGmXYEZVDLMahKz93RYijiGuSTVnhl0pNAyfOojaZ8Z//eD1VNA
s82azW1XybbA6RnPGD7YQzYz27cSF2qUFDmplwVfE4mwBnPXzRxtVBDLSxksP1HS
77sCOu91QhbovPCWET4dSHLJB3DVc78FiW4lVlRgrglyAz+dut1iXYar5e7VNoS0
S4MwnqwteHC6YXP619rubhpdDoj7njuw1uxRIaodt9S/zRSpl5MCUgHmzQusgezs
yWDdPHPWHnF7xxKgwSvE7AKZPdOnIxKxRi6Yd6vUIyrYB3qLZkFe75nUsgMroAhs
/Bgrn69U2McMiJsOdh0ERzP2VNYfvMacBQ308nb45j83Bgv5l6uj8QOZU4ZogmXV
PsDzsfUe9GsxgYexfozGX61rpd6JinzQKVyoDW3oTT54fbBxO3uDqT8kOBw72dPT
9nkOxTzyb+UO0dpb/MhXLGkGcv8+lTA5ffVIKUx5UxKngRbukc3dxwVJgO4HmucK
bwVQGD83D+/if5/JL9WtQRjDwFEn+IFmdv+3cAXkRo4IIS18LPZB1MJncTeWr8Z9
HlkuDXlJOncUWCABGd1IKu1j0S2HpXV4qhqQXJ6PdfOvUPEaD9qgqEAjD5FxxyXF
wpaV2MWya5i1FGwD5UKhi8hVnAFJyF0/w+enjiPwlmIbjdyEVXE=
=6peY
-----END PGP SIGNATURE-----
Merge tag 'clang-lto-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux
Pull clang LTO updates from Kees Cook:
"Clang Link Time Optimization.
This is built on the work done preparing for LTO by arm64 folks,
tracing folks, etc. This includes the core changes as well as the
remaining pieces for arm64 (LTO has been the default build method on
Android for about 3 years now, as it is the prerequisite for the
Control Flow Integrity protections).
While x86 LTO enablement is done, it depends on some pending objtool
clean-ups. It's possible that I'll send a "part 2" pull request for
LTO that includes x86 support.
For merge log posterity, and as detailed in commit
|
||
|
ce88c9c794 |
kbuild: Add support to build overlays (%.dtbo)
Add support for building DT overlays (%.dtbo). The overlay's source file will have the usual extension, i.e. .dts, though the blob will have .dtbo extension to distinguish it from normal blobs. Acked-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/434ba2467dd0cd011565625aeb3450650afe0aae.1611904394.git.viresh.kumar@linaro.org |
||
|
38e8918490 |
kbuild: lto: fix module versioning
With CONFIG_MODVERSIONS, version information is linked into each compilation unit that exports symbols. With LTO, we cannot use this method as all C code is compiled into LLVM bitcode instead. This change collects symbol versions into .symversions files and merges them in link-vmlinux.sh where they are all linked into vmlinux.o at the same time. Signed-off-by: Sami Tolvanen <samitolvanen@google.com> Reviewed-by: Kees Cook <keescook@chromium.org> Signed-off-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20201211184633.3213045-4-samitolvanen@google.com |
||
|
f6236efced |
.gitignore: docs: ignore sphinx_*/ directories
The default way of building documentation is to use Sphinx toolchain installed via pip, inside the Kernel tree main directory. That's what's recommended by: scripts/sphinx-pre-install As it usually provides a better version of this package than the one installed, specially on LTS distros. So, add the directories created by running the commands suggested by the script. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Link: https://lore.kernel.org/r/ac4e23d556c7d95cb11d6d5c605f43e425b2c3c7.1599660067.git.mchehab+huawei@kernel.org Signed-off-by: Jonathan Corbet <corbet@lwn.net> |
||
|
6f3decabaf |
.gitignore: Add ZSTD-compressed files
For now, that's arch/x86/boot/compressed/vmlinux.bin.zst but probably more will come, thus let's be consistent with all other compressors. Signed-off-by: Adam Borowski <kilobyte@angband.pl> Signed-off-by: Nick Terrell <terrelln@fb.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Tested-by: Sedat Dilek <sedat.dilek@gmail.com> Reviewed-by: Kees Cook <keescook@chromium.org> Link: https://lore.kernel.org/r/20200730190841.2071656-8-nickrterrell@gmail.com |
||
|
ba77dca584 |
.gitignore: Do not track defconfig from make savedefconfig
Running `make savedefconfig` creates by default `defconfig`, which is, currently, on git’s radar, for example, `git status` lists this file as untracked. So, add the file to `.gitignore`, so it’s ignored by git. Signed-off-by: Paul Menzel <pmenzel@molgen.mpg.de> Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
|
269a535ca9 |
modpost: generate vmlinux.symvers and reuse it for the second modpost
The full build runs modpost twice, first for vmlinux.o and second for modules. The first pass dumps all the vmlinux symbols into Module.symvers, but the second pass parses vmlinux again instead of reusing the dump file, presumably because it needs to avoid accumulating stale symbols. Loading symbol info from a dump file is faster than parsing an ELF object. Besides, modpost deals with various issues to parse vmlinux in the second pass. A solution is to make the first pass dumps symbols into a separate file, vmlinux.symvers. The second pass reads it, and parses module .o files. The merged symbol information is dumped into Module.symvers in the same way as before. This makes further modpost cleanups possible. Also, it fixes the problem of 'make vmlinux', which previously overwrote Module.symvers, throwing away module symbols. I slightly touched scripts/link-vmlinux.sh so that vmlinux is re-linked when you cross this commit. Otherwise, vmlinux.symvers would not be generated. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> |
||
|
d198b34f38 |
.gitignore: add SPDX License Identifier
Add SPDX License Identifier to all .gitignore files. Signed-off-by: Masahiro Yamada <masahiroy@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
||
|
f3a60268f5 |
selftest/lkdtm: Use local .gitignore
Commit |
||
|
68ca0fd272 |
selftest/lkdtm: Don't pollute 'git status'
Commit |
||
|
bbc55bded4 |
modpost: dump missing namespaces into a single modules.nsdeps file
The modpost, with the -d option given, generates per-module .ns_deps files. Kbuild generates per-module .mod files to carry module information. This is convenient because Make handles multiple jobs in parallel when the -j option is given. On the other hand, the modpost always runs as a single thread. I do not see a strong reason to produce separate .ns_deps files. This commit changes the modpost to generate just one file, modules.nsdeps, each line of which has the following format: <module_name>: <list of missing namespaces> Please note it contains *missing* namespaces instead of required ones. So, modules.nsdeps is empty if the namespace dependency is all good. This will work more efficiently because spatch will no longer process already imported namespaces. I removed the '(if needed)' from the nsdeps log since spatch is invoked only when needed. This also solves the stale .ns_deps problem reported by Jessica Yu: https://lkml.org/lkml/2019/10/28/467 Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Tested-by: Jessica Yu <jeyu@kernel.org> Acked-by: Jessica Yu <jeyu@kernel.org> Reviewed-by: Matthias Maennich <maennich@google.com> Tested-by: Matthias Maennich <maennich@google.com> |
||
|
e070355664 |
Modules updates for v5.4
Summary of modules changes for the 5.4 merge window: - Introduce exported symbol namespaces. This new feature allows subsystem maintainers to partition and categorize their exported symbols into explicit namespaces. Module authors are now required to import the namespaces they need. Some of the main motivations of this feature include: allowing kernel developers to better manage the export surface, allow subsystem maintainers to explicitly state that usage of some exported symbols should only be limited to certain users (think: inter-module or inter-driver symbols, debugging symbols, etc), as well as more easily limiting the availability of namespaced symbols to other parts of the kernel. With the module import requirement, it is also easier to spot the misuse of exported symbols during patch review. Two new macros are introduced: EXPORT_SYMBOL_NS() and EXPORT_SYMBOL_NS_GPL(). The API is thoroughly documented in Documentation/kbuild/namespaces.rst. - Some small code and kbuild cleanups here and there. -----BEGIN PGP SIGNATURE----- iQIcBAABCgAGBQJdh3n8AAoJEMBFfjjOO8Fy94kP+QHZF39QDvLbxAzEYAETAS+o CFu6wix/DrAwFkTU/kX1eAsAwDBEz0xkMciR4BsLX3sIafUVERxtDXVAui/dA1+6 zfw2c3ObyVwPEk6aUPFprgkj+08gxujsJFlYTsQQUhtRbmxg6R7hD6t6ANxiHaY2 AQe5TzOWXoIa2hHO+7rPMqf8l6qiFCaL0s3v5jrmBXa5mHmc4PVy95h1J6xQVw2u b+SlvKeylHv+OtCtvthkAJS3hfS35J/1TNb/RNYIvh60IfEguEuFsGuQ9JiSSAZS pv1cJ+I5d4v8Y/md1rZpdjTJL9gCrq/UUC67+UkejCOn0C+7XM2eR4Bu/jWvdMSn ZQDHcPhFSIfmP7FaKomPogaBbw1sI1FvM5930pPJzHnyO9+cefBXe7rWaaB+y0At GAxOtmk1dKh01BT7YO/C0oVuX87csWd74NHypVsbs0TgQo5jBFdZRheyDrq5YB+s tVK+5H0nqQrCcfo/TvhcsZlgITTGtgTPenaW99/i7qNa9mRUtxC/VkE+aob6HNRF 1iBxxopOTxGN8akyKOVumtkuTQH3EJfouZee//pWbXLzyDmScg/k67vuao8kxbyq NA1piFAGJAHFsHATxrbvNOq6jZ5bfUT8pwSTs83JppuR++8Hxk7zaShS3/LvsvHt 6ist/epOwTZ7oiNQ04nj =72Uy -----END PGP SIGNATURE----- Merge tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux Pull modules updates from Jessica Yu: "The main bulk of this pull request introduces a new exported symbol namespaces feature. The number of exported symbols is increasingly growing with each release (we're at about 31k exports as of 5.3-rc7) and we currently have no way of visualizing how these symbols are "clustered" or making sense of this huge export surface. Namespacing exported symbols allows kernel developers to more explicitly partition and categorize exported symbols, as well as more easily limiting the availability of namespaced symbols to other parts of the kernel. For starters, we have introduced the USB_STORAGE namespace to demonstrate the API's usage. I have briefly summarized the feature and its main motivations in the tag below. Summary: - Introduce exported symbol namespaces. This new feature allows subsystem maintainers to partition and categorize their exported symbols into explicit namespaces. Module authors are now required to import the namespaces they need. Some of the main motivations of this feature include: allowing kernel developers to better manage the export surface, allow subsystem maintainers to explicitly state that usage of some exported symbols should only be limited to certain users (think: inter-module or inter-driver symbols, debugging symbols, etc), as well as more easily limiting the availability of namespaced symbols to other parts of the kernel. With the module import requirement, it is also easier to spot the misuse of exported symbols during patch review. Two new macros are introduced: EXPORT_SYMBOL_NS() and EXPORT_SYMBOL_NS_GPL(). The API is thoroughly documented in Documentation/kbuild/namespaces.rst. - Some small code and kbuild cleanups here and there" * tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux: module: Remove leftover '#undef' from export header module: remove unneeded casts in cmp_name() module: move CONFIG_UNUSED_SYMBOLS to the sub-menu of MODULES module: remove redundant 'depends on MODULES' module: Fix link failure due to invalid relocation on namespace offset usb-storage: export symbols in USB_STORAGE namespace usb-storage: remove single-use define for debugging docs: Add documentation for Symbol Namespaces scripts: Coccinelle script for namespace dependencies. modpost: add support for generating namespace dependencies export: allow definition default namespaces in Makefiles or sources module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS modpost: add support for symbol namespaces module: add support for symbol namespaces. export: explicitly align struct kernel_symbol module: support reading multiple values per modinfo tag |
||
|
1d082773ff |
modpost: add support for generating namespace dependencies
This patch adds an option to modpost to generate a <module>.ns_deps file per module, containing the namespace dependencies for that module. E.g. if the linked module my-module.ko would depend on the symbol myfunc.MY_NS in the namespace MY_NS, the my-module.ns_deps file created by modpost would contain the entry MY_NS to express the namespace dependency of my-module imposed by using the symbol myfunc. These files can subsequently be used by static analysis tools (like coccinelle scripts) to address issues with missing namespace imports. A later patch of this series will introduce such a script 'nsdeps' and a corresponding make target to automatically add missing MODULE_IMPORT_NS() definitions to the module's sources. For that it uses the information provided in the generated .ns_deps files. Co-developed-by: Martijn Coenen <maco@android.com> Signed-off-by: Martijn Coenen <maco@android.com> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Matthias Maennich <maennich@google.com> Signed-off-by: Jessica Yu <jeyu@kernel.org> |
||
|
a564bdeb5e |
.gitignore: ignore modules.order explicitly
The pattern '*.order' was added by commit
|
||
|
26c4c71bcd |
.gitignore: Add compilation database file
This file is used by clangd to use language server protocol. It can be generated at each compile using scripts/gen_compile_commands.py. Therefore it is different depending on the environment and should be ignored. Signed-off-by: Toru Komatsu <k0ma@utam0k.jp> Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
b7dca6dd1e |
kbuild: create *.mod with full directory path and remove MODVERDIR
While descending directories, Kbuild produces objects for modules, but do not link final *.ko files; it is done in the modpost. To keep track of modules, Kbuild creates a *.mod file in $(MODVERDIR) for every module it is building. Some post-processing steps read the necessary information from *.mod files. This avoids descending into directories again. This mechanism was introduced in 2003 or so. Later, commit |
||
|
f46e65da48 |
.gitignore: exclude .get_maintainer.ignore and .gitattributes
Also, sort the patterns alphabetically. Update the comment since we have non-git files here. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
7fb1fc420f |
.gitignore: add more all*.config patterns
For completeness, ignore all the allconfig variants. I added a leading slash because they are only searched in the top of the tree. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
898490c010 |
moduleparam: Save information about built-in modules in separate file
Problem: When a kernel module is compiled as a separate module, some important information about the kernel module is available via .modinfo section of the module. In contrast, when the kernel module is compiled into the kernel, that information is not available. Information about built-in modules is necessary in the following cases: 1. When it is necessary to find out what additional parameters can be passed to the kernel at boot time. 2. When you need to know which module names and their aliases are in the kernel. This is very useful for creating an initrd image. Proposal: The proposed patch does not remove .modinfo section with module information from the vmlinux at the build time and saves it into a separate file after kernel linking. So, the kernel does not increase in size and no additional information remains in it. Information is stored in the same format as in the separate modules (null-terminated string array). Because the .modinfo section is already exported with a separate modules, we are not creating a new API. It can be easily read in the userspace: $ tr '\0' '\n' < modules.builtin.modinfo ext4.softdep=pre: crc32c ext4.license=GPL ext4.description=Fourth Extended Filesystem ext4.author=Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others ext4.alias=fs-ext4 ext4.alias=ext3 ext4.alias=fs-ext3 ext4.alias=ext2 ext4.alias=fs-ext2 md_mod.alias=block-major-9-* md_mod.alias=md md_mod.description=MD RAID framework md_mod.license=GPL md_mod.parmtype=create_on_open:bool md_mod.parmtype=start_dirty_degraded:int ... Co-Developed-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> Signed-off-by: Gleb Fotengauer-Malinovskiy <glebfm@altlinux.org> Signed-off-by: Alexey Gladkov <gladkov.alexey@gmail.com> Acked-by: Jessica Yu <jeyu@kernel.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
1e35663e41 |
.gitignore: add leading and trailing slashes to generated directories
Clarify these directory paths are relative to the top of the source tree. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
4f0e3a57d6 |
kbuild: Add support for DT binding schema checks
This adds the build infrastructure for checking DT binding schema documents and validating dts files using the binding schema. Check DT binding schema documents: make dt_binding_check Build dts files and check using DT binding schema: make dtbs_check Optionally, DT_SCHEMA_FILES can be passed in with a schema file(s) to use for validation. This makes it easier to find and fix errors generated by a specific schema. Currently, the validation targets are separate from a normal build to avoid a hard dependency on the external DT schema project and because there are lots of warnings generated. Cc: Jonathan Corbet <corbet@lwn.net> Cc: Mark Rutland <mark.rutland@arm.com> Acked-by: Masahiro Yamada <yamada.masahiro@socionext.com> Cc: Michal Marek <michal.lkml@markovi.net> Cc: linux-doc@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: linux-kbuild@vger.kernel.org Signed-off-by: Rob Herring <robh@kernel.org> |
||
|
ca71b3ba4c |
Kbuild updates for v4.17 (2nd)
- pass HOSTLDFLAGS when compiling single .c host programs - build genksyms lexer and parser files instead of using shipped versions - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency - let the top .gitignore globally ignore artifacts generated by flex, bison, and asn1_compiler - let the top Makefile globally clean artifacts generated by flex, bison, and asn1_compiler - use safer .SECONDARY marker instead of .PRECIOUS to prevent intermediate files from being removed - support -fmacro-prefix-map option to make __FILE__ a relative path - fix # escaping to prepare for the future GNU Make release - clean up deb-pkg by using debian tools instead of handrolled source/changes generation - improve rpm-pkg portability by supporting kernel-install as a fallback of new-kernel-pkg - extend Kconfig listnewconfig target to provide more information -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJa0krLAAoJED2LAQed4NsGyCAP/3Vsb8A4sea7sE3LV6/aFUJp WcAm6PXcip1MXy7GI5yxFciwen3Z3ghQUer7fJKDcHR5c4mRSfKaqWp+TLHd6uux 7I4pV0FNx2PapcPu5T7wNZHN96p3xZC0Z66sq9BCZ/+gNyYmZLIDcBUSIOEk0nzJ IsvD46zy6R6KtEnycShKVscg4JyPXJIw1UBqsPDEFHg5l16ARkghND7e5zTW62Fi 2MqQxNXAksIKpxxoxPH/fIcNp1kFKVxYBH2CW4LQtOjC3GmrozdeV5PUc7yTezPc dpqOuEcIAbMH91bkvhhF+ZBi34YrxRoT4S8B3G9iCXRz+2LRZZaitqO4dAH8Kjbn 0KjkqzNc5TosJXQ8RPTcQlRBi+JmE1bHxICvTx3XNJcqJMqIH0vs3ez/LJKOwhB4 DbAROoxQNfVcOdouHcx2EuCSdHn24BEyzaGFhi04LACpbRLxr8IJS7hSGXRloBYp K3ydRvG/dCZjFRTS+xWWSi3Nzjih2mCctQlH3D4nf4M3vtCX+/k5B9IMEYFfHlvL KoNlK4/1vP/dAJZj0iOqd2ksCA1G6iLoHrFp3E5pdtmb4sVe2Ez3gMt+pxz3htR9 XvjuHOzkWE9eiihs1NsFgQuyP/o3UmNKpDDW0irQ06IFEPXkA/y1mVmeTU3qtrII ZDiwGozIkMMEy/MLkcjE =tD6R -----END PGP SIGNATURE----- Merge tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull more Kbuild updates from Masahiro Yamada: - pass HOSTLDFLAGS when compiling single .c host programs - build genksyms lexer and parser files instead of using shipped versions - rename *-asn1.[ch] to *.asn1.[ch] for suffix consistency - let the top .gitignore globally ignore artifacts generated by flex, bison, and asn1_compiler - let the top Makefile globally clean artifacts generated by flex, bison, and asn1_compiler - use safer .SECONDARY marker instead of .PRECIOUS to prevent intermediate files from being removed - support -fmacro-prefix-map option to make __FILE__ a relative path - fix # escaping to prepare for the future GNU Make release - clean up deb-pkg by using debian tools instead of handrolled source/changes generation - improve rpm-pkg portability by supporting kernel-install as a fallback of new-kernel-pkg - extend Kconfig listnewconfig target to provide more information * tag 'kbuild-v4.17-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kconfig: extend output of 'listnewconfig' kbuild: rpm-pkg: use kernel-install as a fallback for new-kernel-pkg Kbuild: fix # escaping in .cmd files for future Make kbuild: deb-pkg: split generating packaging and build kbuild: use -fmacro-prefix-map to make __FILE__ a relative path kbuild: mark $(targets) as .SECONDARY and remove .PRECIOUS markers kbuild: rename *-asn1.[ch] to *.asn1.[ch] kbuild: clean up *-asn1.[ch] patterns from top-level Makefile .gitignore: move *-asn1.[ch] patterns to the top-level .gitignore kbuild: add %.dtb.S and %.dtb to 'targets' automatically kbuild: add %.lex.c and %.tab.[ch] to 'targets' automatically genksyms: generate lexer and parser during build instead of shipping kbuild: clean up *.lex.c and *.tab.[ch] patterns from top-level Makefile .gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore kbuild: use HOSTLDFLAGS for single .c executables |
||
|
d4ef8d3ff0 |
clang-format: add configuration file
clang-format is a tool to format C/C++/... code according to a set of rules and heuristics. Like most tools, it is not perfect nor covers every single case, but it is good enough to be helpful. In particular, it is useful for quickly re-formatting blocks of code automatically, for reviewing full files in order to spot coding style mistakes, typos and possible improvements. It is also handy for sorting ``#includes``, for aligning variables and macros, for reflowing text and other similar tasks. It also serves as a teaching tool/guide for newcomers. The tool itself has been already included in the repositories of popular Linux distributions for a long time. The rules in this file are intended for clang-format >= 4, which is easily available in most distributions. This commit adds the configuration file that contains the rules that the tool uses to know how to format the code according to the kernel coding style. This gives us several advantages: * clang-format works out of the box with reasonable defaults; avoiding that everyone has to re-do the configuration. * Everyone agrees (eventually) on what is the most useful default configuration for most of the kernel. * If it becomes commonplace among kernel developers, clang-format may feel compelled to support us better. They already recognize the Linux kernel and its style in their documentation and in one of the style sub-options. Some of clang-format's features relevant for the kernel are: * Uses clang's tooling support behind the scenes to parse and rewrite the code. It is not based on ad-hoc regexps. * Supports reasonably well the Linux kernel coding style. * Fast enough to be used at the press of a key. * There are already integrations (either built-in or third-party) for many common editors used by kernel developers (e.g. vim, emacs, Sublime, Atom...) that allow you to format an entire file or, more usefully, just your selection. * Able to parse unified diffs -- you can, for instance, reformat only the lines changed by a git commit. * Able to reflow text comments as well. * Widely supported and used by hundreds of developers in highly complex projects and organizations (e.g. the LLVM project itself, Chromium, WebKit, Google, Mozilla...). Therefore, it will be supported for a long time. See more information about the tool at: https://clang.llvm.org/docs/ClangFormat.html https://clang.llvm.org/docs/ClangFormatStyleOptions.html Link: http://lkml.kernel.org/r/20180318171632.qfkemw3mwbcukth6@gmail.com Signed-off-by: Miguel Ojeda <miguel.ojeda.sandonis@gmail.com> Cc: Randy Dunlap <rdunlap@infradead.org> Cc: Andy Whitcroft <apw@canonical.com> Cc: Joe Perches <joe@perches.com> Cc: Jonathan Corbet <corbet@lwn.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
|
4fa8bc949d |
kbuild: rename *-asn1.[ch] to *.asn1.[ch]
Our convention is to distinguish file types by suffixes with a period as a separator. *-asn1.[ch] is a different pattern from other generated sources such as *.lex.c, *.tab.[ch], *.dtb.S, etc. More confusing, files with '-asn1.[ch]' are generated files, but '_asn1.[ch]' are checked-in files: net/netfilter/nf_conntrack_h323_asn1.c include/linux/netfilter/nf_conntrack_h323_asn1.h include/linux/sunrpc/gss_asn1.h Rename generated files to *.asn1.[ch] for consistency. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
9ce285cfe3 |
.gitignore: move *-asn1.[ch] patterns to the top-level .gitignore
These are common patterns where source files are parsed by the asn1_compiler. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
5988930027 |
.gitignore: move *.lex.c *.tab.[ch] patterns to the top-level .gitignore
These patterns are common to host programs that require lexer and parser. Move them to the top .gitignore. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Frank Rowand <frowand.list@gmail.com> |
||
|
fbfa9be990 |
kbuild: move include/config/ksym/* to include/ksym/*
The idea of using fixdep was inspired by Kconfig, but autoksyms belongs to a different group. So, I want to move those touched files under include/config/ksym/ to include/ksym/. The directory include/ksym/ can be removed by 'make clean' because it is meaningless for the external module building. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Acked-by: Nicolas Pitre <nico@linaro.org> |
||
|
d682026dd3 |
.gitignore: ignore ASN.1 auto generated files
when build kernel with default configure, files: generatenet/ipv4/netfilter/nf_nat_snmp_basic-asn1.c net/ipv4/netfilter/nf_nat_snmp_basic-asn1.h will be automatically generated by ASN.1 compiler, so No need to track them in git, it's better to ignore them. Signed-off-by: Zhu Lingshan <lszhu@suse.com> Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org> |
||
|
5704d4557f |
scripts/package: snap-pkg target
Following in footsteps of other targets like 'deb-pkg, 'rpm-pkg' and 'tar-pkg', this patch adds a 'snap-pkg' target for the creation of a Linux kernel snap package using the kbuild infrastructure. A snap, in its general form, is a self contained, sandboxed, universal package and it is intended to work across multiple distributions and/or devices. A snap package is distributed as a single compressed squashfs filesystem. A kernel snap is a snap package carrying the Linux kernel, kernel modules, accessory files (DTBs, System.map, etc) and a manifesto file. The purpose of a kernel snap is to carry the Linux kernel during the creation of a system image, eg. Ubuntu Core, and its subsequent upgrades. For more information on snap packages: https://snapcraft.io/docs/ Signed-off-by: Paolo Pisati <paolo.pisati@canonical.com> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
2ce079f04d |
Kbuild misc updates for v4.15
- Clean up and fix RPM package build - Fix a warning in DEB package build - Improve coccicheck script - Improve some semantic patches -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAABAgAGBQJaDxwTAAoJED2LAQed4NsGtJAQAK1VnxVqcGznoy0CXg7vA93D iIstHN1AR1uFJgTEFU7PwKDd7zJ78R1lN0BeZat70RS4pv8YMvCFpjPajMbF0KHz zjRARuy+MKbWQVBGg7BjFaFcQqLrYLasIfp3nXDOBoyTxvaqvV/4HtyKISxYnY1n 3vSoVm/JacwT9KZ3496eV8hZcO2pbpo4PvT5T/WGKzHCnHRjv40kCMj8a+BDLWWD LJ5CHXQRmzMTBR8J7OMVbaUl8JgJb/Gl6yAKnfNXVqaxzSMunWMC0cUEXjJ3kxEf wmthF99p4Og8Fe+eT5yUzODwPdH/JDqULaMKo1BSuQbB0ck0BRavlRvvTlv7ptKk 5eoHoxop0GCNgsbhcXhpTQTDLqkGBtLVUD6pjUVGF5mtHIJ1m4GnNJ+4+cf453lr szhg0mOATydkOTQYg1oeWACXfoagbSieQQsQx5LIX3HTx3I+RW9FGEB7TltEGuoL cE+ijhIZZmFo7wHjcdW2FPV0A+qRYRPW//O2t7Zu/S/uRkrgTmpvIKPtoAfj7y+4 c74LcsWyVB1TCMtbc2oJUyY6ltDuwTEA9i/FCr+GgaG3OHbmw7YEYewbhV9m4+Yr t3jNwJ+6TuxWX23RQPFgalAlf8XMr5MM0cF89Io0BZEIaoWWIGw1YiMxzL0Su61h eauy22XUBzZ2ewkcuq3v =7aYW -----END PGP SIGNATURE----- Merge tag 'kbuild-misc-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild misc updates from Masahiro Yamada: - Clean up and fix RPM package build - Fix a warning in DEB package build - Improve coccicheck script - Improve some semantic patches * tag 'kbuild-misc-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: docs: dev-tools: coccinelle: delete out of date wiki reference coccinelle: orplus: reorganize to improve performance coccinelle: use exists to improve efficiency builddeb: Pass the kernel:debarch substvar to dpkg-genchanges Coccinelle: use false positive annotation coccinelle: fix verbose message about .cocci file being run coccinelle: grep Options and Requires fields more precisely Coccinelle: make DEBUG_FILE option more useful coccinelle: api: detect identical chip data arrays coccinelle: Improve setup_timer.cocci matching Coccinelle: setup_timer: improve messages from setup_timer kbuild: rpm-pkg: do not force -jN in submake kbuild: rpm-pkg: keep spec file until make mrproper kbuild: rpm-pkg: fix jobserver unavailable warning kbuild: rpm-pkg: replace $RPM_BUILD_ROOT with %{buildroot} kbuild: rpm-pkg: fix build error when CONFIG_MODULES is disabled kbuild: rpm-pkg: refactor mkspec with here doc kbuild: rpm-pkg: clean up mkspec kbuild: rpm-pkg: install vmlinux.bz2 unconditionally kbuild: rpm-pkg: remove ppc64 specific image handling |
||
|
af60e20708 |
kbuild: rpm-pkg: keep spec file until make mrproper
If build fails during (bin)rpm-pkg, the spec file is not cleaned by anyone until the next successful build of the package. We do not have to immediately delete the spec file in case somebody may want to take a look at it. Instead, make them ignored by git, and cleaned up by make mrproper. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
10b62a2f78 |
.gitignore: move *.dtb and *.dtb.S patterns to the top-level .gitignore
Most of DT files are compiled under arch/*/boot/dts/, but we have some other directories, like drivers/of/unittest-data/. We often miss to add gitignore patterns per directory. Since there are no source files that end with .dtb or .dtb.S, we can ignore the patterns globally. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Rob Herring <robh@kernel.org> |
||
|
1377dd3e29 |
.gitignore: sort normal pattern rules alphabetically
We are having more and more ignore patterns. Sort the list alphabetically. We will easily catch duplicated patterns if any. Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> Signed-off-by: Rob Herring <robh@kernel.org> |
||
|
433db3e260 |
kbuild: Add support to generate LLVM assembly files
Add rules to kbuild in order to generate LLVM assembly files with the .ll extension when using clang. # from c code make CC=clang kernel/pid.ll Signed-off-by: Vinícius Tinti <viniciustinti@gmail.com> Signed-off-by: Behan Webster <behanw@converseincode.com> Signed-off-by: Matthias Kaehlcke <mka@chromium.org> Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com> |
||
|
44cee85a88 |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild updates from Michal Marek: - coccicheck script improvements by Luis Rodriguez and Deepa Dinamani - new coccinelle patches by Yann Droneaud and Vaishali Thakkar - debian packaging fixes by Wilfried Klaebe, Henning Schild and Marcin Mielniczuk * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: Fix the Debian packaging script on systems with no codename builddeb: fix file permissions before packaging scripts/coccinelle: require coccinelle >= 1.0.4 on device_node_continue.cocci coccicheck: refer to Documentation/coccinelle.txt and wiki coccicheck: add support for requring a coccinelle version scripts: add Linux .cocciconfig for coccinelle coccicheck: replace --very-quiet with --quiet when debugging coccicheck: add support for DEBUG_FILE coccicheck: enable parmap support coccicheck: make SPFLAGS more useful coccicheck: move spatch binary check up builddeb: really include objtool binary in headers package coccinelle: catch krealloc() on devm_*() allocated memory coccinelle: recognize more devm_* memory allocation functions coccinelle: also catch kzfree() issues coccicheck: Allow for overriding spatch flags Coccinelle: noderef: Add new rules and correct the old rule |
||
|
dd951fc1b6 |
scripts: add Linux .cocciconfig for coccinelle
Coccinelle supports reading .cocciconfig, the order of precedence for variables for .cocciconfig is as follows: o Your current user's home directory is processed first o Your directory from which spatch is called is processed next o The directory provided with the --dir option is processed last, if used Since coccicheck runs through make, it naturally runs from the kernel proper dir, as such the second rule above would be implied for picking up a .cocciconfig when using 'make coccicheck'. 'make coccicheck' also supports using M= targets.If you do not supply any M= target, it is assumed you want to target the entire kernel. The kernel coccicheck script has: if [ "$KBUILD_EXTMOD" = "" ] ; then OPTIONS="--dir $srctree $COCCIINCLUDE" else OPTIONS="--dir $KBUILD_EXTMOD $COCCIINCLUDE" fi KBUILD_EXTMOD is set when an explicit target with M= is used. For both cases the spatch --dir argument is used, as such third rule applies when whether M= is used or not, and when M= is used the target directory can have its own .cocciconfig file. When M= is not passed as an argument to coccicheck the target directory is the same as the directory from where spatch was called. If not using the kernel's coccicheck target, keep the above precedence order logic of .cocciconfig reading. If using the kernel's coccicheck target, override any of the kernel's .coccicheck's settings using SPFLAGS. We help Coccinelle when used against Linux with a set of sensible defaults options for Linux with our own Linux .cocciconfig. This hints to coccinelle git can be used for 'git grep' queries over coccigrep. A timeout of 200 seconds should suffice for now. The options picked up by coccinelle when reading a .cocciconfig do not appear as arguments to spatch processes running on your system, to confirm what options will be used by Coccinelle run: spatch --print-options-only You can override with your own preferred index option by using SPFLAGS. Coccinelle supports both glimpse and idutils. Glimpse had historically provided the best performance, however recent benchmarks reveal idutils is performing just as well. Due to some recent fixes however you however will need at least coccinelle >= 1.0.6 if using idutils. Coccinelle carries a script scripts/idutils_index.sh which creates the idutils database with as follows: mkid -i C --output .id-utils.index If using just "--use-idutils" coccinelle expects your idutils database to be on the top level of the kernel as a file named ".id-utils.index". If you do not use this you can symlink your database file to it, or you can specify the database file following the "--use-idutils" argument. Examples: make SPFLAGS=--use-idutils coccicheck This assumes you have $srctree/.id-utils.index, where $srctree is the top level of the kernel. make SPFLAGS="--use-idutils /full-path/to/ID" coccicheck Here you specify the full path of the idutils ID database. Using .cocciconfig is possible, however given the order of precedence followed by Coccinelle, and since the kernel now carries its own .cocciconfig, you will need to use SPFLAGS to use idutils if desired. v4: o Recommend upgrade for using idutils with coccinelle due to some recent fixes. o Refer to using --print-options-only for testing what options are picked up by .cocciconfig reading. o Expand commit log considerably explaining *why* .cocconfig from two precedence rules are used when using coccicheck, and how to properly override these if needed. o Expand Documentation/coccinelle.txt v3: Expand commit log a bit more Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org> Acked-by: Julia Lawall <julia.lawall@lip6.fr> Signed-off-by: Michal Marek <mmarek@suse.com> |
||
|
6b90bd4ba4 |
GCC plugin infrastructure
This patch allows to build the whole kernel with GCC plugins. It was ported from grsecurity/PaX. The infrastructure supports building out-of-tree modules and building in a separate directory. Cross-compilation is supported too. Currently the x86, arm, arm64 and uml architectures enable plugins. The directory of the gcc plugins is scripts/gcc-plugins. You can use a file or a directory there. The plugins compile with these options: * -fno-rtti: gcc is compiled with this option so the plugins must use it too * -fno-exceptions: this is inherited from gcc too * -fasynchronous-unwind-tables: this is inherited from gcc too * -ggdb: it is useful for debugging a plugin (better backtrace on internal errors) * -Wno-narrowing: to suppress warnings from gcc headers (ipa-utils.h) * -Wno-unused-variable: to suppress warnings from gcc headers (gcc_version variable, plugin-version.h) The infrastructure introduces a new Makefile target called gcc-plugins. It supports all gcc versions from 4.5 to 6.0. The scripts/gcc-plugin.sh script chooses the proper host compiler (gcc-4.7 can be built by either gcc or g++). This script also checks the availability of the included headers in scripts/gcc-plugins/gcc-common.h. The gcc-common.h header contains frequently included headers for GCC plugins and it has a compatibility layer for the supported gcc versions. The gcc-generate-*-pass.h headers automatically generate the registration structures for GIMPLE, SIMPLE_IPA, IPA and RTL passes. Note that 'make clean' keeps the *.so files (only the distclean or mrproper targets clean all) because they are needed for out-of-tree modules. Based on work created by the PaX Team. Signed-off-by: Emese Revfy <re.emese@gmail.com> Acked-by: Kees Cook <keescook@chromium.org> Signed-off-by: Michal Marek <mmarek@suse.com> |
||
|
52bbe141f3 |
gitignore: fix wording
Git files are the files that we don't want to ignore even if they are dot-files. It must be "even if" but it says "even it". Signed-off-by: Kyeongmin Cho <korea.drzix@gmail.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz> |
||
|
d9241b22b5 |
Merge branch 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild
Pull misc kbuild updates from Michal Marek: - deb-pkg: + module signing fix + dtb files are added to the package + do not require `hostname -f` to work during build + make deb-pkg generates a source package, bindeb-pkg has been added to only generate the binary package - rpm-pkg packages /lib/modules as well - new coccinelle patch and updates to existing ones - new stackusage & stackdelta script to collect and compare stack usage info (using gcc's -fstack-usage) - make tags understands trace_*_rcuidle() macros - .gitignore updates, misc cleanups * 'misc' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild: (27 commits) deb-pkg: add source package package/Makefile: move source tar creation to a function scripts: add stackdelta script kbuild: remove *.su files generated by -fstack-usage .gitignore: add *.su pattern scripts: add stackusage script kbuild: avoid listing /lib/modules in kernel spec file fallback to hostname in scripts/package/builddeb coccinelle: api: extend spatch for dropping unnecessary owner deb-pkg: simplify directory creation scripts/tags.sh: Include trace_*_rcuidle() in tags scripts/package/Makefile: rpmbuild is needed for rpm targets Kbuild: Add ID files to .gitignore gitignore: Add MIPS vmlinux.32 to the list coccinelle: simple_return: Add a blank line coccinelle: irqf_oneshot.cocci: Improve the generated commit log coccinelle: api: add vma_pages.cocci scripts/coccinelle/misc/irqf_oneshot.cocci: Fix grammar scripts/coccinelle/misc/semicolon.cocci: Use imperative mood coccinelle: simple_open: Use imperative mood ... |
||
|
e25572878a |
.gitignore: add *.su pattern
Ignore the *.su files generated by using the gcc option -fstack-usage. Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk> Signed-off-by: Michal Marek <mmarek@suse.com> |
||
|
fb11794991 |
modsign: Use single PEM file for autogenerated key
The current rule for generating signing_key.priv and signing_key.x509 is a classic example of a bad rule which has a tendency to break parallel make. When invoked to create *either* target, it generates the other target as a side-effect that make didn't predict. So let's switch to using a single file signing_key.pem which contains both key and certificate. That matches what we do in the case of an external key specified by CONFIG_MODULE_SIG_KEY anyway, so it's also slightly cleaner. Signed-off-by: David Woodhouse <David.Woodhouse@intel.com> Signed-off-by: David Howells <dhowells@redhat.com> |
||
|
a37161c058 |
Kbuild: Add ID files to .gitignore
I use GNU id-utils to find code (essentially a database backed grep), which generates an ID file to maintain its data. Add ID to the .gitignore file. Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Michal Marek <mmarek@suse.cz> |
||
|
d0fe116b45 |
gitignore: Add MIPS vmlinux.32 to the list
MIPS64 kernels builds will produce a vmlinux.32 kernel image for compatibility, ignore them. Signed-off-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: Michal Marek <mmarek@suse.cz> |