Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [daveh-devel:kss 28/32] kernel/sched/core.c:5538:16: error: invalid operand for instruction
@ 2026-10-18 17:51 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-10-18 17:51 UTC (permalink / raw)
  To: Dave Hansen; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/daveh/devel.git kss
head:   1b2e2aefa6c7e3d15fac1b25a971b2d2cc3b697d
commit: 22dda6f23b24026b5b1e1e6f968e73f64da9b848 [28/32] kss-debug-empty-ssp
config: um-allnoconfig (https://download.01.org/0day-ci/archive/20261019/202610190133.k55LhRgM-lkp@intel.com/config)
compiler: clang version 17.0.6 (https://github.com/llvm/llvm-project 6009708b4367171ccdbf4b5905cb6a803753fe18)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261019/202610190133.k55LhRgM-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202610190133.k55LhRgM-lkp@intel.com/

All errors (new ones prefixed by >>):

>> kernel/sched/core.c:5538:16: error: invalid operand for instruction
    5538 |                 asm volatile("rdsspq %0" : "+r" (ssp));
         |                              ^
   <inline asm>:1:9: note: instantiated into assembly here
       1 |         rdsspq %ecx
         |                ^~~~
   1 error generated.


vim +5538 kernel/sched/core.c

  5469	
  5470	/*
  5471	 * context_switch - switch to the new MM and the new thread's register state.
  5472	 */
  5473	static __always_inline struct rq *
  5474	context_switch(struct rq *rq, struct task_struct *prev,
  5475		       struct task_struct *next, struct rq_flags *rf)
  5476		__releases(__rq_lockp(rq))
  5477	{
  5478		prepare_task_switch(rq, prev, next);
  5479	
  5480		/*
  5481		 * For paravirt, this is coupled with an exit in switch_to to
  5482		 * combine the page table reload and the switch backend into
  5483		 * one hypercall.
  5484		 */
  5485		arch_start_context_switch(prev);
  5486	
  5487		/*
  5488		 * kernel -> kernel   lazy + transfer active
  5489		 *   user -> kernel   lazy + mmgrab_lazy_tlb() active
  5490		 *
  5491		 * kernel ->   user   switch + mmdrop_lazy_tlb() active
  5492		 *   user ->   user   switch
  5493		 */
  5494		if (!next->mm) {				// to kernel
  5495			enter_lazy_tlb(prev->active_mm, next);
  5496	
  5497			next->active_mm = prev->active_mm;
  5498			if (prev->mm)				// from user
  5499				mmgrab_lazy_tlb(prev->active_mm);
  5500			else
  5501				prev->active_mm = NULL;
  5502		} else {					// to user
  5503			membarrier_switch_mm(rq, prev->active_mm, next->mm);
  5504			/*
  5505			 * sys_membarrier() requires an smp_mb() between setting
  5506			 * rq->curr / membarrier_switch_mm() and returning to userspace.
  5507			 *
  5508			 * The below provides this either through switch_mm(), or in
  5509			 * case 'prev->active_mm == next->mm' through
  5510			 * finish_task_switch()'s mmdrop().
  5511			 */
  5512			switch_mm_irqs_off(prev->active_mm, next->mm, next);
  5513			lru_gen_use_mm(next->mm);
  5514	
  5515			if (!prev->mm) {			// from kernel
  5516				/* will mmdrop_lazy_tlb() in finish_task_switch(). */
  5517				rq->prev_mm = prev->active_mm;
  5518				prev->active_mm = NULL;
  5519			}
  5520		}
  5521	
  5522		mm_cid_switch_to(prev, next);
  5523	
  5524		/*
  5525		 * Tell rseq that the task was scheduled in. Must be after
  5526		 * switch_mm_cid() to get the TIF flag set.
  5527		 */
  5528		rseq_sched_switch_event(next);
  5529	
  5530		prepare_lock_switch(rq, next, rf);
  5531	
  5532		/* Here we just switch the register state and the stack. */
  5533		switch_to(prev, next, prev);
  5534		barrier();
  5535	
  5536		{
  5537			unsigned long ssp = 0;
> 5538			asm volatile("rdsspq %0" : "+r" (ssp));
  5539			trace_printk("switch: %s ssp=%lx\n", current->comm, ssp);
  5540		}
  5541	
  5542		return finish_task_switch(prev);
  5543	}
  5544	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-10-18 17:51 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-18 17:51 [daveh-devel:kss 28/32] kernel/sched/core.c:5538:16: error: invalid operand for instruction kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox