[PATCH] PM: save 8bytes in 'struct dev_pm_info'

From: Ming Lei
Date: Mon Aug 06 2012 - 22:58:09 EST


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.lei@xxxxxxxxxxxxx>
---
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/