aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/suspend.h
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2011-01-06 19:42:31 -0500
committerLen Brown <len.brown@intel.com>2011-01-07 00:26:45 -0500
commit26fcaf60fe3861409eb4c455c5c0d0f00f599b08 (patch)
tree43b0b91df3a1c8d136b63ce499001a05c9a02c93 /include/linux/suspend.h
parent3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff)
PM: Fix oops in suspend/hibernate code related to failing ioremap()
When ioremap() fails (which might happen for some reason), we nicely oops in suspend_nvs_save() due to NULL dereference by memcpy() in there. Fail gracefully instead. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl> Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'include/linux/suspend.h')
-rw-r--r--include/linux/suspend.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 26697514c5ec..acb7d911bb0c 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -262,7 +262,7 @@ static inline bool system_entering_hibernation(void) { return false; }
262extern int suspend_nvs_register(unsigned long start, unsigned long size); 262extern int suspend_nvs_register(unsigned long start, unsigned long size);
263extern int suspend_nvs_alloc(void); 263extern int suspend_nvs_alloc(void);
264extern void suspend_nvs_free(void); 264extern void suspend_nvs_free(void);
265extern void suspend_nvs_save(void); 265extern int suspend_nvs_save(void);
266extern void suspend_nvs_restore(void); 266extern void suspend_nvs_restore(void);
267#else /* CONFIG_SUSPEND_NVS */ 267#else /* CONFIG_SUSPEND_NVS */
268static inline int suspend_nvs_register(unsigned long a, unsigned long b) 268static inline int suspend_nvs_register(unsigned long a, unsigned long b)
@@ -271,7 +271,7 @@ static inline int suspend_nvs_register(unsigned long a, unsigned long b)
271} 271}
272static inline int suspend_nvs_alloc(void) { return 0; } 272static inline int suspend_nvs_alloc(void) { return 0; }
273static inline void suspend_nvs_free(void) {} 273static inline void suspend_nvs_free(void) {}
274static inline void suspend_nvs_save(void) {} 274static inline int suspend_nvs_save(void) {}
275static inline void suspend_nvs_restore(void) {} 275static inline void suspend_nvs_restore(void) {}
276#endif /* CONFIG_SUSPEND_NVS */ 276#endif /* CONFIG_SUSPEND_NVS */
277 277