From 534df046bc7ae72f9e50d2ec9163ef610a243d65 Mon Sep 17 00:00:00 2001 From: Linus Torvalds Date: Tue, 4 Dec 2007 09:28:45 -0800 Subject: [PATCH] --- yaml --- r: 74561 b: refs/heads/master c: a3aaabd6b402d8b0ede5aa4a040e9fdbbfdf9116 h: refs/heads/master i: 74559: 0912f4b7342dd470533222f09c539145840ed3ba v: v3 --- [refs] | 2 +- trunk/MAINTAINERS | 7 ------- trunk/drivers/s390/net/ctcmain.c | 1 - trunk/kernel/sched.c | 14 +++++++++----- trunk/kernel/sched_fair.c | 7 ++++--- 5 files changed, 14 insertions(+), 17 deletions(-) diff --git a/[refs] b/[refs] index c15a1a3f0bcf..8d23d97d9881 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: da54becc7166b5fad70538acea5e93bdd83dd8a6 +refs/heads/master: a3aaabd6b402d8b0ede5aa4a040e9fdbbfdf9116 diff --git a/trunk/MAINTAINERS b/trunk/MAINTAINERS index 2bbe40ea4d10..3002cc811c10 100644 --- a/trunk/MAINTAINERS +++ b/trunk/MAINTAINERS @@ -2598,13 +2598,6 @@ L: https://tango.0pointer.de/mailman/listinfo/s270-linux W: http://0pointer.de/lennart/tchibo.html S: Maintained -MTRR AND SIMILAR SUPPORT [i386] -P: Richard Gooch -M: rgooch@atnf.csiro.au -L: linux-kernel@vger.kernel.org -W: http://www.atnf.csiro.au/~rgooch/linux/kernel-patches.html -S: Maintained - MULTIMEDIA CARD (MMC), SECURE DIGITAL (SD) AND SDIO SUBSYSTEM P: Pierre Ossman M: drzeus-mmc@drzeus.cx diff --git a/trunk/drivers/s390/net/ctcmain.c b/trunk/drivers/s390/net/ctcmain.c index b3b6f654365c..97adc701a819 100644 --- a/trunk/drivers/s390/net/ctcmain.c +++ b/trunk/drivers/s390/net/ctcmain.c @@ -2802,7 +2802,6 @@ void ctc_init_netdevice(struct net_device * dev) dev->type = ARPHRD_SLIP; dev->tx_queue_len = 100; dev->flags = IFF_POINTOPOINT | IFF_NOARP; - SET_MODULE_OWNER(dev); } diff --git a/trunk/kernel/sched.c b/trunk/kernel/sched.c index 59ff6b140edb..b062856b946c 100644 --- a/trunk/kernel/sched.c +++ b/trunk/kernel/sched.c @@ -4850,17 +4850,21 @@ long sys_sched_rr_get_interval(pid_t pid, struct timespec __user *interval) if (retval) goto out_unlock; - if (p->policy == SCHED_FIFO) - time_slice = 0; - else if (p->policy == SCHED_RR) + /* + * Time slice is 0 for SCHED_FIFO tasks and for SCHED_OTHER + * tasks that are on an otherwise idle runqueue: + */ + time_slice = 0; + if (p->policy == SCHED_RR) { time_slice = DEF_TIMESLICE; - else { + } else { struct sched_entity *se = &p->se; unsigned long flags; struct rq *rq; rq = task_rq_lock(p, &flags); - time_slice = NS_TO_JIFFIES(sched_slice(cfs_rq_of(se), se)); + if (rq->cfs.load.weight) + time_slice = NS_TO_JIFFIES(sched_slice(&rq->cfs, se)); task_rq_unlock(rq, &flags); } read_unlock(&tasklist_lock); diff --git a/trunk/kernel/sched_fair.c b/trunk/kernel/sched_fair.c index 37bb265598db..c33f0ceb3de9 100644 --- a/trunk/kernel/sched_fair.c +++ b/trunk/kernel/sched_fair.c @@ -799,8 +799,9 @@ static void dequeue_task_fair(struct rq *rq, struct task_struct *p, int sleep) */ static void yield_task_fair(struct rq *rq) { - struct cfs_rq *cfs_rq = task_cfs_rq(rq->curr); - struct sched_entity *rightmost, *se = &rq->curr->se; + struct task_struct *curr = rq->curr; + struct cfs_rq *cfs_rq = task_cfs_rq(curr); + struct sched_entity *rightmost, *se = &curr->se; /* * Are we the only task in the tree? @@ -808,7 +809,7 @@ static void yield_task_fair(struct rq *rq) if (unlikely(cfs_rq->nr_running == 1)) return; - if (likely(!sysctl_sched_compat_yield)) { + if (likely(!sysctl_sched_compat_yield) && curr->policy != SCHED_BATCH) { __update_rq_clock(rq); /* * Update run-time statistics of the 'current'.