aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'kernel')
-rw-r--r--kernel/printk.c5
-rw-r--r--kernel/signal.c9
2 files changed, 6 insertions, 8 deletions
diff --git a/kernel/printk.c b/kernel/printk.c
index 19c0d7bcf24a..357f714ddd49 100644
--- a/kernel/printk.c
+++ b/kernel/printk.c
@@ -870,10 +870,11 @@ static size_t print_time(u64 ts, char *buf)
870 if (!printk_time) 870 if (!printk_time)
871 return 0; 871 return 0;
872 872
873 rem_nsec = do_div(ts, 1000000000);
874
873 if (!buf) 875 if (!buf)
874 return 15; 876 return snprintf(NULL, 0, "[%5lu.000000] ", (unsigned long)ts);
875 877
876 rem_nsec = do_div(ts, 1000000000);
877 return sprintf(buf, "[%5lu.%06lu] ", 878 return sprintf(buf, "[%5lu.%06lu] ",
878 (unsigned long)ts, rem_nsec / 1000); 879 (unsigned long)ts, rem_nsec / 1000);
879} 880}
diff --git a/kernel/signal.c b/kernel/signal.c
index 7aaa51d8e5b8..372771e948c2 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -2528,11 +2528,8 @@ static void __set_task_blocked(struct task_struct *tsk, const sigset_t *newset)
2528 */ 2528 */
2529void set_current_blocked(sigset_t *newset) 2529void set_current_blocked(sigset_t *newset)
2530{ 2530{
2531 struct task_struct *tsk = current;
2532 sigdelsetmask(newset, sigmask(SIGKILL) | sigmask(SIGSTOP)); 2531 sigdelsetmask(newset, sigmask(SIGKILL) | sigmask(SIGSTOP));
2533 spin_lock_irq(&tsk->sighand->siglock); 2532 __set_current_blocked(newset);
2534 __set_task_blocked(tsk, newset);
2535 spin_unlock_irq(&tsk->sighand->siglock);
2536} 2533}
2537 2534
2538void __set_current_blocked(const sigset_t *newset) 2535void __set_current_blocked(const sigset_t *newset)
@@ -3204,7 +3201,6 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, nset,
3204 if (nset) { 3201 if (nset) {
3205 if (copy_from_user(&new_set, nset, sizeof(*nset))) 3202 if (copy_from_user(&new_set, nset, sizeof(*nset)))
3206 return -EFAULT; 3203 return -EFAULT;
3207 new_set &= ~(sigmask(SIGKILL) | sigmask(SIGSTOP));
3208 3204
3209 new_blocked = current->blocked; 3205 new_blocked = current->blocked;
3210 3206
@@ -3222,7 +3218,7 @@ SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, nset,
3222 return -EINVAL; 3218 return -EINVAL;
3223 } 3219 }
3224 3220
3225 __set_current_blocked(&new_blocked); 3221 set_current_blocked(&new_blocked);
3226 } 3222 }
3227 3223
3228 if (oset) { 3224 if (oset) {
@@ -3286,6 +3282,7 @@ SYSCALL_DEFINE1(ssetmask, int, newmask)
3286 int old = current->blocked.sig[0]; 3282 int old = current->blocked.sig[0];
3287 sigset_t newset; 3283 sigset_t newset;
3288 3284
3285 siginitset(&newset, newmask);
3289 set_current_blocked(&newset); 3286 set_current_blocked(&newset);
3290 3287
3291 return old; 3288 return old;