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:03 +0200
commit31b5c87357cee83d6a3419c5d801a9bf16912714 (patch)
tree9e97778830ec57344b49ae016b0bbe3b33cb81b5 /rtemsbsd
parentUpdate due to API changes (diff)
downloadrtems-libbsd-31b5c87357cee83d6a3419c5d801a9bf16912714.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);
}