From: Sowmini Varadhan <sowmini.varadhan@oracle.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Alexander Duyck <aduyck@mirantis.com>,
netdev@vger.kernel.org, davem@davemloft.net,
alexander.duyck@gmail.com, tom@herbertland.com
Subject: Re: [net PATCH] flow_dissector: Fix unaligned access in __skb_flow_dissector when used by eth_get_headlen
Date: Sat, 30 Jan 2016 11:17:02 -0500 [thread overview]
Message-ID: <20160130161702.GA11601@oracle.com> (raw)
In-Reply-To: <1454124234.7627.119.camel@edumazet-glaptop2.roam.corp.google.com>
On (01/29/16 19:23), Eric Dumazet wrote:
> BTW, even a memcpy(&key_addrs->v4addrs, &iph->saddr, 8) could crash, as
> the compiler can certainly assume src and dst are 4 bytes aligned, and
> could use word accesses when inlining memcpy() even on Sparc.
>
> Apparently the compiler used by Sowmini is gentle.
One more subtlety that I missed until now..
eth_get_headlen passes in flow_keys_buf_dissector (NOT flow_keys_dissector!)
So FLOW_DISSECTOR_KEY_IPV4_ADDRS is not set, and this helps to dodge
the unaligned iph->saddr access.
But as others have pointed out, much of this code is brittle
because it's accessing the data before the driver has had a chance
to align things. The page_offset initialization of NET_IP_ALIGN,
with all its weaknesses, at least matches (in principle) the prescription
used for the xmit path.
--Sowmini
next prev parent reply other threads:[~2016-01-30 16:17 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-29 18:06 [RFC] Kernel unaligned access at __skb_flow_dissect Sowmini Varadhan
2016-01-29 18:33 ` Eric Dumazet
2016-01-29 18:40 ` Eric Dumazet
2016-01-29 19:08 ` David Miller
2016-01-29 19:39 ` Eric Dumazet
2016-01-29 18:54 ` Eric Dumazet
2016-01-29 19:22 ` Sowmini Varadhan
2016-01-29 21:00 ` Tom Herbert
2016-01-29 21:09 ` Sowmini Varadhan
2016-01-29 21:33 ` Tom Herbert
2016-01-29 23:00 ` Tom Herbert
2016-01-29 23:04 ` Sowmini Varadhan
2016-01-29 23:31 ` Tom Herbert
2016-01-29 23:58 ` Sowmini Varadhan
2016-01-30 0:47 ` Tom Herbert
2016-01-30 1:18 ` David Miller
2016-01-30 2:15 ` Eric Dumazet
2016-01-31 22:13 ` Tom Herbert
2016-02-01 0:04 ` Eric Dumazet
2016-01-29 19:06 ` David Miller
2016-01-29 19:37 ` Eric Dumazet
2016-01-29 19:41 ` David Miller
2016-01-29 19:44 ` Sowmini Varadhan
2016-01-29 20:01 ` Eric Dumazet
2016-01-29 20:06 ` Eric Dumazet
2016-01-29 21:16 ` Alexander Duyck
2016-01-29 21:33 ` Eric Dumazet
2016-01-29 22:08 ` Alexander Duyck
2016-01-29 22:28 ` Eric Dumazet
2016-01-29 23:00 ` Alexander Duyck
2016-02-01 16:55 ` David Laight
2016-02-01 17:25 ` Eric Dumazet
2016-01-29 19:04 ` David Miller
2016-01-30 2:49 ` [net PATCH] flow_dissector: Fix unaligned access in __skb_flow_dissector when used by eth_get_headlen Alexander Duyck
2016-01-30 3:23 ` Eric Dumazet
2016-01-30 3:35 ` David Miller
2016-01-30 4:46 ` Alexander Duyck
2016-01-30 16:17 ` Sowmini Varadhan [this message]
2016-01-30 17:43 ` Tom Herbert
2016-01-30 19:12 ` Sowmini Varadhan
2016-01-30 18:36 ` Alexander Duyck
2016-01-30 19:26 ` Eric Dumazet
2016-01-31 1:13 ` Alexander Duyck
2016-01-31 3:45 ` David Miller
2016-01-31 9:12 ` Alexander Duyck
2016-01-31 19:17 ` David Miller
2016-01-31 21:23 ` Sowmini Varadhan
2016-02-01 16:50 ` David Laight
2016-02-01 18:18 ` Alexander Duyck
2016-02-02 9:47 ` David Laight
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160130161702.GA11601@oracle.com \
--to=sowmini.varadhan@oracle.com \
--cc=aduyck@mirantis.com \
--cc=alexander.duyck@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=tom@herbertland.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.