diff options
Diffstat (limited to 'lib/livepatch/test_klp_shadow_vars.c')
-rw-r--r-- | lib/livepatch/test_klp_shadow_vars.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/lib/livepatch/test_klp_shadow_vars.c b/lib/livepatch/test_klp_shadow_vars.c index f5441c193166..fe5c413efe96 100644 --- a/lib/livepatch/test_klp_shadow_vars.c +++ b/lib/livepatch/test_klp_shadow_vars.c | |||
@@ -154,22 +154,37 @@ static int test_klp_shadow_vars_init(void) | |||
154 | * Allocate a few shadow variables with different <obj> and <id>. | 154 | * Allocate a few shadow variables with different <obj> and <id>. |
155 | */ | 155 | */ |
156 | sv1 = shadow_alloc(obj, id, size, gfp_flags, shadow_ctor, &var1); | 156 | sv1 = shadow_alloc(obj, id, size, gfp_flags, shadow_ctor, &var1); |
157 | if (!sv1) | ||
158 | return -ENOMEM; | ||
159 | |||
157 | sv2 = shadow_alloc(obj + 1, id, size, gfp_flags, shadow_ctor, &var2); | 160 | sv2 = shadow_alloc(obj + 1, id, size, gfp_flags, shadow_ctor, &var2); |
161 | if (!sv2) | ||
162 | return -ENOMEM; | ||
163 | |||
158 | sv3 = shadow_alloc(obj, id + 1, size, gfp_flags, shadow_ctor, &var3); | 164 | sv3 = shadow_alloc(obj, id + 1, size, gfp_flags, shadow_ctor, &var3); |
165 | if (!sv3) | ||
166 | return -ENOMEM; | ||
159 | 167 | ||
160 | /* | 168 | /* |
161 | * Verify we can find our new shadow variables and that they point | 169 | * Verify we can find our new shadow variables and that they point |
162 | * to expected data. | 170 | * to expected data. |
163 | */ | 171 | */ |
164 | ret = shadow_get(obj, id); | 172 | ret = shadow_get(obj, id); |
173 | if (!ret) | ||
174 | return -EINVAL; | ||
165 | if (ret == sv1 && *sv1 == &var1) | 175 | if (ret == sv1 && *sv1 == &var1) |
166 | pr_info(" got expected PTR%d -> PTR%d result\n", | 176 | pr_info(" got expected PTR%d -> PTR%d result\n", |
167 | ptr_id(sv1), ptr_id(*sv1)); | 177 | ptr_id(sv1), ptr_id(*sv1)); |
178 | |||
168 | ret = shadow_get(obj + 1, id); | 179 | ret = shadow_get(obj + 1, id); |
180 | if (!ret) | ||
181 | return -EINVAL; | ||
169 | if (ret == sv2 && *sv2 == &var2) | 182 | if (ret == sv2 && *sv2 == &var2) |
170 | pr_info(" got expected PTR%d -> PTR%d result\n", | 183 | pr_info(" got expected PTR%d -> PTR%d result\n", |
171 | ptr_id(sv2), ptr_id(*sv2)); | 184 | ptr_id(sv2), ptr_id(*sv2)); |
172 | ret = shadow_get(obj, id + 1); | 185 | ret = shadow_get(obj, id + 1); |
186 | if (!ret) | ||
187 | return -EINVAL; | ||
173 | if (ret == sv3 && *sv3 == &var3) | 188 | if (ret == sv3 && *sv3 == &var3) |
174 | pr_info(" got expected PTR%d -> PTR%d result\n", | 189 | pr_info(" got expected PTR%d -> PTR%d result\n", |
175 | ptr_id(sv3), ptr_id(*sv3)); | 190 | ptr_id(sv3), ptr_id(*sv3)); |
@@ -179,7 +194,12 @@ static int test_klp_shadow_vars_init(void) | |||
179 | * The second invocation should return the same shadow var. | 194 | * The second invocation should return the same shadow var. |
180 | */ | 195 | */ |
181 | sv4 = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4); | 196 | sv4 = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4); |
197 | if (!sv4) | ||
198 | return -ENOMEM; | ||
199 | |||
182 | ret = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4); | 200 | ret = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4); |
201 | if (!ret) | ||
202 | return -EINVAL; | ||
183 | if (ret == sv4 && *sv4 == &var4) | 203 | if (ret == sv4 && *sv4 == &var4) |
184 | pr_info(" got expected PTR%d -> PTR%d result\n", | 204 | pr_info(" got expected PTR%d -> PTR%d result\n", |
185 | ptr_id(sv4), ptr_id(*sv4)); | 205 | ptr_id(sv4), ptr_id(*sv4)); |
@@ -207,6 +227,8 @@ static int test_klp_shadow_vars_init(void) | |||
207 | * We should still find an <id+1> variable. | 227 | * We should still find an <id+1> variable. |
208 | */ | 228 | */ |
209 | ret = shadow_get(obj, id + 1); | 229 | ret = shadow_get(obj, id + 1); |
230 | if (!ret) | ||
231 | return -EINVAL; | ||
210 | if (ret == sv3 && *sv3 == &var3) | 232 | if (ret == sv3 && *sv3 == &var3) |
211 | pr_info(" got expected PTR%d -> PTR%d result\n", | 233 | pr_info(" got expected PTR%d -> PTR%d result\n", |
212 | ptr_id(sv3), ptr_id(*sv3)); | 234 | ptr_id(sv3), ptr_id(*sv3)); |