diff --git a/kernel/copy.c b/kernel/copy.c index 62aef87f..510c1b2a 100644 --- a/kernel/copy.c +++ b/kernel/copy.c @@ -10,6 +10,7 @@ * HISTORY: */ +#ifdef USE_DMA #include #include @@ -48,3 +49,4 @@ int memcpy_async(unsigned long dest, unsigned long src, return 0; } +#endif diff --git a/kernel/init.c b/kernel/init.c index 75f52323..39a54993 100644 --- a/kernel/init.c +++ b/kernel/init.c @@ -55,6 +55,7 @@ static void handler_init(void) unsigned long data[1024] __attribute__((aligned(64))); +#ifdef USE_DMA static void dma_test(void) { struct ihk_dma_request req; @@ -102,6 +103,7 @@ static void dma_test(void) } } } +#endif extern char *ihk_mc_get_kernel_args(void); @@ -182,8 +184,10 @@ static void rest_init(void) handler_init(); +#ifdef USE_DMA ihk_mc_dma_init(); dma_test(); +#endif //pc_test(); ap_init(); diff --git a/kernel/syscall.c b/kernel/syscall.c index 515b9411..36b32181 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -106,7 +106,6 @@ static void send_syscall(struct syscall_request *req, int cpu) struct ikc_scd_packet packet; struct syscall_response *res; unsigned long fin; - int w; struct syscall_params *scp; struct ihk_ikc_channel_desc *syscall_channel; @@ -127,19 +126,20 @@ static void send_syscall(struct syscall_request *req, int cpu) res->status = 0; req->valid = 0; +#ifdef USE_DMA memcpy_async(scp->request_pa, virt_to_phys(req), sizeof(*req), 0, &fin); memcpy_async_wait(&scp->post_fin); scp->post_va->v[0] = scp->post_idx; - - w = cpu + 1; - memcpy_async_wait(&fin); +#else + memcpy(scp->request_va, req, sizeof(*req)); +#endif barrier(); scp->request_va->valid = 1; - *(unsigned int *)scp->doorbell_va = w; + *(unsigned int *)scp->doorbell_va = cpu + 1; #ifdef SYSCALL_BY_IKC packet.msg = SCD_MSG_SYSCALL_ONESIDE;