On ARMv7, sizeof(struct dev_pm_info) becomes 344Bytes from 352Bytes
after applying the patch which only changes fields' order, so we can
save 8bytes per device. Nothing in behaviour changed.

GCC: gcc version 4.5.1

Signed-off-by: Ming Lei <ming....@canonical.com>
---
 include/linux/pm.h |   22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/include/linux/pm.h b/include/linux/pm.h
index f067e60..f116d40 100644
--- a/include/linux/pm.h
+++ b/include/linux/pm.h
@@ -505,11 +505,6 @@ struct pm_subsys_data {
 
 struct dev_pm_info {
        pm_message_t            power_state;
-       unsigned int            can_wakeup:1;
-       unsigned int            async_suspend:1;
-       bool                    is_prepared:1;  /* Owned by the PM core */
-       bool                    is_suspended:1; /* Ditto */
-       bool                    ignore_children:1;
        spinlock_t              lock;
 #ifdef CONFIG_PM_SLEEP
        struct list_head        entry;
@@ -519,13 +514,12 @@ struct dev_pm_info {
 #else
        unsigned int            should_wakeup:1;
 #endif
+       unsigned int            can_wakeup:1;
+       unsigned int            async_suspend:1;
+       bool                    is_prepared:1;  /* Owned by the PM core */
+       bool                    is_suspended:1; /* Ditto */
+       bool                    ignore_children:1;
 #ifdef CONFIG_PM_RUNTIME
-       struct timer_list       suspend_timer;
-       unsigned long           timer_expires;
-       struct work_struct      work;
-       wait_queue_head_t       wait_queue;
-       atomic_t                usage_count;
-       atomic_t                child_count;
        unsigned int            disable_depth:3;
        unsigned int            idle_notification:1;
        unsigned int            request_pending:1;
@@ -538,6 +532,12 @@ struct dev_pm_info {
        unsigned int            timer_autosuspends:1;
        enum rpm_request        request;
        enum rpm_status         runtime_status;
+       struct timer_list       suspend_timer;
+       unsigned long           timer_expires;
+       struct work_struct      work;
+       wait_queue_head_t       wait_queue;
+       atomic_t                usage_count;
+       atomic_t                child_count;
        int                     runtime_error;
        int                     autosuspend_delay;
        unsigned long           last_busy;
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to