diff options
Diffstat (limited to 'arch/um/kernel/process.c')
-rw-r--r-- | arch/um/kernel/process.c | 28 |
1 files changed, 16 insertions, 12 deletions
diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c index 1b5ef3e96c71..c45a60e9c92d 100644 --- a/arch/um/kernel/process.c +++ b/arch/um/kernel/process.c | |||
@@ -32,6 +32,7 @@ | |||
32 | #include "uml-config.h" | 32 | #include "uml-config.h" |
33 | #include "choose-mode.h" | 33 | #include "choose-mode.h" |
34 | #include "mode.h" | 34 | #include "mode.h" |
35 | #include "tempfile.h" | ||
35 | #ifdef UML_CONFIG_MODE_SKAS | 36 | #ifdef UML_CONFIG_MODE_SKAS |
36 | #include "skas.h" | 37 | #include "skas.h" |
37 | #include "skas_ptrace.h" | 38 | #include "skas_ptrace.h" |
@@ -358,11 +359,16 @@ void forward_pending_sigio(int target) | |||
358 | kill(target, SIGIO); | 359 | kill(target, SIGIO); |
359 | } | 360 | } |
360 | 361 | ||
362 | int ptrace_faultinfo = 0; | ||
363 | int proc_mm = 1; | ||
364 | |||
365 | extern void *__syscall_stub_start, __syscall_stub_end; | ||
366 | |||
361 | #ifdef UML_CONFIG_MODE_SKAS | 367 | #ifdef UML_CONFIG_MODE_SKAS |
362 | static inline int check_skas3_ptrace_support(void) | 368 | static inline void check_skas3_ptrace_support(void) |
363 | { | 369 | { |
364 | struct ptrace_faultinfo fi; | 370 | struct ptrace_faultinfo fi; |
365 | int pid, n, ret = 1; | 371 | int pid, n; |
366 | 372 | ||
367 | printf("Checking for the skas3 patch in the host..."); | 373 | printf("Checking for the skas3 patch in the host..."); |
368 | pid = start_ptraced_child(); | 374 | pid = start_ptraced_child(); |
@@ -374,33 +380,31 @@ static inline int check_skas3_ptrace_support(void) | |||
374 | else { | 380 | else { |
375 | perror("not found"); | 381 | perror("not found"); |
376 | } | 382 | } |
377 | ret = 0; | 383 | } |
378 | } else { | 384 | else { |
385 | ptrace_faultinfo = 1; | ||
379 | printf("found\n"); | 386 | printf("found\n"); |
380 | } | 387 | } |
381 | 388 | ||
382 | init_registers(pid); | 389 | init_registers(pid); |
383 | stop_ptraced_child(pid, 1, 1); | 390 | stop_ptraced_child(pid, 1, 1); |
384 | |||
385 | return(ret); | ||
386 | } | 391 | } |
387 | 392 | ||
388 | int can_do_skas(void) | 393 | int can_do_skas(void) |
389 | { | 394 | { |
390 | int ret = 1; | ||
391 | |||
392 | printf("Checking for /proc/mm..."); | 395 | printf("Checking for /proc/mm..."); |
393 | if (os_access("/proc/mm", OS_ACC_W_OK) < 0) { | 396 | if (os_access("/proc/mm", OS_ACC_W_OK) < 0) { |
397 | proc_mm = 0; | ||
394 | printf("not found\n"); | 398 | printf("not found\n"); |
395 | ret = 0; | ||
396 | goto out; | 399 | goto out; |
397 | } else { | 400 | } |
401 | else { | ||
398 | printf("found\n"); | 402 | printf("found\n"); |
399 | } | 403 | } |
400 | 404 | ||
401 | ret = check_skas3_ptrace_support(); | ||
402 | out: | 405 | out: |
403 | return ret; | 406 | check_skas3_ptrace_support(); |
407 | return 1; | ||
404 | } | 408 | } |
405 | #else | 409 | #else |
406 | int can_do_skas(void) | 410 | int can_do_skas(void) |