Module: xenomai-gch Branch: for-2.4 Commit: 717910dfc4edf841b345ae59b4778691ec195c85 URL: http://git.xenomai.org/?p=xenomai-gch.git;a=commit;h=717910dfc4edf841b345ae59b4778691ec195c85
Author: Gilles Chanteperdrix <gilles.chanteperd...@xenomai.org> Date: Sun Aug 23 20:12:55 2009 +0200 Map all heaps with XNARCH_SHARED_HEAP_FLAGS to avoid cache aliasing issues on ARM --- ksrc/skins/native/queue.c | 3 ++- ksrc/skins/psos+/rn.c | 3 ++- ksrc/skins/rtai/shm.c | 3 ++- ksrc/skins/vrtx/heap.c | 3 ++- ksrc/skins/vrtx/syscall.c | 2 +- 5 files changed, 9 insertions(+), 5 deletions(-) diff --git a/ksrc/skins/native/queue.c b/ksrc/skins/native/queue.c index 9878562..f5788ba 100644 --- a/ksrc/skins/native/queue.c +++ b/ksrc/skins/native/queue.c @@ -228,7 +228,8 @@ int rt_queue_create(RT_QUEUE *q, err = xnheap_init_mapped(&q->bufpool, poolsize, - (mode & Q_DMA) ? GFP_DMA : 0); + ((mode & Q_DMA) ? GFP_DMA + : XNARCH_SHARED_HEAP_FLAGS)); if (err) return err; diff --git a/ksrc/skins/psos+/rn.c b/ksrc/skins/psos+/rn.c index 27a7611..9464e04 100644 --- a/ksrc/skins/psos+/rn.c +++ b/ksrc/skins/psos+/rn.c @@ -191,7 +191,8 @@ u_long rn_create(const char *name, u_long err; rnsize = xnheap_rounded_size(rnsize, PAGE_SIZE), - err = xnheap_init_mapped(&rn->heapbase, rnsize, 0); + err = xnheap_init_mapped(&rn->heapbase, rnsize, + XNARCH_SHARED_HEAP_FLAGS); if (err) return err; diff --git a/ksrc/skins/rtai/shm.c b/ksrc/skins/rtai/shm.c index 332a470..db2cf71 100644 --- a/ksrc/skins/rtai/shm.c +++ b/ksrc/skins/rtai/shm.c @@ -152,7 +152,8 @@ static xnshm_a_t *create_new_heap(unsigned long name, int heapsize, int suprt) err = xnheap_init_mapped(p->heap, heapsize, - suprt == USE_GFP_KERNEL ? GFP_KERNEL : 0); + (suprt == USE_GFP_KERNEL ? GFP_KERNEL : 0) + | XNARCH_SHARED_HEAP_FLAGS); #else /* !CONFIG_XENO_OPT_PERVASIVE */ { void *heapmem; diff --git a/ksrc/skins/vrtx/heap.c b/ksrc/skins/vrtx/heap.c index d627214..7cb58ab 100644 --- a/ksrc/skins/vrtx/heap.c +++ b/ksrc/skins/vrtx/heap.c @@ -166,7 +166,8 @@ int sc_hcreate(char *heapaddr, u_long heapsize, unsigned log2psize, int *errp) if (heapaddr == NULL) { #ifdef CONFIG_XENO_OPT_PERVASIVE heapsize = xnheap_rounded_size(heapsize, PAGE_SIZE); - err = xnheap_init_mapped(&heap->sysheap, heapsize, 0); + err = xnheap_init_mapped(&heap->sysheap, heapsize, + XNARCH_SHARED_HEAP_FLAGS); if (err) { *errp = ER_MEM; diff --git a/ksrc/skins/vrtx/syscall.c b/ksrc/skins/vrtx/syscall.c index e6f511d..c8f29de 100644 --- a/ksrc/skins/vrtx/syscall.c +++ b/ksrc/skins/vrtx/syscall.c @@ -1135,7 +1135,7 @@ static int __sc_pcreate(struct task_struct *curr, struct pt_regs *regs) /* Block size. */ bsize = __xn_reg_arg3(regs); - err = xnheap_init_mapped(ptheap, ptsize, 0); + err = xnheap_init_mapped(ptheap, ptsize, XNARCH_SHARED_HEAP_FLAGS); if (err) goto free_heap; _______________________________________________ Xenomai-git mailing list Xenomai-git@gna.org https://mail.gna.org/listinfo/xenomai-git