Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1527804
| From | "Duyck, Alexander H" <alexander.h.duyck@intel.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: Linux 4.4.34 |
| Date | 2016-11-22 19:10 +0100 |
| Message-ID | <sGnG2-2it-15@gated-at.bofh.it> (permalink) |
| References | (3 earlier) <sGmTE-1H7-43@gated-at.bofh.it> <sGnmF-1SY-3@gated-at.bofh.it> <sGnmG-1SY-25@gated-at.bofh.it> <sGnwl-1Wv-19@gated-at.bofh.it> <sGnG2-2it-13@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Tue, 2016-11-22 at 09:56 -0800, Eric Dumazet wrote:
> On Tue, Nov 22, 2016 at 9:55 AM, Andre Noll <maan@tuebingen.mpg.de> wrote:
> >
> > On Tue, Nov 22, 09:46, Eric Dumazet wrote
> > >
> > > This is an aliasing problem.
> > > Tom code is hard to read and understand.
> > >
> > > Andre, could you try :
> > >
> > > diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
> > > index 69e4463a4b1b..b045980faaea 100644
> > > --- a/net/core/flow_dissector.c
> > > +++ b/net/core/flow_dissector.c
> > > @@ -157,6 +157,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
> > > memcpy(key_eth_addrs, ð->h_dest, sizeof(*key_eth_addrs));
> > > }
> > >
> > > + barrier();
> > > again:
> > > switch (proto) {
> > > case htons(ETH_P_IP): {
> >
> > This patch on top of v4.4.34 makes no difference: I'm still getting
> > the panic in eth_type_trans().
> >
>
> What compiler are you using exactly ?
>
> Please try :
>
> diff --git a/net/core/flow_dissector.c b/net/core/flow_dissector.c
> index 69e4463a4b1b..48791f372aa2 100644
> --- a/net/core/flow_dissector.c
> +++ b/net/core/flow_dissector.c
> @@ -551,6 +551,7 @@ bool __skb_flow_dissect(const struct sk_buff *skb,
>
> key_control->thoff = (u16)nhoff;
> out:
> + barrier();
> key_basic->n_proto = proto;
> key_basic->ip_proto = ip_proto;
Okay so things are starting to make sense for what I was seeing.
I think key_control and key_basic are actually the same pointer. What
has been happening is that storing the network proto is completely
overwriting the network header offset with the value of 8.
Now to just figure out why.
- Alex
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Linux 4.4.34 Greg KH <gregkh@linuxfoundation.org> - 2016-11-21 10:30 +0100
Re: Linux 4.4.34 Greg KH <gregkh@linuxfoundation.org> - 2016-11-22 18:20 +0100
Re: Linux 4.4.34 Eric Dumazet <edumazet@google.com> - 2016-11-22 18:20 +0100
Re: Linux 4.4.34 "Duyck, Alexander H" <alexander.h.duyck@intel.com> - 2016-11-22 18:50 +0100
Re: Linux 4.4.34 Eric Dumazet <edumazet@google.com> - 2016-11-22 18:50 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:00 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:10 +0100
Re: Linux 4.4.34 "Duyck, Alexander H" <alexander.h.duyck@intel.com> - 2016-11-22 19:10 +0100
Re: Linux 4.4.34 Eric Dumazet <edumazet@google.com> - 2016-11-22 19:20 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:30 +0100
[PATCH net] flow_dissect: call init_default_flow_dissectors() earlier Eric Dumazet <eric.dumazet@gmail.com> - 2016-11-22 20:20 +0100
Re: [PATCH net] flow_dissect: call init_default_flow_dissectors() earlier Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 20:50 +0100
Re: [PATCH net] flow_dissect: call init_default_flow_dissectors() earlier David Miller <davem@davemloft.net> - 2016-11-22 20:50 +0100
Re: Linux 4.4.34 "Duyck, Alexander H" <alexander.h.duyck@intel.com> - 2016-11-22 19:10 +0100
Re: Linux 4.4.34 Eric Dumazet <edumazet@google.com> - 2016-11-22 19:10 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:00 +0100
Re: Linux 4.4.34 Greg KH <gregkh@linuxfoundation.org> - 2016-11-22 18:30 +0100
Re: Linux 4.4.34 Eric Dumazet <edumazet@google.com> - 2016-11-22 18:30 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:10 +0100
Re: Linux 4.4.34 Andre Noll <maan@tuebingen.mpg.de> - 2016-11-22 19:20 +0100
csiph-web