From: Ursula Braun
> Sent: 05 April 2017 09:40
> From: Hans Wippel <[email protected]>
>
> Avoid endianness warnings reported by sparse by (1) using endianness
> conversions for assigning and using network packet fields, and (2)
> removing unnecessary endianness conversions from qeth_l3_rebuild_skb. No
> functional changes.
>
> Signed-off-by: Hans Wippel <[email protected]>
> Signed-off-by: Ursula Braun <[email protected]>
> ---
> drivers/s390/net/qeth_core.h | 4 ++--
> drivers/s390/net/qeth_core_main.c | 11 +++++-----
> drivers/s390/net/qeth_l3_main.c | 46
> +++++++++++++++++++--------------------
> drivers/s390/net/qeth_l3_sys.c | 4 ++--
> 4 files changed, 33 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/s390/net/qeth_core.h b/drivers/s390/net/qeth_core.h
> index 22aa2cd..6764ab9 100644
> --- a/drivers/s390/net/qeth_core.h
> +++ b/drivers/s390/net/qeth_core.h
> @@ -844,9 +844,9 @@ static inline int qeth_get_ip_version(struct sk_buff *skb)
> {
> __be16 *p = &((struct ethhdr *)skb->data)->h_proto;
>
> - if (*p == ETH_P_8021Q)
> + if (be16_to_cpu(*p) == ETH_P_8021Q)
> p += 2;
> - switch (*p) {
> + switch (be16_to_cpu(*p)) {
> case ETH_P_IPV6:
These are definitely 'functional changes' on LE systems.
Also it is generally better to byteswap the constants.
David