On Thu, Apr 1, 2021 at 7:58 AM Stefan Metzmacher <metze@xxxxxxxxx> wrote: > > > > > Ok, the following makes gdb happy again: > > > > --- a/arch/x86/kernel/process.c > > +++ b/arch/x86/kernel/process.c > > @@ -163,6 +163,8 @@ int copy_thread(unsigned long clone_flags, unsigned long sp, unsigned long arg, > > /* Kernel thread ? */ > > if (unlikely(p->flags & (PF_KTHREAD | PF_IO_WORKER))) { > > memset(childregs, 0, sizeof(struct pt_regs)); > > + if (p->flags & PF_IO_WORKER) > > + childregs->cs = current_pt_regs()->cs; > > kthread_frame_init(frame, sp, arg); > > return 0; > > } > > Would it be possible to fix this remaining problem before 5.12 final? Please not that way. But doing something like childregs->cs = __USER_CS; childregs->ss = __USER_DS; childregs->ds = __USER_DS; childregs->es = __USER_DS; might make sense (just do it unconditionally, rather than making it special to PF_IO_WORKER). Does that make gdb happy too? Linus