Patches contributed by Eötvös Lorand University


commit d4439087d316613548c70472291bf4ca646ce24b
Merge: 26d809af6397 30a2f3c60a84
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Aug 14 10:55:26 2008 +0200

    Merge commit 'v2.6.27-rc3' into x86/xsave
    
    Conflicts:
    
            arch/x86/kernel/genapic_64.c
            include/asm-x86/kvm_host.h
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --cc arch/x86/kernel/io_apic_64.c
index b9950dae59b7,61a83b70c18f..e63282e78864
--- a/arch/x86/kernel/io_apic_64.c
+++ b/arch/x86/kernel/io_apic_64.c
@@@ -898,18 -838,7 +911,10 @@@ void __setup_vector_irq(int cpu
  	}
  }
  
- void setup_vector_irq(int cpu)
- {
- 	spin_lock(&vector_lock);
- 	__setup_vector_irq(smp_processor_id());
- 	spin_unlock(&vector_lock);
- }
- 
- 
  static struct irq_chip ioapic_chip;
 +#ifdef CONFIG_INTR_REMAP
 +static struct irq_chip ir_ioapic_chip;
 +#endif
  
  static void ioapic_register_intr(int irq, unsigned long trigger)
  {
diff --cc include/asm-x86/kvm_host.h
index 95eb742765b3,0f3c53114614..72e9a525f91a
--- a/include/asm-x86/kvm_host.h
+++ b/include/asm-x86/kvm_host.h
@@@ -729,4 -731,8 +731,8 @@@ asmlinkage void kvm_handle_fault_on_reb
  	KVM_EX_ENTRY " 666b, 667b \n\t" \
  	".popsection"
  
+ #define KVM_ARCH_WANT_MMU_NOTIFIER
+ int kvm_unmap_hva(struct kvm *kvm, unsigned long hva);
+ int kvm_age_hva(struct kvm *kvm, unsigned long hva);
+ 
 -#endif
 +#endif /* ASM_X86__KVM_HOST_H */

commit 73909f7a665991013dcff42a815fda76d3a7300a
Merge: d6672c501852 30a2f3c60a84
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Aug 13 13:56:44 2008 +0200

    Merge commit 'v2.6.27-rc3' into core/urgent

commit a12e61df4fa1cfae7a6b76976fa65a6fcb048e3f
Merge: 7b27718bdb1b 30a2f3c60a84
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Aug 13 13:08:47 2008 +0200

    Merge commit 'v2.6.27-rc3' into x86/urgent

commit 26d809af6397ce5c37f5c44d89734d19cce1ad25
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Aug 13 12:46:26 2008 +0200

    x86: fix xsave build error
    
    fix this build failure with certain glibc versions:
    
    In file included from /usr/include/bits/sigcontext.h:28,
                     from /usr/include/signal.h:333,
                     from Documentation/accounting/getdelays.c:24:
    /home/mingo/tip/usr/include/asm/sigcontext.h:191: error: expected specifier-qualifier-list before ‘u64’
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/asm-x86/sigcontext.h b/include/asm-x86/sigcontext.h
index 899fe2f8abb9..ee813f4fe5d5 100644
--- a/include/asm-x86/sigcontext.h
+++ b/include/asm-x86/sigcontext.h
@@ -264,9 +264,9 @@ struct sigcontext {
 #endif /* !__i386__ */
 
 struct _xsave_hdr {
-	u64 xstate_bv;
-	u64 reserved1[2];
-	u64 reserved2[5];
+	__u64 xstate_bv;
+	__u64 reserved1[2];
+	__u64 reserved2[5];
 };
 
 /*

commit d6672c501852d577097f6757c311d937aca0b04b
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Aug 1 11:23:50 2008 +0200

    lockdep: build fix
    
    fix:
    
     kernel/built-in.o: In function `lockdep_stats_show':
     lockdep_proc.c:(.text+0x3cb2f): undefined reference to `lockdep_count_forward_deps'
     kernel/built-in.o: In function `l_show':
     lockdep_proc.c:(.text+0x3d02b): undefined reference to `lockdep_count_forward_deps'
     lockdep_proc.c:(.text+0x3d047): undefined reference to `lockdep_count_backward_deps'
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/kernel/lockdep_internals.h b/kernel/lockdep_internals.h
index 55db193d366d..56b196932c08 100644
--- a/kernel/lockdep_internals.h
+++ b/kernel/lockdep_internals.h
@@ -50,8 +50,21 @@ extern unsigned int nr_process_chains;
 extern unsigned int max_lockdep_depth;
 extern unsigned int max_recursion_depth;
 
+#ifdef CONFIG_PROVE_LOCKING
 extern unsigned long lockdep_count_forward_deps(struct lock_class *);
 extern unsigned long lockdep_count_backward_deps(struct lock_class *);
+#else
+static inline unsigned long
+lockdep_count_forward_deps(struct lock_class *class)
+{
+	return 0;
+}
+static inline unsigned long
+lockdep_count_backward_deps(struct lock_class *class)
+{
+	return 0;
+}
+#endif
 
 #ifdef CONFIG_DEBUG_LOCKDEP
 /*

commit 23a0ee908cbfba3264d19729c67c22b20fa73886
Merge: cc7a486cac78 0f2bc27be27c
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Aug 12 00:11:49 2008 +0200

    Merge branch 'core/locking' into core/urgent

commit e26b33e9552c29c1d3fe67dc602c6264c29f5dc7
Merge: 279ef6bbb830 cf206bffbb75
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Aug 12 00:07:02 2008 +0200

    Merge branch 'sched/clock' into sched/urgent

commit f2556896597c43cb48f04b1c16214938a6ccce9a
Merge: 7c13e6a3d15a 10fec20ef5ee
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Aug 11 22:01:54 2008 +0200

    Merge branch 'linus' into x86/defconfig

commit e5f363e358cf16e4ad13a6826e15088c5495efe9
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Aug 11 12:37:27 2008 +0200

    lockdep: increase MAX_LOCKDEP_KEYS
    
    certain configs produce:
    
     [   70.076229] BUG: MAX_LOCKDEP_KEYS too low!
     [   70.080230] turning off the locking correctness validator.
    
    tune them up.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/linux/lockdep.h b/include/linux/lockdep.h
index c88aa3d8e87f..331e5f1c2d8e 100644
--- a/include/linux/lockdep.h
+++ b/include/linux/lockdep.h
@@ -190,7 +190,7 @@ struct lock_chain {
 	u64				chain_key;
 };
 
-#define MAX_LOCKDEP_KEYS_BITS		11
+#define MAX_LOCKDEP_KEYS_BITS		13
 /*
  * Subtract one because we offset hlock->class_idx by 1 in order
  * to make 0 mean no class. This avoids overflowing the class_idx

commit ced9cd40ac14111befd6b0c73ec90106c22a3fd7
Author: Ingo Molnar <mingo@elte.hu>
Date:   Mon Aug 11 14:38:12 2008 +0200

    printk: robustify printk, fix
    
    fix:
    
     include/linux/kernel.h: In function ‘printk_needs_cpu':
     include/linux/kernel.h:217: error: parameter name omitted
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/linux/kernel.h b/include/linux/kernel.h
index 113ac8d0425f..3652a4564126 100644
--- a/include/linux/kernel.h
+++ b/include/linux/kernel.h
@@ -200,8 +200,6 @@ extern struct ratelimit_state printk_ratelimit_state;
 extern int printk_ratelimit(void);
 extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
 				   unsigned int interval_msec);
-extern void printk_tick(void);
-extern int printk_needs_cpu(int);
 #else
 static inline int vprintk(const char *s, va_list args)
 	__attribute__ ((format (printf, 1, 0)));
@@ -213,10 +211,11 @@ static inline int printk_ratelimit(void) { return 0; }
 static inline bool printk_timed_ratelimit(unsigned long *caller_jiffies, \
 					  unsigned int interval_msec)	\
 		{ return false; }
-static inline void printk_tick(void) { }
-static inline int printk_needs_cpu(int) { return 0; }
 #endif
 
+extern int printk_needs_cpu(int cpu);
+extern void printk_tick(void);
+
 extern void asmlinkage __attribute__((format(printf, 1, 2)))
 	early_printk(const char *fmt, ...);