History

Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull timer updates from Thomas Gleixner: "The time/timekeeping/timer folks deliver with this update: - Fix a reintroduced signed/unsigned issue and cleanup the whole signed/unsigned mess in the timekeeping core so this wont happen accidentaly again. - Add a new trace clock based on boot time - Prevent injection of random sleep times when PM tracing abuses the RTC for storage - Make posix timers configurable for real tiny systems - Add tracepoints for the alarm timer subsystem so timer based suspend wakeups can be instrumented - The usual pile of fixes and updates to core and drivers" * 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits) timekeeping: Use mul_u64_u32_shr() instead of open coding it timekeeping: Get rid of pointless typecasts timekeeping: Make the conversion call chain consistently unsigned timekeeping_Force_unsigned_clocksource_to_nanoseconds_conversion alarmtimer: Add tracepoints for alarm timers trace: Update documentation for mono, mono_raw and boot clock trace: Add an option for boot clock as trace clock timekeeping: Add a fast and NMI safe boot clock timekeeping/clocksource_cyc2ns: Document intended range limitation timekeeping: Ignore the bogus sleep time if pm_trace is enabled selftests/timers: Fix spelling mistake "Asyncrhonous" -> "Asynchronous" clocksource/drivers/bcm2835_timer: Unmap region obtained by of_iomap clocksource/drivers/arm_arch_timer: Map frame with of_io_request_and_map() arm64: dts: rockchip: Arch counter doesn't tick in system suspend clocksource/drivers/arm_arch_timer: Don't assume clock runs in suspend posix-timers: Make them configurable posix_cpu_timers: Move the add_device_randomness() call to a proper place timer: Move sys_alarm from timer.c to itimer.c ptp_clock: Allow for it to be optional Kconfig: Regenerate *.c_shipped files after previous changes ...

Linus Torvalds committed 9 years ago

Commit 9465d9c2 parents e71c397 c029a2b61 files · +1479 −1041Browse files

Showing the changes to kernel/exit.c (1 of 61 files). Show all

Unified · Split

kernel/exit.c+13−2
@@ -54,6 +54,7 @@ · 53 unmodified lines
5454 #include <linux/writeback.h>
5555 #include <linux/shm.h>
5656 #include <linux/kcov.h>
57+#include <linux/random.h>
5758
5859 #include <asm/uaccess.h>
5960 #include <asm/unistd.h>
@@ -91,11 +92,10 @@ static void __exit_signal(struct task_struct *tsk) · 31 unmodified lines
9192 lockdep_tasklist_lock_is_held());
9293 spin_lock(&sighand->siglock);
9394
95+#ifdef CONFIG_POSIX_TIMERS
9496 posix_cpu_timers_exit(tsk);
9597 if (group_dead) {
9698 posix_cpu_timers_exit_group(tsk);
97− tty = sig->tty;
98− sig->tty = NULL;
9999 } else {
100100 /*
101101 * This can only happen if the caller is de_thread().
@@ -104,7 +104,13 @@ static void __exit_signal(struct task_struct *tsk) · 2 unmodified lines
104104 */
105105 if (unlikely(has_group_leader_pid(tsk)))
106106 posix_cpu_timers_exit_group(tsk);
107+ }
108+#endif
107109
110+ if (group_dead) {
111+ tty = sig->tty;
112+ sig->tty = NULL;
113+ } else {
108114 /*
109115 * If there is any task waiting for the group exit
110116 * then notify it:
@@ -116,6 +122,9 @@ static void __exit_signal(struct task_struct *tsk) · 5 unmodified lines
116122 sig->curr_target = next_thread(tsk);
117123 }
118124
125+ add_device_randomness((const void*) &tsk->se.sum_exec_runtime,
126+ sizeof(unsigned long long));
127+
119128 /*
120129 * Accumulate here the counters for all threads as they die. We could
121130 * skip the group leader because it is the last user of signal_struct,
@@ -799,8 +808,10 @@ void __noreturn do_exit(long code) · 677 unmodified lines
799808 acct_update_integrals(tsk);
800809 group_dead = atomic_dec_and_test(&tsk->signal->live);
801810 if (group_dead) {
811+#ifdef CONFIG_POSIX_TIMERS
802812 hrtimer_cancel(&tsk->signal->real_timer);
803813 exit_itimers(tsk->signal);
814+#endif
804815 if (tsk->mm)
805816 setmax_mm_hiwater_rss(&tsk->signal->maxrss, tsk->mm);
806817 }

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t