Skip to content

Commit c24c57a

Browse files
pmladekJiri Kosina
authored andcommitted
livepatch/selftest: Clean up shadow variable names and type
The shadow variable selftest is quite tricky. Especially it is problematic to understand what values are stored, returned, and printed. Make it easier to understand by using "int *var, **sv" variables consistently everywhere instead of the generic "void *", "ret", and "ctor_data". Signed-off-by: Petr Mladek <pmladek@suse.com> Reviewed-by: Joe Lawrence <joe.lawrence@redhat.com> Acked-by: Miroslav Benes <mbenes@suse.cz> Reviewed-by: Kamalesh Babulal <kamalesh@linux.vnet.ibm.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
1 parent 8f6b886 commit c24c57a

1 file changed

Lines changed: 52 additions & 41 deletions

File tree

lib/livepatch/test_klp_shadow_vars.c

Lines changed: 52 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -60,36 +60,43 @@ static int ptr_id(void *ptr)
6060
*/
6161
static void *shadow_get(void *obj, unsigned long id)
6262
{
63-
void *ret = klp_shadow_get(obj, id);
63+
int **sv;
6464

65+
sv = klp_shadow_get(obj, id);
6566
pr_info("klp_%s(obj=PTR%d, id=0x%lx) = PTR%d\n",
66-
__func__, ptr_id(obj), id, ptr_id(ret));
67+
__func__, ptr_id(obj), id, ptr_id(sv));
6768

68-
return ret;
69+
return sv;
6970
}
7071

7172
static void *shadow_alloc(void *obj, unsigned long id, size_t size,
7273
gfp_t gfp_flags, klp_shadow_ctor_t ctor,
7374
void *ctor_data)
7475
{
75-
void *ret = klp_shadow_alloc(obj, id, size, gfp_flags, ctor,
76-
ctor_data);
76+
int *var = ctor_data;
77+
int **sv;
78+
79+
sv = klp_shadow_alloc(obj, id, size, gfp_flags, ctor, var);
7780
pr_info("klp_%s(obj=PTR%d, id=0x%lx, size=%zx, gfp_flags=%pGg), ctor=PTR%d, ctor_data=PTR%d = PTR%d\n",
7881
__func__, ptr_id(obj), id, size, &gfp_flags, ptr_id(ctor),
79-
ptr_id(ctor_data), ptr_id(ret));
80-
return ret;
82+
ptr_id(var), ptr_id(sv));
83+
84+
return sv;
8185
}
8286

8387
static void *shadow_get_or_alloc(void *obj, unsigned long id, size_t size,
8488
gfp_t gfp_flags, klp_shadow_ctor_t ctor,
8589
void *ctor_data)
8690
{
87-
void *ret = klp_shadow_get_or_alloc(obj, id, size, gfp_flags, ctor,
88-
ctor_data);
91+
int *var = ctor_data;
92+
int **sv;
93+
94+
sv = klp_shadow_get_or_alloc(obj, id, size, gfp_flags, ctor, var);
8995
pr_info("klp_%s(obj=PTR%d, id=0x%lx, size=%zx, gfp_flags=%pGg), ctor=PTR%d, ctor_data=PTR%d = PTR%d\n",
9096
__func__, ptr_id(obj), id, size, &gfp_flags, ptr_id(ctor),
91-
ptr_id(ctor_data), ptr_id(ret));
92-
return ret;
97+
ptr_id(var), ptr_id(sv));
98+
99+
return sv;
93100
}
94101

95102
static void shadow_free(void *obj, unsigned long id, klp_shadow_dtor_t dtor)
@@ -110,18 +117,22 @@ static void shadow_free_all(unsigned long id, klp_shadow_dtor_t dtor)
110117
/* Shadow variable constructor - remember simple pointer data */
111118
static int shadow_ctor(void *obj, void *shadow_data, void *ctor_data)
112119
{
113-
int **shadow_int = shadow_data;
114-
*shadow_int = ctor_data;
120+
int **sv = shadow_data;
121+
int *var = ctor_data;
122+
123+
*sv = var;
115124
pr_info("%s: PTR%d -> PTR%d\n",
116-
__func__, ptr_id(shadow_int), ptr_id(ctor_data));
125+
__func__, ptr_id(sv), ptr_id(var));
117126

118127
return 0;
119128
}
120129

121130
static void shadow_dtor(void *obj, void *shadow_data)
122131
{
132+
int **sv = shadow_data;
133+
123134
pr_info("%s(obj=PTR%d, shadow_data=PTR%d)\n",
124-
__func__, ptr_id(obj), ptr_id(shadow_data));
135+
__func__, ptr_id(obj), ptr_id(sv));
125136
}
126137

