From bb03cbcd18a1e3e2c029ecaaf9b58d3dd6987b14 Mon Sep 17 00:00:00 2001 From: Jeremy Sowden Date: Tue, 3 Mar 2020 09:48:31 +0000 Subject: evaluate: no need to swap byte-order for values of fewer than 16 bits. Endianness is not meaningful for objects smaller than 2 bytes and the byte-order conversions are no-ops in the kernel, so just update the expression as if it were constant. Signed-off-by: Jeremy Sowden Signed-off-by: Florian Westphal --- src/evaluate.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/evaluate.c') diff --git a/src/evaluate.c b/src/evaluate.c index 9b1a04f2..f4260436 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -147,7 +147,7 @@ static int byteorder_conversion(struct eval_ctx *ctx, struct expr **expr, byteorder_names[byteorder], byteorder_names[(*expr)->byteorder]); - if (expr_is_constant(*expr)) + if (expr_is_constant(*expr) || (*expr)->len / BITS_PER_BYTE < 2) (*expr)->byteorder = byteorder; else { op = byteorder_conversion_op(*expr, byteorder); -- cgit v1.2.3