ipv6: Annotate bitwise IPv6 dsfield pointer cast
authorSven Eckelmann <sven@narfation.org>
Fri, 13 Dec 2019 20:24:27 +0000 (21:24 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 17 Dec 2019 00:09:44 +0000 (16:09 -0800)
The sparse commit 6002ded74587 ("add a flag to warn on casts to/from
bitwise pointers") introduced a check for non-direct casts from/to
restricted datatypes (when -Wbitwise-pointer is enabled).

This triggered a warning in ipv6_get_dsfield() because sparse doesn't know
that the buffer already points to some data in the correct bitwise integer
format. This was already fixed in ipv6_change_dsfield() by the __force
attribute and can be fixed here the same way.

Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/dsfield.h

index 1a245ee..a59a57f 100644 (file)
@@ -21,7 +21,7 @@ static inline __u8 ipv4_get_dsfield(const struct iphdr *iph)
 
 static inline __u8 ipv6_get_dsfield(const struct ipv6hdr *ipv6h)
 {
-       return ntohs(*(const __be16 *)ipv6h) >> 4;
+       return ntohs(*(__force const __be16 *)ipv6h) >> 4;
 }