Patches contributed by Eötvös Lorand University


commit 5359c32eb7402124abc9964d5d53639fe0739cea
Merge: 8916edef5888 fe0bdec68b77
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Jan 5 13:53:39 2009 +0100

    Merge branch 'linus' into sched/urgent

commit c66b9906f863696159e05890bb7123269bb9a9de
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sun Jan 4 10:55:02 2009 +0100

    intel-iommu: fix build error with INTR_REMAP=y and DMAR=n
    
    dmar.o can be built in the CONFIG_INTR_REMAP=y case but
    iommu_calculate_agaw() is only available if VT-d is built as well.
    
    So create an inline version of iommu_calculate_agaw() for the
    !CONFIG_DMAR case. The iommu->agaw value wont be used in this
    case, but the code is cleaner (has less #ifdefs) if we have it around
    unconditionally.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/linux/dma_remapping.h b/include/linux/dma_remapping.h
index 136f170cecc2..af1dab41674b 100644
--- a/include/linux/dma_remapping.h
+++ b/include/linux/dma_remapping.h
@@ -17,7 +17,15 @@ struct dmar_domain;
 struct root_entry;
 
 extern void free_dmar_iommu(struct intel_iommu *iommu);
+
+#ifdef CONFIG_DMAR
 extern int iommu_calculate_agaw(struct intel_iommu *iommu);
+#else
+static inline int iommu_calculate_agaw(struct intel_iommu *iommu)
+{
+	return 0;
+}
+#endif
 
 extern int dmar_disabled;
 

commit 4010b0192ddf6ec7ec1b9feb9b0953692aeb7329
Merge: 79ff56ebd3ed 7d3b56ba37a9
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sun Jan 4 10:59:36 2009 +0100

    Merge branch 'linus' into core/urgent

commit 6bdf197b04b3ae7c85785bc5a9576f1bcb0ac7c0
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sat Jan 3 12:50:46 2009 +0100

    ia64: cpumask fix for is_affinity_mask_valid()
    
    Impact: build fix on ia64
    
    ia64's default_affinity_write() still had old cpumask_t usage:
    
     /home/mingo/tip/kernel/irq/proc.c: In function `default_affinity_write':
     /home/mingo/tip/kernel/irq/proc.c:114: error: incompatible type for argument 1 of `is_affinity_mask_valid'
     make[3]: *** [kernel/irq/proc.o] Error 1
     make[3]: *** Waiting for unfinished jobs....
    
    update it to cpumask_var_t.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/ia64/include/asm/irq.h b/arch/ia64/include/asm/irq.h
index 3627116fb0e2..36429a532630 100644
--- a/arch/ia64/include/asm/irq.h
+++ b/arch/ia64/include/asm/irq.h
@@ -27,7 +27,7 @@ irq_canonicalize (int irq)
 }
 
 extern void set_irq_affinity_info (unsigned int irq, int dest, int redir);
-bool is_affinity_mask_valid(cpumask_t cpumask);
+bool is_affinity_mask_valid(cpumask_var_t cpumask);
 
 #define is_affinity_mask_valid is_affinity_mask_valid
 
diff --git a/arch/ia64/kernel/irq.c b/arch/ia64/kernel/irq.c
index 0b6db53fedcf..95ff16cb05d8 100644
--- a/arch/ia64/kernel/irq.c
+++ b/arch/ia64/kernel/irq.c
@@ -112,11 +112,11 @@ void set_irq_affinity_info (unsigned int irq, int hwid, int redir)
 	}
 }
 
