Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Christian Brauner <brauner@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: Re: [PATCH] nsfs: add pid translation ioctls
Date: Thu, 20 Jun 2024 07:22:24 +0800	[thread overview]
Message-ID: <202406200732.CNSrrOEG-lkp@intel.com> (raw)
In-Reply-To: <20240619-work-ns_ioctl-v1-1-7c0097e6bb6b@kernel.org>

Hi Christian,

kernel test robot noticed the following build errors:

[auto build test ERROR on 1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0]

url:    https://github.com/intel-lab-lkp/linux/commits/Christian-Brauner/nsfs-add-pid-translation-ioctls/20240619-215147
base:   1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
patch link:    https://lore.kernel.org/r/20240619-work-ns_ioctl-v1-1-7c0097e6bb6b%40kernel.org
patch subject: [PATCH] nsfs: add pid translation ioctls
config: i386-buildonly-randconfig-002-20240620 (https://download.01.org/0day-ci/archive/20240620/202406200732.CNSrrOEG-lkp@intel.com/config)
compiler: clang version 18.1.5 (https://github.com/llvm/llvm-project 617a15a9eac96088ae5e9134248d8236e34b91b1)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240620/202406200732.CNSrrOEG-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/202406200732.CNSrrOEG-lkp@intel.com/

All errors (new ones prefixed by >>):

>> fs/nsfs.c:193:2: error: cannot jump from switch statement to this case label
     193 |         default:
         |         ^
   fs/nsfs.c:163:3: note: jump bypasses initialization of variable with __attribute__((cleanup))
     163 |                 guard(rcu)();
         |                 ^
   include/linux/cleanup.h:164:15: note: expanded from macro 'guard'
     164 |         CLASS(_name, __UNIQUE_ID(guard))
         |                      ^
   include/linux/compiler.h:189:29: note: expanded from macro '__UNIQUE_ID'
     189 | #define __UNIQUE_ID(prefix) __PASTE(__PASTE(__UNIQUE_ID_, prefix), __COUNTER__)
         |                             ^
   include/linux/compiler_types.h:84:22: note: expanded from macro '__PASTE'
      84 | #define __PASTE(a,b) ___PASTE(a,b)
         |                      ^
   include/linux/compiler_types.h:83:23: note: expanded from macro '___PASTE'
      83 | #define ___PASTE(a,b) a##b
         |                       ^
   <scratch space>:95:1: note: expanded from here
      95 | __UNIQUE_ID_guard305
         | ^
   1 error generated.


vim +193 fs/nsfs.c

6786741dbf99e4 Andrey Vagin                2016-09-06  123  
6786741dbf99e4 Andrey Vagin                2016-09-06  124  static long ns_ioctl(struct file *filp, unsigned int ioctl,
6786741dbf99e4 Andrey Vagin                2016-09-06  125  			unsigned long arg)
6786741dbf99e4 Andrey Vagin                2016-09-06  126  {
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  127) 	struct user_namespace *user_ns;
db2704dabb53ec Christian Brauner           2024-06-19  128  	struct pid_namespace *pid_ns;
db2704dabb53ec Christian Brauner           2024-06-19  129  	struct task_struct *tsk;
6786741dbf99e4 Andrey Vagin                2016-09-06  130  	struct ns_common *ns = get_proc_ns(file_inode(filp));
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  131) 	uid_t __user *argp;
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  132) 	uid_t uid;
db2704dabb53ec Christian Brauner           2024-06-19  133  	pid_t pid_nr;
6786741dbf99e4 Andrey Vagin                2016-09-06  134  
6786741dbf99e4 Andrey Vagin                2016-09-06  135  	switch (ioctl) {
6786741dbf99e4 Andrey Vagin                2016-09-06  136  	case NS_GET_USERNS:
6786741dbf99e4 Andrey Vagin                2016-09-06  137  		return open_related_ns(ns, ns_get_owner);
a7306ed8d94af7 Andrey Vagin                2016-09-06  138  	case NS_GET_PARENT:
a7306ed8d94af7 Andrey Vagin                2016-09-06  139  		if (!ns->ops->get_parent)
a7306ed8d94af7 Andrey Vagin                2016-09-06  140  			return -EINVAL;
a7306ed8d94af7 Andrey Vagin                2016-09-06  141  		return open_related_ns(ns, ns->ops->get_parent);
e5ff5ce6e20ee2 Michael Kerrisk (man-pages  2017-01-25  142) 	case NS_GET_NSTYPE:
e5ff5ce6e20ee2 Michael Kerrisk (man-pages  2017-01-25  143) 		return ns->ops->type;
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  144) 	case NS_GET_OWNER_UID:
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  145) 		if (ns->ops->type != CLONE_NEWUSER)
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  146) 			return -EINVAL;
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  147) 		user_ns = container_of(ns, struct user_namespace, ns);
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  148) 		argp = (uid_t __user *) arg;
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  149) 		uid = from_kuid_munged(current_user_ns(), user_ns->owner);
d95fa3c76a66b6 Michael Kerrisk (man-pages  2017-01-25  150) 		return put_user(uid, argp);
db2704dabb53ec Christian Brauner           2024-06-19  151  	case NS_GET_PID_FROM_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  152  		fallthrough;
db2704dabb53ec Christian Brauner           2024-06-19  153  	case NS_GET_TGID_FROM_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  154  		fallthrough;
db2704dabb53ec Christian Brauner           2024-06-19  155  	case NS_GET_PID_IN_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  156  		fallthrough;
db2704dabb53ec Christian Brauner           2024-06-19  157  	case NS_GET_TGID_IN_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  158  		if (ns->ops->type != CLONE_NEWPID)
db2704dabb53ec Christian Brauner           2024-06-19  159  			return -EINVAL;
db2704dabb53ec Christian Brauner           2024-06-19  160  
db2704dabb53ec Christian Brauner           2024-06-19  161  		pid_ns = container_of(ns, struct pid_namespace, ns);
db2704dabb53ec Christian Brauner           2024-06-19  162  
db2704dabb53ec Christian Brauner           2024-06-19  163  		guard(rcu)();
db2704dabb53ec Christian Brauner           2024-06-19  164  		if (ioctl == NS_GET_PID_IN_PIDNS ||
db2704dabb53ec Christian Brauner           2024-06-19  165  		    ioctl == NS_GET_TGID_IN_PIDNS)
db2704dabb53ec Christian Brauner           2024-06-19  166  			tsk = find_task_by_vpid(arg);
db2704dabb53ec Christian Brauner           2024-06-19  167  		else
db2704dabb53ec Christian Brauner           2024-06-19  168  			tsk = find_task_by_pid_ns(arg, pid_ns);
db2704dabb53ec Christian Brauner           2024-06-19  169  		if (!tsk)
db2704dabb53ec Christian Brauner           2024-06-19  170  			return -ESRCH;
db2704dabb53ec Christian Brauner           2024-06-19  171  
db2704dabb53ec Christian Brauner           2024-06-19  172  		switch (ioctl) {
db2704dabb53ec Christian Brauner           2024-06-19  173  		case NS_GET_PID_FROM_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  174  			pid_nr = task_pid_vnr(tsk);
db2704dabb53ec Christian Brauner           2024-06-19  175  			break;
db2704dabb53ec Christian Brauner           2024-06-19  176  		case NS_GET_TGID_FROM_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  177  			pid_nr = task_tgid_vnr(tsk);
db2704dabb53ec Christian Brauner           2024-06-19  178  			break;
db2704dabb53ec Christian Brauner           2024-06-19  179  		case NS_GET_PID_IN_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  180  			pid_nr = task_pid_nr_ns(tsk, pid_ns);
db2704dabb53ec Christian Brauner           2024-06-19  181  			break;
db2704dabb53ec Christian Brauner           2024-06-19  182  		case NS_GET_TGID_IN_PIDNS:
db2704dabb53ec Christian Brauner           2024-06-19  183  			pid_nr = task_tgid_nr_ns(tsk, pid_ns);
db2704dabb53ec Christian Brauner           2024-06-19  184  			break;
db2704dabb53ec Christian Brauner           2024-06-19  185  		default:
db2704dabb53ec Christian Brauner           2024-06-19  186  			pid_nr = 0;
db2704dabb53ec Christian Brauner           2024-06-19  187  			break;
db2704dabb53ec Christian Brauner           2024-06-19  188  		}
db2704dabb53ec Christian Brauner           2024-06-19  189  		if (!pid_nr)
db2704dabb53ec Christian Brauner           2024-06-19  190  			return -ESRCH;
db2704dabb53ec Christian Brauner           2024-06-19  191  
db2704dabb53ec Christian Brauner           2024-06-19  192  		return pid_nr;
6786741dbf99e4 Andrey Vagin                2016-09-06 @193  	default:
6786741dbf99e4 Andrey Vagin                2016-09-06  194  		return -ENOTTY;
6786741dbf99e4 Andrey Vagin                2016-09-06  195  	}
6786741dbf99e4 Andrey Vagin                2016-09-06  196  }
6786741dbf99e4 Andrey Vagin                2016-09-06  197  

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

           reply	other threads:[~2024-06-19 23:23 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20240619-work-ns_ioctl-v1-1-7c0097e6bb6b@kernel.org>]

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=202406200732.CNSrrOEG-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=brauner@kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox