[kernel] r18253 - in dists/sid/linux-2.6/debian: . patches/features/all/rt patches/series

Uwe Kleine-König ukleinek-guest at alioth.debian.org
Sun Nov 13 14:21:27 UTC 2011


Author: ukleinek-guest
Date: Sun Nov 13 14:21:26 2011
New Revision: 18253

Log:
[amd64] Update rt featureset to 3.0.9-rt25

Added:
   dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.9-rt25.patch
      - copied, changed from r18252, dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.7-rt20.patch
   dists/sid/linux-2.6/debian/patches/series/7-extra
Deleted:
   dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.7-rt20.patch
   dists/sid/linux-2.6/debian/patches/series/6-extra
Modified:
   dists/sid/linux-2.6/debian/changelog

Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog	Sun Nov 13 14:21:17 2011	(r18252)
+++ dists/sid/linux-2.6/debian/changelog	Sun Nov 13 14:21:26 2011	(r18253)
@@ -12,6 +12,7 @@
     - kobj_uevent: Ignore if some listeners cannot handle message
     For the complete list of changes, see:
      http://www.kernel.org/pub/linux/kernel/v3.0/ChangeLog-3.0.9
+  * [amd64] Update rt featureset to 3.0.9-rt25
 
  -- Aurelien Jarno <aurel32 at debian.org>  Sun, 06 Nov 2011 12:20:59 +0100
 

Copied and modified: dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.9-rt25.patch (from r18252, dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.7-rt20.patch)
==============================================================================
--- dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.7-rt20.patch	Sun Nov 13 14:21:17 2011	(r18252, copy source)
+++ dists/sid/linux-2.6/debian/patches/features/all/rt/patch-3.0.9-rt25.patch	Sun Nov 13 14:21:26 2011	(r18253)
@@ -1,12 +1,10 @@
 [bwh: Dropped fix to kernel/taskstats.c applied separately in
  bugfix/all/Make-TASKSTATS-require-root-access.patch]
-[bwh/ukl: Updated raw spinlock changes in kernel/posix-cput-timers.c to apply after
- bugfix/all/cputime-Cure-lock-inversion.patch]
 
-Index: linux-2.6/mm/memory.c
+Index: linux-3.0/mm/memory.c
 ===================================================================
---- linux-2.6.orig/mm/memory.c
-+++ linux-2.6/mm/memory.c
+--- linux-3.0.orig/mm/memory.c
++++ linux-3.0/mm/memory.c
 @@ -1290,13 +1290,6 @@ static unsigned long unmap_page_range(st
  	return addr;
  }
@@ -90,10 +88,10 @@
 +}
 +
 +#endif
-Index: linux-2.6/kernel/sched_cpupri.c
+Index: linux-3.0/kernel/sched_cpupri.c
 ===================================================================
---- linux-2.6.orig/kernel/sched_cpupri.c
-+++ linux-2.6/kernel/sched_cpupri.c
+--- linux-3.0.orig/kernel/sched_cpupri.c
++++ linux-3.0/kernel/sched_cpupri.c
 @@ -47,9 +47,6 @@ static int convert_prio(int prio)
  	return cpupri;
  }
@@ -221,10 +219,10 @@
  		if (!zalloc_cpumask_var(&vec->mask, GFP_KERNEL))
  			goto cleanup;
  	}
-Index: linux-2.6/kernel/sched_cpupri.h
+Index: linux-3.0/kernel/sched_cpupri.h
 ===================================================================
---- linux-2.6.orig/kernel/sched_cpupri.h
-+++ linux-2.6/kernel/sched_cpupri.h
+--- linux-3.0.orig/kernel/sched_cpupri.h
++++ linux-3.0/kernel/sched_cpupri.h
 @@ -12,9 +12,8 @@
  /* values 2-101 are RT priorities 0-99 */
  
@@ -237,10 +235,10 @@
  };
  
  struct cpupri {
-Index: linux-2.6/mm/slab.c
+Index: linux-3.0/mm/slab.c
 ===================================================================
---- linux-2.6.orig/mm/slab.c
-+++ linux-2.6/mm/slab.c
+--- linux-3.0.orig/mm/slab.c
++++ linux-3.0/mm/slab.c
 @@ -116,6 +116,7 @@
  #include	<linux/kmemcheck.h>
  #include	<linux/memory.h>
@@ -939,10 +937,10 @@
  	}
  	name = cachep->name;
  	if (n[0] == n[1]) {
-Index: linux-2.6/kernel/lockdep.c
+Index: linux-3.0/kernel/lockdep.c
 ===================================================================
---- linux-2.6.orig/kernel/lockdep.c
-+++ linux-2.6/kernel/lockdep.c
+--- linux-3.0.orig/kernel/lockdep.c
++++ linux-3.0/kernel/lockdep.c
 @@ -2859,10 +2859,7 @@ static int mark_lock(struct task_struct 
  void lockdep_init_map(struct lockdep_map *lock, const char *name,
  		      struct lock_class_key *key, int subclass)
@@ -971,10 +969,10 @@
  
  	if (!debug_locks)
  		print_irqtrace_events(current);
-Index: linux-2.6/arch/x86/kernel/apic/apic.c
+Index: linux-3.0/arch/x86/kernel/apic/apic.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/apic/apic.c
-+++ linux-2.6/arch/x86/kernel/apic/apic.c
+--- linux-3.0.orig/arch/x86/kernel/apic/apic.c
++++ linux-3.0/arch/x86/kernel/apic/apic.c
 @@ -856,8 +856,8 @@ void __irq_entry smp_apic_timer_interrup
  	 * Besides, if we don't timer interrupts ignore the global
  	 * interrupt lock, which is the WrongThing (tm) to do.
@@ -1005,10 +1003,10 @@
  	/* First tickle the hardware, only then report what went on. -- REW */
  	v0 = apic_read(APIC_ESR);
  	apic_write(APIC_ESR, 0);
-Index: linux-2.6/arch/x86/kernel/apic/io_apic.c
+Index: linux-3.0/arch/x86/kernel/apic/io_apic.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/apic/io_apic.c
-+++ linux-2.6/arch/x86/kernel/apic/io_apic.c
+--- linux-3.0.orig/arch/x86/kernel/apic/io_apic.c
++++ linux-3.0/arch/x86/kernel/apic/io_apic.c
 @@ -2275,8 +2275,8 @@ asmlinkage void smp_irq_move_cleanup_int
  	unsigned vector, me;
  
@@ -1029,10 +1027,10 @@
  		do_unmask_irq = 1;
  		mask_ioapic(cfg);
  	}
-Index: linux-2.6/arch/x86/kernel/cpu/mcheck/mce.c
+Index: linux-3.0/arch/x86/kernel/cpu/mcheck/mce.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/mcheck/mce.c
-+++ linux-2.6/arch/x86/kernel/cpu/mcheck/mce.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/mcheck/mce.c
++++ linux-3.0/arch/x86/kernel/cpu/mcheck/mce.c
 @@ -38,6 +38,7 @@
  #include <linux/mm.h>
  #include <linux/debugfs.h>
@@ -1179,10 +1177,10 @@
  		smp_call_function_single(cpu, mce_reenable_cpu, &action, 1);
  		break;
  	case CPU_POST_DEAD:
-Index: linux-2.6/arch/x86/kernel/cpu/mcheck/therm_throt.c
+Index: linux-3.0/arch/x86/kernel/cpu/mcheck/therm_throt.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c
-+++ linux-2.6/arch/x86/kernel/cpu/mcheck/therm_throt.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/mcheck/therm_throt.c
++++ linux-3.0/arch/x86/kernel/cpu/mcheck/therm_throt.c
 @@ -396,8 +396,8 @@ static void (*smp_thermal_vector)(void) 
  
  asmlinkage void smp_thermal_interrupt(struct pt_regs *regs)
@@ -1193,10 +1191,10 @@
  	inc_irq_stat(irq_thermal_count);
  	smp_thermal_vector();
  	irq_exit();
-Index: linux-2.6/arch/x86/kernel/cpu/mcheck/threshold.c
+Index: linux-3.0/arch/x86/kernel/cpu/mcheck/threshold.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/mcheck/threshold.c
-+++ linux-2.6/arch/x86/kernel/cpu/mcheck/threshold.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/mcheck/threshold.c
++++ linux-3.0/arch/x86/kernel/cpu/mcheck/threshold.c
 @@ -19,8 +19,8 @@ void (*mce_threshold_vector)(void) = def
  
  asmlinkage void smp_threshold_interrupt(void)
@@ -1207,10 +1205,10 @@
  	inc_irq_stat(irq_threshold_count);
  	mce_threshold_vector();
  	irq_exit();
-Index: linux-2.6/arch/x86/kernel/irq.c
+Index: linux-3.0/arch/x86/kernel/irq.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/irq.c
-+++ linux-2.6/arch/x86/kernel/irq.c
+--- linux-3.0.orig/arch/x86/kernel/irq.c
++++ linux-3.0/arch/x86/kernel/irq.c
 @@ -180,8 +180,8 @@ unsigned int __irq_entry do_IRQ(struct p
  	unsigned vector = ~regs->orig_ax;
  	unsigned irq;
@@ -1234,282 +1232,11 @@
  	inc_irq_stat(x86_platform_ipis);
  
  	if (x86_platform_ipi_callback)
-Index: linux-2.6/kernel/posix-cpu-timers.c
+ static struct genl_ops cgroupstats_ops = {
+Index: linux-3.0/kernel/trace/ftrace.c
 ===================================================================
---- linux-2.6.orig/kernel/posix-cpu-timers.c
-+++ linux-2.6/kernel/posix-cpu-timers.c
-@@ -282,13 +282,13 @@ void thread_group_cputimer(struct task_s
- 		 * it.
- 		 */
- 		thread_group_cputime(tsk, &sum);
--		spin_lock_irqsave(&cputimer->lock, flags);
-+		raw_spin_lock_irqsave(&cputimer->lock, flags);
- 		cputimer->running = 1;
- 		update_gt_cputime(&cputimer->cputime, &sum);
- 	} else
--		spin_lock_irqsave(&cputimer->lock, flags);
-+		raw_spin_lock_irqsave(&cputimer->lock, flags);
- 	*times = cputimer->cputime;
--	spin_unlock_irqrestore(&cputimer->lock, flags);
-+	raw_spin_unlock_irqrestore(&cputimer->lock, flags);
- }
- 
- /*
-@@ -700,7 +701,7 @@ static int posix_cpu_timer_set(struct k_
- 	/*
- 	 * Disarm any old timer after extracting its expiry time.
- 	 */
--	BUG_ON(!irqs_disabled());
-+	BUG_ON_NONRT(!irqs_disabled());
- 
- 	ret = 0;
- 	old_incr = timer->it.cpu.incr;
-@@ -998,9 +999,9 @@ static void stop_process_timers(struct s
- 	struct thread_group_cputimer *cputimer = &sig->cputimer;
- 	unsigned long flags;
- 
--	spin_lock_irqsave(&cputimer->lock, flags);
-+	raw_spin_lock_irqsave(&cputimer->lock, flags);
- 	cputimer->running = 0;
--	spin_unlock_irqrestore(&cputimer->lock, flags);
-+	raw_spin_unlock_irqrestore(&cputimer->lock, flags);
- }
- 
- static u32 onecputick;
-@@ -1222,7 +1223,7 @@ void posix_cpu_timer_schedule(struct k_i
- 	/*
- 	 * Now re-arm for the new expiry time.
- 	 */
--	BUG_ON(!irqs_disabled());
-+	BUG_ON_NONRT(!irqs_disabled());
- 	arm_timer(timer);
- 	spin_unlock(&p->sighand->siglock);
- 
-@@ -1289,10 +1290,11 @@ static inline int fastpath_timer_check(s
- 	sig = tsk->signal;
- 	if (sig->cputimer.running) {
- 		struct task_cputime group_sample;
-+		unsigned long flags;
- 
--		spin_lock(&sig->cputimer.lock);
-+		raw_spin_lock_irqsave(&sig->cputimer.lock, flags);
- 		group_sample = sig->cputimer.cputime;
--		spin_unlock(&sig->cputimer.lock);
-+		raw_spin_unlock_irqrestore(&sig->cputimer.lock, flags);
- 
- 		if (task_cputime_expired(&group_sample, &sig->cputime_expires))
- 			return 1;
-@@ -1306,13 +1308,13 @@ static inline int fastpath_timer_check(s
-  * already updated our counts.  We need to check if any timers fire now.
-  * Interrupts are disabled.
-  */
--void run_posix_cpu_timers(struct task_struct *tsk)
-+static void __run_posix_cpu_timers(struct task_struct *tsk)
- {
- 	LIST_HEAD(firing);
- 	struct k_itimer *timer, *next;
- 	unsigned long flags;
- 
--	BUG_ON(!irqs_disabled());
-+	BUG_ON_NONRT(!irqs_disabled());
- 
- 	/*
- 	 * The fast path checks that there are no expired thread or thread
-@@ -1370,6 +1372,190 @@ void run_posix_cpu_timers(struct task_st
- 	}
- }
- 
-+#ifdef CONFIG_PREEMPT_RT_BASE
-+#include <linux/kthread.h>
-+#include <linux/cpu.h>
-+DEFINE_PER_CPU(struct task_struct *, posix_timer_task);
-+DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist);
-+
-+static int posix_cpu_timers_thread(void *data)
-+{
-+	int cpu = (long)data;
-+
-+	BUG_ON(per_cpu(posix_timer_task,cpu) != current);
-+
-+	while (!kthread_should_stop()) {
-+		struct task_struct *tsk = NULL;
-+		struct task_struct *next = NULL;
-+
-+		if (cpu_is_offline(cpu))
-+			goto wait_to_die;
-+
-+		/* grab task list */
-+		raw_local_irq_disable();
-+		tsk = per_cpu(posix_timer_tasklist, cpu);
-+		per_cpu(posix_timer_tasklist, cpu) = NULL;
-+		raw_local_irq_enable();
-+
-+		/* its possible the list is empty, just return */
-+		if (!tsk) {
-+			set_current_state(TASK_INTERRUPTIBLE);
-+			schedule();
-+			__set_current_state(TASK_RUNNING);
-+			continue;
-+		}
-+
-+		/* Process task list */
-+		while (1) {
-+			/* save next */
-+			next = tsk->posix_timer_list;
-+
-+			/* run the task timers, clear its ptr and
-+			 * unreference it
-+			 */
-+			__run_posix_cpu_timers(tsk);
-+			tsk->posix_timer_list = NULL;
-+			put_task_struct(tsk);
-+
-+			/* check if this is the last on the list */
-+			if (next == tsk)
-+				break;
-+			tsk = next;
-+		}
-+	}
-+	return 0;
-+
-+wait_to_die:
-+	/* Wait for kthread_stop */
-+	set_current_state(TASK_INTERRUPTIBLE);
-+	while (!kthread_should_stop()) {
-+		schedule();
-+		set_current_state(TASK_INTERRUPTIBLE);
-+	}
-+	__set_current_state(TASK_RUNNING);
-+	return 0;
-+}
-+
-+static inline int __fastpath_timer_check(struct task_struct *tsk)
-+{
-+	/* tsk == current, ensure it is safe to use ->signal/sighand */
-+	if (unlikely(tsk->exit_state))
-+		return 0;
-+
-+	if (!task_cputime_zero(&tsk->cputime_expires))
-+			return 1;
-+
-+	if (!task_cputime_zero(&tsk->signal->cputime_expires))
-+			return 1;
-+
-+	return 0;
-+}
-+
-+void run_posix_cpu_timers(struct task_struct *tsk)
-+{
-+	unsigned long cpu = smp_processor_id();
-+	struct task_struct *tasklist;
-+
-+	BUG_ON(!irqs_disabled());
-+	if(!per_cpu(posix_timer_task, cpu))
-+		return;
-+	/* get per-cpu references */
-+	tasklist = per_cpu(posix_timer_tasklist, cpu);
-+
-+	/* check to see if we're already queued */
-+	if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) {
-+		get_task_struct(tsk);
-+		if (tasklist) {
-+			tsk->posix_timer_list = tasklist;
-+		} else {
-+			/*
-+			 * The list is terminated by a self-pointing
-+			 * task_struct
-+			 */
-+			tsk->posix_timer_list = tsk;
-+		}
-+		per_cpu(posix_timer_tasklist, cpu) = tsk;
-+
-+		wake_up_process(per_cpu(posix_timer_task, cpu));
-+	}
-+}
-+
-+/*
-+ * posix_cpu_thread_call - callback that gets triggered when a CPU is added.
-+ * Here we can start up the necessary migration thread for the new CPU.
-+ */
-+static int posix_cpu_thread_call(struct notifier_block *nfb,
-+				 unsigned long action, void *hcpu)
-+{
-+	int cpu = (long)hcpu;
-+	struct task_struct *p;
-+	struct sched_param param;
-+
-+	switch (action) {
-+	case CPU_UP_PREPARE:
-+		p = kthread_create(posix_cpu_timers_thread, hcpu,
-+					"posixcputmr/%d",cpu);
-+		if (IS_ERR(p))
-+			return NOTIFY_BAD;
-+		p->flags |= PF_NOFREEZE;
-+		kthread_bind(p, cpu);
-+		/* Must be high prio to avoid getting starved */
-+		param.sched_priority = MAX_RT_PRIO-1;
-+		sched_setscheduler(p, SCHED_FIFO, &param);
-+		per_cpu(posix_timer_task,cpu) = p;
-+		break;
-+	case CPU_ONLINE:
-+		/* Strictly unneccessary, as first user will wake it. */
-+		wake_up_process(per_cpu(posix_timer_task,cpu));
-+		break;
-+#ifdef CONFIG_HOTPLUG_CPU
-+	case CPU_UP_CANCELED:
-+		/* Unbind it from offline cpu so it can run.  Fall thru. */
-+		kthread_bind(per_cpu(posix_timer_task,cpu),
-+			     any_online_cpu(cpu_online_map));
-+		kthread_stop(per_cpu(posix_timer_task,cpu));
-+		per_cpu(posix_timer_task,cpu) = NULL;
-+		break;
-+	case CPU_DEAD:
-+		kthread_stop(per_cpu(posix_timer_task,cpu));
-+		per_cpu(posix_timer_task,cpu) = NULL;
-+		break;
-+#endif
-+	}
-+	return NOTIFY_OK;
-+}
-+
-+/* Register at highest priority so that task migration (migrate_all_tasks)
-+ * happens before everything else.
-+ */
-+static struct notifier_block __devinitdata posix_cpu_thread_notifier = {
-+	.notifier_call = posix_cpu_thread_call,
-+	.priority = 10
-+};
-+
-+static int __init posix_cpu_thread_init(void)
-+{
-+	void *hcpu = (void *)(long)smp_processor_id();
-+	/* Start one for boot CPU. */
-+	unsigned long cpu;
-+
-+	/* init the per-cpu posix_timer_tasklets */
-+	for_each_cpu_mask(cpu, cpu_possible_map)
-+		per_cpu(posix_timer_tasklist, cpu) = NULL;
-+
-+	posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_UP_PREPARE, hcpu);
-+	posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_ONLINE, hcpu);
-+	register_cpu_notifier(&posix_cpu_thread_notifier);
-+	return 0;
-+}
-+early_initcall(posix_cpu_thread_init);
-+#else /* CONFIG_PREEMPT_RT_BASE */
-+void run_posix_cpu_timers(struct task_struct *tsk)
-+{
-+	__run_posix_cpu_timers(tsk);
-+}
-+#endif /* CONFIG_PREEMPT_RT_BASE */
-+
- /*
-  * Set one of the process-wide special case CPU timers or RLIMIT_CPU.
-  * The tsk->sighand->siglock must be held by the caller.
-Index: linux-2.6/kernel/trace/ftrace.c
-===================================================================
---- linux-2.6.orig/kernel/trace/ftrace.c
-+++ linux-2.6/kernel/trace/ftrace.c
+--- linux-3.0.orig/kernel/trace/ftrace.c
++++ linux-3.0/kernel/trace/ftrace.c
 @@ -1182,8 +1182,14 @@ alloc_and_copy_ftrace_hash(int size_bits
  	return NULL;
  }
@@ -1607,10 +1334,10 @@
  		mutex_unlock(&ftrace_lock);
  	}
  	free_ftrace_hash(iter->hash);
-Index: linux-2.6/drivers/gpu/drm/drm_irq.c
+Index: linux-3.0/drivers/gpu/drm/drm_irq.c
 ===================================================================
---- linux-2.6.orig/drivers/gpu/drm/drm_irq.c
-+++ linux-2.6/drivers/gpu/drm/drm_irq.c
+--- linux-3.0.orig/drivers/gpu/drm/drm_irq.c
++++ linux-3.0/drivers/gpu/drm/drm_irq.c
 @@ -109,10 +109,7 @@ static void vblank_disable_and_save(stru
  	/* Prevent vblank irq processing while disabling vblank irqs,
  	 * so no updates of timestamps or count can happen after we've
@@ -1649,11 +1376,11 @@
  	} else {
  		if (!dev->vblank_enabled[crtc]) {
  			atomic_dec(&dev->vblank_refcount[crtc]);
-Index: linux-2.6/arch/x86/kernel/kprobes.c
+Index: linux-3.0/arch/x86/kernel/kprobes.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/kprobes.c
-+++ linux-2.6/arch/x86/kernel/kprobes.c
-@@ -475,7 +475,6 @@ static void __kprobes setup_singlestep(s
+--- linux-3.0.orig/arch/x86/kernel/kprobes.c
++++ linux-3.0/arch/x86/kernel/kprobes.c
+@@ -477,7 +477,6 @@ static void __kprobes setup_singlestep(s
  		 * stepping.
  		 */
  		regs->ip = (unsigned long)p->ainsn.insn;
@@ -1661,10 +1388,10 @@
  		return;
  	}
  #endif
-Index: linux-2.6/drivers/ide/ide_platform.c
+Index: linux-3.0/drivers/ide/ide_platform.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide_platform.c
-+++ linux-2.6/drivers/ide/ide_platform.c
+--- linux-3.0.orig/drivers/ide/ide_platform.c
++++ linux-3.0/drivers/ide/ide_platform.c
 @@ -95,7 +95,7 @@ static int __devinit plat_ide_probe(stru
  	plat_ide_setup_ports(&hw, base, alt_base, pdata, res_irq->start);
  	hw.dev = &pdev->dev;
@@ -1674,10 +1401,10 @@
  	if (mmio)
  		d.host_flags |= IDE_HFLAG_MMIO;
  
-Index: linux-2.6/arch/x86/kernel/hpet.c
+Index: linux-3.0/arch/x86/kernel/hpet.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/hpet.c
-+++ linux-2.6/arch/x86/kernel/hpet.c
+--- linux-3.0.orig/arch/x86/kernel/hpet.c
++++ linux-3.0/arch/x86/kernel/hpet.c
 @@ -7,6 +7,7 @@
  #include <linux/slab.h>
  #include <linux/hpet.h>
@@ -1726,10 +1453,10 @@
  	if (hpet_msi_disable)
  		return;
  
-Index: linux-2.6/block/blk-core.c
+Index: linux-3.0/block/blk-core.c
 ===================================================================
---- linux-2.6.orig/block/blk-core.c
-+++ linux-2.6/block/blk-core.c
+--- linux-3.0.orig/block/blk-core.c
++++ linux-3.0/block/blk-core.c
 @@ -236,7 +236,7 @@ EXPORT_SYMBOL(blk_delay_queue);
   **/
  void blk_start_queue(struct request_queue *q)
@@ -1804,11 +1531,19 @@
  }
  
  void blk_finish_plug(struct blk_plug *plug)
-Index: linux-2.6/kernel/sched.c
+Index: linux-3.0/kernel/sched.c
 ===================================================================
---- linux-2.6.orig/kernel/sched.c
-+++ linux-2.6/kernel/sched.c
-@@ -185,6 +185,7 @@ void init_rt_bandwidth(struct rt_bandwid
+--- linux-3.0.orig/kernel/sched.c
++++ linux-3.0/kernel/sched.c
+@@ -71,6 +71,7 @@
+ #include <linux/ctype.h>
+ #include <linux/ftrace.h>
+ #include <linux/slab.h>
++#include <linux/init_task.h>
+ 
+ #include <asm/tlb.h>
+ #include <asm/irq_regs.h>
+@@ -185,6 +186,7 @@ void init_rt_bandwidth(struct rt_bandwid
  
  	hrtimer_init(&rt_b->rt_period_timer,
  			CLOCK_MONOTONIC, HRTIMER_MODE_REL);
@@ -1816,7 +1551,7 @@
  	rt_b->rt_period_timer.function = sched_rt_period_timer;
  }
  
-@@ -800,7 +801,11 @@ late_initcall(sched_init_debug);
+@@ -800,7 +802,11 @@ late_initcall(sched_init_debug);
   * Number of tasks to iterate in a single balance run.
   * Limited because this is done with IRQs disabled.
   */
@@ -1828,7 +1563,7 @@
  
  /*
   * period over which we average the RT time consumption, measured
-@@ -1136,6 +1141,7 @@ static void init_rq_hrtick(struct rq *rq
+@@ -1136,6 +1142,7 @@ static void init_rq_hrtick(struct rq *rq
  
  	hrtimer_init(&rq->hrtick_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
  	rq->hrtick_timer.function = hrtick;
@@ -1836,7 +1571,7 @@
  }
  #else	/* CONFIG_SCHED_HRTICK */
  static inline void hrtick_clear(struct rq *rq)
-@@ -2378,11 +2384,11 @@ static int select_fallback_rq(int cpu, s
+@@ -2378,11 +2385,11 @@ static int select_fallback_rq(int cpu, s
  
  	/* Look for allowed, online CPU in same node. */
  	for_each_cpu_and(dest_cpu, nodemask, cpu_active_mask)
@@ -1850,7 +1585,21 @@
  	if (dest_cpu < nr_cpu_ids)
  		return dest_cpu;
  
-@@ -2419,7 +2425,7 @@ int select_task_rq(struct task_struct *p
+@@ -2397,7 +2404,12 @@ static int select_fallback_rq(int cpu, s
+ 		printk(KERN_INFO "process %d (%s) no longer affine to cpu%d\n",
+ 				task_pid_nr(p), p->comm, cpu);
+ 	}
+-
++	/*
++	 * Clear PF_THREAD_BOUND, otherwise we wreckage
++	 * migrate_disable/enable. See optimization for
++	 * PF_THREAD_BOUND tasks there.
++	 */
++	p->flags &= ~PF_THREAD_BOUND;
+ 	return dest_cpu;
+ }
+ 
+@@ -2419,7 +2431,7 @@ int select_task_rq(struct task_struct *p
  	 * [ this allows ->select_task() to simply return task_cpu(p) and
  	 *   not worry about this generic constraint ]
  	 */
@@ -1859,7 +1608,7 @@
  		     !cpu_online(cpu)))
  		cpu = select_fallback_rq(task_cpu(p), p);
  
-@@ -2477,10 +2483,6 @@ static void ttwu_activate(struct rq *rq,
+@@ -2477,10 +2489,6 @@ static void ttwu_activate(struct rq *rq,
  {
  	activate_task(rq, p, en_flags);
  	p->on_rq = 1;
@@ -1870,7 +1619,7 @@
  }
  
  /*
-@@ -2678,8 +2680,25 @@ try_to_wake_up(struct task_struct *p, un
+@@ -2678,8 +2686,25 @@ try_to_wake_up(struct task_struct *p, un
  
  	smp_wmb();
  	raw_spin_lock_irqsave(&p->pi_lock, flags);
@@ -1897,7 +1646,7 @@
  
  	success = 1; /* we're going to change ->state */
  	cpu = task_cpu(p);
-@@ -2735,40 +2754,6 @@ out:
+@@ -2735,40 +2760,6 @@ out:
  }
  
  /**
@@ -1938,7 +1687,7 @@
   * wake_up_process - Wake up a specific process
   * @p: The process to be woken up.
   *
-@@ -2785,6 +2770,18 @@ int wake_up_process(struct task_struct *
+@@ -2785,6 +2776,18 @@ int wake_up_process(struct task_struct *
  }
  EXPORT_SYMBOL(wake_up_process);
  
@@ -1957,7 +1706,7 @@
  int wake_up_state(struct task_struct *p, unsigned int state)
  {
  	return try_to_wake_up(p, state, 0);
-@@ -3060,8 +3057,12 @@ static void finish_task_switch(struct rq
+@@ -3060,8 +3063,12 @@ static void finish_task_switch(struct rq
  	finish_lock_switch(rq, prev);
  
  	fire_sched_in_preempt_notifiers(current);
@@ -1971,7 +1720,7 @@
  	if (unlikely(prev_state == TASK_DEAD)) {
  		/*
  		 * Remove function-return probe instances associated with this
-@@ -4182,6 +4183,126 @@ static inline void schedule_debug(struct
+@@ -4182,6 +4189,126 @@ static inline void schedule_debug(struct
  	schedstat_inc(this_rq(), sched_count);
  }
  
@@ -2098,7 +1847,7 @@
  static void put_prev_task(struct rq *rq, struct task_struct *prev)
  {
  	if (prev->on_rq || rq->skip_clock_update < 0)
-@@ -4241,6 +4362,8 @@ need_resched:
+@@ -4241,6 +4368,8 @@ need_resched:
  
  	raw_spin_lock_irq(&rq->lock);
  
@@ -2107,7 +1856,7 @@
  	switch_count = &prev->nivcsw;
  	if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
  		if (unlikely(signal_pending_state(prev->state, prev))) {
-@@ -4248,19 +4371,6 @@ need_resched:
+@@ -4248,19 +4377,6 @@ need_resched:
  		} else {
  			deactivate_task(rq, prev, DEQUEUE_SLEEP);
  			prev->on_rq = 0;
@@ -2127,7 +1876,7 @@
  		}
  		switch_count = &prev->nvcsw;
  	}
-@@ -4294,15 +4404,23 @@ need_resched:
+@@ -4294,15 +4410,23 @@ need_resched:
  
  	post_schedule(rq);
  
@@ -2153,7 +1902,7 @@
  	/*
  	 * If we are going to sleep and we have plugged IO queued,
  	 * make sure to submit it to avoid deadlocks.
-@@ -4311,15 +4429,37 @@ static inline void sched_submit_work(str
+@@ -4311,15 +4435,37 @@ static inline void sched_submit_work(str
  		blk_schedule_flush_plug(tsk);
  }
  
@@ -2191,7 +1940,7 @@
  #ifdef CONFIG_MUTEX_SPIN_ON_OWNER
  
  static inline bool owner_running(struct mutex *lock, struct task_struct *owner)
-@@ -4391,7 +4531,16 @@ asmlinkage void __sched notrace preempt_
+@@ -4391,7 +4537,16 @@ asmlinkage void __sched notrace preempt_
  
  	do {
  		add_preempt_count_notrace(PREEMPT_ACTIVE);
@@ -2208,7 +1957,7 @@
  		sub_preempt_count_notrace(PREEMPT_ACTIVE);
  
  		/*
-@@ -4814,9 +4963,8 @@ long __sched sleep_on_timeout(wait_queue
+@@ -4814,9 +4969,8 @@ long __sched sleep_on_timeout(wait_queue
  EXPORT_SYMBOL(sleep_on_timeout);
  
  #ifdef CONFIG_RT_MUTEXES
@@ -2219,7 +1968,7 @@
   * @p: task
   * @prio: prio value (kernel-internal form)
   *
-@@ -4825,7 +4973,7 @@ EXPORT_SYMBOL(sleep_on_timeout);
+@@ -4825,7 +4979,7 @@ EXPORT_SYMBOL(sleep_on_timeout);
   *
   * Used by the rt_mutex code to implement priority inheritance logic.
   */
@@ -2228,7 +1977,7 @@
  {
  	int oldprio, on_rq, running;
  	struct rq *rq;
-@@ -4835,6 +4983,24 @@ void rt_mutex_setprio(struct task_struct
+@@ -4835,6 +4989,24 @@ void rt_mutex_setprio(struct task_struct
  
  	rq = __task_rq_lock(p);
  
@@ -2253,7 +2002,7 @@
  	trace_sched_pi_setprio(p, prio);
  	oldprio = p->prio;
  	prev_class = p->sched_class;
-@@ -4858,9 +5024,9 @@ void rt_mutex_setprio(struct task_struct
+@@ -4858,9 +5030,9 @@ void rt_mutex_setprio(struct task_struct
  		enqueue_task(rq, p, oldprio < prio ? ENQUEUE_HEAD : 0);
  
  	check_class_changed(rq, p, prev_class, oldprio);
@@ -2264,7 +2013,7 @@
  #endif
  
  void set_user_nice(struct task_struct *p, long nice)
-@@ -4995,7 +5161,13 @@ EXPORT_SYMBOL(task_nice);
+@@ -4995,7 +5167,13 @@ EXPORT_SYMBOL(task_nice);
   */
  int idle_cpu(int cpu)
  {
@@ -2279,7 +2028,7 @@
  }
  
  /**
-@@ -5529,7 +5701,7 @@ SYSCALL_DEFINE0(sched_yield)
+@@ -5529,7 +5707,7 @@ SYSCALL_DEFINE0(sched_yield)
  	__release(rq->lock);
  	spin_release(&rq->lock.dep_map, 1, _THIS_IP_);
  	do_raw_spin_unlock(&rq->lock);
@@ -2288,7 +2037,7 @@
  
  	schedule();
  
-@@ -5543,9 +5715,17 @@ static inline int should_resched(void)
+@@ -5543,9 +5721,17 @@ static inline int should_resched(void)
  
  static void __cond_resched(void)
  {
@@ -2309,7 +2058,7 @@
  }
  
  int __sched _cond_resched(void)
-@@ -5586,6 +5766,7 @@ int __cond_resched_lock(spinlock_t *lock
+@@ -5586,6 +5772,7 @@ int __cond_resched_lock(spinlock_t *lock
  }
  EXPORT_SYMBOL(__cond_resched_lock);
  
@@ -2317,7 +2066,7 @@
  int __sched __cond_resched_softirq(void)
  {
  	BUG_ON(!in_softirq());
-@@ -5599,6 +5780,7 @@ int __sched __cond_resched_softirq(void)
+@@ -5599,6 +5786,7 @@ int __sched __cond_resched_softirq(void)
  	return 0;
  }
  EXPORT_SYMBOL(__cond_resched_softirq);
@@ -2325,7 +2074,7 @@
  
  /**
   * yield - yield the current processor to other threads.
-@@ -5845,7 +6027,7 @@ void show_state_filter(unsigned long sta
+@@ -5845,7 +6033,7 @@ void show_state_filter(unsigned long sta
  	printk(KERN_INFO
  		"  task                        PC stack   pid father\n");
  #endif
@@ -2334,7 +2083,7 @@
  	do_each_thread(g, p) {
  		/*
  		 * reset the NMI-timeout, listing all files on a slow
-@@ -5861,7 +6043,7 @@ void show_state_filter(unsigned long sta
+@@ -5861,7 +6049,7 @@ void show_state_filter(unsigned long sta
  #ifdef CONFIG_SCHED_DEBUG
  	sysrq_sched_debug_show();
  #endif
@@ -2343,7 +2092,17 @@
  	/*
  	 * Only show locks if all tasks are dumped:
  	 */
-@@ -5983,12 +6165,12 @@ static inline void sched_init_granularit
+@@ -5922,6 +6110,9 @@ void __cpuinit init_idle(struct task_str
+ 	 */
+ 	idle->sched_class = &idle_sched_class;
+ 	ftrace_graph_init_idle_task(idle, cpu);
++#if defined(CONFIG_SMP)
++	sprintf(idle->comm, "%s/%d", INIT_TASK_COMM, cpu);
++#endif
+ }
+ 
+ /*
+@@ -5983,12 +6174,12 @@ static inline void sched_init_granularit
  #ifdef CONFIG_SMP
  void do_set_cpus_allowed(struct task_struct *p, const struct cpumask *new_mask)
  {
@@ -2360,7 +2119,7 @@
  }
  
  /*
-@@ -6039,7 +6221,7 @@ int set_cpus_allowed_ptr(struct task_str
+@@ -6039,7 +6230,7 @@ int set_cpus_allowed_ptr(struct task_str
  	do_set_cpus_allowed(p, new_mask);
  
  	/* Can the task run on the task's current CPU? If so, we're done */
@@ -2369,7 +2128,7 @@
  		goto out;
  
  	dest_cpu = cpumask_any_and(cpu_active_mask, new_mask);
-@@ -6086,7 +6268,7 @@ static int __migrate_task(struct task_st
+@@ -6086,7 +6277,7 @@ static int __migrate_task(struct task_st
  	if (task_cpu(p) != src_cpu)
  		goto done;
  	/* Affinity changed (again). */
@@ -2378,7 +2137,7 @@
  		goto fail;
  
  	/*
-@@ -6128,6 +6310,8 @@ static int migration_cpu_stop(void *data
+@@ -6128,6 +6319,8 @@ static int migration_cpu_stop(void *data
  
  #ifdef CONFIG_HOTPLUG_CPU
  
@@ -2387,7 +2146,7 @@
  /*
   * Ensures that the idle task is using init_mm right before its cpu goes
   * offline.
-@@ -6140,7 +6324,12 @@ void idle_task_exit(void)
+@@ -6140,7 +6333,12 @@ void idle_task_exit(void)
  
  	if (mm != &init_mm)
  		switch_mm(mm, &init_mm, current);
@@ -2401,7 +2160,7 @@
  }
  
  /*
-@@ -6458,6 +6647,12 @@ migration_call(struct notifier_block *nf
+@@ -6458,6 +6656,12 @@ migration_call(struct notifier_block *nf
  		migrate_nr_uninterruptible(rq);
  		calc_global_load_remove(rq);
  		break;
@@ -2414,7 +2173,7 @@
  #endif
  	}
  
-@@ -8175,7 +8370,8 @@ void __init sched_init(void)
+@@ -8175,7 +8379,8 @@ void __init sched_init(void)
  #ifdef CONFIG_DEBUG_SPINLOCK_SLEEP
  static inline int preempt_count_equals(int preempt_offset)
  {
@@ -2424,10 +2183,10 @@
  
  	return (nested == preempt_offset);
  }
-Index: linux-2.6/kernel/workqueue.c
+Index: linux-3.0/kernel/workqueue.c
 ===================================================================
---- linux-2.6.orig/kernel/workqueue.c
-+++ linux-2.6/kernel/workqueue.c
+--- linux-3.0.orig/kernel/workqueue.c
++++ linux-3.0/kernel/workqueue.c
 @@ -41,6 +41,7 @@
  #include <linux/debug_locks.h>
  #include <linux/lockdep.h>
@@ -2551,12 +2310,12 @@
  	if (worker->flags & WORKER_NOT_RUNNING)
 -		return NULL;
 +		return;
-+
-+	if (WARN_ON_ONCE(worker->sleeping))
-+		return;
  
 -	/* this can only happen on the local cpu */
 -	BUG_ON(cpu != raw_smp_processor_id());
++	if (WARN_ON_ONCE(worker->sleeping))
++		return;
++
 +	worker->sleeping = 1;
  
 +	cpu = smp_processor_id();
@@ -2845,7 +2604,7 @@
  		wake_up_process(rescuer->task);
  	}
  
-@@ -3189,171 +3173,71 @@ EXPORT_SYMBOL_GPL(work_busy);
+@@ -3189,171 +3173,76 @@ EXPORT_SYMBOL_GPL(work_busy);
   * gcwqs serve mix of short, long and very long running works making
   * blocked draining impractical.
   *
@@ -2964,6 +2723,11 @@
 +		new_worker = create_worker(gcwq, false);
 +		if (!new_worker)
 +			return NOTIFY_BAD;
++	case CPU_UP_CANCELED:
++	case CPU_ONLINE:
++		break;
++	default:
++		return notifier_from_errno(0);
 +	}
  
 -	BUG_ON(gcwq->cpu != smp_processor_id());
@@ -3068,7 +2832,7 @@
  		int nr_works = 0;
  
  		list_for_each_entry(work, &gcwq->worklist, entry) {
-@@ -3367,189 +3251,54 @@ static int __cpuinit trustee_thread(void
+@@ -3367,189 +3256,54 @@ static int __cpuinit trustee_thread(void
  			wake_up_process(worker->task);
  		}
  
@@ -3215,7 +2979,12 @@
 -			return NOTIFY_BAD;
 -		}
 -	}
--
++        switch (action) {
++        case CPU_DOWN_PREPARE:
++                flush_gcwq(gcwq);
++                break;
++        }
+ 
 -	/* some are called w/ irq disabled, don't disturb irq status */
 -	spin_lock_irqsave(&gcwq->lock, flags);
 -
@@ -3250,12 +3019,7 @@
 -		destroy_worker(gcwq->first_idle);
 -		gcwq->first_idle = NULL;
 -		break;
-+        switch (action) {
-+        case CPU_DOWN_PREPARE:
-+                flush_gcwq(gcwq);
-+                break;
-+        }
- 
+-
 -	case CPU_DOWN_FAILED:
 -	case CPU_ONLINE:
 -		gcwq->flags &= ~GCWQ_DISASSOCIATED;
@@ -3283,7 +3047,7 @@
  
  	return notifier_from_errno(0);
  }
-@@ -3747,7 +3496,8 @@ static int __init init_workqueues(void)
+@@ -3747,7 +3501,8 @@ static int __init init_workqueues(void)
  	unsigned int cpu;
  	int i;
  
@@ -3293,7 +3057,7 @@
  
  	/* initialize gcwqs */
  	for_each_gcwq_cpu(cpu) {
-@@ -3770,9 +3520,7 @@ static int __init init_workqueues(void)
+@@ -3770,9 +3525,7 @@ static int __init init_workqueues(void)
  			    (unsigned long)gcwq);
  
  		ida_init(&gcwq->worker_ida);
@@ -3304,10 +3068,10 @@
  	}
  
  	/* create the initial worker */
-Index: linux-2.6/kernel/workqueue_sched.h
+Index: linux-3.0/kernel/workqueue_sched.h
 ===================================================================
---- linux-2.6.orig/kernel/workqueue_sched.h
-+++ linux-2.6/kernel/workqueue_sched.h
+--- linux-3.0.orig/kernel/workqueue_sched.h
++++ linux-3.0/kernel/workqueue_sched.h
 @@ -4,6 +4,5 @@
   * Scheduler hooks for concurrency managed workqueue.  Only to be
   * included from sched.c and workqueue.c.
@@ -3317,10 +3081,10 @@
 -				       unsigned int cpu);
 +void wq_worker_running(struct task_struct *task);
 +void wq_worker_sleeping(struct task_struct *task);
-Index: linux-2.6/arch/mips/sibyte/sb1250/irq.c
+Index: linux-3.0/arch/mips/sibyte/sb1250/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/sibyte/sb1250/irq.c
-+++ linux-2.6/arch/mips/sibyte/sb1250/irq.c
+--- linux-3.0.orig/arch/mips/sibyte/sb1250/irq.c
++++ linux-3.0/arch/mips/sibyte/sb1250/irq.c
 @@ -178,7 +178,7 @@ static void ack_sb1250_irq(struct irq_da
  
  static struct irq_chip sb1250_irq_type = {
@@ -3330,10 +3094,10 @@
  	.irq_unmask = enable_sb1250_irq,
  #ifdef CONFIG_SMP
  	.irq_set_affinity = sb1250_set_affinity
-Index: linux-2.6/arch/mips/kernel/ftrace.c
+Index: linux-3.0/arch/mips/kernel/ftrace.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/ftrace.c
-+++ linux-2.6/arch/mips/kernel/ftrace.c
+--- linux-3.0.orig/arch/mips/kernel/ftrace.c
++++ linux-3.0/arch/mips/kernel/ftrace.c
 @@ -19,6 +19,26 @@
  
  #include <asm-generic/sections.h>
@@ -3394,10 +3158,10 @@
  #define INSN_B_1F (0x10000000 | MCOUNT_OFFSET_INSNS)
  
  int ftrace_make_nop(struct module *mod,
-Index: linux-2.6/arch/mips/loongson/fuloong-2e/irq.c
+Index: linux-3.0/arch/mips/loongson/fuloong-2e/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/loongson/fuloong-2e/irq.c
-+++ linux-2.6/arch/mips/loongson/fuloong-2e/irq.c
+--- linux-3.0.orig/arch/mips/loongson/fuloong-2e/irq.c
++++ linux-3.0/arch/mips/loongson/fuloong-2e/irq.c
 @@ -42,6 +42,7 @@ asmlinkage void mach_irq_dispatch(unsign
  static struct irqaction cascade_irqaction = {
  	.handler = no_action,
@@ -3406,10 +3170,10 @@
  };
  
  void __init mach_init_irq(void)
-Index: linux-2.6/arch/mips/loongson/lemote-2f/irq.c
+Index: linux-3.0/arch/mips/loongson/lemote-2f/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/loongson/lemote-2f/irq.c
-+++ linux-2.6/arch/mips/loongson/lemote-2f/irq.c
+--- linux-3.0.orig/arch/mips/loongson/lemote-2f/irq.c
++++ linux-3.0/arch/mips/loongson/lemote-2f/irq.c
 @@ -96,12 +96,13 @@ static irqreturn_t ip6_action(int cpl, v
  struct irqaction ip6_irqaction = {
  	.handler = ip6_action,
@@ -3425,10 +3189,10 @@
  };
  
  void __init mach_init_irq(void)
-Index: linux-2.6/arch/mips/ar7/irq.c
+Index: linux-3.0/arch/mips/ar7/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/ar7/irq.c
-+++ linux-2.6/arch/mips/ar7/irq.c
+--- linux-3.0.orig/arch/mips/ar7/irq.c
++++ linux-3.0/arch/mips/ar7/irq.c
 @@ -98,7 +98,8 @@ static struct irq_chip ar7_sec_irq_type 
  
  static struct irqaction ar7_cascade_action = {
@@ -3439,10 +3203,10 @@
  };
  
  static void __init ar7_irq_init(int base)
-Index: linux-2.6/arch/mips/bcm63xx/irq.c
+Index: linux-3.0/arch/mips/bcm63xx/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/bcm63xx/irq.c
-+++ linux-2.6/arch/mips/bcm63xx/irq.c
+--- linux-3.0.orig/arch/mips/bcm63xx/irq.c
++++ linux-3.0/arch/mips/bcm63xx/irq.c
 @@ -222,6 +222,7 @@ static struct irq_chip bcm63xx_external_
  static struct irqaction cpu_ip2_cascade_action = {
  	.handler	= no_action,
@@ -3451,10 +3215,10 @@
  };
  
  void __init arch_init_irq(void)
-Index: linux-2.6/arch/mips/cobalt/irq.c
+Index: linux-3.0/arch/mips/cobalt/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/cobalt/irq.c
-+++ linux-2.6/arch/mips/cobalt/irq.c
+--- linux-3.0.orig/arch/mips/cobalt/irq.c
++++ linux-3.0/arch/mips/cobalt/irq.c
 @@ -48,6 +48,7 @@ asmlinkage void plat_irq_dispatch(void)
  static struct irqaction cascade = {
  	.handler	= no_action,
@@ -3463,10 +3227,10 @@
  };
  
  void __init arch_init_irq(void)
-Index: linux-2.6/arch/mips/dec/setup.c
+Index: linux-3.0/arch/mips/dec/setup.c
 ===================================================================
---- linux-2.6.orig/arch/mips/dec/setup.c
-+++ linux-2.6/arch/mips/dec/setup.c
+--- linux-3.0.orig/arch/mips/dec/setup.c
++++ linux-3.0/arch/mips/dec/setup.c
 @@ -101,20 +101,24 @@ int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_
  static struct irqaction ioirq = {
  	.handler = no_action,
@@ -3492,10 +3256,10 @@
  };
  
  
-Index: linux-2.6/arch/mips/emma/markeins/irq.c
+Index: linux-3.0/arch/mips/emma/markeins/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/emma/markeins/irq.c
-+++ linux-2.6/arch/mips/emma/markeins/irq.c
+--- linux-3.0.orig/arch/mips/emma/markeins/irq.c
++++ linux-3.0/arch/mips/emma/markeins/irq.c
 @@ -169,7 +169,7 @@ void emma2rh_gpio_irq_init(void)
  
  static struct irqaction irq_cascade = {
@@ -3505,10 +3269,10 @@
  	   .name = "cascade",
  	   .dev_id = NULL,
  	   .next = NULL,
-Index: linux-2.6/arch/mips/lasat/interrupt.c
+Index: linux-3.0/arch/mips/lasat/interrupt.c
 ===================================================================
---- linux-2.6.orig/arch/mips/lasat/interrupt.c
-+++ linux-2.6/arch/mips/lasat/interrupt.c
+--- linux-3.0.orig/arch/mips/lasat/interrupt.c
++++ linux-3.0/arch/mips/lasat/interrupt.c
 @@ -105,6 +105,7 @@ asmlinkage void plat_irq_dispatch(void)
  static struct irqaction cascade = {
  	.handler	= no_action,
@@ -3517,10 +3281,10 @@
  };
  
  void __init arch_init_irq(void)
-Index: linux-2.6/arch/mips/mti-malta/malta-int.c
+Index: linux-3.0/arch/mips/mti-malta/malta-int.c
 ===================================================================
---- linux-2.6.orig/arch/mips/mti-malta/malta-int.c
-+++ linux-2.6/arch/mips/mti-malta/malta-int.c
+--- linux-3.0.orig/arch/mips/mti-malta/malta-int.c
++++ linux-3.0/arch/mips/mti-malta/malta-int.c
 @@ -350,12 +350,14 @@ unsigned int plat_ipi_resched_int_xlate(
  
  static struct irqaction i8259irq = {
@@ -3538,10 +3302,10 @@
  };
  
  static msc_irqmap_t __initdata msc_irqmap[] = {
-Index: linux-2.6/arch/mips/pmc-sierra/msp71xx/msp_irq.c
+Index: linux-3.0/arch/mips/pmc-sierra/msp71xx/msp_irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/pmc-sierra/msp71xx/msp_irq.c
-+++ linux-2.6/arch/mips/pmc-sierra/msp71xx/msp_irq.c
+--- linux-3.0.orig/arch/mips/pmc-sierra/msp71xx/msp_irq.c
++++ linux-3.0/arch/mips/pmc-sierra/msp71xx/msp_irq.c
 @@ -109,11 +109,13 @@ asmlinkage void plat_irq_dispatch(struct
  static struct irqaction cic_cascade_msp = {
  	.handler = no_action,
@@ -3556,10 +3320,10 @@
  };
  
  void __init arch_init_irq(void)
-Index: linux-2.6/arch/mips/pnx8550/common/int.c
+Index: linux-3.0/arch/mips/pnx8550/common/int.c
 ===================================================================
---- linux-2.6.orig/arch/mips/pnx8550/common/int.c
-+++ linux-2.6/arch/mips/pnx8550/common/int.c
+--- linux-3.0.orig/arch/mips/pnx8550/common/int.c
++++ linux-3.0/arch/mips/pnx8550/common/int.c
 @@ -167,7 +167,7 @@ static struct irq_chip level_irq_type = 
  
  static struct irqaction gic_action = {
@@ -3569,10 +3333,10 @@
  	.name =		"GIC",
  };
  
-Index: linux-2.6/arch/mips/sgi-ip22/ip22-int.c
+Index: linux-3.0/arch/mips/sgi-ip22/ip22-int.c
 ===================================================================
---- linux-2.6.orig/arch/mips/sgi-ip22/ip22-int.c
-+++ linux-2.6/arch/mips/sgi-ip22/ip22-int.c
+--- linux-3.0.orig/arch/mips/sgi-ip22/ip22-int.c
++++ linux-3.0/arch/mips/sgi-ip22/ip22-int.c
 @@ -155,32 +155,32 @@ static void __irq_entry indy_buserror_ir
  
  static struct irqaction local0_cascade = {
@@ -3611,10 +3375,10 @@
  	.name		= "mapable1 cascade",
  };
  #define SGI_INTERRUPTS	SGINT_END
-Index: linux-2.6/arch/mips/sni/rm200.c
+Index: linux-3.0/arch/mips/sni/rm200.c
 ===================================================================
---- linux-2.6.orig/arch/mips/sni/rm200.c
-+++ linux-2.6/arch/mips/sni/rm200.c
+--- linux-3.0.orig/arch/mips/sni/rm200.c
++++ linux-3.0/arch/mips/sni/rm200.c
 @@ -359,6 +359,7 @@ void sni_rm200_init_8259A(void)
  static struct irqaction sni_rm200_irq2 = {
  	.handler = no_action,
@@ -3623,10 +3387,10 @@
  };
  
  static struct resource sni_rm200_pic1_resource = {
-Index: linux-2.6/arch/mips/vr41xx/common/irq.c
+Index: linux-3.0/arch/mips/vr41xx/common/irq.c
 ===================================================================
---- linux-2.6.orig/arch/mips/vr41xx/common/irq.c
-+++ linux-2.6/arch/mips/vr41xx/common/irq.c
+--- linux-3.0.orig/arch/mips/vr41xx/common/irq.c
++++ linux-3.0/arch/mips/vr41xx/common/irq.c
 @@ -34,6 +34,7 @@ static irq_cascade_t irq_cascade[NR_IRQS
  static struct irqaction cascade_irqaction = {
  	.handler	= no_action,
@@ -3635,10 +3399,10 @@
  };
  
  int cascade_irq(unsigned int irq, int (*get_irq)(unsigned int))
-Index: linux-2.6/arch/mips/Kconfig
+Index: linux-3.0/arch/mips/Kconfig
 ===================================================================
---- linux-2.6.orig/arch/mips/Kconfig
-+++ linux-2.6/arch/mips/Kconfig
+--- linux-3.0.orig/arch/mips/Kconfig
++++ linux-3.0/arch/mips/Kconfig
 @@ -24,6 +24,7 @@ config MIPS
  	select GENERIC_IRQ_PROBE
  	select GENERIC_IRQ_SHOW
@@ -3656,10 +3420,10 @@
  
  config CPU_SUPPORTS_HIGHMEM
  	bool
-Index: linux-2.6/arch/mips/kernel/traps.c
+Index: linux-3.0/arch/mips/kernel/traps.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/traps.c
-+++ linux-2.6/arch/mips/kernel/traps.c
+--- linux-3.0.orig/arch/mips/kernel/traps.c
++++ linux-3.0/arch/mips/kernel/traps.c
 @@ -364,7 +364,7 @@ static int regs_to_trapnr(struct pt_regs
  	return (regs->cp0_cause >> 2) & 0x1f;
  }
@@ -3687,10 +3451,10 @@
  
  	if (in_interrupt())
  		panic("Fatal exception in interrupt");
-Index: linux-2.6/arch/mips/kernel/signal.c
+Index: linux-3.0/arch/mips/kernel/signal.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/signal.c
-+++ linux-2.6/arch/mips/kernel/signal.c
+--- linux-3.0.orig/arch/mips/kernel/signal.c
++++ linux-3.0/arch/mips/kernel/signal.c
 @@ -603,6 +603,9 @@ static void do_signal(struct pt_regs *re
  	if (!user_mode(regs))
  		return;
@@ -3701,10 +3465,10 @@
  	if (test_thread_flag(TIF_RESTORE_SIGMASK))
  		oldset = &current->saved_sigmask;
  	else
-Index: linux-2.6/arch/mips/kernel/i8259.c
+Index: linux-3.0/arch/mips/kernel/i8259.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/i8259.c
-+++ linux-2.6/arch/mips/kernel/i8259.c
+--- linux-3.0.orig/arch/mips/kernel/i8259.c
++++ linux-3.0/arch/mips/kernel/i8259.c
 @@ -295,6 +295,7 @@ static void init_8259A(int auto_eoi)
  static struct irqaction irq2 = {
  	.handler = no_action,
@@ -3713,10 +3477,10 @@
  };
  
  static struct resource pic1_io_resource = {
-Index: linux-2.6/drivers/watchdog/octeon-wdt-main.c
+Index: linux-3.0/drivers/watchdog/octeon-wdt-main.c
 ===================================================================
---- linux-2.6.orig/drivers/watchdog/octeon-wdt-main.c
-+++ linux-2.6/drivers/watchdog/octeon-wdt-main.c
+--- linux-3.0.orig/drivers/watchdog/octeon-wdt-main.c
++++ linux-3.0/drivers/watchdog/octeon-wdt-main.c
 @@ -402,7 +402,7 @@ static void octeon_wdt_setup_interrupt(i
  	irq = OCTEON_IRQ_WDOG0 + core;
  
@@ -3726,10 +3490,10 @@
  		panic("octeon_wdt: Couldn't obtain irq %d", irq);
  
  	cpumask_set_cpu(cpu, &irq_enabled_cpus);
-Index: linux-2.6/arch/mips/cavium-octeon/smp.c
+Index: linux-3.0/arch/mips/cavium-octeon/smp.c
 ===================================================================
---- linux-2.6.orig/arch/mips/cavium-octeon/smp.c
-+++ linux-2.6/arch/mips/cavium-octeon/smp.c
+--- linux-3.0.orig/arch/mips/cavium-octeon/smp.c
++++ linux-3.0/arch/mips/cavium-octeon/smp.c
 @@ -207,8 +207,9 @@ void octeon_prepare_cpus(unsigned int ma
  	 * the other bits alone.
  	 */
@@ -3742,10 +3506,10 @@
  		panic("Cannot request_irq(OCTEON_IRQ_MBOX0)\n");
  	}
  }
-Index: linux-2.6/arch/arm/kernel/signal.c
+Index: linux-3.0/arch/arm/kernel/signal.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/signal.c
-+++ linux-2.6/arch/arm/kernel/signal.c
+--- linux-3.0.orig/arch/arm/kernel/signal.c
++++ linux-3.0/arch/arm/kernel/signal.c
 @@ -673,6 +673,9 @@ static void do_signal(struct pt_regs *re
  	if (!user_mode(regs))
  		return;
@@ -3756,10 +3520,10 @@
  	/*
  	 * If we were from a system call, check for system call restarting...
  	 */
-Index: linux-2.6/arch/arm/kernel/smp.c
+Index: linux-3.0/arch/arm/kernel/smp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/smp.c
-+++ linux-2.6/arch/arm/kernel/smp.c
+--- linux-3.0.orig/arch/arm/kernel/smp.c
++++ linux-3.0/arch/arm/kernel/smp.c
 @@ -305,6 +305,18 @@ asmlinkage void __cpuinit secondary_star
  	 * Enable local interrupts.
  	 */
@@ -3817,10 +3581,10 @@
  	}
  
  	set_cpu_online(cpu, false);
-Index: linux-2.6/include/linux/jbd.h
+Index: linux-3.0/include/linux/jbd.h
 ===================================================================
---- linux-2.6.orig/include/linux/jbd.h
-+++ linux-2.6/include/linux/jbd.h
+--- linux-3.0.orig/include/linux/jbd.h
++++ linux-3.0/include/linux/jbd.h
 @@ -244,6 +244,7 @@ typedef struct journal_superblock_s
  
  #include <linux/fs.h>
@@ -3899,10 +3663,10 @@
  struct jbd_revoke_table_s;
  
  /**
-Index: linux-2.6/include/linux/jbd2.h
+Index: linux-3.0/include/linux/jbd2.h
 ===================================================================
---- linux-2.6.orig/include/linux/jbd2.h
-+++ linux-2.6/include/linux/jbd2.h
+--- linux-3.0.orig/include/linux/jbd2.h
++++ linux-3.0/include/linux/jbd2.h
 @@ -275,6 +275,7 @@ typedef struct journal_superblock_s
  
  #include <linux/fs.h>
@@ -3982,10 +3746,10 @@
  /* Flags in jbd_inode->i_flags */
  #define __JI_COMMIT_RUNNING 0
  /* Commit of the inode data in progress. We use this flag to protect us from
-Index: linux-2.6/include/linux/jbd_common.h
+Index: linux-3.0/include/linux/jbd_common.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/jbd_common.h
++++ linux-3.0/include/linux/jbd_common.h
 @@ -0,0 +1,92 @@
 +#ifndef _LINUX_JBD_STATE_H
 +#define _LINUX_JBD_STATE_H
@@ -4079,10 +3843,10 @@
 +}
 +
 +#endif
-Index: linux-2.6/kernel/sched_rt.c
+Index: linux-3.0/kernel/sched_rt.c
 ===================================================================
---- linux-2.6.orig/kernel/sched_rt.c
-+++ linux-2.6/kernel/sched_rt.c
+--- linux-3.0.orig/kernel/sched_rt.c
++++ linux-3.0/kernel/sched_rt.c
 @@ -536,6 +536,9 @@ static int balance_runtime(struct rt_rq 
  {
  	int more = 0;
@@ -4189,10 +3953,10 @@
  }
  
  /* Assumes rq->lock is held */
-Index: linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+Index: linux-3.0/arch/powerpc/platforms/85xx/mpc85xx_cds.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c
-+++ linux-2.6/arch/powerpc/platforms/85xx/mpc85xx_cds.c
+--- linux-3.0.orig/arch/powerpc/platforms/85xx/mpc85xx_cds.c
++++ linux-3.0/arch/powerpc/platforms/85xx/mpc85xx_cds.c
 @@ -178,7 +178,7 @@ static irqreturn_t mpc85xx_8259_cascade_
  
  static struct irqaction mpc85xxcds_8259_irqaction = {
@@ -4202,10 +3966,10 @@
  	.name = "8259 cascade",
  };
  #endif /* PPC_I8259 */
-Index: linux-2.6/arch/powerpc/platforms/wsp/opb_pic.c
+Index: linux-3.0/arch/powerpc/platforms/wsp/opb_pic.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/platforms/wsp/opb_pic.c
-+++ linux-2.6/arch/powerpc/platforms/wsp/opb_pic.c
+--- linux-3.0.orig/arch/powerpc/platforms/wsp/opb_pic.c
++++ linux-3.0/arch/powerpc/platforms/wsp/opb_pic.c
 @@ -320,7 +320,8 @@ void __init opb_pic_init(void)
  		}
  
@@ -4216,10 +3980,10 @@
  		if (rc) {
  			printk("opb: request_irq failed: %d\n", rc);
  			continue;
-Index: linux-2.6/arch/powerpc/kernel/smp.c
+Index: linux-3.0/arch/powerpc/kernel/smp.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/smp.c
-+++ linux-2.6/arch/powerpc/kernel/smp.c
+--- linux-3.0.orig/arch/powerpc/kernel/smp.c
++++ linux-3.0/arch/powerpc/kernel/smp.c
 @@ -170,7 +170,7 @@ int smp_request_message_ipi(int virq, in
  		return 1;
  	}
@@ -4229,10 +3993,10 @@
  			  smp_ipi_name[msg], 0);
  	WARN(err < 0, "unable to request_irq %d for %s (rc %d)\n",
  		virq, smp_ipi_name[msg], err);
-Index: linux-2.6/arch/powerpc/platforms/powermac/smp.c
+Index: linux-3.0/arch/powerpc/platforms/powermac/smp.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/platforms/powermac/smp.c
-+++ linux-2.6/arch/powerpc/platforms/powermac/smp.c
+--- linux-3.0.orig/arch/powerpc/platforms/powermac/smp.c
++++ linux-3.0/arch/powerpc/platforms/powermac/smp.c
 @@ -200,7 +200,7 @@ static int psurge_secondary_ipi_init(voi
  
  	if (psurge_secondary_virq)
@@ -4251,10 +4015,10 @@
  	.name = "primary IPI",
  };
  
-Index: linux-2.6/arch/powerpc/sysdev/xics/xics-common.c
+Index: linux-3.0/arch/powerpc/sysdev/xics/xics-common.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/sysdev/xics/xics-common.c
-+++ linux-2.6/arch/powerpc/sysdev/xics/xics-common.c
+--- linux-3.0.orig/arch/powerpc/sysdev/xics/xics-common.c
++++ linux-3.0/arch/powerpc/sysdev/xics/xics-common.c
 @@ -134,11 +134,11 @@ static void xics_request_ipi(void)
  	BUG_ON(ipi == NO_IRQ);
  
@@ -4270,10 +4034,10 @@
  }
  
  int __init xics_smp_probe(void)
-Index: linux-2.6/arch/powerpc/Kconfig
+Index: linux-3.0/arch/powerpc/Kconfig
 ===================================================================
---- linux-2.6.orig/arch/powerpc/Kconfig
-+++ linux-2.6/arch/powerpc/Kconfig
+--- linux-3.0.orig/arch/powerpc/Kconfig
++++ linux-3.0/arch/powerpc/Kconfig
 @@ -69,10 +69,11 @@ config LOCKDEP_SUPPORT
  
  config RWSEM_GENERIC_SPINLOCK
@@ -4304,10 +4068,10 @@
  
  source kernel/time/Kconfig
  source kernel/Kconfig.hz
-Index: linux-2.6/net/netfilter/ipvs/ip_vs_ctl.c
+Index: linux-3.0/net/netfilter/ipvs/ip_vs_ctl.c
 ===================================================================
---- linux-2.6.orig/net/netfilter/ipvs/ip_vs_ctl.c
-+++ linux-2.6/net/netfilter/ipvs/ip_vs_ctl.c
+--- linux-3.0.orig/net/netfilter/ipvs/ip_vs_ctl.c
++++ linux-3.0/net/netfilter/ipvs/ip_vs_ctl.c
 @@ -3679,7 +3679,7 @@ int __net_init __ip_vs_control_init(stru
  	int idx;
  	struct netns_ipvs *ipvs = net_ipvs(net);
@@ -4317,10 +4081,10 @@
  
  	/* Initialize rs_table */
  	for (idx = 0; idx < IP_VS_RTAB_SIZE; idx++)
-Index: linux-2.6/kernel/watchdog.c
+Index: linux-3.0/kernel/watchdog.c
 ===================================================================
---- linux-2.6.orig/kernel/watchdog.c
-+++ linux-2.6/kernel/watchdog.c
+--- linux-3.0.orig/kernel/watchdog.c
++++ linux-3.0/kernel/watchdog.c
 @@ -208,6 +208,8 @@ static struct perf_event_attr wd_hw_attr
  	.disabled	= 1,
  };
@@ -4379,10 +4143,10 @@
  }
  
  static int watchdog_enable(int cpu)
-Index: linux-2.6/kernel/time/clocksource.c
+Index: linux-3.0/kernel/time/clocksource.c
 ===================================================================
---- linux-2.6.orig/kernel/time/clocksource.c
-+++ linux-2.6/kernel/time/clocksource.c
+--- linux-3.0.orig/kernel/time/clocksource.c
++++ linux-3.0/kernel/time/clocksource.c
 @@ -186,6 +186,7 @@ static struct timer_list watchdog_timer;
  static DECLARE_WORK(watchdog_work, clocksource_watchdog_work);
  static DEFINE_SPINLOCK(watchdog_lock);
@@ -4469,10 +4233,10 @@
  }
  
  static void clocksource_enqueue_watchdog(struct clocksource *cs)
-Index: linux-2.6/kernel/rtmutex-debug.c
+Index: linux-3.0/kernel/rtmutex-debug.c
 ===================================================================
---- linux-2.6.orig/kernel/rtmutex-debug.c
-+++ linux-2.6/kernel/rtmutex-debug.c
+--- linux-3.0.orig/kernel/rtmutex-debug.c
++++ linux-3.0/kernel/rtmutex-debug.c
 @@ -29,61 +29,6 @@
  
  #include "rtmutex_common.h"
@@ -4613,10 +4377,10 @@
  	memset(waiter, 0x22, sizeof(*waiter));
  }
  
-Index: linux-2.6/include/linux/kprobes.h
+Index: linux-3.0/include/linux/kprobes.h
 ===================================================================
---- linux-2.6.orig/include/linux/kprobes.h
-+++ linux-2.6/include/linux/kprobes.h
+--- linux-3.0.orig/include/linux/kprobes.h
++++ linux-3.0/include/linux/kprobes.h
 @@ -181,7 +181,7 @@ struct kretprobe {
  	int nmissed;
  	size_t data_size;
@@ -4626,10 +4390,10 @@
  };
  
  struct kretprobe_instance {
-Index: linux-2.6/kernel/kprobes.c
+Index: linux-3.0/kernel/kprobes.c
 ===================================================================
---- linux-2.6.orig/kernel/kprobes.c
-+++ linux-2.6/kernel/kprobes.c
+--- linux-3.0.orig/kernel/kprobes.c
++++ linux-3.0/kernel/kprobes.c
 @@ -78,10 +78,10 @@ static bool kprobes_all_disarmed;
  static DEFINE_MUTEX(kprobe_mutex);
  static DEFINE_PER_CPU(struct kprobe *, kprobe_instance) = NULL;
@@ -4744,10 +4508,10 @@
  	}
  
  	/*
-Index: linux-2.6/include/linux/percpu_counter.h
+Index: linux-3.0/include/linux/percpu_counter.h
 ===================================================================
---- linux-2.6.orig/include/linux/percpu_counter.h
-+++ linux-2.6/include/linux/percpu_counter.h
+--- linux-3.0.orig/include/linux/percpu_counter.h
++++ linux-3.0/include/linux/percpu_counter.h
 @@ -16,7 +16,7 @@
  #ifdef CONFIG_SMP
  
@@ -4757,10 +4521,10 @@
  	s64 count;
  #ifdef CONFIG_HOTPLUG_CPU
  	struct list_head list;	/* All percpu_counters are on a list */
-Index: linux-2.6/lib/percpu_counter.c
+Index: linux-3.0/lib/percpu_counter.c
 ===================================================================
---- linux-2.6.orig/lib/percpu_counter.c
-+++ linux-2.6/lib/percpu_counter.c
+--- linux-3.0.orig/lib/percpu_counter.c
++++ linux-3.0/lib/percpu_counter.c
 @@ -59,13 +59,13 @@ void percpu_counter_set(struct percpu_co
  {
  	int cpu;
@@ -4829,10 +4593,10 @@
  	}
  	mutex_unlock(&percpu_counters_lock);
  #endif
-Index: linux-2.6/kernel/cgroup.c
+Index: linux-3.0/kernel/cgroup.c
 ===================================================================
---- linux-2.6.orig/kernel/cgroup.c
-+++ linux-2.6/kernel/cgroup.c
+--- linux-3.0.orig/kernel/cgroup.c
++++ linux-3.0/kernel/cgroup.c
 @@ -263,7 +263,7 @@ list_for_each_entry(_root, &roots, root_
  /* the list of cgroups eligible for automatic release. Protected by
   * release_list_lock */
@@ -4902,10 +4666,10 @@
  	mutex_unlock(&cgroup_mutex);
  }
  
-Index: linux-2.6/include/linux/proportions.h
+Index: linux-3.0/include/linux/proportions.h
 ===================================================================
---- linux-2.6.orig/include/linux/proportions.h
-+++ linux-2.6/include/linux/proportions.h
+--- linux-3.0.orig/include/linux/proportions.h
++++ linux-3.0/include/linux/proportions.h
 @@ -58,7 +58,7 @@ struct prop_local_percpu {
  	 */
  	int shift;
@@ -4929,10 +4693,10 @@
  }
  
  int prop_local_init_single(struct prop_local_single *pl);
-Index: linux-2.6/lib/proportions.c
+Index: linux-3.0/lib/proportions.c
 ===================================================================
---- linux-2.6.orig/lib/proportions.c
-+++ linux-2.6/lib/proportions.c
+--- linux-3.0.orig/lib/proportions.c
++++ linux-3.0/lib/proportions.c
 @@ -190,7 +190,7 @@ prop_adjust_shift(int *pl_shift, unsigne
  
  int prop_local_init_percpu(struct prop_local_percpu *pl)
@@ -4987,10 +4751,10 @@
  }
  
  /*
-Index: linux-2.6/kernel/trace/ring_buffer.c
+Index: linux-3.0/kernel/trace/ring_buffer.c
 ===================================================================
---- linux-2.6.orig/kernel/trace/ring_buffer.c
-+++ linux-2.6/kernel/trace/ring_buffer.c
+--- linux-3.0.orig/kernel/trace/ring_buffer.c
++++ linux-3.0/kernel/trace/ring_buffer.c
 @@ -1040,6 +1040,44 @@ static int rb_allocate_pages(struct ring
  	return -ENOMEM;
  }
@@ -5340,10 +5104,10 @@
  
   out:
  	return ret;
-Index: linux-2.6/kernel/trace/trace.c
+Index: linux-3.0/kernel/trace/trace.c
 ===================================================================
---- linux-2.6.orig/kernel/trace/trace.c
-+++ linux-2.6/kernel/trace/trace.c
+--- linux-3.0.orig/kernel/trace/trace.c
++++ linux-3.0/kernel/trace/trace.c
 @@ -341,7 +341,7 @@ unsigned long trace_flags = TRACE_ITER_P
  	TRACE_ITER_GRAPH_TIME | TRACE_ITER_RECORD_CMD | TRACE_ITER_OVERWRITE;
  
@@ -5480,10 +5244,10 @@
  
  /*
   * This is a make-shift waitqueue.
-Index: linux-2.6/kernel/trace/trace_irqsoff.c
+Index: linux-3.0/kernel/trace/trace_irqsoff.c
 ===================================================================
---- linux-2.6.orig/kernel/trace/trace_irqsoff.c
-+++ linux-2.6/kernel/trace/trace_irqsoff.c
+--- linux-3.0.orig/kernel/trace/trace_irqsoff.c
++++ linux-3.0/kernel/trace/trace_irqsoff.c
 @@ -17,13 +17,14 @@
  #include <linux/fs.h>
  
@@ -5596,10 +5360,10 @@
  		start_critical_timing(a0, a1);
  }
  #endif /* CONFIG_PREEMPT_TRACER */
-Index: linux-2.6/include/linux/ratelimit.h
+Index: linux-3.0/include/linux/ratelimit.h
 ===================================================================
---- linux-2.6.orig/include/linux/ratelimit.h
-+++ linux-2.6/include/linux/ratelimit.h
+--- linux-3.0.orig/include/linux/ratelimit.h
++++ linux-3.0/include/linux/ratelimit.h
 @@ -8,7 +8,7 @@
  #define DEFAULT_RATELIMIT_BURST		10
  
@@ -5627,10 +5391,10 @@
  	rs->interval = interval;
  	rs->burst = burst;
  	rs->printed = 0;
-Index: linux-2.6/kernel/printk.c
+Index: linux-3.0/kernel/printk.c
 ===================================================================
---- linux-2.6.orig/kernel/printk.c
-+++ linux-2.6/kernel/printk.c
+--- linux-3.0.orig/kernel/printk.c
++++ linux-3.0/kernel/printk.c
 @@ -21,6 +21,7 @@
  #include <linux/tty.h>
  #include <linux/tty_driver.h>
@@ -5949,10 +5713,10 @@
  
  	if (chars > end) {
  		s1 = log_buf + log_buf_len - chars + end;
-Index: linux-2.6/lib/ratelimit.c
+Index: linux-3.0/lib/ratelimit.c
 ===================================================================
---- linux-2.6.orig/lib/ratelimit.c
-+++ linux-2.6/lib/ratelimit.c
+--- linux-3.0.orig/lib/ratelimit.c
++++ linux-3.0/lib/ratelimit.c
 @@ -39,7 +39,7 @@ int ___ratelimit(struct ratelimit_state 
  	 * in addition to the one that will be printed by
  	 * the entity that is holding the lock already:
@@ -5971,10 +5735,10 @@
  
  	return ret;
  }
-Index: linux-2.6/include/linux/init_task.h
+Index: linux-3.0/include/linux/init_task.h
 ===================================================================
---- linux-2.6.orig/include/linux/init_task.h
-+++ linux-2.6/include/linux/init_task.h
+--- linux-3.0.orig/include/linux/init_task.h
++++ linux-3.0/include/linux/init_task.h
 @@ -42,7 +42,7 @@ extern struct fs_struct init_fs;
  	.cputimer	= { 						\
  		.cputime = INIT_CPUTIME,				\
@@ -5984,7 +5748,7 @@
  	},								\
  	.cred_guard_mutex =						\
  		 __MUTEX_INITIALIZER(sig.cred_guard_mutex),		\
-@@ -126,6 +126,12 @@ extern struct cred init_cred;
+@@ -126,6 +126,14 @@ extern struct cred init_cred;
  # define INIT_PERF_EVENTS(tsk)
  #endif
  
@@ -5994,10 +5758,21 @@
 +# define INIT_TIMER_LIST
 +#endif
 +
++#define INIT_TASK_COMM "swapper"
++
  /*
   *  INIT_TASK is used to set up the first task table, touch at
   * your own risk!. Base=0, limit=0x1fffff (=2MB)
-@@ -179,6 +185,7 @@ extern struct cred init_cred;
+@@ -162,7 +170,7 @@ extern struct cred init_cred;
+ 	.group_leader	= &tsk,						\
+ 	RCU_INIT_POINTER(.real_cred, &init_cred),			\
+ 	RCU_INIT_POINTER(.cred, &init_cred),				\
+-	.comm		= "swapper",					\
++	.comm		= INIT_TASK_COMM,				\
+ 	.thread		= INIT_THREAD,					\
+ 	.fs		= &init_fs,					\
+ 	.files		= &init_files,					\
+@@ -179,6 +187,7 @@ extern struct cred init_cred;
  	.fs_excl	= ATOMIC_INIT(0),				\
  	.pi_lock	= __RAW_SPIN_LOCK_UNLOCKED(tsk.pi_lock),	\
  	.timer_slack_ns = 50000, /* 50 usec default slack */		\
@@ -6005,10 +5780,10 @@
  	.pids = {							\
  		[PIDTYPE_PID]  = INIT_PID_LINK(PIDTYPE_PID),		\
  		[PIDTYPE_PGID] = INIT_PID_LINK(PIDTYPE_PGID),		\
-Index: linux-2.6/include/linux/sched.h
+Index: linux-3.0/include/linux/sched.h
 ===================================================================
---- linux-2.6.orig/include/linux/sched.h
-+++ linux-2.6/include/linux/sched.h
+--- linux-3.0.orig/include/linux/sched.h
++++ linux-3.0/include/linux/sched.h
 @@ -63,6 +63,7 @@ struct sched_param {
  #include <linux/nodemask.h>
  #include <linux/mm_types.h>
@@ -6233,82 +6008,354 @@
 +extern void __mmdrop_delayed(struct rcu_head *rhp);
 +static inline void mmdrop_delayed(struct mm_struct *mm)
 +{
-+	if (atomic_dec_and_test(&mm->mm_count))
-+		call_rcu(&mm->delayed_drop, __mmdrop_delayed);
++	if (atomic_dec_and_test(&mm->mm_count))
++		call_rcu(&mm->delayed_drop, __mmdrop_delayed);
++}
++#else
++# define mmdrop_delayed(mm)	mmdrop(mm)
++#endif
++
+ /* mmput gets rid of the mappings and all user-space */
+ extern void mmput(struct mm_struct *);
+ /* Grab a reference to a task's mm, if it is not already going away */
+@@ -2509,7 +2582,7 @@ extern int _cond_resched(void);
+ 
+ extern int __cond_resched_lock(spinlock_t *lock);
+ 
+-#ifdef CONFIG_PREEMPT
++#if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_RT_FULL)
+ #define PREEMPT_LOCK_OFFSET	PREEMPT_OFFSET
+ #else
+ #define PREEMPT_LOCK_OFFSET	0
+@@ -2520,12 +2593,16 @@ extern int __cond_resched_lock(spinlock_
+ 	__cond_resched_lock(lock);				\
+ })
+ 
++#ifndef CONFIG_PREEMPT_RT_FULL
+ extern int __cond_resched_softirq(void);
+ 
+ #define cond_resched_softirq() ({					\
+ 	__might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET);	\
+ 	__cond_resched_softirq();					\
+ })
++#else
++# define cond_resched_softirq()		cond_resched()
++#endif
+ 
+ /*
+  * Does a critical section need to be broken due to another
+@@ -2549,7 +2626,7 @@ void thread_group_cputimer(struct task_s
+ 
+ static inline void thread_group_cputime_init(struct signal_struct *sig)
+ {
+-	spin_lock_init(&sig->cputimer.lock);
++	raw_spin_lock_init(&sig->cputimer.lock);
+ }
+ 
+ /*
+@@ -2588,6 +2665,26 @@ static inline void set_task_cpu(struct t
+ 
+ #endif /* CONFIG_SMP */
+ 
++static inline int __migrate_disabled(struct task_struct *p)
++{
++#ifdef CONFIG_PREEMPT_RT_FULL
++	return p->migrate_disable;
++#else
++	return 0;
++#endif
++}
++
++/* Future-safe accessor for struct task_struct's cpus_allowed. */
++static inline const struct cpumask *tsk_cpus_allowed(struct task_struct *p)
++{
++#ifdef CONFIG_PREEMPT_RT_FULL
++	if (p->migrate_disable)
++		return cpumask_of(task_cpu(p));
++#endif
++
++	return &p->cpus_allowed;
++}
++
+ extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
+ extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
+ 
+Index: linux-3.0/kernel/posix-cpu-timers.c
+===================================================================
+--- linux-3.0.orig/kernel/posix-cpu-timers.c
++++ linux-3.0/kernel/posix-cpu-timers.c
+@@ -282,13 +282,13 @@ void thread_group_cputimer(struct task_s
+ 		 * it.
+ 		 */
+ 		thread_group_cputime(tsk, &sum);
+-		spin_lock_irqsave(&cputimer->lock, flags);
++		raw_spin_lock_irqsave(&cputimer->lock, flags);
+ 		cputimer->running = 1;
+ 		update_gt_cputime(&cputimer->cputime, &sum);
+ 	} else
+-		spin_lock_irqsave(&cputimer->lock, flags);
++		raw_spin_lock_irqsave(&cputimer->lock, flags);
+ 	*times = cputimer->cputime;
+-	spin_unlock_irqrestore(&cputimer->lock, flags);
++	raw_spin_unlock_irqrestore(&cputimer->lock, flags);
+ }
+ 
+ /*
+@@ -701,7 +701,7 @@ static int posix_cpu_timer_set(struct k_
+ 	/*
+ 	 * Disarm any old timer after extracting its expiry time.
+ 	 */
+-	BUG_ON(!irqs_disabled());
++	BUG_ON_NONRT(!irqs_disabled());
+ 
+ 	ret = 0;
+ 	old_incr = timer->it.cpu.incr;
+@@ -999,9 +999,9 @@ static void stop_process_timers(struct s
+ 	struct thread_group_cputimer *cputimer = &sig->cputimer;
+ 	unsigned long flags;
+ 
+-	spin_lock_irqsave(&cputimer->lock, flags);
++	raw_spin_lock_irqsave(&cputimer->lock, flags);
+ 	cputimer->running = 0;
+-	spin_unlock_irqrestore(&cputimer->lock, flags);
++	raw_spin_unlock_irqrestore(&cputimer->lock, flags);
+ }
+ 
+ static u32 onecputick;
+@@ -1223,7 +1223,7 @@ void posix_cpu_timer_schedule(struct k_i
+ 	/*
+ 	 * Now re-arm for the new expiry time.
+ 	 */
+-	BUG_ON(!irqs_disabled());
++	BUG_ON_NONRT(!irqs_disabled());
+ 	arm_timer(timer);
+ 	spin_unlock(&p->sighand->siglock);
+ 
+@@ -1290,10 +1290,11 @@ static inline int fastpath_timer_check(s
+ 	sig = tsk->signal;
+ 	if (sig->cputimer.running) {
+ 		struct task_cputime group_sample;
++		unsigned long flags;
+ 
+-		spin_lock(&sig->cputimer.lock);
++		raw_spin_lock_irqsave(&sig->cputimer.lock, flags);
+ 		group_sample = sig->cputimer.cputime;
+-		spin_unlock(&sig->cputimer.lock);
++		raw_spin_unlock_irqrestore(&sig->cputimer.lock, flags);
+ 
+ 		if (task_cputime_expired(&group_sample, &sig->cputime_expires))
+ 			return 1;
+@@ -1307,13 +1308,13 @@ static inline int fastpath_timer_check(s
+  * already updated our counts.  We need to check if any timers fire now.
+  * Interrupts are disabled.
+  */
+-void run_posix_cpu_timers(struct task_struct *tsk)
++static void __run_posix_cpu_timers(struct task_struct *tsk)
+ {
+ 	LIST_HEAD(firing);
+ 	struct k_itimer *timer, *next;
+ 	unsigned long flags;
+ 
+-	BUG_ON(!irqs_disabled());
++	BUG_ON_NONRT(!irqs_disabled());
+ 
+ 	/*
+ 	 * The fast path checks that there are no expired thread or thread
+@@ -1371,6 +1372,190 @@ void run_posix_cpu_timers(struct task_st
+ 	}
+ }
+ 
++#ifdef CONFIG_PREEMPT_RT_BASE
++#include <linux/kthread.h>
++#include <linux/cpu.h>
++DEFINE_PER_CPU(struct task_struct *, posix_timer_task);
++DEFINE_PER_CPU(struct task_struct *, posix_timer_tasklist);
++
++static int posix_cpu_timers_thread(void *data)
++{
++	int cpu = (long)data;
++
++	BUG_ON(per_cpu(posix_timer_task,cpu) != current);
++
++	while (!kthread_should_stop()) {
++		struct task_struct *tsk = NULL;
++		struct task_struct *next = NULL;
++
++		if (cpu_is_offline(cpu))
++			goto wait_to_die;
++
++		/* grab task list */
++		raw_local_irq_disable();
++		tsk = per_cpu(posix_timer_tasklist, cpu);
++		per_cpu(posix_timer_tasklist, cpu) = NULL;
++		raw_local_irq_enable();
++
++		/* its possible the list is empty, just return */
++		if (!tsk) {
++			set_current_state(TASK_INTERRUPTIBLE);
++			schedule();
++			__set_current_state(TASK_RUNNING);
++			continue;
++		}
++
++		/* Process task list */
++		while (1) {
++			/* save next */
++			next = tsk->posix_timer_list;
++
++			/* run the task timers, clear its ptr and
++			 * unreference it
++			 */
++			__run_posix_cpu_timers(tsk);
++			tsk->posix_timer_list = NULL;
++			put_task_struct(tsk);
++
++			/* check if this is the last on the list */
++			if (next == tsk)
++				break;
++			tsk = next;
++		}
++	}
++	return 0;
++
++wait_to_die:
++	/* Wait for kthread_stop */
++	set_current_state(TASK_INTERRUPTIBLE);
++	while (!kthread_should_stop()) {
++		schedule();
++		set_current_state(TASK_INTERRUPTIBLE);
++	}
++	__set_current_state(TASK_RUNNING);
++	return 0;
++}
++
++static inline int __fastpath_timer_check(struct task_struct *tsk)
++{
++	/* tsk == current, ensure it is safe to use ->signal/sighand */
++	if (unlikely(tsk->exit_state))
++		return 0;
++
++	if (!task_cputime_zero(&tsk->cputime_expires))
++			return 1;
++
++	if (!task_cputime_zero(&tsk->signal->cputime_expires))
++			return 1;
++
++	return 0;
++}
++
++void run_posix_cpu_timers(struct task_struct *tsk)
++{
++	unsigned long cpu = smp_processor_id();
++	struct task_struct *tasklist;
++
++	BUG_ON(!irqs_disabled());
++	if(!per_cpu(posix_timer_task, cpu))
++		return;
++	/* get per-cpu references */
++	tasklist = per_cpu(posix_timer_tasklist, cpu);
++
++	/* check to see if we're already queued */
++	if (!tsk->posix_timer_list && __fastpath_timer_check(tsk)) {
++		get_task_struct(tsk);
++		if (tasklist) {
++			tsk->posix_timer_list = tasklist;
++		} else {
++			/*
++			 * The list is terminated by a self-pointing
++			 * task_struct
++			 */
++			tsk->posix_timer_list = tsk;
++		}
++		per_cpu(posix_timer_tasklist, cpu) = tsk;
++
++		wake_up_process(per_cpu(posix_timer_task, cpu));
++	}
 +}
-+#else
-+# define mmdrop_delayed(mm)	mmdrop(mm)
-+#endif
 +
- /* mmput gets rid of the mappings and all user-space */
- extern void mmput(struct mm_struct *);
- /* Grab a reference to a task's mm, if it is not already going away */
-@@ -2509,7 +2582,7 @@ extern int _cond_resched(void);
- 
- extern int __cond_resched_lock(spinlock_t *lock);
- 
--#ifdef CONFIG_PREEMPT
-+#if defined(CONFIG_PREEMPT) && !defined(CONFIG_PREEMPT_RT_FULL)
- #define PREEMPT_LOCK_OFFSET	PREEMPT_OFFSET
- #else
- #define PREEMPT_LOCK_OFFSET	0
-@@ -2520,12 +2593,16 @@ extern int __cond_resched_lock(spinlock_
- 	__cond_resched_lock(lock);				\
- })
- 
-+#ifndef CONFIG_PREEMPT_RT_FULL
- extern int __cond_resched_softirq(void);
- 
- #define cond_resched_softirq() ({					\
- 	__might_sleep(__FILE__, __LINE__, SOFTIRQ_DISABLE_OFFSET);	\
- 	__cond_resched_softirq();					\
- })
-+#else
-+# define cond_resched_softirq()		cond_resched()
-+#endif
- 
- /*
-  * Does a critical section need to be broken due to another
-@@ -2549,7 +2626,7 @@ void thread_group_cputimer(struct task_s
- 
- static inline void thread_group_cputime_init(struct signal_struct *sig)
- {
--	spin_lock_init(&sig->cputimer.lock);
-+	raw_spin_lock_init(&sig->cputimer.lock);
- }
- 
- /*
-@@ -2588,6 +2665,26 @@ static inline void set_task_cpu(struct t
- 
- #endif /* CONFIG_SMP */
- 
-+static inline int __migrate_disabled(struct task_struct *p)
++/*
++ * posix_cpu_thread_call - callback that gets triggered when a CPU is added.
++ * Here we can start up the necessary migration thread for the new CPU.
++ */
++static int posix_cpu_thread_call(struct notifier_block *nfb,
++				 unsigned long action, void *hcpu)
 +{
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+	return p->migrate_disable;
-+#else
-+	return 0;
++	int cpu = (long)hcpu;
++	struct task_struct *p;
++	struct sched_param param;
++
++	switch (action) {
++	case CPU_UP_PREPARE:
++		p = kthread_create(posix_cpu_timers_thread, hcpu,
++					"posixcputmr/%d",cpu);
++		if (IS_ERR(p))
++			return NOTIFY_BAD;
++		p->flags |= PF_NOFREEZE;
++		kthread_bind(p, cpu);
++		/* Must be high prio to avoid getting starved */
++		param.sched_priority = MAX_RT_PRIO-1;
++		sched_setscheduler(p, SCHED_FIFO, &param);
++		per_cpu(posix_timer_task,cpu) = p;
++		break;
++	case CPU_ONLINE:
++		/* Strictly unneccessary, as first user will wake it. */
++		wake_up_process(per_cpu(posix_timer_task,cpu));
++		break;
++#ifdef CONFIG_HOTPLUG_CPU
++	case CPU_UP_CANCELED:
++		/* Unbind it from offline cpu so it can run.  Fall thru. */
++		kthread_bind(per_cpu(posix_timer_task,cpu),
++			     any_online_cpu(cpu_online_map));
++		kthread_stop(per_cpu(posix_timer_task,cpu));
++		per_cpu(posix_timer_task,cpu) = NULL;
++		break;
++	case CPU_DEAD:
++		kthread_stop(per_cpu(posix_timer_task,cpu));
++		per_cpu(posix_timer_task,cpu) = NULL;
++		break;
 +#endif
++	}
++	return NOTIFY_OK;
 +}
 +
-+/* Future-safe accessor for struct task_struct's cpus_allowed. */
-+static inline const struct cpumask *tsk_cpus_allowed(struct task_struct *p)
++/* Register at highest priority so that task migration (migrate_all_tasks)
++ * happens before everything else.
++ */
++static struct notifier_block __devinitdata posix_cpu_thread_notifier = {
++	.notifier_call = posix_cpu_thread_call,
++	.priority = 10
++};
++
++static int __init posix_cpu_thread_init(void)
 +{
-+#ifdef CONFIG_PREEMPT_RT_FULL
-+	if (p->migrate_disable)
-+		return cpumask_of(task_cpu(p));
-+#endif
++	void *hcpu = (void *)(long)smp_processor_id();
++	/* Start one for boot CPU. */
++	unsigned long cpu;
 +
-+	return &p->cpus_allowed;
++	/* init the per-cpu posix_timer_tasklets */
++	for_each_cpu_mask(cpu, cpu_possible_map)
++		per_cpu(posix_timer_tasklist, cpu) = NULL;
++
++	posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_UP_PREPARE, hcpu);
++	posix_cpu_thread_call(&posix_cpu_thread_notifier, CPU_ONLINE, hcpu);
++	register_cpu_notifier(&posix_cpu_thread_notifier);
++	return 0;
++}
++early_initcall(posix_cpu_thread_init);
++#else /* CONFIG_PREEMPT_RT_BASE */
++void run_posix_cpu_timers(struct task_struct *tsk)
++{
++	__run_posix_cpu_timers(tsk);
 +}
++#endif /* CONFIG_PREEMPT_RT_BASE */
 +
- extern long sched_setaffinity(pid_t pid, const struct cpumask *new_mask);
- extern long sched_getaffinity(pid_t pid, struct cpumask *mask);
- 
-Index: linux-2.6/kernel/sched_stats.h
+ /*
+  * Set one of the process-wide special case CPU timers or RLIMIT_CPU.
+  * The tsk->sighand->siglock must be held by the caller.
+Index: linux-3.0/kernel/sched_stats.h
 ===================================================================
---- linux-2.6.orig/kernel/sched_stats.h
-+++ linux-2.6/kernel/sched_stats.h
+--- linux-3.0.orig/kernel/sched_stats.h
++++ linux-3.0/kernel/sched_stats.h
 @@ -282,10 +282,10 @@ static inline void account_group_user_ti
  	if (!cputimer->running)
  		return;
@@ -6345,10 +6392,10 @@
 -	spin_unlock(&cputimer->lock);
 +	raw_spin_unlock(&cputimer->lock);
  }
-Index: linux-2.6/include/linux/semaphore.h
+Index: linux-3.0/include/linux/semaphore.h
 ===================================================================
---- linux-2.6.orig/include/linux/semaphore.h
-+++ linux-2.6/include/linux/semaphore.h
+--- linux-3.0.orig/include/linux/semaphore.h
++++ linux-3.0/include/linux/semaphore.h
 @@ -14,14 +14,14 @@
  
  /* Please don't access any members of this structure directly */
@@ -6366,10 +6413,10 @@
  	.count		= n,						\
  	.wait_list	= LIST_HEAD_INIT((name).wait_list),		\
  }
-Index: linux-2.6/kernel/semaphore.c
+Index: linux-3.0/kernel/semaphore.c
 ===================================================================
---- linux-2.6.orig/kernel/semaphore.c
-+++ linux-2.6/kernel/semaphore.c
+--- linux-3.0.orig/kernel/semaphore.c
++++ linux-3.0/kernel/semaphore.c
 @@ -54,12 +54,12 @@ void down(struct semaphore *sem)
  {
  	unsigned long flags;
@@ -6471,10 +6518,10 @@
  		if (waiter.up)
  			return 0;
  	}
-Index: linux-2.6/include/linux/rwsem-spinlock.h
+Index: linux-3.0/include/linux/rwsem-spinlock.h
 ===================================================================
---- linux-2.6.orig/include/linux/rwsem-spinlock.h
-+++ linux-2.6/include/linux/rwsem-spinlock.h
+--- linux-3.0.orig/include/linux/rwsem-spinlock.h
++++ linux-3.0/include/linux/rwsem-spinlock.h
 @@ -20,26 +20,42 @@
   * - if activity is -1 then there is one active writer
   * - if wait_list is not empty, then there are processes waiting for the semaphore
@@ -6528,10 +6575,10 @@
  
  #endif /* __KERNEL__ */
  #endif /* _LINUX_RWSEM_SPINLOCK_H */
-Index: linux-2.6/include/linux/rwsem.h
+Index: linux-3.0/include/linux/rwsem.h
 ===================================================================
---- linux-2.6.orig/include/linux/rwsem.h
-+++ linux-2.6/include/linux/rwsem.h
+--- linux-3.0.orig/include/linux/rwsem.h
++++ linux-3.0/include/linux/rwsem.h
 @@ -17,37 +17,50 @@
  #include <asm/system.h>
  #include <asm/atomic.h>
@@ -6777,10 +6824,10 @@
 +
  #endif /* _LINUX_RWSEM_H */
 +
-Index: linux-2.6/lib/rwsem-spinlock.c
+Index: linux-3.0/lib/rwsem-spinlock.c
 ===================================================================
---- linux-2.6.orig/lib/rwsem-spinlock.c
-+++ linux-2.6/lib/rwsem-spinlock.c
+--- linux-3.0.orig/lib/rwsem-spinlock.c
++++ linux-3.0/lib/rwsem-spinlock.c
 @@ -17,24 +17,24 @@ struct rwsem_waiter {
  #define RWSEM_WAITING_FOR_WRITE	0x00000002
  };
@@ -7025,10 +7072,10 @@
 +	raw_spin_unlock_irqrestore(&sem->wait_lock, flags);
  }
  
-Index: linux-2.6/lib/rwsem.c
+Index: linux-3.0/lib/rwsem.c
 ===================================================================
---- linux-2.6.orig/lib/rwsem.c
-+++ linux-2.6/lib/rwsem.c
+--- linux-3.0.orig/lib/rwsem.c
++++ linux-3.0/lib/rwsem.c
 @@ -11,8 +11,8 @@
  /*
   * Initialize an rwsem:
@@ -7156,10 +7203,10 @@
  
  	return sem;
  }
-Index: linux-2.6/kernel/time/timer_stats.c
+Index: linux-3.0/kernel/time/timer_stats.c
 ===================================================================
---- linux-2.6.orig/kernel/time/timer_stats.c
-+++ linux-2.6/kernel/time/timer_stats.c
+--- linux-3.0.orig/kernel/time/timer_stats.c
++++ linux-3.0/kernel/time/timer_stats.c
 @@ -81,7 +81,7 @@ struct entry {
  /*
   * Spinlock protecting the tables - not taken during lookup:
@@ -7187,10 +7234,10 @@
  
  	return curr;
  }
-Index: linux-2.6/kernel/latencytop.c
+Index: linux-3.0/kernel/latencytop.c
 ===================================================================
---- linux-2.6.orig/kernel/latencytop.c
-+++ linux-2.6/kernel/latencytop.c
+--- linux-3.0.orig/kernel/latencytop.c
++++ linux-3.0/kernel/latencytop.c
 @@ -58,7 +58,7 @@
  #include <linux/list.h>
  #include <linux/stacktrace.h>
@@ -7242,10 +7289,10 @@
  }
  
  static int lstats_show(struct seq_file *m, void *v)
-Index: linux-2.6/drivers/video/console/vgacon.c
+Index: linux-3.0/drivers/video/console/vgacon.c
 ===================================================================
---- linux-2.6.orig/drivers/video/console/vgacon.c
-+++ linux-2.6/drivers/video/console/vgacon.c
+--- linux-3.0.orig/drivers/video/console/vgacon.c
++++ linux-3.0/drivers/video/console/vgacon.c
 @@ -50,7 +50,7 @@
  #include <video/vga.h>
  #include <asm/io.h>
@@ -7424,10 +7471,10 @@
  	vga_video_font_height = fontheight;
  
  	for (i = 0; i < MAX_NR_CONSOLES; i++) {
-Index: linux-2.6/arch/x86/oprofile/nmi_int.c
+Index: linux-3.0/arch/x86/oprofile/nmi_int.c
 ===================================================================
---- linux-2.6.orig/arch/x86/oprofile/nmi_int.c
-+++ linux-2.6/arch/x86/oprofile/nmi_int.c
+--- linux-3.0.orig/arch/x86/oprofile/nmi_int.c
++++ linux-3.0/arch/x86/oprofile/nmi_int.c
 @@ -355,10 +355,10 @@ static void nmi_cpu_setup(void *dummy)
  	int cpu = smp_processor_id();
  	struct op_msrs *msrs = &per_cpu(cpu_msrs, cpu);
@@ -7441,10 +7488,10 @@
  	per_cpu(saved_lvtpc, cpu) = apic_read(APIC_LVTPC);
  	apic_write(APIC_LVTPC, APIC_DM_NMI);
  }
-Index: linux-2.6/drivers/oprofile/event_buffer.c
+Index: linux-3.0/drivers/oprofile/event_buffer.c
 ===================================================================
---- linux-2.6.orig/drivers/oprofile/event_buffer.c
-+++ linux-2.6/drivers/oprofile/event_buffer.c
+--- linux-3.0.orig/drivers/oprofile/event_buffer.c
++++ linux-3.0/drivers/oprofile/event_buffer.c
 @@ -82,10 +82,10 @@ int alloc_event_buffer(void)
  {
  	unsigned long flags;
@@ -7458,10 +7505,10 @@
  
  	if (buffer_watershed >= buffer_size)
  		return -EINVAL;
-Index: linux-2.6/drivers/oprofile/oprofile_perf.c
+Index: linux-3.0/drivers/oprofile/oprofile_perf.c
 ===================================================================
---- linux-2.6.orig/drivers/oprofile/oprofile_perf.c
-+++ linux-2.6/drivers/oprofile/oprofile_perf.c
+--- linux-3.0.orig/drivers/oprofile/oprofile_perf.c
++++ linux-3.0/drivers/oprofile/oprofile_perf.c
 @@ -160,9 +160,9 @@ static int oprofile_perf_create_files(st
  
  static int oprofile_perf_setup(void)
@@ -7474,10 +7521,10 @@
  	return 0;
  }
  
-Index: linux-2.6/drivers/oprofile/oprofilefs.c
+Index: linux-3.0/drivers/oprofile/oprofilefs.c
 ===================================================================
---- linux-2.6.orig/drivers/oprofile/oprofilefs.c
-+++ linux-2.6/drivers/oprofile/oprofilefs.c
+--- linux-3.0.orig/drivers/oprofile/oprofilefs.c
++++ linux-3.0/drivers/oprofile/oprofilefs.c
 @@ -21,7 +21,7 @@
  
  #define OPROFILEFS_MAGIC 0x6f70726f
@@ -7499,10 +7546,10 @@
  	return 0;
  }
  
-Index: linux-2.6/include/linux/oprofile.h
+Index: linux-3.0/include/linux/oprofile.h
 ===================================================================
---- linux-2.6.orig/include/linux/oprofile.h
-+++ linux-2.6/include/linux/oprofile.h
+--- linux-3.0.orig/include/linux/oprofile.h
++++ linux-3.0/include/linux/oprofile.h
 @@ -166,7 +166,7 @@ ssize_t oprofilefs_ulong_to_user(unsigne
  int oprofilefs_ulong_from_user(unsigned long * val, char const __user * buf, size_t count);
  
@@ -7512,10 +7559,10 @@
  
  /**
   * Add the contents of a circular buffer to the event buffer.
-Index: linux-2.6/drivers/acpi/processor_idle.c
+Index: linux-3.0/drivers/acpi/processor_idle.c
 ===================================================================
---- linux-2.6.orig/drivers/acpi/processor_idle.c
-+++ linux-2.6/drivers/acpi/processor_idle.c
+--- linux-3.0.orig/drivers/acpi/processor_idle.c
++++ linux-3.0/drivers/acpi/processor_idle.c
 @@ -852,7 +852,7 @@ static int acpi_idle_enter_simple(struct
  }
  
@@ -7553,10 +7600,10 @@
  	}
  	kt2 = ktime_get_real();
  	idle_time_ns = ktime_to_ns(ktime_sub(kt2, kt1));
-Index: linux-2.6/arch/x86/kernel/cpu/mcheck/mce_intel.c
+Index: linux-3.0/arch/x86/kernel/cpu/mcheck/mce_intel.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/mcheck/mce_intel.c
-+++ linux-2.6/arch/x86/kernel/cpu/mcheck/mce_intel.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/mcheck/mce_intel.c
++++ linux-3.0/arch/x86/kernel/cpu/mcheck/mce_intel.c
 @@ -28,7 +28,7 @@ static DEFINE_PER_CPU(mce_banks_t, mce_b
   * cmci_discover_lock protects against parallel discovery attempts
   * which could race against each other.
@@ -7602,10 +7649,10 @@
  }
  
  /*
-Index: linux-2.6/arch/powerpc/sysdev/uic.c
+Index: linux-3.0/arch/powerpc/sysdev/uic.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/sysdev/uic.c
-+++ linux-2.6/arch/powerpc/sysdev/uic.c
+--- linux-3.0.orig/arch/powerpc/sysdev/uic.c
++++ linux-3.0/arch/powerpc/sysdev/uic.c
 @@ -47,7 +47,7 @@ struct uic {
  	int index;
  	int dcrbase;
@@ -7703,10 +7750,10 @@
  	indexp = of_get_property(node, "cell-index", &len);
  	if (!indexp || (len != sizeof(u32))) {
  		printk(KERN_ERR "uic: Device node %s has missing or invalid "
-Index: linux-2.6/drivers/dca/dca-core.c
+Index: linux-3.0/drivers/dca/dca-core.c
 ===================================================================
---- linux-2.6.orig/drivers/dca/dca-core.c
-+++ linux-2.6/drivers/dca/dca-core.c
+--- linux-3.0.orig/drivers/dca/dca-core.c
++++ linux-3.0/drivers/dca/dca-core.c
 @@ -35,7 +35,7 @@ MODULE_VERSION(DCA_VERSION);
  MODULE_LICENSE("GPL");
  MODULE_AUTHOR("Intel Corporation");
@@ -7915,10 +7962,10 @@
  
  	dca_sysfs_remove_provider(dca);
  }
-Index: linux-2.6/arch/arm/common/gic.c
+Index: linux-3.0/arch/arm/common/gic.c
 ===================================================================
---- linux-2.6.orig/arch/arm/common/gic.c
-+++ linux-2.6/arch/arm/common/gic.c
+--- linux-3.0.orig/arch/arm/common/gic.c
++++ linux-3.0/arch/arm/common/gic.c
 @@ -33,7 +33,7 @@
  #include <asm/mach/irq.h>
  #include <asm/hardware/gic.h>
@@ -8009,10 +8056,10 @@
  
  	gic_irq = (status & 0x3ff);
  	if (gic_irq == 1023)
-Index: linux-2.6/arch/arm/include/asm/dma.h
+Index: linux-3.0/arch/arm/include/asm/dma.h
 ===================================================================
---- linux-2.6.orig/arch/arm/include/asm/dma.h
-+++ linux-2.6/arch/arm/include/asm/dma.h
+--- linux-3.0.orig/arch/arm/include/asm/dma.h
++++ linux-3.0/arch/arm/include/asm/dma.h
 @@ -33,18 +33,18 @@
  #define DMA_MODE_CASCADE 0xc0
  #define DMA_AUTOINIT	 0x10
@@ -8035,10 +8082,10 @@
  }
  
  /* Clear the 'DMA Pointer Flip Flop'.
-Index: linux-2.6/arch/arm/include/asm/mmu.h
+Index: linux-3.0/arch/arm/include/asm/mmu.h
 ===================================================================
---- linux-2.6.orig/arch/arm/include/asm/mmu.h
-+++ linux-2.6/arch/arm/include/asm/mmu.h
+--- linux-3.0.orig/arch/arm/include/asm/mmu.h
++++ linux-3.0/arch/arm/include/asm/mmu.h
 @@ -6,7 +6,7 @@
  typedef struct {
  #ifdef CONFIG_CPU_HAS_ASID
@@ -8057,10 +8104,10 @@
  #else
  #define ASID(mm)	(0)
  #endif
-Index: linux-2.6/arch/arm/kernel/dma.c
+Index: linux-3.0/arch/arm/kernel/dma.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/dma.c
-+++ linux-2.6/arch/arm/kernel/dma.c
+--- linux-3.0.orig/arch/arm/kernel/dma.c
++++ linux-3.0/arch/arm/kernel/dma.c
 @@ -23,7 +23,7 @@
  
  #include <asm/mach/dma.h>
@@ -8070,10 +8117,10 @@
  EXPORT_SYMBOL(dma_spin_lock);
  
  static dma_t *dma_chan[MAX_DMA_CHANNELS];
-Index: linux-2.6/arch/arm/kernel/traps.c
+Index: linux-3.0/arch/arm/kernel/traps.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/traps.c
-+++ linux-2.6/arch/arm/kernel/traps.c
+--- linux-3.0.orig/arch/arm/kernel/traps.c
++++ linux-3.0/arch/arm/kernel/traps.c
 @@ -255,7 +255,7 @@ static int __die(const char *str, int er
  	return ret;
  }
@@ -8146,10 +8193,10 @@
  
  	return fn ? fn(regs, instr) : 1;
  }
-Index: linux-2.6/arch/arm/mach-footbridge/include/mach/hardware.h
+Index: linux-3.0/arch/arm/mach-footbridge/include/mach/hardware.h
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-footbridge/include/mach/hardware.h
-+++ linux-2.6/arch/arm/mach-footbridge/include/mach/hardware.h
+--- linux-3.0.orig/arch/arm/mach-footbridge/include/mach/hardware.h
++++ linux-3.0/arch/arm/mach-footbridge/include/mach/hardware.h
 @@ -93,7 +93,7 @@
  #define CPLD_FLASH_WR_ENABLE	1
  
@@ -8159,10 +8206,10 @@
  extern void nw_gpio_modify_op(unsigned int mask, unsigned int set);
  extern void nw_gpio_modify_io(unsigned int mask, unsigned int in);
  extern unsigned int nw_gpio_read(void);
-Index: linux-2.6/arch/arm/mach-footbridge/netwinder-hw.c
+Index: linux-3.0/arch/arm/mach-footbridge/netwinder-hw.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-footbridge/netwinder-hw.c
-+++ linux-2.6/arch/arm/mach-footbridge/netwinder-hw.c
+--- linux-3.0.orig/arch/arm/mach-footbridge/netwinder-hw.c
++++ linux-3.0/arch/arm/mach-footbridge/netwinder-hw.c
 @@ -68,7 +68,7 @@ static inline void wb977_ww(int reg, int
  /*
   * This is a lock for accessing ports GP1_IO_BASE and GP2_IO_BASE
@@ -8208,10 +8255,10 @@
  	}
  	return 0;
  }
-Index: linux-2.6/arch/arm/mach-footbridge/netwinder-leds.c
+Index: linux-3.0/arch/arm/mach-footbridge/netwinder-leds.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-footbridge/netwinder-leds.c
-+++ linux-2.6/arch/arm/mach-footbridge/netwinder-leds.c
+--- linux-3.0.orig/arch/arm/mach-footbridge/netwinder-leds.c
++++ linux-3.0/arch/arm/mach-footbridge/netwinder-leds.c
 @@ -31,13 +31,13 @@
  static char led_state;
  static char hw_led_state;
@@ -8244,10 +8291,10 @@
  	}
  }
  
-Index: linux-2.6/arch/arm/mach-integrator/core.c
+Index: linux-3.0/arch/arm/mach-integrator/core.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-integrator/core.c
-+++ linux-2.6/arch/arm/mach-integrator/core.c
+--- linux-3.0.orig/arch/arm/mach-integrator/core.c
++++ linux-3.0/arch/arm/mach-integrator/core.c
 @@ -205,7 +205,7 @@ static struct amba_pl010_data integrator
  
  #define CM_CTRL	IO_ADDRESS(INTEGRATOR_HDR_CTRL)
@@ -8270,10 +8317,10 @@
  }
  
  EXPORT_SYMBOL(cm_control);
-Index: linux-2.6/arch/arm/mach-integrator/pci_v3.c
+Index: linux-3.0/arch/arm/mach-integrator/pci_v3.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-integrator/pci_v3.c
-+++ linux-2.6/arch/arm/mach-integrator/pci_v3.c
+--- linux-3.0.orig/arch/arm/mach-integrator/pci_v3.c
++++ linux-3.0/arch/arm/mach-integrator/pci_v3.c
 @@ -163,7 +163,7 @@
   *	 7:2	register number
   *  
@@ -8337,10 +8384,10 @@
  }
  
  void __init pci_v3_postinit(void)
-Index: linux-2.6/arch/arm/mach-ixp4xx/common-pci.c
+Index: linux-3.0/arch/arm/mach-ixp4xx/common-pci.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-ixp4xx/common-pci.c
-+++ linux-2.6/arch/arm/mach-ixp4xx/common-pci.c
+--- linux-3.0.orig/arch/arm/mach-ixp4xx/common-pci.c
++++ linux-3.0/arch/arm/mach-ixp4xx/common-pci.c
 @@ -54,7 +54,7 @@ unsigned long ixp4xx_pci_reg_base = 0;
   * these transactions are atomic or we will end up
   * with corrupt data on the bus or in a driver.
@@ -8430,10 +8477,10 @@
  	return retval;
  }
  
-Index: linux-2.6/arch/arm/mach-shark/leds.c
+Index: linux-3.0/arch/arm/mach-shark/leds.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-shark/leds.c
-+++ linux-2.6/arch/arm/mach-shark/leds.c
+--- linux-3.0.orig/arch/arm/mach-shark/leds.c
++++ linux-3.0/arch/arm/mach-shark/leds.c
 @@ -36,7 +36,7 @@ static char led_state;
  static short hw_led_state;
  static short saved_state;
@@ -8461,10 +8508,10 @@
  }
  
  static int __init leds_init(void)
-Index: linux-2.6/arch/arm/mm/cache-l2x0.c
+Index: linux-3.0/arch/arm/mm/cache-l2x0.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/cache-l2x0.c
-+++ linux-2.6/arch/arm/mm/cache-l2x0.c
+--- linux-3.0.orig/arch/arm/mm/cache-l2x0.c
++++ linux-3.0/arch/arm/mm/cache-l2x0.c
 @@ -26,7 +26,7 @@
  #define CACHE_LINE_SIZE		32
  
@@ -8619,10 +8666,10 @@
  }
  
  void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
-Index: linux-2.6/arch/arm/mm/context.c
+Index: linux-3.0/arch/arm/mm/context.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/context.c
-+++ linux-2.6/arch/arm/mm/context.c
+--- linux-3.0.orig/arch/arm/mm/context.c
++++ linux-3.0/arch/arm/mm/context.c
 @@ -16,7 +16,7 @@
  #include <asm/mmu_context.h>
  #include <asm/tlbflush.h>
@@ -8684,10 +8731,10 @@
 -	spin_unlock(&cpu_asid_lock);
 +	raw_spin_unlock(&cpu_asid_lock);
  }
-Index: linux-2.6/arch/arm/mm/copypage-v4mc.c
+Index: linux-3.0/arch/arm/mm/copypage-v4mc.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/copypage-v4mc.c
-+++ linux-2.6/arch/arm/mm/copypage-v4mc.c
+--- linux-3.0.orig/arch/arm/mm/copypage-v4mc.c
++++ linux-3.0/arch/arm/mm/copypage-v4mc.c
 @@ -30,7 +30,7 @@
  #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
  				  L_PTE_MT_MINICACHE)
@@ -8714,10 +8761,10 @@
  
  	kunmap_atomic(kto, KM_USER1);
  }
-Index: linux-2.6/arch/arm/mm/copypage-v6.c
+Index: linux-3.0/arch/arm/mm/copypage-v6.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/copypage-v6.c
-+++ linux-2.6/arch/arm/mm/copypage-v6.c
+--- linux-3.0.orig/arch/arm/mm/copypage-v6.c
++++ linux-3.0/arch/arm/mm/copypage-v6.c
 @@ -27,7 +27,7 @@
  #define from_address	(0xffff8000)
  #define to_address	(0xffffc000)
@@ -8761,10 +8808,10 @@
  }
  
  struct cpu_user_fns v6_user_fns __initdata = {
-Index: linux-2.6/arch/arm/mm/copypage-xscale.c
+Index: linux-3.0/arch/arm/mm/copypage-xscale.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/copypage-xscale.c
-+++ linux-2.6/arch/arm/mm/copypage-xscale.c
+--- linux-3.0.orig/arch/arm/mm/copypage-xscale.c
++++ linux-3.0/arch/arm/mm/copypage-xscale.c
 @@ -32,7 +32,7 @@
  #define minicache_pgprot __pgprot(L_PTE_PRESENT | L_PTE_YOUNG | \
  				  L_PTE_MT_MINICACHE)
@@ -8791,10 +8838,10 @@
  
  	kunmap_atomic(kto, KM_USER1);
  }
-Index: linux-2.6/drivers/dma/ipu/ipu_irq.c
+Index: linux-3.0/drivers/dma/ipu/ipu_irq.c
 ===================================================================
---- linux-2.6.orig/drivers/dma/ipu/ipu_irq.c
-+++ linux-2.6/drivers/dma/ipu/ipu_irq.c
+--- linux-3.0.orig/drivers/dma/ipu/ipu_irq.c
++++ linux-3.0/drivers/dma/ipu/ipu_irq.c
 @@ -81,7 +81,7 @@ static struct ipu_irq_map irq_map[CONFIG
  /* Protects allocations from the above array of maps */
  static DEFINE_MUTEX(map_lock);
@@ -8969,10 +9016,10 @@
  
  			if (!map) {
  				pr_err("IPU: Interrupt on unmapped source %u bank %d\n",
-Index: linux-2.6/drivers/pci/dmar.c
+Index: linux-3.0/drivers/pci/dmar.c
 ===================================================================
---- linux-2.6.orig/drivers/pci/dmar.c
-+++ linux-2.6/drivers/pci/dmar.c
+--- linux-3.0.orig/drivers/pci/dmar.c
++++ linux-3.0/drivers/pci/dmar.c
 @@ -800,7 +800,7 @@ int alloc_iommu(struct dmar_drhd_unit *d
  		(unsigned long long)iommu->cap,
  		(unsigned long long)iommu->ecap);
@@ -9152,10 +9199,10 @@
  	return IRQ_HANDLED;
  }
  
-Index: linux-2.6/drivers/pci/intel-iommu.c
+Index: linux-3.0/drivers/pci/intel-iommu.c
 ===================================================================
---- linux-2.6.orig/drivers/pci/intel-iommu.c
-+++ linux-2.6/drivers/pci/intel-iommu.c
+--- linux-3.0.orig/drivers/pci/intel-iommu.c
++++ linux-3.0/drivers/pci/intel-iommu.c
 @@ -933,7 +933,7 @@ static void iommu_set_root_entry(struct 
  
  	addr = iommu->root_entry;
@@ -9316,10 +9363,10 @@
  	}
  
  	for_each_active_iommu(iommu, drhd)
-Index: linux-2.6/drivers/pci/intr_remapping.c
+Index: linux-3.0/drivers/pci/intr_remapping.c
 ===================================================================
---- linux-2.6.orig/drivers/pci/intr_remapping.c
-+++ linux-2.6/drivers/pci/intr_remapping.c
+--- linux-3.0.orig/drivers/pci/intr_remapping.c
++++ linux-3.0/drivers/pci/intr_remapping.c
 @@ -46,7 +46,7 @@ static __init int setup_intremap(char *s
  }
  early_param("intremap", setup_intremap);
@@ -9491,10 +9538,10 @@
  }
  
  int __init intr_remapping_supported(void)
-Index: linux-2.6/include/linux/intel-iommu.h
+Index: linux-3.0/include/linux/intel-iommu.h
 ===================================================================
---- linux-2.6.orig/include/linux/intel-iommu.h
-+++ linux-2.6/include/linux/intel-iommu.h
+--- linux-3.0.orig/include/linux/intel-iommu.h
++++ linux-3.0/include/linux/intel-iommu.h
 @@ -271,7 +271,7 @@ struct qi_desc {
  };
  
@@ -9513,10 +9560,10 @@
  	int		seq_id;	/* sequence id of the iommu */
  	int		agaw; /* agaw of this iommu */
  	int		msagaw; /* max sagaw of this iommu */
-Index: linux-2.6/lib/atomic64.c
+Index: linux-3.0/lib/atomic64.c
 ===================================================================
---- linux-2.6.orig/lib/atomic64.c
-+++ linux-2.6/lib/atomic64.c
+--- linux-3.0.orig/lib/atomic64.c
++++ linux-3.0/lib/atomic64.c
 @@ -29,11 +29,11 @@
   * Ensure each lock is in a separate cacheline.
   */
@@ -9702,10 +9749,10 @@
  	return 0;
  }
  
-Index: linux-2.6/arch/x86/kernel/cpu/intel_cacheinfo.c
+Index: linux-3.0/arch/x86/kernel/cpu/intel_cacheinfo.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/intel_cacheinfo.c
-+++ linux-2.6/arch/x86/kernel/cpu/intel_cacheinfo.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/intel_cacheinfo.c
++++ linux-3.0/arch/x86/kernel/cpu/intel_cacheinfo.c
 @@ -151,28 +151,17 @@ union _cpuid4_leaf_ecx {
  	u32 full;
  };
@@ -10003,10 +10050,10 @@
  			ktype_cache.default_attrs = amd_l3_attrs();
  #endif
  		retval = kobject_init_and_add(&(this_object->kobj),
-Index: linux-2.6/arch/x86/include/asm/amd_nb.h
+Index: linux-3.0/arch/x86/include/asm/amd_nb.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/amd_nb.h
-+++ linux-2.6/arch/x86/include/asm/amd_nb.h
+--- linux-3.0.orig/arch/x86/include/asm/amd_nb.h
++++ linux-3.0/arch/x86/include/asm/amd_nb.h
 @@ -19,9 +19,15 @@ extern int amd_numa_init(void);
  extern int amd_get_subcaches(int);
  extern int amd_set_subcaches(int, int);
@@ -10023,10 +10070,10 @@
  };
  
  struct amd_northbridge_info {
-Index: linux-2.6/kernel/sched_fair.c
+Index: linux-3.0/kernel/sched_fair.c
 ===================================================================
---- linux-2.6.orig/kernel/sched_fair.c
-+++ linux-2.6/kernel/sched_fair.c
+--- linux-3.0.orig/kernel/sched_fair.c
++++ linux-3.0/kernel/sched_fair.c
 @@ -1565,7 +1565,7 @@ find_idlest_group(struct sched_domain *s
  
  		/* Skip over this group if it has no CPUs allowed */
@@ -10113,10 +10160,10 @@
  				raw_spin_unlock_irqrestore(&busiest->lock,
  							    flags);
  				all_pinned = 1;
-Index: linux-2.6/lib/smp_processor_id.c
+Index: linux-3.0/lib/smp_processor_id.c
 ===================================================================
---- linux-2.6.orig/lib/smp_processor_id.c
-+++ linux-2.6/lib/smp_processor_id.c
+--- linux-3.0.orig/lib/smp_processor_id.c
++++ linux-3.0/lib/smp_processor_id.c
 @@ -22,7 +22,7 @@ notrace unsigned int debug_smp_processor
  	 * Kernel threads bound to a single CPU can safely use
  	 * smp_processor_id():
@@ -10139,10 +10186,10 @@
  	print_symbol("caller is %s\n", (long)__builtin_return_address(0));
  	dump_stack();
  
-Index: linux-2.6/arch/x86/include/asm/irqflags.h
+Index: linux-3.0/arch/x86/include/asm/irqflags.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/irqflags.h
-+++ linux-2.6/arch/x86/include/asm/irqflags.h
+--- linux-3.0.orig/arch/x86/include/asm/irqflags.h
++++ linux-3.0/arch/x86/include/asm/irqflags.h
 @@ -60,23 +60,24 @@ static inline void native_halt(void)
  #include <asm/paravirt.h>
  #else
@@ -10181,10 +10228,10 @@
  {
  	unsigned long flags = arch_local_save_flags();
  	arch_local_irq_disable();
-Index: linux-2.6/kernel/signal.c
+Index: linux-3.0/kernel/signal.c
 ===================================================================
---- linux-2.6.orig/kernel/signal.c
-+++ linux-2.6/kernel/signal.c
+--- linux-3.0.orig/kernel/signal.c
++++ linux-3.0/kernel/signal.c
 @@ -300,13 +300,45 @@ static bool task_participate_group_stop(
  	return false;
  }
@@ -10380,10 +10427,10 @@
  		schedule();
  	} else {
  		/*
-Index: linux-2.6/arch/arm/kernel/perf_event.c
+Index: linux-3.0/arch/arm/kernel/perf_event.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/perf_event.c
-+++ linux-2.6/arch/arm/kernel/perf_event.c
+--- linux-3.0.orig/arch/arm/kernel/perf_event.c
++++ linux-3.0/arch/arm/kernel/perf_event.c
 @@ -420,7 +420,7 @@ armpmu_reserve_hardware(void)
  			continue;
  
@@ -10393,10 +10440,10 @@
  				  "armpmu", NULL);
  		if (err) {
  			pr_warning("unable to request IRQ%d for ARM perf "
-Index: linux-2.6/arch/arm/Kconfig
+Index: linux-3.0/arch/arm/Kconfig
 ===================================================================
---- linux-2.6.orig/arch/arm/Kconfig
-+++ linux-2.6/arch/arm/Kconfig
+--- linux-3.0.orig/arch/arm/Kconfig
++++ linux-3.0/arch/arm/Kconfig
 @@ -29,6 +29,7 @@ config ARM
  	select HAVE_GENERIC_HARDIRQS
  	select HAVE_SPARSE_IRQ
@@ -10414,10 +10461,10 @@
  	help
  	  The address space of ARM processors is only 4 Gigabytes large
  	  and it has to accommodate user address space, kernel address
-Index: linux-2.6/arch/arm/mach-exynos4/platsmp.c
+Index: linux-3.0/arch/arm/mach-exynos4/platsmp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-exynos4/platsmp.c
-+++ linux-2.6/arch/arm/mach-exynos4/platsmp.c
+--- linux-3.0.orig/arch/arm/mach-exynos4/platsmp.c
++++ linux-3.0/arch/arm/mach-exynos4/platsmp.c
 @@ -56,7 +56,7 @@ static void __iomem *scu_base_addr(void)
  	return (void __iomem *)(S5P_VA_SCU);
  }
@@ -10456,10 +10503,10 @@
  
  	return pen_release != -1 ? -ENOSYS : 0;
  }
-Index: linux-2.6/arch/arm/mach-msm/platsmp.c
+Index: linux-3.0/arch/arm/mach-msm/platsmp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-msm/platsmp.c
-+++ linux-2.6/arch/arm/mach-msm/platsmp.c
+--- linux-3.0.orig/arch/arm/mach-msm/platsmp.c
++++ linux-3.0/arch/arm/mach-msm/platsmp.c
 @@ -38,7 +38,7 @@ extern void msm_secondary_startup(void);
   */
  volatile int pen_release = -1;
@@ -10498,10 +10545,10 @@
  
  	return pen_release != -1 ? -ENOSYS : 0;
  }
-Index: linux-2.6/arch/arm/mach-omap2/omap-smp.c
+Index: linux-3.0/arch/arm/mach-omap2/omap-smp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-omap2/omap-smp.c
-+++ linux-2.6/arch/arm/mach-omap2/omap-smp.c
+--- linux-3.0.orig/arch/arm/mach-omap2/omap-smp.c
++++ linux-3.0/arch/arm/mach-omap2/omap-smp.c
 @@ -29,7 +29,7 @@
  /* SCU base address */
  static void __iomem *scu_base;
@@ -10540,10 +10587,10 @@
  
  	return 0;
  }
-Index: linux-2.6/arch/arm/mach-tegra/platsmp.c
+Index: linux-3.0/arch/arm/mach-tegra/platsmp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-tegra/platsmp.c
-+++ linux-2.6/arch/arm/mach-tegra/platsmp.c
+--- linux-3.0.orig/arch/arm/mach-tegra/platsmp.c
++++ linux-3.0/arch/arm/mach-tegra/platsmp.c
 @@ -29,7 +29,7 @@
  
  extern void tegra_secondary_startup(void);
@@ -10582,10 +10629,10 @@
  
  	return 0;
  }
-Index: linux-2.6/arch/arm/mach-ux500/platsmp.c
+Index: linux-3.0/arch/arm/mach-ux500/platsmp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-ux500/platsmp.c
-+++ linux-2.6/arch/arm/mach-ux500/platsmp.c
+--- linux-3.0.orig/arch/arm/mach-ux500/platsmp.c
++++ linux-3.0/arch/arm/mach-ux500/platsmp.c
 @@ -57,7 +57,7 @@ static void __iomem *scu_base_addr(void)
  	return NULL;
  }
@@ -10624,10 +10671,10 @@
  
  	return pen_release != -1 ? -ENOSYS : 0;
  }
-Index: linux-2.6/arch/arm/plat-versatile/platsmp.c
+Index: linux-3.0/arch/arm/plat-versatile/platsmp.c
 ===================================================================
---- linux-2.6.orig/arch/arm/plat-versatile/platsmp.c
-+++ linux-2.6/arch/arm/plat-versatile/platsmp.c
+--- linux-3.0.orig/arch/arm/plat-versatile/platsmp.c
++++ linux-3.0/arch/arm/plat-versatile/platsmp.c
 @@ -37,7 +37,7 @@ static void __cpuinit write_pen_release(
  	outer_clean_range(__pa(&pen_release), __pa(&pen_release + 1));
  }
@@ -10666,10 +10713,10 @@
  
  	return pen_release != -1 ? -ENOSYS : 0;
  }
-Index: linux-2.6/arch/arm/kernel/process.c
+Index: linux-3.0/arch/arm/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/process.c
-+++ linux-2.6/arch/arm/kernel/process.c
+--- linux-3.0.orig/arch/arm/kernel/process.c
++++ linux-3.0/arch/arm/kernel/process.c
 @@ -209,9 +209,7 @@ void cpu_idle(void)
  		}
  		leds_event(led_idle_end);
@@ -10713,10 +10760,10 @@
  /*
   * The vectors page is always readable from user space for the
   * atomic helpers and the signal restart code.  Let's declare a mapping
-Index: linux-2.6/arch/avr32/kernel/process.c
+Index: linux-3.0/arch/avr32/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/avr32/kernel/process.c
-+++ linux-2.6/arch/avr32/kernel/process.c
+--- linux-3.0.orig/arch/avr32/kernel/process.c
++++ linux-3.0/arch/avr32/kernel/process.c
 @@ -38,9 +38,7 @@ void cpu_idle(void)
  		while (!need_resched())
  			cpu_idle_sleep();
@@ -10728,10 +10775,10 @@
  	}
  }
  
-Index: linux-2.6/arch/blackfin/kernel/process.c
+Index: linux-3.0/arch/blackfin/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/blackfin/kernel/process.c
-+++ linux-2.6/arch/blackfin/kernel/process.c
+--- linux-3.0.orig/arch/blackfin/kernel/process.c
++++ linux-3.0/arch/blackfin/kernel/process.c
 @@ -92,9 +92,7 @@ void cpu_idle(void)
  		while (!need_resched())
  			idle();
@@ -10743,10 +10790,10 @@
  	}
  }
  
-Index: linux-2.6/arch/cris/kernel/process.c
+Index: linux-3.0/arch/cris/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/cris/kernel/process.c
-+++ linux-2.6/arch/cris/kernel/process.c
+--- linux-3.0.orig/arch/cris/kernel/process.c
++++ linux-3.0/arch/cris/kernel/process.c
 @@ -115,9 +115,7 @@ void cpu_idle (void)
  				idle = default_idle;
  			idle();
@@ -10758,10 +10805,10 @@
  	}
  }
  
-Index: linux-2.6/arch/frv/kernel/process.c
+Index: linux-3.0/arch/frv/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/frv/kernel/process.c
-+++ linux-2.6/arch/frv/kernel/process.c
+--- linux-3.0.orig/arch/frv/kernel/process.c
++++ linux-3.0/arch/frv/kernel/process.c
 @@ -92,9 +92,7 @@ void cpu_idle(void)
  				idle();
  		}
@@ -10773,10 +10820,10 @@
  	}
  }
  
-Index: linux-2.6/arch/h8300/kernel/process.c
+Index: linux-3.0/arch/h8300/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/h8300/kernel/process.c
-+++ linux-2.6/arch/h8300/kernel/process.c
+--- linux-3.0.orig/arch/h8300/kernel/process.c
++++ linux-3.0/arch/h8300/kernel/process.c
 @@ -81,9 +81,7 @@ void cpu_idle(void)
  	while (1) {
  		while (!need_resched())
@@ -10788,10 +10835,10 @@
  	}
  }
  
-Index: linux-2.6/arch/ia64/kernel/process.c
+Index: linux-3.0/arch/ia64/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/ia64/kernel/process.c
-+++ linux-2.6/arch/ia64/kernel/process.c
+--- linux-3.0.orig/arch/ia64/kernel/process.c
++++ linux-3.0/arch/ia64/kernel/process.c
 @@ -330,9 +330,7 @@ cpu_idle (void)
  			normal_xtp();
  #endif
@@ -10803,10 +10850,10 @@
  		check_pgt_cache();
  		if (cpu_is_offline(cpu))
  			play_dead();
-Index: linux-2.6/arch/m32r/kernel/process.c
+Index: linux-3.0/arch/m32r/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/m32r/kernel/process.c
-+++ linux-2.6/arch/m32r/kernel/process.c
+--- linux-3.0.orig/arch/m32r/kernel/process.c
++++ linux-3.0/arch/m32r/kernel/process.c
 @@ -90,9 +90,7 @@ void cpu_idle (void)
  
  			idle();
@@ -10818,10 +10865,10 @@
  	}
  }
  
-Index: linux-2.6/arch/m68k/kernel/process_mm.c
+Index: linux-3.0/arch/m68k/kernel/process_mm.c
 ===================================================================
---- linux-2.6.orig/arch/m68k/kernel/process_mm.c
-+++ linux-2.6/arch/m68k/kernel/process_mm.c
+--- linux-3.0.orig/arch/m68k/kernel/process_mm.c
++++ linux-3.0/arch/m68k/kernel/process_mm.c
 @@ -94,9 +94,7 @@ void cpu_idle(void)
  	while (1) {
  		while (!need_resched())
@@ -10833,10 +10880,10 @@
  	}
  }
  
-Index: linux-2.6/arch/m68k/kernel/process_no.c
+Index: linux-3.0/arch/m68k/kernel/process_no.c
 ===================================================================
---- linux-2.6.orig/arch/m68k/kernel/process_no.c
-+++ linux-2.6/arch/m68k/kernel/process_no.c
+--- linux-3.0.orig/arch/m68k/kernel/process_no.c
++++ linux-3.0/arch/m68k/kernel/process_no.c
 @@ -73,9 +73,7 @@ void cpu_idle(void)
  	/* endless idle loop with no priority at all */
  	while (1) {
@@ -10848,10 +10895,10 @@
  	}
  }
  
-Index: linux-2.6/arch/microblaze/kernel/process.c
+Index: linux-3.0/arch/microblaze/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/microblaze/kernel/process.c
-+++ linux-2.6/arch/microblaze/kernel/process.c
+--- linux-3.0.orig/arch/microblaze/kernel/process.c
++++ linux-3.0/arch/microblaze/kernel/process.c
 @@ -108,9 +108,7 @@ void cpu_idle(void)
  			idle();
  		tick_nohz_restart_sched_tick();
@@ -10863,10 +10910,10 @@
  		check_pgt_cache();
  	}
  }
-Index: linux-2.6/arch/mips/kernel/process.c
+Index: linux-3.0/arch/mips/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/process.c
-+++ linux-2.6/arch/mips/kernel/process.c
+--- linux-3.0.orig/arch/mips/kernel/process.c
++++ linux-3.0/arch/mips/kernel/process.c
 @@ -78,9 +78,7 @@ void __noreturn cpu_idle(void)
  			play_dead();
  #endif
@@ -10878,10 +10925,10 @@
  	}
  }
  
-Index: linux-2.6/arch/mn10300/kernel/process.c
+Index: linux-3.0/arch/mn10300/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/mn10300/kernel/process.c
-+++ linux-2.6/arch/mn10300/kernel/process.c
+--- linux-3.0.orig/arch/mn10300/kernel/process.c
++++ linux-3.0/arch/mn10300/kernel/process.c
 @@ -123,9 +123,7 @@ void cpu_idle(void)
  			idle();
  		}
@@ -10893,10 +10940,10 @@
  	}
  }
  
-Index: linux-2.6/arch/parisc/kernel/process.c
+Index: linux-3.0/arch/parisc/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/parisc/kernel/process.c
-+++ linux-2.6/arch/parisc/kernel/process.c
+--- linux-3.0.orig/arch/parisc/kernel/process.c
++++ linux-3.0/arch/parisc/kernel/process.c
 @@ -71,9 +71,7 @@ void cpu_idle(void)
  	while (1) {
  		while (!need_resched())
@@ -10908,10 +10955,10 @@
  		check_pgt_cache();
  	}
  }
-Index: linux-2.6/arch/powerpc/kernel/idle.c
+Index: linux-3.0/arch/powerpc/kernel/idle.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/idle.c
-+++ linux-2.6/arch/powerpc/kernel/idle.c
+--- linux-3.0.orig/arch/powerpc/kernel/idle.c
++++ linux-3.0/arch/powerpc/kernel/idle.c
 @@ -94,11 +94,11 @@ void cpu_idle(void)
  		HMT_medium();
  		ppc64_runlatch_on();
@@ -10928,10 +10975,10 @@
  	}
  }
  
-Index: linux-2.6/arch/powerpc/platforms/iseries/setup.c
+Index: linux-3.0/arch/powerpc/platforms/iseries/setup.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/platforms/iseries/setup.c
-+++ linux-2.6/arch/powerpc/platforms/iseries/setup.c
+--- linux-3.0.orig/arch/powerpc/platforms/iseries/setup.c
++++ linux-3.0/arch/powerpc/platforms/iseries/setup.c
 @@ -581,9 +581,7 @@ static void iseries_shared_idle(void)
  		if (hvlpevent_is_pending())
  			process_iSeries_events();
@@ -10954,10 +11001,10 @@
  	}
  }
  
-Index: linux-2.6/arch/s390/kernel/process.c
+Index: linux-3.0/arch/s390/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/s390/kernel/process.c
-+++ linux-2.6/arch/s390/kernel/process.c
+--- linux-3.0.orig/arch/s390/kernel/process.c
++++ linux-3.0/arch/s390/kernel/process.c
 @@ -94,9 +94,7 @@ void cpu_idle(void)
  		while (!need_resched())
  			default_idle();
@@ -10969,10 +11016,10 @@
  	}
  }
  
-Index: linux-2.6/arch/score/kernel/process.c
+Index: linux-3.0/arch/score/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/score/kernel/process.c
-+++ linux-2.6/arch/score/kernel/process.c
+--- linux-3.0.orig/arch/score/kernel/process.c
++++ linux-3.0/arch/score/kernel/process.c
 @@ -53,9 +53,7 @@ void __noreturn cpu_idle(void)
  		while (!need_resched())
  			barrier();
@@ -10984,10 +11031,10 @@
  	}
  }
  
-Index: linux-2.6/arch/sh/kernel/idle.c
+Index: linux-3.0/arch/sh/kernel/idle.c
 ===================================================================
---- linux-2.6.orig/arch/sh/kernel/idle.c
-+++ linux-2.6/arch/sh/kernel/idle.c
+--- linux-3.0.orig/arch/sh/kernel/idle.c
++++ linux-3.0/arch/sh/kernel/idle.c
 @@ -110,9 +110,7 @@ void cpu_idle(void)
  		}
  
@@ -10999,10 +11046,10 @@
  	}
  }
  
-Index: linux-2.6/arch/sparc/kernel/process_32.c
+Index: linux-3.0/arch/sparc/kernel/process_32.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/process_32.c
-+++ linux-2.6/arch/sparc/kernel/process_32.c
+--- linux-3.0.orig/arch/sparc/kernel/process_32.c
++++ linux-3.0/arch/sparc/kernel/process_32.c
 @@ -113,9 +113,7 @@ void cpu_idle(void)
  			while (!need_resched())
  				cpu_relax();
@@ -11025,10 +11072,10 @@
  		check_pgt_cache();
  	}
  }
-Index: linux-2.6/arch/sparc/kernel/process_64.c
+Index: linux-3.0/arch/sparc/kernel/process_64.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/process_64.c
-+++ linux-2.6/arch/sparc/kernel/process_64.c
+--- linux-3.0.orig/arch/sparc/kernel/process_64.c
++++ linux-3.0/arch/sparc/kernel/process_64.c
 @@ -102,15 +102,13 @@ void cpu_idle(void)
  
  		tick_nohz_restart_sched_tick();
@@ -11049,10 +11096,10 @@
  	}
  }
  
-Index: linux-2.6/arch/tile/kernel/process.c
+Index: linux-3.0/arch/tile/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/tile/kernel/process.c
-+++ linux-2.6/arch/tile/kernel/process.c
+--- linux-3.0.orig/arch/tile/kernel/process.c
++++ linux-3.0/arch/tile/kernel/process.c
 @@ -106,9 +106,7 @@ void cpu_idle(void)
  			current_thread_info()->status |= TS_POLLING;
  		}
@@ -11064,10 +11111,10 @@
  	}
  }
  
-Index: linux-2.6/arch/x86/kernel/process_32.c
+Index: linux-3.0/arch/x86/kernel/process_32.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/process_32.c
-+++ linux-2.6/arch/x86/kernel/process_32.c
+--- linux-3.0.orig/arch/x86/kernel/process_32.c
++++ linux-3.0/arch/x86/kernel/process_32.c
 @@ -38,6 +38,7 @@
  #include <linux/uaccess.h>
  #include <linux/io.h>
@@ -11129,10 +11176,10 @@
  	/* If we're going to preload the fpu context, make sure clts
  	   is run while we're batching the cpu state updates. */
  	if (preload_fpu)
-Index: linux-2.6/arch/x86/kernel/process_64.c
+Index: linux-3.0/arch/x86/kernel/process_64.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/process_64.c
-+++ linux-2.6/arch/x86/kernel/process_64.c
+--- linux-3.0.orig/arch/x86/kernel/process_64.c
++++ linux-3.0/arch/x86/kernel/process_64.c
 @@ -146,9 +146,7 @@ void cpu_idle(void)
  		}
  
@@ -11144,10 +11191,10 @@
  	}
  }
  
-Index: linux-2.6/arch/xtensa/kernel/process.c
+Index: linux-3.0/arch/xtensa/kernel/process.c
 ===================================================================
---- linux-2.6.orig/arch/xtensa/kernel/process.c
-+++ linux-2.6/arch/xtensa/kernel/process.c
+--- linux-3.0.orig/arch/xtensa/kernel/process.c
++++ linux-3.0/arch/xtensa/kernel/process.c
 @@ -113,9 +113,7 @@ void cpu_idle(void)
  	while (1) {
  		while (!need_resched())
@@ -11159,10 +11206,10 @@
  	}
  }
  
-Index: linux-2.6/init/main.c
+Index: linux-3.0/init/main.c
 ===================================================================
---- linux-2.6.orig/init/main.c
-+++ linux-2.6/init/main.c
+--- linux-3.0.orig/init/main.c
++++ linux-3.0/init/main.c
 @@ -68,6 +68,7 @@
  #include <linux/shmem_fs.h>
  #include <linux/slab.h>
@@ -11190,10 +11237,10 @@
  	/*
  	 * These use large bootmem allocations and must precede
  	 * kmem_cache_init()
-Index: linux-2.6/kernel/mutex.c
+Index: linux-3.0/kernel/mutex.c
 ===================================================================
---- linux-2.6.orig/kernel/mutex.c
-+++ linux-2.6/kernel/mutex.c
+--- linux-3.0.orig/kernel/mutex.c
++++ linux-3.0/kernel/mutex.c
 @@ -240,9 +240,7 @@ __mutex_lock_common(struct mutex *lock, 
  
  		/* didn't get the lock, go to sleep: */
@@ -11205,10 +11252,10 @@
  		spin_lock_mutex(&lock->wait_lock, flags);
  	}
  
-Index: linux-2.6/kernel/softirq.c
+Index: linux-3.0/kernel/softirq.c
 ===================================================================
---- linux-2.6.orig/kernel/softirq.c
-+++ linux-2.6/kernel/softirq.c
+--- linux-3.0.orig/kernel/softirq.c
++++ linux-3.0/kernel/softirq.c
 @@ -24,6 +24,7 @@
  #include <linux/ftrace.h>
  #include <linux/smp.h>
@@ -11452,8 +11499,8 @@
 +		local_irq_disable();
 +		if (local_softirq_pending())
 +			__do_softirq();
-+		local_unlock(local_softirq_lock);
 +		local_irq_enable();
++		local_unlock(local_softirq_lock);
 +		WARN_ON(current->softirq_nestcnt != 1);
 +	}
 +	current->softirq_nestcnt--;
@@ -11718,10 +11765,10 @@
  		static const struct sched_param param = {
  			.sched_priority = MAX_RT_PRIO-1
  		};
-Index: linux-2.6/kernel/posix-timers.c
+Index: linux-3.0/kernel/posix-timers.c
 ===================================================================
---- linux-2.6.orig/kernel/posix-timers.c
-+++ linux-2.6/kernel/posix-timers.c
+--- linux-3.0.orig/kernel/posix-timers.c
++++ linux-3.0/kernel/posix-timers.c
 @@ -439,6 +439,7 @@ static enum hrtimer_restart posix_timer_
  static struct pid *good_sigevent(sigevent_t * event)
  {
@@ -11817,10 +11864,10 @@
  		goto retry_delete;
  	}
  	list_del(&timer->list);
-Index: linux-2.6/include/linux/signal.h
+Index: linux-3.0/include/linux/signal.h
 ===================================================================
---- linux-2.6.orig/include/linux/signal.h
-+++ linux-2.6/include/linux/signal.h
+--- linux-3.0.orig/include/linux/signal.h
++++ linux-3.0/include/linux/signal.h
 @@ -229,6 +229,7 @@ static inline void init_sigpending(struc
  }
  
@@ -11829,10 +11876,10 @@
  
  /* Test if 'sig' is valid signal. Use this instead of testing _NSIG directly */
  static inline int valid_signal(unsigned long sig)
-Index: linux-2.6/kernel/exit.c
+Index: linux-3.0/kernel/exit.c
 ===================================================================
---- linux-2.6.orig/kernel/exit.c
-+++ linux-2.6/kernel/exit.c
+--- linux-3.0.orig/kernel/exit.c
++++ linux-3.0/kernel/exit.c
 @@ -142,7 +142,7 @@ static void __exit_signal(struct task_st
  	 * Do this under ->siglock, we can race with another thread
  	 * doing sigqueue_free() if we have SIGQUEUE_PREALLOC signals.
@@ -11842,10 +11889,10 @@
  	tsk->sighand = NULL;
  	spin_unlock(&sighand->siglock);
  
-Index: linux-2.6/kernel/fork.c
+Index: linux-3.0/kernel/fork.c
 ===================================================================
---- linux-2.6.orig/kernel/fork.c
-+++ linux-2.6/kernel/fork.c
+--- linux-3.0.orig/kernel/fork.c
++++ linux-3.0/kernel/fork.c
 @@ -87,7 +87,7 @@ int max_threads;		/* tunable limit on nr
  
  DEFINE_PER_CPU(unsigned long, process_counts) = 0;
@@ -11922,10 +11969,10 @@
  #ifdef CONFIG_LOCKDEP
  	p->lockdep_depth = 0; /* no locks held yet */
  	p->curr_chain_key = 0;
-Index: linux-2.6/kernel/sched_features.h
+Index: linux-3.0/kernel/sched_features.h
 ===================================================================
---- linux-2.6.orig/kernel/sched_features.h
-+++ linux-2.6/kernel/sched_features.h
+--- linux-3.0.orig/kernel/sched_features.h
++++ linux-3.0/kernel/sched_features.h
 @@ -65,10 +65,15 @@ SCHED_FEAT(OWNER_SPIN, 1)
   */
  SCHED_FEAT(NONIRQ_POWER, 1)
@@ -11942,10 +11989,10 @@
  
  SCHED_FEAT(FORCE_SD_OVERLAP, 0)
 +SCHED_FEAT(RT_RUNTIME_SHARE, 1)
-Index: linux-2.6/include/asm-generic/cmpxchg-local.h
+Index: linux-3.0/include/asm-generic/cmpxchg-local.h
 ===================================================================
---- linux-2.6.orig/include/asm-generic/cmpxchg-local.h
-+++ linux-2.6/include/asm-generic/cmpxchg-local.h
+--- linux-3.0.orig/include/asm-generic/cmpxchg-local.h
++++ linux-3.0/include/asm-generic/cmpxchg-local.h
 @@ -21,7 +21,7 @@ static inline unsigned long __cmpxchg_lo
  	if (size == 8 && sizeof(unsigned long) != 8)
  		wrong_size_cmpxchg(ptr);
@@ -11978,10 +12025,10 @@
  	return prev;
  }
  
-Index: linux-2.6/drivers/char/random.c
+Index: linux-3.0/drivers/char/random.c
 ===================================================================
---- linux-2.6.orig/drivers/char/random.c
-+++ linux-2.6/drivers/char/random.c
+--- linux-3.0.orig/drivers/char/random.c
++++ linux-3.0/drivers/char/random.c
 @@ -433,7 +433,7 @@ static struct entropy_store input_pool =
  	.poolinfo = &poolinfo_table[0],
  	.name = "input",
@@ -12032,10 +12079,10 @@
  }
  
  void add_input_randomness(unsigned int type, unsigned int code,
-Index: linux-2.6/arch/arm/mach-at91/at91rm9200_time.c
+Index: linux-3.0/arch/arm/mach-at91/at91rm9200_time.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-at91/at91rm9200_time.c
-+++ linux-2.6/arch/arm/mach-at91/at91rm9200_time.c
+--- linux-3.0.orig/arch/arm/mach-at91/at91rm9200_time.c
++++ linux-3.0/arch/arm/mach-at91/at91rm9200_time.c
 @@ -114,6 +114,7 @@ clkevt32k_mode(enum clock_event_mode mod
  	last_crtr = read_CRTR();
  	switch (mode) {
@@ -12052,10 +12099,10 @@
  	case CLOCK_EVT_MODE_RESUME:
  		irqmask = 0;
  		break;
-Index: linux-2.6/arch/arm/mach-at91/at91sam926x_time.c
+Index: linux-3.0/arch/arm/mach-at91/at91sam926x_time.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mach-at91/at91sam926x_time.c
-+++ linux-2.6/arch/arm/mach-at91/at91sam926x_time.c
+--- linux-3.0.orig/arch/arm/mach-at91/at91sam926x_time.c
++++ linux-3.0/arch/arm/mach-at91/at91sam926x_time.c
 @@ -54,7 +54,7 @@ static struct clocksource pit_clk = {
  	.flags		= CLOCK_SOURCE_IS_CONTINUOUS,
  };
@@ -12083,10 +12130,10 @@
  		break;
  	case CLOCK_EVT_MODE_RESUME:
  		break;
-Index: linux-2.6/drivers/clocksource/tcb_clksrc.c
+Index: linux-3.0/drivers/clocksource/tcb_clksrc.c
 ===================================================================
---- linux-2.6.orig/drivers/clocksource/tcb_clksrc.c
-+++ linux-2.6/drivers/clocksource/tcb_clksrc.c
+--- linux-3.0.orig/drivers/clocksource/tcb_clksrc.c
++++ linux-3.0/drivers/clocksource/tcb_clksrc.c
 @@ -21,8 +21,7 @@
   *     resolution better than 200 nsec).
   *
@@ -12202,10 +12249,10 @@
  	return 0;
  }
  arch_initcall(tcb_clksrc_init);
-Index: linux-2.6/drivers/misc/Kconfig
+Index: linux-3.0/drivers/misc/Kconfig
 ===================================================================
---- linux-2.6.orig/drivers/misc/Kconfig
-+++ linux-2.6/drivers/misc/Kconfig
+--- linux-3.0.orig/drivers/misc/Kconfig
++++ linux-3.0/drivers/misc/Kconfig
 @@ -82,6 +82,7 @@ config AB8500_PWM
  config ATMEL_TCLIB
  	bool "Atmel AT32/AT91 Timer/Counter Library"
@@ -12275,10 +12322,10 @@
  config PHANTOM
  	tristate "Sensable PHANToM (PCI)"
  	depends on PCI
-Index: linux-2.6/drivers/net/tulip/tulip_core.c
+Index: linux-3.0/drivers/net/tulip/tulip_core.c
 ===================================================================
---- linux-2.6.orig/drivers/net/tulip/tulip_core.c
-+++ linux-2.6/drivers/net/tulip/tulip_core.c
+--- linux-3.0.orig/drivers/net/tulip/tulip_core.c
++++ linux-3.0/drivers/net/tulip/tulip_core.c
 @@ -1951,6 +1951,7 @@ static void __devexit tulip_remove_one (
  	pci_iounmap(pdev, tp->base_addr);
  	free_netdev (dev);
@@ -12287,10 +12334,10 @@
  	pci_set_drvdata (pdev, NULL);
  
  	/* pci_power_off (pdev, -1); */
-Index: linux-2.6/drivers/net/8139too.c
+Index: linux-3.0/drivers/net/8139too.c
 ===================================================================
---- linux-2.6.orig/drivers/net/8139too.c
-+++ linux-2.6/drivers/net/8139too.c
+--- linux-3.0.orig/drivers/net/8139too.c
++++ linux-3.0/drivers/net/8139too.c
 @@ -2173,7 +2173,11 @@ static irqreturn_t rtl8139_interrupt (in
   */
  static void rtl8139_poll_controller(struct net_device *dev)
@@ -12304,10 +12351,10 @@
  	rtl8139_interrupt(dev->irq, dev);
  	enable_irq(dev->irq);
  }
-Index: linux-2.6/drivers/net/ehea/ehea_main.c
+Index: linux-3.0/drivers/net/ehea/ehea_main.c
 ===================================================================
---- linux-2.6.orig/drivers/net/ehea/ehea_main.c
-+++ linux-2.6/drivers/net/ehea/ehea_main.c
+--- linux-3.0.orig/drivers/net/ehea/ehea_main.c
++++ linux-3.0/drivers/net/ehea/ehea_main.c
 @@ -1369,7 +1369,7 @@ static int ehea_reg_interrupts(struct ne
  			 "%s-queue%d", dev->name, i);
  		ret = ibmebus_request_irq(pr->eq->attr.ist1,
@@ -12317,10 +12364,10 @@
  					  pr);
  		if (ret) {
  			netdev_err(dev, "failed registering irq for ehea_queue port_res_nr:%d, ist=%X\n",
-Index: linux-2.6/drivers/net/arm/at91_ether.c
+Index: linux-3.0/drivers/net/arm/at91_ether.c
 ===================================================================
---- linux-2.6.orig/drivers/net/arm/at91_ether.c
-+++ linux-2.6/drivers/net/arm/at91_ether.c
+--- linux-3.0.orig/drivers/net/arm/at91_ether.c
++++ linux-3.0/drivers/net/arm/at91_ether.c
 @@ -199,7 +199,9 @@ static irqreturn_t at91ether_phy_interru
  	struct net_device *dev = (struct net_device *) dev_id;
  	struct at91_private *lp = netdev_priv(dev);
@@ -12351,10 +12398,10 @@
  
  	mod_timer(&lp->check_timer, jiffies + LINK_POLL_INTERVAL);
  }
-Index: linux-2.6/include/linux/preempt.h
+Index: linux-3.0/include/linux/preempt.h
 ===================================================================
---- linux-2.6.orig/include/linux/preempt.h
-+++ linux-2.6/include/linux/preempt.h
+--- linux-3.0.orig/include/linux/preempt.h
++++ linux-3.0/include/linux/preempt.h
 @@ -33,12 +33,18 @@ do { \
  	barrier(); \
  } while (0)
@@ -12420,10 +12467,10 @@
  #ifdef CONFIG_PREEMPT_NOTIFIERS
  
  struct preempt_notifier;
-Index: linux-2.6/include/linux/uaccess.h
+Index: linux-3.0/include/linux/uaccess.h
 ===================================================================
---- linux-2.6.orig/include/linux/uaccess.h
-+++ linux-2.6/include/linux/uaccess.h
+--- linux-3.0.orig/include/linux/uaccess.h
++++ linux-3.0/include/linux/uaccess.h
 @@ -6,38 +6,37 @@
  
  /*
@@ -12493,10 +12540,10 @@
  		set_fs(old_fs);				\
  		ret;					\
  	})
-Index: linux-2.6/arch/alpha/mm/fault.c
+Index: linux-3.0/arch/alpha/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/alpha/mm/fault.c
-+++ linux-2.6/arch/alpha/mm/fault.c
+--- linux-3.0.orig/arch/alpha/mm/fault.c
++++ linux-3.0/arch/alpha/mm/fault.c
 @@ -107,7 +107,7 @@ do_page_fault(unsigned long address, uns
  
  	/* If we're in an interrupt context, or have no user context,
@@ -12506,10 +12553,10 @@
  		goto no_context;
  
  #ifdef CONFIG_ALPHA_LARGE_VMALLOC
-Index: linux-2.6/arch/arm/mm/fault.c
+Index: linux-3.0/arch/arm/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/arm/mm/fault.c
-+++ linux-2.6/arch/arm/mm/fault.c
+--- linux-3.0.orig/arch/arm/mm/fault.c
++++ linux-3.0/arch/arm/mm/fault.c
 @@ -289,7 +289,7 @@ do_page_fault(unsigned long addr, unsign
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12519,10 +12566,10 @@
  		goto no_context;
  
  	/*
-Index: linux-2.6/arch/avr32/mm/fault.c
+Index: linux-3.0/arch/avr32/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/avr32/mm/fault.c
-+++ linux-2.6/arch/avr32/mm/fault.c
+--- linux-3.0.orig/arch/avr32/mm/fault.c
++++ linux-3.0/arch/avr32/mm/fault.c
 @@ -81,7 +81,7 @@ asmlinkage void do_page_fault(unsigned l
  	 * If we're in an interrupt or have no user context, we must
  	 * not take the fault...
@@ -12532,10 +12579,10 @@
  		goto no_context;
  
  	local_irq_enable();
-Index: linux-2.6/arch/cris/mm/fault.c
+Index: linux-3.0/arch/cris/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/cris/mm/fault.c
-+++ linux-2.6/arch/cris/mm/fault.c
+--- linux-3.0.orig/arch/cris/mm/fault.c
++++ linux-3.0/arch/cris/mm/fault.c
 @@ -111,7 +111,7 @@ do_page_fault(unsigned long address, str
  	 * user context, we must not take the fault.
  	 */
@@ -12545,10 +12592,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/frv/mm/fault.c
+Index: linux-3.0/arch/frv/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/frv/mm/fault.c
-+++ linux-2.6/arch/frv/mm/fault.c
+--- linux-3.0.orig/arch/frv/mm/fault.c
++++ linux-3.0/arch/frv/mm/fault.c
 @@ -79,7 +79,7 @@ asmlinkage void do_page_fault(int datamm
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12558,10 +12605,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/ia64/mm/fault.c
+Index: linux-3.0/arch/ia64/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/ia64/mm/fault.c
-+++ linux-2.6/arch/ia64/mm/fault.c
+--- linux-3.0.orig/arch/ia64/mm/fault.c
++++ linux-3.0/arch/ia64/mm/fault.c
 @@ -89,7 +89,7 @@ ia64_do_page_fault (unsigned long addres
  	/*
  	 * If we're in an interrupt or have no user context, we must not take the fault..
@@ -12571,10 +12618,10 @@
  		goto no_context;
  
  #ifdef CONFIG_VIRTUAL_MEM_MAP
-Index: linux-2.6/arch/m32r/mm/fault.c
+Index: linux-3.0/arch/m32r/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/m32r/mm/fault.c
-+++ linux-2.6/arch/m32r/mm/fault.c
+--- linux-3.0.orig/arch/m32r/mm/fault.c
++++ linux-3.0/arch/m32r/mm/fault.c
 @@ -115,7 +115,7 @@ asmlinkage void do_page_fault(struct pt_
  	 * If we're in an interrupt or have no user context or are running in an
  	 * atomic region then we must not take the fault..
@@ -12584,10 +12631,10 @@
  		goto bad_area_nosemaphore;
  
  	/* When running in the kernel we expect faults to occur only to
-Index: linux-2.6/arch/m68k/mm/fault.c
+Index: linux-3.0/arch/m68k/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/m68k/mm/fault.c
-+++ linux-2.6/arch/m68k/mm/fault.c
+--- linux-3.0.orig/arch/m68k/mm/fault.c
++++ linux-3.0/arch/m68k/mm/fault.c
 @@ -85,7 +85,7 @@ int do_page_fault(struct pt_regs *regs, 
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12597,10 +12644,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/microblaze/mm/fault.c
+Index: linux-3.0/arch/microblaze/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/microblaze/mm/fault.c
-+++ linux-2.6/arch/microblaze/mm/fault.c
+--- linux-3.0.orig/arch/microblaze/mm/fault.c
++++ linux-3.0/arch/microblaze/mm/fault.c
 @@ -107,7 +107,7 @@ void do_page_fault(struct pt_regs *regs,
  	if ((error_code & 0x13) == 0x13 || (error_code & 0x11) == 0x11)
  		is_write = 0;
@@ -12610,10 +12657,10 @@
  		if (kernel_mode(regs))
  			goto bad_area_nosemaphore;
  
-Index: linux-2.6/arch/mips/mm/fault.c
+Index: linux-3.0/arch/mips/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/mips/mm/fault.c
-+++ linux-2.6/arch/mips/mm/fault.c
+--- linux-3.0.orig/arch/mips/mm/fault.c
++++ linux-3.0/arch/mips/mm/fault.c
 @@ -88,7 +88,7 @@ asmlinkage void __kprobes do_page_fault(
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12623,10 +12670,10 @@
  		goto bad_area_nosemaphore;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/mn10300/mm/fault.c
+Index: linux-3.0/arch/mn10300/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/mn10300/mm/fault.c
-+++ linux-2.6/arch/mn10300/mm/fault.c
+--- linux-3.0.orig/arch/mn10300/mm/fault.c
++++ linux-3.0/arch/mn10300/mm/fault.c
 @@ -168,7 +168,7 @@ asmlinkage void do_page_fault(struct pt_
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12636,10 +12683,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/parisc/mm/fault.c
+Index: linux-3.0/arch/parisc/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/parisc/mm/fault.c
-+++ linux-2.6/arch/parisc/mm/fault.c
+--- linux-3.0.orig/arch/parisc/mm/fault.c
++++ linux-3.0/arch/parisc/mm/fault.c
 @@ -176,7 +176,7 @@ void do_page_fault(struct pt_regs *regs,
  	unsigned long acc_type;
  	int fault;
@@ -12649,10 +12696,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/powerpc/mm/fault.c
+Index: linux-3.0/arch/powerpc/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/mm/fault.c
-+++ linux-2.6/arch/powerpc/mm/fault.c
+--- linux-3.0.orig/arch/powerpc/mm/fault.c
++++ linux-3.0/arch/powerpc/mm/fault.c
 @@ -162,7 +162,7 @@ int __kprobes do_page_fault(struct pt_re
  	}
  #endif
@@ -12662,10 +12709,10 @@
  		if (!user_mode(regs))
  			return SIGSEGV;
  		/* in_atomic() in user mode is really bad,
-Index: linux-2.6/arch/s390/mm/fault.c
+Index: linux-3.0/arch/s390/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/s390/mm/fault.c
-+++ linux-2.6/arch/s390/mm/fault.c
+--- linux-3.0.orig/arch/s390/mm/fault.c
++++ linux-3.0/arch/s390/mm/fault.c
 @@ -295,7 +295,8 @@ static inline int do_exception(struct pt
  	 * user context.
  	 */
@@ -12686,10 +12733,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/score/mm/fault.c
+Index: linux-3.0/arch/score/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/score/mm/fault.c
-+++ linux-2.6/arch/score/mm/fault.c
+--- linux-3.0.orig/arch/score/mm/fault.c
++++ linux-3.0/arch/score/mm/fault.c
 @@ -72,7 +72,7 @@ asmlinkage void do_page_fault(struct pt_
  	* If we're in an interrupt or have no user
  	* context, we must not take the fault..
@@ -12699,10 +12746,10 @@
  		goto bad_area_nosemaphore;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/sh/mm/fault_32.c
+Index: linux-3.0/arch/sh/mm/fault_32.c
 ===================================================================
---- linux-2.6.orig/arch/sh/mm/fault_32.c
-+++ linux-2.6/arch/sh/mm/fault_32.c
+--- linux-3.0.orig/arch/sh/mm/fault_32.c
++++ linux-3.0/arch/sh/mm/fault_32.c
 @@ -166,7 +166,7 @@ asmlinkage void __kprobes do_page_fault(
  	 * If we're in an interrupt, have no user context or are running
  	 * in an atomic region then we must not take the fault:
@@ -12712,10 +12759,10 @@
  		goto no_context;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/sparc/mm/fault_32.c
+Index: linux-3.0/arch/sparc/mm/fault_32.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/mm/fault_32.c
-+++ linux-2.6/arch/sparc/mm/fault_32.c
+--- linux-3.0.orig/arch/sparc/mm/fault_32.c
++++ linux-3.0/arch/sparc/mm/fault_32.c
 @@ -248,8 +248,8 @@ asmlinkage void do_sparc_fault(struct pt
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12727,10 +12774,10 @@
  
  	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address);
  
-Index: linux-2.6/arch/sparc/mm/fault_64.c
+Index: linux-3.0/arch/sparc/mm/fault_64.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/mm/fault_64.c
-+++ linux-2.6/arch/sparc/mm/fault_64.c
+--- linux-3.0.orig/arch/sparc/mm/fault_64.c
++++ linux-3.0/arch/sparc/mm/fault_64.c
 @@ -322,7 +322,7 @@ asmlinkage void __kprobes do_sparc64_fau
  	 * If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12740,10 +12787,10 @@
  		goto intr_or_no_mm;
  
  	perf_sw_event(PERF_COUNT_SW_PAGE_FAULTS, 1, 0, regs, address);
-Index: linux-2.6/arch/tile/mm/fault.c
+Index: linux-3.0/arch/tile/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/tile/mm/fault.c
-+++ linux-2.6/arch/tile/mm/fault.c
+--- linux-3.0.orig/arch/tile/mm/fault.c
++++ linux-3.0/arch/tile/mm/fault.c
 @@ -346,7 +346,7 @@ static int handle_page_fault(struct pt_r
  	 * If we're in an interrupt, have no user context or are running in an
  	 * atomic region then we must not take the fault.
@@ -12753,10 +12800,10 @@
  		vma = NULL;  /* happy compiler */
  		goto bad_area_nosemaphore;
  	}
-Index: linux-2.6/arch/um/kernel/trap.c
+Index: linux-3.0/arch/um/kernel/trap.c
 ===================================================================
---- linux-2.6.orig/arch/um/kernel/trap.c
-+++ linux-2.6/arch/um/kernel/trap.c
+--- linux-3.0.orig/arch/um/kernel/trap.c
++++ linux-3.0/arch/um/kernel/trap.c
 @@ -37,7 +37,7 @@ int handle_page_fault(unsigned long addr
  	 * If the fault was during atomic operation, don't take the fault, just
  	 * fail.
@@ -12766,10 +12813,10 @@
  		goto out_nosemaphore;
  
  	down_read(&mm->mmap_sem);
-Index: linux-2.6/arch/x86/mm/fault.c
+Index: linux-3.0/arch/x86/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/x86/mm/fault.c
-+++ linux-2.6/arch/x86/mm/fault.c
+--- linux-3.0.orig/arch/x86/mm/fault.c
++++ linux-3.0/arch/x86/mm/fault.c
 @@ -1065,7 +1065,7 @@ do_page_fault(struct pt_regs *regs, unsi
  	 * If we're in an interrupt, have no user context or are running
  	 * in an atomic region then we must not take the fault:
@@ -12779,10 +12826,10 @@
  		bad_area_nosemaphore(regs, error_code, address);
  		return;
  	}
-Index: linux-2.6/arch/xtensa/mm/fault.c
+Index: linux-3.0/arch/xtensa/mm/fault.c
 ===================================================================
---- linux-2.6.orig/arch/xtensa/mm/fault.c
-+++ linux-2.6/arch/xtensa/mm/fault.c
+--- linux-3.0.orig/arch/xtensa/mm/fault.c
++++ linux-3.0/arch/xtensa/mm/fault.c
 @@ -57,7 +57,7 @@ void do_page_fault(struct pt_regs *regs)
  	/* If we're in an interrupt or have no user
  	 * context, we must not take the fault..
@@ -12792,10 +12839,10 @@
  		bad_page_fault(regs, address, SIGSEGV);
  		return;
  	}
-Index: linux-2.6/mm/filemap.c
+Index: linux-3.0/mm/filemap.c
 ===================================================================
---- linux-2.6.orig/mm/filemap.c
-+++ linux-2.6/mm/filemap.c
+--- linux-3.0.orig/mm/filemap.c
++++ linux-3.0/mm/filemap.c
 @@ -2040,7 +2040,7 @@ size_t iov_iter_copy_from_user_atomic(st
  	char *kaddr;
  	size_t copied;
@@ -12805,10 +12852,10 @@
  	kaddr = kmap_atomic(page, KM_USER0);
  	if (likely(i->nr_segs == 1)) {
  		int left;
-Index: linux-2.6/arch/x86/mm/highmem_32.c
+Index: linux-3.0/arch/x86/mm/highmem_32.c
 ===================================================================
---- linux-2.6.orig/arch/x86/mm/highmem_32.c
-+++ linux-2.6/arch/x86/mm/highmem_32.c
+--- linux-3.0.orig/arch/x86/mm/highmem_32.c
++++ linux-3.0/arch/x86/mm/highmem_32.c
 @@ -43,7 +43,7 @@ void *kmap_atomic_prot(struct page *page
  	type = kmap_atomic_idx_push();
  	idx = type + KM_TYPE_NR*smp_processor_id();
@@ -12818,10 +12865,10 @@
  	set_pte(kmap_pte-idx, mk_pte(page, prot));
  
  	return (void *)vaddr;
-Index: linux-2.6/include/linux/kernel.h
+Index: linux-3.0/include/linux/kernel.h
 ===================================================================
---- linux-2.6.orig/include/linux/kernel.h
-+++ linux-2.6/include/linux/kernel.h
+--- linux-3.0.orig/include/linux/kernel.h
++++ linux-3.0/include/linux/kernel.h
 @@ -346,7 +346,7 @@ extern enum system_states {
  	SYSTEM_HALT,
  	SYSTEM_POWER_OFF,
@@ -12831,10 +12878,10 @@
  } system_state;
  
  #define TAINT_PROPRIETARY_MODULE	0
-Index: linux-2.6/kernel/power/hibernate.c
+Index: linux-3.0/kernel/power/hibernate.c
 ===================================================================
---- linux-2.6.orig/kernel/power/hibernate.c
-+++ linux-2.6/kernel/power/hibernate.c
+--- linux-3.0.orig/kernel/power/hibernate.c
++++ linux-3.0/kernel/power/hibernate.c
 @@ -278,6 +278,8 @@ static int create_image(int platform_mod
  
  	local_irq_disable();
@@ -12884,10 +12931,10 @@
  	local_irq_enable();
  	enable_nonboot_cpus();
  
-Index: linux-2.6/kernel/power/suspend.c
+Index: linux-3.0/kernel/power/suspend.c
 ===================================================================
---- linux-2.6.orig/kernel/power/suspend.c
-+++ linux-2.6/kernel/power/suspend.c
+--- linux-3.0.orig/kernel/power/suspend.c
++++ linux-3.0/kernel/power/suspend.c
 @@ -163,6 +163,8 @@ static int suspend_enter(suspend_state_t
  	arch_suspend_disable_irqs();
  	BUG_ON(!irqs_disabled());
@@ -12906,10 +12953,10 @@
  	arch_suspend_enable_irqs();
  	BUG_ON(irqs_disabled());
  
-Index: linux-2.6/drivers/of/base.c
+Index: linux-3.0/drivers/of/base.c
 ===================================================================
---- linux-2.6.orig/drivers/of/base.c
-+++ linux-2.6/drivers/of/base.c
+--- linux-3.0.orig/drivers/of/base.c
++++ linux-3.0/drivers/of/base.c
 @@ -29,7 +29,7 @@ struct device_node *of_chosen;
  /* use when traversing tree through the allnext, child, sibling,
   * or parent members of struct device_node.
@@ -13369,10 +13416,10 @@
  }
  #endif /* defined(CONFIG_OF_DYNAMIC) */
  
-Index: linux-2.6/arch/sparc/kernel/prom_common.c
+Index: linux-3.0/arch/sparc/kernel/prom_common.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/prom_common.c
-+++ linux-2.6/arch/sparc/kernel/prom_common.c
+--- linux-3.0.orig/arch/sparc/kernel/prom_common.c
++++ linux-3.0/arch/sparc/kernel/prom_common.c
 @@ -67,7 +67,7 @@ int of_set_property(struct device_node *
  	err = -ENODEV;
  
@@ -13391,10 +13438,10 @@
  	mutex_unlock(&of_set_property_mutex);
  
  	/* XXX Upate procfs if necessary... */
-Index: linux-2.6/include/linux/of.h
+Index: linux-3.0/include/linux/of.h
 ===================================================================
---- linux-2.6.orig/include/linux/of.h
-+++ linux-2.6/include/linux/of.h
+--- linux-3.0.orig/include/linux/of.h
++++ linux-3.0/include/linux/of.h
 @@ -68,7 +68,7 @@ struct device_node {
  /* Pointer for first entry in chain of all nodes. */
  extern struct device_node *allnodes;
@@ -13404,10 +13451,10 @@
  
  static inline bool of_have_populated_dt(void)
  {
-Index: linux-2.6/include/linux/list.h
+Index: linux-3.0/include/linux/list.h
 ===================================================================
---- linux-2.6.orig/include/linux/list.h
-+++ linux-2.6/include/linux/list.h
+--- linux-3.0.orig/include/linux/list.h
++++ linux-3.0/include/linux/list.h
 @@ -362,6 +362,17 @@ static inline void list_splice_tail_init
  	list_entry((ptr)->next, type, member)
  
@@ -13426,10 +13473,10 @@
   * list_for_each	-	iterate over a list
   * @pos:	the &struct list_head to use as a loop cursor.
   * @head:	the head for your list.
-Index: linux-2.6/mm/page_alloc.c
+Index: linux-3.0/mm/page_alloc.c
 ===================================================================
---- linux-2.6.orig/mm/page_alloc.c
-+++ linux-2.6/mm/page_alloc.c
+--- linux-3.0.orig/mm/page_alloc.c
++++ linux-3.0/mm/page_alloc.c
 @@ -57,6 +57,7 @@
  #include <linux/ftrace_event.h>
  #include <linux/memcontrol.h>
@@ -13748,10 +13795,10 @@
  }
  
  /*
-Index: linux-2.6/include/linux/pid.h
+Index: linux-3.0/include/linux/pid.h
 ===================================================================
---- linux-2.6.orig/include/linux/pid.h
-+++ linux-2.6/include/linux/pid.h
+--- linux-3.0.orig/include/linux/pid.h
++++ linux-3.0/include/linux/pid.h
 @@ -2,6 +2,7 @@
  #define _LINUX_PID_H
  
@@ -13760,11 +13807,11 @@
  
  enum pid_type
  {
-Index: linux-2.6/net/core/sock.c
+Index: linux-3.0/net/core/sock.c
 ===================================================================
---- linux-2.6.orig/net/core/sock.c
-+++ linux-2.6/net/core/sock.c
-@@ -2034,12 +2034,11 @@ void lock_sock_nested(struct sock *sk, i
+--- linux-3.0.orig/net/core/sock.c
++++ linux-3.0/net/core/sock.c
+@@ -2035,12 +2035,11 @@ void lock_sock_nested(struct sock *sk, i
  	if (sk->sk_lock.owned)
  		__lock_sock(sk);
  	sk->sk_lock.owned = 1;
@@ -13778,11 +13825,11 @@
  }
  EXPORT_SYMBOL(lock_sock_nested);
  
-Index: linux-2.6/include/linux/interrupt.h
+Index: linux-3.0/include/linux/interrupt.h
 ===================================================================
---- linux-2.6.orig/include/linux/interrupt.h
-+++ linux-2.6/include/linux/interrupt.h
-@@ -202,7 +202,7 @@ extern void devm_free_irq(struct device 
+--- linux-3.0.orig/include/linux/interrupt.h
++++ linux-3.0/include/linux/interrupt.h
+@@ -205,7 +205,7 @@ extern void devm_free_irq(struct device 
  #ifdef CONFIG_LOCKDEP
  # define local_irq_enable_in_hardirq()	do { } while (0)
  #else
@@ -13791,7 +13838,7 @@
  #endif
  
  extern void disable_irq_nosync(unsigned int irq);
-@@ -377,9 +377,13 @@ static inline int disable_irq_wake(unsig
+@@ -380,9 +380,13 @@ static inline int disable_irq_wake(unsig
  
  
  #ifdef CONFIG_IRQ_FORCED_THREADING
@@ -13807,7 +13854,7 @@
  #endif
  
  #ifndef __ARCH_SET_SOFTIRQ_PENDING
-@@ -433,8 +437,14 @@ struct softirq_action
+@@ -436,8 +440,14 @@ struct softirq_action
  	void	(*action)(struct softirq_action *);
  };
  
@@ -13822,7 +13869,7 @@
  extern void open_softirq(int nr, void (*action)(struct softirq_action *));
  extern void softirq_init(void);
  static inline void __raise_softirq_irqoff(unsigned int nr)
-@@ -446,6 +456,8 @@ static inline void __raise_softirq_irqof
+@@ -449,6 +459,8 @@ static inline void __raise_softirq_irqof
  extern void raise_softirq_irqoff(unsigned int nr);
  extern void raise_softirq(unsigned int nr);
  
@@ -13831,7 +13878,7 @@
  /* This is the worklist that queues up per-cpu softirq work.
   *
   * send_remote_sendirq() adds work to these lists, and
-@@ -623,6 +635,12 @@ void tasklet_hrtimer_cancel(struct taskl
+@@ -626,6 +638,12 @@ void tasklet_hrtimer_cancel(struct taskl
  	tasklet_kill(&ttimer->tasklet);
  }
  
@@ -13844,10 +13891,10 @@
  /*
   * Autoprobing for irqs:
   *
-Index: linux-2.6/net/core/dev.c
+Index: linux-3.0/net/core/dev.c
 ===================================================================
---- linux-2.6.orig/net/core/dev.c
-+++ linux-2.6/net/core/dev.c
+--- linux-3.0.orig/net/core/dev.c
++++ linux-3.0/net/core/dev.c
 @@ -213,14 +213,14 @@ static inline struct hlist_head *dev_ind
  static inline void rps_lock(struct softnet_data *sd)
  {
@@ -13966,7 +14013,7 @@
  	while (!list_empty(&sd->poll_list)) {
  		struct napi_struct *n;
  		int work, weight;
-@@ -6196,6 +6236,9 @@ static int dev_cpu_callback(struct notif
+@@ -6197,6 +6237,9 @@ static int dev_cpu_callback(struct notif
  		netif_rx(skb);
  		input_queue_head_incr(oldsd);
  	}
@@ -13976,7 +14023,7 @@
  
  	return NOTIFY_OK;
  }
-@@ -6461,8 +6504,9 @@ static int __init net_dev_init(void)
+@@ -6462,8 +6505,9 @@ static int __init net_dev_init(void)
  		struct softnet_data *sd = &per_cpu(softnet_data, i);
  
  		memset(sd, 0, sizeof(*sd));
@@ -13988,10 +14035,10 @@
  		sd->completion_queue = NULL;
  		INIT_LIST_HEAD(&sd->poll_list);
  		sd->output_queue = NULL;
-Index: linux-2.6/arch/x86/kernel/entry_32.S
+Index: linux-3.0/arch/x86/kernel/entry_32.S
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/entry_32.S
-+++ linux-2.6/arch/x86/kernel/entry_32.S
+--- linux-3.0.orig/arch/x86/kernel/entry_32.S
++++ linux-3.0/arch/x86/kernel/entry_32.S
 @@ -625,7 +625,11 @@ work_notifysig:				# deal with pending s
  	jne work_notifysig_v86		# returning to kernel-space or
  					# vm86-space
@@ -14016,10 +14063,10 @@
  	jmp resume_userspace_sig
  END(work_pending)
  
-Index: linux-2.6/kernel/rcutree.c
+Index: linux-3.0/kernel/rcutree.c
 ===================================================================
---- linux-2.6.orig/kernel/rcutree.c
-+++ linux-2.6/kernel/rcutree.c
+--- linux-3.0.orig/kernel/rcutree.c
++++ linux-3.0/kernel/rcutree.c
 @@ -166,6 +166,12 @@ void rcu_sched_qs(int cpu)
  	rdp->passed_quiesc = 1;
  }
@@ -14114,10 +14161,10 @@
  
  /**
   * rcu_barrier_sched - Wait for in-flight call_rcu_sched() callbacks.
-Index: linux-2.6/kernel/rcutree.h
+Index: linux-3.0/kernel/rcutree.h
 ===================================================================
---- linux-2.6.orig/kernel/rcutree.h
-+++ linux-2.6/kernel/rcutree.h
+--- linux-3.0.orig/kernel/rcutree.h
++++ linux-3.0/kernel/rcutree.h
 @@ -422,6 +422,7 @@ DECLARE_PER_CPU(struct rcu_data, rcu_pre
  /* Forward declarations for rcutree_plugin.h */
  static void rcu_bootup_announce(void);
@@ -14136,10 +14183,10 @@
  #endif /* #if defined(CONFIG_HOTPLUG_CPU) || defined(CONFIG_TREE_PREEMPT_RCU) */
  static int rcu_preempt_pending(int cpu);
  static int rcu_preempt_needs_cpu(int cpu);
-Index: linux-2.6/kernel/rcutree_plugin.h
+Index: linux-3.0/kernel/rcutree_plugin.h
 ===================================================================
---- linux-2.6.orig/kernel/rcutree_plugin.h
-+++ linux-2.6/kernel/rcutree_plugin.h
+--- linux-3.0.orig/kernel/rcutree_plugin.h
++++ linux-3.0/kernel/rcutree_plugin.h
 @@ -299,6 +299,9 @@ static noinline void rcu_read_unlock_spe
  	int empty_exp;
  	unsigned long flags;
@@ -14265,10 +14312,10 @@
  
  /*
   * Check to see if any future RCU-related work will need to be done
-Index: linux-2.6/drivers/usb/gadget/ci13xxx_udc.c
+Index: linux-3.0/drivers/usb/gadget/ci13xxx_udc.c
 ===================================================================
---- linux-2.6.orig/drivers/usb/gadget/ci13xxx_udc.c
-+++ linux-2.6/drivers/usb/gadget/ci13xxx_udc.c
+--- linux-3.0.orig/drivers/usb/gadget/ci13xxx_udc.c
++++ linux-3.0/drivers/usb/gadget/ci13xxx_udc.c
 @@ -816,7 +816,7 @@ static struct {
  } dbg_data = {
  	.idx = 0,
@@ -14278,10 +14325,10 @@
  };
  
  /**
-Index: linux-2.6/fs/file.c
+Index: linux-3.0/fs/file.c
 ===================================================================
---- linux-2.6.orig/fs/file.c
-+++ linux-2.6/fs/file.c
+--- linux-3.0.orig/fs/file.c
++++ linux-3.0/fs/file.c
 @@ -105,14 +105,14 @@ void free_fdtable_rcu(struct rcu_head *r
  		kfree(fdt->open_fds);
  		kfree(fdt);
@@ -14308,10 +14355,10 @@
  };
  
  /*
-Index: linux-2.6/include/linux/idr.h
+Index: linux-3.0/include/linux/idr.h
 ===================================================================
---- linux-2.6.orig/include/linux/idr.h
-+++ linux-2.6/include/linux/idr.h
+--- linux-3.0.orig/include/linux/idr.h
++++ linux-3.0/include/linux/idr.h
 @@ -136,7 +136,7 @@ struct ida {
  	struct ida_bitmap	*free_bitmap;
  };
@@ -14321,10 +14368,10 @@
  #define DEFINE_IDA(name)	struct ida name = IDA_INIT(name)
  
  int ida_pre_get(struct ida *ida, gfp_t gfp_mask);
-Index: linux-2.6/kernel/cred.c
+Index: linux-3.0/kernel/cred.c
 ===================================================================
---- linux-2.6.orig/kernel/cred.c
-+++ linux-2.6/kernel/cred.c
+--- linux-3.0.orig/kernel/cred.c
++++ linux-3.0/kernel/cred.c
 @@ -35,7 +35,7 @@ static struct kmem_cache *cred_jar;
  static struct thread_group_cred init_tgcred = {
  	.usage	= ATOMIC_INIT(2),
@@ -14334,10 +14381,10 @@
  };
  #endif
  
-Index: linux-2.6/include/linux/seqlock.h
+Index: linux-3.0/include/linux/seqlock.h
 ===================================================================
---- linux-2.6.orig/include/linux/seqlock.h
-+++ linux-2.6/include/linux/seqlock.h
+--- linux-3.0.orig/include/linux/seqlock.h
++++ linux-3.0/include/linux/seqlock.h
 @@ -30,92 +30,12 @@
  #include <linux/preempt.h>
  #include <asm/processor.h>
@@ -14617,198 +14664,10 @@
 +}
  
  #endif /* __LINUX_SEQLOCK_H */
-Index: linux-2.6/drivers/cpufreq/cpufreq.c
-===================================================================
---- linux-2.6.orig/drivers/cpufreq/cpufreq.c
-+++ linux-2.6/drivers/cpufreq/cpufreq.c
-@@ -43,7 +43,7 @@ static DEFINE_PER_CPU(struct cpufreq_pol
- /* This one keeps track of the previously set governor of a removed CPU */
- static DEFINE_PER_CPU(char[CPUFREQ_NAME_LEN], cpufreq_cpu_governor);
- #endif
--static DEFINE_SPINLOCK(cpufreq_driver_lock);
-+static DEFINE_RAW_SPINLOCK(cpufreq_driver_lock);
- 
- /*
-  * cpu_policy_rwsem is a per CPU reader-writer semaphore designed to cure
-@@ -138,7 +138,7 @@ struct cpufreq_policy *cpufreq_cpu_get(u
- 		goto err_out;
- 
- 	/* get the cpufreq driver */
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 
- 	if (!cpufreq_driver)
- 		goto err_out_unlock;
-@@ -156,13 +156,13 @@ struct cpufreq_policy *cpufreq_cpu_get(u
- 	if (!kobject_get(&data->kobj))
- 		goto err_out_put_module;
- 
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 	return data;
- 
- err_out_put_module:
- 	module_put(cpufreq_driver->owner);
- err_out_unlock:
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- err_out:
- 	return NULL;
- }
-@@ -722,10 +722,10 @@ static int cpufreq_add_dev_policy(unsign
- 				return -EBUSY;
- 			}
- 
--			spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+			raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 			cpumask_copy(managed_policy->cpus, policy->cpus);
- 			per_cpu(cpufreq_cpu_data, cpu) = managed_policy;
--			spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+			raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 
- 			pr_debug("CPU already managed, adding link\n");
- 			ret = sysfs_create_link(&sys_dev->kobj,
-@@ -821,14 +821,16 @@ static int cpufreq_add_dev_interface(uns
- 			goto err_out_kobj_put;
- 	}
- 
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	get_online_cpus();
- 	for_each_cpu(j, policy->cpus) {
- 		if (!cpu_online(j))
- 			continue;
-+		raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 		per_cpu(cpufreq_cpu_data, j) = policy;
- 		per_cpu(cpufreq_policy_cpu, j) = policy->cpu;
-+		raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 	}
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	put_online_cpus();
- 
- 	ret = cpufreq_add_dev_symlink(cpu, policy);
- 	if (ret)
-@@ -970,10 +972,13 @@ static int cpufreq_add_dev(struct sys_de
- 
- 
- err_out_unregister:
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
--	for_each_cpu(j, policy->cpus)
-+	get_online_cpus();
-+	for_each_cpu(j, policy->cpus) {
-+		raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 		per_cpu(cpufreq_cpu_data, j) = NULL;
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+		raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	}
-+	put_online_cpus();
- 
- 	kobject_put(&policy->kobj);
- 	wait_for_completion(&policy->kobj_unregister);
-@@ -1013,11 +1018,11 @@ static int __cpufreq_remove_dev(struct s
- 
- 	pr_debug("unregistering CPU %u\n", cpu);
- 
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 	data = per_cpu(cpufreq_cpu_data, cpu);
- 
- 	if (!data) {
--		spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+		raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 		unlock_policy_rwsem_write(cpu);
- 		return -EINVAL;
- 	}
-@@ -1031,7 +1036,7 @@ static int __cpufreq_remove_dev(struct s
- 	if (unlikely(cpu != data->cpu)) {
- 		pr_debug("removing link\n");
- 		cpumask_clear_cpu(cpu, data->cpus);
--		spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+		raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 		kobj = &sys_dev->kobj;
- 		cpufreq_cpu_put(data);
- 		unlock_policy_rwsem_write(cpu);
-@@ -1040,6 +1045,7 @@ static int __cpufreq_remove_dev(struct s
- 	}
- #endif
- 
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- #ifdef CONFIG_SMP
- 
- #ifdef CONFIG_HOTPLUG_CPU
-@@ -1052,15 +1058,17 @@ static int __cpufreq_remove_dev(struct s
- 	 * per_cpu(cpufreq_cpu_data) while holding the lock, and remove
- 	 * the sysfs links afterwards.
- 	 */
-+	get_online_cpus();
- 	if (unlikely(cpumask_weight(data->cpus) > 1)) {
- 		for_each_cpu(j, data->cpus) {
- 			if (j == cpu)
- 				continue;
-+			raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 			per_cpu(cpufreq_cpu_data, j) = NULL;
-+			raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 		}
- 	}
--
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	put_online_cpus();
- 
- 	if (unlikely(cpumask_weight(data->cpus) > 1)) {
- 		for_each_cpu(j, data->cpus) {
-@@ -1079,8 +1087,6 @@ static int __cpufreq_remove_dev(struct s
- 			cpufreq_cpu_put(data);
- 		}
- 	}
--#else
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- #endif
- 
- 	if (cpufreq_driver->target)
-@@ -1802,13 +1808,13 @@ int cpufreq_register_driver(struct cpufr
- 	if (driver_data->setpolicy)
- 		driver_data->flags |= CPUFREQ_CONST_LOOPS;
- 
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 	if (cpufreq_driver) {
--		spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+		raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 		return -EBUSY;
- 	}
- 	cpufreq_driver = driver_data;
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 
- 	ret = sysdev_driver_register(&cpu_sysdev_class,
- 					&cpufreq_sysdev_driver);
-@@ -1842,9 +1848,9 @@ err_sysdev_unreg:
- 	sysdev_driver_unregister(&cpu_sysdev_class,
- 			&cpufreq_sysdev_driver);
- err_null_driver:
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 	cpufreq_driver = NULL;
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 	return ret;
- }
- EXPORT_SYMBOL_GPL(cpufreq_register_driver);
-@@ -1870,9 +1876,9 @@ int cpufreq_unregister_driver(struct cpu
- 	sysdev_driver_unregister(&cpu_sysdev_class, &cpufreq_sysdev_driver);
- 	unregister_hotcpu_notifier(&cpufreq_cpu_notifier);
- 
--	spin_lock_irqsave(&cpufreq_driver_lock, flags);
-+	raw_spin_lock_irqsave(&cpufreq_driver_lock, flags);
- 	cpufreq_driver = NULL;
--	spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
-+	raw_spin_unlock_irqrestore(&cpufreq_driver_lock, flags);
- 
- 	return 0;
- }
-Index: linux-2.6/arch/ia64/kernel/time.c
+Index: linux-3.0/arch/ia64/kernel/time.c
 ===================================================================
---- linux-2.6.orig/arch/ia64/kernel/time.c
-+++ linux-2.6/arch/ia64/kernel/time.c
+--- linux-3.0.orig/arch/ia64/kernel/time.c
++++ linux-3.0/arch/ia64/kernel/time.c
 @@ -36,7 +36,7 @@
  static cycle_t itc_get_cycles(struct clocksource *cs);
  
@@ -14835,10 +14694,10 @@
 +	raw_write_sequnlock_irqrestore(&fsyscall_gtod_data.lock, flags);
  }
  
-Index: linux-2.6/arch/x86/include/asm/vgtod.h
+Index: linux-3.0/arch/x86/include/asm/vgtod.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/vgtod.h
-+++ linux-2.6/arch/x86/include/asm/vgtod.h
+--- linux-3.0.orig/arch/x86/include/asm/vgtod.h
++++ linux-3.0/arch/x86/include/asm/vgtod.h
 @@ -5,7 +5,7 @@
  #include <linux/clocksource.h>
  
@@ -14848,10 +14707,10 @@
  
  	/* open coded 'struct timespec' */
  	time_t		wall_time_sec;
-Index: linux-2.6/arch/x86/kernel/vsyscall_64.c
+Index: linux-3.0/arch/x86/kernel/vsyscall_64.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/vsyscall_64.c
-+++ linux-2.6/arch/x86/kernel/vsyscall_64.c
+--- linux-3.0.orig/arch/x86/kernel/vsyscall_64.c
++++ linux-3.0/arch/x86/kernel/vsyscall_64.c
 @@ -52,7 +52,7 @@
  DEFINE_VVAR(int, vgetcpu_mode);
  DEFINE_VVAR(struct vsyscall_gtod_data, vsyscall_gtod_data) =
@@ -14892,10 +14751,10 @@
  }
  
  /* RED-PEN may want to readd seq locking, but then the variable should be
-Index: linux-2.6/kernel/time/ntp.c
+Index: linux-3.0/kernel/time/ntp.c
 ===================================================================
---- linux-2.6.orig/kernel/time/ntp.c
-+++ linux-2.6/kernel/time/ntp.c
+--- linux-3.0.orig/kernel/time/ntp.c
++++ linux-3.0/kernel/time/ntp.c
 @@ -358,7 +358,7 @@ static enum hrtimer_restart ntp_leap_sec
  {
  	enum hrtimer_restart res = HRTIMER_NORESTART;
@@ -14968,10 +14827,10 @@
  }
  EXPORT_SYMBOL(hardpps);
  
-Index: linux-2.6/kernel/time/tick-common.c
+Index: linux-3.0/kernel/time/tick-common.c
 ===================================================================
---- linux-2.6.orig/kernel/time/tick-common.c
-+++ linux-2.6/kernel/time/tick-common.c
+--- linux-3.0.orig/kernel/time/tick-common.c
++++ linux-3.0/kernel/time/tick-common.c
 @@ -63,13 +63,13 @@ int tick_is_oneshot_available(void)
  static void tick_periodic(int cpu)
  {
@@ -14988,20 +14847,20 @@
  	}
  
  	update_process_times(user_mode(get_irq_regs()));
-Index: linux-2.6/kernel/time/tick-internal.h
+Index: linux-3.0/kernel/time/tick-internal.h
 ===================================================================
---- linux-2.6.orig/kernel/time/tick-internal.h
-+++ linux-2.6/kernel/time/tick-internal.h
+--- linux-3.0.orig/kernel/time/tick-internal.h
++++ linux-3.0/kernel/time/tick-internal.h
 @@ -143,4 +143,4 @@ static inline int tick_device_is_functio
  #endif
  
  extern void do_timer(unsigned long ticks);
 -extern seqlock_t xtime_lock;
 +extern raw_seqlock_t xtime_lock;
-Index: linux-2.6/kernel/time/tick-sched.c
+Index: linux-3.0/kernel/time/tick-sched.c
 ===================================================================
---- linux-2.6.orig/kernel/time/tick-sched.c
-+++ linux-2.6/kernel/time/tick-sched.c
+--- linux-3.0.orig/kernel/time/tick-sched.c
++++ linux-3.0/kernel/time/tick-sched.c
 @@ -56,7 +56,7 @@ static void tick_do_update_jiffies64(kti
  		return;
  
@@ -15058,10 +14917,10 @@
  	ts->sched_timer.function = tick_sched_timer;
  
  	/* Get the next period (per cpu) */
-Index: linux-2.6/kernel/time/timekeeping.c
+Index: linux-3.0/kernel/time/timekeeping.c
 ===================================================================
---- linux-2.6.orig/kernel/time/timekeeping.c
-+++ linux-2.6/kernel/time/timekeeping.c
+--- linux-3.0.orig/kernel/time/timekeeping.c
++++ linux-3.0/kernel/time/timekeeping.c
 @@ -139,8 +139,7 @@ static inline s64 timekeeping_get_ns_raw
   * This read-write spinlock protects us from races in SMP while
   * playing with xtime.
@@ -15185,10 +15044,10 @@
 -	write_sequnlock(&xtime_lock);
 +	raw_write_sequnlock(&xtime_lock);
  }
-Index: linux-2.6/arch/alpha/include/asm/rwsem.h
+Index: linux-3.0/arch/alpha/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/alpha/include/asm/rwsem.h
-+++ linux-2.6/arch/alpha/include/asm/rwsem.h
+--- linux-3.0.orig/arch/alpha/include/asm/rwsem.h
++++ linux-3.0/arch/alpha/include/asm/rwsem.h
 @@ -21,7 +21,7 @@
  #define RWSEM_ACTIVE_READ_BIAS		RWSEM_ACTIVE_BIAS
  #define RWSEM_ACTIVE_WRITE_BIAS		(RWSEM_WAITING_BIAS + RWSEM_ACTIVE_BIAS)
@@ -15270,10 +15129,10 @@
  {
  #ifndef	CONFIG_SMP
  	sem->count += val;
-Index: linux-2.6/arch/ia64/include/asm/rwsem.h
+Index: linux-3.0/arch/ia64/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/ia64/include/asm/rwsem.h
-+++ linux-2.6/arch/ia64/include/asm/rwsem.h
+--- linux-3.0.orig/arch/ia64/include/asm/rwsem.h
++++ linux-3.0/arch/ia64/include/asm/rwsem.h
 @@ -38,7 +38,7 @@
   * lock for reading
   */
@@ -15337,10 +15196,10 @@
  {
  	long old, new;
  
-Index: linux-2.6/arch/powerpc/include/asm/rwsem.h
+Index: linux-3.0/arch/powerpc/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/powerpc/include/asm/rwsem.h
-+++ linux-2.6/arch/powerpc/include/asm/rwsem.h
+--- linux-3.0.orig/arch/powerpc/include/asm/rwsem.h
++++ linux-3.0/arch/powerpc/include/asm/rwsem.h
 @@ -31,13 +31,13 @@
  /*
   * lock for reading
@@ -15426,10 +15285,10 @@
  {
  	return atomic_long_add_return(delta, (atomic_long_t *)&sem->count);
  }
-Index: linux-2.6/arch/s390/include/asm/rwsem.h
+Index: linux-3.0/arch/s390/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/s390/include/asm/rwsem.h
-+++ linux-2.6/arch/s390/include/asm/rwsem.h
+--- linux-3.0.orig/arch/s390/include/asm/rwsem.h
++++ linux-3.0/arch/s390/include/asm/rwsem.h
 @@ -60,7 +60,7 @@
  /*
   * lock for reading
@@ -15522,10 +15381,10 @@
  {
  	signed long old, new;
  
-Index: linux-2.6/arch/sh/include/asm/rwsem.h
+Index: linux-3.0/arch/sh/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/sh/include/asm/rwsem.h
-+++ linux-2.6/arch/sh/include/asm/rwsem.h
+--- linux-3.0.orig/arch/sh/include/asm/rwsem.h
++++ linux-3.0/arch/sh/include/asm/rwsem.h
 @@ -22,7 +22,7 @@
  /*
   * lock for reading
@@ -15617,10 +15476,10 @@
  {
  	smp_mb();
  	return atomic_add_return(delta, (atomic_t *)(&sem->count));
-Index: linux-2.6/arch/sparc/include/asm/rwsem.h
+Index: linux-3.0/arch/sparc/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/sparc/include/asm/rwsem.h
-+++ linux-2.6/arch/sparc/include/asm/rwsem.h
+--- linux-3.0.orig/arch/sparc/include/asm/rwsem.h
++++ linux-3.0/arch/sparc/include/asm/rwsem.h
 @@ -23,13 +23,13 @@
  /*
   * lock for reading
@@ -15706,10 +15565,10 @@
  {
  	return atomic64_add_return(delta, (atomic64_t *)(&sem->count));
  }
-Index: linux-2.6/arch/x86/include/asm/rwsem.h
+Index: linux-3.0/arch/x86/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/rwsem.h
-+++ linux-2.6/arch/x86/include/asm/rwsem.h
+--- linux-3.0.orig/arch/x86/include/asm/rwsem.h
++++ linux-3.0/arch/x86/include/asm/rwsem.h
 @@ -60,7 +60,7 @@
  /*
   * lock for reading
@@ -15800,10 +15659,10 @@
  {
  	long tmp = delta;
  
-Index: linux-2.6/arch/xtensa/include/asm/rwsem.h
+Index: linux-3.0/arch/xtensa/include/asm/rwsem.h
 ===================================================================
---- linux-2.6.orig/arch/xtensa/include/asm/rwsem.h
-+++ linux-2.6/arch/xtensa/include/asm/rwsem.h
+--- linux-3.0.orig/arch/xtensa/include/asm/rwsem.h
++++ linux-3.0/arch/xtensa/include/asm/rwsem.h
 @@ -27,7 +27,7 @@
  /*
   * lock for reading
@@ -15885,10 +15744,10 @@
  {
  	smp_mb();
  	return atomic_add_return(delta, (atomic_t *)(&sem->count));
-Index: linux-2.6/kernel/rwsem.c
+Index: linux-3.0/kernel/rwsem.c
 ===================================================================
---- linux-2.6.orig/kernel/rwsem.c
-+++ linux-2.6/kernel/rwsem.c
+--- linux-3.0.orig/kernel/rwsem.c
++++ linux-3.0/kernel/rwsem.c
 @@ -16,20 +16,19 @@
  /*
   * lock for reading
@@ -16044,10 +15903,10 @@
  
  #endif
  
-Index: linux-2.6/fs/attr.c
+Index: linux-3.0/fs/attr.c
 ===================================================================
---- linux-2.6.orig/fs/attr.c
-+++ linux-2.6/fs/attr.c
+--- linux-3.0.orig/fs/attr.c
++++ linux-3.0/fs/attr.c
 @@ -233,7 +233,7 @@ int notify_change(struct dentry * dentry
  		return error;
  
@@ -16066,10 +15925,10 @@
  
  	if (!error)
  		fsnotify_change(dentry, ia_valid);
-Index: linux-2.6/fs/direct-io.c
+Index: linux-3.0/fs/direct-io.c
 ===================================================================
---- linux-2.6.orig/fs/direct-io.c
-+++ linux-2.6/fs/direct-io.c
+--- linux-3.0.orig/fs/direct-io.c
++++ linux-3.0/fs/direct-io.c
 @@ -255,7 +255,7 @@ static ssize_t dio_complete(struct dio *
  
  	if (dio->flags & DIO_LOCKING)
@@ -16088,11 +15947,11 @@
  	}
  
  	/*
-Index: linux-2.6/fs/ext4/inode.c
+Index: linux-3.0/fs/ext4/inode.c
 ===================================================================
---- linux-2.6.orig/fs/ext4/inode.c
-+++ linux-2.6/fs/ext4/inode.c
-@@ -5875,7 +5875,7 @@ int ext4_page_mkwrite(struct vm_area_str
+--- linux-3.0.orig/fs/ext4/inode.c
++++ linux-3.0/fs/ext4/inode.c
+@@ -5872,7 +5872,7 @@ int ext4_page_mkwrite(struct vm_area_str
  	 * Get i_alloc_sem to stop truncates messing with the inode. We cannot
  	 * get i_mutex because we are already holding mmap_sem.
  	 */
@@ -16101,7 +15960,7 @@
  	size = i_size_read(inode);
  	if (page->mapping != mapping || size <= page_offset(page)
  	    || !PageUptodate(page)) {
-@@ -5887,7 +5887,7 @@ int ext4_page_mkwrite(struct vm_area_str
+@@ -5884,7 +5884,7 @@ int ext4_page_mkwrite(struct vm_area_str
  	lock_page(page);
  	wait_on_page_writeback(page);
  	if (PageMappedToDisk(page)) {
@@ -16110,7 +15969,7 @@
  		return VM_FAULT_LOCKED;
  	}
  
-@@ -5905,7 +5905,7 @@ int ext4_page_mkwrite(struct vm_area_str
+@@ -5902,7 +5902,7 @@ int ext4_page_mkwrite(struct vm_area_str
  	if (page_has_buffers(page)) {
  		if (!walk_page_buffers(NULL, page_buffers(page), 0, len, NULL,
  					ext4_bh_unmapped)) {
@@ -16119,7 +15978,7 @@
  			return VM_FAULT_LOCKED;
  		}
  	}
-@@ -5934,11 +5934,11 @@ int ext4_page_mkwrite(struct vm_area_str
+@@ -5931,11 +5931,11 @@ int ext4_page_mkwrite(struct vm_area_str
  	 */
  	lock_page(page);
  	wait_on_page_writeback(page);
@@ -16133,10 +15992,10 @@
 +	anon_up_read(&inode->i_alloc_sem);
  	return ret;
  }
-Index: linux-2.6/fs/fat/inode.c
+Index: linux-3.0/fs/fat/inode.c
 ===================================================================
---- linux-2.6.orig/fs/fat/inode.c
-+++ linux-2.6/fs/fat/inode.c
+--- linux-3.0.orig/fs/fat/inode.c
++++ linux-3.0/fs/fat/inode.c
 @@ -224,9 +224,9 @@ static sector_t _fat_bmap(struct address
  	sector_t blocknr;
  
@@ -16149,10 +16008,10 @@
  
  	return blocknr;
  }
-Index: linux-2.6/fs/inode.c
+Index: linux-3.0/fs/inode.c
 ===================================================================
---- linux-2.6.orig/fs/inode.c
-+++ linux-2.6/fs/inode.c
+--- linux-3.0.orig/fs/inode.c
++++ linux-3.0/fs/inode.c
 @@ -176,7 +176,7 @@ int inode_init_always(struct super_block
  	mutex_init(&inode->i_mutex);
  	lockdep_set_class(&inode->i_mutex, &sb->s_type->i_mutex_key);
@@ -16162,10 +16021,10 @@
  	lockdep_set_class(&inode->i_alloc_sem, &sb->s_type->i_alloc_sem_key);
  
  	mapping->a_ops = &empty_aops;
-Index: linux-2.6/fs/ntfs/file.c
+Index: linux-3.0/fs/ntfs/file.c
 ===================================================================
---- linux-2.6.orig/fs/ntfs/file.c
-+++ linux-2.6/fs/ntfs/file.c
+--- linux-3.0.orig/fs/ntfs/file.c
++++ linux-3.0/fs/ntfs/file.c
 @@ -1832,9 +1832,9 @@ static ssize_t ntfs_file_buffered_write(
  	 * fails again.
  	 */
@@ -16178,10 +16037,10 @@
  		if (err || NInoTruncateFailed(ni)) {
  			if (!err)
  				err = -EIO;
-Index: linux-2.6/fs/ocfs2/aops.c
+Index: linux-3.0/fs/ocfs2/aops.c
 ===================================================================
---- linux-2.6.orig/fs/ocfs2/aops.c
-+++ linux-2.6/fs/ocfs2/aops.c
+--- linux-3.0.orig/fs/ocfs2/aops.c
++++ linux-3.0/fs/ocfs2/aops.c
 @@ -569,7 +569,7 @@ static void ocfs2_dio_end_io(struct kioc
  	BUG_ON(!ocfs2_iocb_is_rw_locked(iocb));
  
@@ -16191,10 +16050,10 @@
  		ocfs2_iocb_clear_sem_locked(iocb);
  	}
  
-Index: linux-2.6/fs/ocfs2/file.c
+Index: linux-3.0/fs/ocfs2/file.c
 ===================================================================
---- linux-2.6.orig/fs/ocfs2/file.c
-+++ linux-2.6/fs/ocfs2/file.c
+--- linux-3.0.orig/fs/ocfs2/file.c
++++ linux-3.0/fs/ocfs2/file.c
 @@ -2238,7 +2238,7 @@ static ssize_t ocfs2_file_aio_write(stru
  relock:
  	/* to match setattr's i_mutex -> i_alloc_sem -> rw_lock ordering */
@@ -16240,10 +16099,10 @@
  		ocfs2_iocb_clear_sem_locked(iocb);
  	}
  	if (rw_level != -1)
-Index: linux-2.6/fs/reiserfs/xattr.c
+Index: linux-3.0/fs/reiserfs/xattr.c
 ===================================================================
---- linux-2.6.orig/fs/reiserfs/xattr.c
-+++ linux-2.6/fs/reiserfs/xattr.c
+--- linux-3.0.orig/fs/reiserfs/xattr.c
++++ linux-3.0/fs/reiserfs/xattr.c
 @@ -555,11 +555,11 @@ reiserfs_xattr_set_handle(struct reiserf
  
  		reiserfs_write_unlock(inode->i_sb);
@@ -16258,10 +16117,10 @@
  		mutex_unlock(&dentry->d_inode->i_mutex);
  	} else
  		update_ctime(inode);
-Index: linux-2.6/include/linux/fs.h
+Index: linux-3.0/include/linux/fs.h
 ===================================================================
---- linux-2.6.orig/include/linux/fs.h
-+++ linux-2.6/include/linux/fs.h
+--- linux-3.0.orig/include/linux/fs.h
++++ linux-3.0/include/linux/fs.h
 @@ -777,7 +777,7 @@ struct inode {
  	struct timespec		i_ctime;
  	blkcnt_t		i_blocks;
@@ -16271,10 +16130,10 @@
  	const struct file_operations	*i_fop;	/* former ->i_op->default_file_ops */
  	struct file_lock	*i_flock;
  	struct address_space	*i_mapping;
-Index: linux-2.6/mm/truncate.c
+Index: linux-3.0/mm/truncate.c
 ===================================================================
---- linux-2.6.orig/mm/truncate.c
-+++ linux-2.6/mm/truncate.c
+--- linux-3.0.orig/mm/truncate.c
++++ linux-3.0/mm/truncate.c
 @@ -622,12 +622,12 @@ int vmtruncate_range(struct inode *inode
  		return -ENOSYS;
  
@@ -16290,10 +16149,10 @@
  	mutex_unlock(&inode->i_mutex);
  
  	return 0;
-Index: linux-2.6/fs/xfs/linux-2.6/mrlock.h
+Index: linux-3.0/fs/xfs/linux-2.6/mrlock.h
 ===================================================================
---- linux-2.6.orig/fs/xfs/linux-2.6/mrlock.h
-+++ linux-2.6/fs/xfs/linux-2.6/mrlock.h
+--- linux-3.0.orig/fs/xfs/linux-2.6/mrlock.h
++++ linux-3.0/fs/xfs/linux-2.6/mrlock.h
 @@ -21,18 +21,18 @@
  #include <linux/rwsem.h>
  
@@ -16371,10 +16230,10 @@
  }
  
  #endif /* __XFS_SUPPORT_MRLOCK_H__ */
-Index: linux-2.6/fs/xfs/linux-2.6/xfs_super.c
+Index: linux-3.0/fs/xfs/linux-2.6/xfs_super.c
 ===================================================================
---- linux-2.6.orig/fs/xfs/linux-2.6/xfs_super.c
-+++ linux-2.6/fs/xfs/linux-2.6/xfs_super.c
+--- linux-3.0.orig/fs/xfs/linux-2.6/xfs_super.c
++++ linux-3.0/fs/xfs/linux-2.6/xfs_super.c
 @@ -1002,7 +1002,7 @@ xfs_fs_evict_inode(
  	 * (and basically indicate what we are doing), we explicitly
  	 * re-init the iolock here.
@@ -16384,10 +16243,10 @@
  	mrlock_init(&ip->i_iolock, MRLOCK_BARRIER, "xfsio", ip->i_ino);
  	lockdep_set_class_and_name(&ip->i_iolock.mr_lock,
  			&xfs_iolock_reclaimable, "xfs_iolock_reclaimable");
-Index: linux-2.6/fs/xfs/xfs_iget.c
+Index: linux-3.0/fs/xfs/xfs_iget.c
 ===================================================================
---- linux-2.6.orig/fs/xfs/xfs_iget.c
-+++ linux-2.6/fs/xfs/xfs_iget.c
+--- linux-3.0.orig/fs/xfs/xfs_iget.c
++++ linux-3.0/fs/xfs/xfs_iget.c
 @@ -272,7 +272,7 @@ xfs_iget_cache_hit(
  		__xfs_inode_clear_reclaim_tag(mp, pag, ip);
  		inode->i_state = I_NEW;
@@ -16413,10 +16272,10 @@
  	}
  
  	ASSERT(0);
-Index: linux-2.6/Documentation/trace/histograms.txt
+Index: linux-3.0/Documentation/trace/histograms.txt
 ===================================================================
 --- /dev/null
-+++ linux-2.6/Documentation/trace/histograms.txt
++++ linux-3.0/Documentation/trace/histograms.txt
 @@ -0,0 +1,186 @@
 +		Using the Linux Kernel Latency Histograms
 +
@@ -16604,10 +16463,10 @@
 +is provided.
 +
 +These data are also reset when the wakeup histogram is reset.
-Index: linux-2.6/include/trace/events/hist.h
+Index: linux-3.0/include/trace/events/hist.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/trace/events/hist.h
++++ linux-3.0/include/trace/events/hist.h
 @@ -0,0 +1,69 @@
 +#undef TRACE_SYSTEM
 +#define TRACE_SYSTEM hist
@@ -16678,10 +16537,10 @@
 +
 +/* This part must be outside protection */
 +#include <trace/define_trace.h>
-Index: linux-2.6/include/trace/events/latency_hist.h
+Index: linux-3.0/include/trace/events/latency_hist.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/trace/events/latency_hist.h
++++ linux-3.0/include/trace/events/latency_hist.h
 @@ -0,0 +1,30 @@
 +#ifndef _LATENCY_HIST_H
 +#define _LATENCY_HIST_H
@@ -16713,10 +16572,10 @@
 +
 +#endif /* _LATENCY_HIST_H */
 +
-Index: linux-2.6/kernel/hrtimer.c
+Index: linux-3.0/kernel/hrtimer.c
 ===================================================================
---- linux-2.6.orig/kernel/hrtimer.c
-+++ linux-2.6/kernel/hrtimer.c
+--- linux-3.0.orig/kernel/hrtimer.c
++++ linux-3.0/kernel/hrtimer.c
 @@ -49,6 +49,7 @@
  #include <asm/uaccess.h>
  
@@ -17125,10 +16984,10 @@
  }
  
  /**
-Index: linux-2.6/kernel/trace/Kconfig
+Index: linux-3.0/kernel/trace/Kconfig
 ===================================================================
---- linux-2.6.orig/kernel/trace/Kconfig
-+++ linux-2.6/kernel/trace/Kconfig
+--- linux-3.0.orig/kernel/trace/Kconfig
++++ linux-3.0/kernel/trace/Kconfig
 @@ -192,6 +192,24 @@ config IRQSOFF_TRACER
  	  enabled. This option and the preempt-off timing option can be
  	  used together or separately.)
@@ -17254,10 +17113,10 @@
  config ENABLE_DEFAULT_TRACERS
  	bool "Trace process context switches and events"
  	depends on !GENERIC_TRACER
-Index: linux-2.6/kernel/trace/Makefile
+Index: linux-3.0/kernel/trace/Makefile
 ===================================================================
---- linux-2.6.orig/kernel/trace/Makefile
-+++ linux-2.6/kernel/trace/Makefile
+--- linux-3.0.orig/kernel/trace/Makefile
++++ linux-3.0/kernel/trace/Makefile
 @@ -34,6 +34,10 @@ obj-$(CONFIG_FUNCTION_TRACER) += trace_f
  obj-$(CONFIG_IRQSOFF_TRACER) += trace_irqsoff.o
  obj-$(CONFIG_PREEMPT_TRACER) += trace_irqsoff.o
@@ -17269,10 +17128,10 @@
  obj-$(CONFIG_NOP_TRACER) += trace_nop.o
  obj-$(CONFIG_STACK_TRACER) += trace_stack.o
  obj-$(CONFIG_MMIOTRACE) += trace_mmiotrace.o
-Index: linux-2.6/kernel/trace/latency_hist.c
+Index: linux-3.0/kernel/trace/latency_hist.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6/kernel/trace/latency_hist.c
++++ linux-3.0/kernel/trace/latency_hist.c
 @@ -0,0 +1,1170 @@
 +/*
 + * kernel/trace/latency_hist.c
@@ -18444,10 +18303,10 @@
 +}
 +
 +__initcall(latency_hist_init);
-Index: linux-2.6/Documentation/hwlat_detector.txt
+Index: linux-3.0/Documentation/hwlat_detector.txt
 ===================================================================
 --- /dev/null
-+++ linux-2.6/Documentation/hwlat_detector.txt
++++ linux-3.0/Documentation/hwlat_detector.txt
 @@ -0,0 +1,64 @@
 +Introduction:
 +-------------
@@ -18513,10 +18372,10 @@
 +observe any latencies that exceed the threshold (initially 100 usecs),
 +then we write to a global sample ring buffer of 8K samples, which is
 +consumed by reading from the "sample" (pipe) debugfs file interface.
-Index: linux-2.6/MAINTAINERS
+Index: linux-3.0/MAINTAINERS
 ===================================================================
---- linux-2.6.orig/MAINTAINERS
-+++ linux-2.6/MAINTAINERS
+--- linux-3.0.orig/MAINTAINERS
++++ linux-3.0/MAINTAINERS
 @@ -2911,6 +2911,15 @@ L:	linuxppc-dev at lists.ozlabs.org
  S:	Odd Fixes
  F:	drivers/tty/hvc/
@@ -18533,19 +18392,19 @@
  HARDWARE MONITORING
  M:	Jean Delvare <khali at linux-fr.org>
  M:	Guenter Roeck <guenter.roeck at ericsson.com>
-Index: linux-2.6/drivers/misc/Makefile
+Index: linux-3.0/drivers/misc/Makefile
 ===================================================================
---- linux-2.6.orig/drivers/misc/Makefile
-+++ linux-2.6/drivers/misc/Makefile
+--- linux-3.0.orig/drivers/misc/Makefile
++++ linux-3.0/drivers/misc/Makefile
 @@ -46,3 +46,4 @@ obj-y				+= ti-st/
  obj-$(CONFIG_AB8500_PWM)	+= ab8500-pwm.o
  obj-y				+= lis3lv02d/
  obj-y				+= carma/
 +obj-$(CONFIG_HWLAT_DETECTOR)	+= hwlat_detector.o
-Index: linux-2.6/drivers/misc/hwlat_detector.c
+Index: linux-3.0/drivers/misc/hwlat_detector.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6/drivers/misc/hwlat_detector.c
++++ linux-3.0/drivers/misc/hwlat_detector.c
 @@ -0,0 +1,1212 @@
 +/*
 + * hwlat_detector.c - A simple Hardware Latency detector.
@@ -19759,10 +19618,10 @@
 +
 +module_init(detector_init);
 +module_exit(detector_exit);
-Index: linux-2.6/arch/arm/kernel/early_printk.c
+Index: linux-3.0/arch/arm/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/arm/kernel/early_printk.c
-+++ linux-2.6/arch/arm/kernel/early_printk.c
+--- linux-3.0.orig/arch/arm/kernel/early_printk.c
++++ linux-3.0/arch/arm/kernel/early_printk.c
 @@ -29,28 +29,17 @@ static void early_console_write(struct c
  	early_write(s, n);
  }
@@ -19795,10 +19654,10 @@
  	return 0;
  }
  
-Index: linux-2.6/arch/blackfin/kernel/early_printk.c
+Index: linux-3.0/arch/blackfin/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/blackfin/kernel/early_printk.c
-+++ linux-2.6/arch/blackfin/kernel/early_printk.c
+--- linux-3.0.orig/arch/blackfin/kernel/early_printk.c
++++ linux-3.0/arch/blackfin/kernel/early_printk.c
 @@ -25,8 +25,6 @@ extern struct console *bfin_earlyserial_
  extern struct console *bfin_jc_early_init(void);
  #endif
@@ -19808,10 +19667,10 @@
  /* Default console */
  #define DEFAULT_PORT 0
  #define DEFAULT_CFLAG CS8|B57600
-Index: linux-2.6/arch/microblaze/kernel/early_printk.c
+Index: linux-3.0/arch/microblaze/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/microblaze/kernel/early_printk.c
-+++ linux-2.6/arch/microblaze/kernel/early_printk.c
+--- linux-3.0.orig/arch/microblaze/kernel/early_printk.c
++++ linux-3.0/arch/microblaze/kernel/early_printk.c
 @@ -21,7 +21,6 @@
  #include <asm/setup.h>
  #include <asm/prom.h>
@@ -19873,10 +19732,10 @@
 -	early_console_initialized = 0;
 +	early_console = NULL;
  }
-Index: linux-2.6/arch/mips/kernel/early_printk.c
+Index: linux-3.0/arch/mips/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/mips/kernel/early_printk.c
-+++ linux-2.6/arch/mips/kernel/early_printk.c
+--- linux-3.0.orig/arch/mips/kernel/early_printk.c
++++ linux-3.0/arch/mips/kernel/early_printk.c
 @@ -25,20 +25,18 @@ early_console_write(struct console *con,
  	}
  }
@@ -19902,10 +19761,10 @@
 -	register_console(&early_console);
 +	register_console(&early_console_prom);
  }
-Index: linux-2.6/arch/powerpc/kernel/udbg.c
+Index: linux-3.0/arch/powerpc/kernel/udbg.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/udbg.c
-+++ linux-2.6/arch/powerpc/kernel/udbg.c
+--- linux-3.0.orig/arch/powerpc/kernel/udbg.c
++++ linux-3.0/arch/powerpc/kernel/udbg.c
 @@ -169,15 +169,13 @@ static struct console udbg_console = {
  	.index	= 0,
  };
@@ -19932,10 +19791,10 @@
  	register_console(&udbg_console);
  }
  
-Index: linux-2.6/arch/sh/kernel/sh_bios.c
+Index: linux-3.0/arch/sh/kernel/sh_bios.c
 ===================================================================
---- linux-2.6.orig/arch/sh/kernel/sh_bios.c
-+++ linux-2.6/arch/sh/kernel/sh_bios.c
+--- linux-3.0.orig/arch/sh/kernel/sh_bios.c
++++ linux-3.0/arch/sh/kernel/sh_bios.c
 @@ -144,8 +144,6 @@ static struct console bios_console = {
  	.index		= -1,
  };
@@ -19945,10 +19804,10 @@
  static int __init setup_early_printk(char *buf)
  {
  	int keep_early = 0;
-Index: linux-2.6/arch/sparc/kernel/setup_32.c
+Index: linux-3.0/arch/sparc/kernel/setup_32.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/setup_32.c
-+++ linux-2.6/arch/sparc/kernel/setup_32.c
+--- linux-3.0.orig/arch/sparc/kernel/setup_32.c
++++ linux-3.0/arch/sparc/kernel/setup_32.c
 @@ -220,6 +220,7 @@ void __init setup_arch(char **cmdline_p)
  
  	boot_flags_init(*cmdline_p);
@@ -19957,10 +19816,10 @@
  	register_console(&prom_early_console);
  
  	/* Set sparc_cpu_model */
-Index: linux-2.6/arch/sparc/kernel/setup_64.c
+Index: linux-3.0/arch/sparc/kernel/setup_64.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/setup_64.c
-+++ linux-2.6/arch/sparc/kernel/setup_64.c
+--- linux-3.0.orig/arch/sparc/kernel/setup_64.c
++++ linux-3.0/arch/sparc/kernel/setup_64.c
 @@ -469,6 +469,12 @@ static void __init init_sparc64_elf_hwca
  		popc_patch();
  }
@@ -19983,10 +19842,10 @@
  
  	if (tlb_type == hypervisor)
  		printk("ARCH: SUN4V\n");
-Index: linux-2.6/arch/tile/kernel/early_printk.c
+Index: linux-3.0/arch/tile/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/tile/kernel/early_printk.c
-+++ linux-2.6/arch/tile/kernel/early_printk.c
+--- linux-3.0.orig/arch/tile/kernel/early_printk.c
++++ linux-3.0/arch/tile/kernel/early_printk.c
 @@ -32,25 +32,8 @@ static struct console early_hv_console =
  };
  
@@ -20053,10 +19912,10 @@
  		return;
  	early_printk("\
  Machine shutting down before console output is fully initialized.\n\
-Index: linux-2.6/arch/um/kernel/early_printk.c
+Index: linux-3.0/arch/um/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/um/kernel/early_printk.c
-+++ linux-2.6/arch/um/kernel/early_printk.c
+--- linux-3.0.orig/arch/um/kernel/early_printk.c
++++ linux-3.0/arch/um/kernel/early_printk.c
 @@ -16,7 +16,7 @@ static void early_console_write(struct c
  	um_early_printk(s, n);
  }
@@ -20079,10 +19938,10 @@
  	return 0;
  }
  
-Index: linux-2.6/arch/unicore32/kernel/early_printk.c
+Index: linux-3.0/arch/unicore32/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/unicore32/kernel/early_printk.c
-+++ linux-2.6/arch/unicore32/kernel/early_printk.c
+--- linux-3.0.orig/arch/unicore32/kernel/early_printk.c
++++ linux-3.0/arch/unicore32/kernel/early_printk.c
 @@ -33,21 +33,17 @@ static struct console early_ocd_console 
  	.index =	-1,
  };
@@ -20109,10 +19968,10 @@
  
  	if (keep_early)
  		early_console->flags &= ~CON_BOOT;
-Index: linux-2.6/arch/x86/kernel/early_printk.c
+Index: linux-3.0/arch/x86/kernel/early_printk.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/early_printk.c
-+++ linux-2.6/arch/x86/kernel/early_printk.c
+--- linux-3.0.orig/arch/x86/kernel/early_printk.c
++++ linux-3.0/arch/x86/kernel/early_printk.c
 @@ -169,25 +169,9 @@ static struct console early_serial_conso
  	.index =	-1,
  };
@@ -20151,10 +20010,10 @@
  
  	keep = (strstr(buf, "keep") != NULL);
  
-Index: linux-2.6/include/linux/console.h
+Index: linux-3.0/include/linux/console.h
 ===================================================================
---- linux-2.6.orig/include/linux/console.h
-+++ linux-2.6/include/linux/console.h
+--- linux-3.0.orig/include/linux/console.h
++++ linux-3.0/include/linux/console.h
 @@ -133,6 +133,7 @@ struct console {
  	for (con = console_drivers; con != NULL; con = con->next)
  
@@ -20163,10 +20022,10 @@
  
  extern int add_preferred_console(char *name, int idx, char *options);
  extern int update_console_cmdline(char *name, int idx, char *name_new, int idx_new, char *options);
-Index: linux-2.6/include/linux/printk.h
+Index: linux-3.0/include/linux/printk.h
 ===================================================================
---- linux-2.6.orig/include/linux/printk.h
-+++ linux-2.6/include/linux/printk.h
+--- linux-3.0.orig/include/linux/printk.h
++++ linux-3.0/include/linux/printk.h
 @@ -88,8 +88,15 @@ int no_printk(const char *fmt, ...)
  	return 0;
  }
@@ -20191,10 +20050,10 @@
  extern int printk_delay_msec;
  extern int dmesg_restrict;
  extern int kptr_restrict;
-Index: linux-2.6/kernel/Kconfig.preempt
+Index: linux-3.0/kernel/Kconfig.preempt
 ===================================================================
---- linux-2.6.orig/kernel/Kconfig.preempt
-+++ linux-2.6/kernel/Kconfig.preempt
+--- linux-3.0.orig/kernel/Kconfig.preempt
++++ linux-3.0/kernel/Kconfig.preempt
 @@ -1,3 +1,9 @@
 +config PREEMPT
 +	bool
@@ -20237,10 +20096,10 @@
 +
  endchoice
  
-Index: linux-2.6/include/asm-generic/bug.h
+Index: linux-3.0/include/asm-generic/bug.h
 ===================================================================
---- linux-2.6.orig/include/asm-generic/bug.h
-+++ linux-2.6/include/asm-generic/bug.h
+--- linux-3.0.orig/include/asm-generic/bug.h
++++ linux-3.0/include/asm-generic/bug.h
 @@ -3,6 +3,10 @@
  
  #include <linux/compiler.h>
@@ -20271,10 +20130,10 @@
 +#endif
 +
  #endif
-Index: linux-2.6/include/linux/irqflags.h
+Index: linux-3.0/include/linux/irqflags.h
 ===================================================================
---- linux-2.6.orig/include/linux/irqflags.h
-+++ linux-2.6/include/linux/irqflags.h
+--- linux-3.0.orig/include/linux/irqflags.h
++++ linux-3.0/include/linux/irqflags.h
 @@ -25,8 +25,6 @@
  # define trace_softirqs_enabled(p)	((p)->softirqs_enabled)
  # define trace_hardirq_enter()	do { current->hardirq_context++; } while (0)
@@ -20325,10 +20184,10 @@
 +#endif
 +
  #endif
-Index: linux-2.6/drivers/ata/libata-sff.c
+Index: linux-3.0/drivers/ata/libata-sff.c
 ===================================================================
---- linux-2.6.orig/drivers/ata/libata-sff.c
-+++ linux-2.6/drivers/ata/libata-sff.c
+--- linux-3.0.orig/drivers/ata/libata-sff.c
++++ linux-3.0/drivers/ata/libata-sff.c
 @@ -677,9 +677,9 @@ unsigned int ata_sff_data_xfer_noirq(str
  	unsigned long flags;
  	unsigned int consumed;
@@ -20377,10 +20236,10 @@
  	} else {
  		buf = page_address(page);
  		consumed = ap->ops->sff_data_xfer(dev,  buf + offset,
-Index: linux-2.6/drivers/ide/alim15x3.c
+Index: linux-3.0/drivers/ide/alim15x3.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/alim15x3.c
-+++ linux-2.6/drivers/ide/alim15x3.c
+--- linux-3.0.orig/drivers/ide/alim15x3.c
++++ linux-3.0/drivers/ide/alim15x3.c
 @@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct p
  
  	isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
@@ -20399,10 +20258,10 @@
  	return 0;
  }
  
-Index: linux-2.6/drivers/ide/hpt366.c
+Index: linux-3.0/drivers/ide/hpt366.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/hpt366.c
-+++ linux-2.6/drivers/ide/hpt366.c
+--- linux-3.0.orig/drivers/ide/hpt366.c
++++ linux-3.0/drivers/ide/hpt366.c
 @@ -1241,7 +1241,7 @@ static int __devinit init_dma_hpt366(ide
  
  	dma_old = inb(base + 2);
@@ -20421,10 +20280,10 @@
  
  	printk(KERN_INFO "    %s: BM-DMA at 0x%04lx-0x%04lx\n",
  			 hwif->name, base, base + 7);
-Index: linux-2.6/drivers/ide/ide-io-std.c
+Index: linux-3.0/drivers/ide/ide-io-std.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide-io-std.c
-+++ linux-2.6/drivers/ide/ide-io-std.c
+--- linux-3.0.orig/drivers/ide/ide-io-std.c
++++ linux-3.0/drivers/ide/ide-io-std.c
 @@ -174,7 +174,7 @@ void ide_input_data(ide_drive_t *drive, 
  		unsigned long uninitialized_var(flags);
  
@@ -20461,10 +20320,10 @@
  
  		if (((len + 1) & 3) < 2)
  			return;
-Index: linux-2.6/drivers/ide/ide-io.c
+Index: linux-3.0/drivers/ide/ide-io.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide-io.c
-+++ linux-2.6/drivers/ide/ide-io.c
+--- linux-3.0.orig/drivers/ide/ide-io.c
++++ linux-3.0/drivers/ide/ide-io.c
 @@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long dat
  		/* disable_irq_nosync ?? */
  		disable_irq(hwif->irq);
@@ -20474,10 +20333,10 @@
  		if (hwif->polling) {
  			startstop = handler(drive);
  		} else if (drive_is_ready(drive)) {
-Index: linux-2.6/drivers/ide/ide-iops.c
+Index: linux-3.0/drivers/ide/ide-iops.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide-iops.c
-+++ linux-2.6/drivers/ide/ide-iops.c
+--- linux-3.0.orig/drivers/ide/ide-iops.c
++++ linux-3.0/drivers/ide/ide-iops.c
 @@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive, 
  				if ((stat & ATA_BUSY) == 0)
  					break;
@@ -20493,10 +20352,10 @@
  	}
  	/*
  	 * Allow status to settle, then read it again.
-Index: linux-2.6/drivers/ide/ide-probe.c
+Index: linux-3.0/drivers/ide/ide-probe.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide-probe.c
-+++ linux-2.6/drivers/ide/ide-probe.c
+--- linux-3.0.orig/drivers/ide/ide-probe.c
++++ linux-3.0/drivers/ide/ide-probe.c
 @@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *dri
  	int bswap = 1;
  
@@ -20510,10 +20369,10 @@
  
  	drive->dev_flags |= IDE_DFLAG_ID_READ;
  #ifdef DEBUG
-Index: linux-2.6/drivers/ide/ide-taskfile.c
+Index: linux-3.0/drivers/ide/ide-taskfile.c
 ===================================================================
---- linux-2.6.orig/drivers/ide/ide-taskfile.c
-+++ linux-2.6/drivers/ide/ide-taskfile.c
+--- linux-3.0.orig/drivers/ide/ide-taskfile.c
++++ linux-3.0/drivers/ide/ide-taskfile.c
 @@ -250,7 +250,7 @@ void ide_pio_bytes(ide_drive_t *drive, s
  
  		page_is_high = PageHighMem(page);
@@ -20541,10 +20400,10 @@
  
  	ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);
  
-Index: linux-2.6/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+Index: linux-3.0/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
 ===================================================================
---- linux-2.6.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-+++ linux-2.6/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+--- linux-3.0.orig/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
++++ linux-3.0/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
 @@ -794,7 +794,7 @@ void ipoib_mcast_restart_task(struct wor
  
  	ipoib_mcast_stop_thread(dev, 0);
@@ -20563,10 +20422,10 @@
  
  	/* We have to cancel outside of the spinlock */
  	list_for_each_entry_safe(mcast, tmcast, &remove_list, list) {
-Index: linux-2.6/drivers/input/gameport/gameport.c
+Index: linux-3.0/drivers/input/gameport/gameport.c
 ===================================================================
---- linux-2.6.orig/drivers/input/gameport/gameport.c
-+++ linux-2.6/drivers/input/gameport/gameport.c
+--- linux-3.0.orig/drivers/input/gameport/gameport.c
++++ linux-3.0/drivers/input/gameport/gameport.c
 @@ -87,12 +87,12 @@ static int gameport_measure_speed(struct
  	tx = 1 << 30;
  
@@ -20596,10 +20455,10 @@
  		udelay(i * 10);
  		if (t2 - t1 < tx) tx = t2 - t1;
  	}
-Index: linux-2.6/arch/x86/include/asm/acpi.h
+Index: linux-3.0/arch/x86/include/asm/acpi.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/acpi.h
-+++ linux-2.6/arch/x86/include/asm/acpi.h
+--- linux-3.0.orig/arch/x86/include/asm/acpi.h
++++ linux-3.0/arch/x86/include/asm/acpi.h
 @@ -51,8 +51,8 @@
  
  #define ACPI_ASM_MACROS
@@ -20611,10 +20470,10 @@
  #define ACPI_FLUSH_CPU_CACHE()	wbinvd()
  
  int __acpi_acquire_global_lock(unsigned int *lock);
-Index: linux-2.6/kernel/user.c
+Index: linux-3.0/kernel/user.c
 ===================================================================
---- linux-2.6.orig/kernel/user.c
-+++ linux-2.6/kernel/user.c
+--- linux-3.0.orig/kernel/user.c
++++ linux-3.0/kernel/user.c
 @@ -129,11 +129,11 @@ void free_uid(struct user_struct *up)
  	if (!up)
  		return;
@@ -20629,10 +20488,10 @@
  }
  
  struct user_struct *alloc_uid(struct user_namespace *ns, uid_t uid)
-Index: linux-2.6/kernel/res_counter.c
+Index: linux-3.0/kernel/res_counter.c
 ===================================================================
---- linux-2.6.orig/kernel/res_counter.c
-+++ linux-2.6/kernel/res_counter.c
+--- linux-3.0.orig/kernel/res_counter.c
++++ linux-3.0/kernel/res_counter.c
 @@ -43,7 +43,7 @@ int res_counter_charge(struct res_counte
  	struct res_counter *c, *u;
  
@@ -20667,11 +20526,11 @@
  }
  
  
-Index: linux-2.6/drivers/usb/core/hcd.c
+Index: linux-3.0/drivers/usb/core/hcd.c
 ===================================================================
---- linux-2.6.orig/drivers/usb/core/hcd.c
-+++ linux-2.6/drivers/usb/core/hcd.c
-@@ -2118,7 +2118,7 @@ irqreturn_t usb_hcd_irq (int irq, void *
+--- linux-3.0.orig/drivers/usb/core/hcd.c
++++ linux-3.0/drivers/usb/core/hcd.c
+@@ -2120,7 +2120,7 @@ irqreturn_t usb_hcd_irq (int irq, void *
  	 * when the first handler doesn't use it.  So let's just
  	 * assume it's never used.
  	 */
@@ -20680,7 +20539,7 @@
  
  	if (unlikely(HCD_DEAD(hcd) || !HCD_HW_ACCESSIBLE(hcd))) {
  		rc = IRQ_NONE;
-@@ -2131,7 +2131,7 @@ irqreturn_t usb_hcd_irq (int irq, void *
+@@ -2133,7 +2133,7 @@ irqreturn_t usb_hcd_irq (int irq, void *
  		rc = IRQ_HANDLED;
  	}
  
@@ -20689,10 +20548,10 @@
  	return rc;
  }
  EXPORT_SYMBOL_GPL(usb_hcd_irq);
-Index: linux-2.6/drivers/tty/tty_ldisc.c
+Index: linux-3.0/drivers/tty/tty_ldisc.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/tty_ldisc.c
-+++ linux-2.6/drivers/tty/tty_ldisc.c
+--- linux-3.0.orig/drivers/tty/tty_ldisc.c
++++ linux-3.0/drivers/tty/tty_ldisc.c
 @@ -70,7 +70,7 @@ static void put_ldisc(struct tty_ldisc *
  	 * We really want an "atomic_dec_and_lock_irqsave()",
  	 * but we don't have it, so this does it by hand.
@@ -20711,10 +20570,10 @@
  	wake_up(&tty_ldisc_idle);
  }
  
-Index: linux-2.6/lib/scatterlist.c
+Index: linux-3.0/lib/scatterlist.c
 ===================================================================
---- linux-2.6.orig/lib/scatterlist.c
-+++ linux-2.6/lib/scatterlist.c
+--- linux-3.0.orig/lib/scatterlist.c
++++ linux-3.0/lib/scatterlist.c
 @@ -423,7 +423,7 @@ void sg_miter_stop(struct sg_mapping_ite
  			flush_kernel_dcache_page(miter->page);
  
@@ -20742,10 +20601,10 @@
  	return offset;
  }
  
-Index: linux-2.6/net/mac80211/rx.c
+Index: linux-3.0/net/mac80211/rx.c
 ===================================================================
---- linux-2.6.orig/net/mac80211/rx.c
-+++ linux-2.6/net/mac80211/rx.c
+--- linux-3.0.orig/net/mac80211/rx.c
++++ linux-3.0/net/mac80211/rx.c
 @@ -2853,7 +2853,7 @@ void ieee80211_rx(struct ieee80211_hw *h
  	struct ieee80211_supported_band *sband;
  	struct ieee80211_rx_status *status = IEEE80211_SKB_RXCB(skb);
@@ -20755,10 +20614,10 @@
  
  	if (WARN_ON(status->band < 0 ||
  		    status->band >= IEEE80211_NUM_BANDS))
-Index: linux-2.6/include/linux/page_cgroup.h
+Index: linux-3.0/include/linux/page_cgroup.h
 ===================================================================
---- linux-2.6.orig/include/linux/page_cgroup.h
-+++ linux-2.6/include/linux/page_cgroup.h
+--- linux-3.0.orig/include/linux/page_cgroup.h
++++ linux-3.0/include/linux/page_cgroup.h
 @@ -30,6 +30,10 @@ enum {
   */
  struct page_cgroup {
@@ -20825,10 +20684,10 @@
  }
  
  #ifdef CONFIG_SPARSEMEM
-Index: linux-2.6/mm/page_cgroup.c
+Index: linux-3.0/mm/page_cgroup.c
 ===================================================================
---- linux-2.6.orig/mm/page_cgroup.c
-+++ linux-2.6/mm/page_cgroup.c
+--- linux-3.0.orig/mm/page_cgroup.c
++++ linux-3.0/mm/page_cgroup.c
 @@ -17,6 +17,7 @@ static void __meminit init_page_cgroup(s
  	set_page_cgroup_array_id(pc, id);
  	pc->mem_cgroup = NULL;
@@ -20837,10 +20696,10 @@
  }
  static unsigned long total_usage;
  
-Index: linux-2.6/fs/buffer.c
+Index: linux-3.0/fs/buffer.c
 ===================================================================
---- linux-2.6.orig/fs/buffer.c
-+++ linux-2.6/fs/buffer.c
+--- linux-3.0.orig/fs/buffer.c
++++ linux-3.0/fs/buffer.c
 @@ -328,8 +328,7 @@ static void end_buffer_async_read(struct
  	 * decide that the page is now completely done.
  	 */
@@ -20908,10 +20767,10 @@
  		preempt_disable();
  		__this_cpu_inc(bh_accounting.nr);
  		recalc_bh_state();
-Index: linux-2.6/fs/ntfs/aops.c
+Index: linux-3.0/fs/ntfs/aops.c
 ===================================================================
---- linux-2.6.orig/fs/ntfs/aops.c
-+++ linux-2.6/fs/ntfs/aops.c
+--- linux-3.0.orig/fs/ntfs/aops.c
++++ linux-3.0/fs/ntfs/aops.c
 @@ -108,8 +108,7 @@ static void ntfs_end_buffer_async_read(s
  				"0x%llx.", (unsigned long long)bh->b_blocknr);
  	}
@@ -20959,10 +20818,10 @@
  }
  
  /**
-Index: linux-2.6/include/linux/buffer_head.h
+Index: linux-3.0/include/linux/buffer_head.h
 ===================================================================
---- linux-2.6.orig/include/linux/buffer_head.h
-+++ linux-2.6/include/linux/buffer_head.h
+--- linux-3.0.orig/include/linux/buffer_head.h
++++ linux-3.0/include/linux/buffer_head.h
 @@ -72,8 +72,52 @@ struct buffer_head {
  	struct address_space *b_assoc_map;	/* mapping this buffer is
  						   associated with */
@@ -21016,10 +20875,10 @@
  /*
   * macro tricks to expand the set_buffer_foo(), clear_buffer_foo()
   * and buffer_foo() functions.
-Index: linux-2.6/lib/Kconfig.debug
+Index: linux-3.0/lib/Kconfig.debug
 ===================================================================
---- linux-2.6.orig/lib/Kconfig.debug
-+++ linux-2.6/lib/Kconfig.debug
+--- linux-3.0.orig/lib/Kconfig.debug
++++ linux-3.0/lib/Kconfig.debug
 @@ -62,6 +62,28 @@ config MAGIC_SYSRQ
  	  keys are documented in <file:Documentation/sysrq.txt>. Don't say Y
  	  unless you really know what this hack does.
@@ -21058,10 +20917,10 @@
  	help
  	  Enable this to generate a spurious interrupt as soon as a shared
  	  interrupt handler is registered, and just before one is deregistered.
-Index: linux-2.6/kernel/irq/handle.c
+Index: linux-3.0/kernel/irq/handle.c
 ===================================================================
---- linux-2.6.orig/kernel/irq/handle.c
-+++ linux-2.6/kernel/irq/handle.c
+--- linux-3.0.orig/kernel/irq/handle.c
++++ linux-3.0/kernel/irq/handle.c
 @@ -156,8 +156,11 @@ handle_irq_event_percpu(struct irq_desc 
  		action = action->next;
  	} while (action);
@@ -21074,10 +20933,10 @@
  
  	if (!noirqdebug)
  		note_interrupt(irq, desc, retval);
-Index: linux-2.6/kernel/irq/spurious.c
+Index: linux-3.0/kernel/irq/spurious.c
 ===================================================================
---- linux-2.6.orig/kernel/irq/spurious.c
-+++ linux-2.6/kernel/irq/spurious.c
+--- linux-3.0.orig/kernel/irq/spurious.c
++++ linux-3.0/kernel/irq/spurious.c
 @@ -339,6 +339,11 @@ MODULE_PARM_DESC(noirqdebug, "Disable ir
  
  static int __init irqfixup_setup(char *str)
@@ -21102,10 +20961,10 @@
  	irqfixup = 2;
  	printk(KERN_WARNING "Misrouted IRQ fixup and polling support "
  				"enabled\n");
-Index: linux-2.6/kernel/irq/manage.c
+Index: linux-3.0/kernel/irq/manage.c
 ===================================================================
---- linux-2.6.orig/kernel/irq/manage.c
-+++ linux-2.6/kernel/irq/manage.c
+--- linux-3.0.orig/kernel/irq/manage.c
++++ linux-3.0/kernel/irq/manage.c
 @@ -18,6 +18,7 @@
  #include "internals.h"
  
@@ -21122,10 +20981,10 @@
  #endif
  
  /**
-Index: linux-2.6/drivers/net/atl1c/atl1c_main.c
+Index: linux-3.0/drivers/net/atl1c/atl1c_main.c
 ===================================================================
---- linux-2.6.orig/drivers/net/atl1c/atl1c_main.c
-+++ linux-2.6/drivers/net/atl1c/atl1c_main.c
+--- linux-3.0.orig/drivers/net/atl1c/atl1c_main.c
++++ linux-3.0/drivers/net/atl1c/atl1c_main.c
 @@ -2218,11 +2218,8 @@ static netdev_tx_t atl1c_xmit_frame(stru
  	}
  
@@ -21140,10 +20999,10 @@
  	if (skb->mark == 0x01)
  		type = atl1c_trans_high;
  	else
-Index: linux-2.6/drivers/net/atl1e/atl1e_main.c
+Index: linux-3.0/drivers/net/atl1e/atl1e_main.c
 ===================================================================
---- linux-2.6.orig/drivers/net/atl1e/atl1e_main.c
-+++ linux-2.6/drivers/net/atl1e/atl1e_main.c
+--- linux-3.0.orig/drivers/net/atl1e/atl1e_main.c
++++ linux-3.0/drivers/net/atl1e/atl1e_main.c
 @@ -1800,8 +1800,7 @@ static netdev_tx_t atl1e_xmit_frame(stru
  		return NETDEV_TX_OK;
  	}
@@ -21154,10 +21013,10 @@
  
  	if (atl1e_tpd_avail(adapter) < tpd_req) {
  		/* no enough descriptor, just stop queue */
-Index: linux-2.6/drivers/net/chelsio/sge.c
+Index: linux-3.0/drivers/net/chelsio/sge.c
 ===================================================================
---- linux-2.6.orig/drivers/net/chelsio/sge.c
-+++ linux-2.6/drivers/net/chelsio/sge.c
+--- linux-3.0.orig/drivers/net/chelsio/sge.c
++++ linux-3.0/drivers/net/chelsio/sge.c
 @@ -1679,8 +1679,7 @@ static int t1_sge_tx(struct sk_buff *skb
  	struct cmdQ *q = &sge->cmdQ[qid];
  	unsigned int credits, pidx, genbit, count, use_sched_skb = 0;
@@ -21168,10 +21027,10 @@
  
  	reclaim_completed_tx(sge, q);
  
-Index: linux-2.6/drivers/net/rionet.c
+Index: linux-3.0/drivers/net/rionet.c
 ===================================================================
---- linux-2.6.orig/drivers/net/rionet.c
-+++ linux-2.6/drivers/net/rionet.c
+--- linux-3.0.orig/drivers/net/rionet.c
++++ linux-3.0/drivers/net/rionet.c
 @@ -176,11 +176,7 @@ static int rionet_start_xmit(struct sk_b
  	u16 destid;
  	unsigned long flags;
@@ -21185,10 +21044,10 @@
  
  	if ((rnet->tx_cnt + 1) > RIONET_TX_RING_SIZE) {
  		netif_stop_queue(ndev);
-Index: linux-2.6/drivers/net/s2io.c
+Index: linux-3.0/drivers/net/s2io.c
 ===================================================================
---- linux-2.6.orig/drivers/net/s2io.c
-+++ linux-2.6/drivers/net/s2io.c
+--- linux-3.0.orig/drivers/net/s2io.c
++++ linux-3.0/drivers/net/s2io.c
 @@ -4142,12 +4142,7 @@ static netdev_tx_t s2io_xmit(struct sk_b
  			[skb->priority & (MAX_TX_FIFOS - 1)];
  	fifo = &mac_control->fifos[queue];
@@ -21203,10 +21062,10 @@
  
  	if (sp->config.multiq) {
  		if (__netif_subqueue_stopped(dev, fifo->fifo_no)) {
-Index: linux-2.6/drivers/net/sungem.c
+Index: linux-3.0/drivers/net/sungem.c
 ===================================================================
---- linux-2.6.orig/drivers/net/sungem.c
-+++ linux-2.6/drivers/net/sungem.c
+--- linux-3.0.orig/drivers/net/sungem.c
++++ linux-3.0/drivers/net/sungem.c
 @@ -1013,10 +1013,8 @@ static netdev_tx_t gem_start_xmit(struct
  			(csum_stuff_off << 21));
  	}
@@ -21220,10 +21079,10 @@
  	/* We raced with gem_do_stop() */
  	if (!gp->running) {
  		spin_unlock_irqrestore(&gp->tx_lock, flags);
-Index: linux-2.6/drivers/net/tehuti.c
+Index: linux-3.0/drivers/net/tehuti.c
 ===================================================================
---- linux-2.6.orig/drivers/net/tehuti.c
-+++ linux-2.6/drivers/net/tehuti.c
+--- linux-3.0.orig/drivers/net/tehuti.c
++++ linux-3.0/drivers/net/tehuti.c
 @@ -1627,13 +1627,8 @@ static netdev_tx_t bdx_tx_transmit(struc
  	unsigned long flags;
  
@@ -21240,10 +21099,10 @@
  
  	/* build tx descriptor */
  	BDX_ASSERT(f->m.wptr >= f->m.memsz);	/* started with valid wptr */
-Index: linux-2.6/drivers/net/3c59x.c
+Index: linux-3.0/drivers/net/3c59x.c
 ===================================================================
---- linux-2.6.orig/drivers/net/3c59x.c
-+++ linux-2.6/drivers/net/3c59x.c
+--- linux-3.0.orig/drivers/net/3c59x.c
++++ linux-3.0/drivers/net/3c59x.c
 @@ -843,9 +843,9 @@ static void poll_vortex(struct net_devic
  {
  	struct vortex_private *vp = netdev_priv(dev);
@@ -21271,10 +21130,10 @@
  		}
  	}
  
-Index: linux-2.6/drivers/net/gianfar.c
+Index: linux-3.0/drivers/net/gianfar.c
 ===================================================================
---- linux-2.6.orig/drivers/net/gianfar.c
-+++ linux-2.6/drivers/net/gianfar.c
+--- linux-3.0.orig/drivers/net/gianfar.c
++++ linux-3.0/drivers/net/gianfar.c
 @@ -1668,7 +1668,7 @@ void stop_gfar(struct net_device *dev)
  
  
@@ -21311,10 +21170,10 @@
  }
  
  /* Update the hash table based on the current list of multicast
-Index: linux-2.6/drivers/usb/host/ohci-hcd.c
+Index: linux-3.0/drivers/usb/host/ohci-hcd.c
 ===================================================================
---- linux-2.6.orig/drivers/usb/host/ohci-hcd.c
-+++ linux-2.6/drivers/usb/host/ohci-hcd.c
+--- linux-3.0.orig/drivers/usb/host/ohci-hcd.c
++++ linux-3.0/drivers/usb/host/ohci-hcd.c
 @@ -833,9 +833,13 @@ static irqreturn_t ohci_irq (struct usb_
  	}
  
@@ -21332,10 +21191,10 @@
  	}
  
  	if (quirk_zfmicro(ohci) && (ints & OHCI_INTR_SF)) {
-Index: linux-2.6/include/linux/percpu.h
+Index: linux-3.0/include/linux/percpu.h
 ===================================================================
---- linux-2.6.orig/include/linux/percpu.h
-+++ linux-2.6/include/linux/percpu.h
+--- linux-3.0.orig/include/linux/percpu.h
++++ linux-3.0/include/linux/percpu.h
 @@ -48,6 +48,31 @@
  	preempt_enable();				\
  } while (0)
@@ -21368,10 +21227,10 @@
  /* minimum unit size, also is the maximum supported allocation size */
  #define PCPU_MIN_UNIT_SIZE		PFN_ALIGN(32 << 10)
  
-Index: linux-2.6/include/linux/locallock.h
+Index: linux-3.0/include/linux/locallock.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/locallock.h
++++ linux-3.0/include/linux/locallock.h
 @@ -0,0 +1,230 @@
 +#ifndef _LINUX_LOCALLOCK_H
 +#define _LINUX_LOCALLOCK_H
@@ -21603,10 +21462,10 @@
 +#endif
 +
 +#endif
-Index: linux-2.6/include/linux/smp.h
+Index: linux-3.0/include/linux/smp.h
 ===================================================================
---- linux-2.6.orig/include/linux/smp.h
-+++ linux-2.6/include/linux/smp.h
+--- linux-3.0.orig/include/linux/smp.h
++++ linux-3.0/include/linux/smp.h
 @@ -80,7 +80,6 @@ void __smp_call_function_single(int cpui
  
  int smp_call_function_any(const struct cpumask *mask,
@@ -21625,10 +21484,10 @@
  /*
   * Callback to arch code if there's nosmp or maxcpus=0 on the
   * boot command line:
-Index: linux-2.6/mm/swap.c
+Index: linux-3.0/mm/swap.c
 ===================================================================
---- linux-2.6.orig/mm/swap.c
-+++ linux-2.6/mm/swap.c
+--- linux-3.0.orig/mm/swap.c
++++ linux-3.0/mm/swap.c
 @@ -31,6 +31,7 @@
  #include <linux/backing-dev.h>
  #include <linux/memcontrol.h>
@@ -21647,7 +21506,7 @@
  /*
   * This path almost never happens for VM activity - pages are normally
   * freed via pagevecs.  But it gets used by networking.
-@@ -244,11 +248,11 @@ void rotate_reclaimable_page(struct page
+@@ -267,11 +271,11 @@ void rotate_reclaimable_page(struct page
  		unsigned long flags;
  
  		page_cache_get(page);
@@ -21661,7 +21520,7 @@
  	}
  }
  
-@@ -304,12 +308,13 @@ static void activate_page_drain(int cpu)
+@@ -327,12 +331,13 @@ static void activate_page_drain(int cpu)
  void activate_page(struct page *page)
  {
  	if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) {
@@ -21677,7 +21536,7 @@
  	}
  }
  
-@@ -350,12 +355,12 @@ EXPORT_SYMBOL(mark_page_accessed);
+@@ -373,12 +378,12 @@ EXPORT_SYMBOL(mark_page_accessed);
  
  void __lru_cache_add(struct page *page, enum lru_list lru)
  {
@@ -21692,7 +21551,7 @@
  }
  EXPORT_SYMBOL(__lru_cache_add);
  
-@@ -489,9 +494,9 @@ static void drain_cpu_pagevecs(int cpu)
+@@ -512,9 +517,9 @@ static void drain_cpu_pagevecs(int cpu)
  		unsigned long flags;
  
  		/* No harm done if a racing interrupt already did this */
@@ -21704,7 +21563,7 @@
  	}
  
  	pvec = &per_cpu(lru_deactivate_pvecs, cpu);
-@@ -519,18 +524,19 @@ void deactivate_page(struct page *page)
+@@ -542,18 +547,19 @@ void deactivate_page(struct page *page)
  		return;
  
  	if (likely(get_page_unless_zero(page))) {
@@ -21728,7 +21587,7 @@
  }
  
  static void lru_add_drain_per_cpu(struct work_struct *dummy)
-@@ -760,6 +766,9 @@ void __init swap_setup(void)
+@@ -783,6 +789,9 @@ void __init swap_setup(void)
  {
  	unsigned long megs = totalram_pages >> (20 - PAGE_SHIFT);
  
@@ -21738,10 +21597,10 @@
  #ifdef CONFIG_SWAP
  	bdi_init(swapper_space.backing_dev_info);
  #endif
-Index: linux-2.6/mm/vmscan.c
+Index: linux-3.0/mm/vmscan.c
 ===================================================================
---- linux-2.6.orig/mm/vmscan.c
-+++ linux-2.6/mm/vmscan.c
+--- linux-3.0.orig/mm/vmscan.c
++++ linux-3.0/mm/vmscan.c
 @@ -1277,8 +1277,8 @@ static int too_many_isolated(struct zone
   */
  static noinline_for_stack void
@@ -21781,10 +21640,10 @@
  
  	trace_mm_vmscan_lru_shrink_inactive(zone->zone_pgdat->node_id,
  		zone_idx(zone),
-Index: linux-2.6/include/linux/vmstat.h
+Index: linux-3.0/include/linux/vmstat.h
 ===================================================================
---- linux-2.6.orig/include/linux/vmstat.h
-+++ linux-2.6/include/linux/vmstat.h
+--- linux-3.0.orig/include/linux/vmstat.h
++++ linux-3.0/include/linux/vmstat.h
 @@ -29,7 +29,9 @@ DECLARE_PER_CPU(struct vm_event_state, v
  
  static inline void __count_vm_event(enum vm_event_item item)
@@ -21805,10 +21664,10 @@
  }
  
  static inline void count_vm_events(enum vm_event_item item, long delta)
-Index: linux-2.6/mm/vmstat.c
+Index: linux-3.0/mm/vmstat.c
 ===================================================================
---- linux-2.6.orig/mm/vmstat.c
-+++ linux-2.6/mm/vmstat.c
+--- linux-3.0.orig/mm/vmstat.c
++++ linux-3.0/mm/vmstat.c
 @@ -216,6 +216,7 @@ void __mod_zone_page_state(struct zone *
  	long x;
  	long t;
@@ -21857,11 +21716,11 @@
  }
  
  void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
-Index: linux-2.6/include/linux/mm.h
+Index: linux-3.0/include/linux/mm.h
 ===================================================================
---- linux-2.6.orig/include/linux/mm.h
-+++ linux-2.6/include/linux/mm.h
-@@ -1230,27 +1230,59 @@ static inline pmd_t *pmd_alloc(struct mm
+--- linux-3.0.orig/include/linux/mm.h
++++ linux-3.0/include/linux/mm.h
+@@ -1229,27 +1229,59 @@ static inline pmd_t *pmd_alloc(struct mm
   * overflow into the next struct page (as it might with DEBUG_SPINLOCK).
   * When freeing, reset page->mapping so free_pages_check won't complain.
   */
@@ -21928,10 +21787,10 @@
  static inline void pgtable_page_dtor(struct page *page)
  {
  	pte_lock_deinit(page);
-Index: linux-2.6/include/linux/mm_types.h
+Index: linux-3.0/include/linux/mm_types.h
 ===================================================================
---- linux-2.6.orig/include/linux/mm_types.h
-+++ linux-2.6/include/linux/mm_types.h
+--- linux-3.0.orig/include/linux/mm_types.h
++++ linux-3.0/include/linux/mm_types.h
 @@ -12,6 +12,7 @@
  #include <linux/completion.h>
  #include <linux/cpumask.h>
@@ -21940,7 +21799,7 @@
  #include <asm/page.h>
  #include <asm/mmu.h>
  
-@@ -63,7 +64,11 @@ struct page {
+@@ -77,7 +78,11 @@ struct page {
  						 */
  	    };
  #if USE_SPLIT_PTLOCKS
@@ -21952,7 +21811,7 @@
  #endif
  	    struct kmem_cache *slab;	/* SLUB: Pointer to slab */
  	    struct page *first_page;	/* Compound tail pages */
-@@ -316,6 +321,9 @@ struct mm_struct {
+@@ -330,6 +335,9 @@ struct mm_struct {
  #ifdef CONFIG_CPUMASK_OFFSTACK
  	struct cpumask cpumask_allocation;
  #endif
@@ -21962,10 +21821,10 @@
  };
  
  static inline void mm_init_cpumask(struct mm_struct *mm)
-Index: linux-2.6/init/Kconfig
+Index: linux-3.0/init/Kconfig
 ===================================================================
---- linux-2.6.orig/init/Kconfig
-+++ linux-2.6/init/Kconfig
+--- linux-3.0.orig/init/Kconfig
++++ linux-3.0/init/Kconfig
 @@ -401,7 +401,7 @@ config TREE_PREEMPT_RCU
  
  config TINY_RCU
@@ -22000,10 +21859,10 @@
  	help
  	   SLOB replaces the stock allocator with a drastically simpler
  	   allocator. SLOB is generally more space efficient but
-Index: linux-2.6/include/linux/radix-tree.h
+Index: linux-3.0/include/linux/radix-tree.h
 ===================================================================
---- linux-2.6.orig/include/linux/radix-tree.h
-+++ linux-2.6/include/linux/radix-tree.h
+--- linux-3.0.orig/include/linux/radix-tree.h
++++ linux-3.0/include/linux/radix-tree.h
 @@ -201,7 +201,13 @@ unsigned long radix_tree_next_hole(struc
  				unsigned long index, unsigned long max_scan);
  unsigned long radix_tree_prev_hole(struct radix_tree_root *root,
@@ -22027,10 +21886,10 @@
  }
  
  #endif /* _LINUX_RADIX_TREE_H */
-Index: linux-2.6/lib/radix-tree.c
+Index: linux-3.0/lib/radix-tree.c
 ===================================================================
---- linux-2.6.orig/lib/radix-tree.c
-+++ linux-2.6/lib/radix-tree.c
+--- linux-3.0.orig/lib/radix-tree.c
++++ linux-3.0/lib/radix-tree.c
 @@ -166,12 +166,13 @@ radix_tree_node_alloc(struct radix_tree_
  		 * succeed in getting a node here (and never reach
  		 * kmem_cache_alloc)
@@ -22062,10 +21921,10 @@
  
  /*
   *	Return the maximum key which can be store into a
-Index: linux-2.6/kernel/panic.c
+Index: linux-3.0/kernel/panic.c
 ===================================================================
---- linux-2.6.orig/kernel/panic.c
-+++ linux-2.6/kernel/panic.c
+--- linux-3.0.orig/kernel/panic.c
++++ linux-3.0/kernel/panic.c
 @@ -330,9 +330,11 @@ static u64 oops_id;
  
  static int init_oops_id(void)
@@ -22078,10 +21937,10 @@
  		oops_id++;
  
  	return 0;
-Index: linux-2.6/ipc/mqueue.c
+Index: linux-3.0/ipc/mqueue.c
 ===================================================================
---- linux-2.6.orig/ipc/mqueue.c
-+++ linux-2.6/ipc/mqueue.c
+--- linux-3.0.orig/ipc/mqueue.c
++++ linux-3.0/ipc/mqueue.c
 @@ -820,12 +820,17 @@ static inline void pipelined_send(struct
  				  struct msg_msg *message,
  				  struct ext_wait_queue *receiver)
@@ -22122,10 +21981,10 @@
  		size_t, msg_len, unsigned int, msg_prio,
  		const struct timespec __user *, u_abs_timeout)
  {
-Index: linux-2.6/ipc/msg.c
+Index: linux-3.0/ipc/msg.c
 ===================================================================
---- linux-2.6.orig/ipc/msg.c
-+++ linux-2.6/ipc/msg.c
+--- linux-3.0.orig/ipc/msg.c
++++ linux-3.0/ipc/msg.c
 @@ -259,12 +259,20 @@ static void expunge_all(struct msg_queue
  	while (tmp != &msq->q_receivers) {
  		struct msg_receiver *msr;
@@ -22172,10 +22031,10 @@
  		}
  	}
  	return 0;
-Index: linux-2.6/kernel/relay.c
+Index: linux-3.0/kernel/relay.c
 ===================================================================
---- linux-2.6.orig/kernel/relay.c
-+++ linux-2.6/kernel/relay.c
+--- linux-3.0.orig/kernel/relay.c
++++ linux-3.0/kernel/relay.c
 @@ -336,6 +336,10 @@ static void wakeup_readers(unsigned long
  {
  	struct rchan_buf *buf = (struct rchan_buf *)data;
@@ -22211,10 +22070,10 @@
  	}
  
  	old = buf->data;
-Index: linux-2.6/net/ipv4/route.c
+Index: linux-3.0/net/ipv4/route.c
 ===================================================================
---- linux-2.6.orig/net/ipv4/route.c
-+++ linux-2.6/net/ipv4/route.c
+--- linux-3.0.orig/net/ipv4/route.c
++++ linux-3.0/net/ipv4/route.c
 @@ -242,7 +242,7 @@ struct rt_hash_bucket {
  };
  
@@ -22224,10 +22083,10 @@
  /*
   * Instead of using one spinlock for each rt_hash_bucket, we use a table of spinlocks
   * The size of this table is a power of two and depends on the number of CPUS.
-Index: linux-2.6/include/linux/timer.h
+Index: linux-3.0/include/linux/timer.h
 ===================================================================
---- linux-2.6.orig/include/linux/timer.h
-+++ linux-2.6/include/linux/timer.h
+--- linux-3.0.orig/include/linux/timer.h
++++ linux-3.0/include/linux/timer.h
 @@ -276,7 +276,7 @@ extern void add_timer(struct timer_list 
  
  extern int try_to_del_timer_sync(struct timer_list *timer);
@@ -22237,10 +22096,10 @@
    extern int del_timer_sync(struct timer_list *timer);
  #else
  # define del_timer_sync(t)		del_timer(t)
-Index: linux-2.6/kernel/timer.c
+Index: linux-3.0/kernel/timer.c
 ===================================================================
---- linux-2.6.orig/kernel/timer.c
-+++ linux-2.6/kernel/timer.c
+--- linux-3.0.orig/kernel/timer.c
++++ linux-3.0/kernel/timer.c
 @@ -75,6 +75,7 @@ struct tvec_root {
  struct tvec_base {
  	spinlock_t lock;
@@ -22483,10 +22342,10 @@
  	put_cpu_var(tvec_bases);
  }
  #endif /* CONFIG_HOTPLUG_CPU */
-Index: linux-2.6/include/linux/hrtimer.h
+Index: linux-3.0/include/linux/hrtimer.h
 ===================================================================
---- linux-2.6.orig/include/linux/hrtimer.h
-+++ linux-2.6/include/linux/hrtimer.h
+--- linux-3.0.orig/include/linux/hrtimer.h
++++ linux-3.0/include/linux/hrtimer.h
 @@ -111,6 +111,8 @@ struct hrtimer {
  	enum hrtimer_restart		(*function)(struct hrtimer *);
  	struct hrtimer_clock_base	*base;
@@ -22528,10 +22387,10 @@
  /* Query timers: */
  extern ktime_t hrtimer_get_remaining(const struct hrtimer *timer);
  extern int hrtimer_get_res(const clockid_t which_clock, struct timespec *tp);
-Index: linux-2.6/kernel/itimer.c
+Index: linux-3.0/kernel/itimer.c
 ===================================================================
---- linux-2.6.orig/kernel/itimer.c
-+++ linux-2.6/kernel/itimer.c
+--- linux-3.0.orig/kernel/itimer.c
++++ linux-3.0/kernel/itimer.c
 @@ -214,6 +214,7 @@ again:
  		/* We are sharing ->siglock with it_real_fn() */
  		if (hrtimer_try_to_cancel(timer) < 0) {
@@ -22540,10 +22399,10 @@
  			goto again;
  		}
  		expires = timeval_to_ktime(value->it_value);
-Index: linux-2.6/include/linux/rcupdate.h
+Index: linux-3.0/include/linux/rcupdate.h
 ===================================================================
---- linux-2.6.orig/include/linux/rcupdate.h
-+++ linux-2.6/include/linux/rcupdate.h
+--- linux-3.0.orig/include/linux/rcupdate.h
++++ linux-3.0/include/linux/rcupdate.h
 @@ -78,7 +78,13 @@ struct rcu_head {
  extern void call_rcu_sched(struct rcu_head *head,
  			   void (*func)(struct rcu_head *rcu));
@@ -22639,10 +22498,10 @@
  
  /*
   * debug_rcu_head_queue()/debug_rcu_head_unqueue() are used internally
-Index: linux-2.6/kernel/stop_machine.c
+Index: linux-3.0/kernel/stop_machine.c
 ===================================================================
---- linux-2.6.orig/kernel/stop_machine.c
-+++ linux-2.6/kernel/stop_machine.c
+--- linux-3.0.orig/kernel/stop_machine.c
++++ linux-3.0/kernel/stop_machine.c
 @@ -29,12 +29,12 @@ struct cpu_stop_done {
  	atomic_t		nr_todo;	/* nr left to execute */
  	bool			executed;	/* actually executed? */
@@ -22844,10 +22703,10 @@
  		INIT_LIST_HEAD(&stopper->works);
  	}
  
-Index: linux-2.6/include/linux/cpu.h
+Index: linux-3.0/include/linux/cpu.h
 ===================================================================
---- linux-2.6.orig/include/linux/cpu.h
-+++ linux-2.6/include/linux/cpu.h
+--- linux-3.0.orig/include/linux/cpu.h
++++ linux-3.0/include/linux/cpu.h
 @@ -60,14 +60,16 @@ enum {
  	 */
  	CPU_PRI_SCHED_ACTIVE	= INT_MAX,
@@ -22889,10 +22748,10 @@
  #define hotcpu_notifier(fn, pri)	do { (void)(fn); } while (0)
  /* These aren't inline functions due to a GCC bug. */
  #define register_hotcpu_notifier(nb)	({ (void)(nb); 0; })
-Index: linux-2.6/kernel/cpu.c
+Index: linux-3.0/kernel/cpu.c
 ===================================================================
---- linux-2.6.orig/kernel/cpu.c
-+++ linux-2.6/kernel/cpu.c
+--- linux-3.0.orig/kernel/cpu.c
++++ linux-3.0/kernel/cpu.c
 @@ -57,6 +57,104 @@ static struct {
  	.refcount = 0,
  };
@@ -23014,11 +22873,10 @@
  
  	if (num_online_cpus() == 1)
  		return -EBUSY;
-@@ -224,7 +323,19 @@ static int __ref _cpu_down(unsigned int 
+@@ -224,7 +323,26 @@ static int __ref _cpu_down(unsigned int 
  	if (!cpu_online(cpu))
  		return -EINVAL;
  
--	cpu_hotplug_begin();
 +	/* Move the downtaker off the unplug cpu */
 +	if (!alloc_cpumask_var(&cpumask, GFP_KERNEL))
 +		return -ENOMEM;
@@ -23032,28 +22890,17 @@
 +		migrate_enable();
 +		return -EBUSY;
 +	}
- 
- 	err = __cpu_notify(CPU_DOWN_PREPARE | mod, hcpu, -1, &nr_calls);
- 	if (err) {
-@@ -232,7 +343,16 @@ static int __ref _cpu_down(unsigned int 
- 		__cpu_notify(CPU_DOWN_FAILED | mod, hcpu, nr_calls, NULL);
- 		printk("%s: attempt to take down CPU %u failed\n",
- 				__func__, cpu);
--		goto out_release;
-+		goto out_cancel;
-+	}
 +
-+	cpu_hotplug_begin();
+ 	cpu_hotplug_begin();
 +	err = cpu_unplug_begin(cpu);
 +	if (err) {
-+		nr_calls--;
-+		__cpu_notify(CPU_DOWN_FAILED | mod, hcpu, nr_calls, NULL);
 +		printk("cpu_unplug_begin(%d) failed\n", cpu);
 +		goto out_cancel;
- 	}
++	}
  
- 	err = __stop_machine(take_cpu_down, &tcd_param, cpumask_of(cpu));
-@@ -263,6 +383,9 @@ static int __ref _cpu_down(unsigned int 
+ 	err = __cpu_notify(CPU_DOWN_PREPARE | mod, hcpu, -1, &nr_calls);
+ 	if (err) {
+@@ -263,6 +381,9 @@ static int __ref _cpu_down(unsigned int 
  	check_for_tasks(cpu);
  
  out_release:
@@ -23063,10 +22910,10 @@
  	cpu_hotplug_done();
  	if (!err)
  		cpu_notify_nofail(CPU_POST_DEAD | mod, hcpu);
-Index: linux-2.6/include/linux/ftrace_event.h
+Index: linux-3.0/include/linux/ftrace_event.h
 ===================================================================
---- linux-2.6.orig/include/linux/ftrace_event.h
-+++ linux-2.6/include/linux/ftrace_event.h
+--- linux-3.0.orig/include/linux/ftrace_event.h
++++ linux-3.0/include/linux/ftrace_event.h
 @@ -49,7 +49,8 @@ struct trace_entry {
  	unsigned char		flags;
  	unsigned char		preempt_count;
@@ -23077,10 +22924,10 @@
  };
  
  #define FTRACE_MAX_EVENT						\
-Index: linux-2.6/kernel/trace/trace_events.c
+Index: linux-3.0/kernel/trace/trace_events.c
 ===================================================================
---- linux-2.6.orig/kernel/trace/trace_events.c
-+++ linux-2.6/kernel/trace/trace_events.c
+--- linux-3.0.orig/kernel/trace/trace_events.c
++++ linux-3.0/kernel/trace/trace_events.c
 @@ -116,6 +116,7 @@ static int trace_define_common_fields(vo
  	__common_field(unsigned char, flags);
  	__common_field(unsigned char, preempt_count);
@@ -23089,10 +22936,10 @@
  	__common_field(int, padding);
  
  	return ret;
-Index: linux-2.6/kernel/trace/trace_output.c
+Index: linux-3.0/kernel/trace/trace_output.c
 ===================================================================
---- linux-2.6.orig/kernel/trace/trace_output.c
-+++ linux-2.6/kernel/trace/trace_output.c
+--- linux-3.0.orig/kernel/trace/trace_output.c
++++ linux-3.0/kernel/trace/trace_output.c
 @@ -591,6 +591,11 @@ int trace_print_lat_fmt(struct trace_seq
  	else
  		ret = trace_seq_putc(s, '.');
@@ -23105,10 +22952,10 @@
  	return ret;
  }
  
-Index: linux-2.6/kernel/sched_debug.c
+Index: linux-3.0/kernel/sched_debug.c
 ===================================================================
---- linux-2.6.orig/kernel/sched_debug.c
-+++ linux-2.6/kernel/sched_debug.c
+--- linux-3.0.orig/kernel/sched_debug.c
++++ linux-3.0/kernel/sched_debug.c
 @@ -235,6 +235,9 @@ void print_rt_rq(struct seq_file *m, int
  	P(rt_throttled);
  	PN(rt_time);
@@ -23130,10 +22977,10 @@
  #undef PN
  #undef __PN
  #undef P
-Index: linux-2.6/kernel/trace/trace.h
+Index: linux-3.0/kernel/trace/trace.h
 ===================================================================
---- linux-2.6.orig/kernel/trace/trace.h
-+++ linux-2.6/kernel/trace/trace.h
+--- linux-3.0.orig/kernel/trace/trace.h
++++ linux-3.0/kernel/trace/trace.h
 @@ -322,7 +322,6 @@ void trace_init_global_iter(struct trace
  
  void tracing_iter_reset(struct trace_iterator *iter, int cpu);
@@ -23142,20 +22989,20 @@
  void poll_wait_pipe(struct trace_iterator *iter);
  
  void ftrace(struct trace_array *tr,
-Index: linux-2.6/kernel/Kconfig.locks
+Index: linux-3.0/kernel/Kconfig.locks
 ===================================================================
---- linux-2.6.orig/kernel/Kconfig.locks
-+++ linux-2.6/kernel/Kconfig.locks
+--- linux-3.0.orig/kernel/Kconfig.locks
++++ linux-3.0/kernel/Kconfig.locks
 @@ -199,4 +199,4 @@ config INLINE_WRITE_UNLOCK_IRQRESTORE
  	def_bool !DEBUG_SPINLOCK && ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
  
  config MUTEX_SPIN_ON_OWNER
 -	def_bool SMP && !DEBUG_MUTEXES
 +	def_bool SMP && !DEBUG_MUTEXES && !PREEMPT_RT_FULL
-Index: linux-2.6/include/linux/hardirq.h
+Index: linux-3.0/include/linux/hardirq.h
 ===================================================================
---- linux-2.6.orig/include/linux/hardirq.h
-+++ linux-2.6/include/linux/hardirq.h
+--- linux-3.0.orig/include/linux/hardirq.h
++++ linux-3.0/include/linux/hardirq.h
 @@ -60,7 +60,11 @@
  #define HARDIRQ_OFFSET	(1UL << HARDIRQ_SHIFT)
  #define NMI_OFFSET	(1UL << NMI_SHIFT)
@@ -23196,10 +23043,10 @@
  
  /*
   * Are we in NMI context?
-Index: linux-2.6/arch/powerpc/kernel/irq.c
+Index: linux-3.0/arch/powerpc/kernel/irq.c
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/irq.c
-+++ linux-2.6/arch/powerpc/kernel/irq.c
+--- linux-3.0.orig/arch/powerpc/kernel/irq.c
++++ linux-3.0/arch/powerpc/kernel/irq.c
 @@ -449,6 +449,7 @@ void irq_ctx_init(void)
  	}
  }
@@ -23217,10 +23064,10 @@
  
  /*
   * IRQ controller and virtual interrupts
-Index: linux-2.6/arch/powerpc/kernel/misc_32.S
+Index: linux-3.0/arch/powerpc/kernel/misc_32.S
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/misc_32.S
-+++ linux-2.6/arch/powerpc/kernel/misc_32.S
+--- linux-3.0.orig/arch/powerpc/kernel/misc_32.S
++++ linux-3.0/arch/powerpc/kernel/misc_32.S
 @@ -34,6 +34,7 @@
  
  	.text
@@ -23237,10 +23084,10 @@
  
  _GLOBAL(call_handle_irq)
  	mflr	r0
-Index: linux-2.6/arch/powerpc/kernel/misc_64.S
+Index: linux-3.0/arch/powerpc/kernel/misc_64.S
 ===================================================================
---- linux-2.6.orig/arch/powerpc/kernel/misc_64.S
-+++ linux-2.6/arch/powerpc/kernel/misc_64.S
+--- linux-3.0.orig/arch/powerpc/kernel/misc_64.S
++++ linux-3.0/arch/powerpc/kernel/misc_64.S
 @@ -29,6 +29,7 @@
  
  	.text
@@ -23257,10 +23104,10 @@
  
  _GLOBAL(call_handle_irq)
  	ld	r8,0(r6)
-Index: linux-2.6/arch/sh/kernel/irq.c
+Index: linux-3.0/arch/sh/kernel/irq.c
 ===================================================================
---- linux-2.6.orig/arch/sh/kernel/irq.c
-+++ linux-2.6/arch/sh/kernel/irq.c
+--- linux-3.0.orig/arch/sh/kernel/irq.c
++++ linux-3.0/arch/sh/kernel/irq.c
 @@ -149,6 +149,7 @@ void irq_ctx_exit(int cpu)
  	hardirq_ctx[cpu] = NULL;
  }
@@ -23277,10 +23124,10 @@
  #else
  static inline void handle_one_irq(unsigned int irq)
  {
-Index: linux-2.6/arch/sparc/kernel/irq_64.c
+Index: linux-3.0/arch/sparc/kernel/irq_64.c
 ===================================================================
---- linux-2.6.orig/arch/sparc/kernel/irq_64.c
-+++ linux-2.6/arch/sparc/kernel/irq_64.c
+--- linux-3.0.orig/arch/sparc/kernel/irq_64.c
++++ linux-3.0/arch/sparc/kernel/irq_64.c
 @@ -700,6 +700,7 @@ void __irq_entry handler_irq(int pil, st
  	set_irq_regs(old_regs);
  }
@@ -23297,10 +23144,10 @@
  
  #ifdef CONFIG_HOTPLUG_CPU
  void fixup_irqs(void)
-Index: linux-2.6/arch/x86/kernel/entry_64.S
+Index: linux-3.0/arch/x86/kernel/entry_64.S
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/entry_64.S
-+++ linux-2.6/arch/x86/kernel/entry_64.S
+--- linux-3.0.orig/arch/x86/kernel/entry_64.S
++++ linux-3.0/arch/x86/kernel/entry_64.S
 @@ -1197,6 +1197,7 @@ ENTRY(kernel_execve)
  	CFI_ENDPROC
  END(kernel_execve)
@@ -23317,10 +23164,10 @@
  
  #ifdef CONFIG_XEN
  zeroentry xen_hypervisor_callback xen_do_hypervisor_callback
-Index: linux-2.6/arch/x86/kernel/irq_32.c
+Index: linux-3.0/arch/x86/kernel/irq_32.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/irq_32.c
-+++ linux-2.6/arch/x86/kernel/irq_32.c
+--- linux-3.0.orig/arch/x86/kernel/irq_32.c
++++ linux-3.0/arch/x86/kernel/irq_32.c
 @@ -149,6 +149,7 @@ void __cpuinit irq_ctx_init(int cpu)
  	       cpu, per_cpu(hardirq_ctx, cpu),  per_cpu(softirq_ctx, cpu));
  }
@@ -23337,10 +23184,10 @@
  
  bool handle_irq(unsigned irq, struct pt_regs *regs)
  {
-Index: linux-2.6/arch/x86/kernel/irq_64.c
+Index: linux-3.0/arch/x86/kernel/irq_64.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/irq_64.c
-+++ linux-2.6/arch/x86/kernel/irq_64.c
+--- linux-3.0.orig/arch/x86/kernel/irq_64.c
++++ linux-3.0/arch/x86/kernel/irq_64.c
 @@ -62,7 +62,7 @@ bool handle_irq(unsigned irq, struct pt_
  	return true;
  }
@@ -23355,10 +23202,10 @@
  	local_irq_restore(flags);
  }
 +#endif
-Index: linux-2.6/drivers/md/raid5.c
+Index: linux-3.0/drivers/md/raid5.c
 ===================================================================
---- linux-2.6.orig/drivers/md/raid5.c
-+++ linux-2.6/drivers/md/raid5.c
+--- linux-3.0.orig/drivers/md/raid5.c
++++ linux-3.0/drivers/md/raid5.c
 @@ -1226,8 +1226,9 @@ static void __raid_run_ops(struct stripe
  	struct raid5_percpu *percpu;
  	unsigned long cpu;
@@ -23388,10 +23235,10 @@
  	}
  #ifdef CONFIG_HOTPLUG_CPU
  	conf->cpu_notify.notifier_call = raid456_cpu_notify;
-Index: linux-2.6/drivers/md/raid5.h
+Index: linux-3.0/drivers/md/raid5.h
 ===================================================================
---- linux-2.6.orig/drivers/md/raid5.h
-+++ linux-2.6/drivers/md/raid5.h
+--- linux-3.0.orig/drivers/md/raid5.h
++++ linux-3.0/drivers/md/raid5.h
 @@ -402,6 +402,7 @@ struct raid5_private_data {
  
  	/* per cpu variables */
@@ -23400,10 +23247,10 @@
  		struct page	*spare_page; /* Used when checking P/Q in raid6 */
  		void		*scribble;   /* space for constructing buffer
  					      * lists and performing address
-Index: linux-2.6/include/linux/rtmutex.h
+Index: linux-3.0/include/linux/rtmutex.h
 ===================================================================
---- linux-2.6.orig/include/linux/rtmutex.h
-+++ linux-2.6/include/linux/rtmutex.h
+--- linux-3.0.orig/include/linux/rtmutex.h
++++ linux-3.0/include/linux/rtmutex.h
 @@ -14,7 +14,7 @@
  
  #include <linux/linkage.h>
@@ -23479,10 +23326,10 @@
  extern int rt_mutex_timed_lock(struct rt_mutex *lock,
  					struct hrtimer_sleeper *timeout,
  					int detect_deadlock);
-Index: linux-2.6/kernel/rtmutex.c
+Index: linux-3.0/kernel/rtmutex.c
 ===================================================================
---- linux-2.6.orig/kernel/rtmutex.c
-+++ linux-2.6/kernel/rtmutex.c
+--- linux-3.0.orig/kernel/rtmutex.c
++++ linux-3.0/kernel/rtmutex.c
 @@ -8,6 +8,12 @@
   *  Copyright (C) 2005 Kihon Technologies Inc., Steven Rostedt
   *  Copyright (C) 2006 Esben Nielsen
@@ -24110,10 +23957,10 @@
  	debug_rt_mutex_proxy_lock(lock, proxy_owner);
  	rt_mutex_set_owner(lock, proxy_owner);
  	rt_mutex_deadlock_account_lock(lock, proxy_owner);
-Index: linux-2.6/kernel/futex.c
+Index: linux-3.0/kernel/futex.c
 ===================================================================
---- linux-2.6.orig/kernel/futex.c
-+++ linux-2.6/kernel/futex.c
+--- linux-3.0.orig/kernel/futex.c
++++ linux-3.0/kernel/futex.c
 @@ -1410,6 +1410,16 @@ retry_private:
  				requeue_pi_wake_futex(this, &key2, hb2);
  				drop_count++;
@@ -24240,10 +24087,10 @@
  		/*
  		 * Fixup the pi_state owner and possibly acquire the lock if we
  		 * haven't already.
-Index: linux-2.6/kernel/rtmutex_common.h
+Index: linux-3.0/kernel/rtmutex_common.h
 ===================================================================
---- linux-2.6.orig/kernel/rtmutex_common.h
-+++ linux-2.6/kernel/rtmutex_common.h
+--- linux-3.0.orig/kernel/rtmutex_common.h
++++ linux-3.0/kernel/rtmutex_common.h
 @@ -49,6 +49,7 @@ struct rt_mutex_waiter {
  	struct plist_node	pi_list_entry;
  	struct task_struct	*task;
@@ -24274,10 +24121,10 @@
 +}
 +
  #endif
-Index: linux-2.6/include/linux/plist.h
+Index: linux-3.0/include/linux/plist.h
 ===================================================================
---- linux-2.6.orig/include/linux/plist.h
-+++ linux-2.6/include/linux/plist.h
+--- linux-3.0.orig/include/linux/plist.h
++++ linux-3.0/include/linux/plist.h
 @@ -77,13 +77,15 @@
  
  #include <linux/kernel.h>
@@ -24315,10 +24162,10 @@
  {
  	INIT_LIST_HEAD(&head->node_list);
  #ifdef CONFIG_DEBUG_PI_LIST
-Index: linux-2.6/include/linux/rwlock_types.h
+Index: linux-3.0/include/linux/rwlock_types.h
 ===================================================================
---- linux-2.6.orig/include/linux/rwlock_types.h
-+++ linux-2.6/include/linux/rwlock_types.h
+--- linux-3.0.orig/include/linux/rwlock_types.h
++++ linux-3.0/include/linux/rwlock_types.h
 @@ -1,6 +1,10 @@
  #ifndef __LINUX_RWLOCK_TYPES_H
  #define __LINUX_RWLOCK_TYPES_H
@@ -24339,10 +24186,10 @@
 +	rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
  
  #endif /* __LINUX_RWLOCK_TYPES_H */
-Index: linux-2.6/include/linux/spinlock_types.h
+Index: linux-3.0/include/linux/spinlock_types.h
 ===================================================================
---- linux-2.6.orig/include/linux/spinlock_types.h
-+++ linux-2.6/include/linux/spinlock_types.h
+--- linux-3.0.orig/include/linux/spinlock_types.h
++++ linux-3.0/include/linux/spinlock_types.h
 @@ -9,80 +9,15 @@
   * Released under the General Public License (GPL).
   */
@@ -24431,10 +24278,10 @@
 -#include <linux/rwlock_types.h>
 -
  #endif /* __LINUX_SPINLOCK_TYPES_H */
-Index: linux-2.6/include/linux/spinlock_types_nort.h
+Index: linux-3.0/include/linux/spinlock_types_nort.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/spinlock_types_nort.h
++++ linux-3.0/include/linux/spinlock_types_nort.h
 @@ -0,0 +1,33 @@
 +#ifndef __LINUX_SPINLOCK_TYPES_NORT_H
 +#define __LINUX_SPINLOCK_TYPES_NORT_H
@@ -24469,10 +24316,10 @@
 +#define DEFINE_SPINLOCK(x)	spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
 +
 +#endif
-Index: linux-2.6/include/linux/spinlock_types_raw.h
+Index: linux-3.0/include/linux/spinlock_types_raw.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/spinlock_types_raw.h
++++ linux-3.0/include/linux/spinlock_types_raw.h
 @@ -0,0 +1,56 @@
 +#ifndef __LINUX_SPINLOCK_TYPES_RAW_H
 +#define __LINUX_SPINLOCK_TYPES_RAW_H
@@ -24530,10 +24377,10 @@
 +#define DEFINE_RAW_SPINLOCK(x)	raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
 +
 +#endif
-Index: linux-2.6/include/linux/rwlock_types_rt.h
+Index: linux-3.0/include/linux/rwlock_types_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/rwlock_types_rt.h
++++ linux-3.0/include/linux/rwlock_types_rt.h
 @@ -0,0 +1,33 @@
 +#ifndef __LINUX_RWLOCK_TYPES_RT_H
 +#define __LINUX_RWLOCK_TYPES_RT_H
@@ -24568,10 +24415,10 @@
 +	rwlock_t name __cacheline_aligned_in_smp = __RW_LOCK_UNLOCKED(name)
 +
 +#endif
-Index: linux-2.6/include/linux/spinlock_types_rt.h
+Index: linux-3.0/include/linux/spinlock_types_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/spinlock_types_rt.h
++++ linux-3.0/include/linux/spinlock_types_rt.h
 @@ -0,0 +1,49 @@
 +#ifndef __LINUX_SPINLOCK_TYPES_RT_H
 +#define __LINUX_SPINLOCK_TYPES_RT_H
@@ -24622,10 +24469,10 @@
 +	spinlock_t name __cacheline_aligned_in_smp = __SPIN_LOCK_UNLOCKED(name)
 +
 +#endif
-Index: linux-2.6/include/linux/mutex.h
+Index: linux-3.0/include/linux/mutex.h
 ===================================================================
---- linux-2.6.orig/include/linux/mutex.h
-+++ linux-2.6/include/linux/mutex.h
+--- linux-3.0.orig/include/linux/mutex.h
++++ linux-3.0/include/linux/mutex.h
 @@ -17,6 +17,17 @@
  
  #include <asm/atomic.h>
@@ -24668,10 +24515,10 @@
  extern int atomic_dec_and_mutex_lock(atomic_t *cnt, struct mutex *lock);
  
  #ifndef CONFIG_HAVE_ARCH_MUTEX_CPU_RELAX
-Index: linux-2.6/include/linux/mutex_rt.h
+Index: linux-3.0/include/linux/mutex_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/mutex_rt.h
++++ linux-3.0/include/linux/mutex_rt.h
 @@ -0,0 +1,84 @@
 +#ifndef __LINUX_MUTEX_RT_H
 +#define __LINUX_MUTEX_RT_H
@@ -24757,10 +24604,10 @@
 +} while (0)
 +
 +#endif
-Index: linux-2.6/include/linux/rwsem_rt.h
+Index: linux-3.0/include/linux/rwsem_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/rwsem_rt.h
++++ linux-3.0/include/linux/rwsem_rt.h
 @@ -0,0 +1,105 @@
 +#ifndef _LINUX_RWSEM_RT_H
 +#define _LINUX_RWSEM_RT_H
@@ -24867,10 +24714,10 @@
 +}
 +
 +#endif
-Index: linux-2.6/include/linux/rwlock_rt.h
+Index: linux-3.0/include/linux/rwlock_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/rwlock_rt.h
++++ linux-3.0/include/linux/rwlock_rt.h
 @@ -0,0 +1,123 @@
 +#ifndef __LINUX_RWLOCK_RT_H
 +#define __LINUX_RWLOCK_RT_H
@@ -24995,10 +24842,10 @@
 +	} while (0)
 +
 +#endif
-Index: linux-2.6/include/linux/spinlock.h
+Index: linux-3.0/include/linux/spinlock.h
 ===================================================================
---- linux-2.6.orig/include/linux/spinlock.h
-+++ linux-2.6/include/linux/spinlock.h
+--- linux-3.0.orig/include/linux/spinlock.h
++++ linux-3.0/include/linux/spinlock.h
 @@ -254,7 +254,11 @@ static inline void do_raw_spin_unlock(ra
  #define raw_spin_can_lock(lock)	(!raw_spin_is_locked(lock))
  
@@ -25030,10 +24877,10 @@
 +#endif /* !PREEMPT_RT_FULL */
 +
  #endif /* __LINUX_SPINLOCK_H */
-Index: linux-2.6/include/linux/spinlock_api_smp.h
+Index: linux-3.0/include/linux/spinlock_api_smp.h
 ===================================================================
---- linux-2.6.orig/include/linux/spinlock_api_smp.h
-+++ linux-2.6/include/linux/spinlock_api_smp.h
+--- linux-3.0.orig/include/linux/spinlock_api_smp.h
++++ linux-3.0/include/linux/spinlock_api_smp.h
 @@ -191,6 +191,8 @@ static inline int __raw_spin_trylock_bh(
  	return 0;
  }
@@ -25044,10 +24891,10 @@
 +#endif
  
  #endif /* __LINUX_SPINLOCK_API_SMP_H */
-Index: linux-2.6/include/linux/spinlock_rt.h
+Index: linux-3.0/include/linux/spinlock_rt.h
 ===================================================================
 --- /dev/null
-+++ linux-2.6/include/linux/spinlock_rt.h
++++ linux-3.0/include/linux/spinlock_rt.h
 @@ -0,0 +1,166 @@
 +#ifndef __LINUX_SPINLOCK_RT_H
 +#define __LINUX_SPINLOCK_RT_H
@@ -25183,7 +25030,7 @@
 +	} while (0)
 +
 +#define spin_trylock_bh(lock)	__cond_lock(lock, rt_spin_trylock_bh(lock))
-+#define spin_trylock_irq(lock)	__cond_lock(lock, rt_spin_trylock(lock))
++#define spin_trylock_irq(lock)	spin_trylock(lock)
 +
 +#define spin_trylock_irqsave(lock, flags)	\
 +	rt_spin_trylock_irqsave(lock, &(flags))
@@ -25215,10 +25062,10 @@
 +	atomic_dec_and_spin_lock(atomic, lock)
 +
 +#endif
-Index: linux-2.6/kernel/Makefile
+Index: linux-3.0/kernel/Makefile
 ===================================================================
---- linux-2.6.orig/kernel/Makefile
-+++ linux-2.6/kernel/Makefile
+--- linux-3.0.orig/kernel/Makefile
++++ linux-3.0/kernel/Makefile
 @@ -7,7 +7,7 @@ obj-y     = sched.o fork.o exec_domain.o
  	    sysctl.o sysctl_binary.o capability.o ptrace.o timer.o user.o \
  	    signal.o sys.o kmod.o workqueue.o pid.o \
@@ -25247,10 +25094,10 @@
  obj-$(CONFIG_GENERIC_ISA_DMA) += dma.o
  obj-$(CONFIG_SMP) += smp.o
  ifneq ($(CONFIG_SMP),y)
-Index: linux-2.6/kernel/rt.c
+Index: linux-3.0/kernel/rt.c
 ===================================================================
 --- /dev/null
-+++ linux-2.6/kernel/rt.c
++++ linux-3.0/kernel/rt.c
 @@ -0,0 +1,442 @@
 +/*
 + * kernel/rt.c
@@ -25694,10 +25541,10 @@
 +	return 1;
 +}
 +EXPORT_SYMBOL(atomic_dec_and_mutex_lock);
-Index: linux-2.6/kernel/spinlock.c
+Index: linux-3.0/kernel/spinlock.c
 ===================================================================
---- linux-2.6.orig/kernel/spinlock.c
-+++ linux-2.6/kernel/spinlock.c
+--- linux-3.0.orig/kernel/spinlock.c
++++ linux-3.0/kernel/spinlock.c
 @@ -110,8 +110,11 @@ void __lockfunc __raw_##op##_lock_bh(loc
   *         __[spin|read|write]_lock_bh()
   */
@@ -25728,10 +25575,10 @@
  #ifdef CONFIG_DEBUG_LOCK_ALLOC
  
  void __lockfunc _raw_spin_lock_nested(raw_spinlock_t *lock, int subclass)
-Index: linux-2.6/lib/spinlock_debug.c
+Index: linux-3.0/lib/spinlock_debug.c
 ===================================================================
---- linux-2.6.orig/lib/spinlock_debug.c
-+++ linux-2.6/lib/spinlock_debug.c
+--- linux-3.0.orig/lib/spinlock_debug.c
++++ linux-3.0/lib/spinlock_debug.c
 @@ -31,6 +31,7 @@ void __raw_spin_lock_init(raw_spinlock_t
  
  EXPORT_SYMBOL(__raw_spin_lock_init);
@@ -25764,10 +25611,10 @@
  }
 +
 +#endif
-Index: linux-2.6/include/linux/rcutree.h
+Index: linux-3.0/include/linux/rcutree.h
 ===================================================================
---- linux-2.6.orig/include/linux/rcutree.h
-+++ linux-2.6/include/linux/rcutree.h
+--- linux-3.0.orig/include/linux/rcutree.h
++++ linux-3.0/include/linux/rcutree.h
 @@ -57,7 +57,11 @@ static inline void exit_rcu(void)
  
  #endif /* #else #ifdef CONFIG_TREE_PREEMPT_RCU */
@@ -25802,10 +25649,10 @@
  /* A context switch is a grace period for RCU-sched and RCU-bh. */
  static inline int rcu_blocking_is_gp(void)
  {
-Index: linux-2.6/kernel/rcupdate.c
+Index: linux-3.0/kernel/rcupdate.c
 ===================================================================
---- linux-2.6.orig/kernel/rcupdate.c
-+++ linux-2.6/kernel/rcupdate.c
+--- linux-3.0.orig/kernel/rcupdate.c
++++ linux-3.0/kernel/rcupdate.c
 @@ -72,6 +72,7 @@ int debug_lockdep_rcu_enabled(void)
  }
  EXPORT_SYMBOL_GPL(debug_lockdep_rcu_enabled);
@@ -25822,10 +25669,10 @@
  
  #endif /* #ifdef CONFIG_DEBUG_LOCK_ALLOC */
  
-Index: linux-2.6/include/linux/lglock.h
+Index: linux-3.0/include/linux/lglock.h
 ===================================================================
---- linux-2.6.orig/include/linux/lglock.h
-+++ linux-2.6/include/linux/lglock.h
+--- linux-3.0.orig/include/linux/lglock.h
++++ linux-3.0/include/linux/lglock.h
 @@ -70,6 +70,9 @@
   extern void name##_global_lock_online(void);				\
   extern void name##_global_unlock_online(void);				\
@@ -25938,10 +25785,10 @@
 +#endif /* PRREMPT_RT_FULL */
 +
  #endif
-Index: linux-2.6/drivers/tty/serial/8250.c
+Index: linux-3.0/drivers/tty/serial/8250.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/serial/8250.c
-+++ linux-2.6/drivers/tty/serial/8250.c
+--- linux-3.0.orig/drivers/tty/serial/8250.c
++++ linux-3.0/drivers/tty/serial/8250.c
 @@ -38,6 +38,7 @@
  #include <linux/nmi.h>
  #include <linux/mutex.h>
@@ -25997,10 +25844,10 @@
  }
  
  static int __init serial8250_console_setup(struct console *co, char *options)
-Index: linux-2.6/drivers/tty/tty_buffer.c
+Index: linux-3.0/drivers/tty/tty_buffer.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/tty_buffer.c
-+++ linux-2.6/drivers/tty/tty_buffer.c
+--- linux-3.0.orig/drivers/tty/tty_buffer.c
++++ linux-3.0/drivers/tty/tty_buffer.c
 @@ -493,10 +493,14 @@ void tty_flip_buffer_push(struct tty_str
  		tty->buf.tail->commit = tty->buf.tail->used;
  	spin_unlock_irqrestore(&tty->buf.lock, flags);
@@ -26016,10 +25863,10 @@
  }
  EXPORT_SYMBOL(tty_flip_buffer_push);
  
-Index: linux-2.6/drivers/tty/serial/omap-serial.c
+Index: linux-3.0/drivers/tty/serial/omap-serial.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/serial/omap-serial.c
-+++ linux-2.6/drivers/tty/serial/omap-serial.c
+--- linux-3.0.orig/drivers/tty/serial/omap-serial.c
++++ linux-3.0/drivers/tty/serial/omap-serial.c
 @@ -946,13 +946,12 @@ serial_omap_console_write(struct console
  	unsigned int ier;
  	int locked = 1;
@@ -26046,10 +25893,10 @@
  }
  
  static int __init
-Index: linux-2.6/fs/namespace.c
+Index: linux-3.0/fs/namespace.c
 ===================================================================
---- linux-2.6.orig/fs/namespace.c
-+++ linux-2.6/fs/namespace.c
+--- linux-3.0.orig/fs/namespace.c
++++ linux-3.0/fs/namespace.c
 @@ -341,8 +341,14 @@ int mnt_want_write(struct vfsmount *mnt)
  	 * incremented count after it has set MNT_WRITE_HOLD.
  	 */
@@ -26076,10 +25923,10 @@
  	preempt_enable();
  	return ret;
  }
-Index: linux-2.6/fs/btrfs/locking.c
+Index: linux-3.0/fs/btrfs/locking.c
 ===================================================================
---- linux-2.6.orig/fs/btrfs/locking.c
-+++ linux-2.6/fs/btrfs/locking.c
+--- linux-3.0.orig/fs/btrfs/locking.c
++++ linux-3.0/fs/btrfs/locking.c
 @@ -93,6 +93,7 @@ static int btrfs_spin_on_block(struct ex
   */
  int btrfs_try_spin_lock(struct extent_buffer *eb)
@@ -26096,10 +25943,10 @@
  	return 0;
  }
  
-Index: linux-2.6/fs/exec.c
+Index: linux-3.0/fs/exec.c
 ===================================================================
---- linux-2.6.orig/fs/exec.c
-+++ linux-2.6/fs/exec.c
+--- linux-3.0.orig/fs/exec.c
++++ linux-3.0/fs/exec.c
 @@ -844,6 +844,7 @@ static int exec_mmap(struct mm_struct *m
  		}
  	}
@@ -26116,10 +25963,10 @@
  	task_unlock(tsk);
  	arch_pick_mmap_layout(mm);
  	if (old_mm) {
-Index: linux-2.6/mm/mmu_context.c
+Index: linux-3.0/mm/mmu_context.c
 ===================================================================
---- linux-2.6.orig/mm/mmu_context.c
-+++ linux-2.6/mm/mmu_context.c
+--- linux-3.0.orig/mm/mmu_context.c
++++ linux-3.0/mm/mmu_context.c
 @@ -26,6 +26,7 @@ void use_mm(struct mm_struct *mm)
  	struct task_struct *tsk = current;
  
@@ -26136,10 +25983,10 @@
  	task_unlock(tsk);
  
  	if (active_mm != mm)
-Index: linux-2.6/arch/x86/include/asm/stackprotector.h
+Index: linux-3.0/arch/x86/include/asm/stackprotector.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/stackprotector.h
-+++ linux-2.6/arch/x86/include/asm/stackprotector.h
+--- linux-3.0.orig/arch/x86/include/asm/stackprotector.h
++++ linux-3.0/arch/x86/include/asm/stackprotector.h
 @@ -58,7 +58,7 @@
   */
  static __always_inline void boot_init_stack_canary(void)
@@ -26166,10 +26013,10 @@
  	tsc = __native_read_tsc();
  	canary += tsc + (tsc << 32UL);
  
-Index: linux-2.6/arch/x86/Kconfig
+Index: linux-3.0/arch/x86/Kconfig
 ===================================================================
---- linux-2.6.orig/arch/x86/Kconfig
-+++ linux-2.6/arch/x86/Kconfig
+--- linux-3.0.orig/arch/x86/Kconfig
++++ linux-3.0/arch/x86/Kconfig
 @@ -152,10 +152,10 @@ config ARCH_MAY_HAVE_PC_FDC
  	def_bool ISA_DMA_API
  
@@ -26183,10 +26030,10 @@
  
  config ARCH_HAS_CPU_IDLE_WAIT
  	def_bool y
-Index: linux-2.6/arch/x86/include/asm/page_64_types.h
+Index: linux-3.0/arch/x86/include/asm/page_64_types.h
 ===================================================================
---- linux-2.6.orig/arch/x86/include/asm/page_64_types.h
-+++ linux-2.6/arch/x86/include/asm/page_64_types.h
+--- linux-3.0.orig/arch/x86/include/asm/page_64_types.h
++++ linux-3.0/arch/x86/include/asm/page_64_types.h
 @@ -14,12 +14,21 @@
  #define IRQ_STACK_ORDER 2
  #define IRQ_STACK_SIZE (PAGE_SIZE << IRQ_STACK_ORDER)
@@ -26215,10 +26062,10 @@
  
  #define PUD_PAGE_SIZE		(_AC(1, UL) << PUD_SHIFT)
  #define PUD_PAGE_MASK		(~(PUD_PAGE_SIZE-1))
-Index: linux-2.6/arch/x86/kernel/cpu/common.c
+Index: linux-3.0/arch/x86/kernel/cpu/common.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/common.c
-+++ linux-2.6/arch/x86/kernel/cpu/common.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/common.c
++++ linux-3.0/arch/x86/kernel/cpu/common.c
 @@ -1050,7 +1050,9 @@ DEFINE_PER_CPU(unsigned int, irq_count) 
   */
  static const unsigned int exception_stack_sizes[N_EXCEPTION_STACKS] = {
@@ -26229,10 +26076,10 @@
  };
  
  static DEFINE_PER_CPU_PAGE_ALIGNED(char, exception_stacks
-Index: linux-2.6/arch/x86/kernel/dumpstack_64.c
+Index: linux-3.0/arch/x86/kernel/dumpstack_64.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/dumpstack_64.c
-+++ linux-2.6/arch/x86/kernel/dumpstack_64.c
+--- linux-3.0.orig/arch/x86/kernel/dumpstack_64.c
++++ linux-3.0/arch/x86/kernel/dumpstack_64.c
 @@ -21,10 +21,14 @@
  		(N_EXCEPTION_STACKS + DEBUG_STKSZ/EXCEPTION_STKSZ - 2)
  
@@ -26248,10 +26095,10 @@
  		[ MCE_STACK-1			]	= "#MC",
  #if DEBUG_STKSZ > EXCEPTION_STKSZ
  		[ N_EXCEPTION_STACKS ...
-Index: linux-2.6/arch/x86/kernel/cpu/perf_event.c
+Index: linux-3.0/arch/x86/kernel/cpu/perf_event.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/perf_event.c
-+++ linux-2.6/arch/x86/kernel/cpu/perf_event.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/perf_event.c
++++ linux-3.0/arch/x86/kernel/cpu/perf_event.c
 @@ -142,6 +142,8 @@ struct cpu_hw_events {
  	 * AMD specific bits
  	 */
@@ -26285,10 +26132,10 @@
  	case CPU_DYING:
  		if (x86_pmu.cpu_dying)
  			x86_pmu.cpu_dying(cpu);
-Index: linux-2.6/arch/x86/kernel/cpu/perf_event_amd.c
+Index: linux-3.0/arch/x86/kernel/cpu/perf_event_amd.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/perf_event_amd.c
-+++ linux-2.6/arch/x86/kernel/cpu/perf_event_amd.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/perf_event_amd.c
++++ linux-3.0/arch/x86/kernel/cpu/perf_event_amd.c
 @@ -336,7 +336,7 @@ static void amd_pmu_cpu_starting(int cpu
  			continue;
  
@@ -26298,10 +26145,10 @@
  			cpuc->amd_nb = nb;
  			break;
  		}
-Index: linux-2.6/arch/x86/kernel/cpu/perf_event_intel.c
+Index: linux-3.0/arch/x86/kernel/cpu/perf_event_intel.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/cpu/perf_event_intel.c
-+++ linux-2.6/arch/x86/kernel/cpu/perf_event_intel.c
+--- linux-3.0.orig/arch/x86/kernel/cpu/perf_event_intel.c
++++ linux-3.0/arch/x86/kernel/cpu/perf_event_intel.c
 @@ -1267,7 +1267,7 @@ static void intel_pmu_cpu_starting(int c
  		struct intel_percore *pc = per_cpu(cpu_hw_events, i).per_core;
  
@@ -26311,11 +26158,11 @@
  			cpuc->per_core = pc;
  			break;
  		}
-Index: linux-2.6/fs/eventpoll.c
+Index: linux-3.0/fs/eventpoll.c
 ===================================================================
---- linux-2.6.orig/fs/eventpoll.c
-+++ linux-2.6/fs/eventpoll.c
-@@ -429,12 +429,12 @@ static int ep_poll_wakeup_proc(void *pri
+--- linux-3.0.orig/fs/eventpoll.c
++++ linux-3.0/fs/eventpoll.c
+@@ -438,12 +438,12 @@ static int ep_poll_wakeup_proc(void *pri
   */
  static void ep_poll_safewake(wait_queue_head_t *wq)
  {
@@ -26330,10 +26177,10 @@
  }
  
  /*
-Index: linux-2.6/mm/vmalloc.c
+Index: linux-3.0/mm/vmalloc.c
 ===================================================================
---- linux-2.6.orig/mm/vmalloc.c
-+++ linux-2.6/mm/vmalloc.c
+--- linux-3.0.orig/mm/vmalloc.c
++++ linux-3.0/mm/vmalloc.c
 @@ -789,7 +789,7 @@ static struct vmap_block *new_vmap_block
  	struct vmap_block *vb;
  	struct vmap_area *va;
@@ -26387,10 +26234,10 @@
  	rcu_read_unlock();
  
  	if (!addr) {
-Index: linux-2.6/include/linux/workqueue.h
+Index: linux-3.0/include/linux/workqueue.h
 ===================================================================
---- linux-2.6.orig/include/linux/workqueue.h
-+++ linux-2.6/include/linux/workqueue.h
+--- linux-3.0.orig/include/linux/workqueue.h
++++ linux-3.0/include/linux/workqueue.h
 @@ -254,9 +254,10 @@ enum {
  	WQ_MEM_RECLAIM		= 1 << 3, /* may be used for memory reclaim */
  	WQ_HIGHPRI		= 1 << 4, /* high priority */
@@ -26404,10 +26251,10 @@
  
  	WQ_MAX_ACTIVE		= 512,	  /* I like 512, better ideas? */
  	WQ_MAX_UNBOUND_PER_CPU	= 4,	  /* 4 * #cpus for unbound wq */
-Index: linux-2.6/lib/debugobjects.c
+Index: linux-3.0/lib/debugobjects.c
 ===================================================================
---- linux-2.6.orig/lib/debugobjects.c
-+++ linux-2.6/lib/debugobjects.c
+--- linux-3.0.orig/lib/debugobjects.c
++++ linux-3.0/lib/debugobjects.c
 @@ -306,7 +306,10 @@ __debug_object_init(void *addr, struct d
  	struct debug_obj *obj;
  	unsigned long flags;
@@ -26431,10 +26278,10 @@
  	return 0;
  free:
  	hlist_for_each_entry_safe(obj, node, tmp, &objects, node) {
-Index: linux-2.6/include/linux/jump_label.h
+Index: linux-3.0/include/linux/jump_label.h
 ===================================================================
---- linux-2.6.orig/include/linux/jump_label.h
-+++ linux-2.6/include/linux/jump_label.h
+--- linux-3.0.orig/include/linux/jump_label.h
++++ linux-3.0/include/linux/jump_label.h
 @@ -4,7 +4,7 @@
  #include <linux/types.h>
  #include <linux/compiler.h>
@@ -26444,10 +26291,10 @@
  
  struct jump_label_key {
  	atomic_t enabled;
-Index: linux-2.6/include/linux/netdevice.h
+Index: linux-3.0/include/linux/netdevice.h
 ===================================================================
---- linux-2.6.orig/include/linux/netdevice.h
-+++ linux-2.6/include/linux/netdevice.h
+--- linux-3.0.orig/include/linux/netdevice.h
++++ linux-3.0/include/linux/netdevice.h
 @@ -1764,6 +1764,7 @@ struct softnet_data {
  	unsigned		dropped;
  	struct sk_buff_head	input_pkt_queue;
@@ -26456,10 +26303,10 @@
  };
  
  static inline void input_queue_head_incr(struct softnet_data *sd)
-Index: linux-2.6/include/linux/skbuff.h
+Index: linux-3.0/include/linux/skbuff.h
 ===================================================================
---- linux-2.6.orig/include/linux/skbuff.h
-+++ linux-2.6/include/linux/skbuff.h
+--- linux-3.0.orig/include/linux/skbuff.h
++++ linux-3.0/include/linux/skbuff.h
 @@ -118,6 +118,7 @@ struct sk_buff_head {
  
  	__u32		qlen;
@@ -26481,10 +26328,10 @@
  static inline void skb_queue_head_init_class(struct sk_buff_head *list,
  		struct lock_class_key *class)
  {
-Index: linux-2.6/arch/x86/kernel/irq_work.c
+Index: linux-3.0/arch/x86/kernel/irq_work.c
 ===================================================================
---- linux-2.6.orig/arch/x86/kernel/irq_work.c
-+++ linux-2.6/arch/x86/kernel/irq_work.c
+--- linux-3.0.orig/arch/x86/kernel/irq_work.c
++++ linux-3.0/arch/x86/kernel/irq_work.c
 @@ -18,6 +18,7 @@ void smp_irq_work_interrupt(struct pt_re
  	irq_exit();
  }
@@ -26498,10 +26345,10 @@
  #endif
  }
 +#endif
-Index: linux-2.6/kernel/events/core.c
+Index: linux-3.0/kernel/events/core.c
 ===================================================================
---- linux-2.6.orig/kernel/events/core.c
-+++ linux-2.6/kernel/events/core.c
+--- linux-3.0.orig/kernel/events/core.c
++++ linux-3.0/kernel/events/core.c
 @@ -3916,9 +3916,15 @@ static bool perf_output_space(struct per
  
  static void perf_output_wakeup(struct perf_output_handle *handle)
@@ -26519,10 +26366,10 @@
  		handle->event->pending_wakeup = 1;
  		irq_work_queue(&handle->event->pending);
  	} else
-Index: linux-2.6/kernel/irq_work.c
+Index: linux-3.0/kernel/irq_work.c
 ===================================================================
---- linux-2.6.orig/kernel/irq_work.c
-+++ linux-2.6/kernel/irq_work.c
+--- linux-3.0.orig/kernel/irq_work.c
++++ linux-3.0/kernel/irq_work.c
 @@ -125,8 +125,10 @@ void irq_work_run(void)
  	if (this_cpu_read(irq_work_list) == NULL)
  		return;
@@ -26534,10 +26381,10 @@
  
  	list = this_cpu_xchg(irq_work_list, NULL);
  
-Index: linux-2.6/Documentation/sysrq.txt
+Index: linux-3.0/Documentation/sysrq.txt
 ===================================================================
---- linux-2.6.orig/Documentation/sysrq.txt
-+++ linux-2.6/Documentation/sysrq.txt
+--- linux-3.0.orig/Documentation/sysrq.txt
++++ linux-3.0/Documentation/sysrq.txt
 @@ -57,10 +57,17 @@ On PowerPC - Press 'ALT - Print Screen (
  On other - If you know of the key combos for other architectures, please
             let me know so I can add them to this section.
@@ -26558,10 +26405,10 @@
  *  What are the 'command' keys?
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  'b'     - Will immediately reboot the system without syncing or unmounting
-Index: linux-2.6/include/net/netns/ipv4.h
+Index: linux-3.0/include/net/netns/ipv4.h
 ===================================================================
---- linux-2.6.orig/include/net/netns/ipv4.h
-+++ linux-2.6/include/net/netns/ipv4.h
+--- linux-3.0.orig/include/net/netns/ipv4.h
++++ linux-3.0/include/net/netns/ipv4.h
 @@ -47,6 +47,7 @@ struct netns_ipv4 {
  
  	int sysctl_icmp_echo_ignore_all;
@@ -26570,10 +26417,10 @@
  	int sysctl_icmp_ignore_bogus_error_responses;
  	int sysctl_icmp_ratelimit;
  	int sysctl_icmp_ratemask;
-Index: linux-2.6/net/ipv4/icmp.c
+Index: linux-3.0/net/ipv4/icmp.c
 ===================================================================
---- linux-2.6.orig/net/ipv4/icmp.c
-+++ linux-2.6/net/ipv4/icmp.c
+--- linux-3.0.orig/net/ipv4/icmp.c
++++ linux-3.0/net/ipv4/icmp.c
 @@ -67,6 +67,7 @@
  #include <linux/jiffies.h>
  #include <linux/kernel.h>
@@ -26625,10 +26472,10 @@
  	}
  }
  
-Index: linux-2.6/net/ipv4/sysctl_net_ipv4.c
+Index: linux-3.0/net/ipv4/sysctl_net_ipv4.c
 ===================================================================
---- linux-2.6.orig/net/ipv4/sysctl_net_ipv4.c
-+++ linux-2.6/net/ipv4/sysctl_net_ipv4.c
+--- linux-3.0.orig/net/ipv4/sysctl_net_ipv4.c
++++ linux-3.0/net/ipv4/sysctl_net_ipv4.c
 @@ -694,6 +694,13 @@ static struct ctl_table ipv4_net_table[]
  		.proc_handler	= proc_dointvec
  	},
@@ -26643,10 +26490,10 @@
  		.procname	= "icmp_ignore_bogus_error_responses",
  		.data		= &init_net.ipv4.sysctl_icmp_ignore_bogus_error_responses,
  		.maxlen		= sizeof(int),
-Index: linux-2.6/include/linux/kdb.h
+Index: linux-3.0/include/linux/kdb.h
 ===================================================================
---- linux-2.6.orig/include/linux/kdb.h
-+++ linux-2.6/include/linux/kdb.h
+--- linux-3.0.orig/include/linux/kdb.h
++++ linux-3.0/include/linux/kdb.h
 @@ -153,12 +153,14 @@ extern int kdb_register(char *, kdb_func
  extern int kdb_register_repeat(char *, kdb_func_t, char *, char *,
  			       short, kdb_repeat_t);
@@ -26662,10 +26509,10 @@
  #endif	/* CONFIG_KGDB_KDB */
  enum {
  	KDB_NOT_INITIALIZED,
-Index: linux-2.6/kernel/debug/kdb/kdb_io.c
+Index: linux-3.0/kernel/debug/kdb/kdb_io.c
 ===================================================================
---- linux-2.6.orig/kernel/debug/kdb/kdb_io.c
-+++ linux-2.6/kernel/debug/kdb/kdb_io.c
+--- linux-3.0.orig/kernel/debug/kdb/kdb_io.c
++++ linux-3.0/kernel/debug/kdb/kdb_io.c
 @@ -539,7 +539,6 @@ int vkdb_printf(const char *fmt, va_list
  	int diag;
  	int linecount;
@@ -26703,10 +26550,10 @@
  
  	return r;
  }
-Index: linux-2.6/kernel/ksysfs.c
+Index: linux-3.0/kernel/ksysfs.c
 ===================================================================
---- linux-2.6.orig/kernel/ksysfs.c
-+++ linux-2.6/kernel/ksysfs.c
+--- linux-3.0.orig/kernel/ksysfs.c
++++ linux-3.0/kernel/ksysfs.c
 @@ -132,6 +132,15 @@ KERNEL_ATTR_RO(vmcoreinfo);
  
  #endif /* CONFIG_KEXEC */
@@ -26733,10 +26580,10 @@
  	NULL
  };
  
-Index: linux-2.6/ipc/sem.c
+Index: linux-3.0/ipc/sem.c
 ===================================================================
---- linux-2.6.orig/ipc/sem.c
-+++ linux-2.6/ipc/sem.c
+--- linux-3.0.orig/ipc/sem.c
++++ linux-3.0/ipc/sem.c
 @@ -415,6 +415,13 @@ undo:
  static void wake_up_sem_queue_prepare(struct list_head *pt,
  				struct sem_queue *q, int error)
@@ -26775,10 +26622,10 @@
  }
  
  static void unlink_queue(struct sem_array *sma, struct sem_queue *q)
-Index: linux-2.6/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+Index: linux-3.0/drivers/tty/serial/cpm_uart/cpm_uart_core.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/serial/cpm_uart/cpm_uart_core.c
-+++ linux-2.6/drivers/tty/serial/cpm_uart/cpm_uart_core.c
+--- linux-3.0.orig/drivers/tty/serial/cpm_uart/cpm_uart_core.c
++++ linux-3.0/drivers/tty/serial/cpm_uart/cpm_uart_core.c
 @@ -1225,7 +1225,7 @@ static void cpm_uart_console_write(struc
  {
  	struct uart_cpm_port *pinfo = &cpm_uart_ports[co->index];
@@ -26788,10 +26635,10 @@
  
  	if (unlikely(nolock)) {
  		local_irq_save(flags);
-Index: linux-2.6/drivers/tty/sysrq.c
+Index: linux-3.0/drivers/tty/sysrq.c
 ===================================================================
---- linux-2.6.orig/drivers/tty/sysrq.c
-+++ linux-2.6/drivers/tty/sysrq.c
+--- linux-3.0.orig/drivers/tty/sysrq.c
++++ linux-3.0/drivers/tty/sysrq.c
 @@ -492,6 +492,23 @@ static void __sysrq_put_key_op(int key, 
                  sysrq_key_table[i] = op_p;
  }
@@ -26836,10 +26683,10 @@
  	spin_unlock_irqrestore(&sysrq_key_table_lock, flags);
  }
  
-Index: linux-2.6/include/linux/sysrq.h
+Index: linux-3.0/include/linux/sysrq.h
 ===================================================================
---- linux-2.6.orig/include/linux/sysrq.h
-+++ linux-2.6/include/linux/sysrq.h
+--- linux-3.0.orig/include/linux/sysrq.h
++++ linux-3.0/include/linux/sysrq.h
 @@ -38,6 +38,11 @@ struct sysrq_key_op {
  	int enable_mask;
  };
@@ -26852,10 +26699,137 @@
  #ifdef CONFIG_MAGIC_SYSRQ
  
  /* Generic SysRq interface -- you may call it from any device driver, supplying
-Index: linux-2.6/arch/Kconfig
+Index: linux-3.0/arch/x86/kvm/x86.c
+===================================================================
+--- linux-3.0.orig/arch/x86/kvm/x86.c
++++ linux-3.0/arch/x86/kvm/x86.c
+@@ -4900,6 +4900,13 @@ int kvm_arch_init(void *opaque)
+ 		goto out;
+ 	}
+ 
++#ifdef CONFIG_PREEMPT_RT_FULL
++	if (!boot_cpu_has(X86_FEATURE_CONSTANT_TSC)) {
++		printk(KERN_ERR "RT requires X86_FEATURE_CONSTANT_TSC\n");
++		return -EOPNOTSUPP;
++	}
++#endif
++
+ 	r = kvm_mmu_module_init();
+ 	if (r)
+ 		goto out;
+Index: linux-3.0/drivers/scsi/fcoe/fcoe.c
+===================================================================
+--- linux-3.0.orig/drivers/scsi/fcoe/fcoe.c
++++ linux-3.0/drivers/scsi/fcoe/fcoe.c
+@@ -1113,7 +1113,7 @@ static void fcoe_percpu_thread_destroy(u
+ 	struct sk_buff *skb;
+ #ifdef CONFIG_SMP
+ 	struct fcoe_percpu_s *p0;
+-	unsigned targ_cpu = get_cpu();
++	unsigned targ_cpu = get_cpu_light();
+ #endif /* CONFIG_SMP */
+ 
+ 	FCOE_DBG("Destroying receive thread for CPU %d\n", cpu);
+@@ -1169,7 +1169,7 @@ static void fcoe_percpu_thread_destroy(u
+ 			kfree_skb(skb);
+ 		spin_unlock_bh(&p->fcoe_rx_list.lock);
+ 	}
+-	put_cpu();
++	put_cpu_light();
+ #else
+ 	/*
+ 	 * This a non-SMP scenario where the singular Rx thread is
+@@ -1365,11 +1365,11 @@ err2:
+ static int fcoe_alloc_paged_crc_eof(struct sk_buff *skb, int tlen)
+ {
+ 	struct fcoe_percpu_s *fps;
+-	int rc;
++	int rc, cpu = get_cpu_light();
+ 
+-	fps = &get_cpu_var(fcoe_percpu);
++	fps = &per_cpu(fcoe_percpu, cpu);
+ 	rc = fcoe_get_paged_crc_eof(skb, tlen, fps);
+-	put_cpu_var(fcoe_percpu);
++	put_cpu_light();
+ 
+ 	return rc;
+ }
+@@ -1561,6 +1561,7 @@ static inline int fcoe_filter_frames(str
+ 	stats->InvalidCRCCount++;
+ 	if (stats->InvalidCRCCount < 5)
+ 		printk(KERN_WARNING "fcoe: dropping frame with CRC error\n");
++	put_cpu();
+ 	return -EINVAL;
+ }
+ 
+@@ -1605,7 +1606,7 @@ static void fcoe_recv_frame(struct sk_bu
+ 	 */
+ 	hp = (struct fcoe_hdr *) skb_network_header(skb);
+ 
+-	stats = per_cpu_ptr(lport->dev_stats, get_cpu());
++	stats = per_cpu_ptr(lport->dev_stats, get_cpu_light());
+ 	if (unlikely(FC_FCOE_DECAPS_VER(hp) != FC_FCOE_VER)) {
+ 		if (stats->ErrorFrames < 5)
+ 			printk(KERN_WARNING "fcoe: FCoE version "
+@@ -1637,13 +1638,13 @@ static void fcoe_recv_frame(struct sk_bu
+ 		goto drop;
+ 
+ 	if (!fcoe_filter_frames(lport, fp)) {
+-		put_cpu();
++		put_cpu_light();
+ 		fc_exch_recv(lport, fp);
+ 		return;
+ 	}
+ drop:
+ 	stats->ErrorFrames++;
+-	put_cpu();
++	put_cpu_light();
+ 	kfree_skb(skb);
+ }
+ 
+Index: linux-3.0/drivers/scsi/fcoe/fcoe_ctlr.c
+===================================================================
+--- linux-3.0.orig/drivers/scsi/fcoe/fcoe_ctlr.c
++++ linux-3.0/drivers/scsi/fcoe/fcoe_ctlr.c
+@@ -716,7 +716,7 @@ static unsigned long fcoe_ctlr_age_fcfs(
+ 	unsigned long sel_time = 0;
+ 	struct fcoe_dev_stats *stats;
+ 
+-	stats = per_cpu_ptr(fip->lp->dev_stats, get_cpu());
++	stats = per_cpu_ptr(fip->lp->dev_stats, get_cpu_light());
+ 
+ 	list_for_each_entry_safe(fcf, next, &fip->fcfs, list) {
+ 		deadline = fcf->time + fcf->fka_period + fcf->fka_period / 2;
+@@ -749,7 +749,7 @@ static unsigned long fcoe_ctlr_age_fcfs(
+ 				sel_time = fcf->time;
+ 		}
+ 	}
+-	put_cpu();
++	put_cpu_light();
+ 	if (sel_time && !fip->sel_fcf && !fip->sel_time) {
+ 		sel_time += msecs_to_jiffies(FCOE_CTLR_START_DELAY);
+ 		fip->sel_time = sel_time;
+Index: linux-3.0/drivers/scsi/libfc/fc_exch.c
+===================================================================
+--- linux-3.0.orig/drivers/scsi/libfc/fc_exch.c
++++ linux-3.0/drivers/scsi/libfc/fc_exch.c
+@@ -705,10 +705,10 @@ static struct fc_exch *fc_exch_em_alloc(
+ 	}
+ 	memset(ep, 0, sizeof(*ep));
+ 
+-	cpu = get_cpu();
++	cpu = get_cpu_light();
+ 	pool = per_cpu_ptr(mp->pool, cpu);
+ 	spin_lock_bh(&pool->lock);
+-	put_cpu();
++	put_cpu_light();
+ 
+ 	/* peek cache of free slot */
+ 	if (pool->left != FC_XID_UNKNOWN) {
+Index: linux-3.0/arch/Kconfig
 ===================================================================
---- linux-2.6.orig/arch/Kconfig
-+++ linux-2.6/arch/Kconfig
+--- linux-3.0.orig/arch/Kconfig
++++ linux-3.0/arch/Kconfig
 @@ -6,6 +6,7 @@ config OPROFILE
  	tristate "OProfile system profiling"
  	depends on PROFILING
@@ -26864,10 +26838,10 @@
  	select RING_BUFFER
  	select RING_BUFFER_ALLOW_SWAP
  	help
-Index: linux-2.6/drivers/net/Kconfig
+Index: linux-3.0/drivers/net/Kconfig
 ===================================================================
---- linux-2.6.orig/drivers/net/Kconfig
-+++ linux-2.6/drivers/net/Kconfig
+--- linux-3.0.orig/drivers/net/Kconfig
++++ linux-3.0/drivers/net/Kconfig
 @@ -3410,6 +3410,7 @@ config NET_FC
  
  config NETCONSOLE
@@ -26876,10 +26850,10 @@
  	---help---
  	If you want to log kernel messages over the network, enable this.
  	See <file:Documentation/networking/netconsole.txt> for details.
-Index: linux-2.6/mm/Kconfig
+Index: linux-3.0/mm/Kconfig
 ===================================================================
---- linux-2.6.orig/mm/Kconfig
-+++ linux-2.6/mm/Kconfig
+--- linux-3.0.orig/mm/Kconfig
++++ linux-3.0/mm/Kconfig
 @@ -304,7 +304,7 @@ config NOMMU_INITIAL_TRIM_EXCESS
  
  config TRANSPARENT_HUGEPAGE
@@ -26889,20 +26863,20 @@
  	select COMPACTION
  	help
  	  Transparent Hugepages allows the kernel to use huge pages and
-Index: linux-2.6/init/Makefile
+Index: linux-3.0/init/Makefile
 ===================================================================
---- linux-2.6.orig/init/Makefile
-+++ linux-2.6/init/Makefile
+--- linux-3.0.orig/init/Makefile
++++ linux-3.0/init/Makefile
 @@ -29,4 +29,4 @@ silent_chk_compile.h = :
  include/generated/compile.h: FORCE
  	@$($(quiet)chk_compile.h)
  	$(Q)$(CONFIG_SHELL) $(srctree)/scripts/mkcompile_h $@ \
 -	"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CC) $(KBUILD_CFLAGS)"
 +	"$(UTS_MACHINE)" "$(CONFIG_SMP)" "$(CONFIG_PREEMPT)" "$(CONFIG_PREEMPT_RT_FULL)" "$(CC) $(KBUILD_CFLAGS)"
-Index: linux-2.6/scripts/mkcompile_h
+Index: linux-3.0/scripts/mkcompile_h
 ===================================================================
---- linux-2.6.orig/scripts/mkcompile_h
-+++ linux-2.6/scripts/mkcompile_h
+--- linux-3.0.orig/scripts/mkcompile_h
++++ linux-3.0/scripts/mkcompile_h
 @@ -4,7 +4,8 @@ TARGET=$1
  ARCH=$2
  SMP=$3

Added: dists/sid/linux-2.6/debian/patches/series/7-extra
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ dists/sid/linux-2.6/debian/patches/series/7-extra	Sun Nov 13 14:21:26 2011	(r18253)
@@ -0,0 +1 @@
++ features/all/rt/patch-3.0.9-rt25.patch featureset=rt



More information about the Kernel-svn-changes mailing list