X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=datapath%2Fvport-gre.c;h=bf8179b2c51251570f915187a4d5286058ec4165;hb=b121012fe9c56fc90f3e3ed8d247475812e30dbc;hp=eb109035a3bfb55db1ab5535f4f6512e43a86358;hpb=b9298d3f825703063c9538aa37407da43e1e4781;p=openvswitch diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c index eb109035..bf8179b2 100644 --- a/datapath/vport-gre.c +++ b/datapath/vport-gre.c @@ -54,9 +54,9 @@ static int gre_hdr_len(const struct tnl_port_config *port_config) static __be32 be64_get_low32(__be64 x) { #ifdef __BIG_ENDIAN - return x; + return (__force __be32)x; #else - return x >> 32; + return (__force __be32)((__force u64)x >> 32); #endif } @@ -116,9 +116,9 @@ static struct sk_buff *gre_update_header(const struct vport *vport, static __be64 be32_extend_to_be64(__be32 x) { #ifdef __BIG_ENDIAN - return x; + return (__force __be64)x; #else - return (__be64) x << 32; + return (__force __be64)((__force u64)x << 32); #endif } @@ -398,6 +398,7 @@ const struct vport_ops gre_vport_ops = { .set_addr = tnl_set_addr, .get_name = tnl_get_name, .get_addr = tnl_get_addr, + .get_config = tnl_get_config, .get_dev_flags = vport_gen_get_dev_flags, .is_running = vport_gen_is_running, .get_operstate = vport_gen_get_operstate,