.. | .. |
---|
30 | 30 | const struct nft_byteorder *priv = nft_expr_priv(expr); |
---|
31 | 31 | u32 *src = ®s->data[priv->sreg]; |
---|
32 | 32 | u32 *dst = ®s->data[priv->dreg]; |
---|
33 | | - union { u32 u32; u16 u16; } *s, *d; |
---|
| 33 | + u16 *s16, *d16; |
---|
34 | 34 | unsigned int i; |
---|
35 | 35 | |
---|
36 | | - s = (void *)src; |
---|
37 | | - d = (void *)dst; |
---|
| 36 | + s16 = (void *)src; |
---|
| 37 | + d16 = (void *)dst; |
---|
38 | 38 | |
---|
39 | 39 | switch (priv->size) { |
---|
40 | 40 | case 8: { |
---|
.. | .. |
---|
61 | 61 | switch (priv->op) { |
---|
62 | 62 | case NFT_BYTEORDER_NTOH: |
---|
63 | 63 | for (i = 0; i < priv->len / 4; i++) |
---|
64 | | - d[i].u32 = ntohl((__force __be32)s[i].u32); |
---|
| 64 | + dst[i] = ntohl((__force __be32)src[i]); |
---|
65 | 65 | break; |
---|
66 | 66 | case NFT_BYTEORDER_HTON: |
---|
67 | 67 | for (i = 0; i < priv->len / 4; i++) |
---|
68 | | - d[i].u32 = (__force __u32)htonl(s[i].u32); |
---|
| 68 | + dst[i] = (__force __u32)htonl(src[i]); |
---|
69 | 69 | break; |
---|
70 | 70 | } |
---|
71 | 71 | break; |
---|
.. | .. |
---|
73 | 73 | switch (priv->op) { |
---|
74 | 74 | case NFT_BYTEORDER_NTOH: |
---|
75 | 75 | for (i = 0; i < priv->len / 2; i++) |
---|
76 | | - d[i].u16 = ntohs((__force __be16)s[i].u16); |
---|
| 76 | + d16[i] = ntohs((__force __be16)s16[i]); |
---|
77 | 77 | break; |
---|
78 | 78 | case NFT_BYTEORDER_HTON: |
---|
79 | 79 | for (i = 0; i < priv->len / 2; i++) |
---|
80 | | - d[i].u16 = (__force __u16)htons(s[i].u16); |
---|
| 80 | + d16[i] = (__force __u16)htons(s16[i]); |
---|
81 | 81 | break; |
---|
82 | 82 | } |
---|
83 | 83 | break; |
---|