summaryrefslogtreecommitdiffstats
path: root/rtemsbsd
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-17 10:21:58 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-05-21 07:40:53 +0200
commitb5f8d4831d66364b7391e3660560cb9bbecada2e (patch)
treebd7e62ebecd43cc8ec3aa008c3cff7102a72f9e1 /rtemsbsd
parentUpdate due to API changes (diff)
downloadrtems-libbsd-b5f8d4831d66364b7391e3660560cb9bbecada2e.tar.bz2
Use _SMP_Unicast_action()
It is a bit more efficient.
Diffstat (limited to 'rtemsbsd')
-rw-r--r--rtemsbsd/powerpc/include/linux/smp.h5
-rw-r--r--rtemsbsd/rtems/rtems-kernel-epoch.c5
2 files changed, 2 insertions, 8 deletions
diff --git a/rtemsbsd/powerpc/include/linux/smp.h b/rtemsbsd/powerpc/include/linux/smp.h
index bf8e60e3..67d368f3 100644
--- a/rtemsbsd/powerpc/include/linux/smp.h
+++ b/rtemsbsd/powerpc/include/linux/smp.h
@@ -41,12 +41,9 @@ typedef void (*smp_call_func_t)(void *arg);
static inline int
smp_call_function_single(int cpu, smp_call_func_t func, void *arg, int wait)
{
- cpu_set_t set;
(void)wait;
- CPU_ZERO(&set);
- CPU_SET(cpu, &set);
- _SMP_Multicast_action(sizeof(set), &set, func, arg);
+ _SMP_Unicast_action((uint32_t)cpu, func, arg);
return (0);
}
diff --git a/rtemsbsd/rtems/rtems-kernel-epoch.c b/rtemsbsd/rtems/rtems-kernel-epoch.c
index 229f2656..48c0cf64 100644
--- a/rtemsbsd/rtems/rtems-kernel-epoch.c
+++ b/rtemsbsd/rtems/rtems-kernel-epoch.c
@@ -278,10 +278,7 @@ epoch_block_handler_preempt(struct ck_epoch *g __unused,
#ifdef RTEMS_SMP
if (cpu_self_index != er->er_cpuid) {
- Processor_mask targets;
-
- _Processor_mask_From_index(&targets, er->er_cpuid);
- _SMP_Multicast_action(&targets, epoch_register_mutex, &etm);
+ _SMP_Unicast_action(er->er_cpuid, epoch_register_mutex, &etm);
} else {
epoch_register_mutex(&etm);
}