[PATCH v9 06/13] x86/um: nommu: process/thread handling

Hajime Tazaki thehajime at gmail.com
Thu Jun 19 05:22:38 PDT 2025


Hello,

On Thu, 19 Jun 2025 19:36:04 +0900,
Benjamin Berg wrote:

> > +void arch_switch_to(struct task_struct *to)
> > +{
> > +	/*
> > +	 * In !CONFIG_MMU, it doesn't ptrace thus,
> > +	 * The FS_BASE/GS_BASE registers are saved here.
> > +	 */
> > +	current_top_of_stack = task_top_of_stack(to);
> > +	current_ptregs = (long)task_pt_regs(to);
> > +
> > +	if ((to->thread.regs.regs.gp[FS_BASE / sizeof(unsigned long)] == 0) ||
> > +	    (to->mm == NULL))
> > +		return;
> > +
> > +	/* this changes the FS on every context switch */
> > +	arch_prctl(to, ARCH_SET_FS,
> > +		   (void __user *) to->thread.regs.regs.gp[FS_BASE / sizeof(unsigned long)]);
> 
> Hmm,  the comment mentions FS_BASE/GS_BASE, but here you only handle
> FS_BASE? Is that intentional?

thanks for the comment.

my intention is only specific to fs_base as I saw the register needs
to restore during this switch while with gs_base I didn't.  I can
update it if I see a real issue without it.

The comment needs to be updated (I guess this is copied/pasted from
the original arch_switch_to comment).

-- Hajime



More information about the linux-um mailing list