Philippe Gerum wrote: > On Thu, 2007-10-18 at 22:46 +0200, Jan Kiszka wrote: >> Hi Philippe, >> >> what's the point about >> >> if (xnsched_resched_p()) >> xnpod_schedule(); >> >> at the beginning of do_hisyscall_event() [1]? Could you provide a >> comment for the background of this hunk? Or can we even remove it? > > No, we can't. It's a Blackfin-specific thing in disguise actually, so we > may make this code conditional through some arch-dependent wrapper > though. > http://www.rts.uni-hannover.de/xenomai/lxr/source/include/asm-blackfin/bits/pod.h#141 >
Something like the attached patch? Jan -- Siemens AG, Corporate Technology, CT SE 2 Corporate Competence Center Embedded Linux
--- include/asm-blackfin/system.h | 7 +++++++ include/asm-generic/system.h | 4 ++++ ksrc/nucleus/shadow.c | 3 +-- 3 files changed, 12 insertions(+), 2 deletions(-) Index: xenomai/include/asm-blackfin/system.h =================================================================== --- xenomai.orig/include/asm-blackfin/system.h +++ xenomai/include/asm-blackfin/system.h @@ -95,6 +95,13 @@ static inline void xnarch_free_host_mem kfree(chunk); } +static inline void xnarch_hisyscall_entry(void) +{ + if (xnsched_resched_p()) + xnpod_schedule(); +} +#define xnarch_hisyscall_entry xnarch_hisyscall_entry + #ifdef __cplusplus } #endif Index: xenomai/include/asm-generic/system.h =================================================================== --- xenomai.orig/include/asm-generic/system.h +++ xenomai/include/asm-generic/system.h @@ -410,6 +410,10 @@ static inline int xnarch_remap_io_page_r return wrap_remap_io_page_range(vma,from,to,size,prot); } +#ifndef xnarch_hisyscall_entry +static inline void xnarch_hisyscall_entry(void) { } +#endif + #ifdef __cplusplus } #endif Index: xenomai/ksrc/nucleus/shadow.c =================================================================== --- xenomai.orig/ksrc/nucleus/shadow.c +++ xenomai/ksrc/nucleus/shadow.c @@ -1878,8 +1878,7 @@ static inline int do_hisyscall_event(uns if (!xnpod_active_p()) goto no_skin; - if (xnsched_resched_p()) - xnpod_schedule(); + xnarch_hisyscall_entry(); p = current; thread = xnshadow_thread(p);
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core