mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-02-15 06:13:05 -05:00
s390/vdso: Rename vdso64 to vdso
Since compat is gone there is only a 64 bit vdso left. Remove the superfluous "64" suffix everywhere. Reviewed-by: Jens Remus <jremus@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
This commit is contained in:
@@ -151,9 +151,9 @@ ifeq ($(KBUILD_EXTMOD),)
|
||||
# this hack.
|
||||
prepare: vdso_prepare
|
||||
vdso_prepare: prepare0
|
||||
$(Q)$(MAKE) $(build)=arch/s390/kernel/vdso64 include/generated/vdso64-offsets.h
|
||||
$(Q)$(MAKE) $(build)=arch/s390/kernel/vdso include/generated/vdso-offsets.h
|
||||
|
||||
vdso-install-y += arch/s390/kernel/vdso64/vdso64.so.dbg
|
||||
vdso-install-y += arch/s390/kernel/vdso/vdso.so.dbg
|
||||
|
||||
endif
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
#ifndef __S390_VDSO_SYMBOLS_H__
|
||||
#define __S390_VDSO_SYMBOLS_H__
|
||||
|
||||
#include <generated/vdso64-offsets.h>
|
||||
#include <generated/vdso-offsets.h>
|
||||
|
||||
#define VDSO64_SYMBOL(tsk, name) ((tsk)->mm->context.vdso_base + (vdso64_offset_##name))
|
||||
#define VDSO_SYMBOL(tsk, name) ((tsk)->mm->context.vdso_base + (vdso_offset_##name))
|
||||
|
||||
#endif /* __S390_VDSO_SYMBOLS_H__ */
|
||||
|
||||
@@ -81,4 +81,4 @@ obj-$(CONFIG_PERF_EVENTS) += perf_pai.o
|
||||
obj-$(CONFIG_TRACEPOINTS) += trace.o
|
||||
|
||||
# vdso
|
||||
obj-y += vdso64/
|
||||
obj-y += vdso/
|
||||
|
||||
@@ -326,7 +326,7 @@ static int setup_frame(int sig, struct k_sigaction *ka,
|
||||
if (ka->sa.sa_flags & SA_RESTORER)
|
||||
restorer = (unsigned long) ka->sa.sa_restorer;
|
||||
else
|
||||
restorer = VDSO64_SYMBOL(current, sigreturn);
|
||||
restorer = VDSO_SYMBOL(current, sigreturn);
|
||||
|
||||
/* Set up registers for signal handler */
|
||||
regs->gprs[14] = restorer;
|
||||
@@ -378,7 +378,7 @@ static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
|
||||
if (ksig->ka.sa.sa_flags & SA_RESTORER)
|
||||
restorer = (unsigned long) ksig->ka.sa.sa_restorer;
|
||||
else
|
||||
restorer = VDSO64_SYMBOL(current, rt_sigreturn);
|
||||
restorer = VDSO_SYMBOL(current, rt_sigreturn);
|
||||
|
||||
/* Create siginfo on the signal stack */
|
||||
if (copy_siginfo_to_user(&frame->info, &ksig->info))
|
||||
@@ -490,7 +490,7 @@ void arch_do_signal_or_restart(struct pt_regs *regs)
|
||||
/* Restart with sys_restart_syscall */
|
||||
regs->gprs[2] = regs->orig_gpr2;
|
||||
current->restart_block.arch_data = regs->psw.addr;
|
||||
regs->psw.addr = VDSO64_SYMBOL(current, restart_syscall);
|
||||
regs->psw.addr = VDSO_SYMBOL(current, restart_syscall);
|
||||
if (test_thread_flag(TIF_SINGLE_STEP))
|
||||
clear_thread_flag(TIF_PER_TRAP);
|
||||
break;
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
#include <asm/alternative.h>
|
||||
#include <asm/vdso.h>
|
||||
|
||||
extern char vdso64_start[], vdso64_end[];
|
||||
extern char vdso_start[], vdso_end[];
|
||||
|
||||
static int vdso_mremap(const struct vm_special_mapping *sm,
|
||||
struct vm_area_struct *vma)
|
||||
@@ -31,7 +31,7 @@ static int vdso_mremap(const struct vm_special_mapping *sm,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct vm_special_mapping vdso64_mapping = {
|
||||
static struct vm_special_mapping vdso_mapping = {
|
||||
.name = "[vdso]",
|
||||
.mremap = vdso_mremap,
|
||||
};
|
||||
@@ -46,7 +46,6 @@ early_initcall(vdso_getcpu_init); /* Must be called before SMP init */
|
||||
static int map_vdso(unsigned long addr, unsigned long vdso_mapping_len)
|
||||
{
|
||||
unsigned long vvar_start, vdso_text_start, vdso_text_len;
|
||||
struct vm_special_mapping *vdso_mapping;
|
||||
struct mm_struct *mm = current->mm;
|
||||
struct vm_area_struct *vma;
|
||||
int rc;
|
||||
@@ -55,8 +54,7 @@ static int map_vdso(unsigned long addr, unsigned long vdso_mapping_len)
|
||||
if (mmap_write_lock_killable(mm))
|
||||
return -EINTR;
|
||||
|
||||
vdso_text_len = vdso64_end - vdso64_start;
|
||||
vdso_mapping = &vdso64_mapping;
|
||||
vdso_text_len = vdso_end - vdso_start;
|
||||
vvar_start = get_unmapped_area(NULL, addr, vdso_mapping_len, 0, 0);
|
||||
rc = vvar_start;
|
||||
if (IS_ERR_VALUE(vvar_start))
|
||||
@@ -70,7 +68,7 @@ static int map_vdso(unsigned long addr, unsigned long vdso_mapping_len)
|
||||
vma = _install_special_mapping(mm, vdso_text_start, vdso_text_len,
|
||||
VM_READ|VM_EXEC|VM_SEALED_SYSMAP|
|
||||
VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC,
|
||||
vdso_mapping);
|
||||
&vdso_mapping);
|
||||
if (IS_ERR(vma)) {
|
||||
do_munmap(mm, vvar_start, PAGE_SIZE, NULL);
|
||||
rc = PTR_ERR(vma);
|
||||
@@ -110,7 +108,7 @@ static unsigned long vdso_addr(unsigned long start, unsigned long len)
|
||||
|
||||
unsigned long vdso_text_size(void)
|
||||
{
|
||||
return PAGE_ALIGN(vdso64_end - vdso64_start);
|
||||
return PAGE_ALIGN(vdso_end - vdso_start);
|
||||
}
|
||||
|
||||
unsigned long vdso_size(void)
|
||||
@@ -148,7 +146,7 @@ static void vdso_apply_alternatives(void)
|
||||
struct alt_instr *start, *end;
|
||||
const struct elf64_hdr *hdr;
|
||||
|
||||
hdr = (struct elf64_hdr *)vdso64_start;
|
||||
hdr = (struct elf64_hdr *)vdso_start;
|
||||
shdr = (void *)hdr + hdr->e_shoff;
|
||||
alt = find_section(hdr, shdr, ".altinstructions");
|
||||
if (!alt)
|
||||
@@ -161,7 +159,7 @@ static void vdso_apply_alternatives(void)
|
||||
static int __init vdso_init(void)
|
||||
{
|
||||
vdso_apply_alternatives();
|
||||
vdso64_mapping.pages = vdso_setup_pages(vdso64_start, vdso64_end);
|
||||
vdso_mapping.pages = vdso_setup_pages(vdso_start, vdso_end);
|
||||
return 0;
|
||||
}
|
||||
arch_initcall(vdso_init);
|
||||
|
||||
@@ -1,2 +1,2 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
vdso64.lds
|
||||
vdso.lds
|
||||
80
arch/s390/kernel/vdso/Makefile
Normal file
80
arch/s390/kernel/vdso/Makefile
Normal file
@@ -0,0 +1,80 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# List of files in the vdso
|
||||
|
||||
# Include the generic Makefile to check the built vdso.
|
||||
include $(srctree)/lib/vdso/Makefile.include
|
||||
obj-vdso = vdso_user_wrapper.o note.o vgetrandom-chacha.o
|
||||
obj-cvdso = vdso_generic.o getcpu.o vgetrandom.o
|
||||
VDSO_CFLAGS_REMOVE := -pg $(CC_FLAGS_FTRACE) $(CC_FLAGS_EXPOLINE)
|
||||
CFLAGS_REMOVE_getcpu.o = $(VDSO_CFLAGS_REMOVE)
|
||||
CFLAGS_REMOVE_vgetrandom.o = $(VDSO_CFLAGS_REMOVE)
|
||||
CFLAGS_REMOVE_vdso_generic.o = $(VDSO_CFLAGS_REMOVE)
|
||||
|
||||
ifneq ($(c-getrandom-y),)
|
||||
CFLAGS_vgetrandom.o += -include $(c-getrandom-y)
|
||||
endif
|
||||
|
||||
# Build rules
|
||||
|
||||
targets := $(obj-vdso) $(obj-cvdso) vdso.so vdso.so.dbg
|
||||
obj-vdso := $(addprefix $(obj)/, $(obj-vdso))
|
||||
obj-cvdso := $(addprefix $(obj)/, $(obj-cvdso))
|
||||
|
||||
KBUILD_AFLAGS += -DBUILD_VDSO
|
||||
KBUILD_CFLAGS += -DBUILD_VDSO -DDISABLE_BRANCH_PROFILING
|
||||
|
||||
KBUILD_AFLAGS_VDSO := $(filter-out -m64,$(KBUILD_AFLAGS))
|
||||
KBUILD_AFLAGS_VDSO += -m64
|
||||
|
||||
KBUILD_CFLAGS_VDSO := $(filter-out -m64,$(KBUILD_CFLAGS))
|
||||
KBUILD_CFLAGS_VDSO := $(filter-out -mpacked-stack,$(KBUILD_CFLAGS_VDSO))
|
||||
KBUILD_CFLAGS_VDSO := $(filter-out -mno-pic-data-is-text-relative,$(KBUILD_CFLAGS_VDSO))
|
||||
KBUILD_CFLAGS_VDSO := $(filter-out -munaligned-symbols,$(KBUILD_CFLAGS_VDSO))
|
||||
KBUILD_CFLAGS_VDSO := $(filter-out -fno-asynchronous-unwind-tables,$(KBUILD_CFLAGS_VDSO))
|
||||
KBUILD_CFLAGS_VDSO += -m64 -fPIC -fno-common -fno-builtin -fasynchronous-unwind-tables
|
||||
KBUILD_CFLAGS_VDSO += -fno-stack-protector
|
||||
ldflags-y := -shared -soname=linux-vdso.so.1 \
|
||||
--hash-style=both --build-id=sha1 -T
|
||||
|
||||
$(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_VDSO)
|
||||
$(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_VDSO)
|
||||
|
||||
obj-y += vdso_wrapper.o
|
||||
targets += vdso.lds
|
||||
CPPFLAGS_vdso.lds += -P -C -U$(ARCH)
|
||||
|
||||
# Force dependency (incbin is bad)
|
||||
$(obj)/vdso_wrapper.o : $(obj)/vdso.so
|
||||
|
||||
quiet_cmd_vdso_and_check = VDSO $@
|
||||
cmd_vdso_and_check = $(cmd_ld); $(cmd_vdso_check)
|
||||
|
||||
# link rule for the .so file, .lds has to be first
|
||||
$(obj)/vdso.so.dbg: $(obj)/vdso.lds $(obj-vdso) $(obj-cvdso) FORCE
|
||||
$(call if_changed,vdso_and_check)
|
||||
|
||||
# strip rule for the .so file
|
||||
$(obj)/%.so: OBJCOPYFLAGS := -S
|
||||
$(obj)/%.so: $(obj)/%.so.dbg FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
# assembly rules for the .S files
|
||||
$(obj-vdso): %.o: %.S FORCE
|
||||
$(call if_changed_dep,vdsoas)
|
||||
|
||||
$(obj-cvdso): %.o: %.c FORCE
|
||||
$(call if_changed_dep,vdsocc)
|
||||
|
||||
# actual build commands
|
||||
quiet_cmd_vdsoas = VDSOA $@
|
||||
cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $<
|
||||
quiet_cmd_vdsocc = VDSOC $@
|
||||
cmd_vdsocc = $(CC) $(c_flags) -c -o $@ $<
|
||||
|
||||
# Generate VDSO offsets using helper script
|
||||
gen-vdsosym := $(src)/gen_vdso_offsets.sh
|
||||
quiet_cmd_vdsosym = VDSOSYM $@
|
||||
cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
|
||||
|
||||
include/generated/vdso-offsets.h: $(obj)/vdso.so.dbg FORCE
|
||||
$(call if_changed,vdsosym)
|
||||
@@ -12,4 +12,4 @@
|
||||
#
|
||||
|
||||
LC_ALL=C
|
||||
sed -n 's/\([0-9a-f]*\) . __kernel_\(.*\)/\#define vdso64_offset_\2\t0x\1/p'
|
||||
sed -n 's/\([0-9a-f]*\) . __kernel_\(.*\)/\#define vdso_offset_\2\t0x\1/p'
|
||||
@@ -1,6 +1,6 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#ifndef __ARCH_S390_KERNEL_VDSO64_VDSO_H
|
||||
#define __ARCH_S390_KERNEL_VDSO64_VDSO_H
|
||||
#ifndef __ARCH_S390_KERNEL_VDSO_VDSO_H
|
||||
#define __ARCH_S390_KERNEL_VDSO_VDSO_H
|
||||
|
||||
#include <vdso/datapage.h>
|
||||
|
||||
@@ -12,4 +12,4 @@ int __s390_vdso_clock_gettime(clockid_t clock, struct __kernel_timespec *ts);
|
||||
int __s390_vdso_clock_getres(clockid_t clock, struct __kernel_timespec *ts);
|
||||
ssize_t __kernel_getrandom(void *buffer, size_t len, unsigned int flags, void *opaque_state, size_t opaque_len);
|
||||
|
||||
#endif /* __ARCH_S390_KERNEL_VDSO64_VDSO_H */
|
||||
#endif /* __ARCH_S390_KERNEL_VDSO_VDSO_H */
|
||||
@@ -5,11 +5,11 @@
|
||||
|
||||
__PAGE_ALIGNED_DATA
|
||||
|
||||
.globl vdso64_start, vdso64_end
|
||||
.globl vdso_start, vdso_end
|
||||
.balign PAGE_SIZE
|
||||
vdso64_start:
|
||||
.incbin "arch/s390/kernel/vdso64/vdso64.so"
|
||||
vdso_start:
|
||||
.incbin "arch/s390/kernel/vdso/vdso.so"
|
||||
.balign PAGE_SIZE
|
||||
vdso64_end:
|
||||
vdso_end:
|
||||
|
||||
.previous
|
||||
@@ -1,80 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# List of files in the vdso
|
||||
|
||||
# Include the generic Makefile to check the built vdso.
|
||||
include $(srctree)/lib/vdso/Makefile.include
|
||||
obj-vdso64 = vdso_user_wrapper.o note.o vgetrandom-chacha.o
|
||||
obj-cvdso64 = vdso64_generic.o getcpu.o vgetrandom.o
|
||||
VDSO_CFLAGS_REMOVE := -pg $(CC_FLAGS_FTRACE) $(CC_FLAGS_EXPOLINE)
|
||||
CFLAGS_REMOVE_getcpu.o = $(VDSO_CFLAGS_REMOVE)
|
||||
CFLAGS_REMOVE_vgetrandom.o = $(VDSO_CFLAGS_REMOVE)
|
||||
CFLAGS_REMOVE_vdso64_generic.o = $(VDSO_CFLAGS_REMOVE)
|
||||
|
||||
ifneq ($(c-getrandom-y),)
|
||||
CFLAGS_vgetrandom.o += -include $(c-getrandom-y)
|
||||
endif
|
||||
|
||||
# Build rules
|
||||
|
||||
targets := $(obj-vdso64) $(obj-cvdso64) vdso64.so vdso64.so.dbg
|
||||
obj-vdso64 := $(addprefix $(obj)/, $(obj-vdso64))
|
||||
obj-cvdso64 := $(addprefix $(obj)/, $(obj-cvdso64))
|
||||
|
||||
KBUILD_AFLAGS += -DBUILD_VDSO
|
||||
KBUILD_CFLAGS += -DBUILD_VDSO -DDISABLE_BRANCH_PROFILING
|
||||
|
||||
KBUILD_AFLAGS_64 := $(filter-out -m64,$(KBUILD_AFLAGS))
|
||||
KBUILD_AFLAGS_64 += -m64
|
||||
|
||||
KBUILD_CFLAGS_64 := $(filter-out -m64,$(KBUILD_CFLAGS))
|
||||
KBUILD_CFLAGS_64 := $(filter-out -mpacked-stack,$(KBUILD_CFLAGS_64))
|
||||
KBUILD_CFLAGS_64 := $(filter-out -mno-pic-data-is-text-relative,$(KBUILD_CFLAGS_64))
|
||||
KBUILD_CFLAGS_64 := $(filter-out -munaligned-symbols,$(KBUILD_CFLAGS_64))
|
||||
KBUILD_CFLAGS_64 := $(filter-out -fno-asynchronous-unwind-tables,$(KBUILD_CFLAGS_64))
|
||||
KBUILD_CFLAGS_64 += -m64 -fPIC -fno-common -fno-builtin -fasynchronous-unwind-tables
|
||||
KBUILD_CFLAGS_64 += -fno-stack-protector
|
||||
ldflags-y := -shared -soname=linux-vdso64.so.1 \
|
||||
--hash-style=both --build-id=sha1 -T
|
||||
|
||||
$(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_64)
|
||||
$(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_64)
|
||||
|
||||
obj-y += vdso64_wrapper.o
|
||||
targets += vdso64.lds
|
||||
CPPFLAGS_vdso64.lds += -P -C -U$(ARCH)
|
||||
|
||||
# Force dependency (incbin is bad)
|
||||
$(obj)/vdso64_wrapper.o : $(obj)/vdso64.so
|
||||
|
||||
quiet_cmd_vdso_and_check = VDSO $@
|
||||
cmd_vdso_and_check = $(cmd_ld); $(cmd_vdso_check)
|
||||
|
||||
# link rule for the .so file, .lds has to be first
|
||||
$(obj)/vdso64.so.dbg: $(obj)/vdso64.lds $(obj-vdso64) $(obj-cvdso64) FORCE
|
||||
$(call if_changed,vdso_and_check)
|
||||
|
||||
# strip rule for the .so file
|
||||
$(obj)/%.so: OBJCOPYFLAGS := -S
|
||||
$(obj)/%.so: $(obj)/%.so.dbg FORCE
|
||||
$(call if_changed,objcopy)
|
||||
|
||||
# assembly rules for the .S files
|
||||
$(obj-vdso64): %.o: %.S FORCE
|
||||
$(call if_changed_dep,vdso64as)
|
||||
|
||||
$(obj-cvdso64): %.o: %.c FORCE
|
||||
$(call if_changed_dep,vdso64cc)
|
||||
|
||||
# actual build commands
|
||||
quiet_cmd_vdso64as = VDSO64A $@
|
||||
cmd_vdso64as = $(CC) $(a_flags) -c -o $@ $<
|
||||
quiet_cmd_vdso64cc = VDSO64C $@
|
||||
cmd_vdso64cc = $(CC) $(c_flags) -c -o $@ $<
|
||||
|
||||
# Generate VDSO offsets using helper script
|
||||
gen-vdsosym := $(src)/gen_vdso_offsets.sh
|
||||
quiet_cmd_vdsosym = VDSOSYM $@
|
||||
cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@
|
||||
|
||||
include/generated/vdso64-offsets.h: $(obj)/vdso64.so.dbg FORCE
|
||||
$(call if_changed,vdsosym)
|
||||
Reference in New Issue
Block a user