Use inet_sk_dscp() to get the socket DSCP value as dscp_t, instead of
ip_sock_rt_tos() which returns a __u8. This will ease the conversion
of fl4->flowi4_tos to dscp_t, as it will just require to drop the
inet_dscp_to_dsfield() call.

Signed-off-by: Guillaume Nault <[email protected]>
---
 drivers/net/gtp.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 89a996ad8cd0..03d886014f5a 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -23,6 +23,8 @@
 
 #include <net/net_namespace.h>
 #include <net/protocol.h>
+#include <net/inet_dscp.h>
+#include <net/inet_sock.h>
 #include <net/ip.h>
 #include <net/ipv6.h>
 #include <net/udp.h>
@@ -350,7 +352,7 @@ static struct rtable *ip4_route_output_gtp(struct flowi4 
*fl4,
        fl4->flowi4_oif         = sk->sk_bound_dev_if;
        fl4->daddr              = daddr;
        fl4->saddr              = saddr;
-       fl4->flowi4_tos         = ip_sock_rt_tos(sk);
+       fl4->flowi4_tos         = 
inet_dscp_to_dsfield(inet_sk_dscp(inet_sk((sk))));
        fl4->flowi4_scope       = ip_sock_rt_scope(sk);
        fl4->flowi4_proto       = sk->sk_protocol;
 
-- 
2.39.2

Reply via email to