Commit 7b82e904 authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'asm-generic-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic

Pull asm-generic updates from Arnd Bergmann:
 "These are cleanups for architecture specific header files:

   - the comments in include/linux/syscalls.h have gone out of sync and
     are really pointless, so these get removed

   - The asm/bitsperlong.h header no longer needs to be architecture
     specific on modern compilers, so use a generic version for newer
     architectures that use new enough userspace compilers

   - A cleanup for virt_to_pfn/virt_to_bus to have proper type checking,
     forcing the use of pointers"

* tag 'asm-generic-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
  syscalls: Remove file path comments from headers
  tools arch: Remove uapi bitsperlong.h of hexagon and microblaze
  asm-generic: Unify uapi bitsperlong.h for arm64, riscv and loongarch
  m68k/mm: Make pfn accessors static inlines
  arm64: memory: Make virt_to_pfn() a static inline
  ARM: mm: Make virt_to_pfn() a static inline
  asm-generic/page.h: Make pfn accessors static inlines
  xen/netback: Pass (void *) to virt_to_page()
  netfs: Pass a pointer to virt_to_page()
  cifs: Pass a pointer to virt_to_page() in cifsglob
  cifs: Pass a pointer to virt_to_page()
  riscv: mm: init: Pass a pointer to virt_to_page()
  ARC: init: Pass a pointer to virt_to_pfn() in init
  m68k: Pass a pointer to virt_to_pfn() virt_to_page()
  fs/proc/kcore.c: Pass a pointer to virt_addr_valid()
