Files
mckernel/test/user_space/patch/syscall.patch
Masamichi Takagi 56abe988f3 test: Fix user_space, testing use of copy_from_user / copy_to_user
Change-Id: I2caef1ba6597f693dc4f773ef8fedbd837c45ce6
2018-11-29 11:32:42 +09:00

94 lines
3.4 KiB
Diff

diff --git a/arch/x86_64/kernel/syscall.c b/arch/x86_64/kernel/syscall.c
index 29dbd04..66f77b5 100644
--- a/arch/x86_64/kernel/syscall.c
+++ b/arch/x86_64/kernel/syscall.c
@@ -1936,6 +1936,8 @@ int do_process_vm_read_writev(int pid,
struct vm_range *range;
struct mcs_rwlock_node_irqsave lock;
struct mcs_rwlock_node update_lock;
+ kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH
/* Sanity checks */
if (flags) {
@@ -2212,6 +2214,8 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
int count = mpsr->count;
struct page_table *save_pt;
extern struct page_table *get_init_page_table(void);
+ kprintf("%s: mpsr->user_virt_addr:%lx,mpsr->user_nodes:%lx,mpsr->user_status:%lx\n",
+ __FUNCTION__, mpsr->user_virt_addr, mpsr->user_nodes, mpsr->user_status); //PATCH
i_s = (count / nr_cpus) * cpu_index;
i_e = i_s + (count / nr_cpus);
diff --git a/kernel/futex.c b/kernel/futex.c
index 495ee50..a7d08e2 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -749,6 +749,12 @@ static int futex_wait_setup(uint32_t __user *uaddr, uint32_t val, int fshared,
*hb = queue_lock(q);
ret = get_futex_value_locked(&uval, uaddr);
+ {
+ uint32_t uval_from_uaddr;
+ copy_from_user(&uval_from_uaddr, uaddr, sizeof(uint32_t));
+ kprintf("get_futex_value_locked: uval:%d,*uaddr:%d,uaddr:%lx\n",
+ uval, uval_from_uaddr, uaddr); //PATCH
+ }
if (ret) {
queue_unlock(q, *hb);
put_futex_key(fshared, &q->key);
diff --git a/kernel/syscall.c b/kernel/syscall.c
index e7fed5d..9c174c9 100644
--- a/kernel/syscall.c
+++ b/kernel/syscall.c
@@ -3827,6 +3827,8 @@ mc_perf_event_alloc(struct perf_event_attr *attr)
if (!attr) {
return NULL;
}
+ kprintf("%s: attr->disabled:%d,attr->exclude_kernel:%d\n",
+ __FUNCTION__, attr->disabled, attr->exclude_kernel); //PATCH
event = kmalloc(sizeof(struct mc_perf_event), IHK_MC_AP_NOWAIT);
if (!event) {
@@ -5689,6 +5689,13 @@ long do_futex(int n, unsigned long arg0, unsigned long arg1,
monitor->status = IHK_OS_MONITOR_KERNEL_HEAVY;
}
+ {
+ uint32_t uval_from_uaddr;
+ copy_from_user(&uval_from_uaddr, uaddr, sizeof(uint32_t));
+ kprintf("%s:*uaddr:%d,uaddr:%lx\n",
+ __FUNCTION__, uval_from_uaddr, uaddr); //PATCH
+ }
+
/* Cross-address space futex? */
if (op & FUTEX_PRIVATE_FLAG) {
fshared = 0;
@@ -8720,6 +8725,8 @@ SYSCALL_DECLARE(move_pages)
int ret = 0;
unsigned long t_s, t_e;
+ kprintf("%s: user_virt_addr:%lx,user_nodes:%lx,user_status:%lx\n",
+ __FUNCTION__, user_virt_addr, user_nodes, user_status); //PATCH
t_s = rdtsc();
@@ -8905,6 +8912,8 @@ SYSCALL_DECLARE(process_vm_writev)
(const struct iovec *)ihk_mc_syscall_arg3(ctx);
unsigned long riovcnt = ihk_mc_syscall_arg4(ctx);
unsigned long flags = ihk_mc_syscall_arg5(ctx);
+ kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH
return do_process_vm_read_writev(pid, local_iov, liovcnt,
remote_iov, riovcnt, flags, PROCESS_VM_WRITE);
@@ -8920,6 +8929,8 @@ SYSCALL_DECLARE(process_vm_readv)
(const struct iovec *)ihk_mc_syscall_arg3(ctx);
unsigned long riovcnt = ihk_mc_syscall_arg4(ctx);
unsigned long flags = ihk_mc_syscall_arg5(ctx);
+ kprintf("%s: arg2_addr:%lx,arg4_addr:%lx\n",
+ __FUNCTION__, local_iov, remote_iov); //PATCH
return do_process_vm_read_writev(pid, local_iov, liovcnt,
remote_iov, riovcnt, flags, PROCESS_VM_READ);