aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
65 min.Merge branch into tip/master: 'x86/sgx'HEADmasterIngo Molnar4-31/+5
# New commits in x86/sgx: ed16618c380c ("x86/sgx: Prevent attempts to reclaim poisoned pages") e59236b5a09e ("x86/sgx: Use SHA-256 library API instead of crypto_shash API") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/sev'Ingo Molnar6-1/+360
# New commits in x86/sev: e396dd85172c ("x86/sev: Register tpm-svsm platform device") 93b7c6b3ce91 ("tpm: Add SNP SVSM vTPM driver") b2849b072366 ("svsm: Add header with SVSM_VTPM_CMD helpers") 770de678bc28 ("x86/sev: Add SVSM vTPM probe/send_command functions") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/mtrr'Ingo Molnar1-1/+1
# New commits in x86/mtrr: 824c6384e8d9 ("x86/mtrr: Check if fixed-range MTRRs exist in mtrr_save_fixed_ranges()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/kconfig'Ingo Molnar2-0/+29
# New commits in x86/kconfig: ad9b861824ac ("x86/kbuild/64: Restrict clang versions that can use '-march=native'") 01412081863a ("x86/kbuild/64: Test for the availability of the -mtune=native compiler flag") ea1dcca1de12 ("x86/kbuild/64: Add the CONFIG_X86_NATIVE_CPU option to locally optimize the kernel with '-march=native'") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/entry'Ingo Molnar3-35/+12
# New commits in x86/entry: bdb30d565f4b ("x86/vdso: Remove redundant #ifdeffery around in_ia32_syscall()") 2ce8043b1d34 ("x86/vdso: Remove #ifdeffery around page setup variants") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/debug'Ingo Molnar7-60/+9
# New commits in x86/debug: 06aa9378df01 ("x86/tracing, x86/mm: Move page fault tracepoints to generic") d49ae4172cff ("x86/tracing, x86/mm: Remove redundant trace_pagefault_key") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/core'Ingo Molnar2-3/+2
# New commits in x86/core: 54c2c688cd93 ("x86/xen/msr: Fix uninitialized variable 'err'") 9220aa8a6779 ("x86/msr: Remove a superfluous inclusion of <asm/asm.h>") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/cleanups'Ingo Molnar3-2/+7
# New commits in x86/cleanups: f449bf98b7b6 ("x86/power: hibernate: Fix W=1 build kernel-doc warnings") bd6afa43eee1 ("x86/mm/pat: Fix W=1 build kernel-doc warning") 003f144ca046 ("x86/CPU/AMD: Replace strcpy() with strscpy()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'timers/core'Ingo Molnar8-121/+46
# New commits in timers/core: 6c58d2791d60 ("tick/nohz: Remove unused tick_nohz_full_add_cpus_to()") 08d7becc1a6b ("clocksource: Fix the CPUs' choice in the watchdog per CPU verification") 2117c1d503b4 ("alarmtimer: Switch spin_{lock,unlock}_irqsave() to guards") d8ca84d48a2a ("alarmtimer: Remove dead return value in clock2alarm()") 007c07168ac0 ("time/jiffies: Change register_refined_jiffies() to void __init") 49916e22d953 ("timers: Remove unused __round_jiffies(_up)") 0df6db767a53 ("posix-timers: Initialize cache early and move pointer into __timer_data") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'timers/cleanups'Ingo Molnar29-78/+78
# New commits in timers/cleanups: aad823aa3a7d ("treewide, timers: Rename destroy_timer_on_stack() as timer_destroy_on_stack()") 367ed4e35734 ("treewide, timers: Rename try_to_del_timer_sync() as timer_delete_sync_try()") 751e6a394c2e ("timers: Rename init_timers() as timers_init()") 220beffd36c2 ("timers: Rename NEXT_TIMER_MAX_DELTA as TIMER_NEXT_MAX_DELTA") 9a716ac6eaaa ("timers: Rename __init_timer_on_stack() as __timer_init_on_stack()") 9505215b6b32 ("timers: Rename __init_timer() as __timer_init()") 7879d10de331 ("timers: Rename init_timer_on_stack_key() as timer_init_key_on_stack()") e86e43907f94 ("timers: Rename init_timer_key() as timer_init_key()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'sched/core'Ingo Molnar17-203/+354
# New commits in sched/core: 676e8cf70cb0 ("sched,livepatch: Untangle cond_resched() and live-patching") b7ca5743a260 ("sched/core: Tweak wait_task_inactive() to force dequeue sched_delayed tasks") c70fc32f4443 ("sched/fair: Adhere to place_entity() constraints") 44671e21e346 ("sched/debug: Print the local group's asym_prefer_cpu") 8157fbc90745 ("cpufreq/amd-pstate: Update asym_prefer_cpu when core rankings change") 0e3f6c369642 ("sched/topology: Introduce sched_update_asym_prefer_cpu()") 872aa4de1888 ("sched/fair: Use READ_ONCE() to read sg->asym_prefer_cpu") 6432e163ba1b ("sched/isolation: Make use of more than one housekeeping cpu") 690e47d1403e ("sched/rt: Fix race in push_rt_task") 0ab94c324274 ("sched: Add annotations to RT_GROUP_SCHED fields") 87f1fb77d87a ("sched: Add RT_GROUP WARN checks for non-root task_groups") d6809c2f606c ("sched: Do not construct nor expose RT_GROUP_SCHED structures if disabled") 277e0909754e ("sched: Bypass bandwitdh checks with runtime disabled RT_GROUP_SCHED") 61d3164fec2e ("sched: Skip non-root task_groups with disabled RT_GROUP_SCHED") e34e0131fea1 ("sched: Add commadline option for RT_GROUP_SCHED toggling") a5a25b32c08a ("sched: Always initialize rt_rq's task_group") e285313f0848 ("sched: Remove unneeed macro wrap") 433bce5dadb4 ("sched: Convert CONFIG_RT_GROUP_SCHED macros to code conditions") f2d650618bc7 ("sched/fair: Allow decaying util_est when util_avg > CPU capa") ce29a7da84cd ("sched/topology: Refinement to topology_span_sane speedup") f55dac1dafb3 ("sched/topology: improve topology_span_sane speed") 8feb053d5319 ("sched: Fix trace_sched_switch(.prev_state)") 3e816361e94a ("sched/tracepoints: Move and extend the sched_process_exit() tracepoint") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'perf/core'Ingo Molnar5-17/+33
# New commits in perf/core: ca559503b89c ("perf/core: Add the is_event_in_freq_mode() helper to simplify the code") 75a9001bab36 ("perf/x86/intel/ds: Remove redundant assignments to sample.period") 18049c8cff9c ("perf/aux: Allocate non-contiguous AUX pages by default") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'objtool/core'Ingo Molnar2-1/+38
# New commits in objtool/core: 4ed9d82bf5b2 ("objtool: Speed up SHT_GROUP reindexing") 2cb291596e2c ("objtool: Fix up st_info in COMDAT group section") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'locking/futex'Ingo Molnar35-563/+2505
# New commits in locking/futex: bd59f6170968 ("futex: Fix kernel-doc comments") 094ac8cff785 ("futex: Relax the rcu_assign_pointer() assignment of mm->futex_phash in futex_mm_init()") 01475aedfdfa ("futex: Fix outdated comment in struct restart_block") 9140f57c1c13 ("futex,selftests: Add another FUTEX2_NUMA selftest") 3163369407ba ("selftests/futex: Add futex_numa_mpol") cda95faef7bc ("selftests/futex: Add futex_priv_hash") 8b4a5c2497fa ("selftests/futex: Build without headers nonsense") 60035a3981a7 ("tools/perf: Allow to select the number of hash buckets") f25051dce97c ("tools headers: Synchronize prctl.h ABI header") c042c505210d ("futex: Implement FUTEX2_MPOL") cec199c5e39b ("futex: Implement FUTEX2_NUMA") 63e8595c060a ("futex: Allow to make the private hash immutable") bd54df5ea7ca ("futex: Allow to resize the private local hash") 7c4f75a21f63 ("futex: Allow automatic allocation of process wide futex hash") 80367ad01d93 ("futex: Add basic infrastructure for local task local hash") 9a9bdfdd6873 ("futex: Create helper function to initialize a hash slot") b04b8f3032aa ("futex: Introduce futex_q_lockptr_lock()") fe00e88d217a ("futex: Decrease the waiter count before the unlock operation") 3f6b233018af ("futex: Acquire a hash reference in futex_wait_multiple_setup()") d854e4e7850e ("futex: Create private_hash() get/put class") 6c67f8d880c0 ("futex: Create futex_hash() get/put class") 8486d12f558f ("futex: Create hb scopes") 2fb292096d95 ("futex: Pull futex_hash() out of futex_q_lock()") 93f1b6d79a73 ("futex: Move futex_queue() into futex_wait_setup()") 55284f70134f ("mm: Add vmalloc_huge_node()") 3efa66ce6ee1 ("rcuref: Provide rcuref_is_dead()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'locking/core'Ingo Molnar3-35/+44
# New commits in locking/core: cdb7d2d68cde ("locking/lockdep: Add number of dynamic keys to /proc/lockdep_stats") 6a1a219f535a ("locking/lockdep: Prevent abuse of lockdep subclass") 96ca1830e121 ("locking/lockdep: Move hlock_equal() to the respective #ifdeffery") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'irq/msi'Ingo Molnar34-515/+601
# New commits in irq/msi: 944242787695 ("PCI: tegra: Convert to MSI parent infrastructure") ae79351ef280 ("PCI: xgene: Convert to MSI parent infrastructure") 5d627a9484ec ("PCI: apple: Convert to MSI parent infrastructure") 06526443a34c ("irqchip/msi-lib: Honour the MSI_FLAG_NO_AFFINITY flag") b35961ce0a97 ("irqchip/mvebu: Convert to msi_create_parent_irq_domain() helper") c6b77822347a ("irqchip/gic: Convert to msi_create_parent_irq_domain() helper") e4d001b54f78 ("genirq/msi: Add helper for creating MSI-parent irq domains") e51b27438a10 ("irqchip: Make irq-msi-lib.h globally available") 7dd20bf2f010 ("irqchip/gic-v3-its: Use allocation size from the prepare call") 03c298760ed9 ("genirq/msi: Engage the .msi_teardown() callback on domain removal") 1396e89e09f0 ("genirq/msi: Move prepare() call to per-device allocation") 713335b6ee29 ("irqchip/gic-v3-its: Implement .msi_teardown() callback") 28026cf2dd84 ("genirq/msi: Add .msi_teardown() callback as the reverse of .msi_prepare()") f1680d9081e1 ("irqchip/gic-v3-its: Add support for device tree msi-map and msi-mask") a6aed6b9c79e ("dt-bindings: PCI: pci-ep: Add support for iommu-map and msi-map") fd120c38fefd ("irqchip/gic-v3-its: Set IRQ_DOMAIN_FLAG_MSI_IMMUTABLE for ITS") b8c7bfb7a0f0 ("irqdomain: Add IRQ_DOMAIN_FLAG_MSI_IMMUTABLE and irq_domain_is_msi_immutable()") 9a958e1fd40d ("platform-msi: Add msi_remove_device_irq_domain() in platform_device_msi_free_irqs_all()") 9357e329cdeb ("genirq/msi: Rename msi_[un]lock_descs()") e46a28cea29a ("scsi: ufs: qcom: Remove the MSI descriptor abuse") 71296eae5887 ("PCI/TPH: Replace the broken MSI-X control word update") d5124a9957b2 ("PCI/MSI: Provide a sane mechanism for TPH") 6552e90e2a23 ("PCI: hv: Switch MSI descriptor locking to guard()") 891146645e5d ("PCI/MSI: Switch msix_capability_init() to guard(msi_desc_lock)") f11cc2af8f4b ("PCI/MSI: Switch msi_capability_init() to guard(msi_desc_lock)") 5c0ba4f9d25e ("PCI/MSI: Use __free() for affinity masks") b0c44a5ec355 ("PCI/MSI: Set pci_dev:: Msi_enabled late") 497f68cff621 ("PCI/MSI: Use guard(msi_desc_lock) where applicable") 8f3315cf7e97 ("NTB/msi: Switch MSI descriptor locking to lock guard()") f25dd9ac4846 ("soc: ti: ti_sci_inta_msi: Switch MSI descriptor locking to guard()") 0dac2b09303c ("genirq/msi: Use lock guards for MSI descriptor locking") 092d00ead733 ("cleanup: Provide retain_and_null_ptr()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'irq/drivers'Ingo Molnar28-312/+679
# New commits in irq/drivers: 3e402acd5c4f ("irqchip/irq-pruss-intc: Simplify chained interrupt handler setup") f1a3fac4095c ("irqchip/gic-v4.1: Use local 4_1 ITS to generate VSGI") 96a8cb6d28ce ("irqchip/econet-en751221: Switch to of_fwnode_handle()") 15568ffd59d4 ("irqchip/irq-vt8500: Switch to irq_domain_create_*()") 85cf5c63d32f ("irqchip/econet-en751221: Switch to irq_domain_create_linear()") 99ad153fbd22 ("irqchip/irq-vt8500: Use fewer global variables and add error handling") 49f92d3859cd ("irqchip/irq-vt8500: Use a dedicated chained handler function") 54a1f3eb89de ("irqchip/irq-vt8500: Don't require 8 interrupts from a chained controller") 45453df7f69b ("irqchip/irq-vt8500: Drop redundant copy of the device node pointer") 22111fdf1166 ("irqchip/irq-vt8500: Split up ack/mask functions") 76b66e8c9d15 ("irqchip/sg2042-msi: Fix wrong type cast in sg2044_msi_irq_ack()") e96b93a97c90 ("irqchip/sg2042-msi: Add the Sophgo SG2044 MSI interrupt controller") bad2094e3b1c ("irqchip/sg2042-msi: Introduce configurable chipinfo for SG2042") bced55494c23 ("irqchip/sg2042-msi: Rename functions and data structures to be SG2042 agnostic") 9fe5a0790af6 ("dt-bindings: interrupt-controller: Add Sophgo SG2044 MSI controller") 771487050f83 ("genirq/generic-chip: Fix incorrect lock guard conversions") 7ae844a6650c ("genirq/generic-chip: Remove unused lock wrappers") b00bee8afaca ("irqchip: Convert generic irqchip locking to guards") 9949aec666eb ("gpio: mvebu: Convert generic irqchip locking to guard()") 73989a38268d ("ARM: orion/gpio:: Convert generic irqchip locking to guard()") b54bd5a29b42 ("soc: dove: Convert generic irqchip locking to guard()") 195298c3b116 ("genirq/generic-chip: Convert core code to lock guards") 06f2f68a670a ("genirq/generic-chip: Make locking unconditional") 1902a59cf5f9 ("irqchip: Add EcoNet EN751221 INTC") 9773c540441c ("dt-bindings: interrupt-controller: Add EcoNet EN751221 INTC") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'irq/core'Ingo Molnar13-1369/+960
# New commits in irq/core: 788019eb559f ("genirq: Retain disable depth for managed interrupts across CPU hotplug") a4a39c81e104 ("genirq: Bump the size of the local variable for sprintf()") 58eb5721a445 ("genirq/manage: Use the correct lock guard in irq_set_irq_wake()") 47af06c9d31f ("genirq: Consistently use '%u' format specifier for unsigned int variables") b5fcb6898202 ("genirq: Ensure flags in lock guard is consistently initialized") c1ab449df871 ("genirq: Fix inverted condition in handle_nested_irq()") c85550625706 ("genirq/cpuhotplug: Fix up lock guards conversion brainf..t") 97f4b999e0c8 ("genirq: Use scoped_guard() to shut clang up") aefc11550ebd ("genirq: Remove unused remove_percpu_irq()") 104361217c2a ("genirq: Remove irq_[get|put]_desc*()") 193879e28be7 ("genirq/manage: Rework irq_set_irqchip_state()") 782249a99747 ("genirq/manage: Rework irq_get_irqchip_state()") 5fec6d5cd24a ("genirq/manage: Rework teardown_percpu_nmi()") 65dd1f7ca94f ("genirq/manage: Rework prepare_percpu_nmi()") 8e3f672b1949 ("genirq/manage: Rework disable_percpu_irq()") b171f712d6ef ("genirq/manage: Rework irq_percpu_is_enabled()") 508bd94c3ad4 ("genirq/manage: Rework enable_percpu_irq()") 90140d08ac7a ("genirq/manage: Rework irq_set_parent()") a1ceb831417b ("genirq/manage: Rework can_request_irq()") 8589e325ba4f ("genirq/manage: Rework irq_set_irq_wake()") bddd10c55407 ("genirq/manage: Rework enable_irq()") 1b7444446724 ("genirq/manage: Rework __disable_irq_nosync()") 55ac0ad22fec ("genirq/manage: Rework irq_set_vcpu_affinity()") 7e04e5c6f615 ("genirq/manage: Rework __irq_apply_affinity_hint()") b0561582ea1e ("genirq/manage: Rework irq_update_affinity_desc()") 17c1953567eb ("genirq/manage: Convert to lock guards") 0c169edf3607 ("genirq/manage: Cleanup kernel doc comments") 95a3645893bc ("genirq/chip: Rework irq_modify_status()") 5cd05f3e2315 ("genirq/chip: Rework irq_set_handler() variants") b3801ddc6883 ("genirq/chip: Rework irq_set_chip_data()") c836e5a70c59 ("genirq/chip: Rework irq_set_msi_desc_off()") 321a0fdf1337 ("genirq/chip: Rework irq_set_handler_data()") fa870e0f3551 ("genirq/chip: Rework irq_set_irq_type()") 46ff4d11f081 ("genirq/chip: Rework irq_set_chip()") e7c654255791 ("genirq/chip: Use lock guards where applicable") f71d7c45edad ("genirq/chip: Rework handle_fasteoi_mask_irq()") 2beb01cbb75e ("genirq/chip: Rework handle_fasteoi_ack_irq()") 2d46aea52c02 ("genirq/chip: Rework handle_edge_irq()") 15d772e2eebd ("genirq/chip: Rework handle_eoi_irq()") 2334c4552103 ("genirq/chip: Rework handle_level_irq()") a155777175bb ("genirq/chip: Rework handle_untracked_irq()") 1a3678675f69 ("genirq/chip: Rework handle_simple_irq()") 2ef2e13094c7 ("genirq/chip: Rework handle_nested_irq()") a6d8d0d12e19 ("genirq/chip: Prepare for code reduction") ecb84a3e7e7c ("genirq/debugfs: Convert to lock guards") 88a4df117ad6 ("genirq/cpuhotplug: Convert to lock guards") 113332a86553 ("genirq/spurious: Switch to lock guards") e815ffc759fb ("genirq/spurious: Cleanup code") 659ff9c9d77b ("genirq/proc: Switch to lock guards") 4bcdf07467fa ("genirq/resend: Switch to lock guards") 19b4b1442833 ("genirq/pm: Switch to lock guards") e80618b27a00 ("genirq/autoprobe: Switch to lock guards") 5d964a9f7cd8 ("genirq/irqdesc: Switch to lock guards") 0f70a49f3fa3 ("genirq: Provide conditional lock guards") e5032ead8599 ("genirq/irqdesc: Decrease indentation level in __irq_get_desc_lock()") 0128816c42b5 ("genirq: Fix typo in IRQ_NOTCONNECTED comment") 41c95ac48394 ("genirq/irqdesc: Use sysfs_emit() to instead of s*printf()") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'irq/cleanups'Ingo Molnar250-1007/+968
# New commits in irq/cleanups: 38c1e73fdeb3 ("irqdomain: Consolidate coding style") a10024e671d1 ("irqdomain: Fix kernel-doc and add it to Documentation") a4efe303e50e ("Documentation: irqdomain: Update it") 95cfac1b2f85 ("Documentation: irq-domain.rst: Simple improvements") 225942f06e93 ("Documentation: irq/concepts: Minor improvements") 2f7bd3293e45 ("Documentation: irq/concepts: Add commas and reflow") 2272a78b3f4a ("irqdomain: Improve kernel-docs of functions") 66cbf17fe671 ("irqdomain: Make struct irq_domain_info variables const") 18e743e91102 ("irqdomain: Use irq_domain_instantiate()'s return value as initializers") 14ebb11ba895 ("irqdomain: Drop irq_linear_revmap()") 609f900ad609 ("pinctrl: keembay: Switch to irq_find_mapping()") 31b3ad400245 ("irqchip/armada-370-xp: Switch to irq_find_mapping()") e68664c08e39 ("gpu: ipu-v3: Switch to irq_find_mapping()") 30b6692ceda0 ("gpio: idt3243x: Switch to irq_find_mapping()") f569ac9cabfd ("sh: Switch to irq_find_mapping()") 8035d9f2665e ("powerpc: Switch to irq_find_mapping()") 42b8b16fe56c ("irqdomain: Drop irq_domain_add_*() functions") 813da4f379e7 ("powerpc: Switch irq_domain_add_nomap() to use fwnode") 29dea335e355 ("thermal: Switch to irq_domain_create_linear()") 6e4e30d70a91 ("soc: Switch to irq_domain_create_*()") b625f934ba1c ("sh: Switch to irq_domain_create_*()") bf9935e47939 ("powerpc: Switch to irq_domain_create_*()") 219182fe2190 ("pinctrl: Switch to irq_domain_create_*()") 4b5e1d97154d ("PCI: Switch to irq_domain_create_linear()") e9bf22564413 ("nios2: Switch to irq_domain_create_linear()") e0c27a82c27f ("net: Switch to irq_domain_create_*()") d8566886f238 ("misc: hi6421-spmi-pmic: Switch to irq_domain_create_simple()") 0810f121e029 ("MIPS: Switch to irq_domain_create_*()") a36aa0f7226a ("mfd: Switch to irq_domain_create_*()") 8529e33bfe98 ("memory: omap-gpmc: Switch to irq_domain_create_linear()") b9a7f080e72b ("mailbox: qcom-ipcc: Switch to irq_domain_create_tree()") affdc0d1bdfa ("irqchip: Switch to irq_domain_create_*()") 7f68126a8766 ("iio: Switch to irq_domain_create_simple()") 3fd83ff1d923 ("i2c: Switch to irq_domain_create_linear()") 493e10926762 ("gpu: Switch to irq_domain_create_linear()") 9cf19f061ccc ("gpio: Switch to irq_domain_create_*()") 6be00e43351e ("EDAC/altera: Switch to irq_domain_create_linear()") 13c984392b28 ("bus: moxtet: Switch to irq_domain_create_simple()") 4dcb0045a363 ("ARM: Switch to irq_domain_create_*()") 80f2405bf204 ("ARC: Switch to irq_domain_create_linear()") c7131b12080a ("irqdomain: Make irq_domain_create_hierarchy() an inline") e847a847aea5 ("irqdomain: Drop of_node_to_fwnode()") b712918091c9 ("x86/io_apic: Switch to of_fwnode_handle()") f09831892c80 ("powerpc: Switch to of_fwnode_handle()") 87228532e7e9 ("irqchip: Switch to of_fwnode_handle()") fdc348121f24 ("irqdomain: pci: Switch to of_fwnode_handle()") 0a02e1f4a54a ("irqdomain: Support three-cell scheme interrupts") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'core/entry'Ingo Molnar8-79/+119
# New commits in core/entry: 8278fd6006a0 ("LoongArch: entry: Fix include order") e43b8bb56e53 ("entry: Inline syscall_exit_to_user_mode()") 7ace1602abf2 ("LoongArch: entry: Migrate ret_from_fork() to C") 5b3d6103b343 ("riscv: entry: Split ret_from_fork() into user and kernel") f955aa8723a6 ("riscv: entry: Convert ret_from_fork() to C") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'perf/merge'Ingo Molnar22-338/+1066
# New commits in perf/merge: 881097c0549f ("perf: Fix confusing aux iteration") f400565faa50 ("perf: Remove too early and redundant CPU hotplug handling") d20eb2d5fe8f ("perf: Fix irq work dereferencing garbage") 22d38babb3ad ("perf: Fix failing inherit_event() doing extra refcount decrement on parent") 3e830f657f69 ("perf/x86: Optimize the is_x86_event") efd448540e62 ("perf/x86/intel: Check the X86 leader for ACR group") f51972e6f8b9 ("perf/core: Fix broken throttling when max_samples_per_tick=1") 2492e5aba2be ("perf/x86/amd/uncore: Prevent UMC counters from saturating") e1ed37b70fb3 ("perf/x86/amd/uncore: Add parameter to configure hrtimer") 6d937e044bc9 ("perf/x86/amd/uncore: Use hrtimer for handling overflows") 05c9b0cbe4b8 ("perf/x86/intel/uncore: Use HRTIMER_MODE_HARD for detecting overflows") 4f81cc2d1bf9 ("perf/x86/amd/uncore: Remove unused 'struct amd_uncore_ctx::node' member") fe8e5a3215cc ("selftests/bpf: Add 5-byte NOP uprobe trigger benchmark") 610f6e14c29d ("uprobes/x86: Add support to emulate NOP instructions") 4a3fd13054a9 ("perf/x86/intel: Introduce pairs of PEBS static calls") acb727e0956a ("perf/x86/intel: Rename x86_pmu.pebs to x86_pmu.ds_pebs") d971342d38bf ("perf/x86/intel: Decouple BTS initialization from PEBS initialization") 25c623f41438 ("perf/x86/intel: Parse CPUID archPerfmonExt leaves for non-hybrid CPUs") 48d66c89dce1 ("perf/x86/intel: Add PMU support for Clearwater Forest") b02b41c827de ("perf/core: Fix event timekeeping merge") 162c9e3faf58 ("perf/core: Fix event->parent life-time issue") 2839f393c694 ("perf/core: Fix put_ctx() ordering") f6938a562a62 ("perf/core: Fix perf-stat / read()") 5c3627b6f059 ("perf/x86/intel/bts: Replace offsetof() with struct_size()") 1734d98fbcce ("perf/arch: Record sample last_period before updating on the x86 and PowerPC platforms") 3256a83335a4 ("perf/x86/intel/bts: Rename local bts_buffer variables for clarity") ec980e4facef ("perf/x86/intel: Support auto counter reload") 1856c6c2f841 ("perf/x86/intel: Add CPUID enumeration for the auto counter reload") c9449c8506a5 ("perf: Extend the bit width of the arch-specific flag") 0a6557938d8f ("perf/x86/intel: Track the num of events needs late setup") 4dfe3232cc04 ("perf/x86: Add dynamic constraint") da916e96e2de ("perf: Make perf_pmu_unregister() useable") 4da0600edae1 ("perf: Rename perf_event_exit_task(.child)") 90661365021a ("perf: Unify perf_event_free_task() / perf_event_exit_task_context()") 3e8671e00e57 ("perf: Simplify perf_event_release_kernel()") 59f3aa4a3ee2 ("perf: Simplify perf_event_free_task() wait") 0a00a43b8c20 ("perf: Simplify child event tear-down") 7ed9138a7282 ("perf: Ensure bpf_perf_link path is properly serialized") Signed-off-by: Ingo Molnar <mingo@kernel.org>
65 min.Merge branch into tip/master: 'x86/merge'Ingo Molnar430-14843/+16924
# New commits in x86/merge: 09230b755482 ("x86/paravirt: Restrict PARAVIRT_XXL to 64-bit only") 7212b58d6d71 ("x86/mm/64: Make 5-level paging support unconditional") cba5d9b3e99d ("x86/mm/64: Make SPARSEMEM_VMEMMAP the only memory model") 1bffe6f6890c ("x86/mm/64: Always use dynamic memory layout") a0f3fe547eb3 ("x86/bugs: Fix indentation due to ITS merge") 54d14f25664b ("MAINTAINERS: Add reviewers for fs/resctrl") 7168ae330e81 ("x86,fs/resctrl: Move the resctrl filesystem code to live in /fs/resctrl") f6b25be204b8 ("x86/resctrl: Always initialise rid field in rdt_resources_all[]") b7b57edbf568 ("x86/resctrl: Relax some asm #includes") df3dc0efcc01 ("x86/resctrl: Prefer alloc(sizeof(*foo)) idiom in rdt_init_fs_context()") 556f48a5093b ("x86/resctrl: Squelch whitespace anomalies in resctrl core code") 279f225951e3 ("x86/resctrl: Move pseudo lock prototypes to include/linux/resctrl.h") 272ed1c28c9d ("x86/resctrl: Fix types in resctrl_arch_mon_ctx_{alloc,free}() stubs") 7bdb619c7f9f ("x86/resctrl: Move enum resctrl_event_id to resctrl.h") 3d95a49b365e ("x86/resctrl: Move the filesystem bits to headers visible to fs/resctrl") bff70402d6d6 ("fs/resctrl: Add boiler plate for external resctrl code") 3bf8ce828419 ("x86/cpuid: Rename hypervisor_cpuid_base()/for_each_possible_hypervisor_cpuid_base() to cpuid_base_hypervisor()/for_each_possible_cpuid_base_hypervisor()") 003e86077143 ("x86/resctrl: Add 'resctrl' to the title of the resctrl documentation") 119deb95b0bc ("x86/cpu/intel: Rename CPUID(0x2) descriptors iterator parameter") 4b21e71ad6cc ("x86/cacheinfo: Rename CPUID(0x2) descriptors iterator parameter") e7df7289f148 ("x86/cpuid: Rename cpuid_get_leaf_0x2_regs() to cpuid_leaf_0x2()") 270f00bcc952 ("x86/resctrl: Split trace.h") 2a6566038544 ("x86/resctrl: Expand the width of domid by replacing mon_data_bits") d4fb6b8e4640 ("x86/resctrl: Add end-marker to the resctrl_event_id enum") 6c72fb8d8bd7 ("x86/resctrl: Move is_mba_sc() out of core.c") bc740420d7ae ("x86/resctrl: Drop __init/__exit on assorted symbols") 8c992e24a062 ("x86/resctrl: Resctrl_exit() teardown resctrl but leave the mount point") 8eb7ad66badc ("x86/resctrl: Check all domains are offline in resctrl_exit()") 7704fb81bc87 ("x86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_"") dcb1d3d3b77b ("x86/resctrl: Remove the limit on the number of CLOSID") 94f753143028 ("x86/resctrl: Optimize cpumask_any_housekeeping()") 5da703ef4e4a ("cpumask: Add cpumask_{first,next}_andnot() API") 13f0a02bf4c1 ("find: Add find_first_andnot_bit()") 189572bf4e00 ("cpumask: Relax cpumask_any_but()") 2f924ca36d2f ("x86/cpuid: Rename have_cpuid_p() to cpuid_feature()") 968e30006807 ("x86/cpuid: Set <asm/cpuid/api.h> as the main CPUID header") cdc8be31cb32 ("x86/cpuid: Move CPUID(0x2) APIs into <cpuid/api.h>") baad9190e646 ("x86/msr: Add rdmsrl_on_cpu() compatibility wrapper") 1adf711919de ("x86/mm: Fix kernel-doc descriptions of various pgtable methods") 25219c2578b3 ("x86/asm-offsets: Export certain 'struct cpuinfo_x86' fields for 64-bit asm use too") 64797551baec ("x86/boot: Defer initialization of VM space related global variables") 891d3b8be32a ("x86/bugs: Fix SRSO reporting on Zen1/2 with SMT disabled") 9cf787220031 ("accel/habanalabs: Don't build the driver on UML") c1ab4ce3cb75 ("tools/arch/x86: Move the <asm/amd-ibs.h> header to <asm/amd/ibs.h>") 4b626015e1bf ("x86/insn: Stop decoding i64 instructions in x86-64 mode at opcode") ca698ec2f078 ("x86/insn: Fix opcode map (!REX2) superscript tags") 32d5fa804dc9 ("x86/fpu: Drop @perm from guest pseudo FPU container") d8414603b29f ("x86/fpu/xstate: Always preserve non-user xfeatures/flags in __state_perm") 7f9958230d8a ("x86/mm: Fix false positive warning in switch_mm_irqs_off()") cc663ba3fe38 ("x86/cpu: Sanitize CPUID(0x80000000) output") 49394b5af45c ("tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.4") 43c2df7e2b08 ("x86/alternative: Remove unused header #defines") ab8131028710 ("x86/CPU/AMD: Print the reason for the last reset") 960bc2bcba59 ("x86/fpu: Restore fpu_thread_struct_whitelist() to fix CONFIG_HARDENED_USERCOPY=y crash") ed4d95d033e3 ("x86/sev: Disentangle #VC handling code from startup code") 5297886f0cc4 ("x86/boot: Provide __pti_set_user_pgtbl() to startup code") 419cbaf6a56a ("x86/boot: Add a bunch of PIC aliases") f932adcc8650 ("x86/linkage: Add SYM_PIC_ALIAS() macro helper to emit symbol aliases") ae862964cbc5 ("x86/sev: Move instruction decoder into separate source file") fae89bbfdd9d ("x86/sev: Make sev_snp_enabled() a static function") b3464a36f7f2 ("x86/boot: Disregard __supported_pte_mask in __startup_64()") bd4a58beaaf1 ("x86/boot: Move early_setup_gdt() back into head64.c") 46c158e3ad0f ("x86/fpu: Shift fpregs_assert_state_consistent() from arch_exit_work() to its caller") 016a2e6f8ae5 ("x86/fpu: Check TIF_NEED_FPU_LOAD instead of PF_KTHREAD|PF_USER_WORKER in fpu__drop()") 2d299e3d773d ("x86/fpu: Always use memcpy_and_pad() in arch_dup_task_struct()") 8e269c030eca ("x86/fpu: Remove DEFINE_EVENT(x86_fpu, x86_fpu_copy_src)") 392bbe11c7cf ("x86/fpu: Remove x86_init_fpu") 730faa15a069 ("x86/fpu: Simplify the switch_fpu_prepare() + switch_fpu_finish() logic") 4804f5ad5d63 ("x86/cpu: Add "Old Microcode" docs to hw-vuln toctree") 502ad6e5a619 ("x86/msr: Change the function type of native_read_msr_safe()") 444b46a128cc ("x86/msr: Replace wrmsr(msr, low, 0) with wrmsrq(msr, low)") 0c2678efed6c ("x86/pvops/msr: Refactor pv_cpu_ops.write_msr{,_safe}()") 2b7e25301c54 ("x86/xen/msr: Remove the error pointer argument from set_seg()") f7998621db69 ("x86/xen/msr: Remove pmu_msr_{read,write}()") 0cb6f4128a7d ("x86/xen/msr: Remove calling native_{read,write}_msr{,_safe}() in pmu_msr_{read,write}()") 3204877d05ca ("x86/msr: Convert __rdmsr() uses to native_rdmsrq() uses") ed56a309f7e1 ("x86/msr: Add the native_rdmsrq() helper") 519be7da37b9 ("x86/msr: Convert __wrmsr() uses to native_wrmsr{,q}() uses") 5afa4cf54518 ("x86/xen/msr: Return u64 consistently in Xen PMC xen_*_read functions") 795ada52875f ("x86/msr: Convert the rdpmc() macro to an __always_inline function") 7d9ccde56bc0 ("x86/msr: Rename rdpmcl() to rdpmc()") 91882511ef90 ("x86/msr: Remove the unused rdpmc() method") 288a4ff0ad29 ("x86/msr: Move rdtsc{,_ordered}() to <asm/tsc.h>") efef7f184f2e ("x86/msr: Add explicit includes of <asm/msr.h>") bdfda83a6b59 ("x86/msr: Move the EAX_EDX_*() methods from <asm/msr.h> to <asm/asm.h>") c9d8ea9d53d4 ("x86/msr: Rename DECLARE_ARGS() to EAX_EDX_DECLARE_ARGS") 76deb5452e79 ("x86/msr: Improve the comments of the DECLARE_ARGS()/EAX_EDX_VAL()/EAX_EDX_RET() facility") 1b3f2bd04d90 ("x86/devmem: Remove duplicate range_is_allowed() definition") cafb22242bfb ("Documentation: Add AMD Zen debugging document") b43dc4ab0978 ("x86/microcode/AMD: Do not return error when microcode update is not necessary") 1f4bb068b498 ("x86/bugs: Restructure SRSO mitigation") d43ba2dc8eee ("x86/bugs: Restructure L1TF mitigation") 5ece59a2fca6 ("x86/bugs: Restructure SSB mitigation") 480e803dacf8 ("x86/bugs: Restructure spectre_v2 mitigation") efe313827c98 ("x86/bugs: Restructure BHI mitigation") ddfca9430a61 ("x86/bugs: Restructure spectre_v2_user mitigation") e3b78a7ad5ea ("x86/bugs: Restructure retbleed mitigation") c0a62eadb6fd ("x86/microcode/AMD: Use sha256() instead of init/update/final") 83d4b19331f3 ("x86/bugs: Allow retbleed=stuff only on Intel") 46d5925b8eb8 ("x86/bugs: Restructure spectre_v1 mitigation") 9dcad2fb31bd ("x86/bugs: Restructure GDS mitigation") 2178ac58e176 ("x86/bugs: Restructure SRBDS mitigation") 6f0960a760eb ("x86/bugs: Remove md_clear_*_mitigation()") 203d81f8e167 ("x86/bugs: Restructure RFDS mitigation") 4a5a04e61d7f ("x86/bugs: Restructure MMIO mitigation") bdd7fce7a816 ("x86/bugs: Restructure TAA mitigation") 559c758bc722 ("x86/bugs: Restructure MDS mitigation") 7094702a9e6d ("platform/x86/amd/pmc: Use FCH_PM_BASE definition") 624b0d5696a8 ("i2c: piix4, x86/platform: Move the SB800 PIIX4 FCH definitions to <asm/amd/fch.h>") 7e173eb82ae9 ("i2c: piix4: Make CONFIG_I2C_PIIX4 dependent on CONFIG_X86") 18ea89eae404 ("x86/sev: Share the sev_secrets_pa value again") 121c335b36e0 ("x86/boot: Disable jump tables in PIC code") ff4c0560ab02 ("x86/asm: Retire RIP_REL_REF()") 681e2901330c ("x86/boot: Drop RIP_REL_REF() uses from early SEV code") a3cbbb4717e1 ("x86/boot: Move SEV startup code into startup/") 234cf67fc3bd ("x86/sev: Split off startup code from core code") b66fcee1574e ("x86/sev: Move noinstr NMI handling code into separate source file") 092071e0f63c ("vmlinux.lds: Include .data.rel[.local] into .data section") 4e2c719782a8 ("x86/cpu: Help users notice when running old Intel microcode") aef1d0209ddf ("x86/mm: Fix {,un}use_temporary_mm() IRQ state") 3ce4b1f1f24b ("x86/asm: Rename rep_nop() to native_pause()") d109ff4f0bc3 ("x86/asm: Replace "REP; NOP" with PAUSE mnemonic") 42c782fae38f ("x86/asm: Remove semicolon from "rep" prefixes") 0dcc51477b94 ("x86/boot: Remove semicolon from "rep" prefixes") eaa607deb29e ("x86/mm: Remove now unused SHARED_KERNEL_PMD") 99b8f0c54f57 ("x86/mm: Remove duplicated PMD preallocation macro") 454e65b4fb38 ("x86/mm: Preallocate all PAE page tables") 82f120010f3b ("x86/mm: Fix up comments around PMD preallocation") 45fb940563f8 ("x86/mm: Simplify PAE PGD sharing macros") eb9c7f00f22d ("x86/mm: Always tell core mm to sync kernel mappings") b0cc4d19f198 ("x86/mm: Always "broadcast" PMD setting operations") 780f97e30930 ("x86/mm: Always allocate a whole page for PAE PGDs") 52ebfe7412ce ("x86/mm: Remove the mm_cpumask(prev) warning from switch_mm_irqs_off()") 498cb872a111 ("x86/boot/startup: Disable LTO for the startup code") d9b79111fd99 ("x86/bugs: Rename mmio_stale_data_clear to cpu_buf_vm_clear") de8304c319bc ("x86/fpu: Rename fpu_reset_fpregs() to fpu_reset_fpstate_regs()") 70fe4a0266ef ("x86/fpu: Remove export of mxcsr_feature_mask") d1e420772cd1 ("x86/pkeys: Simplify PKRU update in signal frame") 64e54461ab6e ("x86/fpu: Refactor xfeature bitmask update code for sigframe XSAVE") 39cd7fad39ce ("x86/fpu: Log XSAVE disablement consistently") ab6f87ddd0c6 ("selftests/x86/apx: Add APX test") 50c5b071e283 ("x86/fpu/apx: Enable APX state support") ea68e39190cf ("x86/fpu/apx: Disallow conflicting MPX presence") bd0b10b795c5 ("x86/fpu/apx: Define APX state component") b02dc185ee86 ("x86/cpufeatures: Add X86_FEATURE_APX") 3aba0b40cacd ("x86/cpufeatures: Shorten X86_FEATURE_AMD_HETEROGENEOUS_CORES") 13327fada7ff ("x86/cpufeatures: Shorten X86_FEATURE_CLEAR_BHB_LOOP_ON_VMEXIT") 282cc5b67623 ("x86/cpufeatures: Clean up formatting") dd86a1d013e0 ("x86/bugs: Remove X86_BUG_MMIO_UNKNOWN") 9fb6938d5534 ("x86/cpuid: Align macro linebreaks vertically") f99002b9a9cc ("x86/alternatives, um: Rename UML's text_poke_sync() wrapper to smp_text_poke_sync_each_cpu()") 0a35c9280a91 ("x86/platform/amd: Move the <asm/amd_node.h> header to <asm/amd/node.h>") 5bb144e52c66 ("x86/platform/amd: Clean up the <asm/amd/hsmp.h> header guards a bit") d96c78684166 ("x86/platform/amd: Move the <asm/amd_hsmp.h> header to <asm/amd/hsmp.h>") bcbb65559532 ("x86/platform/amd: Move the <asm/amd_nb.h> header to <asm/amd/nb.h>") 861c6b1185fb ("x86/platform/amd: Add standard header guards to <asm/amd/ibs.h>") 3846389c03a8 ("x86/platform/amd: Move the <asm/amd-ibs.h> header to <asm/amd/ibs.h>") e3a52b67f54a ("x86/fpu: Clarify FPU context cacheline alignment") 8b2a7a7294b3 ("x86/fpu: Use 'fpstate' variable names consistently") 22aafe3bcb67 ("x86/fpu: Remove init_task FPU state dependencies, add debugging warning for PF_KTHREAD tasks") c360bdc593b8 ("x86/fpu: Make sure x86_task_fpu() doesn't get called for PF_KTHREAD|PF_USER_WORKER tasks during exit") ec2227e03a46 ("x86/fpu: Push 'fpu' pointer calculation into the fpu__drop() call") 55bc30f2e34d ("x86/fpu: Remove the thread::fpu pointer") cb7ca40a3882 ("x86/fpu: Make task_struct::thread constant size") e3bfa3859936 ("x86/fpu: Convert task_struct::thread.fpu accesses to use x86_task_fpu()") 77fbccede633 ("x86/fpu: Introduce the x86_task_fpu() helper method") cbe8e4dab16c ("x86/fpu/xstate: Adjust xstate copying logic for user ABI") a758ae2885ea ("x86/fpu/xstate: Adjust XSAVE buffer size calculation") 15d51a2f6f3f ("x86/fpu/xstate: Introduce xfeature order table and accessor macro") 031b33ef1a6a ("x86/fpu/xstate: Remove xstate offset check") 4850074ff06f ("x86/uaccess: Use asm_inline() instead of asm() in __untagged_addr()") a5447e92e169 ("x86/msr: Add compatibility wrappers for rdmsrl()/wrmsrl()") 7b3169dfa4ba ("objtool, x86/hweight: Remove ANNOTATE_IGNORE_ALTERNATIVE") d51faee4bd63 ("x86/percpu: Refer __percpu_prefix to __force_percpu_prefix") 221df25fdf82 ("x86/sev: Prepare for splitting off early SEV code") bee174b27e54 ("x86/boot: Drop RIP_REL_REF() uses from SME startup code") 7ae089ee75f3 ("x86/boot: Move early SME init code into startup/") dafb26f4271b ("x86/boot: Drop RIP_REL_REF() uses from early mapping code") dbe0ad775cbb ("x86/boot: Move early kernel mapping code into startup/") 4cecebf200ef ("x86/boot: Move the early GDT/IDT setup code into startup/") bcceba3c72c0 ("x86/asm: Make rip_rel_ptr() usable from fPIC code") af8967158f9a ("x86/mm: Opt-in to IRQs-off activate_mm()") e7021e2fe0b4 ("x86/efi: Make efi_enter/leave_mm() use the use_/unuse_temporary_mm() machinery") 58f8ffa91766 ("x86/mm: Allow temporary MMs when IRQs are on") 4873f494bbe4 ("x86/mm: Remove 'mm' argument from unuse_temporary_mm() again") d376972c9825 ("x86/mm: Make use_/unuse_temporary_mm() non-static") 81e3cbdef230 ("x86/events, x86/insn-eval: Remove incorrect current->active_mm references") 0812e096cff0 ("x86/mm: Add 'mm' argument to unuse_temporary_mm()") 62e565273993 ("x86/cacheinfo: Standardize header files and CPUID references") 718f9038acc5 ("x86/cpuid: Remove obsolete CPUID(0x2) iteration macro") 23a76739d6af ("x86/alternatives: Make smp_text_poke_batch_process() subsume smp_text_poke_batch_finish()") 4f9534719e52 ("x86/alternatives: Add comment about noinstr expectations") 023f42dd5920 ("x86/alternatives: Rename 'apply_relocation()' to 'text_poke_apply_relocation()'") dac0d7542782 ("x86/alternatives: Update the comments in smp_text_poke_batch_process()") 2c373ca0640f ("x86/alternatives: Remove 'smp_text_poke_batch_flush()'") b1bb39185df6 ("x86/alternatives: Move declarations of vmlinux.lds.S defined section symbols to <asm/alternative.h>") db5c68c88c07 ("x86/alternatives: Simplify the #include section") 3c8454dfc914 ("x86/alternatives: Rename 'POKE_MAX_OPCODE_SIZE' to 'TEXT_POKE_MAX_OPCODE_SIZE'") 8036fbe5a5d6 ("x86/alternatives: Rename 'TP_ARRAY_NR_ENTRIES_MAX' to 'TEXT_POKE_ARRAY_MAX'") 22b966231303 ("x86/alternatives: Standardize on 'tpl' local variable names for 'struct smp_text_poke_loc *'") 3e6f47573ec3 ("x86/alternatives: Simplify and clean up patch_cmp()") 6af954037962 ("x86/alternatives: Constify text_poke_addr()") 0e67e587e2e0 ("x86/alternatives: Simplify text_poke_addr_ordered()") 6e4955a9d73e ("x86/alternatives: Rename 'text_poke_sync()' to 'smp_text_poke_sync_each_cpu()'") 7fbadb50d95a ("x86/alternatives: Move text_poke_array completion from smp_text_poke_batch_finish() and smp_text_poke_batch_flush() to smp_text_poke_batch_process()") cca3473956be ("x86/alternatives: Add documentation for smp_text_poke_batch_add()") 9647ce465265 ("x86/alternatives: Document 'smp_text_poke_single()'") 8a6a1b4e0ef1 ("x86/alternatives: Remove the mixed-patching restriction on smp_text_poke_single()") 0e351aec2b00 ("x86/alternatives: Move the text_poke_array manipulation into text_poke_int3_loc_init() and rename it to __smp_text_poke_batch_add()") 74e8e2bf950e ("x86/alternatives: Simplify smp_text_poke_batch_process()") 8e35752f0c33 ("x86/alternatives: Simplify smp_text_poke_int3_handler()") b6a25841c171 ("x86/alternatives: Simplify try_get_text_poke_array()") 3916eec5160d ("x86/alternatives: Rename 'put_desc()' to 'put_text_poke_array()'") 46f3d9d329de ("x86/alternatives: Rename 'try_get_desc()' to 'try_get_text_poke_array()'") 0494b16b9cae ("x86/alternatives: Remove the tp_vec indirection") 6e7dc03aeeb5 ("x86/alternatives: Introduce 'struct smp_text_poke_array' and move tp_vec and tp_vec_nr to it") 37725b64a991 ("x86/alternatives: Assert input parameters in smp_text_poke_batch_process()") 476ad071c678 ("x86/alternatives: Assert that smp_text_poke_int3_handler() can only ever handle 'tp_vec[]' based requests") c8976ade0c1b ("x86/alternatives: Simplify smp_text_poke_single() by using tp_vec and existing APIs") eaa24c9177c8 ("x86/alternatives: Remove the 'addr == NULL means forced-flush' hack from smp_text_poke_batch_finish()/smp_text_poke_batch_flush()/text_poke_addr_ordered()") 2d0cf10a1eb6 ("x86/alternatives: Use non-inverted logic instead of 'tp_order_fail()'") 87836af1eafc ("x86/alternatives: Add text_mutex) assert to smp_text_poke_batch_flush()") 3bd7546ff24e ("x86/alternatives: Rename 'int3_desc' to 'int3_vec'") a81d43c46e6e ("x86/alternatives: Rename 'struct text_poke_loc' to 'struct smp_text_poke_loc'") fb802d639340 ("x86/alternatives: Rename 'text_poke_loc_init()' to 'text_poke_int3_loc_init()'") 732c7c33a0c1 ("x86/alternatives: Rename 'text_poke_queue()' to 'smp_text_poke_batch_add()'") e8d7b8c2bbcd ("x86/alternatives: Rename 'text_poke_finish()' to 'smp_text_poke_batch_finish()'") aedb60c2c66c ("x86/alternatives: Rename 'text_poke_flush()' to 'smp_text_poke_batch_flush()'") f5afa2e8efda ("x86/alternatives: Remove the confusing, inaccurate & unnecessary 'temp_mm_state_t' abstraction") 5224f09a7b57 ("x86/alternatives: Update comments in int3_emulate_push()") 762255b743b8 ("x86/alternatives: Remove duplicate 'text_poke_early()' prototype") e84c31b9c9ac ("x86/alternatives: Rename 'bp_desc' to 'int3_desc'") da364fc54789 ("x86/alternatives: Rename 'poking_addr' to 'text_poke_mm_addr'") a5c832e0476e ("x86/alternatives: Rename 'poking_mm' to 'text_poke_mm'") 5236b6a0fe92 ("x86/alternatives: Rename 'poke_int3_handler()' to 'smp_text_poke_int3_handler()'") 9586ae48e785 ("x86/alternatives: Rename 'text_poke_bp()' to 'smp_text_poke_single()'") bee4fcfbc128 ("x86/alternatives: Rename 'text_poke_bp_batch()' to 'smp_text_poke_batch_process()'") 28fb79092d9f ("x86/alternatives: Rename 'bp_refs' to 'text_poke_array_refs'") 84e5ba949b0a ("x86/alternatives: Rename 'struct bp_patching_desc' to 'struct text_poke_int3_vec'") d60e4b2410e1 ("x86/alternatives: Document the text_poke_bp_batch() synchronization rules a bit more") 4334336e769b ("x86/alternatives: Improve code-patching scalability by removing false sharing in poke_int3_handler()") 7615b94b6371 ("selftests/kexec: Add x86_64 selftest for kexec-jump and exception handling") de085ddd493b ("x86/kexec: Invalidate GDT/IDT from relocate_kernel() instead of earlier") 7516e7216bdf ("x86/kexec: Add 8250 MMIO serial port output") d358b45120cc ("x86/kexec: Add 8250 serial port output") eef476f15c83 ("x86/msr: Rename 'wrmsrl_cstar()' to 'wrmsrq_cstar()'") 7cbc2ba7c107 ("x86/msr: Rename 'native_wrmsrl()' to 'native_wrmsrq()'") 604d15d15ebd ("x86/msr: Rename 'wrmsrl_amd_safe()' to 'wrmsrq_amd_safe()'") e2b8af0c6939 ("x86/msr: Rename 'rdmsrl_amd_safe()' to 'rdmsrq_amd_safe()'") 8e44e83f57c3 ("x86/msr: Rename 'mce_wrmsrl()' to 'mce_wrmsrq()'") ebe29309c4d2 ("x86/msr: Rename 'mce_rdmsrl()' to 'mce_rdmsrq()'") c895ecdab2e4 ("x86/msr: Rename 'wrmsrl_on_cpu()' to 'wrmsrq_on_cpu()'") d7484babd2c4 ("x86/msr: Rename 'rdmsrl_on_cpu()' to 'rdmsrq_on_cpu()'") 27a23a544a55 ("x86/msr: Rename 'wrmsrl_safe_on_cpu()' to 'wrmsrq_safe_on_cpu()'") 5e404cb7ac4c ("x86/msr: Rename 'rdmsrl_safe_on_cpu()' to 'rdmsrq_safe_on_cpu()'") 6fa17efe4544 ("x86/msr: Rename 'wrmsrl_safe()' to 'wrmsrq_safe()'") 6fe22abacd40 ("x86/msr: Rename 'rdmsrl_safe()' to 'rdmsrq_safe()'") 78255eb23973 ("x86/msr: Rename 'wrmsrl()' to 'wrmsrq()'") c435e608cf59 ("x86/msr: Rename 'rdmsrl()' to 'rdmsrq()'") d58c04cf1d70 ("x86/msr: Standardize on 'u32' MSR indices in <asm/msr.h>") d8f8aad698b8 ("x86/msr: Harmonize the prototype and definition of do_trace_rdpmc()") cd905826cbc8 ("x86/msr: Use u64 in rdmsrl_safe() and paravirt_read_pmc()") 73bd1e01e98e ("x86/msr: Use u64 in rdmsrl_amd_safe() and wrmsrl_amd_safe()") f4138de5e41f ("x86/msr: Standardize on u64 in <asm/msr-index.h>") dfe2574ce87e ("x86/msr: Standardize on u64 in <asm/msr.h>") a23be6ccd8b9 ("x86: Remove __FORCE_ORDER workaround") 35c3151a98a6 ("x86/mm: Consolidate initmem_init()") 6f9bd8ae0340 ("x86/uaccess: Predict valid_user_address() returning true") 60567e93c05d ("selftests/x86/lam: Fix clean up fds in do_uring() and allocate_dsa_pasid()") d02c83d75f9f ("x86/cacheinfo: Properly parse CPUID(0x80000006) L2/L3 associativity") d274cde0dbe0 ("x86/cacheinfo: Properly parse CPUID(0x80000005) L1d/L1i associativity") d9fa398fe827 ("x86/boot/startup: Disable objtool validation for library code") 321550859f3b ("x86/microcode/AMD: Clean the cache if update did not load microcode") 4f2d1bbc2c92 ("x86/boot: Move the EFI mixed mode startup code back under arch/x86, into startup/") 5a67da1f49cf ("x86/boot: Move the 5-level paging trampoline into /startup") 5d4456fc88f7 ("x86/boot/compressed: Merge the local pgtable.h include into <asm/boot.h>") 0ee07a079202 ("x86/boot: Use __ALIGN_KERNEL_MASK() instead of open coded analogue") e37aa1211fbf ("x86/cpuid: Add AMX and SPEC_CTRL dependencies") fc1cd60042b3 ("x86/idle: Use MONITOR and MWAIT mnemonics in <asm/mwait.h>") a17b37a3f416 ("x86/idle: Change arguments of mwait_idle_with_hints() to u32") 2fb34b1566a3 ("x86/tlb: Simplify choose_new_asid() and generate better code") a72d55dc3bd6 ("x86/idle: Remove CONFIG_AS_TPAUSE") 19c3dcd953bc ("x86/idle: Remove .s output beautifying delimiters from simpler asm() templates") 1ae899e41310 ("x86/idle: Standardize argument types for MONITOR{,X} and MWAIT{,X} instruction wrappers on 'u32'") 1f13c60d84e8 ("x86/idle: Remove MFENCEs for X86_BUG_CLFLUSH_MONITOR in mwait_idle_with_hints() and prefer_mwait_c1_over_halt()") 1701771d3069 ("x86/mm: Stop prefetching current->mm->mmap_lock on page faults") 2b00d9031e42 ("x86/mm: Simplify the pgd_leaf() and p4d_leaf() checks a bit") c083eff324ed ("x86/mm: Remove the arch-specific p4d_leaf() definition") b0510ac74e18 ("x86/mm: Remove the arch-specific pgd_leaf() definition") f2e01dcf6df2 ("x86/nmi: Improve NMI duration console printouts") 05279a2863dd ("x86/nmi: Clean up NMI selftest") 7324d7de7740 ("x86/nmi: Add missing description x86_platform_ops::get_nmi_reason to <asm/x86_init.h>") 3b1292706305 ("x86/nmi: Improve <asm/nmi.h> documentation") 59cddd397acc ("x86/nmi: Improve and relocate NMI handler comments") b4bc3144c1ec ("x86/nmi: Fix comment in unknown_nmi_error()") 6325f9470146 ("x86/nmi: Remove export of local_touch_nmi()") 4a8fba4be879 ("x86/nmi: Use a macro to initialize NMI descriptors") 78a0323506f0 ("x86/nmi: Consolidate NMI panic variables") 2e016da1cbbd ("x86/nmi: Simplify unknown NMI panic handling") e29c5d0e5dc3 ("x86/bitops: Simplify variable_ffz() as variable__ffs(~word)") 0717b1392dc7 ("x86/bitops: Use TZCNT mnemonic in <asm/bitops.h>") 3d66af75b086 ("x86/kexec: Debugging support: Dump registers on exception") 8df505af7fef ("x86/kexec: Debugging support: Load an IDT and basic exception entry points") 0dd09e215a39 ("x86/cacheinfo: Apply maintainer-tip coding style fixes") 6c963c42fc19 ("x86/cacheinfo: Introduce cpuid_amd_hygon_has_l3_cache()") eeeebc4fc642 ("x86/cacheinfo: Relocate CPUID leaf 0x4 cache_type mapping") 05d48035e5f6 ("x86/cacheinfo: Extract out cache self-snoop checks") fda5f817ae41 ("x86/cacheinfo: Extract out cache level topology ID calculation") 66122616e212 ("x86/cacheinfo: Separate Intel CPUID leaf 0x4 handling") 5adfd367589c ("x86/cacheinfo: Separate CPUID leaf 0x2 handling and post-processing logic") 4772304ee651 ("x86/cpu: Use consolidated CPUID leaf 0x2 descriptor table") da23a6259844 ("x86/cacheinfo: Use consolidated CPUID leaf 0x2 descriptor table") 37aedb806bc6 ("x86/cpu: Consolidate CPUID leaf 0x2 tables") 543904cdfe1e ("x86/cpu: Use enums for TLB descriptor types") e1e6b5714655 ("x86/cacheinfo: Use enums for cache descriptor types") 7596ab7a107b ("x86/cacheinfo: Clarify type markers for CPUID leaf 0x2 cache descriptors") eb1c7c08c5a8 ("x86/cacheinfo: Rename 'struct _cpuid4_info_regs' to 'struct _cpuid4_info'") 2d56cc872250 ("x86/cacheinfo: Separate Intel and AMD CPUID leaf 0x4 code paths") 071f4ad6494a ("x86/cacheinfo: Use sysfs_emit() for sysfs attributes show()") 365e960d296e ("x86/cacheinfo: Move AMD cache_disable_0/1 handling to separate file") c58ed2d4da8d ("x86/cacheinfo: Separate amd_northbridge from _cpuid4_info_regs") 77676e6802a1 ("x86/cacheinfo: Consolidate AMD/Hygon leaf 0x8000001d calls") 1374ff60ed0d ("x86/cacheinfo: Standardize _cpuid4_info_regs instance naming") 036a73b51744 ("x86/cacheinfo: Align ci_info_init() assignment expressions") 7b83e0d2b20b ("x86/cacheinfo: Constify _cpuid4_info_regs instances") cf8758205264 ("x86/cacheinfo: Use proper name for cacheinfo instances") 21e2a452dca3 ("x86/cacheinfo: Properly name amd_cpuid4()'s first parameter") ee159792a4db ("x86/cacheinfo: Refactor CPUID leaf 0x2 cache descriptor lookup") a078aaa38a23 ("x86/cacheinfo: Use CPUID leaf 0x2 parsing helpers") fe78079ec07f ("x86/cpu: Introduce and use CPUID leaf 0x2 parsing helpers") 09a1da4beb31 ("x86/cacheinfo: Remove CPUID leaf 0x2 parsing loop") b5969494c8d8 ("x86/cpu: Remove CPUID leaf 0x2 parsing loop") 0efb4dc3b084 ("MAINTAINERS: Include the entire kcpuid/ directory under the X86 CPUID DATABASE entry") 300ba891418a ("tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.3") 5e0c3c5e95f0 ("tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.2") f5e7fd685796 ("tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.1") e1dde2f5a4ef ("tools/x86/kcpuid: Update bitfields to x86-cpuid-db v2.0") 87669e74d848 ("tools/x86/kcpuid: Define Transmeta and Centaur index ranges") 72383c8274ed ("tools/x86/kcpuid: Filter valid CPUID ranges") 74d29127f830 ("tools/x86/kcpuid: Consolidate index validity checks") f2e2efe9489d ("tools/x86/kcpuid: Extend CPUID index mask macro") 3151ec059dd1 ("tools/x86/kcpuid: Refactor CPUID range handling for future expansion") c479a84488d1 ("tools/x86/kcpuid: Use <cpuid.h> intrinsics") 0a8f12ccd2e6 ("tools/x86/kcpuid: Use C99-style for loops") 8984cea5c474 ("tools/x86/kcpuid: Set parse_line() return type to void") 2b383ca0896f ("tools/x86/kcpuid: Remove unused global variable") c061ded035b5 ("tools/x86/kcpuid: Remove unused local variable") ce61b6067d8c ("tools/x86/kcpuid: Print correct CPUID output register names") 6bef74cab03a ("tools/x86/kcpuid: Save CPUID output in an array") 660c29fe53de ("tools/x86/kcpuid: Simplify usage() handling") a866a6775793 ("tools/x86/kcpuid: Exit the program on invalid parameters") 116edfe173d0 ("tools/x86/kcpuid: Fix error handling") Signed-off-by: Ingo Molnar <mingo@kernel.org>
66 min.x86/xen/msr: Fix uninitialized variable 'err'x86/coreXin Li (Intel)1-2/+2
xen_read_msr_safe() currently passes an uninitialized argument 'err' to xen_do_read_msr(). But as xen_do_read_msr() may not set the argument, xen_read_msr_safe() could return err with an unpredictable value. To ensure correctness, initialize err to 0 (representing success) in xen_read_msr_safe(). Do the same in xen_read_msr(), even err is not used after being passed to xen_do_read_msr(). Closes: https://lore.kernel.org/xen-devel/aBxNI_Q0-MhtBSZG@stanley.mountain/ Fixes: d815da84fdd0 ("x86/msr: Change the function type of native_read_msr_safe()" Reported-by: Dan Carpenter <dan.carpenter@linaro.org> Signed-off-by: Xin Li (Intel) <xin@zytor.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Juergen Gross <jgross@suse.com> Cc: H. Peter Anvin <hpa@zytor.com> Link: https://lore.kernel.org/r/20250517165713.935384-1-xin@zytor.com
66 min.x86/msr: Remove a superfluous inclusion of <asm/asm.h>Xin Li (Intel)1-1/+0
The following commit: efef7f184f2e ("x86/msr: Add explicit includes of <asm/msr.h>") added a superfluous inclusion of <asm/asm.h> to drivers/acpi/processor_throttling.c. Remove it. Fixes: efef7f184f2e ("x86/msr: Add explicit includes of <asm/msr.h>") Signed-off-by: Xin Li (Intel) <xin@zytor.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Link: https://lore.kernel.org/r/20250512084552.1586883-2-xin@zytor.com
12 hoursMerge tag 'dmaengine-fix-6.15' of ↵tip/urgentLinus Torvalds7-67/+148
git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine Pull dmaengine fixes from Vinod Koul: "This has a bunch of idxd driver fixes, dmatest revert and bunch of smaller driver fixes: - a bunch of idxd potential mem leak fixes - dmatest revert for waiting for interrupt fix as that causes issue - a couple of ti k3 udma fixes for locking and cap_mask - mediatek deadlock fix and unused variable cleanup fix" * tag 'dmaengine-fix-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine: dmaengine: mediatek: drop unused variable dmaengine: fsl-edma: Fix return code for unhandled interrupts dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status() dmaengine: idxd: Fix ->poll() return value dmaengine: idxd: Refactor remove call with idxd_cleanup() helper dmaengine: idxd: Add missing idxd cleanup to fix memory leak in remove call dmaengine: idxd: fix memory leak in error handling path of idxd_pci_probe dmaengine: idxd: fix memory leak in error handling path of idxd_alloc dmaengine: idxd: Add missing cleanups in cleanup internals dmaengine: idxd: Add missing cleanup for early error out in idxd_setup_internals dmaengine: idxd: fix memory leak in error handling path of idxd_setup_groups dmaengine: idxd: fix memory leak in error handling path of idxd_setup_engines dmaengine: idxd: fix memory leak in error handling path of idxd_setup_wqs dmaengine: ptdma: Move variable condition check to the first place and remove redundancy dmaengine: idxd: Fix allowing write() from different address spaces dmaengine: ti: k3-udma: Add missing locking dmaengine: ti: k3-udma: Use cap_mask directly from dma_device structure instead of a local copy dmaengine: Revert "dmaengine: dmatest: Fix dmatest waiting less when interrupted" dmaengine: idxd: cdev: Fix uninitialized use of sva in idxd_cdev_open
12 hoursMerge tag 'phy-fixes-6.15' of ↵Linus Torvalds8-92/+133
git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy Pull phy fixes from Vinod Koul: "A bunch of renesas fixes and few smaller fixes in other drivers: - Rensas fixes for unbind ole detection, irq, locking etc - tegra fixes for error handling at init and UTMI power states and stray unlock fix - rockchip missing assignment and pll output fixes - startfive usb host detection fixes" * tag 'phy-fixes-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/phy/linux-phy: phy: Fix error handling in tegra_xusb_port_init phy: renesas: rcar-gen3-usb2: Set timing registers only once phy: renesas: rcar-gen3-usb2: Assert PLL reset on PHY power off phy: renesas: rcar-gen3-usb2: Lock around hardware registers and driver data phy: renesas: rcar-gen3-usb2: Move IRQ request in probe phy: renesas: rcar-gen3-usb2: Fix role detection on unbind/bind phy: tegra: xusb: remove a stray unlock phy: phy-rockchip-samsung-hdptx: Fix PHY PLL output 50.25MHz error phy: starfive: jh7110-usb: Fix USB 2.0 host occasional detection failure phy: rockchip-samsung-dcphy: Add missing assignment phy: can-transceiver: Re-instate "mux-states" property presence check phy: qcom-qmp-ufs: check for mode type for phy setting phy: tegra: xusb: Use a bitmask for UTMI pad power state tracking
13 hoursMerge tag 'soundwire-6.15-fixes' of ↵Linus Torvalds1-4/+5
git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire Pull soundwire fix from Vinod Koul: - Fix for irq domain creation race in the core * tag 'soundwire-6.15-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/soundwire: soundwire: bus: Fix race on the creation of the IRQ domain
14 hoursMerge tag 'mm-hotfixes-stable-2025-05-17-09-41' of ↵Linus Torvalds10-87/+82
git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull hotfixes from Andrew Morton: "Nine singleton hotfixes, all MM. Four are cc:stable" * tag 'mm-hotfixes-stable-2025-05-17-09-41' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: mm: userfaultfd: correct dirty flags set for both present and swap pte zsmalloc: don't underflow size calculation in zs_obj_write() mm/page_alloc: fix race condition in unaccepted memory handling mm/page_alloc: ensure try_alloc_pages() plays well with unaccepted memory MAINTAINERS: add mm GUP section mm/codetag: move tag retrieval back upfront in __free_pages() mm/memory: fix mapcount / refcount sanity check for mTHP reuse kernel/fork: only call untrack_pfn_clear() on VMAs duplicated for fork() mm: hugetlb: fix incorrect fallback for subpool
16 hoursMerge tag 'irq-urgent-2025-05-17' of ↵Linus Torvalds6-10/+10
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull misc irqchip driver fixes from Ingo Molnar: - Remove the MSI_CHIP_FLAG_SET_ACK flag from 5 irqchip drivers that did not require it - Fix IRQ handling delays in the riscv-imsic irqchip driver * tag 'irq-urgent-2025-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: irqchip/riscv-imsic: Start local sync timer on correct CPU irqchip: Drop MSI_CHIP_FLAG_SET_ACK from unsuspecting MSI drivers
16 hoursMerge tag 'x86-urgent-2025-05-17' of ↵Linus Torvalds6-96/+176
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull misc x86 fixes from Ingo Molnar: - Fix SEV-SNP kdump bugs - Update the email address of Alexey Makhalov in MAINTAINERS - Add the CPU feature flag for the Zen6 microarchitecture - Fix typo in system message * tag 'x86-urgent-2025-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/mm: Remove duplicated word in warning message x86/CPU/AMD: Add X86_FEATURE_ZEN6 x86/sev: Make sure pages are not skipped during kdump x86/sev: Do not touch VMSA pages during SNP guest memory kdump MAINTAINERS: Update Alexey Makhalov's email address x86/sev: Fix operator precedence in GHCB_MSR_VMPL_REQ_LEVEL macro
16 hoursMerge tag 'perf-urgent-2025-05-17' of ↵Linus Torvalds1-4/+5
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip Pull x86 perf event fix from Ingo Molnar: "Fix PEBS-via-PT crash" * tag 'perf-urgent-2025-05-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/intel: Fix segfault with PEBS-via-PT with sample_freq
17 hoursMerge tag 'loongarch-fixes-6.15-2' of ↵Linus Torvalds7-17/+31
git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson Pull LoongArch fixes from Huacai Chen: "Fix some bugs in kernel-fpu, cpu idle function, hibernation and uprobes" * tag 'loongarch-fixes-6.15-2' of git://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson: LoongArch: uprobes: Remove redundant code about resume_era LoongArch: uprobes: Remove user_{en,dis}able_single_step() LoongArch: Save and restore CSR.CNTC for hibernation LoongArch: Move __arch_cpu_idle() to .cpuidle.text section LoongArch: Fix MAX_REG_OFFSET calculation LoongArch: Prevent cond_resched() occurring within kernel-fpu
17 hoursMerge tag 'i2c-for-6.15-rc7' of ↵Linus Torvalds1-1/+3
git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux Pull i2c fix from Wolfram Sang: - designware: cleanup properly on probe failure * tag 'i2c-for-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: i2c: designware: Fix an error handling path in i2c_dw_pci_probe()
19 hoursMerge branch 'x86/cache' into x86/merge, to resolve conflictsx86/mergeIngo Molnar32-7267/+7773
Conflicts: arch/x86/kernel/cpu/resctrl/monitor.c arch/x86/kernel/cpu/resctrl/rdtgroup.c Signed-off-by: Ingo Molnar <mingo@kernel.org>
23 hoursx86/paravirt: Restrict PARAVIRT_XXL to 64-bit onlyKirill A. Shutemov4-8/+1
PARAVIRT_XXL is exclusively utilized by XEN_PV, which is only compatible with 64-bit machines. Clearly designate PARAVIRT_XXL as 64-bit only and remove ifdefs to support CONFIG_PGTABLE_LEVELS < 5. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Juergen Gross <jgross@suse.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250516123306.3812286-5-kirill.shutemov@linux.intel.com
23 hoursx86/mm/64: Make 5-level paging support unconditionalKirill A. Shutemov19-102/+10
Both Intel and AMD CPUs support 5-level paging, which is expected to become more widely adopted in the future. All major x86 Linux distributions have the feature enabled. Remove CONFIG_X86_5LEVEL and related #ifdeffery for it to make it more readable. Suggested-by: Borislav Petkov <bp@alien8.de> Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250516123306.3812286-4-kirill.shutemov@linux.intel.com
23 hoursx86/mm/64: Make SPARSEMEM_VMEMMAP the only memory modelKirill A. Shutemov2-9/+2
5-level paging only supports SPARSEMEM_VMEMMAP. CONFIG_X86_5LEVEL is being phased out, making 5-level paging support mandatory. Make CONFIG_SPARSEMEM_VMEMMAP mandatory for x86-64 and eliminate any associated conditional statements. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250516123306.3812286-3-kirill.shutemov@linux.intel.com
23 hoursx86/mm/64: Always use dynamic memory layoutKirill A. Shutemov5-23/+1
Dynamic memory layout is used by KASLR and 5-level paging. CONFIG_X86_5LEVEL is going to be removed, making 5-level paging support unconditional which requires unconditional support of dynamic memory layout. Remove CONFIG_DYNAMIC_MEMORY_LAYOUT. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Ard Biesheuvel <ardb@kernel.org> Reviewed-by: Borislav Petkov (AMD) <bp@alien8.de> Cc: Jan Kiszka <jan.kiszka@siemens.com> Cc: Kieran Bingham <kbingham@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250516123306.3812286-2-kirill.shutemov@linux.intel.com
23 hoursx86/bugs: Fix indentation due to ITS mergeBorislav Petkov (AMD)1-2/+2
No functional changes. Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
23 hoursMerge tag 'i2c-host-fixes-6.15-rc7' of ↵Wolfram Sang1-1/+3
git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux into i2c/for-current i2c-host-fixes for v6.15-rc7 - designware: cleanup properly on probe failure
24 hoursperf/core: Add the is_event_in_freq_mode() helper to simplify the codeperf/coreKan Liang1-5/+10
Add a helper to check if an event is in freq mode to improve readability. No functional changes. Signed-off-by: Kan Liang <kan.liang@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20250516182853.2610284-2-kan.liang@linux.intel.com
31 hoursMerge tag '6.15-rc6-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6Linus Torvalds2-3/+5
Pull smb client fixes from Steve French: - Fix memory leak in mkdir error path - Fix max rsize miscalculation after channel reconnect * tag '6.15-rc6-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6: smb: client: fix zero rsize error messages smb: client: fix memory leak during error handling for POSIX mkdir
33 hoursMerge tag 'drm-fixes-2025-05-17' of https://gitlab.freedesktop.org/drm/kernelLinus Torvalds38-121/+474
Pull drm fixes from Dave Airlie: "Weekly drm fixes, I'll be honest and say I think this is larger than I'd prefer at this point, the main blow out point is that xe has two larger fixes. One is a fix for active context utilisation reporting, it's for a reported regression and will end up in stable anyways, so I don't see any point in holding it up. The second is a fix for mixed cpu/gpu atomics, which are currently broken, but are also not something your average desktop/laptop user is going to hit in normal operation, and having them fixed now is better than threading them through stable later. Other than those, it's mostly the usual, a bunch of amdgpu randoms and a few other minor fixes. dma-buf: - Avoid memory reordering in fence handling meson: - Avoid integer overflow in mode-clock calculations panel-mipi-dbi: - Fix output with drm_client_setup_with_fourcc() amdgpu: - Fix CSA unmap - Fix MALL size reporting on GFX11.5 - AUX fix - DCN 3.5 fix - VRR fix - DP MST fix - DML 2.1 fixes - Silence DP AUX spam - DCN 4.0.1 cursor fix - VCN 4.0.5 fix ivpu: - Fix buffer size in debugfs code gpuvm: - Add timeslicing and allocation restriction for SVM xe: - Fix shrinker debugfs name - Add HW workaround to Xe2 - Fix SVM when mixing GPU and CPU atomics - Fix per client engine utilization due to active contexts not saving timestamp with lite restore enabled" * tag 'drm-fixes-2025-05-17' of https://gitlab.freedesktop.org/drm/kernel: (24 commits) drm/xe: Add WA BB to capture active context utilization drm/xe: Save the gt pointer in lrc and drop the tile drm/xe: Save CTX_TIMESTAMP mmio value instead of LRC value drm/xe: Timeslice GPU on atomic SVM fault drm/gpusvm: Add timeslicing support to GPU SVM drm/xe: Strict migration policy for atomic SVM faults drm/gpusvm: Introduce devmem_only flag for allocation drm/xe/xe2hpg: Add Wa_22021007897 drm/amdgpu: read back register after written for VCN v4.0.5 Revert "drm/amd/display: Hardware cursor changes color when switched to software cursor" dma-buf: insert memory barrier before updating num_fences drm/xe: Fix the gem shrinker name drm/amd/display: Avoid flooding unnecessary info messages drm/amd/display: Fix null check of pipe_ctx->plane_state for update_dchubp_dpp drm/amd/display: check stream id dml21 wrapper to get plane_id drm/amd/display: fix link_set_dpms_off multi-display MST corner case drm/amd/display: Defer BW-optimization-blocked DRR adjustments Revert: "drm/amd/display: Enable urgent latency adjustment on DCN35" drm/amd/display: Correct the reply value when AUX write incomplete drm/amdgpu: fix incorrect MALL size for GFX1151 ...
34 hoursMerge tag 'nfs-for-6.15-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfsLinus Torvalds15-62/+143
Pull NFS client bugfixes from Trond Myklebust: - NFS: Fix a couple of missed handlers for the ENETDOWN and ENETUNREACH transport errors - NFS: Handle Oopsable failure of nfs_get_lock_context in the unlock path - NFSv4: Fix a race in nfs_local_open_fh() - NFSv4/pNFS: Fix a couple of layout segment leaks in layoutreturn - NFSv4/pNFS Avoid sharing pNFS DS connections between net namespaces since IP addresses are not guaranteed to refer to the same nodes - NFS: Don't flush file data while holding multiple directory locks in nfs_rename() * tag 'nfs-for-6.15-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: NFS: Avoid flushing data while holding directory locks in nfs_rename() NFS/pnfs: Fix the error path in pnfs_layoutreturn_retry_later_locked() NFSv4/pnfs: Reset the layout state after a layoutreturn NFS/localio: Fix a race in nfs_local_open_fh() nfs: nfs3acl: drop useless assignment in nfs3_get_acl() nfs: direct: drop useless initializer in nfs_direct_write_completion() nfs: move the nfs4_data_server_cache into struct nfs_net nfs: don't share pNFS DS connections between net namespaces nfs: handle failure of nfs_get_lock_context in unlock path pNFS/flexfiles: Record the RPC errors in the I/O tracepoints NFSv4/pnfs: Layoutreturn on close must handle fatal networking errors NFSv4: Handle fatal ENETDOWN and ENETUNREACH errors
35 hoursNFS: Avoid flushing data while holding directory locks in nfs_rename()Trond Myklebust3-4/+25
The Linux client assumes that all filehandles are non-volatile for renames within the same directory (otherwise sillyrename cannot work). However, the existence of the Linux 'subtree_check' export option has meant that nfs_rename() has always assumed it needs to flush writes before attempting to rename. Since NFSv4 does allow the client to query whether or not the server exhibits this behaviour, and since knfsd does actually set the appropriate flag when 'subtree_check' is enabled on an export, it should be OK to optimise away the write flushing behaviour in the cases where it is clearly not needed. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Reviewed-by: Jeff Layton <jlayton@kernel.org>
35 hoursNFS/pnfs: Fix the error path in pnfs_layoutreturn_retry_later_locked()Trond Myklebust1-17/+13
If there isn't a valid layout, or the layout stateid has changed, the cleanup after a layout return should clear out the old data. Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
35 hoursNFSv4/pnfs: Reset the layout state after a layoutreturnTrond Myklebust1-0/+9
If there are still layout segments in the layout plh_return_lsegs list after a layout return, we should be resetting the state to ensure they eventually get returned as well. Fixes: 68f744797edd ("pNFS: Do not free layout segments that are marked for return") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
36 hoursPCI: tegra: Convert to MSI parent infrastructureirq/msiMarc Zyngier2-44/+20
In an effort to move ARM64 away from the legacy MSI setup, convert the Tegra PCIe driver to the MSI-parent infrastructure and let each device have its own MSI domain. [ tglx: Moved the struct out of the function call argument ] Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-10-maz@kernel.org
36 hoursPCI: xgene: Convert to MSI parent infrastructureMarc Zyngier2-33/+21
In an effort to move ARM64 away from the legacy MSI setup, convert the XGENE PCIe driver to the MSI-parent infrastructure and let each device have its own MSI domain. [ tglx: Moved the struct out of the function call argument ] Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-9-maz@kernel.org
36 hoursPCI: apple: Convert to MSI parent infrastructureMarc Zyngier2-46/+24
In an effort to move ARM64 away from the legacy MSI setup, convert the Apple PCIe driver to the MSI-parent infrastructure and let each device have its own MSI domain. [ tglx: Moved the struct out of the function call argument ] Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Link: https://lore.kernel.org/all/20250513172819.2216709-8-maz@kernel.org
36 hoursirqchip/msi-lib: Honour the MSI_FLAG_NO_AFFINITY flagMarc Zyngier1-1/+6
Bad MSI implementations multiplex MSIs onto a single downstream interrupt, meaning they have no concept of individual affinity. The old MSI code did a reasonable job at this by honouring the MSI_FLAG_NO_AFFINITY, but the new shiny device MSI code doesn't. Teach it about the sad reality of existing hardware. Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-7-maz@kernel.org
36 hoursirqchip/mvebu: Convert to msi_create_parent_irq_domain() helperMarc Zyngier3-41/+30
Switch the MVEBU family of interrupt chip drivers over to the common helper function to create the interrupt domains. [ tglx: Moved the struct out of the function call argument and fix up the of_node_to_fwnode() instances ] Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-5-maz@kernel.org
36 hoursirqchip/gic: Convert to msi_create_parent_irq_domain() helperMarc Zyngier3-31/+23
Switch the GIC family of interrupt chip drivers over to the common helper function to create the interrupt domains. [ tglx: Moved the struct out of the function call argument ] Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-4-maz@kernel.org
36 hoursgenirq/msi: Add helper for creating MSI-parent irq domainsMarc Zyngier2-0/+30
Creating an irq domain that serves as an MSI parent requires a substantial amount of esoteric boiler-plate code, some of which is often provided twice (such as the bus token). To make things a bit simpler for the unsuspecting MSI tinkerer, provide a helper that does it for them, and serves as documentation of what needs to be provided. Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-3-maz@kernel.org
36 hoursirqchip: Make irq-msi-lib.h globally availableMarc Zyngier16-18/+18
Move irq-msi-lib.h into include/linux/irqchip, making it available to compilation units outside of drivers/irqchip. This requires some churn in drivers to fetch it from the new location, generated using this script: git grep -l -w \"irq-msi-lib.h\" | \ xargs sed -i -e 's:"irq-msi-lib.h":\<linux/irqchip/irq-msi-lib.h\>:' Signed-off-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250513172819.2216709-2-maz@kernel.org
36 hoursMerge irq/cleanup fragments into irq/msiThomas Gleixner10-10/+10
Pick up the PCI changes to avoid conflicts.
37 hoursirqdomain: Consolidate coding styleirq/cleanupsThomas Gleixner1-144/+113
Now that the file has been thrown through the mincer, finish the job and consolidate the coding style. Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
37 hoursirqdomain: Fix kernel-doc and add it to DocumentationJiri Slaby (SUSE)3-4/+22
irqdomain.c's kernel-doc exists, but is not plugged into Documentation/ yet. Before plugging it in, fix it first: irq_domain_get_irq_data() and irq_domain_set_info() were documented twice. Identically, by both definitions for CONFIG_IRQ_DOMAIN_HIERARCHY and !CONFIG_IRQ_DOMAIN_HIERARCHY. Therefore, switch the second kernel-doc into an ordinary comment -- change "/**" to simple "/*". This avoids sphinx's: WARNING: Duplicate C declaration Next, in commit b7b377332b96 ("irqdomain: Fix the kernel-doc and plug it into Documentation"), irqdomain.h's (header) kernel-doc was added into core-api/genericirq.rst. But given the amount of irqdomain functions and structures, move all these to core-api/irq/irq-domain.rst now. Finally, add these newly fixed irqdomain.c's (source) docs there as well. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-58-jirislaby@kernel.org
37 hoursDocumentation: irqdomain: Update itJiri Slaby (SUSE)2-72/+76
The irqdomain documentaion became obsolete over time. Update and extend it a bit with respect to the current code and HW. Most notably the doubled documentation of irq_domain (from .rst and .h) was unified and let only in .rst. A reference link was added to .h. Furthermore: * Add some 'struct' keywords, so that the respective structs are hyperlinked * :c:member: use where appropriate to mark a member of a struct * Rephrase some wording to improve readability/understanding Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-57-jirislaby@kernel.org
37 hoursDocumentation: irq-domain.rst: Simple improvementsJiri Slaby (SUSE)1-11/+11
The improvements include: * Capitals in headlines. * Add commas: for easier reading, it is always desired to add commas at some places in text. Like before adverbs or after fronted sentences. * 3rd person -> add 's' to verbs. * End some sentences with period and start a new one. Avoid thus heavy sentences. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-56-jirislaby@kernel.org
37 hoursDocumentation: irq/concepts: Minor improvementsJiri Slaby (SUSE)1-5/+7
Just note in the docs: 1) A PCI device as an example for shared interrupts 2) A sparse tree can be used for interrupts too 3) i8259s which have 8 pins [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-55-jirislaby@kernel.org
37 hoursDocumentation: irq/concepts: Add commas and reflowJiri Slaby (SUSE)1-10/+9
For easier reading, it is always desired to add commas at some places in text. Like before adverbs or after fronted sentences. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-54-jirislaby@kernel.org
37 hoursirqdomain: Improve kernel-docs of functionsJiri Slaby (SUSE)1-1/+41
Many of irqdomain.h's functions are referenced in Documentation/ but are not properly documented. Therefore, document these. And use "Returns:" tag consistently, so that it is properly generated in the resulting docs. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-53-jirislaby@kernel.org
37 hoursirqdomain: Make struct irq_domain_info variables constJiri Slaby (SUSE)1-4/+4
This is just expressing it explicitly as irq_domain_instantiate() takes const already. No functional change. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-52-jirislaby@kernel.org
37 hoursirqdomain: Use irq_domain_instantiate()'s return value as initializersJiri Slaby (SUSE)1-12/+5
This makes the code more compact. Note that irq_domain_create_hierarchy()'s handling of size is now part of info's initializer (using the ternary operator). That makes more sense while reading it. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-51-jirislaby@kernel.org
37 hoursirqdomain: Drop irq_linear_revmap()Jiri Slaby (SUSE)3-10/+0
irq_linear_revmap() is deprecated and unused now. So remove it. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-50-jirislaby@kernel.org
37 hourspinctrl: keembay: Switch to irq_find_mapping()Jiri Slaby (SUSE)1-1/+1
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/all/20250319092951.37667-48-jirislaby@kernel.org
37 hoursirqchip/armada-370-xp: Switch to irq_find_mapping()Jiri Slaby (SUSE)1-2/+2
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-47-jirislaby@kernel.org
37 hoursgpu: ipu-v3: Switch to irq_find_mapping()Jiri Slaby (SUSE)1-2/+2
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-45-jirislaby@kernel.org
37 hoursgpio: idt3243x: Switch to irq_find_mapping()Jiri Slaby (SUSE)1-1/+1
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/all/20250319092951.37667-44-jirislaby@kernel.org
37 hourssh: Switch to irq_find_mapping()Jiri Slaby (SUSE)2-2/+2
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-43-jirislaby@kernel.org
37 hourspowerpc: Switch to irq_find_mapping()Jiri Slaby (SUSE)14-15/+15
irq_linear_revmap() is deprecated, so remove all its uses and supersede them by an identical call to irq_find_mapping(). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> # for 8xx Link: https://lore.kernel.org/all/20250319092951.37667-42-jirislaby@kernel.org
37 hoursirqdomain: Drop irq_domain_add_*() functionsJiri Slaby (SUSE)4-130/+44
Most irq_domain_add_*() functions are unused now, so drop them. The remaining ones are moved to the deprecated section and will be removed during the merge window after the patches in various trees have been merged. Note: The Chinese docs are touched but unfinished. I cannot parse those. [ tglx: Remove the leftover in irq-domain.rst and handle merge logistics ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-41-jirislaby@kernel.org
37 hourspowerpc: Switch irq_domain_add_nomap() to use fwnodeJiri Slaby (SUSE)5-6/+6
All irq_domain_add_*() functions are going away. PowerPC is the only user of irq_domain_add_nomap() and there is no irq_domain_create_nomap() complement. Therefore, to align with the rest of the kernel, rename irq_domain_add_nomap() to irq_domain_create_nomap() and accept a fwnode_handle instead of a device_node. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-40-jirislaby@kernel.org
37 hoursthermal: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)2-2/+3
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fixed up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-39-jirislaby@kernel.org
37 hourssoc: Switch to irq_domain_create_*()Jiri Slaby (SUSE)5-8/+9
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Christophe Leroy <christophe.leroy@csgroup.eu> # For soc/fsl Link: https://lore.kernel.org/all/20250319092951.37667-35-jirislaby@kernel.org
37 hourssh: Switch to irq_domain_create_*()Jiri Slaby (SUSE)4-7/+7
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-34-jirislaby@kernel.org
37 hourspowerpc: Switch to irq_domain_create_*()Jiri Slaby (SUSE)21-33/+45
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu> # For 8xx Link: https://lore.kernel.org/all/20250319092951.37667-33-jirislaby@kernel.org
37 hourspinctrl: Switch to irq_domain_create_*()Jiri Slaby (SUSE)4-12/+11
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/all/20250319092951.37667-31-jirislaby@kernel.org
37 hoursPCI: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)21-71/+59
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix and convert the new instance in dwc/pcie-amd-mdb.c ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-30-jirislaby@kernel.org
37 hoursnios2: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)1-1/+2
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-29-jirislaby@kernel.org
37 hoursnet: Switch to irq_domain_create_*()Jiri Slaby (SUSE)9-22/+22
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-28-jirislaby@kernel.org
37 hoursmisc: hi6421-spmi-pmic: Switch to irq_domain_create_simple()Jiri Slaby (SUSE)1-2/+3
irq_domain_add_simple() is going away as being obsolete now. Switch to the preferred irq_domain_create_simple(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-27-jirislaby@kernel.org
37 hoursMIPS: Switch to irq_domain_create_*()Jiri Slaby (SUSE)7-23/+25
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-26-jirislaby@kernel.org
37 hoursmfd: Switch to irq_domain_create_*()Jiri Slaby (SUSE)21-55/+43
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-25-jirislaby@kernel.org
37 hoursmemory: omap-gpmc: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)1-4/+2
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-24-jirislaby@kernel.org
37 hoursmailbox: qcom-ipcc: Switch to irq_domain_create_tree()Jiri Slaby (SUSE)1-2/+2
irq_domain_add_tree() is going away as being obsolete now. Switch to the preferred irq_domain_create_tree(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-23-jirislaby@kernel.org
37 hoursirqchip: Switch to irq_domain_create_*()Jiri Slaby (SUSE)87-184/+180
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Changhuang Liang <changhuang.liang@starfivetech.com> Link: https://lore.kernel.org/all/20250319092951.37667-22-jirislaby@kernel.org
37 hoursiio: Switch to irq_domain_create_simple()Jiri Slaby (SUSE)1-3/+4
irq_domain_add_simple() is going away as being obsolete now. Switch to the preferred irq_domain_create_simple(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-21-jirislaby@kernel.org
37 hoursi2c: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)2-4/+4
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-20-jirislaby@kernel.org
37 hoursgpu: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)3-5/+5
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-19-jirislaby@kernel.org
37 hoursgpio: Switch to irq_domain_create_*()Jiri Slaby (SUSE)15-28/+26
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-18-jirislaby@kernel.org
37 hoursEDAC/altera: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)1-2/+2
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-17-jirislaby@kernel.org
37 hoursbus: moxtet: Switch to irq_domain_create_simple()Jiri Slaby (SUSE)1-3/+3
irq_domain_add_simple() is going away as being obsolete now. Switch to the preferred irq_domain_create_simple(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-16-jirislaby@kernel.org
37 hoursARM: Switch to irq_domain_create_*()Jiri Slaby (SUSE)9-27/+22
irq_domain_add_*() interfaces are going away as being obsolete now. Switch to the preferred irq_domain_create_*() ones. Those differ in the node parameter: They take more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the original parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-15-jirislaby@kernel.org
37 hoursARC: Switch to irq_domain_create_linear()Jiri Slaby (SUSE)3-4/+6
irq_domain_add_linear() is going away as being obsolete now. Switch to the preferred irq_domain_create_linear(). That differs in the first parameter: It takes more generic struct fwnode_handle instead of struct device_node. Therefore, of_fwnode_handle() is added around the parameter. Note some of the users can likely use dev->fwnode directly instead of indirect of_fwnode_handle(dev->of_node). But dev->fwnode is not guaranteed to be set for all, so this has to be investigated on case to case basis (by people who can actually test with the HW). [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-14-jirislaby@kernel.org
37 hoursirqdomain: Make irq_domain_create_hierarchy() an inlineJiri Slaby (SUSE)2-47/+39
There is no reason to export the function as an extra symbol. It is simple enough and is just a wrapper to already exported functions. Therefore, switch the exported function to an inline. Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-13-jirislaby@kernel.org
37 hoursirqdomain: Drop of_node_to_fwnode()Jiri Slaby (SUSE)2-13/+14
All uses of of_node_to_fwnode() in non-irqdomain code were changed to "officially" defined of_fwnode_handle(). Therefore, the former can be dropped along with the last uses in the irqdomain code. Due to merge logistics the inline cannot be dropped immediately. Move it to a deprecated section, which will be removed during the merge window. [ tglx: Handle merge logistics ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-12-jirislaby@kernel.org
37 hoursx86/io_apic: Switch to of_fwnode_handle()Jiri Slaby (SUSE)1-1/+1
of_node_to_fwnode() is irqdomain's reimplementation of the "officially" defined of_fwnode_handle(). The former is in the process of being removed, so use the latter instead. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-11-jirislaby@kernel.org
37 hourspowerpc: Switch to of_fwnode_handle()Jiri Slaby (SUSE)2-2/+2
of_node_to_fwnode() is irqdomain's reimplementation of the "officially" defined of_fwnode_handle(). The former is in the process of being removed, so use the latter instead. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250319092951.37667-9-jirislaby@kernel.org
37 hoursirqchip: Switch to of_fwnode_handle()Jiri Slaby (SUSE)22-26/+26
of_node_to_fwnode() is irqdomain's reimplementation of the "officially" defined of_fwnode_handle(). The former is in the process of being removed, so use the latter instead. [ tglx: Fix up subject prefix ] Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Antonio Borneo <antonio.borneo@foss.st.com> Reviewed-by: Herve Codina <herve.codina@bootlin.com> Reviewed-by: Anup Patel <anup@brainfault.org> Acked-by: Herve Codina <herve.codina@bootlin.com> # irq-lan966x-oic Link: https://lore.kernel.org/all/20250319092951.37667-7-jirislaby@kernel.org
38 hoursMerge tag 'scsi-fixes' of ↵Linus Torvalds3-2/+7
git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fix from James Bottomley: "Fix to zone block devices to make the maximum segment count match what the block layer is capable of" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: sd_zbc: block: Respect bio vector limits for REPORT ZONES buffer
38 hoursMerge tag 'block-6.15-20250515' of git://git.kernel.dk/linuxLinus Torvalds7-38/+107
Pull block fixes from Jens Axboe: - NVMe pull request via Christoph: - fixes for atomic writes (Alan Adamson) - fixes for polled CQs in nvmet-epf (Damien Le Moal) - fix for polled CQs in nvme-pci (Keith Busch) - fix compile on odd configs that need to be forced to inline (Kees Cook) - one more quirk (Ilya Guterman) - Fix for missing allocation of an integrity buffer for some cases - Fix for a regression with ublk command cancelation * tag 'block-6.15-20250515' of git://git.kernel.dk/linux: ublk: fix dead loop when canceling io command nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro nvme: all namespaces in a subsystem must adhere to a common atomic write size nvme: multipath: enable BLK_FEAT_ATOMIC_WRITES for multipathing nvmet: pci-epf: remove NVMET_PCI_EPF_Q_IS_SQ nvmet: pci-epf: improve debug message nvmet: pci-epf: cleanup nvmet_pci_epf_raise_irq() nvmet: pci-epf: do not fall back to using INTX if not supported nvmet: pci-epf: clear completion queue IRQ flag on delete nvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable nvme-pci: make nvme_pci_npages_prp() __always_inline block: always allocate integrity buffer when required
39 hoursMerge tag 'io_uring-6.15-20250515' of git://git.kernel.dk/linuxLinus Torvalds3-24/+31
Pull io_uring fixes from Jens Axboe: - Fix a regression with highmem and mapping of regions, where the coalescing code assumes any page is directly mapped - Fix an issue with HYBRID_IOPOLL and passthrough commands, where the timer wasn't always setup correctly - Fix an issue with fdinfo not correctly locking around reading the rings, which can be an issue if the ring is being resized at the same time * tag 'io_uring-6.15-20250515' of git://git.kernel.dk/linux: io_uring/fdinfo: grab ctx->uring_lock around io_uring_show_fdinfo() io_uring/memmap: don't use page_address() on a highmem page io_uring/uring_cmd: fix hybrid polling initialization issue
39 hoursMerge tag 'xfs-fixes-6.15-rc7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linuxLinus Torvalds3-19/+48
Pull xfs fixes from Carlos Maiolino: "This includes a bug fix for a possible data corruption vector on the zoned allocator garbage collector" * tag 'xfs-fixes-6.15-rc7' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: xfs: Fix comment on xfs_trans_ail_update_bulk() xfs: Fix a comment on xfs_ail_delete xfs: Fail remount with noattr2 on a v5 with v4 enabled xfs: fix zoned GC data corruption due to wrong bv_offset xfs: free up mp->m_free[0].count in error case
39 hoursMerge tag 'acpi-6.15-rc7' of ↵Linus Torvalds1-3/+8
git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm Pull ACPI fix from Rafael Wysocki: "Fix ACPI PPTT parsing code to address a regression introduced recently and add more sanity checking of data supplied by the platform firmware to avoid using invalid data (Jeremy Linton)" * tag 'acpi-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: ACPI: PPTT: Fix processor subtable walk
39 hoursMerge tag 'spi-fix-v6.15-rc6' of ↵Linus Torvalds3-5/+8
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi Pull spi fixes from Mark Brown: "A few small driver specific fixes, the most substantial one being the Tegra one which fixes spurious errors with default delays for chip select hold times" * tag 'spi-fix-v6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: spi: spi-sun4i: fix early activation spi: tegra114: Use value to check for invalid delays spi: loopback-test: Do not split 1024-byte hexdumps
39 hoursMerge tag 'regulator-fix-v6.15-rc6' of ↵Linus Torvalds1-1/+6
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator Pull regulator fix from Mark Brown: "This fixes an invalid memory access in the MAX20086 driver which could occur during error handling for failed probe due to a hidden use of devres in the core DT parsing code" * tag 'regulator-fix-v6.15-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: regulator: max20086: fix invalid memory access
40 hoursMerge tag 'gpio-fixes-for-v6.15-rc7' of ↵Linus Torvalds3-2/+23
git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux Pull gpio fixes from Bartosz Golaszewski: - fix an interrupt storm on system wake-up in gpio-pca953x - fix an out-of-bounds write in gpio-virtuser - update MAINTAINERS with an entry for the sloppy logic analyzer * tag 'gpio-fixes-for-v6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: gpio: virtuser: fix potential out-of-bound write gpio: pca953x: fix IRQ storm on system wake up MAINTAINERS: add me as maintainer for the gpio sloppy logic analyzer
40 hoursMerge tag 'sound-6.15-rc7' of ↵Linus Torvalds10-27/+66
git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "A handful small fixes. The only significant change is the fix for MIDI 2.0 UMP handling in ALSA sequencer, but as MIDI 2.0 stuff is still new and rarely used, the impact should be pretty limited. Other than that, quirks for USB-audio and a few cosmetic fixes and changes in drivers that should be safe to apply" * tag 'sound-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB Camera ALSA: es1968: Add error handling for snd_pcm_hw_constraint_pow2() ALSA: sh: SND_AICA should depend on SH_DMA_API ALSA: usb-audio: Add sample rate quirk for Audioengine D1 ALSA: ump: Fix a typo of snd_ump_stream_msg_device_info ALSA/hda: intel-sdw-acpi: Correct sdw_intel_acpi_scan() function parameter ALSA: seq: Fix delivery of UMP events to group ports
40 hoursperf/x86/intel/ds: Remove redundant assignments to sample.periodChangbin Du1-3/+0
The perf_sample_data_init() has already set the period of sample, so no need to do it again. Signed-off-by: Changbin Du <changbin.du@huawei.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20250506094907.2724-1-changbin.du@huawei.com
43 hoursMAINTAINERS: Add reviewers for fs/resctrlx86/cacheJames Morse1-0/+2
resctrl has existed for quite a while as a filesystem interface private to arch/x86. To allow other architectures to support the same user interface for similar hardware features, it has been moved to /fs/. Add those with a vested interest in the common code as reviewers. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Acked-by: Reinette Chatre <reinette.chatre@intel.com> Acked-by: Dave Martin <Dave.Martin@arm.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-26-james.morse@arm.com
43 hoursx86,fs/resctrl: Move the resctrl filesystem code to live in /fs/resctrlJames Morse20-7351/+7525
Resctrl is a filesystem interface to hardware that provides cache allocation policy and bandwidth control for groups of tasks or CPUs. To support more than one architecture, resctrl needs to live in /fs/. Move the code that is concerned with the filesystem interface to /fs/resctrl. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-25-james.morse@arm.com
43 hoursx86/resctrl: Always initialise rid field in rdt_resources_all[]James Morse1-5/+5
x86 has an array, rdt_resources_all[], of all possible resources. The for-each-resource walkers depend on the rid field of all resources being initialised. If the array ever grows due to another architecture adding a resource type that is not defined on x86, the for-each-resources walkers will loop forever. Initialise all the rid values in resctrl_arch_late_init() before any for-each-resource walker can be called. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-24-james.morse@arm.com
43 hoursx86/resctrl: Relax some asm #includesDave Martin1-1/+2
checkpatch.pl identifies some direct #includes of asm headers that can be satisfied by including the corresponding <linux/...> header instead. Fix them. No intentional functional change. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-23-james.morse@arm.com
43 hoursx86/resctrl: Prefer alloc(sizeof(*foo)) idiom in rdt_init_fs_context()Dave Martin1-1/+1
rdt_init_fs_context() sizes a typed allocation using an explicit sizeof(type) expression, which checkpatch.pl complains about. Since this code is about to be factored out and made generic, this is a good opportunity to fix the code to size the allocation based on the target pointer instead, to reduce the chance of future mis- maintenance. Fix it. No functional change. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-22-james.morse@arm.com
44 hoursx86/resctrl: Squelch whitespace anomalies in resctrl core codeDave Martin1-7/+5
checkpatch.pl complains about some whitespace anomalies in the resctrl core code. This doesn't matter, but since this code is about to be factored out and made generic, this is a good opportunity to fix these issues and so reduce future checkpatch fuzz. Fix them. No functional change. Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-21-james.morse@arm.com
45 hoursx86/resctrl: Move pseudo lock prototypes to include/linux/resctrl.hJames Morse2-5/+13
The resctrl pseudo-lock feature allows an architecture to allocate data into particular cache portions, which are then treated as reserved to avoid that data ever being evicted. Setting this up is deeply architecture specific as it involves disabling prefetchers etc. It is not possible to support this kind of feature on arm64. Risc-V is assumed to be the same. The prototypes for the architecture code were added to x86's asm/resctrl.h, with other architectures able to provide stubs for their architecture. This forces other architectures to provide identical stubs. Move the prototypes and stubs to linux/resctrl.h, and switch between them using the existing Kconfig symbol. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-20-james.morse@arm.com
46 hoursx86/resctrl: Fix types in resctrl_arch_mon_ctx_{alloc,free}() stubsJames Morse1-4/+6
resctrl_arch_mon_ctx_alloc() and resctrl_arch_mon_ctx_free() take an enum resctrl_event_id that is already defined in resctrl_types.h to be accessible to asm/resctrl.h. The x86 stubs take an int. Fix that. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-19-james.morse@arm.com
46 hoursx86/resctrl: Move enum resctrl_event_id to resctrl.hJames Morse2-10/+10
resctrl_types.h contains common types and constants to enable architectures to use these types in their definitions within asm/resctrl.h. enum resctrl_event_id was placed in resctrl_types.h for resctrl_arch_get_cdp_enabled() and resctrl_arch_set_cdp_enabled(), but these two functions are no longer inlined by any architecture. Move enum resctrl_event_id to resctrl.h. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-18-james.morse@arm.com
46 hoursx86/resctrl: Move the filesystem bits to headers visible to fs/resctrlJames Morse4-9/+11
Once the filesystem parts of resctrl move to fs/resctrl, it cannot rely on definitions in x86's internal.h. Move definitions in internal.h that need to be shared between the filesystem and architecture code to header files that fs/resctrl can include. Doing this separately means the filesystem code only moves between files of the same name, instead of having these changes mixed in too. Co-developed-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-17-james.morse@arm.com
46 hoursx86/mm: Remove duplicated word in warning messagex86-urgent-2025-05-17x86/urgentLukas Bulwahn1-1/+1
Commit bbeb69ce3013 ("x86/mm: Remove CONFIG_HIGHMEM64G support") introduces a new warning message MSG_HIGHMEM_TRIMMED, which accidentally introduces a duplicated 'for for' in the warning message. Remove this duplicated word. This was noticed while reviewing for references to obsolete kernel build config options. Fixes: bbeb69ce3013 ("x86/mm: Remove CONFIG_HIGHMEM64G support") Signed-off-by: Lukas Bulwahn <lukas.bulwahn@redhat.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Andy Lutomirski <luto@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: kernel-janitors@vger.kernel.org Link: https://lore.kernel.org/r/20250516090810.556623-1-lukas.bulwahn@redhat.com
47 hoursfs/resctrl: Add boiler plate for external resctrl codeJames Morse19-13/+66
Add Makefile and Kconfig for fs/resctrl. Add ARCH_HAS_CPU_RESCTRL for the common parts of the resctrl interface and make X86_CPU_RESCTRL select this. Adding an include of asm/resctrl.h to linux/resctrl.h allows the /fs/resctrl files to switch over to using this header instead. Co-developed-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: Dave Martin <Dave.Martin@arm.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-16-james.morse@arm.com
47 hoursx86/cpuid: Rename ↵Ahmed S. Darwish6-8/+8
hypervisor_cpuid_base()/for_each_possible_hypervisor_cpuid_base() to cpuid_base_hypervisor()/for_each_possible_cpuid_base_hypervisor() In order to let all the APIs under <cpuid/api.h> have a shared "cpuid_" namespace, rename hypervisor_cpuid_base() to cpuid_base_hypervisor(). To align with the new style, also rename: for_each_possible_hypervisor_cpuid_base(function) to: for_each_possible_cpuid_base_hypervisor(function) Adjust call-sites accordingly. Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: David Woodhouse <dwmw2@infradead.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: Paolo Bonzini <pbonzini@redhat.com> Cc: Sean Christopherson <seanjc@google.com> Cc: Vitaly Kuznetsov <vkuznets@redhat.com> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/aCZOi0Oohc7DpgTo@lx-t490
47 hoursx86/resctrl: Add 'resctrl' to the title of the resctrl documentationJames Morse1-3/+3
The resctrl documentation is titled "User Interface for Resource Control feature". Once the documentation follows the code in a move to the filesystem, this appears in the list of filesystems, but doesn't contain the name of the filesystem, making it hard to find. Add 'resctrl' to the title. Suggested-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-15-james.morse@arm.com
47 hoursx86/cpu/intel: Rename CPUID(0x2) descriptors iterator parameterAhmed S. Darwish1-6/+6
The CPUID(0x2) descriptors iterator has been renamed from: for_each_leaf_0x2_entry() to: for_each_cpuid_0x2_desc() since it iterates over CPUID(0x2) cache and TLB "descriptors", not "entries". In the macro's x86/cpu call-site, rename the parameter denoting the parsed descriptor at each iteration from 'entry' to 'desc'. Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-8-darwi@linutronix.de
47 hoursx86/cacheinfo: Rename CPUID(0x2) descriptors iterator parameterAhmed S. Darwish1-7/+7
The CPUID(0x2) descriptors iterator has been renamed from: for_each_leaf_0x2_entry() to: for_each_cpuid_0x2_desc() since it iterates over CPUID(0x2) cache and TLB "descriptors", not "entries". In the macro's x86/cacheinfo call-site, rename the parameter denoting the parsed descriptor at each iteration from 'entry' to 'desc'. Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-7-darwi@linutronix.de
47 hoursx86/cpuid: Rename cpuid_get_leaf_0x2_regs() to cpuid_leaf_0x2()Ahmed S. Darwish3-24/+24
Rename the CPUID(0x2) register accessor function: cpuid_get_leaf_0x2_regs(regs) to: cpuid_leaf_0x2(regs) for consistency with other <cpuid/api.h> accessors that return full CPUID registers outputs like: cpuid_leaf(regs) cpuid_subleaf(regs) In the same vein, rename the CPUID(0x2) iteration macro: for_each_leaf_0x2_entry() to: for_each_cpuid_0x2_desc() to include "cpuid" in the macro name, and since what is iterated upon is CPUID(0x2) cache and TLB "descriptos", not "entries". Prefix an underscore to that iterator macro parameters, so that the newly renamed 'desc' parameter do not get mixed with "union leaf_0x2_regs :: desc[]" in the macro's implementation. Adjust all the affected call-sites accordingly. While at it, use "CPUID(0x2)" instead of "CPUID leaf 0x2" as this is the recommended style. No change in functionality intended. Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-6-darwi@linutronix.de
47 hoursx86/resctrl: Split trace.hJames Morse5-22/+42
trace.h contains all the tracepoints. After the move to /fs/resctrl, some of these will be left behind. All the pseudo_lock tracepoints remain part of the architecture. The lone tracepoint in monitor.c moves to /fs/resctrl. Split trace.h so that each C file includes a different trace header file. This means the trace header files are not modified when they are moved. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-14-james.morse@arm.com
47 hoursx86/resctrl: Expand the width of domid by replacing mon_data_bitsJames Morse3-36/+106
MPAM platforms retrieve the cache-id property from the ACPI PPTT table. The cache-id field is 32 bits wide. Under resctrl, the cache-id becomes the domain-id, and is packed into the mon_data_bits union bitfield. The width of cache-id in this field is 14 bits. Expanding the union would break 32bit x86 platforms as this union is stored as the kernfs kn->priv pointer. This saved allocating memory for the priv data storage. The firmware on MPAM platforms have used the PPTT cache-id field to expose the interconnect's id for the cache, which is sparse and uses more than 14 bits. Use of this id is to enable PCIe direct cache injection hints. Using this feature with VFIO means the value provided by the ACPI table should be exposed to user-space. To support cache-id values greater than 14 bits, convert the mon_data_bits union to a structure. These are shared between control and monitor groups, and are allocated on first use. The list of allocated struct mon_data is free'd when the filesystem is umount()ed. Co-developed-by: Tony Luck <tony.luck@intel.com> Signed-off-by: Tony Luck <tony.luck@intel.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-13-james.morse@arm.com
47 hoursx86/resctrl: Add end-marker to the resctrl_event_id enumJames Morse2-5/+7
The resctrl_event_id enum gives names to the counter event numbers on x86. These are used directly by resctrl. To allow the MPAM driver to keep an array of these the size of the enum needs to be known. Add a 'num_events' enum entry which can be used to size an array. This is added to the enum to reduce conflicts with another series, which in turn requires get_arch_mbm_state() to have a default case. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-12-james.morse@arm.com
48 hoursx86/tracing, x86/mm: Move page fault tracepoints to genericx86/debugNam Cao3-12/+5
Page fault tracepoints are interesting for other architectures as well. Move them to be generic. Signed-off-by: Nam Cao <namcao@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Gabriele Monaco <gmonaco@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: linux-trace-kernel@vger.kernel.org Link: https://lore.kernel.org/r/89c2f284adf9b4c933f0e65811c50cef900a5a95.1747046848.git.namcao@linutronix.de
48 hoursx86/tracing, x86/mm: Remove redundant trace_pagefault_keyNam Cao6-50/+6
trace_pagefault_key is used to optimize the pagefault tracepoints when it is disabled. However, tracepoints already have built-in static_key for this exact purpose. Remove this redundant key. Signed-off-by: Nam Cao <namcao@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Gabriele Monaco <gmonaco@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Steven Rostedt <rostedt@goodmis.org> Cc: linux-trace-kernel@vger.kernel.org Link: https://lore.kernel.org/r/827c7666d2989f08742a4fb869b1ed5bfaaf1dbf.1747046848.git.namcao@linutronix.de
48 hoursx86/resctrl: Move is_mba_sc() out of core.cJames Morse2-15/+15
is_mba_sc() is defined in core.c, but has no callers there. It does not access any architecture private structures. Move this to rdtgroup.c where the majority of callers are. This makes the move of the filesystem code to /fs/ cleaner. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-11-james.morse@arm.com
2 daysfutex: Fix kernel-doc commentslocking/futexBorislav Petkov (AMD)2-3/+3
Fix those: ./kernel/futex/futex.h:208: warning: Function parameter or struct member 'drop_hb_ref' not described in 'futex_q' ./kernel/futex/waitwake.c:343: warning: expecting prototype for futex_wait_queue(). Prototype was for futex_do_wait() instead ./kernel/futex/waitwake.c:594: warning: Function parameter or struct member 'task' not described in 'futex_wait_setup' Fixes: 93f1b6d79a73 ("futex: Move futex_queue() into futex_wait_setup()") Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Peter Zijlstra <peterz@infradead.org> Link: https://lore.kernel.org/r/20250512185641.0450a99b@canb.auug.org.au # report Link: https://lore.kernel.org/r/20250515171641.24073-1-bp@kernel.org # submission
2 daysMerge tag 'drm-xe-fixes-2025-05-15-1' of ↵Dave Airlie23-87/+391
https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes Core Changes: - Add timeslicing and allocation restriction for SVM Driver Changes: - Fix shrinker debugfs name - Add HW workaround to Xe2 - Fix SVM when mixing GPU and CPU atomics - Fix per client engine utilization due to active contexts not saving timestamp with lite restore enabled. Signed-off-by: Dave Airlie <airlied@redhat.com> From: Lucas De Marchi <lucas.demarchi@intel.com> Link: https://lore.kernel.org/r/qil4scyn6ucnt43u5ju64bi7r7n5r36k4pz5rsh2maz7isle6g@lac3jpsjrrvs
2 daysMerge tag 'drm-misc-fixes-2025-05-15' of ↵Dave Airlie4-6/+10
https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes Short summary of fixes pull: dma-buf: - Avoid memory reordering in fence handling ivpu: - Fix buffer size in debugfs code meson: - Avoid integer overflow in mode-clock calculations panel-mipi-dbi: - Fix output with drm_client_setup_with_fourcc() Signed-off-by: Dave Airlie <airlied@redhat.com> From: Thomas Zimmermann <tzimmermann@suse.de> Link: https://lore.kernel.org/r/20250515125534.GA41174@linux.fritz.box
2 daysMerge tag 'amd-drm-fixes-6.15-2025-05-14' of ↵Dave Airlie11-28/+73
https://gitlab.freedesktop.org/agd5f/linux into drm-fixes amd-drm-fixes-6.15-2025-05-14: amdgpu: - Fix CSA unmap - Fix MALL size reporting on GFX11.5 - AUX fix - DCN 3.5 fix - VRR fix - DP MST fix - DML 2.1 fixes - Silence DP AUX spam - DCN 4.0.1 cursor fix - VCN 4.0.5 fix Signed-off-by: Dave Airlie <airlied@redhat.com> From: Alex Deucher <alexander.deucher@amd.com> Link: https://lore.kernel.org/r/20250514185117.758496-1-alexander.deucher@amd.com
2 daysMerge tag 'bcachefs-2025-05-15' of git://evilpiepirate.org/bcachefsLinus Torvalds9-66/+140
Pull bcachefs fixes from Kent Overstreet: "The main user reported ones are: - Fix a btree iterator locking inconsistency that's been causing us to go emergency read-only in evacuate: "Fix broken btree_path lock invariants in next_node()" - Minor btree node cache reclaim tweak that should help with OOMs: don't set btree nodes as accessed on fill - Fix a bch2_bkey_clear_rebalance() issue that was causing rebalance to do needless work" * tag 'bcachefs-2025-05-15' of git://evilpiepirate.org/bcachefs: bcachefs: fix wrong arg to fsck_err() bcachefs: Fix missing commit in backpointer to missing target bcachefs: Fix accidental O(n^2) in fiemap bcachefs: Fix set_should_be_locked() call in peek_slot() bcachefs: Fix self deadlock bcachefs: Don't set btree nodes as accessed on fill bcachefs: Fix livelock in journal_entry_open() bcachefs: Fix broken btree_path lock invariants in next_node() bcachefs: Don't strip rebalance_opts from indirect extents
3 daysMerge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdmaLinus Torvalds4-8/+8
Pull rdma fixes from Jason Gunthorpe: "Four small fixes for crashes: - Double free in rxe - UAF in irdma from early freeing the rf - Off by one undoing the IRQ allocations during error unwind in irdma - Another race with device rename and uevent generation. uevents accesses the struct device name and UAF when it is changed" * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: RDMA/core: Fix "KASAN: slab-use-after-free Read in ib_register_device" problem ice, irdma: fix an off by one in error handling code irdma: free iwdev->rf after removing MSI-X RDMA/rxe: Fix slab-use-after-free Read in rxe_queue_cleanup bug
3 daysx86/resctrl: Drop __init/__exit on assorted symbolsJames Morse5-13/+13
Because ARM's MPAM controls are probed using MMIO, resctrl can't be initialised until enough CPUs are online to have determined the system-wide supported num_closid. Arm64 also supports 'late onlined secondaries', where only a subset of CPUs are online during boot. These two combine to mean the MPAM driver may not be able to initialise resctrl until user-space has brought 'enough' CPUs online. To allow MPAM to initialise resctrl after __init text has been free'd, remove all the __init markings from resctrl. The existing __exit markings cause these functions to be removed by the linker as it has never been possible to build resctrl as a module. MPAM has an error interrupt which causes the driver to reset and disable itself. Remove the __exit markings to allow the MPAM driver to tear down resctrl when an error occurs. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-10-james.morse@arm.com
3 daysx86/resctrl: Resctrl_exit() teardown resctrl but leave the mount pointJames Morse1-8/+40
resctrl_exit() was intended for use when the 'resctrl' module was unloaded. resctrl can't be built as a module, and the kernfs helpers are not exported so this is unlikely to change. MPAM has an error interrupt which indicates the MPAM driver has gone haywire. Should this occur tasks could run with the wrong control values, leading to bad performance for important tasks. In this scenario the MPAM driver will reset the hardware, but it needs a way to tell resctrl that no further configuration should be attempted. In particular, moving tasks between control or monitor groups does not interact with the architecture code, so there is no opportunity for the arch code to indicate that the hardware is no-longer functioning. Using resctrl_exit() for this leaves the system in a funny state as resctrl is still mounted, but cannot be un-mounted because the sysfs directory that is typically used has been removed. Dave Martin suggests this may cause systemd trouble in the future as not all filesystems can be unmounted. Add calls to remove all the files and directories in resctrl, and remove the sysfs_remove_mount_point() call that leaves the system in a funny state. When triggered, this causes all the resctrl files to disappear. resctrl can be unmounted, but not mounted again. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-9-james.morse@arm.com
3 daysx86/resctrl: Check all domains are offline in resctrl_exit()James Morse1-0/+33
resctrl_exit() removes things like the resctrl mount point directory and unregisters the filesystem prior to freeing data structures that were allocated during resctrl_init(). This assumes that there are no online domains when resctrl_exit() is called. If any domain were online, the limbo or overflow handler could be scheduled to run. Add a check for any online control or monitor domains, and document that the architecture code is required to offline all monitor and control domains before calling resctrl_exit(). Suggested-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-8-james.morse@arm.com
3 daysx86/resctrl: Rename resctrl_sched_in() to begin with "resctrl_arch_"James Morse4-10/+10
resctrl_sched_in() loads the architecture specific CPU MSRs with the CLOSID and RMID values. This function was named before resctrl was split to have architecture specific code, and generic filesystem code. This function is obviously architecture specific, but does not begin with 'resctrl_arch_', making it the odd one out in the functions an architecture needs to support to enable resctrl. Rename it for consistency. This is purely cosmetic. Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Tony Luck <tony.luck@intel.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Carl Worth <carl@os.amperecomputing.com> # arm64 Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-7-james.morse@arm.com
3 daysx86/resctrl: Remove the limit on the number of CLOSIDAmit Singh Tomar1-16/+35
Resctrl allocates and finds free CLOSID values using the bits of a u32. This restricts the number of control groups that can be created by user-space. MPAM has an architectural limit of 2^16 CLOSID values, Intel x86 could be extended beyond 32 values. There is at least one MPAM platform which supports more than 32 CLOSID values. Replace the fixed size bitmap with calls to the bitmap API to allocate an array of a sufficient size. ffs() returns '1' for bit 0, hence the existing code subtracts 1 from the index to get the CLOSID value. find_first_bit() returns the bit number which does not need adjusting. [ morse: fixed the off-by-one in the allocator and the wrong not-found value. Removed the limit. Rephrase the commit message. ] Signed-off-by: Amit Singh Tomar <amitsinght@marvell.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Peter Newman <peternewman@google.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Amit Singh Tomar <amitsinght@marvell.com> # arm64 Tested-by: Shanker Donthineni <sdonthineni@nvidia.com> # arm64 Tested-by: Babu Moger <babu.moger@amd.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-6-james.morse@arm.com
3 daysx86/resctrl: Optimize cpumask_any_housekeeping()Yury Norov [NVIDIA]1-21/+7
With the lack of cpumask_any_andnot_but(), cpumask_any_housekeeping() has to abuse cpumask_nth() functions. Update cpumask_any_housekeeping() to use the new cpumask_any_but() and cpumask_any_andnot_but(). These two functions understand RESCTRL_PICK_ANY_CPU, which simplifies cpumask_any_housekeeping() significantly. Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: James Morse <james.morse@arm.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: James Morse <james.morse@arm.com> Tested-by: Shaopeng Tan <tan.shaopeng@jp.fujitsu.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-5-james.morse@arm.com
3 dayscpumask: Add cpumask_{first,next}_andnot() APIYury Norov [NVIDIA]1-0/+59
With the lack of the functions, client code has to abuse less efficient cpumask_nth(). Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: James Morse <james.morse@arm.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: James Morse <james.morse@arm.com> Tested-by: Tony Luck <tony.luck@intel.com> Link: https://lore.kernel.org/20250515165855.31452-4-james.morse@arm.com
3 daysfind: Add find_first_andnot_bit()Yury Norov [NVIDIA]2-0/+36
The function helps to implement cpumask_andnot() APIs. Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: James Morse <james.morse@arm.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: James Morse <james.morse@arm.com> Tested-by: Tony Luck <tony.luck@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Link: https://lore.kernel.org/20250515165855.31452-3-james.morse@arm.com
3 dayscpumask: Relax cpumask_any_but()Yury Norov [NVIDIA]1-4/+12
Similarly to other cpumask search functions, accept -1, and consider it as 'any CPU' hint. This helps users to avoid coding special cases. Signed-off-by: Yury Norov [NVIDIA] <yury.norov@gmail.com> Signed-off-by: James Morse <james.morse@arm.com> Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de> Reviewed-by: James Morse <james.morse@arm.com> Reviewed-by: Reinette Chatre <reinette.chatre@intel.com> Reviewed-by: Fenghua Yu <fenghuay@nvidia.com> Tested-by: James Morse <james.morse@arm.com> Tested-by: Tony Luck <tony.luck@intel.com> Tested-by: Fenghua Yu <fenghuay@nvidia.com> Link: https://lore.kernel.org/20250515165855.31452-2-james.morse@arm.com
3 daysMerge tag 'landlock-6.15-rc7' of ↵Linus Torvalds3-5/+35
git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux Pull landlock fixes from Mickaël Salaün: "This fixes a KUnit issue, simplifies code, and adds new tests" * tag 'landlock-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux: landlock: Improve bit operations in audit code landlock: Remove KUnit test that triggers a warning
3 daysMerge tag 'hid-for-linus-2025051501' of ↵Linus Torvalds10-12/+41
git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid Pull HID fixes from Benjamin Tissoires: - fix a few potential memory leaks in the wacom driver (Qasim Ijaz) - AMD SFH fixes when there is only one SRA sensor (Mario Limonciello) - HID-BPF dispatch UAF fix that happens on removal of the Logitech DJ receiver (Rong Zhang) - various minor fixes and usual device ID additions * tag 'hid-for-linus-2025051501' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: HID: bpf: abort dispatch if device destroyed HID: quirks: Add ADATA XPG alpha wireless mouse support HID: hid-steam: Remove the unused variable connected HID: amd_sfh: Avoid clearing reports for SRA sensor HID: amd_sfh: Fix SRA sensor when it's the only sensor HID: wacom: fix shift OOB in kfifo allocation for zero pktlen HID: uclogic: Add NULL check in uclogic_input_configured() HID: wacom: fix memory leak on size mismatch in wacom_wac_queue_flush() HID: wacom: handle kzalloc() allocation failure in wacom_wac_queue_flush() HID: thrustmaster: fix memory leak in thrustmaster_interrupts() HID: hid-appletb-kbd: Fix wrong date and kernel version in sysfs interface docs HID: bpf: fix BTN_STYLUS for the XP Pen ACK05 remote
3 daysMerge tag 'net-6.15-rc7' of ↵Linus Torvalds64-361/+698
git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net Pull networking fixes from Jakub Kicinski: "Including fixes from Bluetooth and wireless. A few more fixes for the locking changes trickling in. Nothing too alarming, I suspect those will continue for another release. Other than that things are slowing down nicely. Current release - fix to a fix: - Bluetooth: hci_event: use key encryption size when its known - tools: ynl-gen: allow multi-attr without nested-attributes again Current release - regressions: - locking fixes: - lock lower level devices when updating features - eth: bnxt_en: bring back rtnl_lock() in the bnxt_open() path - devmem: fix panic when Netlink socket closes after module unload Current release - new code bugs: - eth: txgbe: fixes for FW communication on new AML devices Previous releases - always broken: - sched: flush gso_skb list too during ->change(), avoid potential null-deref on reconfig - wifi: mt76: disable NAPI on driver removal - hv_netvsc: fix error 'nvsp_rndis_pkt_complete error status: 2'" * tag 'net-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (44 commits) net: devmem: fix kernel panic when netlink socket close after module unload tsnep: fix timestamping with a stacked DSA driver net/tls: fix kernel panic when alloc_page failed bnxt_en: bring back rtnl_lock() in the bnxt_open() path mlxsw: spectrum_router: Fix use-after-free when deleting GRE net devices wifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request octeontx2-pf: Do not reallocate all ntuple filters wifi: mt76: mt7925: fix missing hdr_trans_tlv command for broadcast wtbl wifi: mt76: disable napi on driver removal Drivers: hv: vmbus: Remove vmbus_sendpacket_pagebuffer() hv_netvsc: Remove rmsg_pgcnt hv_netvsc: Preserve contiguous PFN grouping in the page buffer array hv_netvsc: Use vmbus_sendpacket_mpb_desc() to send VMBus messages Drivers: hv: Allow vmbus_sendpacket_mpb_desc() to create multiple ranges octeontx2-af: Fix CGX Receive counters net: ethernet: mtk_eth_soc: fix typo for declaration MT7988 ESW capability net: libwx: Fix FW mailbox unknown command net: libwx: Fix FW mailbox reply timeout net: txgbe: Fix to calculate EEPROM checksum for AML devices octeontx2-pf: macsec: Fix incorrect max transmit size in TX secy ...
3 daysx86/sgx: Prevent attempts to reclaim poisoned pagesx86/sgxAndrew Zaborowski1-0/+2
TL;DR: SGX page reclaim touches the page to copy its contents to secondary storage. SGX instructions do not gracefully handle machine checks. Despite this, the existing SGX code will try to reclaim pages that it _knows_ are poisoned. Avoid even trying to reclaim poisoned pages. The longer story: Pages used by an enclave only get epc_page->poison set in arch_memory_failure() but they currently stay on sgx_active_page_list until sgx_encl_release(), with the SGX_EPC_PAGE_RECLAIMER_TRACKED flag untouched. epc_page->poison is not checked in the reclaimer logic meaning that, if other conditions are met, an attempt will be made to reclaim an EPC page that was poisoned. This is bad because 1. we don't want that page to end up added to another enclave and 2. it is likely to cause one core to shut down and the kernel to panic. Specifically, reclaiming uses microcode operations including "EWB" which accesses the EPC page contents to encrypt and write them out to non-SGX memory. Those operations cannot handle MCEs in their accesses other than by putting the executing core into a special shutdown state (affecting both threads with HT.) The kernel will subsequently panic on the remaining cores seeing the core didn't enter MCE handler(s) in time. Call sgx_unmark_page_reclaimable() to remove the affected EPC page from sgx_active_page_list on memory error to stop it being considered for reclaiming. Testing epc_page->poison in sgx_reclaim_pages() would also work but I assume it's better to add code in the less likely paths. The affected EPC page is not added to &node->sgx_poison_page_list until later in sgx_encl_release()->sgx_free_epc_page() when it is EREMOVEd. Membership on other lists doesn't change to avoid changing any of the lists' semantics except for sgx_active_page_list. There's a "TBD" comment in arch_memory_failure() about pre-emptive actions, the goal here is not to address everything that it may imply. This also doesn't completely close the time window when a memory error notification will be fatal (for a not previously poisoned EPC page) -- the MCE can happen after sgx_reclaim_pages() has selected its candidates or even *inside* a microcode operation (actually easy to trigger due to the amount of time spent in them.) The spinlock in sgx_unmark_page_reclaimable() is safe because memory_failure() runs in process context and no spinlocks are held, explicitly noted in a mm/memory-failure.c comment. Signed-off-by: Andrew Zaborowski <andrew.zaborowski@intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Dave Hansen <dave.hansen@linux.intel.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Tony Luck <tony.luck@intel.com> Cc: balrogg@gmail.com Cc: linux-sgx@vger.kernel.org Link: https://lore.kernel.org/r/20250508230429.456271-1-andrew.zaborowski@intel.com
3 daysublk: fix dead loop when canceling io commandMing Lei1-1/+1
Commit: f40139fde527 ("ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd") adds a request state check in ublk_cancel_cmd(), and if the request is started, skips canceling this uring_cmd. However, the current uring_cmd may be in ACTIVE state, without block request coming to the uring command. Meantime, if the cached request in tag_set.tags[tag] has been delivered to ublk server and reycycled, then this uring_cmd can't be canceled. ublk requests are aborted in ublk char device release handler, which depends on canceling all ACTIVE uring_cmd. So it causes a dead loop. Fix this issue by not taking a stale request into account when canceling uring_cmd in ublk_cancel_cmd(). Reported-by: Shinichiro Kawasaki <shinichiro.kawasaki@wdc.com> Closes: https://lore.kernel.org/linux-block/mruqwpf4tqenkbtgezv5oxwq7ngyq24jzeyqy4ixzvivatbbxv@4oh2wzz4e6qn/ Fixes: f40139fde527 ("ublk: fix race between io_uring_cmd_complete_in_task and ublk_cancel_cmd") Signed-off-by: Ming Lei <ming.lei@redhat.com> Link: https://lore.kernel.org/r/20250515162601.77346-1-ming.lei@redhat.com [axboe: rewording of commit message] Signed-off-by: Jens Axboe <axboe@kernel.dk>
3 daysx86/cpuid: Rename have_cpuid_p() to cpuid_feature()Ahmed S. Darwish3-8/+8
In order to let all the APIs under <cpuid/api.h> have a shared "cpuid_" namespace, rename have_cpuid_p() to cpuid_feature(). Adjust all call-sites accordingly. Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-4-darwi@linutronix.de
3 daysx86/cpuid: Set <asm/cpuid/api.h> as the main CPUID headerAhmed S. Darwish24-24/+24
The main CPUID header <asm/cpuid.h> was originally a storefront for the headers: <asm/cpuid/api.h> <asm/cpuid/leaf_0x2_api.h> Now that the latter CPUID(0x2) header has been merged into the former, there is no practical difference between <asm/cpuid.h> and <asm/cpuid/api.h>. Migrate all users to the <asm/cpuid/api.h> header, in preparation of the removal of <asm/cpuid.h>. Don't remove <asm/cpuid.h> just yet, in case some new code in -next started using it. Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-3-darwi@linutronix.de
3 daysx86/cpuid: Move CPUID(0x2) APIs into <cpuid/api.h>Ahmed S. Darwish4-77/+75
Move all of the CPUID(0x2) APIs at <cpuid/leaf_0x2_api.h> into <cpuid/api.h>, in order centralize all CPUID APIs into the latter. While at it, separate the different CPUID leaf parsing APIs using header comments like "CPUID(0xN) parsing: ". Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: John Ogness <john.ogness@linutronix.de> Cc: x86-cpuid@lists.linux.dev Link: https://lore.kernel.org/r/20250508150240.172915-2-darwi@linutronix.de
3 daysperf/x86/intel: Fix segfault with PEBS-via-PT with sample_freqperf-urgent-2025-05-17perf/urgentAdrian Hunter1-4/+5
Currently, using PEBS-via-PT with a sample frequency instead of a sample period, causes a segfault. For example: BUG: kernel NULL pointer dereference, address: 0000000000000195 <NMI> ? __die_body.cold+0x19/0x27 ? page_fault_oops+0xca/0x290 ? exc_page_fault+0x7e/0x1b0 ? asm_exc_page_fault+0x26/0x30 ? intel_pmu_pebs_event_update_no_drain+0x40/0x60 ? intel_pmu_pebs_event_update_no_drain+0x32/0x60 intel_pmu_drain_pebs_icl+0x333/0x350 handle_pmi_common+0x272/0x3c0 intel_pmu_handle_irq+0x10a/0x2e0 perf_event_nmi_handler+0x2a/0x50 That happens because intel_pmu_pebs_event_update_no_drain() assumes all the pebs_enabled bits represent counter indexes, which is not always the case. In this particular case, bits 60 and 61 are set for PEBS-via-PT purposes. The behaviour of PEBS-via-PT with sample frequency is questionable because although a PMI is generated (PEBS_PMI_AFTER_EACH_RECORD), the period is not adjusted anyway. Putting that aside, fix intel_pmu_pebs_event_update_no_drain() by passing the mask of counter bits instead of 'size'. Note, prior to the Fixes commit, 'size' would be limited to the maximum counter index, so the issue was not hit. Fixes: 722e42e45c2f1 ("perf/x86: Support counter mask") Signed-off-by: Adrian Hunter <adrian.hunter@intel.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: Kan Liang <kan.liang@linux.intel.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Arnaldo Carvalho de Melo <acme@kernel.org> Cc: Jiri Olsa <jolsa@kernel.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Ian Rogers <irogers@google.com> Cc: linux-perf-users@vger.kernel.org Link: https://lore.kernel.org/r/20250508134452.73960-1-adrian.hunter@intel.com
3 daysperf/aux: Allocate non-contiguous AUX pages by defaultYabin Cui3-9/+23
perf always allocates contiguous AUX pages based on aux_watermark. However, this contiguous allocation doesn't benefit all PMUs. For instance, ARM SPE and TRBE operate with virtual pages, and Coresight ETR allocates a separate buffer. For these PMUs, allocating contiguous AUX pages unnecessarily exacerbates memory fragmentation. This fragmentation can prevent their use on long-running devices. This patch modifies the perf driver to be memory-friendly by default, by allocating non-contiguous AUX pages. For PMUs requiring contiguous pages (Intel BTS and some Intel PT), the existing PERF_PMU_CAP_AUX_NO_SG capability can be used. For PMUs that don't require but can benefit from contiguous pages (some Intel PT), a new capability, PERF_PMU_CAP_AUX_PREFER_LARGE, is added to maintain their existing behavior. Signed-off-by: Yabin Cui <yabinc@google.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Reviewed-by: James Clark <james.clark@linaro.org> Reviewed-by: Anshuman Khandual <anshuman.khandual@arm.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Jiri Olsa <jolsa@redhat.com> Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Namhyung Kim <namhyung@kernel.org> Link: https://lore.kernel.org/r/20250508232642.148767-1-yabinc@google.com
3 daysx86/msr: Add rdmsrl_on_cpu() compatibility wrapperIngo Molnar1-0/+1
Add a simple rdmsrl_on_cpu() compatibility wrapper for rdmsrq_on_cpu(), to make life in -next easier, where the PM tree recently grew more uses of the old API. Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Signed-off-by: Ingo Molnar <mingo@kernel.org> Acked-by: Mario Limonciello <mario.limonciello@amd.com> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Juergen Gross <jgross@suse.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Xin Li <xin@zytor.com> Link: https://lore.kernel.org/r/20250512145517.6e0666e3@canb.auug.org.au
3 daysirqchip/irq-pruss-intc: Simplify chained interrupt handler setupirq/driversChen Ni1-2/+1
The chained interrupt handler setup installs the handler and handler data with two function call.s irq_set_chained_handler_and_data() can set both in one operation. Replace the two calls with one. Signed-off-by: Chen Ni <nichen@iscas.ac.cn> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250515083450.3811411-1-nichen@iscas.ac.cn
3 daysnet: devmem: fix kernel panic when netlink socket close after module unloadTaehee Yoo3-0/+20
Kernel panic occurs when a devmem TCP socket is closed after NIC module is unloaded. This is Devmem TCP unregistration scenarios. number is an order. (a)netlink socket close (b)pp destroy (c)uninstall result 1 2 3 OK 1 3 2 (d)Impossible 2 1 3 OK 3 1 2 (e)Kernel panic 2 3 1 (d)Impossible 3 2 1 (d)Impossible (a) netdev_nl_sock_priv_destroy() is called when devmem TCP socket is closed. (b) page_pool_destroy() is called when the interface is down. (c) mp_ops->uninstall() is called when an interface is unregistered. (d) There is no scenario in mp_ops->uninstall() is called before page_pool_destroy(). Because unregister_netdevice_many_notify() closes interfaces first and then calls mp_ops->uninstall(). (e) netdev_nl_sock_priv_destroy() accesses struct net_device to acquire netdev_lock(). But if the interface module has already been removed, net_device pointer is invalid, so it causes kernel panic. In summary, there are only 3 possible scenarios. A. sk close -> pp destroy -> uninstall. B. pp destroy -> sk close -> uninstall. C. pp destroy -> uninstall -> sk close. Case C is a kernel panic scenario. In order to fix this problem, It makes mp_dmabuf_devmem_uninstall() set binding->dev to NULL. It indicates an bound net_device was unregistered. It makes netdev_nl_sock_priv_destroy() do not acquire netdev_lock() if binding->dev is NULL. A new binding->lock is added to protect a dev of a binding. So, lock ordering is like below. priv->lock netdev_lock(dev) binding->lock Tests: Scenario A: ./ncdevmem -s 192.168.1.4 -c 192.168.1.2 -f $interface -l -p 8000 \ -v 7 -t 1 -q 1 & pid=$! sleep 10 kill $pid ip link set $interface down modprobe -rv $module Scenario B: ./ncdevmem -s 192.168.1.4 -c 192.168.1.2 -f $interface -l -p 8000 \ -v 7 -t 1 -q 1 & pid=$! sleep 10 ip link set $interface down kill $pid modprobe -rv $module Scenario C: ./ncdevmem -s 192.168.1.4 -c 192.168.1.2 -f $interface -l -p 8000 \ -v 7 -t 1 -q 1 & pid=$! sleep 10 modprobe -rv $module sleep 5 kill $pid Splat looks like: Oops: general protection fault, probably for non-canonical address 0xdffffc001fffa9f7: 0000 [#1] SMP DEBUG_PAGEALLOC KASAN NOPTI KASAN: probably user-memory-access in range [0x00000000fffd4fb8-0x00000000fffd4fbf] CPU: 0 UID: 0 PID: 2041 Comm: ncdevmem Tainted: G B W 6.15.0-rc1+ #2 PREEMPT(undef) 0947ec89efa0fd68838b78e36aa1617e97ff5d7f Tainted: [B]=BAD_PAGE, [W]=WARN RIP: 0010:__mutex_lock (./include/linux/sched.h:2244 kernel/locking/mutex.c:400 kernel/locking/mutex.c:443 kernel/locking/mutex.c:605 kernel/locking/mutex.c:746) Code: ea 03 80 3c 02 00 0f 85 4f 13 00 00 49 8b 1e 48 83 e3 f8 74 6a 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 34 48 89 fa 48 c1 ea 03 <0f> b6 f RSP: 0018:ffff88826f7ef730 EFLAGS: 00010203 RAX: dffffc0000000000 RBX: 00000000fffd4f88 RCX: ffffffffaa9bc811 RDX: 000000001fffa9f7 RSI: 0000000000000008 RDI: 00000000fffd4fbc RBP: ffff88826f7ef8b0 R08: 0000000000000000 R09: ffffed103e6aa1a4 R10: 0000000000000007 R11: ffff88826f7ef442 R12: fffffbfff669f65e R13: ffff88812a830040 R14: ffff8881f3550d20 R15: 00000000fffd4f88 FS: 0000000000000000(0000) GS:ffff888866c05000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000563bed0cb288 CR3: 00000001a7c98000 CR4: 00000000007506f0 PKRU: 55555554 Call Trace: <TASK> ... netdev_nl_sock_priv_destroy (net/core/netdev-genl.c:953 (discriminator 3)) genl_release (net/netlink/genetlink.c:653 net/netlink/genetlink.c:694 net/netlink/genetlink.c:705) ... netlink_release (net/netlink/af_netlink.c:737) ... __sock_release (net/socket.c:647) sock_close (net/socket.c:1393) Fixes: 1d22d3060b9b ("net: drop rtnl_lock for queue_mgmt operations") Signed-off-by: Taehee Yoo <ap420073@gmail.com> Acked-by: Stanislav Fomichev <sdf@fomichev.me> Link: https://patch.msgid.link/20250514154028.1062909-1-ap420073@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysx86/mm: Fix kernel-doc descriptions of various pgtable methodsShivank Garg1-19/+31
So 'make W=1' complains about a couple of kernel-doc descriptions in our MM primitives in pgtable.c: arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address' arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge' arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge' ... so on Fix them all up, add missing parameter documentation, and fix various spelling inconsistencies while at it. [ mingo: Harmonize kernel-doc annotations some more. ] Signed-off-by: Shivank Garg <shivankg@amd.com> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Dave Hansen <dave.hansen@linux.intel.com> Cc: Andrew Cooper <andrew.cooper3@citrix.com> Cc: Andy Lutomirski <luto@kernel.org> Cc: Brian Gerst <brgerst@gmail.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Juergen Gross <jgross@suse.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Rik van Riel <riel@surriel.com> Link: https://lore.kernel.org/r/20250514062637.3287779-1-shivankg@amd.com
3 daystsnep: fix timestamping with a stacked DSA driverGerhard Engleder1-11/+19
This driver is susceptible to a form of the bug explained in commit c26a2c2ddc01 ("gianfar: Fix TX timestamping with a stacked DSA driver") and in Documentation/networking/timestamping.rst section "Other caveats for MAC drivers", specifically it timestamps any skb which has SKBTX_HW_TSTAMP, and does not consider if timestamping has been enabled in adapter->hwtstamp_config.tx_type. Evaluate the proper TX timestamping condition only once on the TX path (in tsnep_xmit_frame_ring()) and store the result in an additional TX entry flag. Evaluate the new TX entry flag in the TX confirmation path (in tsnep_tx_poll()). This way SKBTX_IN_PROGRESS is set by the driver as required, but never evaluated. SKBTX_IN_PROGRESS shall not be evaluated as it can be set by a stacked DSA driver and evaluating it would lead to unwanted timestamps. Fixes: 403f69bbdbad ("tsnep: Add TSN endpoint Ethernet MAC driver") Suggested-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: Gerhard Engleder <gerhard@engleder-embedded.com> Reviewed-by: Vladimir Oltean <vladimir.oltean@nxp.com> Link: https://patch.msgid.link/20250514195657.25874-1-gerhard@engleder-embedded.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysgenirq: Retain disable depth for managed interrupts across CPU hotplugirq/coreBrian Norris3-2/+23
Affinity-managed interrupts can be shut down and restarted during CPU hotunplug/plug. Thereby the interrupt may be left in an unexpected state. Specifically: 1. Interrupt is affine to CPU N 2. disable_irq() -> depth is 1 3. CPU N goes offline 4. irq_shutdown() -> depth is set to 1 (again) 5. CPU N goes online 6. irq_startup() -> depth is set to 0 (BUG! driver expects that the interrupt still disabled) 7. enable_irq() -> depth underflow / unbalanced enable_irq() warning This is only a problem for managed interrupts and CPU hotplug, all other cases like request()/free()/request() truly needs to reset a possibly stale disable depth value. Provide a startup function, which takes the disable depth into account, and invoked it for the managed interrupts in the CPU hotplug path. This requires to change irq_shutdown() to do a depth increment instead of setting it to 1, which allows to retain the disable depth, but is harmless for the other code paths using irq_startup(), which will still reset the disable depth unconditionally to keep the original correct behaviour. A kunit tests will be added separately to cover some of these aspects. [ tglx: Massaged changelog ] Suggested-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250514201353.3481400-2-briannorris@chromium.org
3 daysnet/tls: fix kernel panic when alloc_page failedPengtao He1-1/+2
We cannot set frag_list to NULL pointer when alloc_page failed. It will be used in tls_strp_check_queue_ok when the next time tls_strp_read_sock is called. This is because we don't reset full_len in tls_strp_flush_anchor_copy() so the recv path will try to continue handling the partial record on the next call but we dettached the rcvq from the frag list. Alternative fix would be to reset full_len. Unable to handle kernel NULL pointer dereference at virtual address 0000000000000028 Call trace: tls_strp_check_rcv+0x128/0x27c tls_strp_data_ready+0x34/0x44 tls_data_ready+0x3c/0x1f0 tcp_data_ready+0x9c/0xe4 tcp_data_queue+0xf6c/0x12d0 tcp_rcv_established+0x52c/0x798 Fixes: 84c61fe1a75b ("tls: rx: do not use the standard strparser") Signed-off-by: Pengtao He <hept.hept.hept@gmail.com> Link: https://patch.msgid.link/20250514132013.17274-1-hept.hept.hept@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysgenirq: Bump the size of the local variable for sprintf()Andy Shevchenko1-1/+1
GCC is not happy about a sprintf() call on a buffer that might be too small for the given formatting string. kernel/irq/debugfs.c:233:26: warning: 'sprintf' may write a terminating nul past the end of the destination [-Wformat-overflow=] Fix this by bumping the size of the local variable for sprintf(). Reported-by: kernel test robot <lkp@intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/all/20250515085516.2913290-1-andriy.shevchenko@linux.intel.com Closes: https://lore.kernel.org/oe-kbuild-all/202505151057.xbyXAbEn-lkp@intel.com/
3 daysMerge tag 'wireless-2025-05-15' of ↵Jakub Kicinski3-4/+7
https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless Johannes Berg says: ==================== Couple of stragglers: - mac80211: fix syzbot/ubsan in scan counted-by - mt76: fix NAPI handling on driver remove - mt67: fix multicast/ipv6 receive * tag 'wireless-2025-05-15' of https://git.kernel.org/pub/scm/linux/kernel/git/wireless/wireless: wifi: mac80211: Set n_channels after allocating struct cfg80211_scan_request wifi: mt76: mt7925: fix missing hdr_trans_tlv command for broadcast wtbl wifi: mt76: disable napi on driver removal ==================== Link: https://patch.msgid.link/20250515121749.61912-4-johannes@sipsolutions.net Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysirqchip/gic-v4.1: Use local 4_1 ITS to generate VSGINianyao Tang1-1/+5
On multi-node GICv4.1 system, VSGI senders always use one certain 4_1 ITS, because find_4_1_its() returns the first its_node in the list, regardless of which node the VSGI sender is on. This brings guest VSGI performance drop when VM is not running on the same node as this returned ITS. On a 2-socket environment, each with one ITS and 32 cpu, GICv4.1 enabled, 4U8G guest, 4 vcpu is running on same socket. When the VM is on socket0, kvm-unit-tests ipi_hw result is 850ns. When the VM is on socket1, it is 750ns. The reason is that the VSGI sender always uses the last reported ITS (that on socket1) to inject VSGI. The access from a CPU to a other-socket ITS will cost 100ns more compared to an access to the local ITS. Using the local ITS results in a 12% reduction in IPI latency. Modify find_4_1_its() to return the first per-CPU local_4_1_its, which is initialized when the VPE table is inherited from the ITS or from another CPU. If it fails to find a local 4_1 ITS, it returns any 4_1 ITS like before. Suggested-by: Marc Zyngier <maz@kernel.org> Signed-off-by: Nianyao Tang <tangnianyao@huawei.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Marc Zyngier <maz@kernel.org> Link: https://lore.kernel.org/all/20250515145359.2795959-1-tangnianyao@huawei.com
3 daysbnxt_en: bring back rtnl_lock() in the bnxt_open() pathMichael Chan1-7/+29
Error recovery, PCIe AER, resume, and TX timeout will invoke bnxt_open() with netdev_lock only. This will cause RTNL assert failure in netif_set_real_num_tx_queues(), netif_set_real_num_tx_queues(), and netif_set_real_num_tx_queues(). Example error recovery assert: RTNL: assertion failed at net/core/dev.c (3178) WARNING: CPU: 3 PID: 3392 at net/core/dev.c:3178 netif_set_real_num_tx_queues+0x1fd/0x210 Call Trace: <TASK> ? __pfx_bnxt_msix+0x10/0x10 [bnxt_en] __bnxt_open_nic+0x1ef/0xb20 [bnxt_en] bnxt_open+0xda/0x130 [bnxt_en] bnxt_fw_reset_task+0x21f/0x780 [bnxt_en] process_scheduled_works+0x9d/0x400 For now, bring back rtnl_lock() in all these code paths that can invoke bnxt_open(). In the bnxt_queue_start() error path, we don't have rtnl_lock held so we just change it to call netif_close() instead of bnxt_reset_task() for simplicity. This error path is unlikely so it should be fine. Fixes: 004b5008016a ("eth: bnxt: remove most dependencies on RTNL") Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Reviewed-by: Pavan Chebbi <pavan.chebbi@broadcom.com> Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com> Signed-off-by: Michael Chan <michael.chan@broadcom.com> Link: https://patch.msgid.link/20250514062908.2766677-1-michael.chan@broadcom.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysmlxsw: spectrum_router: Fix use-after-free when deleting GRE net devicesIdo Schimmel1-0/+3
The driver only offloads neighbors that are constructed on top of net devices registered by it or their uppers (which are all Ethernet). The device supports GRE encapsulation and decapsulation of forwarded traffic, but the driver will not offload dummy neighbors constructed on top of GRE net devices as they are not uppers of its net devices: # ip link add name gre1 up type gre tos inherit local 192.0.2.1 remote 198.51.100.1 # ip neigh add 0.0.0.0 lladdr 0.0.0.0 nud noarp dev gre1 $ ip neigh show dev gre1 nud noarp 0.0.0.0 lladdr 0.0.0.0 NOARP (Note that the neighbor is not marked with 'offload') When the driver is reloaded and the existing configuration is replayed, the driver does not perform the same check regarding existing neighbors and offloads the previously added one: # devlink dev reload pci/0000:01:00.0 $ ip neigh show dev gre1 nud noarp 0.0.0.0 lladdr 0.0.0.0 offload NOARP If the neighbor is later deleted, the driver will ignore the notification (given the GRE net device is not its upper) and will therefore keep referencing freed memory, resulting in a use-after-free [1] when the net device is deleted: # ip neigh del 0.0.0.0 lladdr 0.0.0.0 dev gre1 # ip link del dev gre1 Fix by skipping neighbor replay if the net device for which the replay is performed is not our upper. [1] BUG: KASAN: slab-use-after-free in mlxsw_sp_neigh_entry_update+0x1ea/0x200 Read of size 8 at addr ffff888155b0e420 by task ip/2282 [...] Call Trace: <TASK> dump_stack_lvl+0x6f/0xa0 print_address_description.constprop.0+0x6f/0x350 print_report+0x108/0x205 kasan_report+0xdf/0x110 mlxsw_sp_neigh_entry_update+0x1ea/0x200 mlxsw_sp_router_rif_gone_sync+0x2a8/0x440 mlxsw_sp_rif_destroy+0x1e9/0x750 mlxsw_sp_netdevice_ipip_ol_event+0x3c9/0xdc0 mlxsw_sp_router_netdevice_event+0x3ac/0x15e0 notifier_call_chain+0xca/0x150 call_netdevice_notifiers_info+0x7f/0x100 unregister_netdevice_many_notify+0xc8c/0x1d90 rtnl_dellink+0x34e/0xa50 rtnetlink_rcv_msg+0x6fb/0xb70 netlink_rcv_skb+0x131/0x360 netlink_unicast+0x426/0x710 netlink_sendmsg+0x75a/0xc20 __sock_sendmsg+0xc1/0x150 ____sys_sendmsg+0x5aa/0x7b0 ___sys_sendmsg+0xfc/0x180 __sys_sendmsg+0x121/0x1b0 do_syscall_64+0xbb/0x1d0 entry_SYSCALL_64_after_hwframe+0x4b/0x53 Fixes: 8fdb09a7674c ("mlxsw: spectrum_router: Replay neighbours when RIF is made") Signed-off-by: Ido Schimmel <idosch@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Link: https://patch.msgid.link/c53c02c904fde32dad484657be3b1477884e9ad6.1747225701.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysirqchip/riscv-imsic: Start local sync timer on correct CPUirq-urgent-2025-05-17irq/urgentAndrew Bresticker1-5/+5
When starting the local sync timer to synchronize the state of a remote CPU it should be added on the CPU to be synchronized, not the initiating CPU. This results in interrupt delivery being delayed until the timer eventually runs (due to another mask/unmask/migrate operation) on the target CPU. Fixes: 0f67911e821c ("irqchip/riscv-imsic: Separate next and previous pointers in IMSIC vector") Signed-off-by: Andrew Bresticker <abrestic@rivosinc.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Anup Patel <anup@brainfault.org> Link: https://lore.kernel.org/all/20250514171320.3494917-1-abrestic@rivosinc.com
3 daysMerge tag 'nvme-6.15-2025-05-15' of git://git.infradead.org/nvme into block-6.15Jens Axboe5-22/+59
Pull NVMe fixes from Christoph: "nvme fixes for linux 6.15 - fixes for atomic writes (Alan Adamson) - fixes for polled CQs in nvmet-epf (Damien Le Moal) - fix for polled CQs in nvme-pci (Keith Busch) - fix compile on odd configs that need to be forced to inline (Kees Cook) - one more quirk (Ilya Guterman)" * tag 'nvme-6.15-2025-05-15' of git://git.infradead.org/nvme: nvme-pci: add NVME_QUIRK_NO_DEEPEST_PS quirk for SOLIDIGM P44 Pro nvme: all namespaces in a subsystem must adhere to a common atomic write size nvme: multipath: enable BLK_FEAT_ATOMIC_WRITES for multipathing nvmet: pci-epf: remove NVMET_PCI_EPF_Q_IS_SQ nvmet: pci-epf: improve debug message nvmet: pci-epf: cleanup nvmet_pci_epf_raise_irq() nvmet: pci-epf: do not fall back to using INTX if not supported nvmet: pci-epf: clear completion queue IRQ flag on delete nvme-pci: acquire cq_poll_lock in nvme_poll_irqdisable nvme-pci: make nvme_pci_npages_prp() __always_inline
3 daysMerge tag 'mt76-fixes-2025-05-15' of https://github.com/nbd168/wirelessJohannes Berg2-2/+3
Felix Fietkau says: =================== mt76 fix for 6.15 - disable napi on driver removal to fix warning - fix multicast rx regression on mt7925 =================== Link: https://patch.msgid.link/3b526d06-b717-4d47-817c-a9f47b796a31@nbd.name/ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
3 dayswifi: mac80211: Set n_channels after allocating struct cfg80211_scan_requestKees Cook1-2/+4
Make sure that n_channels is set after allocating the struct cfg80211_registered_device::int_scan_req member. Seen with syzkaller: UBSAN: array-index-out-of-bounds in net/mac80211/scan.c:1208:5 index 0 is out of range for type 'struct ieee80211_channel *[] __counted_by(n_channels)' (aka 'struct ieee80211_channel *[]') This was missed in the initial conversions because I failed to locate the allocation likely due to the "sizeof(void *)" not matching the "channels" array type. Reported-by: syzbot+4bcdddd48bb6f0be0da1@syzkaller.appspotmail.com Closes: https://lore.kernel.org/lkml/680fd171.050a0220.2b69d1.045e.GAE@google.com/ Fixes: e3eac9f32ec0 ("wifi: cfg80211: Annotate struct cfg80211_scan_request with __counted_by") Signed-off-by: Kees Cook <kees@kernel.org> Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org> Link: https://patch.msgid.link/20250509184641.work.542-kees@kernel.org Signed-off-by: Johannes Berg <johannes.berg@intel.com>
3 daysALSA: usb-audio: Add sample rate quirk for Microdia JP001 USB CameraNicolas Chauvet1-0/+2
Microdia JP001 does not support reading the sample rate which leads to many lines of "cannot get freq at ep 0x84". This patch adds the USB ID to quirks.c and avoids those error messages. usb 7-4: New USB device found, idVendor=0c45, idProduct=636b, bcdDevice= 1.00 usb 7-4: New USB device strings: Mfr=2, Product=1, SerialNumber=3 usb 7-4: Product: JP001 usb 7-4: Manufacturer: JP001 usb 7-4: SerialNumber: JP001 usb 7-4: 3:1: cannot get freq at ep 0x84 Cc: <stable@vger.kernel.org> Signed-off-by: Nicolas Chauvet <kwizart@gmail.com> Link: https://patch.msgid.link/20250515102132.73062-1-kwizart@gmail.com Signed-off-by: Takashi Iwai <tiwai@suse.de>
3 daysdmaengine: mediatek: drop unused variableVinod Koul1-1/+0
Commit 157ae5ffd76a dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status() fixed locks but kept unused varibale leading to warning and build failure (due to warning treated as errors) drivers/dma/mediatek/mtk-cqdma.c: In function 'mtk_cqdma_find_active_desc': drivers/dma/mediatek/mtk-cqdma.c:423:23: error: unused variable 'flags' [-Werror=unused-variable] 423 | unsigned long flags; | ^~~~~ Fix by dropping this unused flag Reported-by: Stephen Rothwell <sfr@canb.auug.org.au> Fixes: 157ae5ffd76a ("dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status()") Signed-off-by: Vinod Koul <vkoul@kernel.org>
3 daysocteontx2-pf: Do not reallocate all ntuple filtersSubbaraya Sundeep3-1/+4
If ntuple filters count is modified followed by unicast filters count using devlink then the ntuple count set by user is ignored and all the ntuple filters are being reallocated. Fix this by storing the ntuple count set by user. Without this patch, say if user tries to modify ntuple count as 8 followed by ucast filter count as 4 using devlink commands then ntuple count is being reverted to default value 16 i.e, not retaining user set value 8. Fixes: 39c469188b6d ("octeontx2-pf: Add ucast filter count configurability via devlink.") Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/1747054357-5850-1-git-send-email-sbhatta@marvell.com Signed-off-by: Paolo Abeni <pabeni@redhat.com>
3 dayswifi: mt76: mt7925: fix missing hdr_trans_tlv command for broadcast wtblMing Yen Hsieh1-2/+2
Ensure that the hdr_trans_tlv command is included in the broadcast wtbl to prevent the IPv6 and multicast packet from being dropped by the chip. Cc: stable@vger.kernel.org Fixes: cb1353ef3473 ("wifi: mt76: mt7925: integrate *mlo_sta_cmd and *sta_cmd") Reported-by: Benjamin Xiao <fossben@pm.me> Tested-by: Niklas Schnelle <niks@kernel.org> Signed-off-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com> Link: https://lore.kernel.org/lkml/EmWnO5b-acRH1TXbGnkx41eJw654vmCR-8_xMBaPMwexCnfkvKCdlU5u19CGbaapJ3KRu-l3B-tSUhf8CCQwL0odjo6Cd5YG5lvNeB-vfdg=@pm.me/ Link: https://patch.msgid.link/20250509010421.403022-1-mingyen.hsieh@mediatek.com Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 dayswifi: mt76: disable napi on driver removalFedor Pchelkin1-0/+1
A warning on driver removal started occurring after commit 9dd05df8403b ("net: warn if NAPI instance wasn't shut down"). Disable tx napi before deleting it in mt76_dma_cleanup(). WARNING: CPU: 4 PID: 18828 at net/core/dev.c:7288 __netif_napi_del_locked+0xf0/0x100 CPU: 4 UID: 0 PID: 18828 Comm: modprobe Not tainted 6.15.0-rc4 #4 PREEMPT(lazy) Hardware name: ASUS System Product Name/PRIME X670E-PRO WIFI, BIOS 3035 09/05/2024 RIP: 0010:__netif_napi_del_locked+0xf0/0x100 Call Trace: <TASK> mt76_dma_cleanup+0x54/0x2f0 [mt76] mt7921_pci_remove+0xd5/0x190 [mt7921e] pci_device_remove+0x47/0xc0 device_release_driver_internal+0x19e/0x200 driver_detach+0x48/0x90 bus_remove_driver+0x6d/0xf0 pci_unregister_driver+0x2e/0xb0 __do_sys_delete_module.isra.0+0x197/0x2e0 do_syscall_64+0x7b/0x160 entry_SYSCALL_64_after_hwframe+0x76/0x7e Tested with mt7921e but the same pattern can be actually applied to other mt76 drivers calling mt76_dma_cleanup() during removal. Tx napi is enabled in their *_dma_init() functions and only toggled off and on again inside their suspend/resume/reset paths. So it should be okay to disable tx napi in such a generic way. Found by Linux Verification Center (linuxtesting.org). Fixes: 2ac515a5d74f ("mt76: mt76x02: use napi polling for tx cleanup") Cc: stable@vger.kernel.org Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru> Tested-by: Ming Yen Hsieh <mingyen.hsieh@mediatek.com> Link: https://patch.msgid.link/20250506115540.19045-1-pchelkin@ispras.ru Signed-off-by: Felix Fietkau <nbd@nbd.name>
3 daysx86/asm-offsets: Export certain 'struct cpuinfo_x86' fields for 64-bit asm ↵Ard Biesheuvel2-9/+8
use too Expose certain 'struct cpuinfo_x86' fields via asm-offsets for x86_64 too, so that it will be possible to set CPU capabilities from 64-bit asm code. 32-bit already used these fields, so simply move those offset exports into the unified asm-offsets.c file. Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Ingo Molnar <mingo@kernel.org> Cc: Brian Gerst <brgerst@gmail.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Link: https://lore.kernel.org/r/20250514104242.1275040-12-ardb+git@google.com
3 daysMerge tag 'kbuild-fixes-v6.15' of ↵Linus Torvalds11-12/+46
git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild Pull Kbuild fixes from Masahiro Yamada: - Add proper pahole version dependency to CONFIG_GENDWARFKSYMS to avoid module loading errors - Fix UAPI header tests for the OpenRISC architecture - Add dependency on the libdw package in Debian and RPM packages - Disable -Wdefault-const-init-unsafe warnings on Clang - Make "make clean ARCH=um" also clean the arch/x86/ directory - Revert the use of -fmacro-prefix-map=, which causes issues with debugger usability * tag 'kbuild-fixes-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: kbuild: fix typos "module.builtin" to "modules.builtin" Revert "kbuild, rust: use -fremap-path-prefix to make paths relative" Revert "kbuild: make all file references relative to source root" kbuild: fix dependency on sorttable init: remove unused CONFIG_CC_CAN_LINK_STATIC um: let 'make clean' properly clean underlying SUBARCH as well kbuild: Disable -Wdefault-const-init-unsafe kbuild: rpm-pkg: Add (elfutils-devel or libdw-devel) to BuildRequires kbuild: deb-pkg: Add libdw-dev:native to Build-Depends-Arch usr/include: openrisc: don't HDRTEST bpf_perf_event.h kbuild: Require pahole <v1.28 or >v1.29 with GENDWARFKSYMS on X86
3 daysMerge branch 'hv_netvsc-fix-error-nvsp_rndis_pkt_complete-error-status-2'Jakub Kicinski7-146/+83
Michael Kelley says: ==================== hv_netvsc: Fix error "nvsp_rndis_pkt_complete error status: 2" Starting with commit dca5161f9bd0 in the 6.3 kernel, the Linux driver for Hyper-V synthetic networking (netvsc) occasionally reports "nvsp_rndis_pkt_complete error status: 2".[1] This error indicates that Hyper-V has rejected a network packet transmit request from the guest, and the outgoing network packet is dropped. Higher level network protocols presumably recover and resend the packet so there is no functional error, but performance is slightly impacted. Commit dca5161f9bd0 is not the cause of the error -- it only added reporting of an error that was already happening without any notice. The error has presumably been present since the netvsc driver was originally introduced into Linux. This patch set fixes the root cause of the problem, which is that the netvsc driver in Linux may send an incorrectly formatted VMBus message to Hyper-V when transmitting the network packet. The incorrect formatting occurs when the rndis header of the VMBus message crosses a page boundary due to how the Linux skb head memory is aligned. In such a case, two PFNs are required to describe the location of the rndis header, even though they are contiguous in guest physical address (GPA) space. Hyper-V requires that two PFNs be in a single "GPA range" data struture, but current netvsc code puts each PFN in its own GPA range, which Hyper-V rejects as an error in the case of the rndis header. The incorrect formatting occurs only for larger packets that netvsc must transmit via a VMBus "GPA Direct" message. There's no problem when netvsc transmits a smaller packet by copying it into a pre- allocated send buffer slot because the pre-allocated slots don't have page crossing issues. After commit 14ad6ed30a10 in the 6.14 kernel, the error occurs much more frequently in VMs with 16 or more vCPUs. It may occur every few seconds, or even more frequently, in a ssh session that outputs a lot of text. Commit 14ad6ed30a10 subtly changes how skb head memory is allocated, making it much more likely that the rndis header will cross a page boundary when the vCPU count is 16 or more. The changes in commit 14ad6ed30a10 are perfectly valid -- they just had the side effect of making the netvsc bug more prominent. One fix is to check for adjacent PFNs in vmbus_sendpacket_pagebuffer() and just combine them into a single GPA range. Such a fix is very contained. But conceptually it is fixing the problem at the wrong level. So this patch set takes the broader approach of maintaining the already known grouping of contiguous PFNs at a higher level in the netvsc driver code, and propagating that grouping down to the creation of the VMBus message to send to Hyper-V. Maintaining the grouping fixes this problem, and has the added benefit of allowing netvsc_dma_map() to make fewer calls to dma_map_single() to do bounce buffering in CoCo VMs. Patch 1 is a preparatory change to allow vmbus_sendpacket_mpb_desc() to specify multiple GPA ranges. In current code vmbus_sendpacket_mpb_desc() is used only by the storvsc synthetic SCSI driver, and it always creates a single GPA range. Patch 2 updates the netvsc driver to use vmbus_sendpacket_mpb_desc() instead of vmbus_sendpacket_pagebuffer(). Because the higher levels of netvsc still don't group contiguous PFNs, this patch is functionally neutral. The VMBus message to Hyper-V still has many GPA ranges, each with a single PFN. But it lays the groundwork for the next patch. Patch 3 changes the higher levels of netvsc to preserve the already known grouping of contiguous PFNs. When the contiguous groupings are passed to vmbus_sendpacket_mpb_desc(), GPA ranges containing multiple PFNs are produced, as expected by Hyper-V. This is point at which the core problem is fixed. Patches 4 and 5 remove code that is no longer necessary after the previous patches. These changes provide a net reduction of about 65 lines of code, which is an added benefit. These changes have been tested in normal VMs, in SEV-SNP and TDX CoCo VMs, and in Dv6-series VMs where the netvsp implementation is in the OpenHCL paravisor instead of the Hyper-V host. These changes are built against kernel version 6.15-rc6. [1] https://bugzilla.kernel.org/show_bug.cgi?id=217503 ==================== Link: https://patch.msgid.link/20250513000604.1396-1-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysDrivers: hv: vmbus: Remove vmbus_sendpacket_pagebuffer()Michael Kelley2-66/+0
With the netvsc driver changed to use vmbus_sendpacket_mpb_desc() instead of vmbus_sendpacket_pagebuffer(), the latter has no remaining callers. Remove it. Cc: <stable@vger.kernel.org> # 6.1.x Signed-off-by: Michael Kelley <mhklinux@outlook.com> Link: https://patch.msgid.link/20250513000604.1396-6-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 dayshv_netvsc: Remove rmsg_pgcntMichael Kelley3-6/+3
init_page_array() now always creates a single page buffer array entry for the rndis message, even if the rndis message crosses a page boundary. As such, the number of page buffer array entries used for the rndis message must no longer be tracked -- it is always just 1. Remove the rmsg_pgcnt field and use "1" where the value is needed. Cc: <stable@vger.kernel.org> # 6.1.x Signed-off-by: Michael Kelley <mhklinux@outlook.com> Link: https://patch.msgid.link/20250513000604.1396-5-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 dayshv_netvsc: Preserve contiguous PFN grouping in the page buffer arrayMichael Kelley3-67/+32
Starting with commit dca5161f9bd0 ("hv_netvsc: Check status in SEND_RNDIS_PKT completion message") in the 6.3 kernel, the Linux driver for Hyper-V synthetic networking (netvsc) occasionally reports "nvsp_rndis_pkt_complete error status: 2".[1] This error indicates that Hyper-V has rejected a network packet transmit request from the guest, and the outgoing network packet is dropped. Higher level network protocols presumably recover and resend the packet so there is no functional error, but performance is slightly impacted. Commit dca5161f9bd0 is not the cause of the error -- it only added reporting of an error that was already happening without any notice. The error has presumably been present since the netvsc driver was originally introduced into Linux. The root cause of the problem is that the netvsc driver in Linux may send an incorrectly formatted VMBus message to Hyper-V when transmitting the network packet. The incorrect formatting occurs when the rndis header of the VMBus message crosses a page boundary due to how the Linux skb head memory is aligned. In such a case, two PFNs are required to describe the location of the rndis header, even though they are contiguous in guest physical address (GPA) space. Hyper-V requires that two rndis header PFNs be in a single "GPA range" data struture, but current netvsc code puts each PFN in its own GPA range, which Hyper-V rejects as an error. The incorrect formatting occurs only for larger packets that netvsc must transmit via a VMBus "GPA Direct" message. There's no problem when netvsc transmits a smaller packet by copying it into a pre- allocated send buffer slot because the pre-allocated slots don't have page crossing issues. After commit 14ad6ed30a10 ("net: allow small head cache usage with large MAX_SKB_FRAGS values") in the 6.14-rc4 kernel, the error occurs much more frequently in VMs with 16 or more vCPUs. It may occur every few seconds, or even more frequently, in an ssh session that outputs a lot of text. Commit 14ad6ed30a10 subtly changes how skb head memory is allocated, making it much more likely that the rndis header will cross a page boundary when the vCPU count is 16 or more. The changes in commit 14ad6ed30a10 are perfectly valid -- they just had the side effect of making the netvsc bug more prominent. Current code in init_page_array() creates a separate page buffer array entry for each PFN required to identify the data to be transmitted. Contiguous PFNs get separate entries in the page buffer array, and any information about contiguity is lost. Fix the core issue by having init_page_array() construct the page buffer array to represent contiguous ranges rather than individual pages. When these ranges are subsequently passed to netvsc_build_mpb_array(), it can build GPA ranges that contain multiple PFNs, as required to avoid the error "nvsp_rndis_pkt_complete error status: 2". If instead the network packet is sent by copying into a pre-allocated send buffer slot, the copy proceeds using the contiguous ranges rather than individual pages, but the result of the copying is the same. Also fix rndis_filter_send_request() to construct a contiguous range, since it has its own page buffer array. This change has a side benefit in CoCo VMs in that netvsc_dma_map() calls dma_map_single() on each contiguous range instead of on each page. This results in fewer calls to dma_map_single() but on larger chunks of memory, which should reduce contention on the swiotlb. Since the page buffer array now contains one entry for each contiguous range instead of for each individual page, the number of entries in the array can be reduced, saving 208 bytes of stack space in netvsc_xmit() when MAX_SKG_FRAGS has the default value of 17. [1] https://bugzilla.kernel.org/show_bug.cgi?id=217503 Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217503 Cc: <stable@vger.kernel.org> # 6.1.x Signed-off-by: Michael Kelley <mhklinux@outlook.com> Link: https://patch.msgid.link/20250513000604.1396-4-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 dayshv_netvsc: Use vmbus_sendpacket_mpb_desc() to send VMBus messagesMichael Kelley1-5/+45
netvsc currently uses vmbus_sendpacket_pagebuffer() to send VMBus messages. This function creates a series of GPA ranges, each of which contains a single PFN. However, if the rndis header in the VMBus message crosses a page boundary, the netvsc protocol with the host requires that both PFNs for the rndis header must be in a single "GPA range" data structure, which isn't possible with vmbus_sendpacket_pagebuffer(). As the first step in fixing this, add a new function netvsc_build_mpb_array() to build a VMBus message with multiple GPA ranges, each of which may contain multiple PFNs. Use vmbus_sendpacket_mpb_desc() to send this VMBus message to the host. There's no functional change since higher levels of netvsc don't maintain or propagate knowledge of contiguous PFNs. Based on its input, netvsc_build_mpb_array() still produces a separate GPA range for each PFN and the behavior is the same as with vmbus_sendpacket_pagebuffer(). But the groundwork is laid for a subsequent patch to provide the necessary grouping. Cc: <stable@vger.kernel.org> # 6.1.x Signed-off-by: Michael Kelley <mhklinux@outlook.com> Link: https://patch.msgid.link/20250513000604.1396-3-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysDrivers: hv: Allow vmbus_sendpacket_mpb_desc() to create multiple rangesMichael Kelley2-3/+4
vmbus_sendpacket_mpb_desc() is currently used only by the storvsc driver and is hardcoded to create a single GPA range. To allow it to also be used by the netvsc driver to create multiple GPA ranges, no longer hardcode as having a single GPA range. Allow the calling driver to specify the rangecount in the supplied descriptor. Update the storvsc driver to reflect this new approach. Cc: <stable@vger.kernel.org> # 6.1.x Signed-off-by: Michael Kelley <mhklinux@outlook.com> Link: https://patch.msgid.link/20250513000604.1396-2-mhklinux@outlook.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysMerge tag 'tpmdd-next-6.15-rc7' of ↵Linus Torvalds4-19/+30
git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd Pull tpm fixes from Jarkko Sakkinen: "A few last minute fixes for v6.15" * tag 'tpmdd-next-6.15-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/jarkko/linux-tpmdd: tpm: tis: Double the timeout B to 4s char: tpm: tpm-buf: Add sanity check fallback in read helpers tpm: Mask TPM RC in tpm2_start_auth_session()
3 daysocteontx2-af: Fix CGX Receive countersHariprasad Kelam1-0/+5
Each CGX block supports 4 logical MACs (LMACS). Receive counters CGX_CMR_RX_STAT0-8 are per LMAC and CGX_CMR_RX_STAT9-12 are per CGX. Due a bug in previous patch, stale Per CGX counters values observed. Fixes: 66208910e57a ("octeontx2-af: Support to retrieve CGX LMAC stats") Signed-off-by: Hariprasad Kelam <hkelam@marvell.com> Link: https://patch.msgid.link/20250513071554.728922-1-hkelam@marvell.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnet: ethernet: mtk_eth_soc: fix typo for declaration MT7988 ESW capabilityBo-Cun Chen1-1/+1
Since MTK_ESW_BIT is a bit number rather than a bitmap, it causes MTK_HAS_CAPS to produce incorrect results. This leads to the ETH driver not declaring MAC capabilities correctly for the MT7988 ESW. Fixes: 445eb6448ed3 ("net: ethernet: mtk_eth_soc: add basic support for MT7988 SoC") Signed-off-by: Bo-Cun Chen <bc-bocun.chen@mediatek.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org> Reviewed-by: Michal Swiatkowski <michal.swiatkowski@linux.intel.com> Link: https://patch.msgid.link/b8b37f409d1280fad9c4d32521e6207f63cd3213.1747110258.git.daniel@makrotopia.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnet: libwx: Fix FW mailbox unknown commandJiawen Wu1-0/+6
For the new SW-FW interaction, missing the error return if there is an unknown command. It causes the driver to mistakenly believe that the interaction is complete. This problem occurs when new driver is paired with old firmware, which does not support the new mailbox commands. Fixes: 2e5af6b2ae85 ("net: txgbe: Add basic support for new AML devices") Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/64DBB705D35A0016+20250513021009.145708-4-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnet: libwx: Fix FW mailbox reply timeoutJiawen Wu1-2/+2
For the new SW-FW interaction, the timeout waiting for the firmware to return is too short. So that some mailbox commands cannot be completed. Use the 'timeout' parameter instead of fixed timeout value for flexible configuration. Fixes: 2e5af6b2ae85 ("net: txgbe: Add basic support for new AML devices") Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/5D5BDE3EA501BDB8+20250513021009.145708-3-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnet: txgbe: Fix to calculate EEPROM checksum for AML devicesJiawen Wu2-1/+9
In the new firmware version, the shadow ram reserves some space to store I2C information, so the checksum calculation needs to skip this section. Otherwise, the driver will fail to probe because the invalid EEPROM checksum. Fixes: 2e5af6b2ae85 ("net: txgbe: Add basic support for new AML devices") Signed-off-by: Jiawen Wu <jiawenwu@trustnetic.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/1C6BF7A937237F5A+20250513021009.145708-2-jiawenwu@trustnetic.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysocteontx2-pf: macsec: Fix incorrect max transmit size in TX secySubbaraya Sundeep1-1/+2
MASCEC hardware block has a field called maximum transmit size for TX secy. Max packet size going out of MCS block has be programmed taking into account full packet size which has L2 header,SecTag and ICV. MACSEC offload driver is configuring max transmit size as macsec interface MTU which is incorrect. Say with 1500 MTU of real device, macsec interface created on top of real device will have MTU of 1468(1500 - (SecTag + ICV)). This is causing packets from macsec interface of size greater than or equal to 1468 are not getting transmitted out because driver programmed max transmit size as 1468 instead of 1514(1500 + ETH_HDR_LEN). Fixes: c54ffc73601c ("octeontx2-pf: mcs: Introduce MACSEC hardware offloading") Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com> Reviewed-by: Simon Horman <horms@kernel.org> Link: https://patch.msgid.link/1747053756-4529-1-git-send-email-sbhatta@marvell.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnetlink: specs: tc: all actions are indexed arraysJakub Kicinski1-2/+4
Some TC filters have actions listed as indexed arrays of nests and some as just nests. They are all indexed arrays, the handling is common across filters. Fixes: 2267672a6190 ("doc/netlink/specs: Update the tc spec") Link: https://patch.msgid.link/20250513221638.842532-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daysnetlink: specs: tc: fix a couple of attribute namesJakub Kicinski1-2/+2
Fix up spelling of two attribute names. These are clearly typoes and will prevent C codegen from working. Let's treat this as a fix to get the correction into users' hands ASAP, and prevent anyone depending on the wrong names. Fixes: a1bcfde83669 ("doc/netlink/specs: Add a spec for tc") Link: https://patch.msgid.link/20250513221316.841700-1-kuba@kernel.org Signed-off-by: Jakub Kicinski <kuba@kernel.org>
3 daystpm: tis: Double the timeout B to 4sMichal Suchanek2-2/+2
With some Infineon chips the timeouts in tpm_tis_send_data (both B and C) can reach up to about 2250 ms. Timeout C is retried since commit de9e33df7762 ("tpm, tpm_tis: Workaround failed command reception on Infineon devices") Timeout B still needs to be extended. The problem is most commonly encountered with context related operation such as load context/save context. These are issued directly by the kernel, and there is no retry logic for them. When a filesystem is set up to use the TPM for unlocking the boot fails, and restarting the userspace service is ineffective. This is likely because ignoring a load context/save context result puts the real TPM state and the TPM state expected by the kernel out of sync. Chips known to be affected: tpm_tis IFX1522:00: 2.0 TPM (device-id 0x1D, rev-id 54) Description: SLB9672 Firmware Revision: 15.22 tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1B, rev-id 22) Firmware Revision: 7.83 tpm_tis MSFT0101:00: 2.0 TPM (device-id 0x1A, rev-id 16) Firmware Revision: 5.63 Link: https://lore.kernel.org/linux-integrity/Z5pI07m0Muapyu9w@kitsune.suse.cz/ Signed-off-by: Michal Suchanek <msuchanek@suse.de> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
3 dayschar: tpm: tpm-buf: Add sanity check fallback in read helpersPurva Yeshi1-3/+3
Fix Smatch-detected issue: drivers/char/tpm/tpm-buf.c:208 tpm_buf_read_u8() error: uninitialized symbol 'value'. drivers/char/tpm/tpm-buf.c:225 tpm_buf_read_u16() error: uninitialized symbol 'value'. drivers/char/tpm/tpm-buf.c:242 tpm_buf_read_u32() error: uninitialized symbol 'value'. Zero-initialize the return values in tpm_buf_read_u8(), tpm_buf_read_u16(), and tpm_buf_read_u32() to guard against uninitialized data in case of a boundary overflow. Add defensive initialization ensures the return values are always defined, preventing undefined behavior if the unexpected happens. Signed-off-by: Purva Yeshi <purvayeshi550@gmail.com> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Jarkko Sakkinen <jarkko@kernel.org> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>
3 daystpm: Mask TPM RC in tpm2_start_auth_session()Jarkko Sakkinen2-14/+25
tpm2_start_auth_session() does not mask TPM RC correctly from the callers: [ 28.766528] tpm tpm0: A TPM error (2307) occurred start auth session Process TPM RCs inside tpm2_start_auth_session(), and map them to POSIX error codes. Cc: stable@vger.kernel.org # v6.10+ Fixes: 699e3efd6c64 ("tpm: Add HMAC session start and end functions") Reported-by: Herbert Xu <herbert@gondor.apana.org.au> Closes: https://lore.kernel.org/linux-integrity/Z_NgdRHuTKP6JK--@gondor.apana.org.au/ Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Jarkko Sakkinen <jarkko@kernel.org>