diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/fork.c | 6 | ||||
| -rw-r--r-- | kernel/posix-timers.c | 1 | ||||
| -rw-r--r-- | kernel/timer.c | 4 |
3 files changed, 5 insertions, 6 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index ccdfbb16c86d..b373322ca497 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
| @@ -1478,9 +1478,7 @@ static int unshare_vm(unsigned long unshare_flags, struct mm_struct **new_mmp) | |||
| 1478 | 1478 | ||
| 1479 | if ((unshare_flags & CLONE_VM) && | 1479 | if ((unshare_flags & CLONE_VM) && |
| 1480 | (mm && atomic_read(&mm->mm_users) > 1)) { | 1480 | (mm && atomic_read(&mm->mm_users) > 1)) { |
| 1481 | *new_mmp = dup_mm(current); | 1481 | return -EINVAL; |
| 1482 | if (!*new_mmp) | ||
| 1483 | return -ENOMEM; | ||
| 1484 | } | 1482 | } |
| 1485 | 1483 | ||
| 1486 | return 0; | 1484 | return 0; |
| @@ -1569,7 +1567,7 @@ asmlinkage long sys_unshare(unsigned long unshare_flags) | |||
| 1569 | 1567 | ||
| 1570 | if (new_sigh) { | 1568 | if (new_sigh) { |
| 1571 | sigh = current->sighand; | 1569 | sigh = current->sighand; |
| 1572 | current->sighand = new_sigh; | 1570 | rcu_assign_pointer(current->sighand, new_sigh); |
| 1573 | new_sigh = sigh; | 1571 | new_sigh = sigh; |
| 1574 | } | 1572 | } |
| 1575 | 1573 | ||
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index 216f574b5ffb..fa895fc2ecf5 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c | |||
| @@ -353,6 +353,7 @@ static int posix_timer_fn(void *data) | |||
| 353 | hrtimer_forward(&timr->it.real.timer, | 353 | hrtimer_forward(&timr->it.real.timer, |
| 354 | timr->it.real.interval); | 354 | timr->it.real.interval); |
| 355 | ret = HRTIMER_RESTART; | 355 | ret = HRTIMER_RESTART; |
| 356 | ++timr->it_requeue_pending; | ||
| 356 | } | 357 | } |
| 357 | } | 358 | } |
| 358 | 359 | ||
diff --git a/kernel/timer.c b/kernel/timer.c index bf7c4193b936..2410c18dbeb1 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
| @@ -1354,8 +1354,8 @@ void __init init_timers(void) | |||
| 1354 | 1354 | ||
| 1355 | #ifdef CONFIG_TIME_INTERPOLATION | 1355 | #ifdef CONFIG_TIME_INTERPOLATION |
| 1356 | 1356 | ||
| 1357 | struct time_interpolator *time_interpolator; | 1357 | struct time_interpolator *time_interpolator __read_mostly; |
| 1358 | static struct time_interpolator *time_interpolator_list; | 1358 | static struct time_interpolator *time_interpolator_list __read_mostly; |
| 1359 | static DEFINE_SPINLOCK(time_interpolator_lock); | 1359 | static DEFINE_SPINLOCK(time_interpolator_lock); |
| 1360 | 1360 | ||
| 1361 | static inline u64 time_interpolator_get_cycles(unsigned int src) | 1361 | static inline u64 time_interpolator_get_cycles(unsigned int src) |
