Activity log for bug #703228

Date Who What changed Old value New value Message
2011-01-15 10:21:45 Colin Ian King bug added bug
2011-01-15 10:25:54 Colin Ian King description Ubuntu-2.6.35-25, Maverick. After repeated S4 cycles, a memcpy() Oops occurs in suspend_nvs_save. This error occurs because the ioremap of the NVS region fails, returning NULL and the subsequent memcpy() tries to copy to a NULL pointer, hence the oops. We running out of mappable regions because suspend_nvs_save() is called twice during hibernation, and yet the unmapping via suspend_nvs_free() is only called once, hence we have a leak. Looking at create_image() in kernel/power/hibernate.c, we can see that we call the __acpi_pm_prepare() via arch_prepare_suspend() and a little later we call platform_pre_snapshot() which calls acpi_hibernation_pre_snapshot() which does the duplication of the suspend_nvs_save(). We need to drop on these. This has been fixed in upstream commit: commit c5f7a1bb65bca03253c189e946b3ca79669f08af Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Fri Jul 2 00:14:09 2010 +0200 ACPI / Sleep: Consolidate suspend and hibernation routines Some hibernation and suspend routines can be merged, which reduces the complexity of code a bit. Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com> ..where the extraneous suspend_nvs_save() has been dropped from function __acpi_pm_prepare() Ubuntu-2.6.35-25, Maverick. After repeated S4 cycles, a memcpy() Oops occurs in suspend_nvs_save. This error occurs because the ioremap of the NVS region fails, returning NULL and the subsequent memcpy() tries to copy to a NULL pointer, hence the oops. We are running out of mappable regions because suspend_nvs_save() is called twice during hibernation, and yet the unmapping via suspend_nvs_free() is only called once, hence we have a leak. Looking at create_image() in kernel/power/hibernate.c, we can see that we call the __acpi_pm_prepare() via arch_prepare_suspend() and a little later we call platform_pre_snapshot() which calls acpi_hibernation_pre_snapshot() which does the duplication of the suspend_nvs_save(). We need to drop on these. This has been fixed in upstream commit: commit c5f7a1bb65bca03253c189e946b3ca79669f08af Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Fri Jul 2 00:14:09 2010 +0200     ACPI / Sleep: Consolidate suspend and hibernation routines     Some hibernation and suspend routines can be merged, which reduces     the complexity of code a bit.     Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>     Signed-off-by: Len Brown <len.brown@intel.com> ..where the extraneous suspend_nvs_save() has been dropped from function __acpi_pm_prepare()
2011-01-15 10:27:28 Colin Ian King description Ubuntu-2.6.35-25, Maverick. After repeated S4 cycles, a memcpy() Oops occurs in suspend_nvs_save. This error occurs because the ioremap of the NVS region fails, returning NULL and the subsequent memcpy() tries to copy to a NULL pointer, hence the oops. We are running out of mappable regions because suspend_nvs_save() is called twice during hibernation, and yet the unmapping via suspend_nvs_free() is only called once, hence we have a leak. Looking at create_image() in kernel/power/hibernate.c, we can see that we call the __acpi_pm_prepare() via arch_prepare_suspend() and a little later we call platform_pre_snapshot() which calls acpi_hibernation_pre_snapshot() which does the duplication of the suspend_nvs_save(). We need to drop on these. This has been fixed in upstream commit: commit c5f7a1bb65bca03253c189e946b3ca79669f08af Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Fri Jul 2 00:14:09 2010 +0200     ACPI / Sleep: Consolidate suspend and hibernation routines     Some hibernation and suspend routines can be merged, which reduces     the complexity of code a bit.     Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>     Signed-off-by: Len Brown <len.brown@intel.com> ..where the extraneous suspend_nvs_save() has been dropped from function __acpi_pm_prepare() Ubuntu-2.6.35-25, Maverick. After repeated S4 cycles, a memcpy() Oops occurs in suspend_nvs_save. This error occurs because the ioremap of the NVS region fails, returning NULL and the subsequent memcpy() tries to copy to a NULL pointer, hence the oops. We are running out of mappable regions because suspend_nvs_save() is called twice during hibernation, and yet the unmapping via suspend_nvs_free() is only called once, hence we have a leak. Looking at create_image() in kernel/power/hibernate.c, we can see that we call the __acpi_pm_prepare() via arch_prepare_suspend() and a little later we call platform_pre_snapshot() which calls acpi_hibernation_pre_snapshot() which does the duplication of the suspend_nvs_save(). We need to drop one of these. This has been fixed in upstream commit: commit c5f7a1bb65bca03253c189e946b3ca79669f08af Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Fri Jul 2 00:14:09 2010 +0200     ACPI / Sleep: Consolidate suspend and hibernation routines     Some hibernation and suspend routines can be merged, which reduces     the complexity of code a bit.     Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>     Signed-off-by: Len Brown <len.brown@intel.com> ..where the extraneous suspend_nvs_save() has been dropped from function __acpi_pm_prepare()
2011-01-17 11:43:26 Andy Whitcroft nominated for series Ubuntu Maverick
2011-01-17 11:43:26 Andy Whitcroft bug task added linux (Ubuntu Maverick)
2011-01-17 11:44:01 Andy Whitcroft linux (Ubuntu): assignee Colin King (colin-king)
2011-01-17 11:44:08 Andy Whitcroft linux (Ubuntu): status New Fix Released
2011-01-17 11:44:18 Andy Whitcroft linux (Ubuntu): importance Undecided Medium
2011-01-17 11:44:24 Andy Whitcroft linux (Ubuntu Maverick): importance Undecided Medium
2011-01-17 11:44:39 Andy Whitcroft linux (Ubuntu Maverick): assignee Colin King (colin-king)
2011-01-17 11:44:47 Andy Whitcroft linux (Ubuntu Maverick): status New In Progress
2011-02-01 20:39:22 Martin Pitt bug added subscriber Ubuntu Stable Release Updates Team
2011-02-01 20:39:27 Martin Pitt bug added subscriber SRU Verification
2011-02-02 17:40:30 Colin Ian King tags verification-done
2011-02-02 18:11:57 Chris Van Hoof linux (Ubuntu Maverick): status In Progress Fix Committed
2011-02-02 18:12:14 Chris Van Hoof bug added subscriber Chris Van Hoof
2011-02-02 18:12:15 Chris Van Hoof tags verification-done hwe-blocker verification-done
2011-02-05 00:02:05 Brad Figg tags hwe-blocker verification-done hwe-blocker verification-done-maverick
2011-02-11 18:55:20 Ayan George bug added subscriber Canonical Hardware Enablement Team
2011-03-01 13:27:45 Launchpad Janitor linux (Ubuntu Maverick): status Fix Committed Fix Released
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3698
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3865
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3875
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3876
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3877
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-3880
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-4079
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-4083
2011-03-01 13:27:45 Launchpad Janitor cve linked 2010-4248