Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: net: fix arm instruction endian-ness in bpf_jit_32.c

Use <asm/opcodes.h> to correctly transform instruction byte ordering
into in-memory ordering.

Signed-off-by: Ben Dooks <ben.dooks@codethink.co.uk>
Reviewed-by: Dave Martin <Dave.Martin@arm.com>

Ben Dooks 3460743e bfdef3b3

+5 -1
+5 -1
arch/arm/net/bpf_jit_32.c
··· 19 19 #include <linux/if_vlan.h> 20 20 #include <asm/cacheflush.h> 21 21 #include <asm/hwcap.h> 22 + #include <asm/opcodes.h> 22 23 23 24 #include "bpf_jit_32.h" 24 25 ··· 114 113 115 114 static inline void _emit(int cond, u32 inst, struct jit_ctx *ctx) 116 115 { 116 + inst |= (cond << 28); 117 + inst = __opcode_to_mem_arm(inst); 118 + 117 119 if (ctx->target != NULL) 118 - ctx->target[ctx->idx] = inst | (cond << 28); 120 + ctx->target[ctx->idx] = inst; 119 121 120 122 ctx->idx++; 121 123 }