File tree Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Expand file tree Collapse file tree 1 file changed +12
-5
lines changed Original file line number Diff line number Diff line change @@ -206,29 +206,36 @@ int os_drop_memory(void *addr, int length)
206
206
int can_drop_memory (void )
207
207
{
208
208
void * addr ;
209
- int fd ;
209
+ int fd , ok = 0 ;
210
210
211
211
printk ("Checking host MADV_REMOVE support..." );
212
212
fd = create_mem_file (UM_KERN_PAGE_SIZE );
213
213
if (fd < 0 ){
214
214
printk ("Creating test memory file failed, err = %d\n" , - fd );
215
- return 0 ;
215
+ goto out ;
216
216
}
217
217
218
218
addr = mmap64 (NULL , UM_KERN_PAGE_SIZE , PROT_READ | PROT_WRITE ,
219
219
MAP_SHARED , fd , 0 );
220
220
if (addr == MAP_FAILED ){
221
221
printk ("Mapping test memory file failed, err = %d\n" , - errno );
222
- return 0 ;
222
+ goto out_close ;
223
223
}
224
224
225
225
if (madvise (addr , UM_KERN_PAGE_SIZE , MADV_REMOVE ) != 0 ){
226
226
printk ("MADV_REMOVE failed, err = %d\n" , - errno );
227
- return 0 ;
227
+ goto out_unmap ;
228
228
}
229
229
230
230
printk ("OK\n" );
231
- return 1 ;
231
+ ok = 1 ;
232
+
233
+ out_unmap :
234
+ munmap (addr , UM_KERN_PAGE_SIZE );
235
+ out_close :
236
+ close (fd );
237
+ out :
238
+ return ok ;
232
239
}
233
240
234
241
void init_new_thread_stack (void * sig_stack , void (* usr1_handler )(int ))
You can’t perform that action at this time.
0 commit comments