Commit 86ea07ca authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux

Pull s390 fixes from Martin Schwidefsky:
 "Two bug fixes:

   - fix a crash on pre-z10 hardware due to cache-info

   - fix an issue with classic BPF programs in the eBPF JIT"

* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390/cachinfo: add missing facility check to init_cache_level()
  s390/bpf: clear correct BPF accumulator register
parents d9065f44 0b991f5c
...@@ -138,6 +138,8 @@ int init_cache_level(unsigned int cpu) ...@@ -138,6 +138,8 @@ int init_cache_level(unsigned int cpu)
union cache_topology ct; union cache_topology ct;
enum cache_type ctype; enum cache_type ctype;
if (!test_facility(34))
return -EOPNOTSUPP;
if (!this_cpu_ci) if (!this_cpu_ci)
return -EINVAL; return -EINVAL;
ct.raw = ecag(EXTRACT_TOPOLOGY, 0, 0); ct.raw = ecag(EXTRACT_TOPOLOGY, 0, 0);
......
...@@ -448,13 +448,13 @@ static void bpf_jit_prologue(struct bpf_jit *jit) ...@@ -448,13 +448,13 @@ static void bpf_jit_prologue(struct bpf_jit *jit)
EMIT6_DISP_LH(0xe3000000, 0x0004, REG_SKB_DATA, REG_0, EMIT6_DISP_LH(0xe3000000, 0x0004, REG_SKB_DATA, REG_0,
BPF_REG_1, offsetof(struct sk_buff, data)); BPF_REG_1, offsetof(struct sk_buff, data));
} }
/* BPF compatibility: clear A (%b7) and X (%b8) registers */ /* BPF compatibility: clear A (%b0) and X (%b7) registers */
if (REG_SEEN(BPF_REG_7)) if (REG_SEEN(BPF_REG_A))
/* lghi %b7,0 */ /* lghi %ba,0 */
EMIT4_IMM(0xa7090000, BPF_REG_7, 0); EMIT4_IMM(0xa7090000, BPF_REG_A, 0);
if (REG_SEEN(BPF_REG_8)) if (REG_SEEN(BPF_REG_X))
/* lghi %b8,0 */ /* lghi %bx,0 */
EMIT4_IMM(0xa7090000, BPF_REG_8, 0); EMIT4_IMM(0xa7090000, BPF_REG_X, 0);
} }
/* /*
......
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