diff options
author | Jiri Slaby <jslaby@suse.cz> | 2011-01-06 19:42:31 -0500 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2011-01-07 00:26:45 -0500 |
commit | 26fcaf60fe3861409eb4c455c5c0d0f00f599b08 (patch) | |
tree | 43b0b91df3a1c8d136b63ce499001a05c9a02c93 /include/linux/suspend.h | |
parent | 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (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.h | 4 |
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; } | |||
262 | extern int suspend_nvs_register(unsigned long start, unsigned long size); | 262 | extern int suspend_nvs_register(unsigned long start, unsigned long size); |
263 | extern int suspend_nvs_alloc(void); | 263 | extern int suspend_nvs_alloc(void); |
264 | extern void suspend_nvs_free(void); | 264 | extern void suspend_nvs_free(void); |
265 | extern void suspend_nvs_save(void); | 265 | extern int suspend_nvs_save(void); |
266 | extern void suspend_nvs_restore(void); | 266 | extern void suspend_nvs_restore(void); |
267 | #else /* CONFIG_SUSPEND_NVS */ | 267 | #else /* CONFIG_SUSPEND_NVS */ |
268 | static inline int suspend_nvs_register(unsigned long a, unsigned long b) | 268 | static 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 | } |
272 | static inline int suspend_nvs_alloc(void) { return 0; } | 272 | static inline int suspend_nvs_alloc(void) { return 0; } |
273 | static inline void suspend_nvs_free(void) {} | 273 | static inline void suspend_nvs_free(void) {} |
274 | static inline void suspend_nvs_save(void) {} | 274 | static inline int suspend_nvs_save(void) {} |
275 | static inline void suspend_nvs_restore(void) {} | 275 | static inline void suspend_nvs_restore(void) {} |
276 | #endif /* CONFIG_SUSPEND_NVS */ | 276 | #endif /* CONFIG_SUSPEND_NVS */ |
277 | 277 | ||