Hi! This patch series attempts to fix test_progs failure on s390, which Yauheni reported here: https://lore.kernel.org/bpf/20200903140542.156624-1-yauheni.kaliuta@xxxxxxxxxx/ The problem is that zext code includes the instruction, whose result needs to be zero-extended, into the zero-extension patchlet. If this instruction happens to be a call, its delta is not adjusted, and as a result verifier rejects the program later. The code seems to have been written this way, because there is no helper function to insert bpf instructions: currently one can either replace or remove. So insertion seems to have been emulated with replacement. Patches 1-4 teach bpf_patch_insn_data() how to insert (by accepting variable number of old insns, which is normally 1, but can now be 0 too). Patch 5 uses this new capability to resolve the issue. Ilya Leoshkevich (5): bpf: Make bpf_patch_insn_single() accept variable number of old insns bpf: Make adjust_insn_aux_data() accept variable number of old insns bpf: Make adjust_subprog_starts() accept variable number of old insns bpf: Make bpf_patch_insn_data() accept variable number of old insns bpf: Do not include the original insn in zext patchlet include/linux/filter.h | 4 +- kernel/bpf/core.c | 18 ++++---- kernel/bpf/verifier.c | 100 ++++++++++++++++++++++++----------------- 3 files changed, 70 insertions(+), 52 deletions(-) -- 2.25.4