# requires: arch=amd64

arch_prctl$ARCH_SHSTK_DISABLE(0x5002, 0x1)
arch_prctl$ARCH_SHSTK_ENABLE(0x5001, 0x1)
arch_prctl$ARCH_SHSTK_UNLOCK(0x5004, 0x1)

r0 = syz_clone(0x11, 0x0, 0x0, 0x0, 0x0, 0x0)

arch_prctl$ARCH_SHSTK_ENABLE(0x5001, 0x2)
arch_prctl$ARCH_SHSTK_DISABLE(0x5002, 0x2)
arch_prctl$ARCH_SHSTK_ENABLE(0x5001, 0x2)

ptrace(0x10, r0)

ptrace$ARCH_SHSTK_DISABLE(0x1e, r0, 0x1, 0x5002)
ptrace$ARCH_SHSTK_ENABLE(0x1e, r0, 0x1, 0x5001)
ptrace$ARCH_SHSTK_UNLOCK(0x1e, r0, 0x1, 0x5004)

ptrace$getregset(0x4204, r0, 0x204, &AUTO={&AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x8})
ptrace$setregset(0x4205, r0, 0x204, &AUTO={&AUTO='LLLLLLLLLLLLLLLLLLLLLLLLLLLL', 0x8})

ptrace(0x11, r0)

mmap(&(0x7f0000000000/0x200000)=nil, 0x200000, 0x3, 0x22, 0, 0x0)
map_shadow_stack(&(0x7f0000000000/0x200000)=nil, 0x200000, 0x1)

arch_prctl$ARCH_SHSTK_DISABLE(0x5002, 0x1)
