diff options
Diffstat (limited to 'kernel/posix-timers.c')
-rw-r--r-- | kernel/posix-timers.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index 7be385fe4eca..3eff47b0d8d5 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c | |||
@@ -510,10 +510,6 @@ sys_timer_create(const clockid_t which_clock, | |||
510 | error = -EFAULT; | 510 | error = -EFAULT; |
511 | goto out; | 511 | goto out; |
512 | } | 512 | } |
513 | new_timer->it_sigev_notify = event.sigev_notify; | ||
514 | new_timer->it_sigev_signo = event.sigev_signo; | ||
515 | new_timer->it_sigev_value = event.sigev_value; | ||
516 | |||
517 | rcu_read_lock(); | 513 | rcu_read_lock(); |
518 | process = good_sigevent(&event); | 514 | process = good_sigevent(&event); |
519 | if (process) | 515 | if (process) |
@@ -524,17 +520,18 @@ sys_timer_create(const clockid_t which_clock, | |||
524 | goto out; | 520 | goto out; |
525 | } | 521 | } |
526 | } else { | 522 | } else { |
527 | new_timer->it_sigev_notify = SIGEV_SIGNAL; | 523 | event.sigev_notify = SIGEV_SIGNAL; |
528 | new_timer->it_sigev_signo = SIGALRM; | 524 | event.sigev_signo = SIGALRM; |
529 | new_timer->it_sigev_value.sival_int = new_timer->it_id; | 525 | event.sigev_value.sival_int = new_timer->it_id; |
530 | process = current->group_leader; | 526 | process = current->group_leader; |
531 | get_task_struct(process); | 527 | get_task_struct(process); |
532 | } | 528 | } |
533 | 529 | ||
534 | new_timer->sigq->info.si_code = SI_TIMER; | 530 | new_timer->it_sigev_notify = event.sigev_notify; |
531 | new_timer->sigq->info.si_signo = event.sigev_signo; | ||
532 | new_timer->sigq->info.si_value = event.sigev_value; | ||
535 | new_timer->sigq->info.si_tid = new_timer->it_id; | 533 | new_timer->sigq->info.si_tid = new_timer->it_id; |
536 | new_timer->sigq->info.si_signo = new_timer->it_sigev_signo; | 534 | new_timer->sigq->info.si_code = SI_TIMER; |
537 | new_timer->sigq->info.si_value = new_timer->it_sigev_value; | ||
538 | 535 | ||
539 | spin_lock_irq(¤t->sighand->siglock); | 536 | spin_lock_irq(¤t->sighand->siglock); |
540 | new_timer->it_process = process; | 537 | new_timer->it_process = process; |