All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Dmitry Safonov <dima@arista.com>, linux-kernel@vger.kernel.org
Cc: kbuild-all@lists.01.org, Dmitry Safonov <0x7f454c46@gmail.com>,
	Alexander Viro <viro@zeniv.linux.org.uk>,
	Andrew Morton <akpm@linux-foundation.org>,
	Linux Memory Management List <linux-mm@kvack.org>,
	Andy Lutomirski <luto@kernel.org>, Arnd Bergmann <arnd@arndb.de>,
	Borislav Petkov <bp@alien8.de>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Christophe Leroy <christophe.leroy@csgroup.eu>
Subject: Re: [PATCH 19/19] mips/vdso: Migrate to user_landing
Date: Fri, 13 Nov 2020 17:58:08 +0800	[thread overview]
Message-ID: <202011131705.1JFCMwwl-lkp@intel.com> (raw)
In-Reply-To: <20201108051730.2042693-20-dima@arista.com>

[-- Attachment #1: Type: text/plain, Size: 6284 bytes --]

Hi Dmitry,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on c34f157421f6905e6b4a79a312e9175dce2bc607]

url:    https://github.com/0day-ci/linux/commits/Dmitry-Safonov/Add-generic-user_landing-tracking/20201109-090354
base:    c34f157421f6905e6b4a79a312e9175dce2bc607
config: mips-randconfig-p002-20201109 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/cf47146993b3d1866163ee1815829d9e76b48807
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Dmitry-Safonov/Add-generic-user_landing-tracking/20201109-090354
        git checkout cf47146993b3d1866163ee1815829d9e76b48807
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   arch/mips/kernel/signal.c:439:5: warning: no previous prototype for 'setup_sigcontext' [-Wmissing-prototypes]
     439 | int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
         |     ^~~~~~~~~~~~~~~~
   arch/mips/kernel/signal.c:516:5: warning: no previous prototype for 'restore_sigcontext' [-Wmissing-prototypes]
     516 | int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
         |     ^~~~~~~~~~~~~~~~~~
   arch/mips/kernel/signal.c:630:17: warning: no previous prototype for 'sys_sigreturn' [-Wmissing-prototypes]
     630 | asmlinkage void sys_sigreturn(void)
         |                 ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:667:17: warning: no previous prototype for 'sys_rt_sigreturn' [-Wmissing-prototypes]
     667 | asmlinkage void sys_rt_sigreturn(void)
         |                 ^~~~~~~~~~~~~~~~
   In file included from include/linux/mmzone.h:21,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from arch/mips/kernel/signal.c:15:
   arch/mips/kernel/signal.c: In function 'handle_signal':
   include/linux/mm_types.h:500:31: error: 'TASK_SIZE_MAX' undeclared (first use in this function); did you mean 'TASK_SIZE_OF'?
     500 | #define UNMAPPED_USER_LANDING TASK_SIZE_MAX
         |                               ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:814:14: note: in expansion of macro 'UNMAPPED_USER_LANDING'
     814 |  if (land == UNMAPPED_USER_LANDING)
         |              ^~~~~~~~~~~~~~~~~~~~~
   include/linux/mm_types.h:500:31: note: each undeclared identifier is reported only once for each function it appears in
     500 | #define UNMAPPED_USER_LANDING TASK_SIZE_MAX
         |                               ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:814:14: note: in expansion of macro 'UNMAPPED_USER_LANDING'
     814 |  if (land == UNMAPPED_USER_LANDING)
         |              ^~~~~~~~~~~~~~~~~~~~~
