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)); |
