diff options
Diffstat (limited to 'kernel/power/nvs.c')
-rw-r--r-- | kernel/power/nvs.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/kernel/power/nvs.c b/kernel/power/nvs.c index 1836db60bbb6..57c6fabbb6b6 100644 --- a/kernel/power/nvs.c +++ b/kernel/power/nvs.c | |||
@@ -105,7 +105,7 @@ int suspend_nvs_alloc(void) | |||
105 | /** | 105 | /** |
106 | * suspend_nvs_save - save NVS memory regions | 106 | * suspend_nvs_save - save NVS memory regions |
107 | */ | 107 | */ |
108 | void suspend_nvs_save(void) | 108 | int suspend_nvs_save(void) |
109 | { | 109 | { |
110 | struct nvs_page *entry; | 110 | struct nvs_page *entry; |
111 | 111 | ||
@@ -114,8 +114,14 @@ void suspend_nvs_save(void) | |||
114 | list_for_each_entry(entry, &nvs_list, node) | 114 | list_for_each_entry(entry, &nvs_list, node) |
115 | if (entry->data) { | 115 | if (entry->data) { |
116 | entry->kaddr = ioremap(entry->phys_start, entry->size); | 116 | entry->kaddr = ioremap(entry->phys_start, entry->size); |
117 | if (!entry->kaddr) { | ||
118 | suspend_nvs_free(); | ||
119 | return -ENOMEM; | ||
120 | } | ||
117 | memcpy(entry->data, entry->kaddr, entry->size); | 121 | memcpy(entry->data, entry->kaddr, entry->size); |
118 | } | 122 | } |
123 | |||
124 | return 0; | ||
119 | } | 125 | } |
120 | 126 | ||
121 | /** | 127 | /** |