On Tuesday 19 May 2015 20:50:04 Baolin Wang wrote:
@@ -1248,6 +1249,8 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags, struct timespec *rqtp, struct itimerspec *it) { struct k_itimer timer;
struct timespec64 ts64;
struct itimerspec64 *it64; int error;
/* @@ -1260,13 +1263,14 @@ static int do_cpu_nanosleep(const clockid_t which_clock, int flags, error = posix_cpu_timer_create(&timer); timer.it_process = current; if (!error) {
static struct itimerspec zero_it;
static struct itimerspec64 zero_it;
memset(it, 0, sizeof *it); it->it_value = *rqtp; spin_lock_irq(&timer.it_lock);
error = posix_cpu_timer_set(&timer, flags, it, NULL);
*it64 = itimerspec_to_itimerspec64(it);
error = posix_cpu_timer_set(&timer, flags, it64, NULL); if (error) { spin_unlock_irq(&timer.it_lock); return error;
And one more bug of this kind here.
Arnd