Patches contributed by Eötvös Lorand University


commit ff96e612cba32510e263e17b213235fe5746397e
Merge: cd84a42f315e 577c9c456f0e
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Apr 8 17:02:50 2009 +0200

    Merge commit 'v2.6.30-rc1' into core/urgent
    
    Merge reason: need latest upstream to queue up dependent fix
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit a59dacfdc9ba06903652fa4883bf1106278b18ec
Author: Ingo Molnar <mingo@elte.hu>
Date:   Fri Oct 17 14:38:08 2008 +0200

    x86 early quirks: eliminate unused function
    
    Impact: cleanup
    
    this warning:
    
      arch/x86/kernel/early-quirks.c:99: warning: ‘ati_ixp4x0_rev’ defined but not used
    
    triggers because ati_ixp4x0_rev() is only used in the
    ACPI && X86_IO_APIC case.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/arch/x86/kernel/early-quirks.c b/arch/x86/kernel/early-quirks.c
index 76b8cd953dee..ebdb85cf2686 100644
--- a/arch/x86/kernel/early-quirks.c
+++ b/arch/x86/kernel/early-quirks.c
@@ -96,6 +96,7 @@ static void __init nvidia_bugs(int num, int slot, int func)
 
 }
 
+#if defined(CONFIG_ACPI) && defined(CONFIG_X86_IO_APIC)
 #if defined(CONFIG_ACPI) && defined(CONFIG_X86_IO_APIC)
 static u32 __init ati_ixp4x0_rev(int num, int slot, int func)
 {
@@ -114,6 +115,7 @@ static u32 __init ati_ixp4x0_rev(int num, int slot, int func)
 	d &= 0xff;
 	return d;
 }
+#endif
 
 static void __init ati_bugs(int num, int slot, int func)
 {

commit a34b50ddc265bae058c66661b096ef6384c5a8b1
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Apr 8 10:56:54 2009 +0200

    mm, x86, ptrace, bts: defer branch trace stopping, remove dead code
    
    Remove the unused free_locked_buffer() API.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 776b641f37e3..a3963ba23a6d 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -1320,7 +1320,6 @@ int vmemmap_populate(struct page *start_page, unsigned long pages, int node);
 void vmemmap_populate_print_last(void);
 
 extern void *alloc_locked_buffer(size_t size);
-extern void free_locked_buffer(void *buffer, size_t size);
 extern void refund_locked_buffer_memory(struct mm_struct *mm, size_t size);
 #endif /* __KERNEL__ */
 #endif /* _LINUX_MM_H */
diff --git a/mm/mlock.c b/mm/mlock.c
index 749383b442c7..28be15ead9c1 100644
--- a/mm/mlock.c
+++ b/mm/mlock.c
@@ -671,9 +671,3 @@ void refund_locked_buffer_memory(struct mm_struct *mm, size_t size)
 
 	up_write(&mm->mmap_sem);
 }
-
-void free_locked_buffer(void *buffer, size_t size)
-{
-	refund_locked_buffer_memory(current->mm, size);
-	kfree(buffer);
-}

commit 44bc9dc729e33a4ec6ebed4d0b6c08e8d20b42cf
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Apr 8 10:47:17 2009 +0200

    mm, x86, ptrace, bts: defer branch trace stopping, cleanup
    
    Andrew Morton noticed that mm.h needlessly includes sched.h - remove it.
    
    Reported-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --git a/include/linux/mm.h b/include/linux/mm.h
index 64d8ed2538ae..776b641f37e3 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -13,7 +13,6 @@
 #include <linux/prio_tree.h>
 #include <linux/debug_locks.h>
 #include <linux/mm_types.h>
-#include <linux/sched.h>
 
 struct mempolicy;
 struct anon_vma;

commit 5ea472a77f8e4811ceee3f44a9deda6ad6e8b789
Merge: 6c009ecef8cc 577c9c456f0e
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Apr 8 10:35:30 2009 +0200

    Merge commit 'v2.6.30-rc1' into perfcounters/core
    
    Conflicts:
            arch/powerpc/include/asm/systbl.h
            arch/powerpc/include/asm/unistd.h
            include/linux/init_task.h
    
    Merge reason: the conflicts are non-trivial: PowerPC placement
                  of sys_perf_counter_open has to be mixed with the
                  new preadv/pwrite syscalls.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --cc arch/powerpc/include/asm/systbl.h
index affa8caed7eb,d98a30dfd41c..a0b92de51c7e
--- a/arch/powerpc/include/asm/systbl.h
+++ b/arch/powerpc/include/asm/systbl.h
@@@ -322,4 -322,6 +322,6 @@@ SYSCALL_SPU(epoll_create1
  SYSCALL_SPU(dup3)
  SYSCALL_SPU(pipe2)
  SYSCALL(inotify_init1)
 -SYSCALL(ni_syscall)
 +SYSCALL_SPU(perf_counter_open)
+ COMPAT_SYS_SPU(preadv)
+ COMPAT_SYS_SPU(pwritev)
diff --cc arch/powerpc/include/asm/unistd.h
index 7cef5afe89d8,3f06f8ec81c5..4badac2d11d1
--- a/arch/powerpc/include/asm/unistd.h
+++ b/arch/powerpc/include/asm/unistd.h
@@@ -341,7 -341,8 +341,9 @@@
  #define __NR_dup3		316
  #define __NR_pipe2		317
  #define __NR_inotify_init1	318
 +#define __NR_perf_counter_open	319
+ #define __NR_preadv		320
+ #define __NR_pwritev		321
  
  #ifdef __KERNEL__
  
diff --cc include/linux/init_task.h
index ca226a91abee,dcfb93337e9a..c98866102817
--- a/include/linux/init_task.h
+++ b/include/linux/init_task.h
@@@ -195,9 -184,9 +196,10 @@@ extern struct cred init_cred
  	},								\
  	.dirties = INIT_PROP_LOCAL_SINGLE(dirties),			\
  	INIT_IDS							\
