SOURCES: kernel-desktop-preempt-rt.patch - sync with patch-2.6.17-rt1
sparky
sparky at pld-linux.org
Sun Jun 18 15:47:09 CEST 2006
Author: sparky Date: Sun Jun 18 13:47:09 2006 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- sync with patch-2.6.17-rt1
---- Files affected:
SOURCES:
kernel-desktop-preempt-rt.patch (1.9 -> 1.10)
---- Diffs:
================================================================
Index: SOURCES/kernel-desktop-preempt-rt.patch
diff -u SOURCES/kernel-desktop-preempt-rt.patch:1.9 SOURCES/kernel-desktop-preempt-rt.patch:1.10
--- SOURCES/kernel-desktop-preempt-rt.patch:1.9 Thu Jun 15 20:51:03 2006
+++ SOURCES/kernel-desktop-preempt-rt.patch Sun Jun 18 15:47:04 2006
@@ -3925,17 +3925,7 @@
#include <asm/system.h>
#include <asm/hardware.h>
-@@ -114,8 +115,7 @@ void __init versatile_init_irq(void)
-
- vic_init(VA_VIC_BASE, IRQ_VIC_START, ~(1 << 31));
-
-- set_irq_handler(IRQ_VICSOURCE31, sic_handle_irq);
-- enable_irq(IRQ_VICSOURCE31);
-+ set_irq_chained_handler(IRQ_VICSOURCE31, sic_handle_irq);
-
- /* Do second interrupt controller */
- writel(~0, VA_SIC_BASE + SIC_IRQ_ENABLE_CLEAR);
-@@ -813,46 +813,6 @@ void __init versatile_init(void)
+@@ -812,46 +813,6 @@ void __init versatile_init(void)
#endif
/*
@@ -3982,7 +3972,7 @@
* IRQ handler for the timer
*/
static irqreturn_t versatile_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-@@ -915,5 +875,36 @@ static void __init versatile_timer_init(
+@@ -914,5 +875,36 @@ static void __init versatile_timer_init(
struct sys_timer versatile_timer = {
.init = versatile_timer_init,
@@ -6541,7 +6531,7 @@
===================================================================
--- linux.orig/arch/i386/kernel/setup.c
+++ linux/arch/i386/kernel/setup.c
-@@ -1580,6 +1580,7 @@ void __init setup_arch(char **cmdline_p)
+@@ -1583,6 +1583,7 @@ void __init setup_arch(char **cmdline_p)
conswitchp = &dummy_con;
#endif
#endif
@@ -14624,7 +14614,7 @@
===================================================================
--- linux.orig/arch/powerpc/platforms/pseries/setup.c
+++ linux/arch/powerpc/platforms/pseries/setup.c
-@@ -434,7 +434,8 @@ static void pseries_dedicated_idle_sleep
+@@ -442,7 +442,8 @@ static void pseries_dedicated_idle_sleep
set_thread_flag(TIF_POLLING_NRFLAG);
while (get_tb() < start_snooze) {
@@ -14634,7 +14624,7 @@
goto out;
ppc64_runlatch_off();
HMT_low();
-@@ -445,7 +446,8 @@ static void pseries_dedicated_idle_sleep
+@@ -453,7 +454,8 @@ static void pseries_dedicated_idle_sleep
clear_thread_flag(TIF_POLLING_NRFLAG);
smp_mb();
local_irq_disable();
@@ -16720,7 +16710,7 @@
static void mask_IO_APIC_irq (unsigned int irq)
{
-@@ -837,30 +838,27 @@ next:
+@@ -857,30 +858,27 @@ next:
}
extern void (*interrupt[NR_IRQS])(void);
@@ -16766,7 +16756,7 @@
}
static void __init setup_IO_APIC_irqs(void)
-@@ -961,7 +959,7 @@ static void __init setup_ExtINT_IRQ0_pin
+@@ -981,7 +979,7 @@ static void __init setup_ExtINT_IRQ0_pin
* The timer IRQ doesn't have to know that behind the
* scene we have a 8259A-master in AEOI mode ...
*/
@@ -16775,7 +16765,7 @@
/*
* Add it to the IO-APIC irq-routing table:
-@@ -1476,7 +1474,7 @@ static int __init timer_irq_works(void)
+@@ -1496,7 +1494,7 @@ static int __init timer_irq_works(void)
* an edge even if it isn't on the 8259A...
*/
@@ -16784,7 +16774,7 @@
{
int was_pending = 0;
unsigned long flags;
-@@ -1493,86 +1491,21 @@ static unsigned int startup_edge_ioapic_
+@@ -1513,86 +1511,21 @@ static unsigned int startup_edge_ioapic_
return was_pending;
}
@@ -16875,7 +16865,7 @@
{
int irq = vector_to_irq(vector);
-@@ -1589,7 +1522,15 @@ static void set_ioapic_affinity_vector (
+@@ -1609,7 +1542,15 @@ static void set_ioapic_affinity_vector (
set_ioapic_affinity_irq(irq, cpu_mask);
}
#endif // CONFIG_SMP
@@ -16892,7 +16882,7 @@
/*
* Level and edge triggered IO-APIC interrupts need different handling,
-@@ -1600,30 +1541,22 @@ static void set_ioapic_affinity_vector (
+@@ -1620,30 +1561,22 @@ static void set_ioapic_affinity_vector (
* races.
*/
@@ -16936,7 +16926,7 @@
};
static inline void init_IO_APIC_traps(void)
-@@ -1658,42 +1591,32 @@ static inline void init_IO_APIC_traps(vo
+@@ -1678,42 +1611,32 @@ static inline void init_IO_APIC_traps(vo
make_8259A_irq(irq);
else
/* Strange. Oh, well.. */
@@ -16989,7 +16979,7 @@
};
static void setup_nmi (void)
-@@ -1875,7 +1798,7 @@ static inline void check_timer(void)
+@@ -1895,7 +1818,7 @@ static inline void check_timer(void)
apic_printk(APIC_VERBOSE, KERN_INFO "...trying to set up timer as Virtual Wire IRQ...");
disable_8259A_irq(0);
@@ -34711,7 +34701,7 @@
if (unlikely(in_interrupt()))
panic("Aiee, killing interrupt handler!");
if (unlikely(!tsk->pid))
-@@ -938,9 +945,18 @@ fastcall NORET_TYPE void do_exit(long co
+@@ -930,9 +937,18 @@ fastcall NORET_TYPE void do_exit(long co
tsk->mempolicy = NULL;
#endif
/*
@@ -34730,7 +34720,7 @@
if (tsk->io_context)
exit_io_context();
-@@ -949,14 +965,18 @@ fastcall NORET_TYPE void do_exit(long co
+@@ -941,14 +957,18 @@ fastcall NORET_TYPE void do_exit(long co
__free_pipe_info(tsk->splice_pipe);
/* PF_DEAD causes final put_task_struct after we schedule. */
@@ -34754,7 +34744,7 @@
}
EXPORT_SYMBOL_GPL(do_exit);
-@@ -1451,6 +1471,7 @@ repeat:
+@@ -1443,6 +1463,7 @@ repeat:
list_for_each(_p,&tsk->children) {
p = list_entry(_p,struct task_struct,sibling);
@@ -37612,7 +37602,7 @@
===================================================================
--- /dev/null
+++ linux/kernel/irq/chip.c
-@@ -0,0 +1,562 @@
+@@ -0,0 +1,548 @@
+/*
+ * linux/kernel/irq/chip.c
+ *
@@ -37823,15 +37813,8 @@
+
+ spin_lock(&desc->lock);
+
-+ if (unlikely(desc->status & IRQ_INPROGRESS)) {
-+ static int once = 0;
-+ if (!once) {
-+ once = 1;
-+ printk(KERN_WARNING "handle_simple_irq reentered while "
-+ "processing irq %d\n", irq);
-+ }
++ if (unlikely(desc->status & IRQ_INPROGRESS))
+ goto out_unlock;
-+ }
+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
+ kstat_cpu(cpu).irqs[irq]++;
+
@@ -37878,15 +37861,8 @@
+ spin_lock(&desc->lock);
+ mask_ack_irq(desc, irq);
+
-+ if (unlikely(desc->status & IRQ_INPROGRESS)) {
-+ static int once = 0;
-+ if (!once) {
-+ once = 1;
-+ printk(KERN_WARNING "handle_level_irq reentered while "
-+ "processing irq %d\n", irq);
-+ }
++ if (unlikely(desc->status & IRQ_INPROGRESS))
+ goto out;
-+ }
+ desc->status &= ~(IRQ_REPLAY | IRQ_WAITING);
+ kstat_cpu(cpu).irqs[irq]++;
+
@@ -42662,7 +42638,7 @@
}
if (error)
-@@ -562,7 +564,7 @@ static void arm_timer(struct k_itimer *t
+@@ -559,7 +561,7 @@ static void arm_timer(struct k_itimer *t
p->cpu_timers : p->signal->cpu_timers);
head += CPUCLOCK_WHICH(timer->it_clock);
@@ -42671,7 +42647,7 @@
spin_lock(&p->sighand->siglock);
listpos = head;
-@@ -719,7 +721,7 @@ int posix_cpu_timer_set(struct k_itimer
+@@ -716,7 +718,7 @@ int posix_cpu_timer_set(struct k_itimer
/*
* Disarm any old timer after extracting its expiry time.
*/
@@ -42680,16 +42656,7 @@
ret = 0;
spin_lock(&p->sighand->siglock);
-@@ -1196,7 +1198,7 @@ static void check_process_timers(struct
-
- do {
- t = next_thread(t);
-- } while (unlikely(t->flags & PF_EXITING));
-+ } while ((t != tsk) && unlikely(t->flags & PF_EXITING));
- } while (t != tsk);
- }
- }
-@@ -1271,12 +1273,11 @@ out:
+@@ -1267,12 +1269,11 @@ out:
* already updated our counts. We need to check if any timers fire now.
* Interrupts are disabled.
*/
@@ -42703,7 +42670,7 @@
#define UNEXPIRED(clock) \
(cputime_eq(tsk->it_##clock##_expires, cputime_zero) || \
-@@ -1339,6 +1340,169 @@ void run_posix_cpu_timers(struct task_st
+@@ -1335,6 +1336,169 @@ void run_posix_cpu_timers(struct task_st
}
}
@@ -42873,7 +42840,7 @@
/*
* Set one of the process-wide special case CPU timers.
* The tasklist_lock and tsk->sighand->siglock must be held by the caller.
-@@ -1565,6 +1729,12 @@ static __init int init_posix_cpu_timers(
+@@ -1561,6 +1725,12 @@ static __init int init_posix_cpu_timers(
.timer_create = thread_cpu_timer_create,
.nsleep = thread_cpu_nsleep,
};
@@ -49687,7 +49654,7 @@
if (!(lock)->break_lock) \
(lock)->break_lock = 1; \
- while (!op##_can_lock(lock) && (lock)->break_lock) \
-+ while (!__raw_op##_can_lock(lock) && \
++ while (!__raw_##op##_can_lock(&(lock)->raw_lock) && \
+ (lock)->break_lock) \
cpu_relax(); \
} \
================================================================
---- CVS-web:
http://cvs.pld-linux.org/SOURCES/kernel-desktop-preempt-rt.patch?r1=1.9&r2=1.10&f=u
More information about the pld-cvs-commit
mailing list