[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH] kernel2: RPC: Überflüssiges temporäres Mapping entfernt
* kernel2: Es gibt keinen Grund, für das ISF des aufgerufenen Prozesses
ein temporäres Mapping durchzuführen - ist eh Kernelspeicher und daher
überall zugreifbar
Signed-off-by: Kevin Wolf <kevin@xxxxxxxxxx>
---
src/kernel2/src/syscalls/rpc.c | 11 +----------
1 files changed, 1 insertions(+), 10 deletions(-)
diff --git a/src/kernel2/src/syscalls/rpc.c b/src/kernel2/src/syscalls/rpc.c
index 6fcf8b1..e898021 100644
--- a/src/kernel2/src/syscalls/rpc.c
+++ b/src/kernel2/src/syscalls/rpc.c
@@ -196,23 +196,16 @@ int do_fastrpc(pid_t callee_pid, size_t metadata_size, void* metadata,
goto fail_retry;
}
- // Interrupt Stack Frame des aufgerufenen Tasks mappen
- paddr_t callee_isf_phys =
- mmc_resolve(&callee->process->context, callee->user_isf);
-
- interrupt_stack_frame_t* callee_isf = (interrupt_stack_frame_t*)
- vmm_kernel_automap(callee_isf_phys, sizeof(*callee_isf));
-
// Wenn sich der Task gerade in einem Kernel-Int befindet, lassen wir ihn
// besser in Ruhe und probieren spaeter nochmal.
if ((current_thread != callee) &&
(callee->kernel_stack != callee->user_isf))
{
- vmm_kernel_unmap(callee_isf, sizeof(*callee_isf));
return -EAGAIN;
}
// RPC-Backlinkinformation anlegen
+ interrupt_stack_frame_t* callee_isf = callee->user_isf;
rpc_t* rpc = malloc(sizeof(rpc_t));
rpc->old_eip = callee_isf->eip;
@@ -279,8 +272,6 @@ int do_fastrpc(pid_t callee_pid, size_t metadata_size, void* metadata,
mmc_unmap(&mmc_current_context(), first_stack_page,
NUM_PAGES(rounded_data_size));
- vmm_kernel_unmap(callee_isf, sizeof(*callee_isf));
-
// kprintf("[%d => %d] RPC durchgefuehrt.\n",
// current_process->pid,
// callee->process->pid);
--
1.6.0.2