parents 9f57c13f 4dd595c3
...@@ -87,7 +87,7 @@ void __init setup_arch_memory(void) ...@@ -87,7 +87,7 @@ void __init setup_arch_memory(void)
setup_initial_init_mm(_text, _etext, _edata, _end); setup_initial_init_mm(_text, _etext, _edata, _end);
/* first page of system - kernel .vector starts here */ /* first page of system - kernel .vector starts here */
min_low_pfn = virt_to_pfn(CONFIG_LINUX_RAM_BASE); min_low_pfn = virt_to_pfn((void *)CONFIG_LINUX_RAM_BASE);
/* Last usable page of low mem */ /* Last usable page of low mem */
max_low_pfn = max_pfn = PFN_DOWN(low_mem_start + low_mem_sz); max_low_pfn = max_pfn = PFN_DOWN(low_mem_start + low_mem_sz);
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/string.h> #include <linux/string.h>
#include <asm/mach/sharpsl_param.h> #include <asm/mach/sharpsl_param.h>
#include <asm/memory.h> #include <asm/page.h>
/* /*
* Certain hardware parameters determined at the time of device manufacture, * Certain hardware parameters determined at the time of device manufacture,
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#ifndef __ASM_ARM_DELAY_H #ifndef __ASM_ARM_DELAY_H
#define __ASM_ARM_DELAY_H #define __ASM_ARM_DELAY_H
#include <asm/memory.h> #include <asm/page.h>
#include <asm/param.h> /* HZ */ #include <asm/param.h> /* HZ */
/* /*
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include <linux/string.h> #include <linux/string.h>
#include <linux/types.h> #include <linux/types.h>
#include <asm/byteorder.h> #include <asm/byteorder.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm-generic/pci_iomap.h> #include <asm-generic/pci_iomap.h>
/* /*
......
...@@ -5,11 +5,16 @@ ...@@ -5,11 +5,16 @@
* Copyright (C) 2000-2002 Russell King * Copyright (C) 2000-2002 Russell King
* modification for nommu, Hyok S. Choi, 2004 * modification for nommu, Hyok S. Choi, 2004
* *
* Note: this file should not be included by non-asm/.h files * Note: this file should not be included explicitly, include <asm/page.h>
* to get access to these definitions.
*/ */
#ifndef __ASM_ARM_MEMORY_H #ifndef __ASM_ARM_MEMORY_H
#define __ASM_ARM_MEMORY_H #define __ASM_ARM_MEMORY_H
#ifndef _ASMARM_PAGE_H
#error "Do not include <asm/memory.h> directly"
#endif
#include <linux/compiler.h> #include <linux/compiler.h>
#include <linux/const.h> #include <linux/const.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -288,10 +293,12 @@ static inline unsigned long __phys_to_virt(phys_addr_t x) ...@@ -288,10 +293,12 @@ static inline unsigned long __phys_to_virt(phys_addr_t x)
#endif #endif
#define virt_to_pfn(kaddr) \ static inline unsigned long virt_to_pfn(const void *p)
((((unsigned long)(kaddr) - PAGE_OFFSET) >> PAGE_SHIFT) + \ {
PHYS_PFN_OFFSET) unsigned long kaddr = (unsigned long)p;
return (((kaddr - PAGE_OFFSET) >> PAGE_SHIFT) +
PHYS_PFN_OFFSET);
}
#define __pa_symbol_nodebug(x) __virt_to_phys_nodebug((x)) #define __pa_symbol_nodebug(x) __virt_to_phys_nodebug((x))
#ifdef CONFIG_DEBUG_VIRTUAL #ifdef CONFIG_DEBUG_VIRTUAL
......
...@@ -183,10 +183,10 @@ extern int pfn_valid(unsigned long); ...@@ -183,10 +183,10 @@ extern int pfn_valid(unsigned long);
#define pfn_valid pfn_valid #define pfn_valid pfn_valid
#endif #endif
#include <asm/memory.h>
#endif /* !__ASSEMBLY__ */ #endif /* !__ASSEMBLY__ */
#include <asm/memory.h>
#define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC #define VM_DATA_DEFAULT_FLAGS VM_DATA_FLAGS_TSK_EXEC
#include <asm-generic/getorder.h> #include <asm-generic/getorder.h>
......
...@@ -27,7 +27,7 @@ extern struct page *empty_zero_page; ...@@ -27,7 +27,7 @@ extern struct page *empty_zero_page;
#else #else
#include <asm-generic/pgtable-nopud.h> #include <asm-generic/pgtable-nopud.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/pgtable-hwdef.h> #include <asm/pgtable-hwdef.h>
......
...@@ -147,8 +147,6 @@ static inline void init_proc_vtable(const struct processor *p) ...@@ -147,8 +147,6 @@ static inline void init_proc_vtable(const struct processor *p)
extern void cpu_resume(void); extern void cpu_resume(void);
#include <asm/memory.h>
#ifdef CONFIG_MMU #ifdef CONFIG_MMU
#define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm) #define cpu_switch_mm(pgd,mm) cpu_do_switch_mm(virt_to_phys(pgd),mm)
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
#ifndef ASMARM_SPARSEMEM_H #ifndef ASMARM_SPARSEMEM_H
#define ASMARM_SPARSEMEM_H #define ASMARM_SPARSEMEM_H
#include <asm/memory.h> #include <asm/page.h>
/* /*
* Two definitions are required for sparsemem: * Two definitions are required for sparsemem:
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
.macro csdb .macro csdb
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* User space memory access functions * User space memory access functions
*/ */
#include <linux/string.h> #include <linux/string.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/unaligned.h> #include <asm/unaligned.h>
#include <asm/unified.h> #include <asm/unified.h>
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <asm/glue-pf.h> #include <asm/glue-pf.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/mpu.h> #include <asm/mpu.h>
#include <asm/procinfo.h> #include <asm/procinfo.h>
#include <asm/suspend.h> #include <asm/suspend.h>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/glue-df.h> #include <asm/glue-df.h>
#include <asm/glue-pf.h> #include <asm/glue-pf.h>
#include <asm/vfpmacros.h> #include <asm/vfpmacros.h>
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <asm/unistd.h> #include <asm/unistd.h>
#include <asm/ftrace.h> #include <asm/ftrace.h>
#include <asm/unwind.h> #include <asm/unwind.h>
#include <asm/memory.h> #include <asm/page.h>
#ifdef CONFIG_AEABI #ifdef CONFIG_AEABI
#include <asm/unistd-oabi.h> #include <asm/unistd-oabi.h>
#endif #endif
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
* *
* Low-level vector interface routines for the ARMv7-M architecture * Low-level vector interface routines for the ARMv7-M architecture
*/ */
#include <asm/memory.h> #include <asm/page.h>
#include <asm/glue.h> #include <asm/glue.h>
#include <asm/thread_notify.h> #include <asm/thread_notify.h>
#include <asm/v7m.h> #include <asm/v7m.h>
......
...@@ -14,12 +14,11 @@ ...@@ -14,12 +14,11 @@
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/cp15.h> #include <asm/cp15.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/v7m.h> #include <asm/v7m.h>
#include <asm/mpu.h> #include <asm/mpu.h>
#include <asm/page.h>
/* /*
* Kernel startup entry point. * Kernel startup entry point.
......
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/ptrace.h> #include <asm/ptrace.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING) #if defined(CONFIG_DEBUG_LL) && !defined(CONFIG_DEBUG_SEMIHOSTING)
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
#include <asm/system_misc.h> #include <asm/system_misc.h>
#include <asm/idmap.h> #include <asm/idmap.h>
#include <asm/suspend.h> #include <asm/suspend.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/sections.h> #include <asm/sections.h>
#include "reboot.h" #include "reboot.h"
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include <asm/bugs.h> #include <asm/bugs.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/idmap.h> #include <asm/idmap.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <asm/suspend.h> #include <asm/suspend.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <linux/string.h> /* memcpy */ #include <linux/string.h> /* memcpy */
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/system_info.h> #include <asm/system_info.h>
#include <asm/traps.h> #include <asm/traps.h>
#include <asm/tcm.h> #include <asm/tcm.h>
......
...@@ -12,9 +12,8 @@ ...@@ -12,9 +12,8 @@
#include <asm/vmlinux.lds.h> #include <asm/vmlinux.lds.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/memory.h>
#include <asm/mpu.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/mpu.h>
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
ENTRY(stext) ENTRY(stext)
......
...@@ -12,9 +12,8 @@ ...@@ -12,9 +12,8 @@
#include <asm/vmlinux.lds.h> #include <asm/vmlinux.lds.h>
#include <asm/cache.h> #include <asm/cache.h>
#include <asm/thread_info.h> #include <asm/thread_info.h>
#include <asm/memory.h>
#include <asm/mpu.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/mpu.h>
OUTPUT_ARCH(arm) OUTPUT_ARCH(arm)
ENTRY(stext) ENTRY(stext)
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/cp15.h> #include <asm/cp15.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/smp_plat.h> #include <asm/smp_plat.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/mach/arch.h> #include <asm/mach/arch.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
#include <asm/memory.h> #include <asm/page.h>
#include "memory.h" #include "memory.h"
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#include <linux/platform_data/pm33xx.h> #include <linux/platform_data/pm33xx.h>
#include <linux/ti-emif-sram.h> #include <linux/ti-emif-sram.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
#include "iomap.h" #include "iomap.h"
#include "cm33xx.h" #include "cm33xx.h"
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <linux/platform_data/pm33xx.h> #include <linux/platform_data/pm33xx.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include <asm/memory.h> #include <asm/page.h>
#include "cm33xx.h" #include "cm33xx.h"
#include "common.h" #include "common.h"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/smp_scu.h> #include <asm/smp_scu.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/hardware/cache-l2x0.h> #include <asm/hardware/cache-l2x0.h>
#include "omap-secure.h" #include "omap-secure.h"
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <linux/clk.h> #include <linux/clk.h>
#include <asm/setup.h> #include <asm/setup.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/irq.h> #include <asm/irq.h>
#include <linux/sizes.h> #include <linux/sizes.h>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
.data .data
/* /*
......
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
#include <linux/time.h> #include <linux/time.h>
#include <mach/hardware.h> #include <mach/hardware.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/suspend.h> #include <asm/suspend.h>
#include <asm/mach/time.h> #include <asm/mach/time.h>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/memory.h> #include <asm/page.h>
/* /*
* Boot code for secondary CPUs. * Boot code for secondary CPUs.
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/threads.h> #include <linux/threads.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
#define SCTLR_MMU 0x01 #define SCTLR_MMU 0x01
#define BOOTROM_ADDRESS 0xE6340000 #define BOOTROM_ADDRESS 0xE6340000
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/assembler.h> #include <asm/assembler.h>
.arch armv7-a .arch armv7-a
......
...@@ -10,7 +10,7 @@ ...@@ -10,7 +10,7 @@
#ifndef __MACH_SPEAR_H #ifndef __MACH_SPEAR_H
#define __MACH_SPEAR_H #define __MACH_SPEAR_H
#include <asm/memory.h> #include <asm/page.h>
#if defined(CONFIG_ARCH_SPEAR3XX) || defined (CONFIG_ARCH_SPEAR6XX) #if defined(CONFIG_ARCH_SPEAR3XX) || defined (CONFIG_ARCH_SPEAR6XX)
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h>
#include <asm/page.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
......
...@@ -7,7 +7,6 @@ ...@@ -7,7 +7,6 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <linux/init.h> #include <linux/init.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h>
#include <asm/page.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
......
...@@ -25,7 +25,7 @@ ...@@ -25,7 +25,7 @@
#include <linux/sizes.h> #include <linux/sizes.h>
#include <linux/cma.h> #include <linux/cma.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/highmem.h> #include <asm/highmem.h>
#include <asm/cacheflush.h> #include <asm/cacheflush.h>
#include <asm/tlbflush.h> #include <asm/tlbflush.h>
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#include <asm/domain.h> #include <asm/domain.h>
#include <asm/fixmap.h> #include <asm/fixmap.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/ptdump.h> #include <asm/ptdump.h>
static struct addr_marker address_markers[] = { static struct addr_marker address_markers[] = {
......
...@@ -26,7 +26,7 @@ ...@@ -26,7 +26,7 @@
#include <asm/cp15.h> #include <asm/cp15.h>
#include <asm/mach-types.h> #include <asm/mach-types.h>
#include <asm/memblock.h> #include <asm/memblock.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/prom.h> #include <asm/prom.h>
#include <asm/sections.h> #include <asm/sections.h>
#include <asm/setup.h> #include <asm/setup.h>
......
...@@ -17,7 +17,6 @@ ...@@ -17,7 +17,6 @@
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/highmem.h> #include <asm/highmem.h>
#include <asm/mach/map.h> #include <asm/mach/map.h>
#include <asm/memory.h>
#include <asm/page.h> #include <asm/page.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/procinfo.h> #include <asm/procinfo.h>
......
...@@ -27,7 +27,7 @@ ...@@ -27,7 +27,7 @@
#include <asm/system_info.h> #include <asm/system_info.h>
#include <asm/traps.h> #include <asm/traps.h>
#include <asm/procinfo.h> #include <asm/procinfo.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/pgalloc.h> #include <asm/pgalloc.h>
#include <asm/kasan_def.h> #include <asm/kasan_def.h>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include <linux/mm.h> #include <linux/mm.h>
#include <asm/sections.h> #include <asm/sections.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/fixmap.h> #include <asm/fixmap.h>
#include <asm/dma.h> #include <asm/dma.h>
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
#include <asm/cputype.h> #include <asm/cputype.h>
#include <asm/mpu.h> #include <asm/mpu.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/sections.h> #include <asm/sections.h>
#include "mm.h" #include "mm.h"
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/hwcap.h> #include <asm/hwcap.h>
#include <asm/pgtable-hwdef.h> #include <asm/pgtable-hwdef.h>
#include <asm/memory.h> #include <asm/page.h>
#include "proc-macros.S" #include "proc-macros.S"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
*/ */
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
#include <asm/v7m.h> #include <asm/v7m.h>
#include "proc-macros.S" #include "proc-macros.S"
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
#include <linux/pgtable.h> #include <linux/pgtable.h>
#include <asm/asm-offsets.h> #include <asm/asm-offsets.h>
#include <asm/cp15.h> #include <asm/cp15.h>
#include <asm/memory.h> #include <asm/page.h>
.section ".idmap.text", "ax" .section ".idmap.text", "ax"
......
...@@ -333,6 +333,14 @@ static inline void *phys_to_virt(phys_addr_t x) ...@@ -333,6 +333,14 @@ static inline void *phys_to_virt(phys_addr_t x)
return (void *)(__phys_to_virt(x)); return (void *)(__phys_to_virt(x));
} }
/* Needed already here for resolving __phys_to_pfn() in virt_to_pfn() */
#include <asm-generic/memory_model.h>
static inline unsigned long virt_to_pfn(const void *kaddr)
{
return __phys_to_pfn(virt_to_phys(kaddr));
}
/* /*
* Drivers should NOT use these either. * Drivers should NOT use these either.
*/ */
...@@ -341,7 +349,6 @@ static inline void *phys_to_virt(phys_addr_t x) ...@@ -341,7 +349,6 @@ static inline void *phys_to_virt(phys_addr_t x)
#define __pa_nodebug(x) __virt_to_phys_nodebug((unsigned long)(x)) #define __pa_nodebug(x) __virt_to_phys_nodebug((unsigned long)(x))
#define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x))) #define __va(x) ((void *)__phys_to_virt((phys_addr_t)(x)))
#define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT) #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
#define virt_to_pfn(x) __phys_to_pfn(__virt_to_phys((unsigned long)(x)))
#define sym_to_pfn(x) __phys_to_pfn(__pa_symbol(x)) #define sym_to_pfn(x) __phys_to_pfn(__pa_symbol(x))
/* /*
......
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (C) 2012 ARM Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __ASM_BITSPERLONG_H
#define __ASM_BITSPERLONG_H
#define __BITS_PER_LONG 64
#include <asm-generic/bitsperlong.h>
#endif /* __ASM_BITSPERLONG_H */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __ASM_LOONGARCH_BITSPERLONG_H
#define __ASM_LOONGARCH_BITSPERLONG_H
#define __BITS_PER_LONG (__SIZEOF_LONG__ * 8)
#include <asm-generic/bitsperlong.h>
#endif /* __ASM_LOONGARCH_BITSPERLONG_H */
...@@ -115,7 +115,7 @@ static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp) ...@@ -115,7 +115,7 @@ static inline void pgd_set(pgd_t *pgdp, pmd_t *pmdp)
pgd_val(*pgdp) = virt_to_phys(pmdp); pgd_val(*pgdp) = virt_to_phys(pmdp);
} }
#define __pte_page(pte) ((unsigned long) (pte_val(pte) & PAGE_MASK)) #define __pte_page(pte) ((void *) (pte_val(pte) & PAGE_MASK))
#define pmd_page_vaddr(pmd) ((unsigned long) (pmd_val(pmd))) #define pmd_page_vaddr(pmd) ((unsigned long) (pmd_val(pmd)))
static inline int pte_none(pte_t pte) static inline int pte_none(pte_t pte)
...@@ -134,7 +134,6 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr, ...@@ -134,7 +134,6 @@ static inline void pte_clear(struct mm_struct *mm, unsigned long addr,
pte_val(*ptep) = 0; pte_val(*ptep) = 0;
} }
#define pte_pagenr(pte) ((__pte_page(pte) - PAGE_OFFSET) >> PAGE_SHIFT)
#define pte_page(pte) virt_to_page(__pte_page(pte)) #define pte_page(pte) virt_to_page(__pte_page(pte))
static inline int pmd_none2(pmd_t *pmd) { return !pmd_val(*pmd); } static inline int pmd_none2(pmd_t *pmd) { return !pmd_val(*pmd); }
......
...@@ -121,8 +121,15 @@ static inline void *__va(unsigned long x) ...@@ -121,8 +121,15 @@ static inline void *__va(unsigned long x)
* TODO: implement (fast) pfn<->pgdat_idx conversion functions, this makes lots * TODO: implement (fast) pfn<->pgdat_idx conversion functions, this makes lots
* of the shifts unnecessary. * of the shifts unnecessary.
*/ */
#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) static inline unsigned long virt_to_pfn(const void *kaddr)
#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) {
return __pa(kaddr) >> PAGE_SHIFT;
}
static inline void *pfn_to_virt(unsigned long pfn)
{
return __va(pfn << PAGE_SHIFT);
}
extern int m68k_virt_to_node_shift; extern int m68k_virt_to_node_shift;
......
...@@ -19,8 +19,15 @@ extern unsigned long memory_end; ...@@ -19,8 +19,15 @@ extern unsigned long memory_end;
#define __pa(vaddr) ((unsigned long)(vaddr)) #define __pa(vaddr) ((unsigned long)(vaddr))
#define __va(paddr) ((void *)((unsigned long)(paddr))) #define __va(paddr) ((void *)((unsigned long)(paddr)))
#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) static inline unsigned long virt_to_pfn(const void *kaddr)
#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) {
return __pa(kaddr) >> PAGE_SHIFT;
}
static inline void *pfn_to_virt(unsigned long pfn)
{
return __va(pfn << PAGE_SHIFT);
}
#define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT)) #define virt_to_page(addr) (mem_map + (((unsigned long)(addr)-PAGE_OFFSET) >> PAGE_SHIFT))
#define page_to_virt(page) __va(((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET)) #define page_to_virt(page) __va(((((page) - mem_map) << PAGE_SHIFT) + PAGE_OFFSET))
......
...@@ -91,7 +91,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) ...@@ -91,7 +91,7 @@ static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
#define pmd_set(pmdp,ptep) do {} while (0) #define pmd_set(pmdp,ptep) do {} while (0)
#define __pte_page(pte) \ #define __pte_page(pte) \
((unsigned long) __va ((pte_val (pte) & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT)) (__va ((pte_val (pte) & SUN3_PAGE_PGNUM_MASK) << PAGE_SHIFT))
static inline unsigned long pmd_page_vaddr(pmd_t pmd) static inline unsigned long pmd_page_vaddr(pmd_t pmd)
{ {
...@@ -111,7 +111,7 @@ static inline void pte_clear (struct mm_struct *mm, unsigned long addr, pte_t *p ...@@ -111,7 +111,7 @@ static inline void pte_clear (struct mm_struct *mm, unsigned long addr, pte_t *p
#define pte_page(pte) virt_to_page(__pte_page(pte)) #define pte_page(pte) virt_to_page(__pte_page(pte))
#define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT) #define pmd_pfn(pmd) (pmd_val(pmd) >> PAGE_SHIFT)
#define pmd_page(pmd) virt_to_page(pmd_page_vaddr(pmd)) #define pmd_page(pmd) virt_to_page((void *)pmd_page_vaddr(pmd))
static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); } static inline int pmd_none2 (pmd_t *pmd) { return !pmd_val (*pmd); }
......
...@@ -69,7 +69,8 @@ void __init paging_init(void) ...@@ -69,7 +69,8 @@ void __init paging_init(void)
/* now change pg_table to kernel virtual addresses */ /* now change pg_table to kernel virtual addresses */
for (i = 0; i < PTRS_PER_PTE; ++i, ++pg_table) { for (i = 0; i < PTRS_PER_PTE; ++i, ++pg_table) {
pte_t pte = pfn_pte(virt_to_pfn(address), PAGE_INIT); pte_t pte = pfn_pte(virt_to_pfn((void *)address),
PAGE_INIT);
if (address >= (unsigned long) high_memory) if (address >= (unsigned long) high_memory)
pte_val(pte) = 0; pte_val(pte) = 0;
......
...@@ -102,7 +102,7 @@ static struct list_head ptable_list[2] = { ...@@ -102,7 +102,7 @@ static struct list_head ptable_list[2] = {
LIST_HEAD_INIT(ptable_list[1]), LIST_HEAD_INIT(ptable_list[1]),
}; };
#define PD_PTABLE(page) ((ptable_desc *)&(virt_to_page(page)->lru)) #define PD_PTABLE(page) ((ptable_desc *)&(virt_to_page((void *)(page))->lru))
#define PD_PAGE(ptable) (list_entry(ptable, struct page, lru)) #define PD_PAGE(ptable) (list_entry(ptable, struct page, lru))
#define PD_MARKBITS(dp) (*(unsigned int *)&PD_PAGE(dp)->index) #define PD_MARKBITS(dp) (*(unsigned int *)&PD_PAGE(dp)->index)
...@@ -201,7 +201,7 @@ int free_pointer_table(void *table, int type) ...@@ -201,7 +201,7 @@ int free_pointer_table(void *table, int type)
list_del(dp); list_del(dp);
mmu_page_dtor((void *)page); mmu_page_dtor((void *)page);
if (type == TABLE_PTE) if (type == TABLE_PTE)
pgtable_pte_page_dtor(virt_to_page(page)); pgtable_pte_page_dtor(virt_to_page((void *)page));
free_page (page); free_page (page);
return 1; return 1;
} else if (ptable_list[type].next != dp) { } else if (ptable_list[type].next != dp) {
......
...@@ -75,7 +75,7 @@ void __init paging_init(void) ...@@ -75,7 +75,7 @@ void __init paging_init(void)
/* now change pg_table to kernel virtual addresses */ /* now change pg_table to kernel virtual addresses */
pg_table = (pte_t *) __va ((unsigned long) pg_table); pg_table = (pte_t *) __va ((unsigned long) pg_table);
for (i=0; i<PTRS_PER_PTE; ++i, ++pg_table) { for (i=0; i<PTRS_PER_PTE; ++i, ++pg_table) {
pte_t pte = pfn_pte(virt_to_pfn(address), PAGE_INIT); pte_t pte = pfn_pte(virt_to_pfn((void *)address), PAGE_INIT);
if (address >= (unsigned long)high_memory) if (address >= (unsigned long)high_memory)
pte_val (pte) = 0; pte_val (pte) = 0;
set_pte (pg_table, pte); set_pte (pg_table, pte);
......
...@@ -29,7 +29,7 @@ static unsigned long dvma_page(unsigned long kaddr, unsigned long vaddr) ...@@ -29,7 +29,7 @@ static unsigned long dvma_page(unsigned long kaddr, unsigned long vaddr)
j = *(volatile unsigned long *)kaddr; j = *(volatile unsigned long *)kaddr;
*(volatile unsigned long *)kaddr = j; *(volatile unsigned long *)kaddr = j;
ptep = pfn_pte(virt_to_pfn(kaddr), PAGE_KERNEL); ptep = pfn_pte(virt_to_pfn((void *)kaddr), PAGE_KERNEL);
pte = pte_val(ptep); pte = pte_val(ptep);
// pr_info("dvma_remap: addr %lx -> %lx pte %08lx\n", kaddr, vaddr, pte); // pr_info("dvma_remap: addr %lx -> %lx pte %08lx\n", kaddr, vaddr, pte);
if(ptelist[(vaddr & 0xff000) >> PAGE_SHIFT] != pte) { if(ptelist[(vaddr & 0xff000) >> PAGE_SHIFT] != pte) {
......
...@@ -125,7 +125,7 @@ inline int dvma_map_cpu(unsigned long kaddr, ...@@ -125,7 +125,7 @@ inline int dvma_map_cpu(unsigned long kaddr,
do { do {
pr_debug("mapping %08lx phys to %08lx\n", pr_debug("mapping %08lx phys to %08lx\n",
__pa(kaddr), vaddr); __pa(kaddr), vaddr);
set_pte(pte, pfn_pte(virt_to_pfn(kaddr), set_pte(pte, pfn_pte(virt_to_pfn((void *)kaddr),
PAGE_KERNEL)); PAGE_KERNEL));
pte++; pte++;
kaddr += PAGE_SIZE; kaddr += PAGE_SIZE;
......
/* SPDX-License-Identifier: GPL-2.0-only WITH Linux-syscall-note */
/*
* Copyright (C) 2012 ARM Ltd.
* Copyright (C) 2015 Regents of the University of California
*/
#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H
#define _UAPI_ASM_RISCV_BITSPERLONG_H
#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8)
#include <asm-generic/bitsperlong.h>
#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */
...@@ -357,7 +357,7 @@ static phys_addr_t __init alloc_pte_late(uintptr_t va) ...@@ -357,7 +357,7 @@ static phys_addr_t __init alloc_pte_late(uintptr_t va)
unsigned long vaddr; unsigned long vaddr;
vaddr = __get_free_page(GFP_KERNEL); vaddr = __get_free_page(GFP_KERNEL);
BUG_ON(!vaddr || !pgtable_pte_page_ctor(virt_to_page(vaddr))); BUG_ON(!vaddr || !pgtable_pte_page_ctor(virt_to_page((void *)vaddr)));
return __pa(vaddr); return __pa(vaddr);
} }
...@@ -440,7 +440,7 @@ static phys_addr_t __init alloc_pmd_late(uintptr_t va) ...@@ -440,7 +440,7 @@ static phys_addr_t __init alloc_pmd_late(uintptr_t va)
unsigned long vaddr; unsigned long vaddr;
vaddr = __get_free_page(GFP_KERNEL); vaddr = __get_free_page(GFP_KERNEL);
BUG_ON(!vaddr || !pgtable_pmd_page_ctor(virt_to_page(vaddr))); BUG_ON(!vaddr || !pgtable_pmd_page_ctor(virt_to_page((void *)vaddr)));
return __pa(vaddr); return __pa(vaddr);
} }
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/assembler.h> #include <asm/assembler.h>
#include <asm/memory.h> #include <asm/page.h>
#include "emif.h" #include "emif.h"
#include "ti-emif-asm-offsets.h" #include "ti-emif-asm-offsets.h"
......
...@@ -689,7 +689,7 @@ static void xenvif_fill_frags(struct xenvif_queue *queue, struct sk_buff *skb) ...@@ -689,7 +689,7 @@ static void xenvif_fill_frags(struct xenvif_queue *queue, struct sk_buff *skb)
prev_pending_idx = pending_idx; prev_pending_idx = pending_idx;
txp = &queue->pending_tx_info[pending_idx].req; txp = &queue->pending_tx_info[pending_idx].req;
page = virt_to_page(idx_to_kaddr(queue, pending_idx)); page = virt_to_page((void *)idx_to_kaddr(queue, pending_idx));
__skb_fill_page_desc(skb, i, page, txp->offset, txp->size); __skb_fill_page_desc(skb, i, page, txp->offset, txp->size);
skb->len += txp->size; skb->len += txp->size;
skb->data_len += txp->size; skb->data_len += txp->size;
......
...@@ -199,7 +199,7 @@ kclist_add_private(unsigned long pfn, unsigned long nr_pages, void *arg) ...@@ -199,7 +199,7 @@ kclist_add_private(unsigned long pfn, unsigned long nr_pages, void *arg)
ent->addr = (unsigned long)page_to_virt(p); ent->addr = (unsigned long)page_to_virt(p);
ent->size = nr_pages << PAGE_SHIFT; ent->size = nr_pages << PAGE_SHIFT;
if (!virt_addr_valid(ent->addr)) if (!virt_addr_valid((void *)ent->addr))
goto free_out; goto free_out;
/* cut not-mapped area. ....from ppc-32 code. */ /* cut not-mapped area. ....from ppc-32 code. */
......
...@@ -2179,7 +2179,7 @@ static inline void cifs_sg_set_buf(struct sg_table *sgtable, ...@@ -2179,7 +2179,7 @@ static inline void cifs_sg_set_buf(struct sg_table *sgtable,
} while (buflen); } while (buflen);
} else { } else {
sg_set_page(&sgtable->sgl[sgtable->nents++], sg_set_page(&sgtable->sgl[sgtable->nents++],
virt_to_page(addr), buflen, off); virt_to_page((void *)addr), buflen, off);
} }
} }
......
...@@ -2500,7 +2500,7 @@ static ssize_t smb_extract_kvec_to_rdma(struct iov_iter *iter, ...@@ -2500,7 +2500,7 @@ static ssize_t smb_extract_kvec_to_rdma(struct iov_iter *iter,
if (is_vmalloc_or_module_addr((void *)kaddr)) if (is_vmalloc_or_module_addr((void *)kaddr))
page = vmalloc_to_page((void *)kaddr); page = vmalloc_to_page((void *)kaddr);
else else
page = virt_to_page(kaddr); page = virt_to_page((void *)kaddr);
if (!smb_set_sge(rdma, page, off, seg)) if (!smb_set_sge(rdma, page, off, seg))
return -EIO; return -EIO;
......
...@@ -74,8 +74,16 @@ extern unsigned long memory_end; ...@@ -74,8 +74,16 @@ extern unsigned long memory_end;
#define __va(x) ((void *)((unsigned long) (x))) #define __va(x) ((void *)((unsigned long) (x)))
#define __pa(x) ((unsigned long) (x)) #define __pa(x) ((unsigned long) (x))
#define virt_to_pfn(kaddr) (__pa(kaddr) >> PAGE_SHIFT) static inline unsigned long virt_to_pfn(const void *kaddr)
#define pfn_to_virt(pfn) __va((pfn) << PAGE_SHIFT) {
return __pa(kaddr) >> PAGE_SHIFT;
}
#define virt_to_pfn virt_to_pfn
static inline void *pfn_to_virt(unsigned long pfn)
{
return __va(pfn) << PAGE_SHIFT;
}
#define pfn_to_virt pfn_to_virt
#define virt_to_page(addr) pfn_to_page(virt_to_pfn(addr)) #define virt_to_page(addr) pfn_to_page(virt_to_pfn(addr))
#define page_to_virt(page) pfn_to_virt(page_to_pfn(page)) #define page_to_virt(page) pfn_to_virt(page_to_pfn(page))
......
...@@ -581,11 +581,7 @@ asmlinkage long compat_sys_io_pgetevents_time64(compat_aio_context_t ctx_id, ...@@ -581,11 +581,7 @@ asmlinkage long compat_sys_io_pgetevents_time64(compat_aio_context_t ctx_id,
struct io_event __user *events, struct io_event __user *events,
struct __kernel_timespec __user *timeout, struct __kernel_timespec __user *timeout,
const struct __compat_aio_sigset __user *usig); const struct __compat_aio_sigset __user *usig);
/* fs/cookies.c */
asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t); asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
/* fs/eventpoll.c */
asmlinkage long compat_sys_epoll_pwait(int epfd, asmlinkage long compat_sys_epoll_pwait(int epfd,
struct epoll_event __user *events, struct epoll_event __user *events,
int maxevents, int timeout, int maxevents, int timeout,
...@@ -597,18 +593,12 @@ asmlinkage long compat_sys_epoll_pwait2(int epfd, ...@@ -597,18 +593,12 @@ asmlinkage long compat_sys_epoll_pwait2(int epfd,
const struct __kernel_timespec __user *timeout, const struct __kernel_timespec __user *timeout,
const compat_sigset_t __user *sigmask, const compat_sigset_t __user *sigmask,
compat_size_t sigsetsize); compat_size_t sigsetsize);
/* fs/fcntl.c */
asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd, asmlinkage long compat_sys_fcntl(unsigned int fd, unsigned int cmd,
compat_ulong_t arg); compat_ulong_t arg);
asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd, asmlinkage long compat_sys_fcntl64(unsigned int fd, unsigned int cmd,
compat_ulong_t arg); compat_ulong_t arg);
/* fs/ioctl.c */
asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd, asmlinkage long compat_sys_ioctl(unsigned int fd, unsigned int cmd,
compat_ulong_t arg); compat_ulong_t arg);
/* fs/open.c */
asmlinkage long compat_sys_statfs(const char __user *pathname, asmlinkage long compat_sys_statfs(const char __user *pathname,
struct compat_statfs __user *buf); struct compat_statfs __user *buf);
asmlinkage long compat_sys_statfs64(const char __user *pathname, asmlinkage long compat_sys_statfs64(const char __user *pathname,
...@@ -623,13 +613,9 @@ asmlinkage long compat_sys_ftruncate(unsigned int, compat_ulong_t); ...@@ -623,13 +613,9 @@ asmlinkage long compat_sys_ftruncate(unsigned int, compat_ulong_t);
/* No generic prototype for truncate64, ftruncate64, fallocate */ /* No generic prototype for truncate64, ftruncate64, fallocate */
asmlinkage long compat_sys_openat(int dfd, const char __user *filename, asmlinkage long compat_sys_openat(int dfd, const char __user *filename,
int flags, umode_t mode); int flags, umode_t mode);
/* fs/readdir.c */
asmlinkage long compat_sys_getdents(unsigned int fd, asmlinkage long compat_sys_getdents(unsigned int fd,
struct compat_linux_dirent __user *dirent, struct compat_linux_dirent __user *dirent,
unsigned int count); unsigned int count);
/* fs/read_write.c */
asmlinkage long compat_sys_lseek(unsigned int, compat_off_t, unsigned int); asmlinkage long compat_sys_lseek(unsigned int, compat_off_t, unsigned int);
/* No generic prototype for pread64 and pwrite64 */ /* No generic prototype for pread64 and pwrite64 */
asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd, asmlinkage ssize_t compat_sys_preadv(compat_ulong_t fd,
...@@ -649,14 +635,10 @@ asmlinkage long compat_sys_pwritev64(unsigned long fd, ...@@ -649,14 +635,10 @@ asmlinkage long compat_sys_pwritev64(unsigned long fd,
const struct iovec __user *vec, const struct iovec __user *vec,
unsigned long vlen, loff_t pos); unsigned long vlen, loff_t pos);
#endif #endif
/* fs/sendfile.c */
asmlinkage long compat_sys_sendfile(int out_fd, int in_fd, asmlinkage long compat_sys_sendfile(int out_fd, int in_fd,
compat_off_t __user *offset, compat_size_t count); compat_off_t __user *offset, compat_size_t count);
asmlinkage long compat_sys_sendfile64(int out_fd, int in_fd, asmlinkage long compat_sys_sendfile64(int out_fd, int in_fd,
compat_loff_t __user *offset, compat_size_t count); compat_loff_t __user *offset, compat_size_t count);
/* fs/select.c */
asmlinkage long compat_sys_pselect6_time32(int n, compat_ulong_t __user *inp, asmlinkage long compat_sys_pselect6_time32(int n, compat_ulong_t __user *inp,
compat_ulong_t __user *outp, compat_ulong_t __user *outp,
compat_ulong_t __user *exp, compat_ulong_t __user *exp,
...@@ -677,68 +659,45 @@ asmlinkage long compat_sys_ppoll_time64(struct pollfd __user *ufds, ...@@ -677,68 +659,45 @@ asmlinkage long compat_sys_ppoll_time64(struct pollfd __user *ufds,
struct __kernel_timespec __user *tsp, struct __kernel_timespec __user *tsp,
const compat_sigset_t __user *sigmask, const compat_sigset_t __user *sigmask,
compat_size_t sigsetsize); compat_size_t sigsetsize);
/* fs/signalfd.c */
asmlinkage long compat_sys_signalfd4(int ufd, asmlinkage long compat_sys_signalfd4(int ufd,
const compat_sigset_t __user *sigmask, const compat_sigset_t __user *sigmask,
compat_size_t sigsetsize, int flags); compat_size_t sigsetsize, int flags);
/* fs/stat.c */
asmlinkage long compat_sys_newfstatat(unsigned int dfd, asmlinkage long compat_sys_newfstatat(unsigned int dfd,
const char __user *filename, const char __user *filename,
struct compat_stat __user *statbuf, struct compat_stat __user *statbuf,
int flag); int flag);
asmlinkage long compat_sys_newfstat(unsigned int fd, asmlinkage long compat_sys_newfstat(unsigned int fd,
struct compat_stat __user *statbuf); struct compat_stat __user *statbuf);
/* No generic prototype for sync_file_range and sync_file_range2 */
/* fs/sync.c: No generic prototype for sync_file_range and sync_file_range2 */
/* kernel/exit.c */
asmlinkage long compat_sys_waitid(int, compat_pid_t, asmlinkage long compat_sys_waitid(int, compat_pid_t,
struct compat_siginfo __user *, int, struct compat_siginfo __user *, int,
struct compat_rusage __user *); struct compat_rusage __user *);
/* kernel/futex.c */
asmlinkage long asmlinkage long
compat_sys_set_robust_list(struct compat_robust_list_head __user *head, compat_sys_set_robust_list(struct compat_robust_list_head __user *head,
compat_size_t len); compat_size_t len);
asmlinkage long asmlinkage long
compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr, compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
compat_size_t __user *len_ptr); compat_size_t __user *len_ptr);
/* kernel/itimer.c */
asmlinkage long compat_sys_getitimer(int which, asmlinkage long compat_sys_getitimer(int which,
struct old_itimerval32 __user *it); struct old_itimerval32 __user *it);
asmlinkage long compat_sys_setitimer(int which, asmlinkage long compat_sys_setitimer(int which,
struct old_itimerval32 __user *in, struct old_itimerval32 __user *in,
struct old_itimerval32 __user *out); struct old_itimerval32 __user *out);
/* kernel/kexec.c */
asmlinkage long compat_sys_kexec_load(compat_ulong_t entry, asmlinkage long compat_sys_kexec_load(compat_ulong_t entry,
compat_ulong_t nr_segments, compat_ulong_t nr_segments,
struct compat_kexec_segment __user *, struct compat_kexec_segment __user *,
compat_ulong_t flags); compat_ulong_t flags);
/* kernel/posix-timers.c */
asmlinkage long compat_sys_timer_create(clockid_t which_clock, asmlinkage long compat_sys_timer_create(clockid_t which_clock,
struct compat_sigevent __user *timer_event_spec, struct compat_sigevent __user *timer_event_spec,
timer_t __user *created_timer_id); timer_t __user *created_timer_id);
/* kernel/ptrace.c */
asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid, asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
compat_long_t addr, compat_long_t data); compat_long_t addr, compat_long_t data);
/* kernel/sched/core.c */
asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid, asmlinkage long compat_sys_sched_setaffinity(compat_pid_t pid,
unsigned int len, unsigned int len,
compat_ulong_t __user *user_mask_ptr); compat_ulong_t __user *user_mask_ptr);
asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid, asmlinkage long compat_sys_sched_getaffinity(compat_pid_t pid,
unsigned int len, unsigned int len,
compat_ulong_t __user *user_mask_ptr); compat_ulong_t __user *user_mask_ptr);
/* kernel/signal.c */
asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr, asmlinkage long compat_sys_sigaltstack(const compat_stack_t __user *uss_ptr,
compat_stack_t __user *uoss_ptr); compat_stack_t __user *uoss_ptr);
asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset, asmlinkage long compat_sys_rt_sigsuspend(compat_sigset_t __user *unewset,
...@@ -763,25 +722,17 @@ asmlinkage long compat_sys_rt_sigtimedwait_time64(compat_sigset_t __user *uthese ...@@ -763,25 +722,17 @@ asmlinkage long compat_sys_rt_sigtimedwait_time64(compat_sigset_t __user *uthese
asmlinkage long compat_sys_rt_sigqueueinfo(compat_pid_t pid, int sig, asmlinkage long compat_sys_rt_sigqueueinfo(compat_pid_t pid, int sig,
struct compat_siginfo __user *uinfo); struct compat_siginfo __user *uinfo);
/* No generic prototype for rt_sigreturn */ /* No generic prototype for rt_sigreturn */
/* kernel/sys.c */
asmlinkage long compat_sys_times(struct compat_tms __user *tbuf); asmlinkage long compat_sys_times(struct compat_tms __user *tbuf);
asmlinkage long compat_sys_getrlimit(unsigned int resource, asmlinkage long compat_sys_getrlimit(unsigned int resource,
struct compat_rlimit __user *rlim); struct compat_rlimit __user *rlim);
asmlinkage long compat_sys_setrlimit(unsigned int resource, asmlinkage long compat_sys_setrlimit(unsigned int resource,
struct compat_rlimit __user *rlim); struct compat_rlimit __user *rlim);
asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru); asmlinkage long compat_sys_getrusage(int who, struct compat_rusage __user *ru);
/* kernel/time.c */
asmlinkage long compat_sys_gettimeofday(struct old_timeval32 __user *tv, asmlinkage long compat_sys_gettimeofday(struct old_timeval32 __user *tv,
struct timezone __user *tz); struct timezone __user *tz);
asmlinkage long compat_sys_settimeofday(struct old_timeval32 __user *tv, asmlinkage long compat_sys_settimeofday(struct old_timeval32 __user *tv,
struct timezone __user *tz); struct timezone __user *tz);
/* kernel/timer.c */
asmlinkage long compat_sys_sysinfo(struct compat_sysinfo __user *info); asmlinkage long compat_sys_sysinfo(struct compat_sysinfo __user *info);
/* ipc/mqueue.c */
asmlinkage long compat_sys_mq_open(const char __user *u_name, asmlinkage long compat_sys_mq_open(const char __user *u_name,
int oflag, compat_mode_t mode, int oflag, compat_mode_t mode,
struct compat_mq_attr __user *u_attr); struct compat_mq_attr __user *u_attr);
...@@ -790,22 +741,14 @@ asmlinkage long compat_sys_mq_notify(mqd_t mqdes, ...@@ -790,22 +741,14 @@ asmlinkage long compat_sys_mq_notify(mqd_t mqdes,
asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes, asmlinkage long compat_sys_mq_getsetattr(mqd_t mqdes,
const struct compat_mq_attr __user *u_mqstat, const struct compat_mq_attr __user *u_mqstat,
struct compat_mq_attr __user *u_omqstat); struct compat_mq_attr __user *u_omqstat);
/* ipc/msg.c */
asmlinkage long compat_sys_msgctl(int first, int second, void __user *uptr); asmlinkage long compat_sys_msgctl(int first, int second, void __user *uptr);
asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp, asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp,
compat_ssize_t msgsz, compat_long_t msgtyp, int msgflg); compat_ssize_t msgsz, compat_long_t msgtyp, int msgflg);
asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp, asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
compat_ssize_t msgsz, int msgflg); compat_ssize_t msgsz, int msgflg);
/* ipc/sem.c */
asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg); asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
/* ipc/shm.c */
asmlinkage long compat_sys_shmctl(int first, int second, void __user *uptr); asmlinkage long compat_sys_shmctl(int first, int second, void __user *uptr);
asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg); asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
/* net/socket.c */
asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, compat_size_t len, asmlinkage long compat_sys_recvfrom(int fd, void __user *buf, compat_size_t len,
unsigned flags, struct sockaddr __user *addr, unsigned flags, struct sockaddr __user *addr,
int __user *addrlen); int __user *addrlen);
...@@ -813,20 +756,13 @@ asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg, ...@@ -813,20 +756,13 @@ asmlinkage long compat_sys_sendmsg(int fd, struct compat_msghdr __user *msg,
unsigned flags); unsigned flags);
asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg, asmlinkage long compat_sys_recvmsg(int fd, struct compat_msghdr __user *msg,
unsigned int flags); unsigned int flags);
/* No generic prototype for readahead */
/* mm/filemap.c: No generic prototype for readahead */
/* security/keys/keyctl.c */
asmlinkage long compat_sys_keyctl(u32 option, asmlinkage long compat_sys_keyctl(u32 option,
u32 arg2, u32 arg3, u32 arg4, u32 arg5); u32 arg2, u32 arg3, u32 arg4, u32 arg5);
/* arch/example/kernel/sys_example.c */
asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv, asmlinkage long compat_sys_execve(const char __user *filename, const compat_uptr_t __user *argv,
const compat_uptr_t __user *envp); const compat_uptr_t __user *envp);
/* No generic prototype for fadvise64_64 */
/* mm/fadvise.c: No generic prototype for fadvise64_64 */ /* CONFIG_MMU only */
/* mm/, CONFIG_MMU only */
asmlinkage long compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid, asmlinkage long compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid,
compat_pid_t pid, int sig, compat_pid_t pid, int sig,
struct compat_siginfo __user *uinfo); struct compat_siginfo __user *uinfo);
...@@ -896,18 +832,18 @@ asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32); ...@@ -896,18 +832,18 @@ asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
asmlinkage long compat_sys_recv(int fd, void __user *buf, compat_size_t len, asmlinkage long compat_sys_recv(int fd, void __user *buf, compat_size_t len,
unsigned flags); unsigned flags);
/* obsolete: fs/readdir.c */ /* obsolete */
asmlinkage long compat_sys_old_readdir(unsigned int fd, asmlinkage long compat_sys_old_readdir(unsigned int fd,
struct compat_old_linux_dirent __user *, struct compat_old_linux_dirent __user *,
unsigned int count); unsigned int count);
/* obsolete: fs/select.c */ /* obsolete */
asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg); asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg);
/* obsolete: ipc */ /* obsolete */
asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32); asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
/* obsolete: kernel/signal.c */ /* obsolete */
#ifdef __ARCH_WANT_SYS_SIGPENDING #ifdef __ARCH_WANT_SYS_SIGPENDING
asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set); asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set);
#endif #endif
...@@ -922,7 +858,7 @@ asmlinkage long compat_sys_sigaction(int sig, ...@@ -922,7 +858,7 @@ asmlinkage long compat_sys_sigaction(int sig,
struct compat_old_sigaction __user *oact); struct compat_old_sigaction __user *oact);
#endif #endif
/* obsolete: net/socket.c */ /* obsolete */
asmlinkage long compat_sys_socketcall(int call, u32 __user *args); asmlinkage long compat_sys_socketcall(int call, u32 __user *args);
#ifdef __ARCH_WANT_COMPAT_TRUNCATE64 #ifdef __ARCH_WANT_COMPAT_TRUNCATE64
......
This diff is collapsed.
...@@ -2,6 +2,17 @@ ...@@ -2,6 +2,17 @@
#ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG #ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG
#define _UAPI__ASM_GENERIC_BITS_PER_LONG #define _UAPI__ASM_GENERIC_BITS_PER_LONG
#ifndef __BITS_PER_LONG
/*
* In order to keep safe and avoid regression, only unify uapi
* bitsperlong.h for some archs which are using newer toolchains
* that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__.
* See the following link for more info:
* https://lore.kernel.org/linux-arch/b9624545-2c80-49a1-ac3c-39264a591f7b@app.fastmail.com/
*/
#if defined(__CHAR_BIT__) && defined(__SIZEOF_LONG__)
#define __BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__)
#else
/* /*
* There seems to be no way of detecting this automatically from user * There seems to be no way of detecting this automatically from user
* space, so 64 bit architectures should override this in their * space, so 64 bit architectures should override this in their
...@@ -9,8 +20,8 @@ ...@@ -9,8 +20,8 @@
* both 32 and 64 bit user space must not rely on CONFIG_64BIT * both 32 and 64 bit user space must not rely on CONFIG_64BIT
* to decide it, but rather check a compiler provided macro. * to decide it, but rather check a compiler provided macro.
*/ */
#ifndef __BITS_PER_LONG
#define __BITS_PER_LONG 32 #define __BITS_PER_LONG 32
#endif #endif
#endif
#endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */ #endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */
This diff is collapsed.
...@@ -51,99 +51,35 @@ COND_SYSCALL_COMPAT(io_pgetevents); ...@@ -51,99 +51,35 @@ COND_SYSCALL_COMPAT(io_pgetevents);
COND_SYSCALL(io_uring_setup); COND_SYSCALL(io_uring_setup);
COND_SYSCALL(io_uring_enter); COND_SYSCALL(io_uring_enter);
COND_SYSCALL(io_uring_register); COND_SYSCALL(io_uring_register);
/* fs/xattr.c */
/* fs/dcache.c */
/* fs/cookies.c */
COND_SYSCALL(lookup_dcookie); COND_SYSCALL(lookup_dcookie);
COND_SYSCALL_COMPAT(lookup_dcookie); COND_SYSCALL_COMPAT(lookup_dcookie);
/* fs/eventfd.c */
COND_SYSCALL(eventfd2); COND_SYSCALL(eventfd2);
/* fs/eventfd.c */
COND_SYSCALL(epoll_create1); COND_SYSCALL(epoll_create1);
COND_SYSCALL(epoll_ctl); COND_SYSCALL(epoll_ctl);
COND_SYSCALL(epoll_pwait); COND_SYSCALL(epoll_pwait);
COND_SYSCALL_COMPAT(epoll_pwait); COND_SYSCALL_COMPAT(epoll_pwait);
COND_SYSCALL(epoll_pwait2); COND_SYSCALL(epoll_pwait2);
COND_SYSCALL_COMPAT(epoll_pwait2); COND_SYSCALL_COMPAT(epoll_pwait2);
/* fs/fcntl.c */
/* fs/inotify_user.c */
COND_SYSCALL(inotify_init1); COND_SYSCALL(inotify_init1);
COND_SYSCALL(inotify_add_watch); COND_SYSCALL(inotify_add_watch);
COND_SYSCALL(inotify_rm_watch); COND_SYSCALL(inotify_rm_watch);
/* fs/ioctl.c */
/* fs/ioprio.c */
COND_SYSCALL(ioprio_set); COND_SYSCALL(ioprio_set);
COND_SYSCALL(ioprio_get); COND_SYSCALL(ioprio_get);
/* fs/locks.c */
COND_SYSCALL(flock); COND_SYSCALL(flock);
/* fs/namei.c */
/* fs/namespace.c */
/* fs/nfsctl.c */
/* fs/open.c */
/* fs/pipe.c */
/* fs/quota.c */
COND_SYSCALL(quotactl); COND_SYSCALL(quotactl);
COND_SYSCALL(quotactl_fd); COND_SYSCALL(quotactl_fd);
/* fs/readdir.c */
/* fs/read_write.c */
/* fs/sendfile.c */
/* fs/select.c */
/* fs/signalfd.c */
COND_SYSCALL(signalfd4); COND_SYSCALL(signalfd4);
COND_SYSCALL_COMPAT(signalfd4); COND_SYSCALL_COMPAT(signalfd4);
/* fs/splice.c */
/* fs/stat.c */
/* fs/sync.c */
/* fs/timerfd.c */
COND_SYSCALL(timerfd_create); COND_SYSCALL(timerfd_create);
COND_SYSCALL(timerfd_settime); COND_SYSCALL(timerfd_settime);
COND_SYSCALL(timerfd_settime32); COND_SYSCALL(timerfd_settime32);
COND_SYSCALL(timerfd_gettime); COND_SYSCALL(timerfd_gettime);
COND_SYSCALL(timerfd_gettime32); COND_SYSCALL(timerfd_gettime32);
/* fs/utimes.c */
/* kernel/acct.c */
COND_SYSCALL(acct); COND_SYSCALL(acct);
/* kernel/capability.c */
COND_SYSCALL(capget); COND_SYSCALL(capget);
COND_SYSCALL(capset); COND_SYSCALL(capset);
/* kernel/exec_domain.c */
/* kernel/exit.c */
/* kernel/fork.c */
/* __ARCH_WANT_SYS_CLONE3 */ /* __ARCH_WANT_SYS_CLONE3 */
COND_SYSCALL(clone3); COND_SYSCALL(clone3);
/* kernel/futex/syscalls.c */
COND_SYSCALL(futex); COND_SYSCALL(futex);
COND_SYSCALL(futex_time32); COND_SYSCALL(futex_time32);
COND_SYSCALL(set_robust_list); COND_SYSCALL(set_robust_list);
...@@ -151,29 +87,11 @@ COND_SYSCALL_COMPAT(set_robust_list); ...@@ -151,29 +87,11 @@ COND_SYSCALL_COMPAT(set_robust_list);
COND_SYSCALL(get_robust_list); COND_SYSCALL(get_robust_list);
COND_SYSCALL_COMPAT(get_robust_list); COND_SYSCALL_COMPAT(get_robust_list);
COND_SYSCALL(futex_waitv); COND_SYSCALL(futex_waitv);
/* kernel/hrtimer.c */
/* kernel/itimer.c */
/* kernel/kexec.c */
COND_SYSCALL(kexec_load); COND_SYSCALL(kexec_load);
COND_SYSCALL_COMPAT(kexec_load); COND_SYSCALL_COMPAT(kexec_load);
/* kernel/module.c */
COND_SYSCALL(init_module); COND_SYSCALL(init_module);
COND_SYSCALL(delete_module); COND_SYSCALL(delete_module);
/* kernel/posix-timers.c */
/* kernel/printk.c */
COND_SYSCALL(syslog); COND_SYSCALL(syslog);
/* kernel/ptrace.c */
/* kernel/sched/core.c */
/* kernel/sys.c */
COND_SYSCALL(setregid); COND_SYSCALL(setregid);
COND_SYSCALL(setgid); COND_SYSCALL(setgid);
COND_SYSCALL(setreuid); COND_SYSCALL(setreuid);
...@@ -186,12 +104,6 @@ COND_SYSCALL(setfsuid); ...@@ -186,12 +104,6 @@ COND_SYSCALL(setfsuid);
COND_SYSCALL(setfsgid); COND_SYSCALL(setfsgid);
COND_SYSCALL(setgroups); COND_SYSCALL(setgroups);
COND_SYSCALL(getgroups); COND_SYSCALL(getgroups);
/* kernel/time.c */
/* kernel/timer.c */
/* ipc/mqueue.c */
COND_SYSCALL(mq_open); COND_SYSCALL(mq_open);
COND_SYSCALL_COMPAT(mq_open); COND_SYSCALL_COMPAT(mq_open);
COND_SYSCALL(mq_unlink); COND_SYSCALL(mq_unlink);
...@@ -203,8 +115,6 @@ COND_SYSCALL(mq_notify); ...@@ -203,8 +115,6 @@ COND_SYSCALL(mq_notify);
COND_SYSCALL_COMPAT(mq_notify); COND_SYSCALL_COMPAT(mq_notify);
COND_SYSCALL(mq_getsetattr); COND_SYSCALL(mq_getsetattr);
COND_SYSCALL_COMPAT(mq_getsetattr); COND_SYSCALL_COMPAT(mq_getsetattr);
/* ipc/msg.c */
COND_SYSCALL(msgget); COND_SYSCALL(msgget);
COND_SYSCALL(old_msgctl); COND_SYSCALL(old_msgctl);
COND_SYSCALL(msgctl); COND_SYSCALL(msgctl);
...@@ -214,8 +124,6 @@ COND_SYSCALL(msgrcv); ...@@ -214,8 +124,6 @@ COND_SYSCALL(msgrcv);
COND_SYSCALL_COMPAT(msgrcv); COND_SYSCALL_COMPAT(msgrcv);
COND_SYSCALL(msgsnd); COND_SYSCALL(msgsnd);
COND_SYSCALL_COMPAT(msgsnd); COND_SYSCALL_COMPAT(msgsnd);
/* ipc/sem.c */
COND_SYSCALL(semget); COND_SYSCALL(semget);
COND_SYSCALL(old_semctl); COND_SYSCALL(old_semctl);
COND_SYSCALL(semctl); COND_SYSCALL(semctl);
...@@ -224,8 +132,6 @@ COND_SYSCALL_COMPAT(old_semctl); ...@@ -224,8 +132,6 @@ COND_SYSCALL_COMPAT(old_semctl);
COND_SYSCALL(semtimedop); COND_SYSCALL(semtimedop);
COND_SYSCALL(semtimedop_time32); COND_SYSCALL(semtimedop_time32);
COND_SYSCALL(semop); COND_SYSCALL(semop);
/* ipc/shm.c */
COND_SYSCALL(shmget); COND_SYSCALL(shmget);
COND_SYSCALL(old_shmctl); COND_SYSCALL(old_shmctl);
COND_SYSCALL(shmctl); COND_SYSCALL(shmctl);
...@@ -234,8 +140,6 @@ COND_SYSCALL_COMPAT(old_shmctl); ...@@ -234,8 +140,6 @@ COND_SYSCALL_COMPAT(old_shmctl);
COND_SYSCALL(shmat); COND_SYSCALL(shmat);
COND_SYSCALL_COMPAT(shmat); COND_SYSCALL_COMPAT(shmat);
COND_SYSCALL(shmdt); COND_SYSCALL(shmdt);
/* net/socket.c */
COND_SYSCALL(socket); COND_SYSCALL(socket);
COND_SYSCALL(socketpair); COND_SYSCALL(socketpair);
COND_SYSCALL(bind); COND_SYSCALL(bind);
...@@ -256,30 +160,18 @@ COND_SYSCALL(sendmsg); ...@@ -256,30 +160,18 @@ COND_SYSCALL(sendmsg);
COND_SYSCALL_COMPAT(sendmsg); COND_SYSCALL_COMPAT(sendmsg);
COND_SYSCALL(recvmsg); COND_SYSCALL(recvmsg);
COND_SYSCALL_COMPAT(recvmsg); COND_SYSCALL_COMPAT(recvmsg);
/* mm/filemap.c */
/* mm/nommu.c, also with MMU */
COND_SYSCALL(mremap); COND_SYSCALL(mremap);
/* security/keys/keyctl.c */
COND_SYSCALL(add_key); COND_SYSCALL(add_key);
COND_SYSCALL(request_key); COND_SYSCALL(request_key);
COND_SYSCALL(keyctl); COND_SYSCALL(keyctl);
COND_SYSCALL_COMPAT(keyctl); COND_SYSCALL_COMPAT(keyctl);
/* security/landlock/syscalls.c */
COND_SYSCALL(landlock_create_ruleset); COND_SYSCALL(landlock_create_ruleset);
COND_SYSCALL(landlock_add_rule); COND_SYSCALL(landlock_add_rule);
COND_SYSCALL(landlock_restrict_self); COND_SYSCALL(landlock_restrict_self);
/* arch/example/kernel/sys_example.c */
/* mm/fadvise.c */
COND_SYSCALL(fadvise64_64); COND_SYSCALL(fadvise64_64);
COND_SYSCALL_COMPAT(fadvise64_64); COND_SYSCALL_COMPAT(fadvise64_64);
/* mm/, CONFIG_MMU only */ /* CONFIG_MMU only */
COND_SYSCALL(swapon); COND_SYSCALL(swapon);
COND_SYSCALL(swapoff); COND_SYSCALL(swapoff);
COND_SYSCALL(mprotect); COND_SYSCALL(mprotect);
......
...@@ -1237,7 +1237,7 @@ static ssize_t extract_kvec_to_sg(struct iov_iter *iter, ...@@ -1237,7 +1237,7 @@ static ssize_t extract_kvec_to_sg(struct iov_iter *iter,
if (is_vmalloc_or_module_addr((void *)kaddr)) if (is_vmalloc_or_module_addr((void *)kaddr))
page = vmalloc_to_page((void *)kaddr); page = vmalloc_to_page((void *)kaddr);
else else
page = virt_to_page(kaddr); page = virt_to_page((void *)kaddr);
sg_set_page(sg, page, len, off); sg_set_page(sg, page, len, off);
sgtable->nents++; sgtable->nents++;
......
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (C) 2012 ARM Ltd.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __ASM_BITSPERLONG_H
#define __ASM_BITSPERLONG_H
#define __BITS_PER_LONG 64
#include <asm-generic/bitsperlong.h>
#endif /* __ASM_BITSPERLONG_H */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
/*
* Copyright (c) 2010-2011, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
* 02110-1301, USA.
*/
#ifndef __ASM_HEXAGON_BITSPERLONG_H
#define __ASM_HEXAGON_BITSPERLONG_H
#define __BITS_PER_LONG 32
#include <asm-generic/bitsperlong.h>
#endif
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef __ASM_LOONGARCH_BITSPERLONG_H
#define __ASM_LOONGARCH_BITSPERLONG_H
#define __BITS_PER_LONG (__SIZEOF_LONG__ * 8)
#include <asm-generic/bitsperlong.h>
#endif /* __ASM_LOONGARCH_BITSPERLONG_H */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#include <asm-generic/bitsperlong.h>
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (C) 2012 ARM Ltd.
* Copyright (C) 2015 Regents of the University of California
*/
#ifndef _UAPI_ASM_RISCV_BITSPERLONG_H
#define _UAPI_ASM_RISCV_BITSPERLONG_H
#define __BITS_PER_LONG (__SIZEOF_POINTER__ * 8)
#include <asm-generic/bitsperlong.h>
#endif /* _UAPI_ASM_RISCV_BITSPERLONG_H */
/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG #ifndef _UAPI__ASM_GENERIC_BITS_PER_LONG
#define _UAPI__ASM_GENERIC_BITS_PER_LONG #define _UAPI__ASM_GENERIC_BITS_PER_LONG
#ifndef __BITS_PER_LONG
/*
* In order to keep safe and avoid regression, only unify uapi
* bitsperlong.h for some archs which are using newer toolchains
* that have the definitions of __CHAR_BIT__ and __SIZEOF_LONG__.
* See the following link for more info:
* https://lore.kernel.org/linux-arch/b9624545-2c80-49a1-ac3c-39264a591f7b@app.fastmail.com/
*/
#if defined(__CHAR_BIT__) && defined(__SIZEOF_LONG__)
#define __BITS_PER_LONG (__CHAR_BIT__ * __SIZEOF_LONG__)
#else
/* /*
* There seems to be no way of detecting this automatically from user * There seems to be no way of detecting this automatically from user
* space, so 64 bit architectures should override this in their * space, so 64 bit architectures should override this in their
...@@ -8,8 +20,8 @@ ...@@ -8,8 +20,8 @@
* both 32 and 64 bit user space must not rely on CONFIG_64BIT * both 32 and 64 bit user space must not rely on CONFIG_64BIT
* to decide it, but rather check a compiler provided macro. * to decide it, but rather check a compiler provided macro.
*/ */
#ifndef __BITS_PER_LONG
#define __BITS_PER_LONG 32 #define __BITS_PER_LONG 32
#endif #endif
#endif
#endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */ #endif /* _UAPI__ASM_GENERIC_BITS_PER_LONG */
This diff is collapsed.
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
#if defined(__i386__) || defined(__x86_64__) #if defined(__i386__) || defined(__x86_64__)
#include "../../../arch/x86/include/uapi/asm/bitsperlong.h" #include "../../../arch/x86/include/uapi/asm/bitsperlong.h"
#elif defined(__aarch64__)
#include "../../../arch/arm64/include/uapi/asm/bitsperlong.h"
#elif defined(__powerpc__) #elif defined(__powerpc__)
#include "../../../arch/powerpc/include/uapi/asm/bitsperlong.h" #include "../../../arch/powerpc/include/uapi/asm/bitsperlong.h"
#elif defined(__s390__) #elif defined(__s390__)
...@@ -13,12 +11,8 @@ ...@@ -13,12 +11,8 @@
#include "../../../arch/mips/include/uapi/asm/bitsperlong.h" #include "../../../arch/mips/include/uapi/asm/bitsperlong.h"
#elif defined(__ia64__) #elif defined(__ia64__)
#include "../../../arch/ia64/include/uapi/asm/bitsperlong.h" #include "../../../arch/ia64/include/uapi/asm/bitsperlong.h"
#elif defined(__riscv)
#include "../../../arch/riscv/include/uapi/asm/bitsperlong.h"
#elif defined(__alpha__) #elif defined(__alpha__)
#include "../../../arch/alpha/include/uapi/asm/bitsperlong.h" #include "../../../arch/alpha/include/uapi/asm/bitsperlong.h"
#elif defined(__loongarch__)
#include "../../../arch/loongarch/include/uapi/asm/bitsperlong.h"
#else #else
#include <asm-generic/bitsperlong.h> #include <asm-generic/bitsperlong.h>
#endif #endif
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment