aboutsummaryrefslogtreecommitdiffstats
path: root/lib/librte_sched/rte_reciprocal.c
diff options
context:
space:
mode:
authorLuca Boccassi <luca.boccassi@gmail.com>2019-03-20 14:50:04 +0000
committerLuca Boccassi <luca.boccassi@gmail.com>2019-03-20 14:50:10 +0000
commit36e178648f46ea9fb63d89097c59ce45fb8a67fe (patch)
treee3ee0ea25a45aa28918dc721dd1fe19b27d6849c /lib/librte_sched/rte_reciprocal.c
parent1ab31fb74132eabd45f326413eb6e4f647de48d9 (diff)
parentf7a9461e29147c47ce2bb81bd157ac1833cf5eb1 (diff)
Merge tag 'upstream/16.11.9' into 16.11.x
Upstream version 16.11.9 Change-Id: I947c2532ec89a9850d135bde544b4d5812b49e4f Signed-off-by: Luca Boccassi <luca.boccassi@gmail.com>
Diffstat (limited to 'lib/librte_sched/rte_reciprocal.c')
-rw-r--r--lib/librte_sched/rte_reciprocal.c17
1 files changed, 1 insertions, 16 deletions
diff --git a/lib/librte_sched/rte_reciprocal.c b/lib/librte_sched/rte_reciprocal.c
index 652f0237..385109cd 100644
--- a/lib/librte_sched/rte_reciprocal.c
+++ b/lib/librte_sched/rte_reciprocal.c
@@ -38,28 +38,13 @@
#include "rte_reciprocal.h"
-/* find largest set bit.
- * portable and slow but does not matter for this usage.
- */
-static inline int fls(uint32_t x)
-{
- int b;
-
- for (b = 31; b >= 0; --b) {
- if (x & (1u << b))
- return b + 1;
- }
-
- return 0;
-}
-
struct rte_reciprocal rte_reciprocal_value(uint32_t d)
{
struct rte_reciprocal R;
uint64_t m;
int l;
- l = fls(d - 1);
+ l = rte_fls_u32(d - 1);
m = ((1ULL << 32) * ((1ULL << l) - d));
m /= d;