aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/dst.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/net/dst.h')
-rw-r--r--include/net/dst.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/net/dst.h b/include/net/dst.h
index 5a900ddcf10d..720d90653a8e 100644
--- a/include/net/dst.h
+++ b/include/net/dst.h
@@ -222,11 +222,19 @@ static inline void dst_confirm(struct dst_entry *dst)
222 neigh_confirm(dst->neighbour); 222 neigh_confirm(dst->neighbour);
223} 223}
224 224
225static inline void dst_negative_advice(struct dst_entry **dst_p) 225static inline void dst_negative_advice(struct dst_entry **dst_p,
226 struct sock *sk)
226{ 227{
227 struct dst_entry * dst = *dst_p; 228 struct dst_entry * dst = *dst_p;
228 if (dst && dst->ops->negative_advice) 229 if (dst && dst->ops->negative_advice) {
229 *dst_p = dst->ops->negative_advice(dst); 230 *dst_p = dst->ops->negative_advice(dst);
231
232 if (dst != *dst_p) {
233 extern void sk_reset_txq(struct sock *sk);
234
235 sk_reset_txq(sk);
236 }
237 }
230} 238}
231 239
232static inline void dst_link_failure(struct sk_buff *skb) 240static inline void dst_link_failure(struct sk_buff *skb)