Merge branch 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6
authorLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 4 Dec 2007 17:37:39 +0000 (09:37 -0800)
committerLinus Torvalds <torvalds@woody.linux-foundation.org>
Tue, 4 Dec 2007 17:37:39 +0000 (09:37 -0800)
* 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
  [S390] Make sure the restore psw masks are initialized.
  [S390] Fix compile error on 31bit without preemption
  [S390] dcssblk: prevent early access without own make_request function
  [S390] cio: add missing reprobe loop end statement
  [S390] cio: Issue SenseID per path.

MAINTAINERS
arch/x86/Kconfig
arch/x86/kernel/cpu/intel_cacheinfo.c
arch/x86/kernel/nmi_32.c
arch/x86/kernel/nmi_64.c
arch/x86/kernel/topology.c
drivers/s390/net/ctcmain.c
kernel/sched.c
kernel/sched_fair.c

index 2bbe40ea4d10e8217dfa3e8b5b6e3d715814aca3..3002cc811c10bfe5ead178568993ddf619aa3b37 100644 (file)
@@ -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
index 368864dfe6eb635ef210f046ec351f04e96f42ef..391cb18941276dc47d2404ff70b95a85723a3dc0 100644 (file)
@@ -148,7 +148,8 @@ config X86_SMP
 
 config X86_HT
        bool
-       depends on SMP && !(X86_VISWS || X86_VOYAGER || MK8)
+       depends on SMP
+       depends on (X86_32 && !(X86_VISWS || X86_VOYAGER)) || (X86_64 && !MK8)
        default y
 
 config X86_BIOS_REBOOT
index 9921b01fe19907bd9fb22dc9ca00d3d61e9c4381..606fe4d55a91f0ee303bc78b08953881416743bd 100644 (file)
@@ -497,7 +497,7 @@ static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index) {}
 static void __cpuinit cache_remove_shared_cpu_map(unsigned int cpu, int index) {}
 #endif
 
-static void free_cache_attributes(unsigned int cpu)
+static void __cpuinit free_cache_attributes(unsigned int cpu)
 {
        int i;
 
index f5cc47c60b1372729568c5c0f7fdd5bad369b70e..80ca72e5ac29f4fc9e3f41da4d428f31ea658896 100644 (file)
@@ -106,7 +106,8 @@ static int __init check_nmi_watchdog(void)
                if (!per_cpu(wd_enabled, cpu))
                        continue;
                if (nmi_count(cpu) - prev_nmi_count[cpu] <= 5) {
-                       printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n",
+                       printk(KERN_WARNING "WARNING: CPU#%d: NMI "
+                               "appears to be stuck (%d->%d)!\n",
                                cpu,
                                prev_nmi_count[cpu],
                                nmi_count(cpu));
index a576fd740062d3a7190f2ae5e5566c8baf2400c7..4253c4e8849cd3abb29c519dc2d4d36d6b6627c3 100644 (file)
@@ -109,7 +109,8 @@ int __init check_nmi_watchdog (void)
                if (!per_cpu(wd_enabled, cpu))
                        continue;
                if (cpu_pda(cpu)->__nmi_count - counts[cpu] <= 5) {
-                       printk("CPU#%d: NMI appears to be stuck (%d->%d)!\n",
+                       printk(KERN_WARNING "WARNING: CPU#%d: NMI "
+                              "appears to be stuck (%d->%d)!\n",
                               cpu,
                               counts[cpu],
                               cpu_pda(cpu)->__nmi_count);
index 8caa0b777466218fcb04d4a706ff155588200942..7e16d675eb850530a72796adba4aca48806d3001 100644 (file)
@@ -33,7 +33,7 @@
 
 static struct i386_cpu cpu_devices[NR_CPUS];
 
-int arch_register_cpu(int num)
+int __cpuinit arch_register_cpu(int num)
 {
        /*
         * CPU0 cannot be offlined due to several
@@ -53,7 +53,8 @@ int arch_register_cpu(int num)
 }
 
 #ifdef CONFIG_HOTPLUG_CPU
-void arch_unregister_cpu(int num) {
+void arch_unregister_cpu(int num)
+{
        return unregister_cpu(&cpu_devices[num].cpu);
 }
 EXPORT_SYMBOL(arch_register_cpu);
index b3b6f654365ca512a88128c742a95d1be5e77127..97adc701a819404da67bcbd6c55f973b868212ae 100644 (file)
@@ -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);
 }
 
 
index 59ff6b140edbdbab1cf0923c4267aef437708e1d..b062856b946c4fbe4387763b0fdd61f9ac48625b 100644 (file)
@@ -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);
index 37bb265598dbd754afee7ad37a8f84d5aa25a61f..c33f0ceb3de9a64dc43538f7d9427c89a4b98eeb 100644 (file)
@@ -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'.