127138
static int test_klp_shadow_vars_init(void)
@@ -134,7 +145,7 @@ static int test_klp_shadow_vars_init(void)
134145
int var1, var2, var3, var4;
135146
int **sv1, **sv2, **sv3, **sv4;
136147

137-
void *ret;
148+
int **sv;
138149

139150
ptr_id(NULL);
140151
ptr_id(&var1);
@@ -146,8 +157,8 @@ static int test_klp_shadow_vars_init(void)
146157
* With an empty shadow variable hash table, expect not to find
147158
* any matches.
148159
*/
149-
ret = shadow_get(obj, id);
150-
if (!ret)
160+
sv = shadow_get(obj, id);
161+
if (!sv)
151162
pr_info(" got expected NULL result\n");
152163

153164
/*
@@ -169,23 +180,23 @@ static int test_klp_shadow_vars_init(void)
169180
* Verify we can find our new shadow variables and that they point
170181
* to expected data.
171182
*/
172-
ret = shadow_get(obj, id);
173-
if (!ret)
183+
sv = shadow_get(obj, id);
184+
if (!sv)
174185
return -EINVAL;
175-
if (ret == sv1 && *sv1 == &var1)
186+
if (sv == sv1 && *sv1 == &var1)
176187
pr_info(" got expected PTR%d -> PTR%d result\n",
177188
ptr_id(sv1), ptr_id(*sv1));
178189

179-
ret = shadow_get(obj + 1, id);
180-
if (!ret)
190+
sv = shadow_get(obj + 1, id);
191+
if (!sv)
181192
return -EINVAL;
182-
if (ret == sv2 && *sv2 == &var2)
193+
if (sv == sv2 && *sv2 == &var2)
183194
pr_info(" got expected PTR%d -> PTR%d result\n",
184195
ptr_id(sv2), ptr_id(*sv2));
185-
ret = shadow_get(obj, id + 1);
186-
if (!ret)
196+
sv = shadow_get(obj, id + 1);
197+
if (!sv)
187198
return -EINVAL;
188-
if (ret == sv3 && *sv3 == &var3)
199+
if (sv == sv3 && *sv3 == &var3)
189200
pr_info(" got expected PTR%d -> PTR%d result\n",
190201
ptr_id(sv3), ptr_id(*sv3));
191202

@@ -197,10 +208,10 @@ static int test_klp_shadow_vars_init(void)
197208
if (!sv4)
198209
return -ENOMEM;
199210

200-
ret = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4);
201-
if (!ret)
211+
sv = shadow_get_or_alloc(obj + 2, id, size, gfp_flags, shadow_ctor, &var4);
212+
if (!sv)
202213
return -EINVAL;
203-
if (ret == sv4 && *sv4 == &var4)
214+
if (sv == sv4 && *sv4 == &var4)
204215
pr_info(" got expected PTR%d -> PTR%d result\n",
205216
ptr_id(sv4), ptr_id(*sv4));
206217

@@ -209,36 +220,36 @@ static int test_klp_shadow_vars_init(void)
209220
* longer find them.
210221
*/
211222
shadow_free(obj, id, shadow_dtor); /* sv1 */
212-
ret = shadow_get(obj, id);
213-
if (!ret)
223+
sv = shadow_get(obj, id);
224+
if (!sv)
214225
pr_info(" got expected NULL result\n");
215226

216227
shadow_free(obj + 1, id, shadow_dtor); /* sv2 */
217-
ret = shadow_get(obj + 1, id);
218-
if (!ret)
228+
sv = shadow_get(obj + 1, id);
229+
if (!sv)
219230
pr_info(" got expected NULL result\n");
220231

221232
shadow_free(obj + 2, id, shadow_dtor); /* sv4 */
222-
ret = shadow_get(obj + 2, id);
223-
if (!ret)
233+
sv = shadow_get(obj + 2, id);
234+
if (!sv)
224235
pr_info(" got expected NULL result\n");
225236

226237
/*
227238
* We should still find an <id+1> variable.
228239
*/
229-
ret = shadow_get(obj, id + 1);
230-
if (!ret)
240+
sv = shadow_get(obj, id + 1);
241+
if (!sv)
231242
return -EINVAL;
232-
if (ret == sv3 && *sv3 == &var3)
243+
if (sv == sv3 && *sv3 == &var3)
233244
pr_info(" got expected PTR%d -> PTR%d result\n",
234245
ptr_id(sv3), ptr_id(*sv3));
235246

236247
/*
237248
* Free all the <id+1> variables, too.
238249
*/
239250
shadow_free_all(id + 1, shadow_dtor); /* sv3 */
240-
ret = shadow_get(obj, id);
241-
if (!ret)
251+
sv = shadow_get(obj, id);
252+
if (!sv)
242253
pr_info(" shadow_get() got expected NULL result\n");
243254

244255

0 commit comments

Comments
 (0)