Loading drivers/net/pptp.c +1 −1 Original line number Diff line number Diff line Loading @@ -277,7 +277,7 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) iph->tos = 0; iph->daddr = rt->rt_dst; iph->saddr = rt->rt_src; iph->ttl = dst_metric(&rt->dst, RTAX_HOPLIMIT); iph->ttl = dst_metric_hoplimit(&rt->dst); iph->tot_len = htons(skb->len); skb_dst_drop(skb); Loading include/net/dst.h +14 −1 Original line number Diff line number Diff line Loading @@ -104,11 +104,24 @@ struct dst_entry { #ifdef __KERNEL__ static inline u32 dst_metric(const struct dst_entry *dst, int metric) dst_metric_raw(const struct dst_entry *dst, const int metric) { return dst->_metrics[metric-1]; } static inline u32 dst_metric(const struct dst_entry *dst, const int metric) { WARN_ON_ONCE(metric == RTAX_HOPLIMIT); return dst_metric_raw(dst, metric); } static inline u32 dst_metric_hoplimit(const struct dst_entry *dst) { return dst_metric_raw(dst, RTAX_HOPLIMIT); } static inline void dst_metric_set(struct dst_entry *dst, int metric, u32 val) { dst->_metrics[metric-1] = val; Loading net/ipv4/ip_gre.c +1 −1 Original line number Diff line number Diff line Loading @@ -890,7 +890,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev iph->ttl = ((struct ipv6hdr *)old_iph)->hop_limit; #endif else iph->ttl = dst_metric(&rt->dst, RTAX_HOPLIMIT); iph->ttl = dst_metric_hoplimit(&rt->dst); } ((__be16 *)(iph + 1))[0] = tunnel->parms.o_flags; Loading net/ipv4/ip_output.c +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ static inline int ip_select_ttl(struct inet_sock *inet, struct dst_entry *dst) int ttl = inet->uc_ttl; if (ttl < 0) ttl = dst_metric(dst, RTAX_HOPLIMIT); ttl = dst_metric_hoplimit(dst); return ttl; } Loading net/ipv4/netfilter/ipt_REJECT.c +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static void send_reset(struct sk_buff *oldskb, int hook) if (ip_route_me_harder(nskb, addr_type)) goto free_nskb; niph->ttl = dst_metric(skb_dst(nskb), RTAX_HOPLIMIT); niph->ttl = dst_metric_hoplimit(skb_dst(nskb)); /* "Never happens" */ if (nskb->len > dst_mtu(skb_dst(nskb))) Loading Loading
drivers/net/pptp.c +1 −1 Original line number Diff line number Diff line Loading @@ -277,7 +277,7 @@ static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) iph->tos = 0; iph->daddr = rt->rt_dst; iph->saddr = rt->rt_src; iph->ttl = dst_metric(&rt->dst, RTAX_HOPLIMIT); iph->ttl = dst_metric_hoplimit(&rt->dst); iph->tot_len = htons(skb->len); skb_dst_drop(skb); Loading
include/net/dst.h +14 −1 Original line number Diff line number Diff line Loading @@ -104,11 +104,24 @@ struct dst_entry { #ifdef __KERNEL__ static inline u32 dst_metric(const struct dst_entry *dst, int metric) dst_metric_raw(const struct dst_entry *dst, const int metric) { return dst->_metrics[metric-1]; } static inline u32 dst_metric(const struct dst_entry *dst, const int metric) { WARN_ON_ONCE(metric == RTAX_HOPLIMIT); return dst_metric_raw(dst, metric); } static inline u32 dst_metric_hoplimit(const struct dst_entry *dst) { return dst_metric_raw(dst, RTAX_HOPLIMIT); } static inline void dst_metric_set(struct dst_entry *dst, int metric, u32 val) { dst->_metrics[metric-1] = val; Loading
net/ipv4/ip_gre.c +1 −1 Original line number Diff line number Diff line Loading @@ -890,7 +890,7 @@ static netdev_tx_t ipgre_tunnel_xmit(struct sk_buff *skb, struct net_device *dev iph->ttl = ((struct ipv6hdr *)old_iph)->hop_limit; #endif else iph->ttl = dst_metric(&rt->dst, RTAX_HOPLIMIT); iph->ttl = dst_metric_hoplimit(&rt->dst); } ((__be16 *)(iph + 1))[0] = tunnel->parms.o_flags; Loading
net/ipv4/ip_output.c +1 −1 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ static inline int ip_select_ttl(struct inet_sock *inet, struct dst_entry *dst) int ttl = inet->uc_ttl; if (ttl < 0) ttl = dst_metric(dst, RTAX_HOPLIMIT); ttl = dst_metric_hoplimit(dst); return ttl; } Loading
net/ipv4/netfilter/ipt_REJECT.c +1 −1 Original line number Diff line number Diff line Loading @@ -116,7 +116,7 @@ static void send_reset(struct sk_buff *oldskb, int hook) if (ip_route_me_harder(nskb, addr_type)) goto free_nskb; niph->ttl = dst_metric(skb_dst(nskb), RTAX_HOPLIMIT); niph->ttl = dst_metric_hoplimit(skb_dst(nskb)); /* "Never happens" */ if (nskb->len > dst_mtu(skb_dst(nskb))) Loading