On 04/07/2017 01:25 PM, David Laight wrote:
> From: Ursula Braun
>> Sent: 05 April 2017 09:40
>> From: Hans Wippel <hwip...@linux.vnet.ibm.com>
>>
>> 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 <hwip...@linux.vnet.ibm.com>
>> Signed-off-by: Ursula Braun <ubr...@linux.vnet.ibm.com>
>> ---
>> 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.
s390 is Big Endian; thus the change is basicly a NOP.
The only purpose of this kind of patches is getting rid
of sparse warnings with our code.
>
> Also it is generally better to byteswap the constants.
>
> David
>