]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
Merge branches 'pm-sleep' and 'pm-runtime'
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 10 Feb 2015 15:09:52 +0000 (16:09 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 10 Feb 2015 15:09:52 +0000 (16:09 +0100)
* pm-sleep:
  PM / hibernate: exclude freed pages from allocated pages printout
  PM / sleep: export suspend_resume trace event
  PM / sleep: Mention async suspend in PM_TRACE documentation
  PM / hibernate: Remove unused function

* pm-runtime:
  ACPI / PM: Remove unneeded nested #ifdef
  USB / PM: Remove unneeded #ifdef and associated dead code

Documentation/power/s2ram.txt
drivers/acpi/device_pm.c
drivers/usb/core/hub.c
kernel/power/snapshot.c
kernel/trace/power-traces.c

index 1bdfa04437732753636e3b6adfc84d7e2626adab..4685aee197fdefdedc9f7a19174b458f58b92f95 100644 (file)
@@ -69,6 +69,10 @@ Reason for this is that the RTC is the only reliably available piece of
 hardware during resume operations where a value can be set that will
 survive a reboot.
 
+pm_trace is not compatible with asynchronous suspend, so it turns
+asynchronous suspend off (which may work around timing or
+ordering-sensitive bugs).
+
 Consequence is that after a resume (even if it is successful) your system
 clock will have a value corresponding to the magic number instead of the
 correct date/time! It is therefore advisable to use a program like ntp-date
index c0d44d394ca39c63f87f212f0345d0c05d9acdc4..735db11a9b001fdf9811d2ac292ba62bc4e2ff4b 100644 (file)
@@ -1027,7 +1027,6 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
 
 static struct dev_pm_domain acpi_general_pm_domain = {
        .ops = {
-#ifdef CONFIG_PM
                .runtime_suspend = acpi_subsys_runtime_suspend,
                .runtime_resume = acpi_subsys_runtime_resume,
 #ifdef CONFIG_PM_SLEEP
@@ -1040,7 +1039,6 @@ static struct dev_pm_domain acpi_general_pm_domain = {
                .poweroff = acpi_subsys_suspend,
                .poweroff_late = acpi_subsys_suspend_late,
                .restore_early = acpi_subsys_resume_early,
-#endif
 #endif
        },
 };
index aeb50bb6ba9ca17e345f3e7e737560d03b88abbe..eaffb0248de1a6791c18bd3d43410d84015ad889 100644 (file)
@@ -3452,8 +3452,6 @@ int usb_port_resume(struct usb_device *udev, pm_message_t msg)
        return status;
 }
 
-#ifdef CONFIG_PM
-
 int usb_remote_wakeup(struct usb_device *udev)
 {
        int     status = 0;
@@ -3512,16 +3510,6 @@ static int hub_handle_remote_wakeup(struct usb_hub *hub, unsigned int port,
        return connect_change;
 }
 
-#else
-
-static int hub_handle_remote_wakeup(struct usb_hub *hub, unsigned int port,
-               u16 portstatus, u16 portchange)
-{
-       return 0;
-}
-
-#endif
-
 static int check_ports_changed(struct usb_hub *hub)
 {
        int port1;
index 0c40c16174b4d8eb638a06efe159446ded6f2e71..c24d5a23bf939be71f75736efdbd3874da157c2d 100644 (file)
@@ -1472,9 +1472,9 @@ static inline unsigned long preallocate_highmem_fraction(unsigned long nr_pages,
 /**
  * free_unnecessary_pages - Release preallocated pages not needed for the image
  */
-static void free_unnecessary_pages(void)
+static unsigned long free_unnecessary_pages(void)
 {
-       unsigned long save, to_free_normal, to_free_highmem;
+       unsigned long save, to_free_normal, to_free_highmem, free;
 
        save = count_data_pages();
        if (alloc_normal >= save) {
@@ -1495,6 +1495,7 @@ static void free_unnecessary_pages(void)
                else
                        to_free_normal = 0;
        }
+       free = to_free_normal + to_free_highmem;
 
        memory_bm_position_reset(&copy_bm);
 
@@ -1518,6 +1519,8 @@ static void free_unnecessary_pages(void)
                swsusp_unset_page_free(page);
                __free_page(page);
        }
+
+       return free;
 }
 
 /**
@@ -1707,7 +1710,7 @@ int hibernate_preallocate_memory(void)
         * pages in memory, but we have allocated more.  Release the excessive
         * ones now.
         */
-       free_unnecessary_pages();
+       pages -= free_unnecessary_pages();
 
  out:
        stop = ktime_get();
@@ -2310,8 +2313,6 @@ static inline void free_highmem_data(void)
                free_image_page(buffer, PG_UNSAFE_CLEAR);
 }
 #else
-static inline int get_safe_write_buffer(void) { return 0; }
-
 static unsigned int
 count_highmem_image_pages(struct memory_bitmap *bm) { return 0; }
 
index 1c71382b283d5abe23fedb1923952aa02ee6c73a..eb4220a132ecd1be9002cf35edf82870969d6c82 100644 (file)
@@ -13,5 +13,6 @@
 #define CREATE_TRACE_POINTS
 #include <trace/events/power.h>
 
+EXPORT_TRACEPOINT_SYMBOL_GPL(suspend_resume);
 EXPORT_TRACEPOINT_SYMBOL_GPL(cpu_idle);