++	INIT_PERF_COUNTERS(tsk)						\
  	INIT_TRACE_IRQFLAGS						\
  	INIT_LOCKDEP							\
- 	INIT_PERF_COUNTERS(tsk)						\
+ 	INIT_FTRACE_GRAPH						\
  }
  
  

commit f8201abcb2badce7eaa6a3715f9a228cfd88a453
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Apr 7 14:16:50 2009 +0800

    ramfs: fix double freeing s_fs_info on failed mount
    
    If ramfs mount fails, s_fs_info will be freed twice in ramfs_fill_super()
    and ramfs_kill_sb(), leading to kernel oops.
    
    Consolidate and beautify the code.
    Make sure s_fs_info and s_root are in known good states.
    
    Acked-by: Wu Fengguang <fengguang.wu@intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

diff --git a/fs/ramfs/inode.c b/fs/ramfs/inode.c
index a404fb88e456..3a6b193d8444 100644
--- a/fs/ramfs/inode.c
+++ b/fs/ramfs/inode.c
@@ -221,22 +221,23 @@ static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
 	save_mount_options(sb, data);
 
 	fsi = kzalloc(sizeof(struct ramfs_fs_info), GFP_KERNEL);
+	sb->s_fs_info = fsi;
 	if (!fsi) {
 		err = -ENOMEM;
 		goto fail;
 	}
-	sb->s_fs_info = fsi;
 
 	err = ramfs_parse_options(data, &fsi->mount_opts);
 	if (err)
 		goto fail;
 
-	sb->s_maxbytes = MAX_LFS_FILESIZE;
-	sb->s_blocksize = PAGE_CACHE_SIZE;
-	sb->s_blocksize_bits = PAGE_CACHE_SHIFT;
-	sb->s_magic = RAMFS_MAGIC;
-	sb->s_op = &ramfs_ops;
-	sb->s_time_gran = 1;
+	sb->s_maxbytes		= MAX_LFS_FILESIZE;
+	sb->s_blocksize		= PAGE_CACHE_SIZE;
+	sb->s_blocksize_bits	= PAGE_CACHE_SHIFT;
+	sb->s_magic		= RAMFS_MAGIC;
+	sb->s_op		= &ramfs_ops;
+	sb->s_time_gran		= 1;
+
 	inode = ramfs_get_inode(sb, S_IFDIR | fsi->mount_opts.mode, 0);
 	if (!inode) {
 		err = -ENOMEM;
@@ -244,14 +245,16 @@ static int ramfs_fill_super(struct super_block * sb, void * data, int silent)
 	}
 
 	root = d_alloc_root(inode);
+	sb->s_root = root;
 	if (!root) {
 		err = -ENOMEM;
 		goto fail;
 	}
-	sb->s_root = root;
+
 	return 0;
 fail:
 	kfree(fsi);
+	sb->s_fs_info = NULL;
 	iput(inode);
 	return err;
 }

commit 86665c75da41889f92b774f31ea5a9a436f392a8
Merge: 93776a8ec746 1bbe2a83ab68
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Apr 7 14:41:14 2009 +0200

    Merge branch 'tracing/urgent' into tracing/ftrace

commit 93776a8ec746cf9d32c36e5a5b23d28d8be28826
Merge: 34886c8bc590 d508afb437da
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Apr 7 13:47:33 2009 +0200

    Merge branch 'linus' into tracing/core
    
    Merge reason: update to upstream tracing facilities
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

diff --cc kernel/trace/Kconfig
index 8a4136096d7d,2246141bda4d..23b96ebbf893
--- a/kernel/trace/Kconfig
+++ b/kernel/trace/Kconfig
@@@ -99,13 -99,11 +99,12 @@@ config FUNCTION_GRAPH_TRACE
  	help
  	  Enable the kernel to trace a function at both its return
  	  and its entry.
- 	  It's first purpose is to trace the duration of functions and
- 	  draw a call graph for each thread with some informations like
- 	  the return value.
- 	  This is done by setting the current return address on the current
- 	  task structure into a stack of calls.
+ 	  Its first purpose is to trace the duration of functions and
+ 	  draw a call graph for each thread with some information like
+ 	  the return value. This is done by setting the current return 
+ 	  address on the current task structure into a stack of calls.
  
 +
  config IRQSOFF_TRACER
  	bool "Interrupts-off Latency Tracer"
  	default n

commit a053958f073740219df1da596b42bfefdab634c4
Merge: 4fafd5b03875 e2494e1b42eb
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Apr 7 13:40:49 2009 +0200

    Merge branch 'tracing/blktrace-fixes' into tracing/urgent
    
    Merge reason: this used to be a tracing/blktrace-v2 devel topic still
                  cooking during the merge window - has propagated to fixes
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 2e8844e13ab73f1107aea4317a53ff5879f2e1d7
Merge: c78a3956b982 d508afb437da
Author: Ingo Molnar <mingo@elte.hu>
Date:   Tue Apr 7 13:34:26 2009 +0200

    Merge branch 'linus' into tracing/hw-branch-tracing
    
    Merge reason: update to latest tracing and ptrace APIs
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>