>> arch/mips/kernel/signal.c:848:34: warning: passing argument 1 of 'abi->setup_rt_frame' makes pointer from integer without a cast [-Wint-conversion]
     848 |   ret = abi->setup_rt_frame(land + abi->vdso->off_rt_sigreturn,
         |                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                  |
         |                                  long unsigned int
   arch/mips/kernel/signal.c:848:34: note: expected 'void *' but argument is of type 'long unsigned int'
>> arch/mips/kernel/signal.c:851:31: warning: passing argument 1 of 'abi->setup_frame' makes pointer from integer without a cast [-Wint-conversion]
     851 |   ret = abi->setup_frame(land + abi->vdso->off_sigreturn,
         |                          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
         |                               |
         |                               long unsigned int
   arch/mips/kernel/signal.c:851:31: note: expected 'void *' but argument is of type 'long unsigned int'
   arch/mips/kernel/signal.c: At top level:
   arch/mips/kernel/signal.c:898:17: warning: no previous prototype for 'do_notify_resume' [-Wmissing-prototypes]
     898 | asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused,
         |                 ^~~~~~~~~~~~~~~~

vim +848 arch/mips/kernel/signal.c

   806	
   807	static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
   808	{
   809		unsigned long land = (unsigned long)current->mm->user_landing;
   810		sigset_t *oldset = sigmask_to_save();
   811		int ret = 1;
   812		struct mips_abi *abi = current->thread.abi;
   813	
   814		if (land == UNMAPPED_USER_LANDING)
   815			goto err;
   816		/*
   817		 * If we were emulating a delay slot instruction, exit that frame such
   818		 * that addresses in the sigframe are as expected for userland and we
   819		 * don't have a problem if we reuse the thread's frame for an
   820		 * instruction within the signal handler.
   821		 */
   822		dsemul_thread_rollback(regs);
   823	
   824		if (regs->regs[0]) {
   825			switch(regs->regs[2]) {
   826			case ERESTART_RESTARTBLOCK:
   827			case ERESTARTNOHAND:
   828				regs->regs[2] = EINTR;
   829				break;
   830			case ERESTARTSYS:
   831				if (!(ksig->ka.sa.sa_flags & SA_RESTART)) {
   832					regs->regs[2] = EINTR;
   833					break;
   834				}
   835				fallthrough;
   836			case ERESTARTNOINTR:
   837				regs->regs[7] = regs->regs[26];
   838				regs->regs[2] = regs->regs[0];
   839				regs->cp0_epc -= 4;
   840			}
   841	
   842			regs->regs[0] = 0;		/* Don't deal with this again.	*/
   843		}
   844	
   845		rseq_signal_deliver(ksig, regs);
   846	
   847		if (sig_uses_siginfo(&ksig->ka, abi))
 > 848			ret = abi->setup_rt_frame(land + abi->vdso->off_rt_sigreturn,
   849						  ksig, regs, oldset);
   850		else
 > 851			ret = abi->setup_frame(land + abi->vdso->off_sigreturn,
   852					       ksig, regs, oldset);
   853	
   854	err:
   855		signal_setup_done(ret, ksig, 0);
   856	}
   857	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 27618 bytes --]

WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: Re: [PATCH 19/19] mips/vdso: Migrate to user_landing
Date: Fri, 13 Nov 2020 17:58:08 +0800	[thread overview]
Message-ID: <202011131705.1JFCMwwl-lkp@intel.com> (raw)
In-Reply-To: <20201108051730.2042693-20-dima@arista.com>

[-- Attachment #1: Type: text/plain, Size: 6415 bytes --]

Hi Dmitry,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on c34f157421f6905e6b4a79a312e9175dce2bc607]

url:    https://github.com/0day-ci/linux/commits/Dmitry-Safonov/Add-generic-user_landing-tracking/20201109-090354
base:    c34f157421f6905e6b4a79a312e9175dce2bc607
config: mips-randconfig-p002-20201109 (attached as .config)
compiler: mips-linux-gcc (GCC) 9.3.0
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/0day-ci/linux/commit/cf47146993b3d1866163ee1815829d9e76b48807
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review Dmitry-Safonov/Add-generic-user_landing-tracking/20201109-090354
        git checkout cf47146993b3d1866163ee1815829d9e76b48807
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=mips 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   arch/mips/kernel/signal.c:439:5: warning: no previous prototype for 'setup_sigcontext' [-Wmissing-prototypes]
     439 | int setup_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
         |     ^~~~~~~~~~~~~~~~
   arch/mips/kernel/signal.c:516:5: warning: no previous prototype for 'restore_sigcontext' [-Wmissing-prototypes]
     516 | int restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *sc)
         |     ^~~~~~~~~~~~~~~~~~
   arch/mips/kernel/signal.c:630:17: warning: no previous prototype for 'sys_sigreturn' [-Wmissing-prototypes]
     630 | asmlinkage void sys_sigreturn(void)
         |                 ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:667:17: warning: no previous prototype for 'sys_rt_sigreturn' [-Wmissing-prototypes]
     667 | asmlinkage void sys_rt_sigreturn(void)
         |                 ^~~~~~~~~~~~~~~~
   In file included from include/linux/mmzone.h:21,
                    from include/linux/gfp.h:6,
                    from include/linux/mm.h:10,
                    from arch/mips/kernel/signal.c:15:
   arch/mips/kernel/signal.c: In function 'handle_signal':
   include/linux/mm_types.h:500:31: error: 'TASK_SIZE_MAX' undeclared (first use in this function); did you mean 'TASK_SIZE_OF'?
     500 | #define UNMAPPED_USER_LANDING TASK_SIZE_MAX
         |                               ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:814:14: note: in expansion of macro 'UNMAPPED_USER_LANDING'
     814 |  if (land == UNMAPPED_USER_LANDING)
         |              ^~~~~~~~~~~~~~~~~~~~~
   include/linux/mm_types.h:500:31: note: each undeclared identifier is reported only once for each function it appears in
     500 | #define UNMAPPED_USER_LANDING TASK_SIZE_MAX
         |                               ^~~~~~~~~~~~~
   arch/mips/kernel/signal.c:814:14: note: in expansion of macro 'UNMAPPED_USER_LANDING'
     814 |  if (land == UNMAPPED_USER_LANDING)
         |              ^~~~~~~~~~~~~~~~~~~~~
