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);