[kernel] r12400 - in dists/sid/linux-2.6/debian: . patches/bugfix/all/stable patches/series
Bastian Blank
waldi at alioth.debian.org
Wed Nov 19 15:06:03 UTC 2008
Author: waldi
Date: Wed Nov 19 15:06:02 2008
New Revision: 12400
Log:
Revert some patches from 2.6.26.6 to fix resume regression.
* debian/changelog: Update.
* debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_1.patch,
debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_2.patch:
Add.
* debian/patches/series/11: Add new patches.
Added:
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_1.patch
dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_2.patch
Modified:
dists/sid/linux-2.6/debian/changelog
dists/sid/linux-2.6/debian/patches/series/11
Modified: dists/sid/linux-2.6/debian/changelog
==============================================================================
--- dists/sid/linux-2.6/debian/changelog (original)
+++ dists/sid/linux-2.6/debian/changelog Wed Nov 19 15:06:02 2008
@@ -24,12 +24,16 @@
- libertas: fix buffer overrun
- net: Fix recursive descent in __scm_destroy().
- SCSI: qla2xxx: Skip FDMI registration on ISP21xx/22xx parts.
+ (Closes: #502552)
- edac cell: fix incorrect edac_mode
- ext[234]: Avoid printk floods in the face of directory corruption
(CVE-2008-3528)
- gpiolib: fix oops in gpio_get_value_cansleep()
* Override ABI changes.
* [xen] Update description. (closes: #505961)
+ * Revert parts of 2.6.26.6 to fix resume breakage. (closes: #504167)
+ - clockevents: prevent multiple init/shutdown
+ - clockevents: broadcast fixup possible waiters
[ dann frazier ]
* Fix buffer overflow in hfsplus (CVE-2008-4933)
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_1.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_1.patch Wed Nov 19 15:06:02 2008
@@ -0,0 +1,57 @@
+diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
+index e20a365..bcd4176 100644
+--- a/kernel/time/tick-broadcast.c
++++ b/kernel/time/tick-broadcast.c
+@@ -490,18 +490,6 @@ static void tick_broadcast_clear_oneshot(int cpu)
+ cpu_clear(cpu, tick_broadcast_oneshot_mask);
+ }
+
+-static void tick_broadcast_init_next_event(cpumask_t *mask, ktime_t expires)
+-{
+- struct tick_device *td;
+- int cpu;
+-
+- for_each_cpu_mask_nr(cpu, *mask) {
+- td = &per_cpu(tick_cpu_device, cpu);
+- if (td->evtdev)
+- td->evtdev->next_event = expires;
+- }
+-}
+-
+ /**
+ * tick_broadcast_setup_oneshot - setup the broadcast device
+ */
+@@ -509,32 +497,9 @@ void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
+ {
+ /* Set it up only once ! */
+ if (bc->event_handler != tick_handle_oneshot_broadcast) {
+- int was_periodic = bc->mode == CLOCK_EVT_MODE_PERIODIC;
+- int cpu = smp_processor_id();
+- cpumask_t mask;
+-
+ bc->event_handler = tick_handle_oneshot_broadcast;
+ clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
+-
+- /* Take the do_timer update */
+- tick_do_timer_cpu = cpu;
+-
+- /*
+- * We must be careful here. There might be other CPUs
+- * waiting for periodic broadcast. We need to set the
+- * oneshot_mask bits for those and program the
+- * broadcast device to fire.
+- */
+- mask = tick_broadcast_mask;
+- cpu_clear(cpu, mask);
+- cpus_or(tick_broadcast_oneshot_mask,
+- tick_broadcast_oneshot_mask, mask);
+-
+- if (was_periodic && !cpus_empty(mask)) {
+- tick_broadcast_init_next_event(&mask, tick_next_period);
+- tick_broadcast_set_event(tick_next_period, 1);
+- } else
+- bc->next_event.tv64 = KTIME_MAX;
++ bc->next_event.tv64 = KTIME_MAX;
+ }
+ }
+
Added: dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_2.patch
==============================================================================
--- (empty file)
+++ dists/sid/linux-2.6/debian/patches/bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_2.patch Wed Nov 19 15:06:02 2008
@@ -0,0 +1,52 @@
+diff --git a/kernel/time/tick-broadcast.c b/kernel/time/tick-broadcast.c
+index f2c5fef..104cd47 100644
+--- a/kernel/time/tick-broadcast.c
++++ b/kernel/time/tick-broadcast.c
+@@ -209,7 +209,7 @@ static void tick_do_broadcast_on_off(void *why)
+ struct clock_event_device *bc, *dev;
+ struct tick_device *td;
+ unsigned long flags, *reason = why;
+- int cpu, bc_stopped;
++ int cpu;
+
+ spin_lock_irqsave(&tick_broadcast_lock, flags);
+
+@@ -227,8 +227,6 @@ static void tick_do_broadcast_on_off(void *why)
+ if (!tick_device_is_functional(dev))
+ goto out;
+
+- bc_stopped = cpus_empty(tick_broadcast_mask);
+-
+ switch (*reason) {
+ case CLOCK_EVT_NOTIFY_BROADCAST_ON:
+ case CLOCK_EVT_NOTIFY_BROADCAST_FORCE:
+@@ -250,10 +248,9 @@ static void tick_do_broadcast_on_off(void *why)
+ break;
+ }
+
+- if (cpus_empty(tick_broadcast_mask)) {
+- if (!bc_stopped)
+- clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN);
+- } else if (bc_stopped) {
++ if (cpus_empty(tick_broadcast_mask))
++ clockevents_set_mode(bc, CLOCK_EVT_MODE_SHUTDOWN);
++ else {
+ if (tick_broadcast_device.mode == TICKDEV_MODE_PERIODIC)
+ tick_broadcast_start_periodic(bc);
+ else
+@@ -503,12 +500,9 @@ static void tick_broadcast_clear_oneshot(int cpu)
+ */
+ void tick_broadcast_setup_oneshot(struct clock_event_device *bc)
+ {
+- /* Set it up only once ! */
+- if (bc->event_handler != tick_handle_oneshot_broadcast) {
+- bc->event_handler = tick_handle_oneshot_broadcast;
+- clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
+- bc->next_event.tv64 = KTIME_MAX;
+- }
++ bc->event_handler = tick_handle_oneshot_broadcast;
++ clockevents_set_mode(bc, CLOCK_EVT_MODE_ONESHOT);
++ bc->next_event.tv64 = KTIME_MAX;
+ }
+
+ /*
Modified: dists/sid/linux-2.6/debian/patches/series/11
==============================================================================
--- dists/sid/linux-2.6/debian/patches/series/11 (original)
+++ dists/sid/linux-2.6/debian/patches/series/11 Wed Nov 19 15:06:02 2008
@@ -6,3 +6,5 @@
+ bugfix/all/hfsplus-check_read_mapping_page-return-value.patch
+ bugfix/all/hfs-fix-namelength-memory-corruption.patch
+ bugfix/all/tvaudio-treble-bass-control-oops.patch
++ bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_1.patch
++ bugfix/all/stable/2.6.26.6-revert_kernel_tick_broadcast_oneshot_2.patch
More information about the Kernel-svn-changes
mailing list