Commit 7056fb83 authored by Gilles Chanteperdrix's avatar Gilles Chanteperdrix
Browse files

arm/ipipe: forbid UACCESS_WITH_MEMCPY

The implementation of copy to/from user-space with memcpy requires
pinning the user-space pages and holding the page table spinlock.
Enabling this option with I-pipe debug option results in the following
trace during the execution of the mutex-torture-native unit test:

[  146.850000] I-pipe: Detected illicit call from head domain 'Xenomai'
[  146.850000]         into a regular Linux service
[  146.850000] CPU: 0 PID: 760 Comm: main_task Not tainted 3.18.20-ipipe
[  146.850000] [<c0011fb9>] (unwind_backtrace) from [<c00100fd>]
(show_stack+0x11/0x14)
[  146.850000] [<c00100fd>] (show_stack) from [<c00557d5>]
(ipipe_root_only+0x71/0xa8)
[  146.850000] [<c00557d5>] (ipipe_root_only) from [<c002e83f>]
(preempt_count_add+0x1b/0xe0)
[  146.850000] [<c002e83f>] (preempt_count_add) from [<c0442309>]
(_raw_spin_lock+0x11/0x1c)
[  146.850000] [<c0442309>] (_raw_spin_lock) from [<c020e911>]
(pin_page_for_write+0x49/0x78)
[  146.850000] [<c020e911>] (pin_page_for_write) from [<c020e999>]
(__copy_to_user_memcpy+0x59/0xf0)
[  146.850000] [<c020e999>] (__copy_to_user_memcpy) from [<c0099e61>]
(__rt_task_inquire+0x69/0x8c)
[  146.850000] [<c0099e61>] (__rt_task_inquire) from [<c0083cfd>]
(hisyscall_event+0x131/0x27c)
[  146.850000] [<c0083cfd>] (hisyscall_event) from [<c00568ab>]
(__ipipe_notify_syscall+0x5f/0x178)
[  146.850000] [<c00568ab>] (__ipipe_notify_syscall) from [<c000d6e9>]
(pipeline_syscall+0x7/0x22)
[  146.850000] [<c000d6e9>] (pipeline_syscall) from [<bed2ebc8>]
(0xbed2ebc8)
parent 4c685e1f
......@@ -1731,6 +1731,7 @@ config ALIGNMENT_TRAP
config UACCESS_WITH_MEMCPY
bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
depends on MMU
depends on !IPIPE
default y if CPU_FEROCEON
help
Implement faster copy_to_user and clear_user methods for CPU
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment