Merge branch 'linus' into sched/core
Merge reason: update to latest upstream Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -1543,7 +1543,7 @@ static unsigned long cpu_avg_load_per_task(int cpu)
|
||||
|
||||
#ifdef CONFIG_FAIR_GROUP_SCHED
|
||||
|
||||
static __read_mostly unsigned long *update_shares_data;
|
||||
static __read_mostly unsigned long __percpu *update_shares_data;
|
||||
|
||||
static void __set_se_shares(struct sched_entity *se, unsigned long shares);
|
||||
|
||||
@@ -2604,7 +2604,7 @@ void wake_up_new_task(struct task_struct *p, unsigned long clone_flags)
|
||||
{
|
||||
unsigned long flags;
|
||||
struct rq *rq;
|
||||
int cpu = get_cpu();
|
||||
int cpu __maybe_unused = get_cpu();
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/*
|
||||
@@ -4289,7 +4289,7 @@ int can_nice(const struct task_struct *p, const int nice)
|
||||
/* convert nice value [19,-20] to rlimit style value [1,40] */
|
||||
int nice_rlim = 20 - nice;
|
||||
|
||||
return (nice_rlim <= p->signal->rlim[RLIMIT_NICE].rlim_cur ||
|
||||
return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
|
||||
capable(CAP_SYS_NICE));
|
||||
}
|
||||
|
||||
@@ -4466,7 +4466,7 @@ recheck:
|
||||
|
||||
if (!lock_task_sighand(p, &flags))
|
||||
return -ESRCH;
|
||||
rlim_rtprio = p->signal->rlim[RLIMIT_RTPRIO].rlim_cur;
|
||||
rlim_rtprio = task_rlimit(p, RLIMIT_RTPRIO);
|
||||
unlock_task_sighand(p, &flags);
|
||||
|
||||
/* can't set/change the rt policy */
|
||||
@@ -4837,7 +4837,9 @@ SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len,
|
||||
int ret;
|
||||
cpumask_var_t mask;
|
||||
|
||||
if (len < cpumask_size())
|
||||
if (len < nr_cpu_ids)
|
||||
return -EINVAL;
|
||||
if (len & (sizeof(unsigned long)-1))
|
||||
return -EINVAL;
|
||||
|
||||
if (!alloc_cpumask_var(&mask, GFP_KERNEL))
|
||||
@@ -4845,10 +4847,12 @@ SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len,
|
||||
|
||||
ret = sched_getaffinity(pid, mask);
|
||||
if (ret == 0) {
|
||||
if (copy_to_user(user_mask_ptr, mask, cpumask_size()))
|
||||
size_t retlen = min_t(size_t, len, cpumask_size());
|
||||
|
||||
if (copy_to_user(user_mask_ptr, mask, retlen))
|
||||
ret = -EFAULT;
|
||||
else
|
||||
ret = cpumask_size();
|
||||
ret = retlen;
|
||||
}
|
||||
free_cpumask_var(mask);
|
||||
|
||||
@@ -7338,11 +7342,13 @@ static ssize_t sched_power_savings_store(const char *buf, size_t count, int smt)
|
||||
|
||||
#ifdef CONFIG_SCHED_MC
|
||||
static ssize_t sched_mc_power_savings_show(struct sysdev_class *class,
|
||||
struct sysdev_class_attribute *attr,
|
||||
char *page)
|
||||
{
|
||||
return sprintf(page, "%u\n", sched_mc_power_savings);
|
||||
}
|
||||
static ssize_t sched_mc_power_savings_store(struct sysdev_class *class,
|
||||
struct sysdev_class_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
return sched_power_savings_store(buf, count, 0);
|
||||
@@ -7354,11 +7360,13 @@ static SYSDEV_CLASS_ATTR(sched_mc_power_savings, 0644,
|
||||
|
||||
#ifdef CONFIG_SCHED_SMT
|
||||
static ssize_t sched_smt_power_savings_show(struct sysdev_class *dev,
|
||||
struct sysdev_class_attribute *attr,
|
||||
char *page)
|
||||
{
|
||||
return sprintf(page, "%u\n", sched_smt_power_savings);
|
||||
}
|
||||
static ssize_t sched_smt_power_savings_store(struct sysdev_class *dev,
|
||||
struct sysdev_class_attribute *attr,
|
||||
const char *buf, size_t count)
|
||||
{
|
||||
return sched_power_savings_store(buf, count, 1);
|
||||
@@ -8742,7 +8750,7 @@ struct cgroup_subsys cpu_cgroup_subsys = {
|
||||
struct cpuacct {
|
||||
struct cgroup_subsys_state css;
|
||||
/* cpuusage holds pointer to a u64-type object on every cpu */
|
||||
u64 *cpuusage;
|
||||
u64 __percpu *cpuusage;
|
||||
struct percpu_counter cpustat[CPUACCT_STAT_NSTATS];
|
||||
struct cpuacct *parent;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user