diff options
author | Jeremy Sowden <jeremy@azazel.net> | 2020-03-03 09:48:31 +0000 |
---|---|---|
committer | Florian Westphal <fw@strlen.de> | 2020-03-04 23:36:45 +0100 |
commit | bb03cbcd18a1e3e2c029ecaaf9b58d3dd6987b14 (patch) | |
tree | 64f6e8e6c4cf4d589852ebdd9483d7b7620ba2da /src | |
parent | 904bad2bcfa72cb197e9fe18db3c4681086000ea (diff) |
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 <jeremy@azazel.net>
Signed-off-by: Florian Westphal <fw@strlen.de>
Diffstat (limited to 'src')
-rw-r--r-- | src/evaluate.c | 2 |
1 files changed, 1 insertions, 1 deletions
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); |