aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnd Bergmann <arnd@arndb.de>2018-02-02 09:56:18 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-02-07 06:18:23 -0500
commit168b6511e8e09de45bed272aaf76ef4d4ca3c05d (patch)
tree0b339ebad722dcba4473480e90a12a4349ed2327
parent7f3fdd40a7dfaa7405185250974b0fabd08c1f8b (diff)
x86: hibernate: fix swsusp_arch_resume() prototype
The declaration for swsusp_arch_resume() marks it as 'asmlinkage', but the definition in x86-32 does not, and it fails to include the header with the declaration. This leads to a warning when building with link-time-optimizations: kernel/power/power.h:108:23: error: type of 'swsusp_arch_resume' does not match original declaration [-Werror=lto-type-mismatch] extern asmlinkage int swsusp_arch_resume(void); ^ arch/x86/power/hibernate_32.c:148:0: note: 'swsusp_arch_resume' was previously declared here int swsusp_arch_resume(void) This moves the declaration into a globally visible header file and fixes up both x86 definitions to match it. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--arch/x86/power/hibernate_32.c2
-rw-r--r--arch/x86/power/hibernate_64.c2
-rw-r--r--include/linux/suspend.h2
-rw-r--r--kernel/power/power.h3
4 files changed, 4 insertions, 5 deletions
diff --git a/arch/x86/power/hibernate_32.c b/arch/x86/power/hibernate_32.c
index c35fdb585c68..afc4ed7b1578 100644
--- a/arch/x86/power/hibernate_32.c
+++ b/arch/x86/power/hibernate_32.c
@@ -145,7 +145,7 @@ static inline void resume_init_first_level_page_table(pgd_t *pg_dir)
145#endif 145#endif
146} 146}
147 147
148int swsusp_arch_resume(void) 148asmlinkage int swsusp_arch_resume(void)
149{ 149{
150 int error; 150 int error;
151 151
diff --git a/arch/x86/power/hibernate_64.c b/arch/x86/power/hibernate_64.c
index f910c514438f..0ef5e5204968 100644
--- a/arch/x86/power/hibernate_64.c
+++ b/arch/x86/power/hibernate_64.c
@@ -174,7 +174,7 @@ out:
174 return 0; 174 return 0;
175} 175}
176 176
177int swsusp_arch_resume(void) 177asmlinkage int swsusp_arch_resume(void)
178{ 178{
179 int error; 179 int error;
180 180
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index cc22a24516d6..440b62f7502e 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -384,6 +384,8 @@ extern int swsusp_page_is_forbidden(struct page *);
384extern void swsusp_set_page_free(struct page *); 384extern void swsusp_set_page_free(struct page *);
385extern void swsusp_unset_page_free(struct page *); 385extern void swsusp_unset_page_free(struct page *);
386extern unsigned long get_safe_page(gfp_t gfp_mask); 386extern unsigned long get_safe_page(gfp_t gfp_mask);
387extern asmlinkage int swsusp_arch_suspend(void);
388extern asmlinkage int swsusp_arch_resume(void);
387 389
388extern void hibernation_set_ops(const struct platform_hibernation_ops *ops); 390extern void hibernation_set_ops(const struct platform_hibernation_ops *ops);
389extern int hibernate(void); 391extern int hibernate(void);
diff --git a/kernel/power/power.h b/kernel/power/power.h
index f29cd178df90..9e58bdc8a562 100644
--- a/kernel/power/power.h
+++ b/kernel/power/power.h
@@ -104,9 +104,6 @@ extern int in_suspend;
104extern dev_t swsusp_resume_device; 104extern dev_t swsusp_resume_device;
105extern sector_t swsusp_resume_block; 105extern sector_t swsusp_resume_block;
106 106
107extern asmlinkage int swsusp_arch_suspend(void);
108extern asmlinkage int swsusp_arch_resume(void);
109
110extern int create_basic_memory_bitmaps(void); 107extern int create_basic_memory_bitmaps(void);
111extern void free_basic_memory_bitmaps(void); 108extern void free_basic_memory_bitmaps(void);
112extern int hibernate_preallocate_memory(void); 109extern int hibernate_preallocate_memory(void);