-bool is_affinity_mask_valid(cpumask_t cpumask)
+bool is_affinity_mask_valid(cpumask_var_t cpumask)
 {
 	if (ia64_platform_is("sn2")) {
 		/* Only allow one CPU to be specified in the smp_affinity mask */
-		if (cpus_weight(cpumask) != 1)
+		if (cpumask_weight(cpumask) != 1)
 			return false;
 	}
 	return true;
diff --git a/kernel/irq/proc.c b/kernel/irq/proc.c
index 2abd3a7716ed..aae3f742bcec 100644
--- a/kernel/irq/proc.c
+++ b/kernel/irq/proc.c
@@ -54,7 +54,7 @@ static ssize_t irq_affinity_proc_write(struct file *file,
 	if (err)
 		goto free_cpumask;
 
-	if (!is_affinity_mask_valid(*new_value)) {
+	if (!is_affinity_mask_valid(new_value)) {
 		err = -EINVAL;
 		goto free_cpumask;
 	}

commit 263ec6457bb23d57b575ede18ff6c3d11e0b4e96
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sat Jan 3 13:16:09 2009 +0100

    cpumask: convert RCU implementations, fix
    
    Impact: cleanup
    
    This warning:
    
     kernel/rcuclassic.c: In function ‘rcu_start_batch’:
     kernel/rcuclassic.c:397: warning: passing argument 1 of ‘cpumask_andnot’ from incompatible pointer type
    
    triggers because one usage site of rcp->cpumask was not converted
    to to_cpumask(rcp->cpumask). There's no ill effects of this bug.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/kernel/rcuclassic.c b/kernel/rcuclassic.c
index 6ec495f60ead..490934fc7ac3 100644
--- a/kernel/rcuclassic.c
+++ b/kernel/rcuclassic.c
@@ -394,7 +394,8 @@ static void rcu_start_batch(struct rcu_ctrlblk *rcp)
 		 * unnecessarily.
 		 */
 		smp_mb();
-		cpumask_andnot(&rcp->cpumask, cpu_online_mask, nohz_cpu_mask);
+		cpumask_andnot(to_cpumask(rcp->cpumask),
+			       cpu_online_mask, nohz_cpu_mask);
 
 		rcp->signaled = 0;
 	}

commit e465b535ce5b2318798c68e1454917204494bfe3
Merge: 7eb19553369c 5ece5c5192d0
Author: Ingo Molnar <mingo@elte.hu>
Date:   Sat Jan 3 18:54:51 2009 +0100

    Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask into cpus4096-v2

commit 47dabdc7fcd4daa52dcda72a1f18603dd168355d
Merge: 923a789b49c7 46814dded1b9
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jan 2 22:41:52 2009 +0100

    Merge branches 'x86/cleanups', 'x86/fpu' and 'x86/urgent' into x86/core

commit 923a789b49c7269a0245d5af6afe486188d940df
Merge: 103ceffb9501 b840d79631c8
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jan 2 22:41:36 2009 +0100

    Merge branch 'linus' into x86/cleanups
    
    Conflicts:
            arch/x86/kernel/reboot.c

diff --cc arch/x86/kernel/reboot.c
index a90913cccfb7,39643b1df061..bf088c61fa40
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@@ -12,7 -12,7 +12,8 @@@
  #include <asm/proto.h>
  #include <asm/reboot_fixups.h>
  #include <asm/reboot.h>
 +#include <asm/pci_x86.h>
+ #include <asm/virtext.h>
  
  #ifdef CONFIG_X86_32
  # include <linux/dmi.h>

commit 6680598b44ed3c0052d155522eb21fc5a00de5f3
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jan 2 18:53:14 2009 +0100

    Disallow gcc versions 3.{0,1}
    
    GCC 3.0 and 3.1 are too old to build a working kernel.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    [ This check got dropped as obsolete when I simplified the gcc header
      inclusion mess in f153b82121b0366fe0e5f9553545cce237335175, but Willy
      Tarreau reports actually having those old versions still..  -Linus ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/include/linux/compiler-gcc3.h b/include/linux/compiler-gcc3.h
index 2befe6513ce4..8005effc04f1 100644
--- a/include/linux/compiler-gcc3.h
+++ b/include/linux/compiler-gcc3.h
@@ -2,6 +2,10 @@
 #error "Please don't include <linux/compiler-gcc3.h> directly, include <linux/compiler.h> instead."
 #endif
 
+#if __GNUC_MINOR__ < 2
+# error Sorry, your compiler is too old - please upgrade it.
+#endif
+
 #if __GNUC_MINOR__ >= 3
 # define __used			__attribute__((__used__))
 #else

commit 609e5b71d0eca163df017ecfcf917b149875e744
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Jan 2 16:16:16 2009 +0100

    kbuild: Remove gcc 4.1.0 quirk from init/main.c
    
    Impact: cleanup
    
    We now have a cleaner check for gcc 4.1.0/4.1.1 trouble in
    include/linux/compiler-gcc4.h, so remove the 4.1.0 quirk from
    init/main.c.
    
    Reported-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Acked-by: Sam Ravnborg <sam@ravnborg.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/init/main.c b/init/main.c
index f5e64f20d2b0..ad8f9f53f8d1 100644
--- a/init/main.c
+++ b/init/main.c
@@ -75,15 +75,6 @@
 #include <asm/smp.h>
 #endif
 
-/*
- * This is one of the first .c files built. Error out early if we have compiler
- * trouble.
- */
-
-#if __GNUC__ == 4 && __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ == 0
-#warning gcc-4.1.0 is known to miscompile the kernel.  A different compiler version is recommended.
-#endif
-
 static int kernel_init(void *);
 
 extern void init_IRQ(void);