linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] net: Reset skb to network header in neigh_hh_output
@ 2016-10-07 14:14 Abdelrhman Ahmed
  2016-10-07 16:27 ` Sergei Shtylyov
  2016-10-07 21:10 ` Eric Dumazet
  0 siblings, 2 replies; 8+ messages in thread
From: Abdelrhman Ahmed @ 2016-10-07 14:14 UTC (permalink / raw)
  To: davem; +Cc: netdev, linux-kernel

When hardware header is added without using cached one, neigh_resolve_output
and neigh_connected_output reset skb to network header before adding it.
When cached one is used, neigh_hh_output does not reset the skb to network
header.

The fix is to reset skb to network header before adding cached hardware header
to keep the behavior consistent in all cases.

Signed-off-by: Abdelrhman Ahmed <ab@abahmed.com>
---
 include/net/neighbour.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/net/neighbour.h b/include/net/neighbour.h
index 8b68384..4d89fc2 100644
--- a/include/net/neighbour.h
+++ b/include/net/neighbour.h
@@ -424,7 +424,7 @@ static inline struct neighbour * neigh_clone(struct neighbour *neigh)
 static inline int neigh_event_send(struct neighbour *neigh, struct sk_buff *skb)
 {
        unsigned long now = jiffies;
-       
+
        if (neigh->used != now)
                neigh->used = now;
        if (!(neigh->nud_state&(NUD_CONNECTED|NUD_DELAY|NUD_PROBE)))
@@ -451,6 +451,8 @@ static inline int neigh_hh_output(const struct hh_cache *hh, struct sk_buff *skb
        unsigned int seq;
        int hh_len;
 
+       __skb_pull(skb, skb_network_offset(skb));
+
        do {
                seq = read_seqbegin(&hh->hh_lock);
                hh_len = hh->hh_len;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2016-10-26 17:08 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-07 14:14 [PATCH] net: Reset skb to network header in neigh_hh_output Abdelrhman Ahmed
2016-10-07 16:27 ` Sergei Shtylyov
2016-10-07 16:38   ` Sergei Shtylyov
2016-10-07 21:10 ` Eric Dumazet
2016-10-25 23:57   ` Abdelrhman Ahmed
2016-10-26  0:12     ` Eric Dumazet
2016-10-26 16:53       ` Abdelrhman Ahmed
2016-10-26 17:08         ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).