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
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel