Hi Dmitry,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on linus/master]
[cannot apply to v5.4-rc2 next-20191011]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url:    
https://github.com/0day-ci/linux/commits/Dmitry-Safonov/kernel-Introduce-Time-Namespace/20191014-075119
config: i386-tinyconfig (attached as .config)
compiler: gcc-7 (Debian 7.4.0-13) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All errors (new ones prefixed by >>):

   kernel/time/posix-stubs.c: In function '__do_sys_clock_nanosleep':
>> kernel/time/posix-stubs.c:153:31: error: 'clockid' undeclared (first use in 
>> this function); did you mean 'clock_t'?
      texp = timens_ktime_to_host(clockid, texp);
                                  ^~~~~~~
                                  clock_t
   kernel/time/posix-stubs.c:153:31: note: each undeclared identifier is 
reported only once for each function it appears in
   kernel/time/posix-stubs.c: In function '__do_sys_clock_nanosleep_time32':
>> kernel/time/posix-stubs.c:222:2: error: unknown type name 'ktime'; did you 
>> mean 'ktime_t'?
     ktime texp;
     ^~~~~
     ktime_t
   kernel/time/posix-stubs.c:243:31: error: 'clockid' undeclared (first use in 
this function); did you mean 'clock_t'?
      texp = timens_ktime_to_host(clockid, texp);
                                  ^~~~~~~
                                  clock_t

vim +153 kernel/time/posix-stubs.c

   126  
   127  SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, 
flags,
   128                  const struct __kernel_timespec __user *, rqtp,
   129                  struct __kernel_timespec __user *, rmtp)
   130  {
   131          struct timespec64 t;
   132          ktime_t texp;
   133  
   134          switch (which_clock) {
   135          case CLOCK_REALTIME:
   136          case CLOCK_MONOTONIC:
   137          case CLOCK_BOOTTIME:
   138                  break;
   139          default:
   140                  return -EINVAL;
   141          }
   142  
   143          if (get_timespec64(&t, rqtp))
   144                  return -EFAULT;
   145          if (!timespec64_valid(&t))
   146                  return -EINVAL;
   147          if (flags & TIMER_ABSTIME)
   148                  rmtp = NULL;
   149          current->restart_block.nanosleep.type = rmtp ? TT_NATIVE : 
TT_NONE;
   150          current->restart_block.nanosleep.rmtp = rmtp;
   151          texp = timespec64_to_ktime(t);
   152          if (flags & TIMER_ABSTIME)
 > 153                  texp = timens_ktime_to_host(clockid, texp);
   154          return hrtimer_nanosleep(texp, flags & TIMER_ABSTIME ?
   155                                   HRTIMER_MODE_ABS : HRTIMER_MODE_REL,
   156                                   which_clock);
   157  }
   158  
   159  #ifdef CONFIG_COMPAT
   160  COMPAT_SYS_NI(timer_create);
   161  COMPAT_SYS_NI(getitimer);
   162  COMPAT_SYS_NI(setitimer);
   163  #endif
   164  
   165  #ifdef CONFIG_COMPAT_32BIT_TIME
   166  SYS_NI(timer_settime32);
   167  SYS_NI(timer_gettime32);
   168  
   169  SYSCALL_DEFINE2(clock_settime32, const clockid_t, which_clock,
   170                  struct old_timespec32 __user *, tp)
   171  {
   172          struct timespec64 new_tp;
   173  
   174          if (which_clock != CLOCK_REALTIME)
   175                  return -EINVAL;
   176          if (get_old_timespec32(&new_tp, tp))
   177                  return -EFAULT;
   178  
   179          return do_sys_settimeofday64(&new_tp, NULL);
   180  }
   181  
   182  SYSCALL_DEFINE2(clock_gettime32, clockid_t, which_clock,
   183                  struct old_timespec32 __user *, tp)
   184  {
   185          int ret;
   186          struct timespec64 kernel_tp;
   187  
   188          ret = do_clock_gettime(which_clock, &kernel_tp);
   189          if (ret)
   190                  return ret;
   191  
   192          if (put_old_timespec32(&kernel_tp, tp))
   193                  return -EFAULT;
   194          return 0;
   195  }
   196  
   197  SYSCALL_DEFINE2(clock_getres_time32, clockid_t, which_clock,
   198                  struct old_timespec32 __user *, tp)
   199  {
   200          struct timespec64 rtn_tp = {
   201                  .tv_sec = 0,
   202                  .tv_nsec = hrtimer_resolution,
   203          };
   204  
   205          switch (which_clock) {
   206          case CLOCK_REALTIME:
   207          case CLOCK_MONOTONIC:
   208          case CLOCK_BOOTTIME:
   209                  if (put_old_timespec32(&rtn_tp, tp))
   210                          return -EFAULT;
   211                  return 0;
   212          default:
   213                  return -EINVAL;
   214          }
   215  }
   216  
   217  SYSCALL_DEFINE4(clock_nanosleep_time32, clockid_t, which_clock, int, 
flags,
   218                  struct old_timespec32 __user *, rqtp,
   219                  struct old_timespec32 __user *, rmtp)
   220  {
   221          struct timespec64 t;
 > 222          ktime texp;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to