[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, ¶m);
-+ 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 = ¤t->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, ¶m);
++ 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