Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c10302ef authored by Martin Schwidefsky's avatar Martin Schwidefsky
Browse files

s390/bpf,jit: BPF Just In Time compiler for s390



The s390 implementation of the JIT compiler for packet filter speedup.

Reviewed-by: default avatarHeiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
parent 6f0f9b6b
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -5,3 +5,4 @@ obj-$(CONFIG_CRYPTO_HW) += crypto/
obj-$(CONFIG_S390_HYPFS_FS)	+= hypfs/
obj-$(CONFIG_S390_HYPFS_FS)	+= hypfs/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-$(CONFIG_APPLDATA_BASE)	+= appldata/
obj-$(CONFIG_MATHEMU)		+= math-emu/
obj-$(CONFIG_MATHEMU)		+= math-emu/
obj-y				+= net/
+1 −0
Original line number Original line Diff line number Diff line
@@ -84,6 +84,7 @@ config S390
	select HAVE_KERNEL_XZ
	select HAVE_KERNEL_XZ
	select HAVE_ARCH_MUTEX_CPU_RELAX
	select HAVE_ARCH_MUTEX_CPU_RELAX
	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
	select HAVE_BPF_JIT if 64BIT && PACK_STACK
	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
	select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE
	select HAVE_MEMBLOCK
	select HAVE_MEMBLOCK
+1 −0
Original line number Original line Diff line number Diff line
@@ -140,6 +140,7 @@ extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
extern unsigned long thread_saved_pc(struct task_struct *t);
extern unsigned long thread_saved_pc(struct task_struct *t);


extern void show_code(struct pt_regs *regs);
extern void show_code(struct pt_regs *regs);
extern void print_fn_code(unsigned char *code, unsigned long len);


unsigned long get_wchan(struct task_struct *p);
unsigned long get_wchan(struct task_struct *p);
#define task_pt_regs(tsk) ((struct pt_regs *) \
#define task_pt_regs(tsk) ((struct pt_regs *) \
+23 −0
Original line number Original line Diff line number Diff line
@@ -1601,3 +1601,26 @@ void show_code(struct pt_regs *regs)
	}
	}
	printk("\n");
	printk("\n");
}
}

void print_fn_code(unsigned char *code, unsigned long len)
{
	char buffer[64], *ptr;
	int opsize, i;

	while (len) {
		ptr = buffer;
		opsize = insn_length(*code);
		ptr += sprintf(ptr, "%p: ", code);
		for (i = 0; i < opsize; i++)
			ptr += sprintf(ptr, "%02x", code[i]);
		*ptr++ = '\t';
		if (i < 4)
			*ptr++ = '\t';
		ptr += print_insn(ptr, code, (unsigned long) code);
		*ptr++ = '\n';
		*ptr++ = 0;
		printk(buffer);
		code += opsize;
		len -= opsize;
	}
}

arch/s390/net/Makefile

0 → 100644
+4 −0
Original line number Original line Diff line number Diff line
#
# Arch-specific network modules
#
obj-$(CONFIG_BPF_JIT) += bpf_jit.o bpf_jit_comp.o
Loading