Drop fixes in rt feature patch that are also in 3.0.5

svn path=/dists/sid/linux-2.6/; revision=18149
This commit is contained in:
Ben Hutchings 2011-10-05 00:55:33 +00:00
parent 168366a145
commit 57f407b53b
1 changed files with 27 additions and 131 deletions

View File

@ -1,23 +1,7 @@
Index: linux-2.6/arch/arm/plat-mxc/include/mach/iomux-v3.h [bwh: Dropped fixes to arch/arm/plat-mxc/include/mach/iomux-v3.h,
=================================================================== drivers/pci/dmar.c, drivers/block/floppy.c, kernel/sched.c that were
--- linux-2.6.orig/arch/arm/plat-mxc/include/mach/iomux-v3.h also included in 3.0.5.]
+++ linux-2.6/arch/arm/plat-mxc/include/mach/iomux-v3.h
@@ -66,7 +66,6 @@ typedef u64 iomux_v3_cfg_t;
#define MUX_MODE_MASK ((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT)
#define MUX_PAD_CTRL_SHIFT 41
#define MUX_PAD_CTRL_MASK ((iomux_v3_cfg_t)0x1ffff << MUX_PAD_CTRL_SHIFT)
-#define NO_PAD_CTRL ((iomux_v3_cfg_t)1 << (MUX_PAD_CTRL_SHIFT + 16))
#define MUX_SEL_INPUT_SHIFT 58
#define MUX_SEL_INPUT_MASK ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT)
@@ -85,6 +84,7 @@ typedef u64 iomux_v3_cfg_t;
* Use to set PAD control
*/
+#define NO_PAD_CTRL (1 << 16)
#define PAD_CTL_DVS (1 << 13)
#define PAD_CTL_HYS (1 << 8)
Index: linux-2.6/mm/memory.c Index: linux-2.6/mm/memory.c
=================================================================== ===================================================================
--- linux-2.6.orig/mm/memory.c --- linux-2.6.orig/mm/memory.c
@ -1168,15 +1152,6 @@ Index: linux-2.6/drivers/pci/dmar.c
return IRQ_HANDLED; return IRQ_HANDLED;
} }
@@ -1388,7 +1388,7 @@ int dmar_set_interrupt(struct intel_iomm
return ret;
}
- ret = request_irq(irq, dmar_fault, 0, iommu->name, iommu);
+ ret = request_irq(irq, dmar_fault, IRQF_NO_THREAD, iommu->name, iommu);
if (ret)
printk(KERN_ERR "IOMMU: can't request irq\n");
return ret;
Index: linux-2.6/kernel/trace/ftrace.c Index: linux-2.6/kernel/trace/ftrace.c
=================================================================== ===================================================================
--- linux-2.6.orig/kernel/trace/ftrace.c --- linux-2.6.orig/kernel/trace/ftrace.c
@ -1278,46 +1253,6 @@ Index: linux-2.6/kernel/trace/ftrace.c
mutex_unlock(&ftrace_lock); mutex_unlock(&ftrace_lock);
} }
free_ftrace_hash(iter->hash); free_ftrace_hash(iter->hash);
Index: linux-2.6/drivers/block/floppy.c
===================================================================
--- linux-2.6.orig/drivers/block/floppy.c
+++ linux-2.6/drivers/block/floppy.c
@@ -4250,7 +4250,7 @@ static int __init floppy_init(void)
use_virtual_dma = can_use_virtual_dma & 1;
fdc_state[0].address = FDC1;
if (fdc_state[0].address == -1) {
- del_timer(&fd_timeout);
+ del_timer_sync(&fd_timeout);
err = -ENODEV;
goto out_unreg_region;
}
@@ -4261,7 +4261,7 @@ static int __init floppy_init(void)
fdc = 0; /* reset fdc in case of unexpected interrupt */
err = floppy_grab_irq_and_dma();
if (err) {
- del_timer(&fd_timeout);
+ del_timer_sync(&fd_timeout);
err = -EBUSY;
goto out_unreg_region;
}
@@ -4318,7 +4318,7 @@ static int __init floppy_init(void)
user_reset_fdc(-1, FD_RESET_ALWAYS, false);
}
fdc = 0;
- del_timer(&fd_timeout);
+ del_timer_sync(&fd_timeout);
current_drive = 0;
initialized = true;
if (have_no_fdc) {
@@ -4368,7 +4368,7 @@ out_unreg_blkdev:
unregister_blkdev(FLOPPY_MAJOR, "fd");
out_put_disk:
while (dr--) {
- del_timer(&motor_off_timer[dr]);
+ del_timer_sync(&motor_off_timer[dr]);
if (disks[dr]->queue)
blk_cleanup_queue(disks[dr]->queue);
put_disk(disks[dr]);
Index: linux-2.6/drivers/gpu/drm/drm_irq.c Index: linux-2.6/drivers/gpu/drm/drm_irq.c
=================================================================== ===================================================================
--- linux-2.6.orig/drivers/gpu/drm/drm_irq.c --- linux-2.6.orig/drivers/gpu/drm/drm_irq.c
@ -1589,19 +1524,7 @@ Index: linux-2.6/kernel/sched.c
if (unlikely(prev_state == TASK_DEAD)) { if (unlikely(prev_state == TASK_DEAD)) {
/* /*
* Remove function-return probe instances associated with this * Remove function-return probe instances associated with this
@@ -4242,9 +4243,9 @@ pick_next_task(struct rq *rq) @@ -4272,19 +4273,6 @@ need_resched:
}
/*
- * schedule() is the main scheduler function.
+ * __schedule() is the main scheduler function.
*/
-asmlinkage void __sched schedule(void)
+static void __sched __schedule(void)
{
struct task_struct *prev, *next;
unsigned long *switch_count;
@@ -4272,29 +4273,6 @@ need_resched:
} else { } else {
deactivate_task(rq, prev, DEQUEUE_SLEEP); deactivate_task(rq, prev, DEQUEUE_SLEEP);
prev->on_rq = 0; prev->on_rq = 0;
@ -1617,21 +1540,11 @@ Index: linux-2.6/kernel/sched.c
- to_wakeup = wq_worker_sleeping(prev, cpu); - to_wakeup = wq_worker_sleeping(prev, cpu);
- if (to_wakeup) - if (to_wakeup)
- try_to_wake_up_local(to_wakeup); - try_to_wake_up_local(to_wakeup);
- }
-
- /*
- * If we are going to sleep and we have plugged IO
- * queued, make sure to submit it to avoid deadlocks.
- */
- if (blk_needs_flush_plug(prev)) {
- raw_spin_unlock(&rq->lock);
- blk_schedule_flush_plug(prev);
- raw_spin_lock(&rq->lock);
- } - }
} }
switch_count = &prev->nvcsw; switch_count = &prev->nvcsw;
} }
@@ -4328,12 +4306,62 @@ need_resched: @@ -4328,32 +4306,62 @@ need_resched:
post_schedule(rq); post_schedule(rq);
@ -1640,11 +1553,12 @@ Index: linux-2.6/kernel/sched.c
if (need_resched()) if (need_resched())
goto need_resched; goto need_resched;
} }
+
+static inline void sched_submit_work(struct task_struct *tsk) static inline void sched_submit_work(struct task_struct *tsk)
+{ {
- if (!tsk->state)
+ if (!tsk->state || tsk_is_pi_blocked(tsk)) + if (!tsk->state || tsk_is_pi_blocked(tsk))
+ return; return;
+ +
+ /* + /*
+ * If a worker went to sleep, notify and ask workqueue whether + * If a worker went to sleep, notify and ask workqueue whether
@ -1653,14 +1567,14 @@ Index: linux-2.6/kernel/sched.c
+ if (tsk->flags & PF_WQ_WORKER) + if (tsk->flags & PF_WQ_WORKER)
+ wq_worker_sleeping(tsk); + wq_worker_sleeping(tsk);
+ +
+ /* /*
+ * If we are going to sleep and we have plugged IO queued, * If we are going to sleep and we have plugged IO queued,
+ * make sure to submit it to avoid deadlocks. * make sure to submit it to avoid deadlocks.
+ */ */
+ if (blk_needs_flush_plug(tsk)) if (blk_needs_flush_plug(tsk))
+ blk_schedule_flush_plug(tsk); blk_schedule_flush_plug(tsk);
+} }
+
+static inline void sched_update_worker(struct task_struct *tsk) +static inline void sched_update_worker(struct task_struct *tsk)
+{ +{
+ if (tsk_is_pi_blocked(tsk)) + if (tsk_is_pi_blocked(tsk))
@ -1670,14 +1584,14 @@ Index: linux-2.6/kernel/sched.c
+ wq_worker_running(tsk); + wq_worker_running(tsk);
+} +}
+ +
+asmlinkage void schedule(void) asmlinkage void schedule(void)
+{ {
+ struct task_struct *tsk = current; struct task_struct *tsk = current;
+
+ sched_submit_work(tsk); sched_submit_work(tsk);
+ __schedule(); __schedule();
+ sched_update_worker(tsk); + sched_update_worker(tsk);
+} }
EXPORT_SYMBOL(schedule); EXPORT_SYMBOL(schedule);
+/** +/**
@ -1695,24 +1609,6 @@ Index: linux-2.6/kernel/sched.c
#ifdef CONFIG_MUTEX_SPIN_ON_OWNER #ifdef CONFIG_MUTEX_SPIN_ON_OWNER
static inline bool owner_running(struct mutex *lock, struct task_struct *owner) static inline bool owner_running(struct mutex *lock, struct task_struct *owner)
@@ -4405,7 +4433,7 @@ asmlinkage void __sched notrace preempt_
do {
add_preempt_count_notrace(PREEMPT_ACTIVE);
- schedule();
+ __schedule();
sub_preempt_count_notrace(PREEMPT_ACTIVE);
/*
@@ -4433,7 +4461,7 @@ asmlinkage void __sched preempt_schedule
do {
add_preempt_count(PREEMPT_ACTIVE);
local_irq_enable();
- schedule();
+ __schedule();
local_irq_disable();
sub_preempt_count(PREEMPT_ACTIVE);
@@ -4828,9 +4856,8 @@ long __sched sleep_on_timeout(wait_queue @@ -4828,9 +4856,8 @@ long __sched sleep_on_timeout(wait_queue
EXPORT_SYMBOL(sleep_on_timeout); EXPORT_SYMBOL(sleep_on_timeout);
@ -1798,7 +1694,7 @@ Index: linux-2.6/kernel/sched.c
static void __cond_resched(void) static void __cond_resched(void)
{ {
- add_preempt_count(PREEMPT_ACTIVE); - add_preempt_count(PREEMPT_ACTIVE);
- schedule(); - __schedule();
- sub_preempt_count(PREEMPT_ACTIVE); - sub_preempt_count(PREEMPT_ACTIVE);
+ do { + do {
+ add_preempt_count(PREEMPT_ACTIVE); + add_preempt_count(PREEMPT_ACTIVE);