diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-02-25 13:51:05 +0100 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2016-02-25 13:51:05 +0100 |
commit | 47eec6126916d2e92064c577994f80996c57218b (patch) | |
tree | 9d43027bf3e2893f3d2c84be0ae1718a127083fe | |
parent | 646b673fcdafa99c8b5ff4044e5016299af0f7f1 (diff) | |
download | 4.12-rt-patches-47eec6126916d2e92064c577994f80996c57218b.tar.gz |
[ANNOUNCE] 4.4.2-rt7
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
-rw-r--r-- | patches/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch | 13 | ||||
-rw-r--r-- | patches/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch | 12 | ||||
-rw-r--r-- | patches/genirq-update-irq_set_irqchip_state-documentation.patch | 9 | ||||
-rw-r--r-- | patches/hrtimer-enfore-64byte-alignment.patch | 2 | ||||
-rw-r--r-- | patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch | 30 | ||||
-rw-r--r-- | patches/hrtimers-prepare-full-preemption.patch | 14 | ||||
-rw-r--r-- | patches/latency-hist.patch | 16 | ||||
-rw-r--r-- | patches/localversion.patch | 4 | ||||
-rw-r--r-- | patches/panic-disable-random-on-rt.patch | 2 | ||||
-rw-r--r-- | patches/printk-rt-aware.patch | 11 | ||||
-rw-r--r-- | patches/rt-introduce-cpu-chill.patch | 2 |
11 files changed, 53 insertions, 62 deletions
diff --git a/patches/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/patches/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index 6d6aaa7f97fe1d..0ceb93625b547e 100644 --- a/patches/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/patches/KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -19,14 +19,12 @@ Reported-by: Manish Jaggi <Manish.Jaggi@caviumnetworks.com> Signed-off-by: Josh Cartwright <joshc@ni.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - arch/arm/kvm/arm.c | 6 +++--- + arch/arm/kvm/arm.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c -index 4f5c42a0924c..2ce9cc2717ac 100644 --- a/arch/arm/kvm/arm.c +++ b/arch/arm/kvm/arm.c -@@ -568,7 +568,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) +@@ -568,7 +568,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v * involves poking the GIC, which must be done in a * non-preemptible context. */ @@ -35,7 +33,7 @@ index 4f5c42a0924c..2ce9cc2717ac 100644 kvm_timer_flush_hwstate(vcpu); kvm_vgic_flush_hwstate(vcpu); -@@ -587,7 +587,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) +@@ -587,7 +587,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v local_irq_enable(); kvm_timer_sync_hwstate(vcpu); kvm_vgic_sync_hwstate(vcpu); @@ -44,7 +42,7 @@ index 4f5c42a0924c..2ce9cc2717ac 100644 continue; } -@@ -641,7 +641,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *run) +@@ -641,7 +641,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v kvm_vgic_sync_hwstate(vcpu); @@ -53,6 +51,3 @@ index 4f5c42a0924c..2ce9cc2717ac 100644 ret = handle_exit(vcpu, run, ret); } --- -2.7.0 - diff --git a/patches/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch b/patches/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch index 1a0a39a0191006..889033e6f1526b 100644 --- a/patches/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch +++ b/patches/cpu_chill-Add-a-UNINTERRUPTIBLE-hrtimer_nanosleep.patch @@ -33,7 +33,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -1656,12 +1656,13 @@ void hrtimer_init_sleeper(struct hrtimer +@@ -1675,12 +1675,13 @@ void hrtimer_init_sleeper(struct hrtimer } EXPORT_SYMBOL_GPL(hrtimer_init_sleeper); @@ -49,7 +49,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> hrtimer_start_expires(&t->timer, mode); if (likely(t->task)) -@@ -1703,7 +1704,8 @@ long __sched hrtimer_nanosleep_restart(s +@@ -1722,7 +1723,8 @@ long __sched hrtimer_nanosleep_restart(s HRTIMER_MODE_ABS); hrtimer_set_expires_tv64(&t.timer, restart->nanosleep.expires); @@ -59,7 +59,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> goto out; rmtp = restart->nanosleep.rmtp; -@@ -1720,8 +1722,10 @@ long __sched hrtimer_nanosleep_restart(s +@@ -1739,8 +1741,10 @@ long __sched hrtimer_nanosleep_restart(s return ret; } @@ -72,7 +72,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> { struct restart_block *restart; struct hrtimer_sleeper t; -@@ -1734,7 +1738,7 @@ long hrtimer_nanosleep(struct timespec * +@@ -1753,7 +1757,7 @@ long hrtimer_nanosleep(struct timespec * hrtimer_init_on_stack(&t.timer, clockid, mode); hrtimer_set_expires_range_ns(&t.timer, timespec_to_ktime(*rqtp), slack); @@ -81,7 +81,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> goto out; /* Absolute timers do not update the rmtp value and restart: */ -@@ -1761,6 +1765,12 @@ long hrtimer_nanosleep(struct timespec * +@@ -1780,6 +1784,12 @@ long hrtimer_nanosleep(struct timespec * return ret; } @@ -94,7 +94,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp, struct timespec __user *, rmtp) { -@@ -1787,7 +1797,8 @@ void cpu_chill(void) +@@ -1806,7 +1816,8 @@ void cpu_chill(void) unsigned int freeze_flag = current->flags & PF_NOFREEZE; current->flags |= PF_NOFREEZE; diff --git a/patches/genirq-update-irq_set_irqchip_state-documentation.patch b/patches/genirq-update-irq_set_irqchip_state-documentation.patch index 948594dc6ae841..6b40fdd0041323 100644 --- a/patches/genirq-update-irq_set_irqchip_state-documentation.patch +++ b/patches/genirq-update-irq_set_irqchip_state-documentation.patch @@ -10,14 +10,12 @@ irq_set_irqchip_state() documentation to reflect this. Signed-off-by: Josh Cartwright <joshc@ni.com> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- - kernel/irq/manage.c | 2 +- + kernel/irq/manage.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c -index ba2a42a37025..8e89554aa345 100644 --- a/kernel/irq/manage.c +++ b/kernel/irq/manage.c -@@ -2060,7 +2060,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state); +@@ -2054,7 +2054,7 @@ EXPORT_SYMBOL_GPL(irq_get_irqchip_state) * This call sets the internal irqchip state of an interrupt, * depending on the value of @which. * @@ -26,6 +24,3 @@ index ba2a42a37025..8e89554aa345 100644 * interrupt controller has per-cpu registers. */ int irq_set_irqchip_state(unsigned int irq, enum irqchip_irq_state which, --- -2.7.0 - diff --git a/patches/hrtimer-enfore-64byte-alignment.patch b/patches/hrtimer-enfore-64byte-alignment.patch index ef6c1d1d622d23..c76193ac2c83f4 100644 --- a/patches/hrtimer-enfore-64byte-alignment.patch +++ b/patches/hrtimer-enfore-64byte-alignment.patch @@ -13,7 +13,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h -@@ -125,11 +125,7 @@ struct hrtimer_sleeper { +@@ -127,11 +127,7 @@ struct hrtimer_sleeper { struct task_struct *task; }; diff --git a/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch b/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch index 44a33a905a58e1..249be2f4905752 100644 --- a/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch +++ b/patches/hrtimer-fixup-hrtimer-callback-changes-for-preempt-r.patch @@ -29,18 +29,18 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> + * @cb_entry: list entry to defer timers from hardirq context + * @irqsafe: timer can run in hardirq context * @praecox: timer expiry time if expired at the time of programming - * @start_pid: timer statistics field to store the pid of the task which - * started the timer -@@ -103,6 +105,8 @@ struct hrtimer { + * @is_rel: Set if the timer was armed relative + * @start_pid: timer statistics field to store the pid of the task which +@@ -104,6 +106,8 @@ struct hrtimer { enum hrtimer_restart (*function)(struct hrtimer *); struct hrtimer_clock_base *base; - unsigned long state; + u8 state; + struct list_head cb_entry; + int irqsafe; #ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST ktime_t praecox; #endif -@@ -134,6 +138,7 @@ struct hrtimer_sleeper { +@@ -136,6 +140,7 @@ struct hrtimer_sleeper { * timer to a base on another cpu. * @clockid: clock id for per_cpu support * @active: red black tree root node for the active timers @@ -48,7 +48,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> * @get_time: function to retrieve the current time of the clock * @offset: offset of this clock to the monotonic base */ -@@ -142,6 +147,7 @@ struct hrtimer_clock_base { +@@ -144,6 +149,7 @@ struct hrtimer_clock_base { int index; clockid_t clockid; struct timerqueue_head active; @@ -56,7 +56,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> ktime_t (*get_time)(void); ktime_t offset; } __attribute__((__aligned__(HRTIMER_CLOCK_BASE_ALIGN))); -@@ -185,6 +191,7 @@ struct hrtimer_cpu_base { +@@ -187,6 +193,7 @@ struct hrtimer_cpu_base { raw_spinlock_t lock; seqcount_t seq; struct hrtimer *running; @@ -121,7 +121,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> if (!timerqueue_del(&base->active, &timer->node)) cpu_base->active_bases &= ~(1 << base->index); -@@ -1162,6 +1164,7 @@ static void __hrtimer_init(struct hrtime +@@ -1173,6 +1175,7 @@ static void __hrtimer_init(struct hrtime base = hrtimer_clockid_to_base(clock_id); timer->base = &cpu_base->clock_base[base]; @@ -129,7 +129,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> timerqueue_init(&timer->node); #ifdef CONFIG_TIMER_STATS -@@ -1202,6 +1205,7 @@ bool hrtimer_active(const struct hrtimer +@@ -1213,6 +1216,7 @@ bool hrtimer_active(const struct hrtimer seq = raw_read_seqcount_begin(&cpu_base->seq); if (timer->state != HRTIMER_STATE_INACTIVE || @@ -137,7 +137,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> cpu_base->running == timer) return true; -@@ -1292,12 +1296,112 @@ static void __run_hrtimer(struct hrtimer +@@ -1311,12 +1315,112 @@ static void __run_hrtimer(struct hrtimer cpu_base->running = NULL; } @@ -250,7 +250,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> for (; active; base++, active >>= 1) { struct timerqueue_node *node; -@@ -1337,9 +1441,14 @@ static void __hrtimer_run_queues(struct +@@ -1356,9 +1460,14 @@ static void __hrtimer_run_queues(struct if (basenow.tv64 < hrtimer_get_softexpires_tv64(timer)) break; @@ -266,7 +266,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> } #ifdef CONFIG_HIGH_RES_TIMERS -@@ -1481,8 +1590,6 @@ void hrtimer_run_queues(void) +@@ -1500,8 +1609,6 @@ void hrtimer_run_queues(void) now = hrtimer_update_base(cpu_base); __hrtimer_run_queues(cpu_base, now); raw_spin_unlock(&cpu_base->lock); @@ -275,7 +275,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> } /* -@@ -1504,6 +1611,7 @@ static enum hrtimer_restart hrtimer_wake +@@ -1523,6 +1630,7 @@ static enum hrtimer_restart hrtimer_wake void hrtimer_init_sleeper(struct hrtimer_sleeper *sl, struct task_struct *task) { sl->timer.function = hrtimer_wakeup; @@ -283,7 +283,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> sl->task = task; } EXPORT_SYMBOL_GPL(hrtimer_init_sleeper); -@@ -1638,6 +1746,7 @@ static void init_hrtimers_cpu(int cpu) +@@ -1657,6 +1765,7 @@ static void init_hrtimers_cpu(int cpu) for (i = 0; i < HRTIMER_MAX_CLOCK_BASES; i++) { cpu_base->clock_base[i].cpu_base = cpu_base; timerqueue_init_head(&cpu_base->clock_base[i].active); @@ -291,7 +291,7 @@ Signed-off-by: Ingo Molnar <mingo@elte.hu> } cpu_base->cpu = cpu; -@@ -1742,11 +1851,21 @@ static struct notifier_block hrtimers_nb +@@ -1761,11 +1870,21 @@ static struct notifier_block hrtimers_nb .notifier_call = hrtimer_cpu_notify, }; diff --git a/patches/hrtimers-prepare-full-preemption.patch b/patches/hrtimers-prepare-full-preemption.patch index 33858ef4e28643..6a5d72b47681cb 100644 --- a/patches/hrtimers-prepare-full-preemption.patch +++ b/patches/hrtimers-prepare-full-preemption.patch @@ -17,7 +17,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/include/linux/hrtimer.h +++ b/include/linux/hrtimer.h -@@ -205,6 +205,9 @@ struct hrtimer_cpu_base { +@@ -207,6 +207,9 @@ struct hrtimer_cpu_base { unsigned int nr_hangs; unsigned int max_hang_time; #endif @@ -27,7 +27,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> struct hrtimer_clock_base clock_base[HRTIMER_MAX_CLOCK_BASES]; } ____cacheline_aligned; -@@ -393,6 +396,13 @@ static inline void hrtimer_restart(struc +@@ -416,6 +419,13 @@ static inline void hrtimer_restart(struc hrtimer_start_expires(timer, HRTIMER_MODE_ABS); } @@ -39,9 +39,9 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> +#endif + /* Query timers: */ - extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer); + extern ktime_t __hrtimer_get_remaining(const struct hrtimer *timer, bool adjust); -@@ -412,7 +422,7 @@ static inline int hrtimer_is_queued(stru +@@ -440,7 +450,7 @@ static inline int hrtimer_is_queued(stru * Helper function to check, whether the timer is running the callback * function */ @@ -85,7 +85,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> /* * enqueue_hrtimer - internal function to (re)start a timer * -@@ -1076,7 +1102,7 @@ int hrtimer_cancel(struct hrtimer *timer +@@ -1083,7 +1109,7 @@ int hrtimer_cancel(struct hrtimer *timer if (ret >= 0) return ret; @@ -94,7 +94,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } } EXPORT_SYMBOL_GPL(hrtimer_cancel); -@@ -1455,6 +1481,8 @@ void hrtimer_run_queues(void) +@@ -1474,6 +1500,8 @@ void hrtimer_run_queues(void) now = hrtimer_update_base(cpu_base); __hrtimer_run_queues(cpu_base, now); raw_spin_unlock(&cpu_base->lock); @@ -103,7 +103,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> } /* -@@ -1614,6 +1642,9 @@ static void init_hrtimers_cpu(int cpu) +@@ -1633,6 +1661,9 @@ static void init_hrtimers_cpu(int cpu) cpu_base->cpu = cpu; hrtimer_init_hres(cpu_base); diff --git a/patches/latency-hist.patch b/patches/latency-hist.patch index 7b055740394488..a5541e8d482f2b 100644 --- a/patches/latency-hist.patch +++ b/patches/latency-hist.patch @@ -221,19 +221,19 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> * @base: pointer to the timer base (per cpu and per clock) * @state: state information (See bit values above) + * @praecox: timer expiry time if expired at the time of programming - * @start_pid: timer statistics field to store the pid of the task which + * @is_rel: Set if the timer was armed relative + * @start_pid: timer statistics field to store the pid of the task which * started the timer - * @start_site: timer statistics field to store the site where the timer -@@ -102,6 +103,9 @@ struct hrtimer { +@@ -103,6 +104,9 @@ struct hrtimer { enum hrtimer_restart (*function)(struct hrtimer *); struct hrtimer_clock_base *base; - unsigned long state; + u8 state; +#ifdef CONFIG_MISSED_TIMER_OFFSETS_HIST + ktime_t praecox; +#endif + u8 is_rel; #ifdef CONFIG_TIMER_STATS int start_pid; - void *start_site; --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -1796,6 +1796,12 @@ struct task_struct { @@ -366,7 +366,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> #include "tick-internal.h" -@@ -994,7 +995,16 @@ void hrtimer_start_range_ns(struct hrtim +@@ -1001,7 +1002,16 @@ void hrtimer_start_range_ns(struct hrtim new_base = switch_hrtimer_base(timer, base, mode & HRTIMER_MODE_PINNED); timer_stats_hrtimer_set_start_info(timer); @@ -383,7 +383,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> leftmost = enqueue_hrtimer(timer, new_base); if (!leftmost) goto unlock; -@@ -1256,6 +1266,8 @@ static void __run_hrtimer(struct hrtimer +@@ -1275,6 +1285,8 @@ static void __run_hrtimer(struct hrtimer cpu_base->running = NULL; } @@ -392,7 +392,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> static void __hrtimer_run_queues(struct hrtimer_cpu_base *cpu_base, ktime_t now) { struct hrtimer_clock_base *base = cpu_base->clock_base; -@@ -1275,6 +1287,15 @@ static void __hrtimer_run_queues(struct +@@ -1294,6 +1306,15 @@ static void __hrtimer_run_queues(struct timer = container_of(node, struct hrtimer, node); diff --git a/patches/localversion.patch b/patches/localversion.patch index 109437949aa978..ce9ff7811fe18b 100644 --- a/patches/localversion.patch +++ b/patches/localversion.patch @@ -1,4 +1,4 @@ -Subject: v4.4.1-rt6 +Subject: v4.4.2-rt7 From: Thomas Gleixner <tglx@linutronix.de> Date: Fri, 08 Jul 2011 20:25:16 +0200 @@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt6 ++-rt7 diff --git a/patches/panic-disable-random-on-rt.patch b/patches/panic-disable-random-on-rt.patch index 14b3402e3fe080..caed5d57dabb61 100644 --- a/patches/panic-disable-random-on-rt.patch +++ b/patches/panic-disable-random-on-rt.patch @@ -12,7 +12,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- a/kernel/panic.c +++ b/kernel/panic.c -@@ -401,9 +401,11 @@ static u64 oops_id; +@@ -400,9 +400,11 @@ static u64 oops_id; static int init_oops_id(void) { diff --git a/patches/printk-rt-aware.patch b/patches/printk-rt-aware.patch index 25e54a185883b6..bce01c13ffa7c9 100644 --- a/patches/printk-rt-aware.patch +++ b/patches/printk-rt-aware.patch @@ -7,8 +7,8 @@ interrupts while printing to a serial console. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- - kernel/printk/printk.c | 26 +++++++++++++++++++++++--- - 1 file changed, 23 insertions(+), 3 deletions(-) + kernel/printk/printk.c | 27 +++++++++++++++++++++++---- + 1 file changed, 23 insertions(+), 4 deletions(-) --- a/kernel/printk/printk.c +++ b/kernel/printk/printk.c @@ -80,7 +80,7 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> return; out: raw_spin_unlock_irqrestore(&logbuf_lock, flags); -@@ -2351,12 +2366,17 @@ void console_unlock(void) +@@ -2362,13 +2377,17 @@ void console_unlock(void) console_idx = log_next(console_idx); console_seq++; console_prev = msg->flags; @@ -94,7 +94,8 @@ Signed-off-by: Thomas Gleixner <tglx@linutronix.de> call_console_drivers(level, ext_text, ext_len, text, len); start_critical_timings(); local_irq_restore(flags); +- +#endif + if (do_cond_resched) + cond_resched(); } - console_locked = 0; - diff --git a/patches/rt-introduce-cpu-chill.patch b/patches/rt-introduce-cpu-chill.patch index 4d0e3fe954b329..2d100d36fb47f9 100644 --- a/patches/rt-introduce-cpu-chill.patch +++ b/patches/rt-introduce-cpu-chill.patch @@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de> #endif /* defined(_LINUX_DELAY_H) */ --- a/kernel/time/hrtimer.c +++ b/kernel/time/hrtimer.c -@@ -1775,6 +1775,25 @@ SYSCALL_DEFINE2(nanosleep, struct timesp +@@ -1794,6 +1794,25 @@ SYSCALL_DEFINE2(nanosleep, struct timesp return hrtimer_nanosleep(&tu, rmtp, HRTIMER_MODE_REL, CLOCK_MONOTONIC); } |