* [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset
[not found] <200711270025.08128.rjw@sisk.pl>
@ 2007-11-26 23:27 ` Rafael J. Wysocki
2007-11-26 23:29 ` [PATCH 2/6] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
` (10 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:27 UTC (permalink / raw)
To: pm list; +Cc: LKML
Suspend: Make debug facility depend on CONFIG_SUSPEND
Make the new suspend debug facility code depend on CONFIG_SUSPEND,
as appropriate, to remove the compiler warning printed when CONFIG_PM is set
and CONFIG_SUSPEND is not set.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/main.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -52,6 +52,8 @@ int pm_notifier_call_chain(unsigned long
#endif /* CONFIG_PM_SLEEP */
+#ifdef CONFIG_SUSPEND
+
#ifdef CONFIG_PM_DEBUG
int pm_test_level = TEST_NONE;
@@ -125,9 +127,6 @@ power_attr(pm_test);
static inline int suspend_test(int level) { return 0; }
#endif /* !CONFIG_PM_DEBUG */
-
-#ifdef CONFIG_SUSPEND
-
/* This is just an arbitrary number */
#define FREE_PAGE_NUMBER (100)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/6] Hibernation: Move low level resume to disk.c
[not found] <200711270025.08128.rjw@sisk.pl>
2007-11-26 23:27 ` [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
@ 2007-11-26 23:29 ` Rafael J. Wysocki
2007-11-26 23:30 ` [PATCH 3/6] Suspend: Use common prefix in messages Rafael J. Wysocki
` (9 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:29 UTC (permalink / raw)
To: pm list; +Cc: LKML
From: Rafael J. Wysocki <rjw@sisk.pl>
Move the low level restore code to kernel/power/disk.c , since the
corresponding low level hibernation code is already there.
Make restore fail if device_power_down(PMSG_PRETHAW) returns an
error.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/disk.c | 47 ++++++++++++++++++++++++++++++++++++++++++++++-
kernel/power/power.h | 1 -
kernel/power/swsusp.c | 35 -----------------------------------
3 files changed, 46 insertions(+), 37 deletions(-)
Index: linux-2.6/kernel/power/disk.c
===================================================================
--- linux-2.6.orig/kernel/power/disk.c
+++ linux-2.6/kernel/power/disk.c
@@ -275,6 +275,51 @@ int hibernation_snapshot(int platform_mo
}
/**
+ * resume_target_kernel - prepare devices that need to be suspended with
+ * interrupts off, restore the contents of highmem that have not been
+ * restored yet from the image and run the low level code that will restore
+ * the remaining contents of memory and switch to the just restored target
+ * kernel.
+ */
+
+static int resume_target_kernel(void)
+{
+ int error;
+
+ local_irq_disable();
+ error = device_power_down(PMSG_PRETHAW);
+ if (error) {
+ printk(KERN_ERR "Some devices failed to power down, "
+ KERN_ERR "aborting resume\n");
+ goto Enable_irqs;
+ }
+ /* We'll ignore saved state, but this gets preempt count (etc) right */
+ save_processor_state();
+ error = restore_highmem();
+ if (!error) {
+ error = swsusp_arch_resume();
+ /* The code below is only ever reached in case of a failure.
+ * Otherwise execution continues at place where
+ * swsusp_arch_suspend() was called
+ */
+ BUG_ON(!error);
+ /* This call to restore_highmem() undos the previous one */
+ restore_highmem();
+ }
+ /* The only reason why swsusp_arch_resume() can fail is memory being
+ * very tight, so we have to free it as soon as we can to avoid
+ * subsequent failures
+ */
+ swsusp_free();
+ restore_processor_state();
+ touch_softlockup_watchdog();
+ device_power_up();
+ Enable_irqs:
+ local_irq_enable();
+ return error;
+}
+
+/**
* hibernation_restore - quiesce devices and restore the hibernation
* snapshot image. If successful, control returns in hibernation_snaphot()
* @platform_mode - if set, use the platform driver, if available, to
@@ -297,7 +342,7 @@ int hibernation_restore(int platform_mod
if (!error) {
error = disable_nonboot_cpus();
if (!error)
- error = swsusp_resume();
+ error = resume_target_kernel();
enable_nonboot_cpus();
}
platform_restore_cleanup(platform_mode);
Index: linux-2.6/kernel/power/swsusp.c
===================================================================
--- linux-2.6.orig/kernel/power/swsusp.c
+++ linux-2.6/kernel/power/swsusp.c
@@ -261,38 +261,3 @@ int swsusp_shrink_memory(void)
return 0;
}
-
-int swsusp_resume(void)
-{
- int error;
-
- local_irq_disable();
- /* NOTE: device_power_down() is just a suspend() with irqs off;
- * it has no special "power things down" semantics
- */
- if (device_power_down(PMSG_PRETHAW))
- printk(KERN_ERR "Some devices failed to power down, very bad\n");
- /* We'll ignore saved state, but this gets preempt count (etc) right */
- save_processor_state();
- error = restore_highmem();
- if (!error) {
- error = swsusp_arch_resume();
- /* The code below is only ever reached in case of a failure.
- * Otherwise execution continues at place where
- * swsusp_arch_suspend() was called
- */
- BUG_ON(!error);
- /* This call to restore_highmem() undos the previous one */
- restore_highmem();
- }
- /* The only reason why swsusp_arch_resume() can fail is memory being
- * very tight, so we have to free it as soon as we can to avoid
- * subsequent failures
- */
- swsusp_free();
- restore_processor_state();
- touch_softlockup_watchdog();
- device_power_up();
- local_irq_enable();
- return error;
-}
Index: linux-2.6/kernel/power/power.h
===================================================================
--- linux-2.6.orig/kernel/power/power.h
+++ linux-2.6/kernel/power/power.h
@@ -154,7 +154,6 @@ extern int swsusp_swap_in_use(void);
extern int swsusp_check(void);
extern int swsusp_shrink_memory(void);
extern void swsusp_free(void);
-extern int swsusp_resume(void);
extern int swsusp_read(unsigned int *flags_p);
extern int swsusp_write(unsigned int flags);
extern void swsusp_close(void);
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 3/6] Suspend: Use common prefix in messages
[not found] <200711270025.08128.rjw@sisk.pl>
2007-11-26 23:27 ` [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
2007-11-26 23:29 ` [PATCH 2/6] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
@ 2007-11-26 23:30 ` Rafael J. Wysocki
2007-11-26 23:31 ` [PATCH 4/6] Suspend: Fix comment in main.c Rafael J. Wysocki
` (8 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:30 UTC (permalink / raw)
To: pm list; +Cc: LKML
From: Rafael J. Wysocki <rjw@sisk.pl>
Make suspend messages start with one common prefix "PM: ".
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/main.c | 19 ++++++++++---------
kernel/power/power.h | 2 ++
2 files changed, 12 insertions(+), 9 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -183,11 +183,11 @@ static int suspend_prepare(void)
free_pages = global_page_state(NR_FREE_PAGES);
if (free_pages < FREE_PAGE_NUMBER) {
- pr_debug("PM: free some memory\n");
+ pr_debug(PREFIX "Free some memory\n");
shrink_all_memory(FREE_PAGE_NUMBER - free_pages);
if (nr_free_pages() < FREE_PAGE_NUMBER) {
error = -ENOMEM;
- printk(KERN_ERR "PM: No enough memory\n");
+ printk(KERN_ERR PREFIX "No enough memory\n");
}
}
if (!error)
@@ -227,7 +227,7 @@ static int suspend_enter(suspend_state_t
BUG_ON(!irqs_disabled());
if ((error = device_power_down(PMSG_SUSPEND))) {
- printk(KERN_ERR "Some devices failed to power down\n");
+ printk(KERN_ERR PREFIX "Some devices failed to power down\n");
goto Done;
}
@@ -261,7 +261,7 @@ int suspend_devices_and_enter(suspend_st
suspend_console();
error = device_suspend(PMSG_SUSPEND);
if (error) {
- printk(KERN_ERR "Some devices failed to suspend\n");
+ printk(KERN_ERR PREFIX "Some devices failed to suspend\n");
goto Resume_console;
}
@@ -344,11 +344,12 @@ static int enter_state(suspend_state_t s
if (!mutex_trylock(&pm_mutex))
return -EBUSY;
- printk("Syncing filesystems ... ");
+ printk(KERN_INFO PREFIX "Syncing filesystems ... ");
sys_sync();
- printk("done.\n");
+ printk(KERN_INFO "done.\n");
- pr_debug("PM: Preparing system for %s sleep\n", pm_states[state]);
+ pr_debug(PREFIX "Preparing system to enter %s sleep state\n",
+ pm_states[state]);
error = suspend_prepare();
if (error)
goto Unlock;
@@ -356,11 +357,11 @@ static int enter_state(suspend_state_t s
if (suspend_test(TEST_FREEZER))
goto Finish;
- pr_debug("PM: Entering %s sleep\n", pm_states[state]);
+ pr_debug(PREFIX "Entering %s sleep state\n", pm_states[state]);
error = suspend_devices_and_enter(state);
Finish:
- pr_debug("PM: Finishing wakeup.\n");
+ pr_debug(PREFIX "Finishing wakeup.\n");
suspend_finish();
Unlock:
mutex_unlock(&pm_mutex);
Index: linux-2.6/kernel/power/power.h
===================================================================
--- linux-2.6.orig/kernel/power/power.h
+++ linux-2.6/kernel/power/power.h
@@ -2,6 +2,8 @@
#include <linux/suspend_ioctls.h>
#include <linux/utsname.h>
+#define PREFIX "PM: "
+
struct swsusp_info {
struct new_utsname uts;
u32 version_code;
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 4/6] Suspend: Fix comment in main.c
[not found] <200711270025.08128.rjw@sisk.pl>
` (2 preceding siblings ...)
2007-11-26 23:30 ` [PATCH 3/6] Suspend: Use common prefix in messages Rafael J. Wysocki
@ 2007-11-26 23:31 ` Rafael J. Wysocki
2007-11-26 23:32 ` [PATCH 5/6] Hibernation: Use common prefix in messages Rafael J. Wysocki
` (7 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:31 UTC (permalink / raw)
To: pm list; +Cc: LKML
From: Rafael J. Wysocki <rjw@sisk.pl>
Fix a comment in kernel/power/main.c so that it doesn't contain lines
longer that 80 characters.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/main.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/kernel/power/main.c
===================================================================
--- linux-2.6.orig/kernel/power/main.c
+++ linux-2.6/kernel/power/main.c
@@ -242,8 +242,8 @@ static int suspend_enter(suspend_state_t
}
/**
- * suspend_devices_and_enter - suspend devices and enter the desired system sleep
- * state.
+ * suspend_devices_and_enter - suspend devices and enter the desired system
+ * sleep state.
* @state: state to enter
*/
int suspend_devices_and_enter(suspend_state_t state)
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 5/6] Hibernation: Use common prefix in messages
[not found] <200711270025.08128.rjw@sisk.pl>
` (3 preceding siblings ...)
2007-11-26 23:31 ` [PATCH 4/6] Suspend: Fix comment in main.c Rafael J. Wysocki
@ 2007-11-26 23:32 ` Rafael J. Wysocki
2007-11-26 23:33 ` [PATCH 6/6] Hibernation: Move extern definition to header file Rafael J. Wysocki
` (6 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:32 UTC (permalink / raw)
To: pm list; +Cc: LKML
From: Rafael J. Wysocki <rjw@sisk.pl>
Make hibernation messages start with one common prefix "PM: ".
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/disk.c | 38 ++++++++++++++++++++------------------
kernel/power/snapshot.c | 24 +++++++++++++-----------
kernel/power/swap.c | 43 +++++++++++++++++++++++--------------------
kernel/power/swsusp.c | 10 +++++-----
4 files changed, 61 insertions(+), 54 deletions(-)
Index: linux-2.6/kernel/power/disk.c
===================================================================
--- linux-2.6.orig/kernel/power/disk.c
+++ linux-2.6/kernel/power/disk.c
@@ -191,7 +191,7 @@ int create_image(int platform_mode)
*/
error = device_power_down(PMSG_FREEZE);
if (error) {
- printk(KERN_ERR "Some devices failed to power down, "
+ printk(KERN_ERR PREFIX "Some devices failed to power down, "
KERN_ERR "aborting suspend\n");
goto Enable_irqs;
}
@@ -203,7 +203,8 @@ int create_image(int platform_mode)
save_processor_state();
error = swsusp_arch_suspend();
if (error)
- printk(KERN_ERR "Error %d while creating the image\n", error);
+ printk(KERN_ERR PREFIX "Error %d while creating the image\n",
+ error);
/* Restore control flow magically appears here */
restore_processor_state();
if (!in_suspend)
@@ -289,7 +290,7 @@ static int resume_target_kernel(void)
local_irq_disable();
error = device_power_down(PMSG_PRETHAW);
if (error) {
- printk(KERN_ERR "Some devices failed to power down, "
+ printk(KERN_ERR PREFIX "Some devices failed to power down, "
KERN_ERR "aborting resume\n");
goto Enable_irqs;
}
@@ -436,7 +437,7 @@ static void power_down(void)
* Valid image is on the disk, if we continue we risk serious data
* corruption after resume.
*/
- printk(KERN_CRIT "Please power me down manually\n");
+ printk(KERN_CRIT PREFIX "Please power down manually\n");
while(1);
}
@@ -482,9 +483,9 @@ int hibernate(void)
if (error)
goto Exit;
- printk("Syncing filesystems ... ");
+ printk(KERN_INFO PREFIX "Syncing filesystems ... ");
sys_sync();
- printk("done.\n");
+ printk(KERN_INFO "done.\n");
error = prepare_processes();
if (error)
@@ -502,13 +503,13 @@ int hibernate(void)
if (hibernation_mode == HIBERNATION_PLATFORM)
flags |= SF_PLATFORM_MODE;
- pr_debug("PM: writing image.\n");
+ pr_debug(PREFIX "Writing image.\n");
error = swsusp_write(flags);
swsusp_free();
if (!error)
power_down();
} else {
- pr_debug("PM: Image restored successfully.\n");
+ pr_debug(PREFIX "Image restored successfully.\n");
swsusp_free();
}
Thaw:
@@ -558,10 +559,11 @@ static int software_resume(void)
return -ENOENT;
}
swsusp_resume_device = name_to_dev_t(resume_file);
- pr_debug("swsusp: Resume From Partition %s\n", resume_file);
+ pr_debug(PREFIX "Resume from fartition %s\n", resume_file);
} else {
- pr_debug("swsusp: Resume From Partition %d:%d\n",
- MAJOR(swsusp_resume_device), MINOR(swsusp_resume_device));
+ pr_debug(PREFIX "Resume from partition %d:%d\n",
+ MAJOR(swsusp_resume_device),
+ MINOR(swsusp_resume_device));
}
if (noresume) {
@@ -573,7 +575,7 @@ static int software_resume(void)
return 0;
}
- pr_debug("PM: Checking swsusp image.\n");
+ pr_debug(PREFIX "Checking hibernation image.\n");
error = swsusp_check();
if (error)
goto Unlock;
@@ -592,20 +594,20 @@ static int software_resume(void)
if (error)
goto Finish;
- pr_debug("PM: Preparing processes for restore.\n");
+ pr_debug(PREFIX "Preparing processes for restore.\n");
error = prepare_processes();
if (error) {
swsusp_close();
goto Done;
}
- pr_debug("PM: Reading swsusp image.\n");
+ pr_debug(PREFIX "Reading hibernation image.\n");
error = swsusp_read(&flags);
if (!error)
hibernation_restore(flags & SF_PLATFORM_MODE);
- printk(KERN_ERR "PM: Restore failed, recovering.\n");
+ printk(KERN_ERR PREFIX "Restore failed, recovering.\n");
swsusp_free();
unprepare_processes();
Done:
@@ -616,7 +618,7 @@ static int software_resume(void)
/* For success case, the suspend path will release the lock */
Unlock:
mutex_unlock(&pm_mutex);
- pr_debug("PM: Resume from disk failed.\n");
+ pr_debug(PREFIX "Resume from disk failed.\n");
return error;
}
@@ -724,7 +726,7 @@ static ssize_t disk_store(struct kset *k
error = -EINVAL;
if (!error)
- pr_debug("PM: suspend-to-disk mode set to '%s'\n",
+ pr_debug(PREFIX "Hibernation mode set to '%s'\n",
hibernation_modes[mode]);
mutex_unlock(&pm_mutex);
return error ? error : n;
@@ -754,7 +756,7 @@ static ssize_t resume_store(struct kset
mutex_lock(&pm_mutex);
swsusp_resume_device = res;
mutex_unlock(&pm_mutex);
- printk("Attempting manual resume\n");
+ printk(KERN_INFO PREFIX "Starting manual resume from disk\n");
noresume = 0;
software_resume();
ret = n;
Index: linux-2.6/kernel/power/snapshot.c
===================================================================
--- linux-2.6.orig/kernel/power/snapshot.c
+++ linux-2.6/kernel/power/snapshot.c
@@ -635,7 +635,7 @@ __register_nosave_region(unsigned long s
region->end_pfn = end_pfn;
list_add_tail(®ion->list, &nosave_regions);
Report:
- printk("swsusp: Registered nosave memory region: %016lx - %016lx\n",
+ printk(PREFIX "Registered nosave memory region: %016lx - %016lx\n",
start_pfn << PAGE_SHIFT, end_pfn << PAGE_SHIFT);
}
@@ -704,7 +704,7 @@ static void mark_nosave_pages(struct mem
list_for_each_entry(region, &nosave_regions, list) {
unsigned long pfn;
- printk("swsusp: Marking nosave pages: %016lx - %016lx\n",
+ printk(PREFIX "Marking nosave pages: %016lx - %016lx\n",
region->start_pfn << PAGE_SHIFT,
region->end_pfn << PAGE_SHIFT);
@@ -749,7 +749,7 @@ int create_basic_memory_bitmaps(void)
free_pages_map = bm2;
mark_nosave_pages(forbidden_pages_map);
- printk("swsusp: Basic memory bitmaps created\n");
+ printk(PREFIX "Basic memory bitmaps created\n");
return 0;
@@ -784,7 +784,7 @@ void free_basic_memory_bitmaps(void)
memory_bm_free(bm2, PG_UNSAFE_CLEAR);
kfree(bm2);
- printk("swsusp: Basic memory bitmaps freed\n");
+ printk(PREFIX "Basic memory bitmaps freed\n");
}
/**
@@ -1088,7 +1088,8 @@ static int enough_free_mem(unsigned int
}
nr_pages += count_pages_for_highmem(nr_highmem);
- pr_debug("swsusp: Normal pages needed: %u + %u + %u, available pages: %u\n",
+ pr_debug(PREFIX "Normal pages needed: %u + %u + %u, "
+ "available pages: %u\n",
nr_pages, PAGES_FOR_IO, meta, free);
return free > nr_pages + PAGES_FOR_IO + meta;
@@ -1201,20 +1202,20 @@ asmlinkage int swsusp_save(void)
{
unsigned int nr_pages, nr_highmem;
- printk("swsusp: critical section: \n");
+ printk(PREFIX "Critical section: \n");
drain_local_pages();
nr_pages = count_data_pages();
nr_highmem = count_highmem_pages();
- printk("swsusp: Need to copy %u pages\n", nr_pages + nr_highmem);
+ printk(PREFIX "Need to copy %u pages\n", nr_pages + nr_highmem);
if (!enough_free_mem(nr_pages, nr_highmem)) {
- printk(KERN_ERR "swsusp: Not enough free memory\n");
+ printk(KERN_ERR PREFIX "Not enough free memory\n");
return -ENOMEM;
}
if (swsusp_alloc(&orig_bm, ©_bm, nr_pages, nr_highmem)) {
- printk(KERN_ERR "swsusp: Memory allocation failed\n");
+ printk(KERN_ERR PREFIX "Memory allocation failed\n");
return -ENOMEM;
}
@@ -1234,7 +1235,8 @@ asmlinkage int swsusp_save(void)
nr_copy_pages = nr_pages;
nr_meta_pages = DIV_ROUND_UP(nr_pages * sizeof(long), PAGE_SIZE);
- printk("swsusp: critical section: done (%d pages copied)\n", nr_pages);
+ printk(KERN_INFO PREFIX "Critical section: done (%d pages copied)\n",
+ nr_pages);
return 0;
}
@@ -1433,7 +1435,7 @@ static int check_header(struct swsusp_in
if (!reason && info->num_physpages != num_physpages)
reason = "memory size";
if (reason) {
- printk(KERN_ERR "swsusp: Resume mismatch: %s\n", reason);
+ printk(KERN_ERR PREFIX "Resume mismatch: %s\n", reason);
return -EPERM;
}
return 0;
Index: linux-2.6/kernel/power/swap.c
===================================================================
--- linux-2.6.orig/kernel/power/swap.c
+++ linux-2.6/kernel/power/swap.c
@@ -73,7 +73,8 @@ static int submit(int rw, pgoff_t page_o
bio->bi_end_io = end_swap_bio_read;
if (bio_add_page(bio, page, PAGE_SIZE, 0) < PAGE_SIZE) {
- printk("swsusp: ERROR: adding page to bio at %ld\n", page_off);
+ printk(KERN_ERR PREFIX "Error adding page to bio at %ld\n",
+ page_off);
bio_put(bio);
return -EFAULT;
}
@@ -153,7 +154,7 @@ static int mark_swapfiles(sector_t start
error = bio_write_page(swsusp_resume_block,
swsusp_header, NULL);
} else {
- printk(KERN_ERR "swsusp: Swap header not found!\n");
+ printk(KERN_ERR PREFIX "Swap header not found!\n");
error = -ENODEV;
}
return error;
@@ -325,7 +326,8 @@ static int save_image(struct swap_map_ha
struct timeval start;
struct timeval stop;
- printk("Saving image data pages (%u pages) ... ", nr_to_write);
+ printk(KERN_INFO PREFIX "Saving image data pages (%u pages) ... ",
+ nr_to_write);
m = nr_to_write / 100;
if (!m)
m = 1;
@@ -340,7 +342,7 @@ static int save_image(struct swap_map_ha
if (error)
break;
if (!(nr_pages % m))
- printk("\b\b\b\b%3d%%", nr_pages / m);
+ printk(KERN_INFO "\b\b\b\b%3d%%", nr_pages / m);
nr_pages++;
}
} while (ret > 0);
@@ -349,7 +351,7 @@ static int save_image(struct swap_map_ha
if (!error)
error = err2;
if (!error)
- printk("\b\b\b\bdone\n");
+ printk(KERN_INFO "\b\b\b\bdone\n");
swsusp_show_speed(&start, &stop, nr_to_write, "Wrote");
return error;
}
@@ -365,7 +367,7 @@ static int enough_swap(unsigned int nr_p
{
unsigned int free_swap = count_swap_pages(root_swap, 1);
- pr_debug("swsusp: free swap pages: %u\n", free_swap);
+ pr_debug(PREFIX "Free swap pages: %u\n", free_swap);
return free_swap > nr_pages + PAGES_FOR_IO;
}
@@ -388,8 +390,8 @@ int swsusp_write(unsigned int flags)
error = swsusp_swap_check();
if (error) {
- printk(KERN_ERR "swsusp: Cannot find swap device, try "
- "swapon -a.\n");
+ printk(KERN_ERR PREFIX "Cannot find swap device, try "
+ KERN_ERR "swapon -a.\n");
return error;
}
memset(&snapshot, 0, sizeof(struct snapshot_handle));
@@ -402,7 +404,7 @@ int swsusp_write(unsigned int flags)
}
header = (struct swsusp_info *)data_of(snapshot);
if (!enough_swap(header->pages)) {
- printk(KERN_ERR "swsusp: Not enough free swap\n");
+ printk(KERN_ERR PREFIX "Not enough free swap\n");
error = -ENOSPC;
goto out;
}
@@ -417,9 +419,9 @@ int swsusp_write(unsigned int flags)
if (!error) {
flush_swap_writer(&handle);
- printk("S");
+ printk(KERN_INFO PREFIX "S");
error = mark_swapfiles(start, flags);
- printk("|\n");
+ printk(KERN_INFO "|\n");
}
}
if (error)
@@ -507,7 +509,8 @@ static int load_image(struct swap_map_ha
int err2;
unsigned nr_pages;
- printk("Loading image data pages (%u pages) ... ", nr_to_read);
+ printk(KERN_INFO PREFIX "Loading image data pages (%u pages) ... ",
+ nr_to_read);
m = nr_to_read / 100;
if (!m)
m = 1;
@@ -526,7 +529,7 @@ static int load_image(struct swap_map_ha
if (error)
break;
if (!(nr_pages % m))
- printk("\b\b\b\b%3d%%", nr_pages / m);
+ printk(KERN_INFO "\b\b\b\b%3d%%", nr_pages / m);
nr_pages++;
}
err2 = wait_on_bio_chain(&bio);
@@ -534,7 +537,7 @@ static int load_image(struct swap_map_ha
if (!error)
error = err2;
if (!error) {
- printk("\b\b\b\bdone\n");
+ printk(KERN_INFO "\b\b\b\bdone\n");
snapshot_write_finalize(snapshot);
if (!snapshot_image_loaded(snapshot))
error = -ENODATA;
@@ -558,7 +561,7 @@ int swsusp_read(unsigned int *flags_p)
*flags_p = swsusp_header->flags;
if (IS_ERR(resume_bdev)) {
- pr_debug("swsusp: block device not initialised\n");
+ pr_debug(PREFIX "Block device not initialised\n");
return PTR_ERR(resume_bdev);
}
@@ -577,9 +580,9 @@ int swsusp_read(unsigned int *flags_p)
blkdev_put(resume_bdev);
if (!error)
- pr_debug("swsusp: Reading resume file was successful\n");
+ pr_debug(PREFIX "Reading resume file was successful\n");
else
- pr_debug("swsusp: Error %d resuming\n", error);
+ pr_debug(PREFIX "Error %d resuming\n", error);
return error;
}
@@ -611,13 +614,13 @@ int swsusp_check(void)
if (error)
blkdev_put(resume_bdev);
else
- pr_debug("swsusp: Signature found, resuming\n");
+ pr_debug(PREFIX "Signature found, resuming\n");
} else {
error = PTR_ERR(resume_bdev);
}
if (error)
- pr_debug("swsusp: Error %d check for resume file\n", error);
+ pr_debug(PREFIX "Error %d check for resume file\n", error);
return error;
}
@@ -629,7 +632,7 @@ int swsusp_check(void)
void swsusp_close(void)
{
if (IS_ERR(resume_bdev)) {
- pr_debug("swsusp: block device not initialised\n");
+ pr_debug(PREFIX "Block device not initialised\n");
return;
}
Index: linux-2.6/kernel/power/swsusp.c
===================================================================
--- linux-2.6.orig/kernel/power/swsusp.c
+++ linux-2.6/kernel/power/swsusp.c
@@ -188,8 +188,8 @@ void swsusp_show_speed(struct timeval *s
centisecs = 1; /* avoid div-by-zero */
k = nr_pages * (PAGE_SIZE / 1024);
kps = (k * 100) / centisecs;
- printk("%s %d kbytes in %d.%02d seconds (%d.%02d MB/s)\n", msg, k,
- centisecs / 100, centisecs % 100,
+ printk(KERN_INFO "%s %d kbytes in %d.%02d seconds (%d.%02d MB/s)\n",
+ msg, k, centisecs / 100, centisecs % 100,
kps / 1000, (kps % 1000) / 10);
}
@@ -219,7 +219,7 @@ int swsusp_shrink_memory(void)
char *p = "-\\|/";
struct timeval start, stop;
- printk("Shrinking memory... ");
+ printk(KERN_INFO PREFIX "Shrinking memory... ");
do_gettimeofday(&start);
do {
long size, highmem_size;
@@ -253,10 +253,10 @@ int swsusp_shrink_memory(void)
tmp = __shrink_memory(size - (image_size / PAGE_SIZE));
pages += tmp;
}
- printk("\b%c", p[i++%4]);
+ printk(KERN_INFO "\b%c", p[i++%4]);
} while (tmp > 0);
do_gettimeofday(&stop);
- printk("\bdone (%lu pages freed)\n", pages);
+ printk(KERN_INFO "\bdone (%lu pages freed)\n", pages);
swsusp_show_speed(&start, &stop, pages, "Freed");
return 0;
^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 6/6] Hibernation: Move extern definition to header file
[not found] <200711270025.08128.rjw@sisk.pl>
` (4 preceding siblings ...)
2007-11-26 23:32 ` [PATCH 5/6] Hibernation: Use common prefix in messages Rafael J. Wysocki
@ 2007-11-26 23:33 ` Rafael J. Wysocki
[not found] ` <200711270027.24230.rjw@sisk.pl>
` (5 subsequent siblings)
11 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-26 23:33 UTC (permalink / raw)
To: pm list; +Cc: LKML
From: Rafael J. Wysocki <rjw@sisk.pl>
Move the extern definition of resume_file[] from kernel/power/swap.c
to kernel/power/power.h .
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
---
kernel/power/power.h | 2 ++
kernel/power/swap.c | 2 --
2 files changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/kernel/power/power.h
===================================================================
--- linux-2.6.orig/kernel/power/power.h
+++ linux-2.6/kernel/power/power.h
@@ -207,3 +207,5 @@ enum {
#define TEST_MAX (__TEST_AFTER_LAST - 1)
extern int pm_test_level;
+
+extern char resume_file[];
Index: linux-2.6/kernel/power/swap.c
===================================================================
--- linux-2.6.orig/kernel/power/swap.c
+++ linux-2.6/kernel/power/swap.c
@@ -28,8 +28,6 @@
#include "power.h"
-extern char resume_file[];
-
#define SWSUSP_SIG "S1SUSPEND"
struct swsusp_header {
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset
[not found] ` <200711270027.24230.rjw@sisk.pl>
@ 2007-11-27 0:12 ` Pavel Machek
0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:12 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
On Tue 2007-11-27 00:27:23, Rafael J. Wysocki wrote:
> Suspend: Make debug facility depend on CONFIG_SUSPEND
>
> Make the new suspend debug facility code depend on CONFIG_SUSPEND,
> as appropriate, to remove the compiler warning printed when CONFIG_PM is set
> and CONFIG_SUSPEND is not set.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK.
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 4/6] Suspend: Fix comment in main.c
[not found] ` <200711270031.22305.rjw@sisk.pl>
@ 2007-11-27 0:14 ` Pavel Machek
0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:14 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
On Tue 2007-11-27 00:31:21, Rafael J. Wysocki wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Fix a comment in kernel/power/main.c so that it doesn't contain lines
> longer that 80 characters.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
ACK.
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 5/6] Hibernation: Use common prefix in messages
[not found] ` <200711270032.07724.rjw@sisk.pl>
@ 2007-11-27 0:20 ` Pavel Machek
0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:20 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
Hi!
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> ---
> kernel/power/disk.c | 38 ++++++++++++++++++++------------------
> kernel/power/snapshot.c | 24 +++++++++++++-----------
> kernel/power/swap.c | 43 +++++++++++++++++++++++--------------------
> kernel/power/swsusp.c | 10 +++++-----
> 4 files changed, 61 insertions(+), 54 deletions(-)
>
> Index: linux-2.6/kernel/power/disk.c
> ===================================================================
> --- linux-2.6.orig/kernel/power/disk.c
> +++ linux-2.6/kernel/power/disk.c
> @@ -191,7 +191,7 @@ int create_image(int platform_mode)
> */
> error = device_power_down(PMSG_FREEZE);
> if (error) {
> - printk(KERN_ERR "Some devices failed to power down, "
> + printk(KERN_ERR PREFIX "Some devices failed to power down, "
> KERN_ERR "aborting suspend\n");
This one is actually wrong. (But you did not introduce it). KERN_ERR
will be in the middle of line
> @@ -289,7 +290,7 @@ static int resume_target_kernel(void)
> local_irq_disable();
> error = device_power_down(PMSG_PRETHAW);
> if (error) {
> - printk(KERN_ERR "Some devices failed to power down, "
> + printk(KERN_ERR PREFIX "Some devices failed to power down, "
> KERN_ERR "aborting resume\n");
> goto Enable_irqs;
> }
Same here.
> @@ -482,9 +483,9 @@ int hibernate(void)
> if (error)
> goto Exit;
>
> - printk("Syncing filesystems ... ");
> + printk(KERN_INFO PREFIX "Syncing filesystems ... ");
> sys_sync();
> - printk("done.\n");
> + printk(KERN_INFO "done.\n");
No. KERN_INFO would end up in the middle of the line.
> @@ -340,7 +342,7 @@ static int save_image(struct swap_map_ha
> if (error)
> break;
> if (!(nr_pages % m))
> - printk("\b\b\b\b%3d%%", nr_pages / m);
> + printk(KERN_INFO "\b\b\b\b%3d%%", nr_pages / m);
> nr_pages++;
> }
> } while (ret > 0);
This one is wrong.
> @@ -349,7 +351,7 @@ static int save_image(struct swap_map_ha
> if (!error)
> error = err2;
> if (!error)
> - printk("\b\b\b\bdone\n");
> + printk(KERN_INFO "\b\b\b\bdone\n");
> swsusp_show_speed(&start, &stop, nr_to_write, "Wrote");
> return error;
> }
As is this. We do some pretty printing with backspaces, and <9> will
break it.
> @@ -388,8 +390,8 @@ int swsusp_write(unsigned int flags)
>
> error = swsusp_swap_check();
> if (error) {
> - printk(KERN_ERR "swsusp: Cannot find swap device, try "
> - "swapon -a.\n");
> + printk(KERN_ERR PREFIX "Cannot find swap device, try "
> + KERN_ERR "swapon -a.\n");
> return error;
Same here.
> @@ -417,9 +419,9 @@ int swsusp_write(unsigned int flags)
>
> if (!error) {
> flush_swap_writer(&handle);
> - printk("S");
> + printk(KERN_INFO PREFIX "S");
> error = mark_swapfiles(start, flags);
> - printk("|\n");
> + printk(KERN_INFO "|\n");
> }
> }
> if (error)
And here.
> @@ -526,7 +529,7 @@ static int load_image(struct swap_map_ha
> if (error)
> break;
> if (!(nr_pages % m))
> - printk("\b\b\b\b%3d%%", nr_pages / m);
> + printk(KERN_INFO "\b\b\b\b%3d%%", nr_pages / m);
> nr_pages++;
> }
> err2 = wait_on_bio_chain(&bio);
And here.
> @@ -534,7 +537,7 @@ static int load_image(struct swap_map_ha
> if (!error)
> error = err2;
> if (!error) {
> - printk("\b\b\b\bdone\n");
> + printk(KERN_INFO "\b\b\b\bdone\n");
> snapshot_write_finalize(snapshot);
> if (!snapshot_image_loaded(snapshot))
> error = -ENODATA;
...and here.
> @@ -253,10 +253,10 @@ int swsusp_shrink_memory(void)
> tmp = __shrink_memory(size - (image_size / PAGE_SIZE));
> pages += tmp;
> }
> - printk("\b%c", p[i++%4]);
> + printk(KERN_INFO "\b%c", p[i++%4]);
> } while (tmp > 0);
> do_gettimeofday(&stop);
> - printk("\bdone (%lu pages freed)\n", pages);
> + printk(KERN_INFO "\bdone (%lu pages freed)\n", pages);
> swsusp_show_speed(&start, &stop, pages, "Freed");
And here.
All in all, I do not think I like the "PREFIX" idea.
printk(PREFIX "foo");
is longer than
printk("pm: foo");
... and the extra indirection will make greping slightly harder. (I
bet I would do
grep "pm: foo" *.c
if I saw such message).
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/6] Suspend: Use common prefix in messages
[not found] ` <200711270030.10561.rjw@sisk.pl>
@ 2007-11-27 0:21 ` Pavel Machek
[not found] ` <20071127002145.GD9759@elf.ucw.cz>
1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:21 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
Hi!
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Make suspend messages start with one common prefix "PM: ".
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
I do not think I like the PREFIX idea (see other message).
> @@ -344,11 +344,12 @@ static int enter_state(suspend_state_t s
> if (!mutex_trylock(&pm_mutex))
> return -EBUSY;
>
> - printk("Syncing filesystems ... ");
> + printk(KERN_INFO PREFIX "Syncing filesystems ... ");
> sys_sync();
> - printk("done.\n");
> + printk(KERN_INFO "done.\n");
Plus this is wrong.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 6/6] Hibernation: Move extern definition to header file
[not found] ` <200711270033.04999.rjw@sisk.pl>
@ 2007-11-27 0:23 ` Pavel Machek
0 siblings, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:23 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
Hi!
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Move the extern definition of resume_file[] from kernel/power/swap.c
> to kernel/power/power.h .
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
can we just get rid of extern? It does not seem to be used. (at least
in very quick grep over 2.6.24-rc3):
pavel@amd:/data/l/linux/kernel/power$ grep resume_file *.c
disk.c:char resume_file[256] = CONFIG_PM_STD_PARTITION;
disk.c: if (!strlen(resume_file)) {
disk.c: swsusp_resume_device = name_to_dev_t(resume_file);
disk.c: pr_debug("swsusp: Resume From Partition %s\n",
resume_file);
disk.c: strncpy( resume_file, str, 255 );
swap.c:extern char resume_file[];
pavel@amd:/data/l/linux/kernel/power$
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/6] Hibernation: Move low level resume to disk.c
[not found] ` <200711270029.11185.rjw@sisk.pl>
@ 2007-11-27 0:29 ` Pavel Machek
[not found] ` <20071127002929.GF9759@elf.ucw.cz>
1 sibling, 0 replies; 14+ messages in thread
From: Pavel Machek @ 2007-11-27 0:29 UTC (permalink / raw)
To: Rafael J. Wysocki; +Cc: pm list, LKML
Hi!
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Move the low level restore code to kernel/power/disk.c , since the
> corresponding low level hibernation code is already there.
>
> Make restore fail if device_power_down(PMSG_PRETHAW) returns an
> error.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Move looks ok to me.
> /**
> + * resume_target_kernel - prepare devices that need to be suspended with
> + * interrupts off, restore the contents of highmem that have not been
> + * restored yet from the image and run the low level code that will restore
> + * the remaining contents of memory and switch to the just restored target
> + * kernel.
> + */
> +
> +static int resume_target_kernel(void)
> +{
> + int error;
> +
> + local_irq_disable();
> + error = device_power_down(PMSG_PRETHAW);
> + if (error) {
> + printk(KERN_ERR "Some devices failed to power down, "
> + KERN_ERR "aborting resume\n");
> + goto Enable_irqs;
Too many KERN_ERR's ;-). Plus... are you sure this does the right
thing? ... .. ... yes, it does. If one device fails,
device_power_down() powers up the rest using dpm_power_up(). Good.
ACK... modulo double KERN_ERR.
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 2/6] Hibernation: Move low level resume to disk.c
[not found] ` <20071127002929.GF9759@elf.ucw.cz>
@ 2007-11-27 16:06 ` Rafael J. Wysocki
0 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-27 16:06 UTC (permalink / raw)
To: Pavel Machek; +Cc: pm list, LKML
On Tuesday, 27 of November 2007, Pavel Machek wrote:
> Hi!
>
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Move the low level restore code to kernel/power/disk.c , since the
> > corresponding low level hibernation code is already there.
> >
> > Make restore fail if device_power_down(PMSG_PRETHAW) returns an
> > error.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
>
> Move looks ok to me.
>
>
> > /**
> > + * resume_target_kernel - prepare devices that need to be suspended with
> > + * interrupts off, restore the contents of highmem that have not been
> > + * restored yet from the image and run the low level code that will restore
> > + * the remaining contents of memory and switch to the just restored target
> > + * kernel.
> > + */
> > +
> > +static int resume_target_kernel(void)
> > +{
> > + int error;
> > +
> > + local_irq_disable();
> > + error = device_power_down(PMSG_PRETHAW);
> > + if (error) {
> > + printk(KERN_ERR "Some devices failed to power down, "
> > + KERN_ERR "aborting resume\n");
> > + goto Enable_irqs;
>
> Too many KERN_ERR's ;-)
Yeah, will fix.
> . Plus... are you sure this does the right
> thing? ... .. ... yes, it does. If one device fails,
> device_power_down() powers up the rest using dpm_power_up(). Good.
>
> ACK... modulo double KERN_ERR.
OK, thanks!
Rafael
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 3/6] Suspend: Use common prefix in messages
[not found] ` <20071127002145.GD9759@elf.ucw.cz>
@ 2007-11-27 16:16 ` Rafael J. Wysocki
0 siblings, 0 replies; 14+ messages in thread
From: Rafael J. Wysocki @ 2007-11-27 16:16 UTC (permalink / raw)
To: Pavel Machek; +Cc: pm list, LKML
On Tuesday, 27 of November 2007, Pavel Machek wrote:
> Hi!
>
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Make suspend messages start with one common prefix "PM: ".
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
>
> I do not think I like the PREFIX idea (see other message).
The problem is that we use three different types of messages:
- with no prefix at all
- with "PM: "
- with "swsusp: "
and I think that we should use just one, preferably "PM: ".
> > @@ -344,11 +344,12 @@ static int enter_state(suspend_state_t s
> > if (!mutex_trylock(&pm_mutex))
> > return -EBUSY;
> >
> > - printk("Syncing filesystems ... ");
> > + printk(KERN_INFO PREFIX "Syncing filesystems ... ");
> > sys_sync();
> > - printk("done.\n");
> > + printk(KERN_INFO "done.\n");
>
>
> Plus this is wrong.
Yes, I've had a temporary blackout regarding prinkt(), not even making much
sense ...
I'll resend the entire series in a while.
Greetings,
Rafael
^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2007-11-27 16:16 UTC | newest]
Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <200711270025.08128.rjw@sisk.pl>
2007-11-26 23:27 ` [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Rafael J. Wysocki
2007-11-26 23:29 ` [PATCH 2/6] Hibernation: Move low level resume to disk.c Rafael J. Wysocki
2007-11-26 23:30 ` [PATCH 3/6] Suspend: Use common prefix in messages Rafael J. Wysocki
2007-11-26 23:31 ` [PATCH 4/6] Suspend: Fix comment in main.c Rafael J. Wysocki
2007-11-26 23:32 ` [PATCH 5/6] Hibernation: Use common prefix in messages Rafael J. Wysocki
2007-11-26 23:33 ` [PATCH 6/6] Hibernation: Move extern definition to header file Rafael J. Wysocki
[not found] ` <200711270027.24230.rjw@sisk.pl>
2007-11-27 0:12 ` [PATCH 1/6] Suspend: Fix compilation warning for CONFIG_SUSPEND unset Pavel Machek
[not found] ` <200711270031.22305.rjw@sisk.pl>
2007-11-27 0:14 ` [PATCH 4/6] Suspend: Fix comment in main.c Pavel Machek
[not found] ` <200711270032.07724.rjw@sisk.pl>
2007-11-27 0:20 ` [PATCH 5/6] Hibernation: Use common prefix in messages Pavel Machek
[not found] ` <200711270030.10561.rjw@sisk.pl>
2007-11-27 0:21 ` [PATCH 3/6] Suspend: " Pavel Machek
[not found] ` <20071127002145.GD9759@elf.ucw.cz>
2007-11-27 16:16 ` Rafael J. Wysocki
[not found] ` <200711270033.04999.rjw@sisk.pl>
2007-11-27 0:23 ` [PATCH 6/6] Hibernation: Move extern definition to header file Pavel Machek
[not found] ` <200711270029.11185.rjw@sisk.pl>
2007-11-27 0:29 ` [PATCH 2/6] Hibernation: Move low level resume to disk.c Pavel Machek
[not found] ` <20071127002929.GF9759@elf.ucw.cz>
2007-11-27 16:06 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox