@@ -85,7 +85,7 @@ enum { MAX_PORTS = USHRT_MAX };
#define EPOLLEXCLUSIVE (1u << 28)
#endif
-#define OVS_DP_F_UNSUPPORTED (1 << 31);
+#define OVS_DP_F_UNSUPPORTED (1u << 31);
/* This PID is not used by the kernel datapath when using dispatch per CPU,
* but it is required to be set (not zero). */
@@ -5641,7 +5641,8 @@ xlate_sample_action(struct xlate_ctx *ctx,
/* Scale the probability from 16-bit to 32-bit while representing
* the same percentage. */
- uint32_t probability = (os->probability << 16) | os->probability;
+ uint32_t probability =
+ ((uint32_t) os->probability << 16) | os->probability;
/* If ofp_port in flow sample action is equel to ofp_port,
* this sample action is a input port action. */
@@ -55,6 +55,9 @@ set_bit128(ovs_u128 *values, int bit, int n_bits)
static uint64_t
get_range128(ovs_u128 *value, int ofs, uint64_t mask)
{
+ if (ofs == 0) {
+ return value->u64.lo & mask;
+ }
return ((ofs < 64 ? (value->u64.lo >> ofs) : 0) & mask)
| ((ofs <= 64 ? (value->u64.hi << (64 - ofs)) : (value->u64.hi >> (ofs - 64)) & mask));
}
@@ -43,17 +43,16 @@ check_log_2_floor(uint32_t x, int n)
static void
test_log_2_floor(struct ovs_cmdl_context *ctx OVS_UNUSED)
{
- int n;
-
- for (n = 0; n < 32; n++) {
+ for (uint32_t n = 0; n < 32; n++) {
/* Check minimum x such that f(x) == n. */
- check_log_2_floor(1 << n, n);
+ check_log_2_floor(UINT32_C(1) << n, n);
/* Check maximum x such that f(x) == n. */
- check_log_2_floor((1 << n) | ((1 << n) - 1), n);
+ check_log_2_floor((UINT32_C(1) << n) | ((UINT32_C(1) << n) - 1), n);
/* Check a random value in the middle. */
- check_log_2_floor((random_uint32() & ((1 << n) - 1)) | (1 << n), n);
+ check_log_2_floor((random_uint32() & ((UINT32_C(1) << n) - 1))
+ | (UINT32_C(1) << n), n);
}
/* log_2_floor(0) is undefined, so don't check it. */
@@ -86,7 +85,7 @@ test_ctz(struct ovs_cmdl_context *ctx OVS_UNUSED)
for (n = 0; n < 32; n++) {
/* Check minimum x such that f(x) == n. */
- check_ctz32(1 << n, n);
+ check_ctz32(UINT32_C(1) << n, n);
/* Check maximum x such that f(x) == n. */
check_ctz32(UINT32_MAX << n, n);