milos-linux/arch/riscv/include/asm
Matthew Wilcox (Oracle) 53fbef56e0 mm: introduce memdesc_flags_t
Patch series "Add and use memdesc_flags_t".

At some point struct page will be separated from struct slab and struct
folio.  This is a step towards that by introducing a type for the 'flags'
word of all three structures.  This gives us a certain amount of type
safety by establishing that some of these unsigned longs are different
from other unsigned longs in that they contain things like node ID,
section number and zone number in the upper bits.  That lets us have
functions that can be easily called by anyone who has a slab, folio or
page (but not easily by anyone else) to get the node or zone.

There's going to be some unusual merge problems with this as some odd bits
of the kernel decide they want to print out the flags value or something
similar by writing page->flags and now they'll need to write page->flags.f
instead.  That's most of the churn here.  Maybe we should be removing
these things from the debug output?


This patch (of 11):

Wrap the unsigned long flags in a typedef.  In upcoming patches, this will
provide a strong hint that you can't just pass a random unsigned long to
functions which take this as an argument.

[willy@infradead.org: s/flags/flags.f/ in several architectures]
  Link: https://lkml.kernel.org/r/aKMgPRLD-WnkPxYm@casper.infradead.org
[nicola.vetrini@gmail.com: mips: fix compilation error]
  Link: https://lore.kernel.org/lkml/CA+G9fYvkpmqGr6wjBNHY=dRp71PLCoi2341JxOudi60yqaeUdg@mail.gmail.com/
  Link: https://lkml.kernel.org/r/20250825214245.1838158-1-nicola.vetrini@gmail.com
