Re: [PATCHv7 15/33] posix-timers: Make clock_nanosleep() time namespace aware
From: kbuild test robot
Date: Mon Oct 14 2019 - 00:11:37 EST
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: x86_64-randconfig-s1-201941 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2
reproduce:
# save the attached .config to linux build tree
make ARCH=x86_64
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@xxxxxxxxx>
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)
texp = timens_ktime_to_host(clockid, texp);
^
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'
ktime texp;
^
kernel//time/posix-stubs.c:243:31: error: 'clockid' undeclared (first use in this function)
texp = timens_ktime_to_host(clockid, texp);
^
vim +/clockid +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