@@ -163,22 +163,24 @@ NOKPROBE_SYMBOL(__patch_insn_write);
163
163
164
164
static int patch_insn_set (void * addr , u8 c , size_t len )
165
165
{
166
- size_t patched = 0 ;
167
166
size_t size ;
168
- int ret = 0 ;
167
+ int ret ;
169
168
170
169
/*
171
170
* __patch_insn_set() can only work on 2 pages at a time so call it in a
172
171
* loop with len <= 2 * PAGE_SIZE.
173
172
*/
174
- while (patched < len && !ret ) {
175
- size = min_t (size_t , PAGE_SIZE * 2 - offset_in_page (addr + patched ), len - patched );
176
- ret = __patch_insn_set (addr + patched , c , size );
177
-
178
- patched += size ;
173
+ while (len ) {
174
+ size = min (len , PAGE_SIZE * 2 - offset_in_page (addr ));
175
+ ret = __patch_insn_set (addr , c , size );
176
+ if (ret )
177
+ return ret ;
178
+
179
+ addr += size ;
180
+ len -= size ;
179
181
}
180
182
181
- return ret ;
183
+ return 0 ;
182
184
}
183
185
NOKPROBE_SYMBOL (patch_insn_set );
184
186
@@ -198,22 +200,25 @@ NOKPROBE_SYMBOL(patch_text_set_nosync);
198
200
199
201
int patch_insn_write (void * addr , const void * insn , size_t len )
200
202
{
201
- size_t patched = 0 ;
202
203
size_t size ;
203
- int ret = 0 ;
204
+ int ret ;
204
205
205
206
/*
206
207
* Copy the instructions to the destination address, two pages at a time
207
208
* because __patch_insn_write() can only handle len <= 2 * PAGE_SIZE.
208
209
*/
209
- while (patched < len && !ret ) {
210
- size = min_t (size_t , PAGE_SIZE * 2 - offset_in_page (addr + patched ), len - patched );
211
- ret = __patch_insn_write (addr + patched , insn + patched , size );
212
-
213
- patched += size ;
210
+ while (len ) {
211
+ size = min (len , PAGE_SIZE * 2 - offset_in_page (addr ));
212
+ ret = __patch_insn_write (addr , insn , size );
213
+ if (ret )
214
+ return ret ;
215
+
216
+ addr += size ;
217
+ insn += size ;
218
+ len -= size ;
214
219
}
215
220
216
- return ret ;
221
+ return 0 ;
217
222
}
218
223
NOKPROBE_SYMBOL (patch_insn_write );
219
224
0 commit comments