Link: https://lkml.kernel.org/r/20250805172307.1302730-1-willy@infradead.org
Link: https://lkml.kernel.org/r/20250805172307.1302730-2-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: Zi Yan <ziy@nvidia.com>
Cc: Shakeel Butt <shakeel.butt@linux.dev>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2025-09-13 16:55:07 -07:00
..
vdso RISC-V: vDSO: Correct inline assembly constraints in the getrandom syscall wrapper 2025-06-12 12:13:57 -07:00
vendor_extensions riscv: Add SiFive xsfvfwmaccqqq vendor extension 2025-05-08 11:01:44 -07:00
acenv.h
acpi.h ACPI: RISCV: Make acpi_numa_get_nid() to be static 2024-09-17 12:02:48 -07:00
alternative-macros.h riscv: Provide all alternative macros all the time 2025-04-14 13:07:08 +00:00
alternative.h
arch_hweight.h RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
archrandom.h
asm-extable.h
asm-offsets.h
asm-prototypes.h RISC-V Patches for the 6.16 Merge Window, Part 1 2025-06-06 18:05:18 -07:00
asm.h riscv: Add runtime constant support 2025-03-20 09:15:03 +00:00
assembler.h
atomic.h Merge patch series "Rework & improve riscv cmpxchg.h and atomic.h" 2024-04-28 14:50:33 -07:00
barrier.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
bitops.h RISC-V Patches for the 6.15 Merge Window, Part 1 2025-04-04 09:49:17 -07:00
bug.h riscv/bug: Add ARCH_WARN_ASM macro for BUG/WARN asm code sharing with Rust 2025-07-23 00:04:53 +02:00
bugs.h riscv: Add ghostwrite vulnerability 2025-01-18 12:33:39 -08:00
cache.h riscv: mm: still create swiotlb buffer for kmalloc() bouncing if required 2024-04-30 10:35:45 -07:00
cacheflush.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
cacheinfo.h
cfi.h cfi: Move BPF CFI types and helpers to generic code 2025-07-31 18:23:53 -07:00
checksum.h RISC-V: separate Zbb optimisations requiring and not requiring toolchain support 2025-03-18 08:53:02 +00:00
clint.h
clocksource.h
cmpxchg.h riscv: xchg: Prefetch the destination word for sc.w 2025-06-05 11:09:39 -07:00
compat.h RISC-V: Remove unnecessary include from compat.h 2024-11-26 11:48:53 -08:00
cpu.h
cpu_ops.h
cpu_ops_sbi.h
cpufeature-macros.h riscv: Move cpufeature.h macros into their own header 2024-11-11 07:33:08 -08:00
cpufeature.h riscv: misaligned: add a function to check misalign trap delegability 2025-06-04 15:11:07 -07:00
cpuidle.h
crash_reserve.h
csr.h Merge patch series "riscv: Add support for xtheadvector" 2025-01-18 12:33:43 -08:00
current.h
delay.h
dma-noncoherent.h
dmi.h riscv: dmi: Add SMBIOS/DMI support 2024-06-26 08:02:33 -07:00
efi.h
elf.h riscv: Introduce set_compat_task() in asm/compat.h 2024-03-19 16:39:40 -07:00
entry-common.h riscv: Fix default misaligned access trap 2024-11-12 14:45:26 -08:00
errata_list.h riscv: Add ghostwrite vulnerability 2025-01-18 12:33:39 -08:00
exec.h riscv: Randomize lower bits of stack address 2024-09-17 08:05:10 -07:00
extable.h
fence.h riscv: Add license to fence.h 2024-09-03 07:18:33 -07:00
fixmap.h
fpu.h riscv: add support for kernel-mode FPU 2024-05-19 14:36:19 -07:00
ftrace.h riscv: ftrace: support direct call using call_ops 2025-06-05 11:09:31 -07:00
futex.h riscv/futex: sign extend compare value in atomic cmpxchg 2025-02-14 13:06:31 -08:00
gdb_xml.h
gpr-num.h
hugetlb.h mm: introduce memdesc_flags_t 2025-09-13 16:55:07 -07:00
hwcap.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
hwprobe.h riscv: hwprobe: Add SiFive vendor extension support and probe for xsfqmaccdod and xsfqmaccqoq 2025-05-08 11:01:43 -07:00
image.h riscv: kexec_file: Support loading Image binary file 2025-06-05 11:09:34 -07:00
insn-def.h riscv: Add support for Zicbop 2025-06-05 11:09:37 -07:00
insn.h RISC-V: fix vector insn load/store width mask 2024-06-25 08:47:10 -07:00
io.h - The 6 patch series "Enable strict percpu address space checks" from 2025-04-01 09:29:18 -07:00
irq.h riscv: Helper to parse hart index 2025-06-26 16:06:40 +02:00
irq_stack.h
irq_work.h
irqflags.h riscv: Remove unnecessary irqflags processor.h include 2024-04-16 18:50:52 -07:00
jump_label.h jump_label: adjust inline asm to be consistent 2024-11-04 16:21:45 -05:00
kasan.h riscv: mm: Pre-allocate vmemmap/direct map/kasan PGD entries 2024-06-26 08:42:39 -07:00
Kbuild fprobe: Add fprobe_header encoding feature 2024-12-26 10:50:05 -05:00
kdebug.h
kexec.h riscv: kexec_file: Support loading Image binary file 2025-06-05 11:09:34 -07:00
kfence.h riscv: Fix IPIs usage in kfence_protect_page() 2024-12-11 11:44:03 -08:00
kgdb.h riscv: KGDB: Do not inline arch_kgdb_breakpoint() 2025-04-16 07:29:33 -07:00
kprobes.h
kvm_aia.h RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init() 2025-07-28 22:27:07 +05:30
kvm_gstage.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_host.h RISC-V: KVM: Delegate illegal instruction fault to VS mode 2025-07-28 22:27:40 +05:30
kvm_mmu.h RISC-V: KVM: Factor-out g-stage page table management 2025-07-28 22:27:30 +05:30
kvm_nacl.h RISC-V: KVM: Use SBI sync SRET call when available 2024-10-28 16:44:03 +05:30
kvm_tlb.h RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIs 2025-07-28 22:27:32 +05:30
kvm_types.h
kvm_vcpu_fp.h
kvm_vcpu_insn.h
kvm_vcpu_pmu.h RISC-V: KVM: Fix to allow hpmcounter31 from the guest 2024-08-19 08:58:21 +05:30
kvm_vcpu_sbi.h RISC-V: KVM: add SBI extension reset callback 2025-07-23 17:19:44 +05:30
kvm_vcpu_timer.h
kvm_vcpu_vector.h KVM: RISC-V: refactor vector state reset 2025-05-21 09:34:46 +05:30
kvm_vmid.h RISC-V: KVM: Factor-out MMU related declarations into separate headers 2025-07-28 22:27:23 +05:30
linkage.h
membarrier.h
mmio.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmiowb.h riscv/barrier: Consolidate fence definitions 2024-03-19 18:52:24 -07:00
mmu.h riscv: Add support for the tagged address ABI 2024-10-24 14:12:56 -07:00
mmu_context.h riscv: Add support for the tagged address ABI 2024-10-24 14:12:56 -07:00
module.h
module.lds.h
numa.h
page.h riscv: Remove CONFIG_PAGE_OFFSET 2025-03-26 15:56:46 -07:00
paravirt.h
paravirt_api_clock.h
pci.h
perf_event.h The biggest change here is eliminating the awful idea that KVM had, of 2024-11-23 16:00:50 -08:00
pgalloc.h riscv: pgtable: unconditionally use tlb_remove_ptdesc() 2025-04-01 15:17:14 -07:00
pgtable-32.h
pgtable-64.h mm: remove devmap related functions and page table bits 2025-07-09 22:42:18 -07:00
pgtable-bits.h mm: remove devmap related functions and page table bits 2025-07-09 22:42:18 -07:00
pgtable.h riscv: use an atomic xchg in pudp_huge_get_and_clear() 2025-09-13 16:55:01 -07:00
probes.h
processor.h riscv: uaccess: Only restore the CSR_STATUS SUM bit 2025-06-05 14:03:17 -07:00
ptrace.h riscv: Make regs_irqs_disabled() more clear 2025-06-05 11:10:17 -07:00
runtime-const.h riscv: fix runtime constant support for nommu kernels 2025-06-10 18:19:33 -07:00
sbi.h riscv: sbi: add FWFT extension interface 2025-06-04 15:11:01 -07:00
scs.h
seccomp.h
sections.h
semihost.h
set_memory.h arch: introduce set_direct_map_valid_noflush() 2024-11-07 14:25:15 -08:00
signal32.h
simd.h
smp.h riscv: Use IPIs for remote cache/TLB flushes by default 2024-04-29 10:49:26 -07:00
soc.h
sparsemem.h RISC-V: Don't have MAX_PHYSMEM_BITS exceed phys_addr_t 2024-09-20 01:32:39 -07:00
spinlock.h riscv: qspinlock: Fixup _Q_PENDING_LOOPS definition 2025-01-08 10:46:01 -08:00
stackprotector.h
stacktrace.h
string.h riscv: Omit optimized string routines when using KASAN 2024-09-19 01:10:00 -07:00
suspend.h riscv: Add stimecmp save and restore 2025-03-18 12:59:03 +00:00
switch_to.h riscv: vector: Support xtheadvector save/restore 2025-01-18 12:33:33 -08:00
sync_core.h
syscall.h syscall.h: introduce syscall_set_nr() 2025-05-11 17:48:15 -07:00
syscall_table.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
syscall_wrapper.h riscv: Mark __se_sys_* functions __used 2024-03-26 14:11:03 -07:00
text-patching.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
thread_info.h riscv: add PREEMPT_LAZY support 2024-11-05 12:55:39 +01:00
timex.h
tlb.h mm: pgtable: introduce generic __tlb_remove_table() 2025-01-25 20:22:23 -08:00
tlbbatch.h
tlbflush.h mm: remove arch_flush_tlb_batched_pending() arch helper 2025-07-24 19:12:32 -07:00
topology.h arch, mm: move definition of node_data to generic code 2024-09-03 21:15:28 -07:00
trace.h riscv: Add tracepoints for SBI calls and returns 2024-07-10 13:23:09 -07:00
uaccess.h riscv: uaccess: Fix -Wuninitialized and -Wshadow in __put_user_nocheck 2025-07-16 10:29:39 -07:00
unistd.h riscv: convert to generic syscall table 2024-07-10 14:23:38 +02:00
uprobes.h asm-generic: introduce text-patching.h 2024-11-07 14:25:15 -08:00
vdso.h riscv: vdso: Switch to generic storage implementation 2025-02-21 09:54:02 +01:00
vector.h riscv: vector: Fix context save/restore with xtheadvector 2025-06-12 12:13:47 -07:00
vendor_extensions.h riscv: cpufeature: Extract common elements from extension checking 2024-07-22 15:36:57 -07:00
vendorid_list.h riscv: sbi: vendorid_list: Add Microchip Technology to the vendor list 2025-01-20 10:25:05 -06:00
vermagic.h
vmalloc.h riscv: Add license to vmalloc.h 2024-09-03 07:18:34 -07:00
word-at-a-time.h
xip_fixup.h riscv: drop the use of XIP_OFFSET in XIP_FIXUP_FLASH_OFFSET 2024-09-12 07:22:59 -07:00
xor.h