>> arch/mips/kernel/signal.c:848:34: warning: passing argument 1 of 'abi->setup_rt_frame' makes pointer from integer without a cast [-Wint-conversion]
     848 |   ret = abi->setup_rt_frame(land + abi->vdso->off_rt_sigreturn,
         |                             ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
         |                                  |
         |                                  long unsigned int
   arch/mips/kernel/signal.c:848:34: note: expected 'void *' but argument is of type 'long unsigned int'
>> arch/mips/kernel/signal.c:851:31: warning: passing argument 1 of 'abi->setup_frame' makes pointer from integer without a cast [-Wint-conversion]
     851 |   ret = abi->setup_frame(land + abi->vdso->off_sigreturn,
         |                          ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
         |                               |
         |                               long unsigned int
   arch/mips/kernel/signal.c:851:31: note: expected 'void *' but argument is of type 'long unsigned int'
   arch/mips/kernel/signal.c: At top level:
   arch/mips/kernel/signal.c:898:17: warning: no previous prototype for 'do_notify_resume' [-Wmissing-prototypes]
     898 | asmlinkage void do_notify_resume(struct pt_regs *regs, void *unused,
         |                 ^~~~~~~~~~~~~~~~

vim +848 arch/mips/kernel/signal.c

   806	
   807	static void handle_signal(struct ksignal *ksig, struct pt_regs *regs)
   808	{
   809		unsigned long land = (unsigned long)current->mm->user_landing;
   810		sigset_t *oldset = sigmask_to_save();
   811		int ret = 1;
   812		struct mips_abi *abi = current->thread.abi;
   813	
   814		if (land == UNMAPPED_USER_LANDING)
   815			goto err;
   816		/*
   817		 * If we were emulating a delay slot instruction, exit that frame such
   818		 * that addresses in the sigframe are as expected for userland and we
   819		 * don't have a problem if we reuse the thread's frame for an
   820		 * instruction within the signal handler.
   821		 */
   822		dsemul_thread_rollback(regs);
   823	
   824		if (regs->regs[0]) {
   825			switch(regs->regs[2]) {
   826			case ERESTART_RESTARTBLOCK:
   827			case ERESTARTNOHAND:
   828				regs->regs[2] = EINTR;
   829				break;
   830			case ERESTARTSYS:
   831				if (!(ksig->ka.sa.sa_flags & SA_RESTART)) {
   832					regs->regs[2] = EINTR;
   833					break;
   834				}
   835				fallthrough;
   836			case ERESTARTNOINTR:
   837				regs->regs[7] = regs->regs[26];
   838				regs->regs[2] = regs->regs[0];
   839				regs->cp0_epc -= 4;
   840			}
   841	
   842			regs->regs[0] = 0;		/* Don't deal with this again.	*/
   843		}
   844	
   845		rseq_signal_deliver(ksig, regs);
   846	
   847		if (sig_uses_siginfo(&ksig->ka, abi))
 > 848			ret = abi->setup_rt_frame(land + abi->vdso->off_rt_sigreturn,
   849						  ksig, regs, oldset);
   850		else
 > 851			ret = abi->setup_frame(land + abi->vdso->off_sigreturn,
   852					       ksig, regs, oldset);
   853	
   854	err:
   855		signal_setup_done(ret, ksig, 0);
   856	}
   857	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 27618 bytes --]

  reply	other threads:[~2020-11-13  9:58 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-08  5:17 [PATCH 00/19] Add generic user_landing tracking Dmitry Safonov
2020-11-08  5:17 ` Dmitry Safonov
2020-11-08  5:17 ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 01/19] x86/elf: Check in_x32_syscall() in compat_arch_setup_additional_pages() Dmitry Safonov
2020-11-08  5:17 ` [PATCH 02/19] elf: Move arch_setup_additional_pages() to generic elf.h Dmitry Safonov
2020-11-13  6:58   ` kernel test robot
2020-11-13  6:58     ` kernel test robot
2020-11-13  7:01   ` kernel test robot
2020-11-13  7:01     ` kernel test robot
2020-11-08  5:17 ` [PATCH 03/19] arm64: Use in_compat_task() in arch_setup_additional_pages() Dmitry Safonov
2020-11-08  5:17   ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 04/19] x86: Remove compat_arch_setup_additional_pages() Dmitry Safonov
2020-11-08  5:17 ` [PATCH 05/19] elf: " Dmitry Safonov
2020-11-08  5:17 ` [PATCH 06/19] elf/vdso: Reuse arch_setup_additional_pages() parameters Dmitry Safonov
2020-11-13  6:57   ` kernel test robot
2020-11-13  6:57     ` kernel test robot
2020-11-13  8:04   ` kernel test robot
2020-11-13  8:04     ` kernel test robot
2020-11-08  5:17 ` [PATCH 07/19] elf: Use sysinfo_ehdr in ARCH_DLINFO() Dmitry Safonov
2020-11-08  5:17   ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 08/19] arm/vdso: Remove vdso pointer from mm->context Dmitry Safonov
2020-11-08  5:17 ` [PATCH 09/19] s390/vdso: Remove vdso_base " Dmitry Safonov
2020-11-08  5:17 ` [PATCH 10/19] sparc/vdso: Remove vdso " Dmitry Safonov
2020-11-08  5:17   ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 11/19] mm/mmap: Make vm_special_mapping::mremap return void Dmitry Safonov
2020-11-08  5:17 ` [PATCH 12/19] x86/signal: Land on &frame->retcode when vdso isn't mapped Dmitry Safonov
2020-11-08 19:06   ` Andy Lutomirski
2020-11-09  1:22     ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 13/19] x86/signal: Check if vdso_image_32 is mapped before trying to land on it Dmitry Safonov
2020-11-08  5:17 ` [PATCH 14/19] mm: Add user_landing in mm_struct Dmitry Safonov
2020-11-08 19:04   ` Andy Lutomirski
2020-11-09  1:25     ` Dmitry Safonov
2020-11-08  5:17 ` [PATCH 15/19] x86/vdso: Migrate to user_landing Dmitry Safonov
2020-11-08  5:17 ` [PATCH 16/19] arm/vdso: " Dmitry Safonov
2020-11-08  5:17 ` [PATCH 17/19] arm64/vdso: Migrate compat signals " Dmitry Safonov
2020-11-08  5:17 ` [PATCH 18/19] arm64/vdso: Migrate native " Dmitry Safonov
2020-11-08  5:17 ` [PATCH 19/19] mips/vdso: Migrate " Dmitry Safonov
2020-11-13  9:58   ` kernel test robot [this message]
2020-11-13  9:58     ` kernel test robot
2020-11-08 19:07 ` [PATCH 00/19] Add generic user_landing tracking Andy Lutomirski
2020-11-08 19:07   ` Andy Lutomirski
2020-11-08 19:07   ` Andy Lutomirski
2020-11-09  1:27   ` Dmitry Safonov
2020-11-09  1:27     ` Dmitry Safonov
2020-11-09  1:27     ` Dmitry Safonov

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202011131705.1JFCMwwl-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=0x7f454c46@gmail.com \
    --cc=akpm@linux-foundation.org \
    --cc=arnd@arndb.de \
    --cc=bp@alien8.de \
    --cc=catalin.marinas@arm.com \
    --cc=christophe.leroy@csgroup.eu \
    --cc=dima@arista.com \
    --cc=kbuild-all@lists.01.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=luto@kernel.org \
    --cc=viro@zeniv.linux.org.uk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.