Am 06.07.2017 um 07:48 schrieb kbuild test robot:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/rw/uml.git linux-next
> head:   1bcbfbfdeb0091036db7a32e1cd31b49cce5983a
> commit: f44f1e7da7c8e3f4575d5d61c4df978496903fcc [7/9] um: Avoid 
> longjmp/setjmp symbol clashes with libpthread.a
> config: um-x86_64_defconfig (attached as .config)
> compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
> reproduce:
>         git checkout f44f1e7da7c8e3f4575d5d61c4df978496903fcc
>         # save the attached .config to linux build tree
>         make ARCH=um SUBARCH=x86_64
> 
> All warnings (new ones prefixed by >>):
> 
>    arch/um/os-Linux/skas/process.c: In function 'start_idle_thread':
>>> arch/um/os-Linux/skas/process.c:579:1: warning: control reaches end of 
>>> non-void function [-Wreturn-type]
>     }
>     ^
> 
> vim +579 arch/um/os-Linux/skas/process.c
> 
> abaf6977 Gennady Sharapov 2006-01-18  563     case INIT_JMP_CALLBACK:
> abaf6977 Gennady Sharapov 2006-01-18  564             (*cb_proc)(cb_arg);
> 77f6af77 Jeff Dike        2007-05-06  565             longjmp(*cb_back, 1);
> abaf6977 Gennady Sharapov 2006-01-18  566             break;
> abaf6977 Gennady Sharapov 2006-01-18  567     case INIT_JMP_HALT:
> abaf6977 Gennady Sharapov 2006-01-18  568             kmalloc_ok = 0;
> ba180fd4 Jeff Dike        2007-10-16  569             return 0;
> abaf6977 Gennady Sharapov 2006-01-18  570     case INIT_JMP_REBOOT:
> abaf6977 Gennady Sharapov 2006-01-18  571             kmalloc_ok = 0;
> ba180fd4 Jeff Dike        2007-10-16  572             return 1;
> abaf6977 Gennady Sharapov 2006-01-18  573     default:
> 3e6f2ac4 Jeff Dike        2008-02-04  574             printk(UM_KERN_ERR "Bad 
> sigsetjmp return in "
> 3e6f2ac4 Jeff Dike        2008-02-04  575                    
> "start_idle_thread - %d\n", n);
> 3e6f2ac4 Jeff Dike        2008-02-04  576             fatal_sigsegv();
> abaf6977 Gennady Sharapov 2006-01-18  577     }
> 77f6af77 Jeff Dike        2007-05-06  578     longjmp(*switch_buf, 1);
> abaf6977 Gennady Sharapov 2006-01-18 @579  }
> abaf6977 Gennady Sharapov 2006-01-18  580  
> abaf6977 Gennady Sharapov 2006-01-18  581  void initial_thread_cb_skas(void 
> (*proc)(void *), void *arg)
> abaf6977 Gennady Sharapov 2006-01-18  582  {
> ad28e029 Jeff Dike        2006-04-18  583     jmp_buf here;
> abaf6977 Gennady Sharapov 2006-01-18  584  
> abaf6977 Gennady Sharapov 2006-01-18  585     cb_proc = proc;
> abaf6977 Gennady Sharapov 2006-01-18  586     cb_arg = arg;
> abaf6977 Gennady Sharapov 2006-01-18  587     cb_back = &here;

I suggest this as fix:
diff --git a/arch/um/os-Linux/skas/process.c b/arch/um/os-Linux/skas/process.c
index 03b3c4cc7735..6869df60a722 100644
--- a/arch/um/os-Linux/skas/process.c
+++ b/arch/um/os-Linux/skas/process.c
@@ -576,6 +576,9 @@ int start_idle_thread(void *stack, jmp_buf *switch_buf)
                fatal_sigsegv();
        }
        longjmp(*switch_buf, 1);
+
+       /* Unreachable */
+       return 0;
 }

Unless I miss something the idle thread never exits here.

Thanks,
//richard

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to