diff options
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/audit.c | 6 | ||||
| -rw-r--r-- | kernel/auditfilter.c | 3 | ||||
| -rw-r--r-- | kernel/hrtimer.c | 2 | ||||
| -rw-r--r-- | kernel/rcuclassic.c | 16 | ||||
| -rw-r--r-- | kernel/sched.c | 4 | ||||
| -rw-r--r-- | kernel/sysctl.c | 12 | ||||
| -rw-r--r-- | kernel/timer.c | 10 |
7 files changed, 26 insertions, 27 deletions
diff --git a/kernel/audit.c b/kernel/audit.c index e8692a5748c2..e092f1c0ce30 100644 --- a/kernel/audit.c +++ b/kernel/audit.c | |||
| @@ -738,7 +738,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
| 738 | if (!audit_enabled && msg_type != AUDIT_USER_AVC) | 738 | if (!audit_enabled && msg_type != AUDIT_USER_AVC) |
| 739 | return 0; | 739 | return 0; |
| 740 | 740 | ||
| 741 | err = audit_filter_user(&NETLINK_CB(skb), msg_type); | 741 | err = audit_filter_user(&NETLINK_CB(skb)); |
| 742 | if (err == 1) { | 742 | if (err == 1) { |
| 743 | err = 0; | 743 | err = 0; |
| 744 | if (msg_type == AUDIT_USER_TTY) { | 744 | if (msg_type == AUDIT_USER_TTY) { |
| @@ -779,7 +779,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
| 779 | } | 779 | } |
| 780 | /* fallthrough */ | 780 | /* fallthrough */ |
| 781 | case AUDIT_LIST: | 781 | case AUDIT_LIST: |
| 782 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, | 782 | err = audit_receive_filter(msg_type, NETLINK_CB(skb).pid, |
| 783 | uid, seq, data, nlmsg_len(nlh), | 783 | uid, seq, data, nlmsg_len(nlh), |
| 784 | loginuid, sessionid, sid); | 784 | loginuid, sessionid, sid); |
| 785 | break; | 785 | break; |
| @@ -798,7 +798,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh) | |||
| 798 | } | 798 | } |
| 799 | /* fallthrough */ | 799 | /* fallthrough */ |
| 800 | case AUDIT_LIST_RULES: | 800 | case AUDIT_LIST_RULES: |
| 801 | err = audit_receive_filter(nlh->nlmsg_type, NETLINK_CB(skb).pid, | 801 | err = audit_receive_filter(msg_type, NETLINK_CB(skb).pid, |
| 802 | uid, seq, data, nlmsg_len(nlh), | 802 | uid, seq, data, nlmsg_len(nlh), |
| 803 | loginuid, sessionid, sid); | 803 | loginuid, sessionid, sid); |
| 804 | break; | 804 | break; |
diff --git a/kernel/auditfilter.c b/kernel/auditfilter.c index 0e0bd27e6512..98c50cc671bb 100644 --- a/kernel/auditfilter.c +++ b/kernel/auditfilter.c | |||
| @@ -1544,6 +1544,7 @@ static void audit_log_rule_change(uid_t loginuid, u32 sessionid, u32 sid, | |||
| 1544 | * @data: payload data | 1544 | * @data: payload data |
| 1545 | * @datasz: size of payload data | 1545 | * @datasz: size of payload data |
| 1546 | * @loginuid: loginuid of sender | 1546 | * @loginuid: loginuid of sender |
| 1547 | * @sessionid: sessionid for netlink audit message | ||
| 1547 | * @sid: SE Linux Security ID of sender | 1548 | * @sid: SE Linux Security ID of sender |
| 1548 | */ | 1549 | */ |
| 1549 | int audit_receive_filter(int type, int pid, int uid, int seq, void *data, | 1550 | int audit_receive_filter(int type, int pid, int uid, int seq, void *data, |
| @@ -1720,7 +1721,7 @@ static int audit_filter_user_rules(struct netlink_skb_parms *cb, | |||
| 1720 | return 1; | 1721 | return 1; |
| 1721 | } | 1722 | } |
| 1722 | 1723 | ||
| 1723 | int audit_filter_user(struct netlink_skb_parms *cb, int type) | 1724 | int audit_filter_user(struct netlink_skb_parms *cb) |
| 1724 | { | 1725 | { |
| 1725 | enum audit_state state = AUDIT_DISABLED; | 1726 | enum audit_state state = AUDIT_DISABLED; |
| 1726 | struct audit_entry *e; | 1727 | struct audit_entry *e; |
diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c index 421be5fe5cc7..543d9ca9b4f4 100644 --- a/kernel/hrtimer.c +++ b/kernel/hrtimer.c | |||
| @@ -1078,7 +1078,7 @@ ktime_t hrtimer_get_remaining(const struct hrtimer *timer) | |||
| 1078 | } | 1078 | } |
| 1079 | EXPORT_SYMBOL_GPL(hrtimer_get_remaining); | 1079 | EXPORT_SYMBOL_GPL(hrtimer_get_remaining); |
| 1080 | 1080 | ||
| 1081 | #if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ) | 1081 | #ifdef CONFIG_NO_HZ |
| 1082 | /** | 1082 | /** |
| 1083 | * hrtimer_get_next_event - get the time until next expiry event | 1083 | * hrtimer_get_next_event - get the time until next expiry event |
| 1084 | * | 1084 | * |
diff --git a/kernel/rcuclassic.c b/kernel/rcuclassic.c index f4ffbd0f306f..a38895a5b8e2 100644 --- a/kernel/rcuclassic.c +++ b/kernel/rcuclassic.c | |||
| @@ -89,8 +89,22 @@ static void force_quiescent_state(struct rcu_data *rdp, | |||
| 89 | /* | 89 | /* |
| 90 | * Don't send IPI to itself. With irqs disabled, | 90 | * Don't send IPI to itself. With irqs disabled, |
| 91 | * rdp->cpu is the current cpu. | 91 | * rdp->cpu is the current cpu. |
| 92 | * | ||
| 93 | * cpu_online_map is updated by the _cpu_down() | ||
| 94 | * using stop_machine_run(). Since we're in irqs disabled | ||
| 95 | * section, stop_machine_run() is not exectuting, hence | ||
| 96 | * the cpu_online_map is stable. | ||
| 97 | * | ||
| 98 | * However, a cpu might have been offlined _just_ before | ||
| 99 | * we disabled irqs while entering here. | ||
| 100 | * And rcu subsystem might not yet have handled the CPU_DEAD | ||
| 101 | * notification, leading to the offlined cpu's bit | ||
| 102 | * being set in the rcp->cpumask. | ||
| 103 | * | ||
| 104 | * Hence cpumask = (rcp->cpumask & cpu_online_map) to prevent | ||
| 105 | * sending smp_reschedule() to an offlined CPU. | ||
| 92 | */ | 106 | */ |
| 93 | cpumask = rcp->cpumask; | 107 | cpus_and(cpumask, rcp->cpumask, cpu_online_map); |
| 94 | cpu_clear(rdp->cpu, cpumask); | 108 | cpu_clear(rdp->cpu, cpumask); |
| 95 | for_each_cpu_mask(cpu, cpumask) | 109 | for_each_cpu_mask(cpu, cpumask) |
| 96 | smp_send_reschedule(cpu); | 110 | smp_send_reschedule(cpu); |
diff --git a/kernel/sched.c b/kernel/sched.c index 3aaa5c8cb421..94ead43eda62 100644 --- a/kernel/sched.c +++ b/kernel/sched.c | |||
| @@ -5887,6 +5887,7 @@ static void migrate_dead_tasks(unsigned int dead_cpu) | |||
| 5887 | next = pick_next_task(rq, rq->curr); | 5887 | next = pick_next_task(rq, rq->curr); |
| 5888 | if (!next) | 5888 | if (!next) |
| 5889 | break; | 5889 | break; |
| 5890 | next->sched_class->put_prev_task(rq, next); | ||
| 5890 | migrate_dead(dead_cpu, next); | 5891 | migrate_dead(dead_cpu, next); |
| 5891 | 5892 | ||
| 5892 | } | 5893 | } |
| @@ -8501,6 +8502,9 @@ int sched_group_set_rt_period(struct task_group *tg, long rt_period_us) | |||
| 8501 | rt_period = (u64)rt_period_us * NSEC_PER_USEC; | 8502 | rt_period = (u64)rt_period_us * NSEC_PER_USEC; |
| 8502 | rt_runtime = tg->rt_bandwidth.rt_runtime; | 8503 | rt_runtime = tg->rt_bandwidth.rt_runtime; |
| 8503 | 8504 | ||
| 8505 | if (rt_period == 0) | ||
| 8506 | return -EINVAL; | ||
| 8507 | |||
| 8504 | return tg_set_bandwidth(tg, rt_period, rt_runtime); | 8508 | return tg_set_bandwidth(tg, rt_period, rt_runtime); |
| 8505 | } | 8509 | } |
| 8506 | 8510 | ||
diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 29116652dca8..f6d2e57b99a0 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c | |||
| @@ -132,8 +132,6 @@ extern int sysctl_userprocess_debug; | |||
| 132 | extern int spin_retry; | 132 | extern int spin_retry; |
| 133 | #endif | 133 | #endif |
| 134 | 134 | ||
| 135 | extern int sysctl_hz_timer; | ||
| 136 | |||
| 137 | #ifdef CONFIG_BSD_PROCESS_ACCT | 135 | #ifdef CONFIG_BSD_PROCESS_ACCT |
| 138 | extern int acct_parm[]; | 136 | extern int acct_parm[]; |
| 139 | #endif | 137 | #endif |
| @@ -563,16 +561,6 @@ static struct ctl_table kern_table[] = { | |||
| 563 | .proc_handler = &proc_dointvec, | 561 | .proc_handler = &proc_dointvec, |
| 564 | }, | 562 | }, |
| 565 | #endif | 563 | #endif |
| 566 | #ifdef CONFIG_NO_IDLE_HZ | ||
| 567 | { | ||
| 568 | .ctl_name = KERN_HZ_TIMER, | ||
| 569 | .procname = "hz_timer", | ||
| 570 | .data = &sysctl_hz_timer, | ||
| 571 | .maxlen = sizeof(int), | ||
| 572 | .mode = 0644, | ||
| 573 | .proc_handler = &proc_dointvec, | ||
| 574 | }, | ||
| 575 | #endif | ||
| 576 | { | 564 | { |
| 577 | .ctl_name = KERN_S390_USER_DEBUG_LOGGING, | 565 | .ctl_name = KERN_S390_USER_DEBUG_LOGGING, |
| 578 | .procname = "userprocess_debug", | 566 | .procname = "userprocess_debug", |
diff --git a/kernel/timer.c b/kernel/timer.c index ceacc6626572..ef3fa6906e8f 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
| @@ -812,7 +812,7 @@ static inline void __run_timers(struct tvec_base *base) | |||
| 812 | spin_unlock_irq(&base->lock); | 812 | spin_unlock_irq(&base->lock); |
| 813 | } | 813 | } |
| 814 | 814 | ||
| 815 | #if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ) | 815 | #ifdef CONFIG_NO_HZ |
| 816 | /* | 816 | /* |
| 817 | * Find out when the next timer event is due to happen. This | 817 | * Find out when the next timer event is due to happen. This |
| 818 | * is used on S/390 to stop all activity when a cpus is idle. | 818 | * is used on S/390 to stop all activity when a cpus is idle. |
| @@ -947,14 +947,6 @@ unsigned long get_next_timer_interrupt(unsigned long now) | |||
| 947 | 947 | ||
| 948 | return cmp_next_hrtimer_event(now, expires); | 948 | return cmp_next_hrtimer_event(now, expires); |
| 949 | } | 949 | } |
| 950 | |||
| 951 | #ifdef CONFIG_NO_IDLE_HZ | ||
| 952 | unsigned long next_timer_interrupt(void) | ||
| 953 | { | ||
| 954 | return get_next_timer_interrupt(jiffies); | ||
| 955 | } | ||
| 956 | #endif | ||
| 957 | |||
| 958 | #endif | 950 | #endif |
| 959 | 951 | ||
| 960 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING | 952 | #ifndef CONFIG_VIRT_CPU_ACCOUNTING |
